我需要一些帮助来完成即将到来的迁移。存储团队已经实施了一个新的 netapp 堆栈。一旦我有了经过测试的脚本,我就需要在两个环境中迁移大约 400 台服务器。
每台服务器都有一个指向旧存储堆栈的当前 nfs 挂载。所有这些当前挂载都有不同的名称。
前任:/mnt/existing_mount
我需要挂载一个新的 NFS 共享,rsync 内容,并保留共享的原始名称。
这是我思考的过程:
- 停止写入
/mnt/existing_mount
(这可以通过 netapp 管理员禁用写入来完成) - 将
/mnt/existing_mount
名称拉入变量 - 将新的 nfs 卷挂载到
/mnt/new_mount
- rsync 所有文件到
/mnt/new_mount
(保留本地权限) - 卸载
/mnt/existing_mount
/mnt/new_mount
根据变量重命名
我这样做有效吗?有谁知道已经可以做到这一点的 ansible 剧本或脚本吗?
答案1
我们最近不得不对 Netapp 上的 NFS 共享进行类似操作。我们正在淘汰 Netapp 并转向 Nimble Storage。您的流程与我们所做的非常相似,只有一些例外。这是我们使用的高级流程。
- 使用 fstab 文件中的临时路径将新的 NFS 安装到服务器
- 使用 rsync 将现有文件从旧 NFS 复制到新 NFS
- 更新 fstab 文件并更改挂载点,以便旧 NFS 指向临时位置,新 NFS 指向与旧 NFS 曾经使用的名称相同的名称
- 防止写入旧 NFS
- 使用 rsync 将所有文件从旧 NFS 复制到新 NFS,以捕获第一次复制过程中发生的任何更改
我们用它迁移客户电子邮件的邮件存储。此过程允许我们在系统运行时移动邮件,当我们在更改 NFS 共享的挂载点名称并重新同步最后的更改后重新挂载 NFS 共享时,仅会出现 5 分钟的短暂服务中断。