迁移要搬四样东西
把数据拷到新服务器只是第一步,完整迁移还包括:文件系统权限(含继承标志与显式拒绝)、共享定义本身(共享名、缓存模式、加密要求等属性)、用户端的访问入口(UNC 路径或域命名空间),以及所有硬编码了旧路径的应用与脚本。漏掉任何一项,用户看到的都是「能连上但不对」:能进目录但没有权限、有权限但共享名不同、共享名对但应用报路径不存在。
基本信息
| 适用平台 | Windows Server 文件共享;Samba 与 Linux NAS 同理 |
|---|---|
| 复制工具 | robocopy(保留权限与时间戳)、rsync(Linux 侧) |
| 共享定义 | Get-SmbShare / New-SmbShare 或服务端配置导出 |
| 入口抽象 | DFS 命名空间、别名或统一 UNC 约定 |
| 验证重点 | 权限、时间戳、所有者、共享属性、应用路径 |
常见迁移方式对比
| 方式 | 优点 | 注意点 |
|---|---|---|
| 直接复制到新路径 | 操作最简单 | 权限与时间戳容易丢失,必须用保留模式 |
| DFS 命名空间切换 | 用户端路径不变 | 需要域环境与命名空间规划 |
| 保留旧共享只读 | 回退容易 | 必须明确截止时间,避免长期双写 |
| 存储级迁移 | 对用户透明 | 依赖厂商工具与后端能力 |
复制与共享导出
复制与共享导出
# Windows:保留权限、所有者、时间戳并镜像目录结构
robocopy D:\data E:\data /MIR /COPYALL /DCOPY:T /R:2 /W:2 /LOG:C:\temp\migrate.log
# Windows:导出共享定义与属性,便于在新服务器重建
Get-SmbShare | Where-Object Name -ne 'IPC$' | Select-Object Name,Path,CachingMode,EncryptData
# Linux/Samba:用 rsync 保留 ACL 与扩展属性
rsync -aHAX --numeric-ids /srv/data/ /newdata/迁移后一致性检查
迁移后一致性检查
robocopy D:\data E:\data /MIR /L /COPYALL # 试运行模式列出差异,不实际复制
icacls D:\data /save acl_src.txt /T # 保存源端权限清单
icacls E:\data /save acl_dst.txt /T # 保存目标端权限清单
getfacl -R /srv/data > acl_src.txt # Linux 侧导出 ACL 供比对漫游配置与文件夹重定向这类依赖固定路径的功能,在迁移里最容易出问题:用户登录配置文件里往往写死了旧的服务器名,服务器改名或下线后用户会长时间卡在登录阶段。迁移前应把这些引用集中清单化,而不是等用户报障后逐个改。
新旧共享同时在线的时间窗口必须设硬性截止并禁止双写。长期并存会让两端各有一部分最新文件,之后无论怎么合并都可能丢失其中一侧的更新。