存储迁移服务常见问题解答 (FAQ)

本文包含有关使用存储迁移服务迁移服务器的常见问题解答 (FAQ)。

从传输中排除哪些文件和文件夹?

存储迁移服务不会传输可能会干扰 Windows 操作的文件或文件夹。 具体而言,下面是不会传输或移动到目标上 PreExistingData 文件夹中的内容:

  • WindowsProgram FilesProgram Files (x86)Program DataUsers
  • $Recycle.binRecyclerRecycledSystem Volume Information$UpgDrv$$SysReset$Windows.~BT$Windows.~LSWindows.oldbootRecoveryDocuments and Settings
  • pagefile.syshiberfil.sysswapfile.syswinpepge.sysconfig.sysbootsect.bakbootmgrbootnxt
  • 源服务器上的、与目标上排除的文件夹冲突的任何文件或文件夹。
    例如,如果源上有一个 N:\Windows 文件夹并且它已映射到目标上的 C:\ 卷,则不管该文件夹包含哪些内容,都不会传输它,因为它会干扰目标上的 C:\Windows 系统文件夹。

是否迁移已锁定的文件?

存储迁移服务不会迁移应用程序独占锁定的文件。 该服务会自动重试 3 次,每次尝试后延迟 60 秒,你可以控制尝试次数和延迟。 你还可以重新运行传输,以便仅复制先前由于共享冲突而跳过的文件。

是否支持域迁移?

存储迁移服务不允许在 Active Directory 域之间迁移。 服务器之间的迁移始终将目标服务器加入同一域。 可以从 Active Directory 林中的不同域使用迁移凭据。 存储迁移服务支持在工作组之间迁移。 无法迁移未加入域的 NetAPP CIFS 实例。

是否支持将群集用作源或目标?

在 Windows Server 2019 上安装累积更新 KB4513534 或后续更新后,存储迁移服务支持从/向群集迁移,而在 Windows Server 2022 上可以现成地支持这种迁移。 这包括从源群集迁移到目标群集,以及从独立源服务器迁移到目标群集,以实现设备合并目的。 但是,无法将群集迁移到独立服务器。 可以从 Samba 和 NetApp CIFS 服务器迁移到群集。

是否支持除 Windows Server 以外的目标?

存储迁移服务支持迁移到 Windows Server 2022、Windows Server 2019 和运行这些操作系统的 Windows 故障转移群集。 它不支持迁移到 Samba、NetApp 或 Azure 文件存储。 如果使用最新版本的 Windows Admin Center 和 Windows Server 2022 或装有累积更新 KB5006744 的 Windows Server 2019,则存储迁移服务支持迁移到运行启用了云分层的 Azure 文件同步的 Windows Server 或群集。

是否迁移本地组和本地用户?

在安装累积更新 KB4513534 或后续更新后,存储迁移服务支持迁移本地用户和组。 它不支持从 NetApp CIFS 服务器迁移本地用户和组。

是否支持域控制器迁移?

存储迁移服务目前不会迁移 Windows Server 2019 或 Windows Server 2022 中的域控制器。 解决方法是,只要 Active Directory 域中有多个域控制器,就在迁移域控制器之前降级域控制器,然后在切换完成后提升目标。 如果你选择迁移域控制器源或目标,则无法进行切换。 从/向域控制器迁移时,切勿迁移用户和组。

存储迁移服务迁移哪些属性?

存储迁移服务可迁移 SMB 共享的所有标志、设置和安全性。 存储迁移服务迁移的标志列表包括:

  • Share State
  • Availability Type
  • Share Type
  • Folder Enumeration Mode *(also known as Access-Based Enumeration or ABE)*
  • Caching Mode
  • Leasing Mode
  • Smb Instance
  • CA Timeout
  • Concurrent User Limit
  • Continuously Available
  • Description
  • Encrypt Data
  • Identity Remoting
  • Infrastructure
  • Name
  • Path
  • Scoped
  • Scope Name
  • Security Descriptor
  • Shadow Copy
  • Special
  • Temporary

是否可以将多个服务器合并到一个服务器?

Windows Server 2019 和 Windows Server 2022 随附的存储迁移服务版本不支持将多个服务器合并到一个服务器。 合并的示例是,将三个独立的源服务器(它们可能具有相同的共享名称和本地文件路径)迁移到虚拟化这些路径和共享的单个新服务器,以防止发生重叠或冲突,然后应答先前的所有三个服务器名称和 IP 地址。 但是,你可以将独立服务器迁移到单个群集上的多个文件服务器资源。

是否可以从除 Windows Server 以外的源迁移?

在安装累积更新 KB4513534 或后续更新后,存储迁移服务支持从 Samba Linux 服务器迁移。 请参阅支持的 Samba 版本和 Linux 发行版列表的要求。 在安装累积更新 KB5001384 后,存储迁移服务支持从 NetApp FAS 阵列迁移。

是否可以迁移以前的文件版本?

Windows Server 2019 和 Windows Server 2022 随附的存储迁移服务版本不支持迁移文件的先前版本(使用卷影复制服务创建)。 仅迁移当前版本。

优化清点和传输性能

存储迁移服务包含一个多线程读取和复制引擎(称为存储迁移服务代理服务),该引擎速度很快,并且能够提供许多文件复制工具所不具备的完美数据保真度。 虽然默认配置对于许多客户而言是最佳的,但在清点和传输期间,仍可通过多种方式提高 SMS 性能。

  • 将 Windows Server 2019 或 Windows Server 2022 用作目标操作系统。 Windows Server 2019 和 Windows Server 2022 包含存储迁移服务代理服务。 安装此功能并迁移到 Windows Server 2019 或 Windows Server 2022 目标时,所有传输将在源和目标之间无障碍地运行。 如果目标计算机是 Windows Server 2012 R2 或 Windows Server 2016(这意味着传输时需要跳跃两次,因此速度更慢),则在传输期间,此服务将在业务流程协调程序上运行。 如果有多个作业在 Windows Server 2012 R2 或 Windows Server 2016 目标上运行,则业务流程协调程序将成为瓶颈。 最新版本的 Windows Admin Center 会自动配置代理服务(如果尚未安装)。

  • 安装最新的每月累积更新。 我们在多个更新中改进了存储迁移服务代理服务,以提高传输和重新传输性能以及清点性能。 安装 KB4580390 2020 年 10 月累积更新或更高版本以显著提升速度,或使用 Windows Server 2022 进行迁移。

  • 更改默认的传输线程。 存储迁移服务代理服务在给定的作业中同时复制 8 个文件。 可以通过在每个运行存储迁移服务代理的节点上调整以下注册表 REG_DWORD 十进制值来增加同时复制线程的数量:

    HKEY_Local_Machine\Software\Microsoft\SMSProxy

    FileTransferThreadCount

    在 Windows Server 2019 和 Windows Server 2022 中的有效范围为 1 到 512。 每次创建新作业时,无需重启服务即可开始使用此设置。 请慎用此设置;设置为较高的值可能需要更多核心、存储性能和网络带宽。 与默认设置相比,将此项设置为过高的值可能会导致性能下降。

  • 更改默认的并行共享线程。 存储迁移服务代理服务在给定的作业中同时从 8 个共享复制。 可以通过在存储迁移服务业务流程协调程序服务器上调整以下注册表 REG_DWORD 十进制值来增加同时共享线程的数量:

    HKEY_Local_Machine\Software\Microsoft\SMS

    EndpointFileTransferTaskCount

    在 Windows Server 2019 和 Windows Server 2022 中的有效范围为 1 到 512。 每次创建新作业时,无需重启服务即可开始使用此设置。 请慎用此设置;设置为较高的值可能需要更多核心、存储性能和网络带宽。 与默认设置相比,将此项设置为过高的值可能会导致性能下降。

    FileTransferThreadCount 与 EndpointFileTransferTaskCount 之和是存储迁移服务在作业中可以同时从一个源节点复制的文件数。 若要添加更多并行源节点,请创建并运行更多的同时作业。

  • 增加核心和内存。 我们强烈建议在源、业务流程协调程序和目标计算机至少提供两个处理器核心或两个 vCPU,提供更多的核心或 vCPU 可以显著提高清点和传输性能,尤其是与 FileTransferThreadCount(如上所述)相结合时。 传输大于常用 Office 格式文档大小(数 GB 或更大)的文件时,增加内存(默认的最低内存为 2 GB)将有助于提高传输性能。

  • 创建多个作业。 创建包含多个服务器源的作业时,将以串行方式联系每个服务器以进行清点、传输和切换。 这意味着,每个服务器必须完成其所处的阶段,然后另一个服务器才会启动。 若要并行运行更多服务器,只需创建多个作业,每个作业仅包含一个服务器。 SMS 最多支持 100 个同时运行的作业,这意味着,单个业务流程协调程序可以并行化许多 Windows Server 2019 和 Windows Server 2022 目标计算机。 如果目标计算机是 Windows Server 2016 或 Windows Server 2012 R2,则不建议运行多个并行作业,因为在目标上未运行 SMS 代理服务的情况下,业务流程协调程序必须自行执行所有传输,因而可能成为瓶颈。 我们已计划在更高版本的 SMS 中添加在单个作业中并行运行服务器的功能。

  • 将 SMB 3 与 RDMA 网络配合使用。 如果从 Windows Server 2012 或更高版本的源计算机传输,SMB 3.x 支持 SMB 直通模式和 RDMA 网络。 RDMA 将从主板 CPU 进行传输所导致的大部分 CPU 开销转移到了板载 NIC 处理器,从而降低了延迟和服务器 CPU 利用率。 此外,ROCE 和 iWARP 等 RDMA 网络的带宽通常比典型 TCP/以太网要高得多,其每个接口可以达到 25、50 和 100 Gb 的速度。 使用 SMB 直通通常会将传输速度限制因素从网络转移到下层的存储本身。

  • 使用 SMB 3 多通道。 如果从 Windows Server 2012 或更高版本的源计算机传输,SMB 3.x 支持多通道复制,这可以大幅提高文件复制性能。 只要源和目标都具备以下组件,此功能就会自动运行:

    • 多个网络适配器
    • 一个或多个支持接收方缩放 (RSS) 的网络适配器
    • 使用 NIC 组合配置的多个网络适配器之一
    • 一个或多个支持 RDMA 的网络适配器
  • 更新驱动程序。 根据需要,在源、目标和业务流程协调程序服务器上安装最新的供应商存储和机箱固件及驱动程序、最新的供应商 HBA 驱动程序、最新的供应商 BIOS/UEFI 固件、最新的供应商网络驱动程序和最新的主板芯片组驱动程序。 根据需要重启节点。 请查看配置共享存储和网络硬件的硬件供应商文档。

  • 启用高性能处理。 确保服务器的 BIOS/UEFI 设置启用高性能,例如禁用 C-State、设置 QPI 速度、启用 NUMA 和设置最高内存频率。 确保 Windows Server 中的电源管理设置为高性能。 根据需要重启。 在完成迁移后,不要忘记恢复适当的状态。

  • 优化硬件。查看 Windows Server 2016 性能优化指南以优化运行 Windows Server 2022、Windows Server 2019 或 Windows Server 2016 的业务流程协调程序和目标计算机网络子系统性能优化部分包含特别有用的信息。 对于 Windows Server 2022,我们发布了一篇名为“Windows Server 2022 性能优化指南”[/windows-server/administration/performance-tuning/] 的已更新指南。

  • 使用更快的存储。 虽然升级源计算机存储速度可能有难度,但应该确保目标存储的写入 IO 性能至少与源存储的读取 IO 性能一样快,以确保传输中不会出现不必要的瓶颈。 如果目标是 VM,出于迁移目的,请确保它至少在虚拟机监控程序主机的最快存储层中运行,例如,在闪存层上运行,或者在利用镜像全闪存或混合空间的存储空间直通 HCI 群集上运行。 完成 SMS 迁移后,可以将 VM 实时迁移到较慢的层或主机。

  • 使用 SMB 压缩。 如果源服务器和目标服务器是 Windows Server 2022,你可以启用 SMB 压缩,以便在处理较大文件时大幅提升性能。 查看 (SMB 压缩)[/windows-server/storage/file-server/smb-compression]。

  • 更新防病毒定义。 始终确保源和目标运行最新修补版本的防病毒软件,以确保尽量降低性能开销。 作为测试,可以暂时排除源服务器和目标服务器上你要清点或迁移的文件夹的扫描。 如果传输性能得到改进,请联系防病毒软件供应商获取说明、更新版本的防病毒软件,或预期性能下降的解释。

是否可以从 NTFS 迁移到 ReFS?

Windows Server 2019 和 Windows Server 2022 随附的存储迁移服务版本不支持从 NTFS 迁移到 ReFS 文件系统。 可以从 NTFS 迁移到 NTFS,或者从 ReFS 迁移到 ReFS。 这是设计使然,因为功能、元数据存在许多差异,并且 ReFS 不会从 NTFS 复制其他方面的数据。 ReFS 旨在用作应用程序工作负载文件系统,而不是通用文件系统。 有关详细信息,请参阅复原文件系统 (ReFS) 概述

是否可以移动存储迁移服务数据库?

存储迁移服务使用默认安装在隐藏的 C:\programdata\microsoft\storagemigrationservice 文件夹中的可扩展存储引擎 (ESE) 数据库。 添加作业和完成传输后,此数据库将会增长,如果不删除作业,在迁移数百万个文件后,它可能会占用大量驱动器空间。 如果需要移动数据库,请执行以下步骤:

  1. 在业务流程协调程序计算机上停止“存储迁移服务”服务。

  2. 取得 %programdata%/Microsoft/StorageMigrationService 文件夹的所有权

  3. 添加你的用户帐户以获取该共享及其所有文件和子文件夹的完全控制权。

  4. 将文件夹移动到业务流程协调程序计算机上的另一个驱动器。

  5. 设置以下注册表 REG_SZ 值:

    HKEY_Local_Machine\Software\Microsoft\SMS DatabasePath = 其他卷上的新数据库文件夹的路径

  6. 确保“SYSTEM”和“网络服务”帐户对该文件夹的所有文件和子文件夹具有完全控制权

  7. 删除你自己的帐户权限。

  8. 启动“存储迁移服务”服务。

存储迁移服务是否可以从源计算机迁移本地安装的应用程序?

否,存储迁移服务不会迁移本地安装的应用程序。 完成迁移后,请将源计算机上运行的所有应用程序重新安装到目标计算机。 无需重新配置任何用户或其应用程序;存储迁移服务将对客户端隐藏服务器更改。

目标服务器上的现有文件会发生什么情况?

执行传输时,存储迁移服务会寻求从源服务器镜像数据。 目标服务器不应包含任何生产数据或连接的用户,因为这些数据可能会被覆盖。 默认情况下,作为保护措施,首次传输会创建目标服务器上所有数据的备份副本。 默认情况下,在所有后续传输中,存储迁移服务会将数据镜像到目标;这意味着,它不仅会添加新文件,而且还会任意覆盖任何现有文件并删除源上不存在的任何文件。 此行为是有意而为的,目的是为源计算机提供完美保真度。

传输 CSV 中的错误编号是什么意思?

在传输 CSV 文件中发现的大多数错误都是 Windows 系统错误代码。 可以通过查看 Win32 错误代码文档来了解每个错误的含义。

在切换期间,目标服务器上的现有证书是否会更新?

目标服务器可以包含其本地证书存储中的证书(在切换之前颁发),这些证书的使用者、使用者可选名称或其他字段包含该服务器的名称。 发生切换和重命名服务器时,这些证书不会更新。 必须使用当前部署方法(例如组策略或 Web 注册)向重命名的服务器重新颁发证书。

可以通过哪些选项提供反馈、提交 bug 或获得支持?

若要提供有关存储迁移服务的反馈,请使用以下方法:

  • 使用 Windows 10 包含的“反馈中心”工具,选择“建议功能”,并指定“Windows Server”类别和“存储迁移”子类别
  • 向 smsfeed@microsoft.com 发送电子邮件

若要提交 bug,请使用以下方法:

  • 使用 Windows 10 包含的“反馈中心”工具,选择“报告问题”,并指定“Windows Server”类别和“存储迁移”子类别
  • 通过 Microsoft 支持创建支持案例

若要获取支持,请查看以下内容: