本文介绍如何在使用 Azure 文件同步时将文件从一个 SMB Azure 文件共享迁移到另一个 SMB Azure 文件共享,即使文件共享位于不同的存储帐户中也是如此。 此过程因是否启用了云分层而异。
你可以在 Azure 门户的服务器终结点属性中检查云分层的状态。 如果云分层已关闭,请参阅 在云分层关闭时迁移文件。 如果已启用云分层,请参阅在启用云分层时迁移文件。
在云分层功能关闭时迁移文件
如果未使用云分层,则所有数据都位于 Azure 文件同步 服务器本地,因此可以使用 Azure 文件同步 将这些数据上传到另一个文件共享。
以下说明假定同步组中有一台 Azure 文件同步服务器。 如果你有多个 Azure 文件同步 服务器连接到现有共享,先移除所有其他服务器端点。 在一个终结点上执行完整迁移,然后将其他服务器终结点重新连接到新的同步组。
请确保服务器终结点上的云分层已关闭。 可以在服务器终结点属性下从 Azure 门户检查和更改状态。
运行 Invoke-StorageSyncFileRecall cmdlet 命令,并使用 -PerFileRetryCount 参数,以确保任何召回失败的文件都会重试。 由于首次运行此 cmdlet 时可能存在正在进行的云分层会话,因此建议运行它两次并查看摘要输出,以确保在继续操作之前,所有文件都已完全召回到服务器本地。
创建新的同步组,并将云终结点关联到创建的 Azure 文件共享。 同步组必须位于与新的目标 Azure 文件共享处于同一区域的存储同步服务中。
现在有两个选项:可以使用同一本地文件服务器将数据同步到新的 Azure 文件共享(建议),也可以移动到新的 Azure 文件同步服务器。
移动到新的 Azure 文件同步服务器(可选)
如果计划使用相同的本地文件服务器,可以跳过本部分,并继续连接到新的 Azure 文件共享。
如果要迁移到新的本地 Azure 文件同步 服务器,可以使用存储迁移服务 (SMS)来执行以下操作:
- 复制您的所有共享级权限
- 进行多次检查,以同步迁移期间发生的更改
- 统筹切换到新服务器
只需设置新的本地文件服务器,然后将新服务器连接到 Azure 文件同步和新的云终结点。 然后使用 SMS 从源服务器迁移到目标服务器。
或者,你也可以手动将源共享复制到现有文件服务器上的另一个共享。
连接到新的 Azure 文件共享
按照这些说明连接到新的 Azure 文件共享。
移除现有的服务器端点。 这个操作保留了所有数据,但会移除与现有同步组和文件共享的关联。
如果新的同步组不在同一个存储同步服务中,就将服务器从该存储同步服务 中注销 ,并注册到新服务中。 请记住,一个服务器只能注册到一个存储同步服务。
启用云分层时迁移文件
如果你使用Azure 文件同步的云分层功能,请从Azure内部复制数据,以防止源端不必要的云调用。 迁移过程会因你是在同一区域内迁移还是跨区域迁移而略有不同。 迁移过程在切换期间始终需要一些停机时间。
Azure 文件同步注册的服务器只能加入一个存储同步服务,并且存储同步服务必须与共享位于同一区域中。 因此,如果你在不同区域之间移动,需要迁移到连接到目标共享的新 Azure 文件同步 服务器。 如果你在同一区域内移动,可以使用现有的 Azure 文件同步 服务器。
Important
在迁移场景中装载 Azure 文件共享时,必须使用存储帐户密钥以确保 VM 有权访问所有文件。 请勿使用域标识。
在同一区域内迁移
如果已启用云分层,并且要在同一区域内迁移,请按照以下说明操作。 可以使用现有的 Azure 文件同步服务器(查看示意图),也可以选择创建新服务器(如果担心影响现有共享)。
创建新的 SMB Azure 文件共享作为目标共享。
在现有存储同步服务中创建新的同步组,并将云终结点关联到目标共享。 请勿将现有 Azure 文件同步服务器连接到新的同步组。
将 Windows Server VM (IaaS VM) 部署在源和目标文件共享所在的同一 Azure 地区中。 为了获得良好性能,建议使用至少56 GiB内存和高级存储的多核虚拟机类型。
在 IaaS VM 中,为源和目标文件共享使用不同的磁盘。 将一个小磁盘用于连接到现有同步组的源数据,以及一个可以保存整个数据集的较大磁盘。
在 IaaS VM 上安装 Azure 文件同步代理并注册服务器。
在 Azure 门户中,转到原始同步组(源共享),并在 IaaS VM 上创建服务器终结点(使用较小的磁盘)。 在该服务器终结点上启用云分层。
在 Azure 门户中,转到新的同步组(目标共享),并在 IaaS VM 上创建服务器终结点(使用较大的磁盘)。
你现在可以进入IaaS虚拟机,开始在源共享和目标共享之间进行 初始数据复制 。
跨区域迁移
如果云分层已启用,并且要迁移到另一个 Azure 区域中的文件共享,请按照这些说明操作。 若要跨区域迁移,需要迁移到连接到目标共享的新 Azure 文件同步服务器(查看示意图)。
在新区域中创建一个新的 SMB Azure 文件共享作为目标共享。
创建一个新的本地 Azure 文件同步文件服务器,该服务器将同步到新地区中的目标共享。 请勿将新的服务器连接到目标同步组。
使用小磁盘为源数据部署源 Azure 文件同步 VM。 在源共享同步组中创建服务器终结点。 在该服务器终结点上启用云分层。
在源共享所在的同一地区中,部署目标 Azure 文件同步 VM,并将此服务器注册到新地区中的存储同步服务。 使用一个可以保存整个数据集的较大磁盘。
在 Azure 门户中,进入新的 Storage Sync Service,进入目标共享的同步组,在目标 Azure 文件同步 虚拟机上创建一个服务器端点。
在目标 Azure 文件同步 VM 上,将驱动器挂载到源 Azure 文件同步 VM 上的源共享。
你现在可以在目标 Azure 文件同步 虚拟机上开始在源和目标共享之间进行初始数据复制。
用 Robocopy 进行初始数据复制
使用 Windows 中内置的工具 Robocopy 将文件从源共享复制到目标共享。
在 Windows 命令提示符处运行此命令。 或者,作为最佳实践,你可以加入用于日志记录功能的标记(/NP、/NFL、/NDL、/UNILOG)。
robocopy <source> <target> /MIR /COPYALL /MT:16 /R:2 /W:1 /B /IT /DCOPY:DAT如果源共享文件夹挂载为 s:\,目标共享文件夹挂载为 t:\,则命令如下所示:
robocopy s:\ t:\ /MIR /COPYALL /MT:16 /R:2 /W:1 /B /IT /DCOPY:DATRobocopy 正在进行时,将本地的 Azure 文件同步 服务器连接到目标同步组。 一开始要配置新的服务器端点位置,设置高空闲空间策略,因为你是在复制最新的变更,需要确保有足够的空间。 例如,如果你当前的缓存位置是
D:\cache,就用T:\cache来表示新的服务器端点。 如果您使用的是现有的 Azure 文件同步服务器(用于同一区域内的迁移),请将本地缓存放在与现有终结点分开的单独卷上。 使用同一个卷是可以的,只要目录不是同一个目录,或者不是连接到源共享服务器端点的子目录。 在该端点启用云分级,避免任何数据自动下载到本地服务器。 在目标同步组创建服务器端点后,给它一些时间同步命名空间数据。等待初始 Robocopy 运行成功完成,并等待从源到目标的同步完成。 再等一个小时,确保所有剩余的更改都同步。 要检查所有更改是否同步,请参阅 “我如何监控当前同步会话的进展?”
同步最终更改
在同步最终更改之前,请关闭现有共享项的 SMB 共享功能,或者至少将其设置为只读。 关闭 SMB 共享后,请等待一小时,以确保所有剩余更改都同步到 Azure。
如果源文件共享与目标之间是连通的,则可以使用 Robocopy 将最近的更改复制到目标:
robocopy s:\ t:\ /mir /copyall /mt:16 /DCOPY:DAT /XD S:\$RECYCLE.BIN /XD "S:\System Volume Information"
如果无法将最新更改直接复制到新文件共享,请在 IaaS VM 上再次运行 Robocopy 镜像命令。 这个命令会同步自初始运行以来发生的所有更改,跳过已经复制过来的内容。
robocopy s:\ t:\target /mir /copyall /mt:16 /DCOPY:DAT
IaaS VM 同步完成后,本地目标代理也将是最新的。
在新服务器终结点上启用共享
如果你要迁移到新的 Azure 文件同步 服务器,先把旧服务器改名为随机名称,然后把新服务器重命名为和旧服务器同名。 这样,最终用户的文件共享URL保持不变。
启用新的共享 T:\cache。 所有相同的文件ACL都在那里。 重新创建旧共享上存在的任何共享级别权限。
删除旧的服务器终结点和同步组
确认新同步组一切运行正常后,可以取消配置旧同步组。 先删除服务器终结点。 在移除服务器终结点之前,无需将所有数据召回到旧服务器。