Centos 克隆实时服务器?

Centos 克隆实时服务器?

我们有 2 台服务器,一台是 4 年历史的老服务器,另一台是刚买的,两台硬件都差不多,在老服务器上我们使用 centos 4.5,过去 1900 天老服务器都没有重启过。

现在我们想要进行克隆而无需重启旧服务器(oldserver = serverone),所有生产数据都在我们想要克隆的 serverone 上。

我们采取了如下措施:-

SERVERONE 以 root 身份运行

tar cfl /boot /tmp/boot.tar
tar cfl /(root) /tmp/root.tar
tar cfl /data /tmp/data.tar

使用 centos 的第一张 CD 将 SERVERTWO 作为救援模式

fdisk -l /dev/sda

创建新分区

/dev/sda1 * /boot 300MB (same as serverone)
/dev/sda2   <swap> 2G
/dev/sda3   /  

fdisk -l /dev/sdb

创建新的 par

/dev/sdb1   /data

mkfs.ext3 /dev/sda1
mkfs.ext3 /dev/sda3
mksf.ext3 /dev/sdb1
mkswap /dev/sdb2

来自SERVERTWO

cd /dev/sda1
scp root@serverone:/tmp/boot.tar .

cd /dev/sda3
scp root@serverone:/tmp/root.tar .

cd /dev/sdb1
scp root@serverone:/tmp/data.tar .

cd /dev/sda1
tar xf boot.tar

cd /dev/sda3
tar xf root.tar

cd /dev/sdb1
tar xf data.tar

chroot /mnt/root

grub-install

如果您对上述解决方法有任何建议或有任何可以制作 .iso 直播并且我们可以在 servertwo 上使用的工具,请帮助我。

答案1

如果您像这样备份数据并且进程仍在写入磁盘文件,则将面临不一致的风险(文件未存档,因为它们是在 tar 运行完成目录后写入/更改的)。

为了避免这种情况,您应该确保没有任何内容写入磁盘。为此,您需要结束文件系统上所有具有打开的写入句柄的进程(lsof /mountpoint | egrep '[0-9]+[wu]'这会有所帮助)并将文件系统重新挂载为只读(mount -o remount,rw /mountpoint)。在这种情况下,您可能需要运行fsck /mountpoint以检查文件系统错误。之后,您可以简单地使用dd进行逐字节克隆。

这样,您便可以避免重新启动,但尽管如此,该服务器上所有有意义的服务都会停机。

答案2

如果它们确实相同,为什么不直接从 CD 启动新的盒子,将物理分区安装在某处并 rsync 数据。

请注意,无论你选择哪条路线,你仍然需要在之后进行清理,即

  • 截断 mtab

  • 安装引导程序

  • 检查 fstab 命名模式是否匹配(即使用相同的设备文件或更改磁盘 ID)

  • 如果适用,更改主机名/ip

相关内容