镜像到外部USB硬盘驱动器的Linux服务器

我的谷歌必须吮吸。 我还没能find一个很好的解决scheme如下:

  • 商品硬件上众多的Linux服务器
  • 试图做一个恢复镜像复制到外部硬盘
  • 外部硬盘驱动器比源硬盘驱动器小,但比数据大
  • 外部驱动器通过usb2连接(慢速)
  • 服务器的范围从20GB的数据到400GB的数据
  • 服务器是远程的,所以手动访问是一个痛苦
  • 需要复制启动文件。
  • 目前空的外部驱动器

基本上,寻找一种方法来使用内部运行的Linux服务器内部的重影解决scheme,而不是启动一个光盘等rsync / cpio解决scheme,我看着不使用GRUB / dev / proc等伟大的工作。

我明白,由于系统不离线,它不会是文件更改的“镜像”图像,但那没关系。

有没有任何免费/商业产品可以工作?

要自己做到这一点,你会在初始设置后看2步过程。

这个初始设置是在目标磁盘上创build一个文件系统。 你不能复制文件系统本身,因为它的格式化为磁盘的大小,而且你必须复制整个分区,包括包含已删除文件的空间。

所以做一些像

mkfs.ext3 / dev / sdb1

现在,每次要备份驱动器时,请执行以下操作

  1. 复制bootloader

    dd if = / dev / sda of = / dev / sdb bs = 446 count = 1

  2. 复制文件系统

    mount / dev / sdb1 / mnt / backup; rsync -HaxX –delete / / mnt / backup /; umount / dev / sdb1

这种方法将涉及最less的IO,但会给你一个可启动的驱动器。

你想创build一个在线Linux服务器的备份映像?

我的build议是使用dd通过ssh或netcat隧道:

如何使用dd,netcat和ssh隧道设置磁盘克隆?

你可能有磁盘一致性问题,所以我build议尝试后续的数据。

编辑:

我想我只是想到,当你说“服务器是远程的,所以手的访问是一个痛苦”,你也说外部硬盘连接到远程服务器,而不是本地计算机。 我正在改变我的答案,以反映我的新理解。

我将分区外部驱动器以紧密匹配源磁盘的分区结构(注意,由于目标磁盘较小,因此保留大部分数据的分区将需要更小),请标记适当的分区活动,格式分区(交换等),并使用rsync将每个源服务器的文件系统的内容同步到每个分区。 在rsync上使用“archive”模式参数将确保符号链接,设备,所有权,权限等被保留。

完成后,将引导加载程序安装到外部磁盘上。 对于GRUB,你所说的是为外部驱动器和分区获取适当的“hd”号和分区号,运行grub ,并执行root (hdX,Y)和“setup(hdX)”(代替驱动器和X和Y的分区号)。

实际上,远程testing启动会很痛苦,除非你有远程控制台访问。