在 Linux 中同时备份多个硬盘的配置

在 Linux 中同时备份多个硬盘的配置

我正在建立一个备用站。

我希望能够获取包含其分区表和所有分区(而不是一次一个分区)的 HDD 映像,以便轻松进行恢复。我想同时使用不同的 HDD 进行恢复,每个 HDD 都是 USB。

我尝试过 partimage,但它似乎一次只能备份一个分区。我尝试过 clonezilla,但它似乎需要一台客户端机器,而这并不是我所需要的。

我将非常感谢 Linux 解决方案,但如果需要的话,我可以在虚拟机中使用它,即使我希望它尽可能成为一个自动化过程。

它必须支持 NTFS,因为我进行的大多数备份都将使用 NTFS。

注意:
clonezilla 似乎很有趣,因为据我了解,客户端会构建一个包并通过网络将其发送到服务器。我想构建与通过 USB 插入的 HDD 相同的易于恢复的包,而无需任何额外的机器或网络参与。

答案1

与 wombie 的担忧相呼应,我认为您不希望服务器尝试并行执行大数据复制作业。

无论您是尝试复制多个分区(wombie 预测这会导致磁盘头震动并减慢速度)还是尝试通过 USB 总线复制多个磁盘(其中每个数据流都可能导致中断,从而减慢彼此的速度),除非您正在处理专门设计用于处理来自多个客户端的高吞吐量的传输技术,否则如果您尝试并行执行这些操作,那么您将减慢速度。

例如,尝试通过 10BaseT 以太网 FTP 单个文件,我可以获得超过 1 MByte/sec(超过 8Mbit/sec)的吞吐量,但如果我尝试从不同的机器 FTP 两个文件,即使是到同一台服务器,吞吐量也会下降到大约 150 KByte/sec/每次传输(即大约 300 KByte/sec,2.4MBit/sec)。(这是从内存中得出的,可能需要 3 个传输站才能使 10BaseT 吞吐量从 ~90% 下降到 ~30%。不过,由于冲突,添加第二个站确实会降低整体效率。)

此外,这是一个两难问题:能够妥善处理多路复用高吞吐量流的协议通常会带来高开销。能够妥善处理多路复用高吞吐量流的网络协议的经典示例:Token-Ring、FDDI、ATM。例如,ATM 至少会给传输带来 10% 的开销(单元中的 53 个字节中,有 5 个是报头)。

无论您使用 dd、partimage 还是 clonezilla,我建议:

  1. 编写一个脚本,按顺序检查是否有要复制的磁盘
  2. 每次复制一个磁盘
  3. 环形

然后,当你将磁盘添加到链中时,它将被复制。就像一些 bittorrent 客户端会定期检查某个文件夹中的 torrent,然后自动处理该 torrent。

如果可以的话,我还建议不要使用 USB,或者至少使用多个 USB 卡,以便每个磁盘都可以有自己的 USB 总线。

答案2

关于 clonezilla,大概来说,客户端和服务器可以位于同一台机器上。安装服务器,也许用一台单独的机器进行测试,然后安装客户端并让它连接到 localhost 或服务器的指定 IP。

答案3

你不能只生成多个副本吗dd

答案4

不,您不想这样做。一次读取一个分区是正确的做法,因为这样磁盘磁头就可以直接从磁盘中传输数据。如果您尝试同时读取同一磁盘上的多个分区,驱动器将花费一半的时间在磁盘的不同部分之间来回切换,并且您将无法获得相同的数据传输速度,这意味着您的备份将花费更长的时间。

如果您想要对整个硬盘(包括分区表)进行单一映像处理,那么只需将dd整个映像读入文件(运行输出gzip以避免浪费大量磁盘空间存储磁盘上的空白空间)。

相关内容