需要有关硬盘克隆的建议

需要有关硬盘克隆的建议

我的 cent os 服务器的主硬盘 sda 有很多“离线不可纠正扇区”,因此我计划克隆该驱动器。但克隆整个驱动器不是一个可行的解决方案,因为它是一个具有 450G 数据的实时服务器。而且驱动器响应缓慢。

我需要找到一种有助于最大程度减少停机时间的解决方案。我计划对另一个磁盘进行与主磁盘相同的分区。然后仅克隆 mbr。rsync 所有分区中的数据。然后移除主磁盘并从第二个驱动器启动。

我不确定它是否有效。请告诉我您的建议。任何替代解决方案也值得赞赏。

谢谢,阿乔

答案1

具体假设:

-/dev/sda 是活动磁盘,/dev/sdb 是替换磁盘(您可以通过在 USB 外壳/机箱中安装 sdb 并通过它进行所有格式化/同步来进一步减少停机时间)
-sdb 至少与 sda 大小相同

请务必检查并进行调整。我这样做之前并不知道您的分区如何布局以及挂载点是什么等。同步后的文件改组等将是必要的。请密切注意 rsync 行,因为我假设 / 是 sda1,而您希望它在 sdb1 上。

  
# 复制 mbr。这比 sfdisk 有额外的好处,因为
# bootloader 也被克隆了  
dd if=/dev/sda of=/dev/sdb bs=512 count=1

#可选:扩大 sdbX 的分区,其中 X 是目标分区号  
#parted /dev/sdb  
#(parted) 打印
#(parted) 调整 X 大小

# 创建新的文件系统并挂载  
对于 $(ls -1 /dev/sdb?) 中的 i;执行 mkfs.ext3 $i;完成  
对于 $(ls -1 /dev/sdb? | cut -f3 -d“/”);mkdir -p /mnt/$i;\
卸载/dev/$i;安装/dev/$i/mnt/$i;完成  

# 开始同步。排除我们不需要的东西以节省时间/空间。  
echo -e“+/dev/console\n+/dev/initctl\n+/dev/null\n+/dev/zero\n\n-/tmp/*\n-\
/proc/*\n- /dev/*\n- /sys/*\n- /tmp/*\n- /mnt/*\n- /media/*" >> /tmp/exclude.rsync.lst  
rsync -az --exclude-from=/tmp/exclude.rsync.lst /. /mnt/sdb1/.  

#在此处插入后同步调整。仔细检查文件/路径位置等。

恭喜!完成了。重要的部分是排除并确保在修改分区表之前 dd mbr。

答案2

我认为你的计划没问题,你也可以先 rsync 传输所有数据,然后在最后再执行一次,同步第一次 rsync 期间发生的其余更改。我在用新硬件替换旧服务器时也做了类似的事情,而且成功了。

相关内容