使用 Microsoft 分布式文件系统复制 - Amazon FSx for Windows File Server
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 Microsoft 分布式文件系统复制

注意

要实现适用于 Windows File Server 的 FSx 的高可用性,我们建议使用多可用区文件系统。有关多可用区部署类型的更多信息,请参阅 可用性与持久性:单可用区和多可用区文件系统

Amazon FSx 支持使用 Microsoft 分布式文件系统(DFS)进行跨多个可用区(AZ)的文件系统部署,以获得多可用区的可用性和持久性。使用 DFS 复制,可以在两个文件系统之间自动复制数据。使用 DFS 命名空间,您可以将一个文件系统配置为主文件系统,将另一个文件系统配置为备用文件系统,如果主文件系统无响应,则可以自动失效转移到备用文件系统。

在使用 DFS 复制之前,请执行以下步骤:

  • 按照 Amazon FSx 入门的 Step 8 中所述设置安全组。

  • 在同一个可用区内的不同可用区中为 Windows File Server 文件系统创建两个 FSx。 Amazon Web Services 区域有关创建文件系统的更多信息,请参阅第 3 步。将数据写入您的文件共享

  • 确保两个文件系统位于同一个 Amazon Directory Service for Microsoft Active Directory中。

  • 创建文件系统后,请记下其文件系统 ID 以备日后使用。

注意

要允许进出文件系统的 DFS 复制流量,请确保如 Amazon VPC 安全组 中所述添加 VPC 安全组入站和出站规则。

在以下主题中,您可以找到有关如何使用适用于 Windows File Server 的 FSx 跨可用区设置和使用 DFS 复制和 DFS 命名空间故障转移的描述。

文件系统维护窗口和 DFS 复制

为了帮助确保位于不同可用区的 FSx for Windows 文件系统的高可用性,我们建议您为两个 Amazon FSx 文件系统设置不重叠的维护窗口。这样做有助于确保您的文件数据在系统维护时段内继续可供应用程序和用户使用。

设置 DFS 复制

您可以使用 DFS 复制在两个 Amazon FSx 文件系统之间自动复制数据。这种复制是双向的,这意味着您可以写入任一文件系统,更改就会随即复制到另一个文件系统。

重要

您无法使用 Microsoft Windows 管理工具(dfsmgmt.msc)中的 DFS 管理 UI 来配置 FSx for Windows File Server 文件系统上的 DFS 复制。

  1. 启动您的实例并将其连接到您加入 Amazon FSx 文件系统的 Microsoft Active Directory,开始 DFS 管理流程。为此,请从《Amazon Directory Service 管理指南》中选择以下过程:

  2. 以文件系统管理员组成员的 Active Directory 用户身份连接到实例。在 Amazon 托管 AD 中,此组称为 Amazon 委派 FSx 管理员。在您自行管理的 Microsoft AD 中,这个群组被称为“域管理员”,或者使用您在创建时提供的管理员组的自定义名称。

    此用户还必须是被委派了 DFS 管理权限的组的成员。在 Amazon 托管 AD 中,该组称为 Amazon 委派分布式文件系统管理员。在您的自行管理的 AD 中,此用户必须是域管理员或您已向其委派 DFS 管理权限的其他组的成员。

    有关详细信息,请参阅《Amazon EC2 用户指南》中的 Connecting to Your Windows Instance

  3. 下载 fsx-dfsr-setu PowerShell p.ps1 脚本。

  4. 打开 “开始” 菜单并输入PowerShell。从列表中选择 Windows PowerShell

  5. 使用以下指定参数运行 PowerShell 脚本,在两个文件系统之间建立 DFS 复制:

    • DFS 复制组和文件夹的名称

    • 您要在文件系统上复制的文件夹的本地路径(例如 Amazon FSx 文件系统附带的默认共享的 D:\share

    • 您在先决步骤中创建的主要和备用 Amazon FSx 文件系统的 DNS 名称

    FSx-DFSr-Setup.ps1 -group Group -folder Folder -path ContentPath -primary FSxFileSystem1-DNS-Name -standby FSxFileSystem2-DNS-Name
  1. 启动您的实例并将其连接到您加入 Amazon FSx 文件系统的 Microsoft Active Directory,开始 DFS 管理流程。为此,请从《Amazon Directory Service 管理指南》中选择以下过程:

  2. 以文件系统管理员组成员的 Active Directory 用户身份连接到实例。在 Amazon 托管 AD 中,此组称为 Amazon 委派 FSx 管理员。在您自行管理的 Microsoft AD 中,这个群组被称为“域管理员”,或者使用您在创建时提供的管理员组的自定义名称。

    此用户还必须是被委派了 DFS 管理权限的组的成员。在 Amazon 托管 AD 中,该组称为 Amazon 委派分布式文件系统管理员。在您的自行管理的 AD 中,此用户必须是域管理员或您已向其委派 DFS 管理权限的其他组的成员。

    有关详细信息,请参阅《Amazon EC2 用户指南》中的 Connecting to Your Windows Instance

  3. 打开 “开始” 菜单并输入PowerShell。从列表中选择 Windows PowerShell

  4. 如果您的实例上尚未安装 DFS 管理工具,请使用以下命令进行安装。

    Install-WindowsFeature RSAT-DFS-Mgmt-Con
  5. 在 PowerShell 提示符下,使用以下命令创建 DFS 复制组和文件夹。

    $Group = "Name of the DFS Replication group" $Folder = "Name of the DFS Replication folder" New-DfsReplicationGroup –GroupName $Group New-DfsReplicatedFolder –GroupName $Group –FolderName $Folder
  6. 使用以下命令确定与各个文件系统关联的 Active Directory 计算机名称。

    $Primary = "DNS name of the primary FSx file system" $Standby = "DNS name of the standby FSx file system" $C1 = (Get-ADObject -Filter "objectClass -eq 'Computer' -and ServicePrincipalName -eq 'HOST/$Primary'").Name $C2 = (Get-ADObject -Filter "objectClass -eq 'Computer' -and ServicePrincipalName -eq 'HOST/$Standby'").Name
  7. 将您的文件系统添加为使用以下命令创建的 DFS 复制组的成员。

    Add-DfsrMember –GroupName $Group –ComputerName $C1 Add-DfsrMember –GroupName $Group –ComputerName $C2
  8. 使用以下命令将每个文件系统的本地路径(例如 D:\share)添加到 DFS 复制组。在此过程中,由 file system 1 作为主要成员,这意味着其内容会被最先同步到另一个文件系统。

    $ContentPath1 = "Local path to the folder you want to replicate on file system 1" $ContentPath2 = "Local path to the folder you want to replicate on file system 2" Set-DfsrMembership –GroupName $Group –FolderName $Folder –ContentPath $ContentPath1 –ComputerName $C1 –PrimaryMember $True Set-DfsrMembership –GroupName $Group –FolderName $Folder –ContentPath $ContentPath2 –ComputerName $C2 –PrimaryMember $False
  9. 使用以下命令在文件系统之间添加连接。

    Add-DfsrConnection –GroupName $Group –SourceComputerName $C1 –DestinationComputerName $C2

几分钟之内,两个文件系统都应开始同步之前 ContentPath 指定的内容。

设置 DFS 命名空间以进行故障转移

您可以使用 DFS 命名空间将一个文件系统设置为主文件系统,将另一个文件系统设置为为备用文件系统。由此,您可以配置在主服务器无响应时自动失效转移到备用服务器。使用 DFS 命名空间,您可以将不同服务器上的共享文件夹分组到一个命名空间,此命名空间中的单个文件夹路径可以将文件存储在多个服务器上。DFS 命名空间由 DFS 命名空间服务器管理,这些服务器会将映射 DFS 命名空间文件夹的计算实例定向到相应的文件服务器。

  1. 如果您尚未运行 DFS 命名空间服务器,请使用 s etu Amazon CloudFormation p-dfsn-Servers.Template 模板启动一对高度可用的 DFS 命名空间服务器。有关创建 Amazon CloudFormation 堆栈的更多信息,请参阅《Amazon CloudFormation 用户指南》中的在 Amazon CloudFormation 控制台上创建堆栈。

  2. 以 “ Amazon 委派管理员” 组中的用户身份连接到在上一步中启动的 DFS 命名空间服务器之一。有关详细信息,请参阅《Amazon EC2 用户指南》中的 Connecting to Your Windows Instance

  3. 打开 DFS Management 控制台。打开开始菜单,运行 dfsmgmt.msc。此操作将打开 DFS Management GUI 工具。

  4. 操作中,选择新命名空间,然后输入您为服务器启动的第一个 DFS 命名空间服务器的计算机名称,然后选择下一步

  5. 名称中输入您要创建的命名空间(例如 corp)。

  6. 选择编辑设置,然后根据您的需求设置相应权限。选择下一步

  7. 保持选中默认的基于域的命名空间选项,保持选中启用 Windows Server 2008 模式选项,然后选择下一步

    注意

    “Windows Server 2008 模式”是命名空间的最新可用选项。

  8. 检查命名空间的设置,然后选择创建

  9. 在导航栏的命名空间下选择新创建的命名空间后,选择操作,然后选择添加命名空间服务器

  10. Namespace server 中输入您已启动的第二个 DFS 命名空间服务器的计算机名称。

  11. 选择编辑设置,然后根据您的需求设置相应权限,然后选择确定

  12. 选择添加,在路径中输入主 Amazon FSx 文件系统上的文件共享的 UNC 名称(例如 \\fs-0123456789abcdef0.example.com\share)作为文件夹目标,然后选择确定

  13. 选择添加,在路径中输入备用 Amazon FSx 文件系统上的文件共享的 UNC 名称(例如 \fs-fedbca9876543210f.example.com\share)作为文件夹目标,然后选择确定

  14. 新文件夹窗口中,选择确定。新文件夹是使用命名空间的两个文件夹目标创建的。

  15. 对要添加到命名空间中的每个文件共享重复操作最后三个步骤。

  1. 如果您尚未运行 DFS 命名空间服务器,请使用 s etu Amazon CloudFormation p-dfsn-Servers.Template 模板启动一对高度可用的 DFS 命名空间服务器。有关创建 Amazon CloudFormation 堆栈的更多信息,请参阅《Amazon CloudFormation 用户指南》中的在 Amazon CloudFormation 控制台上创建堆栈。

  2. Amazon 委派的管理员组中用户的身份连接到在上一步中启动的 DFS 命名空间服务器之一。有关详细信息,请参阅《Amazon EC2 用户指南》中的 Connecting to Your Windows Instance

  3. 打开 “开始” 菜单并输入PowerShellWindows PowerShell 出现在匹配项列表中。

  4. 打开 Windows 的上下文(右键单击)菜单, PowerShell然后选择 “以管理员身份运行”。

  5. 如果您的实例上尚未安装 DFS 管理工具,请使用以下命令进行安装。

    Install-WindowsFeature RSAT-DFS-Mgmt-Con
  6. 如果您还没有现有 DFS 命名空间,则可以使用以下 PowerShell 命令创建一个命名空间。

    $NSS1 = computer name of the 1st DFS Namespace server $NSS2 = computer name of the 2nd DFS Namespace server $DNSRoot = fully qualified Active Directory domain name (e.g. mydomain.com) $Namespace = Namespace name you want to use $Folder = Folder path you want to use within the Namespace $FS1FolderTarget = Share path to Folder Target on File System 1 $FS2FolderTarget = Share path to Folder Target on File System 2 $NSS1,$NSS2 | ForEach-Object { Invoke-Command –ComputerName $_ –ScriptBlock { mkdir “C:\DFS\${using:Namespace}”; New-SmbShare –Name ${using:Namespace} –Path “C:\DFS\${using:Namespace}” } } New-DfsnRoot -Path "\\${DNSRoot}\${Namespace}" -TargetPath "\\${NSS1}.${DNSRoot}\${Namespace}" -Type DomainV2 New-DfsnRootTarget -Path "\\${DNSRoot}\${Namespace}" -TargetPath "\\${NSS2}.${DNSRoot}\${Namespace}"
  7. 要在 DFS 命名空间中创建文件夹,可以使用以下 PowerShell命令。此操作将创建一个文件夹,该文件夹会默认将访问此文件夹的计算实例定向到您的主 Amazon FSx 文件系统。

    $FS1 = DNS name of primary FSx file system New-DfsnFolder –Path “\\${DNSRoot}\${Namespace}\${Folder}" -TargetPath “\\${FS1}\${FS1FolderTarget}” –EnableTargetFailback $True –ReferralPriorityClass GlobalHigh
  8. 将您的备用 Amazon FSx 文件系统添加到同一 DFS 命名空间文件夹。如果访问该文件夹的计算实例无法连接到主 Amazon FSx 文件系统,则它们会回退到该文件系统。

    $FS2 = DNS name of secondary FSx file system New-DfsnFolderTarget –Path “\\${DNSRoot}\${Namespace}\${Folder}" -TargetPath “\\${FS2}\${FS2FolderTarget}”

现在,您可以使用先前指定的 DFS 命名空间文件夹的远程路径从计算实例访问数据。此操作会将计算实例定向到主 Amazon FSx 文件系统(如果主文件系统没有响应,则定向到备用文件系统)。

例如,打开开始菜单,输入 PowerShell。从列表中选择 Windows PowerShell 并运行以下命令。

net use Z: \\${DNSRoot}\${Namespace}\${Folder} /persistent:yes