进行服务器数据迁移的不太复杂的方法?

进行服务器数据迁移的不太复杂的方法?

对于SO来说,这可能是一个过于具体/个人的问题,但这里是:

我继承了一台当前运行单个硬盘驱动器的服务器,通过默认的 Ubuntu 16.04 服务器设置,该服务器正在以下分区方案中运行其磁盘:

sda1 : 512 Mb : Boot : primary/physical partition
sda2 : Rest of Disk : Extended Partition
sda5 : Rest of Disk : Logical, Linux LVM Partition

LVM 中有一个卷组,仅由该磁盘组成。它分为:

swap_1 (2.00 GB)
root (remaining space)

最终目标是将该驱动器的内容(和结构)移动到两个更大的、单独地可启动 RAID1 驱动器。

话虽这么说,我的“目标”是对于新 sdb、sdc 的每个新成员:

/dev/md0 将成为 sdb1 和 sdc1 之间的 raid1,它将被格式化并且(希望)是 sda1 的副本。 Md0 不会被 LVM 处理而是直接使用(这样我们就可以从它启动)

/dev/md1 将成为 sdb2 和 sdc2 之间的 raid1。 /dev/md1 将用作新 VG 的唯一 PV,与上面类似地划分(2GB 用于交换,其余用于存储)。

因此,我假设的过程包括使用恢复 CD 启动该系统,设置 md0 和 md1,在 md1 上创建 LVM,然后使用 dd 将数据从 sda1 复制到 md0,将 /dev/vg1/root 复制到 /dev/vg2/分别为根。当然,还要将 grub 安装到 /sdb 和 /sdc。

初步测试看起来很有希望,但是有更好的实践方法吗?

答案1

您正在做的事情似乎没有什么特别错误(或复杂)的地方,但由于您使用的是 LVM,因此您还有另一个选择:您可以用来pvmove将数据移动到新数组。优点是您可以在线完成此操作,几乎消除了停机时间。

要使用 pvmove,您需要扩展现有卷组 ( pvcreate /dev/md1 && vgextend existing-group /dev/md1),然后使用 pvmove 移动逻辑卷 ( pvmove --atomic /dev/sda5 /dev/md1),最后从卷组 ( vgreduce existing-group /dev/sda5) 中删除 sda5。

您可以在线复制 /boot(使用dd),因为在正常操作期间不会使用它 - 只需先卸载它即可。

无论哪种方式,请确保更新您的 initramfs — 它现在需要启动 mdraid,而以前不需要。

计划下一次重新启动并准备一张恢复光盘,以防万一出现问题(例如,initramfs 未正确生成)。当然,首先测试和阅读手册页是一个好主意。

相关内容