如何在 Linux 上进行快速可靠的数据损坏恢复备份?

如何在 Linux 上进行快速可靠的数据损坏恢复备份?

我需要一个弹性备份解决方案。我使用 tar 和 pigz,但我担心 tar.gz 损坏并丢失数据。每个项目文件夹的项目数据在 4TB 到 25TB 之间。我们谈论的是总共 240TB 到 400TB 的数据以及即将到来项目......我还负责设置多个文件服务器,包括 HW 和 SW raid 和 SSD 缓存。而且它开始变得令人毛骨悚然 :)。

我有一些想法,但我需要你的帮助、建议和对这些想法的批判性评价。或者你可以直接给我另一种解决这个问题的方法。感谢你到目前为止的阅读,也感谢你提前做出的贡献。

思路:

  • 首先,我将获取大小为 du -a 的文件列表,然后计算将它们分成 4GB 的块。然后,我使用 gzip(或 pigz?或 lzma?)通过多个进程对这些文件列表进行 tar 处理。我希望这样,每个 tar.gz 损坏不会造成超过 4GB 的损失。然后,我将逐个对所有文件(包括 tar.gz 文件)进行 crc 并转储它们,以便将来进行比较以检查文件是否损坏。

  • 我需要保持 2 个工作 raid 服务器同步。希望 rsync 能够处理每晚服务器每天最多产生 1 TB 数据的情况... Active Work Server 具有硬件 raid 1,带有 3x megasas Raid 2108 设备 3*8 Raid 1 卷,然后使用 mdadm raid 0 将它们条带化,这样我就得到了 raid 10,然后我将在它们上面添加带有 bcache 的 SDD mdadm raid 0 缓存。借助 megasas raid 2108 设备,该系统可以热插拔吗?第二台服务器将是相同 3 x raid 0 的 raid 60 版本(8 磁盘 Raid6),没有缓存...

    SV-1(速度):bcache((3 x(8x10TB megasas 2108 Raid1)mdadm Raid0)+(2x512GB SSD mdadm Raid0))

    SV-2(空间):3 x(8x10TB megasas 2108 Raid6)mdadm Raid0

  • 我在 vmware 和 qemu 上模拟了一些场景 - 覆盖其中一个 raid 磁盘以损坏数据、删除移动磁盘文件(立即弹出)。到目前为止,成功重建 - 恢复的效果似乎并不好。我希望硬件 raid 卡能有所作为。我会在真机上尝试...

所以我有这种混乱,老实说,我其实很喜欢这种混乱。你能帮我减轻一些压力吗?因为我读了很多东西,有些人说某个版本的 gzip 有问题。其他人说 xz 不是压缩格式,而是一种容器格式,它不符合 UNIX 做好一件事的理念。有人说 raid 不是备份(我同意),而且可能会有无声位损坏。还有人说,如果不将某些驱动器标记为热备件,raid 就无法重建自身。

这些都是非常严肃的文章,其中一些甚至是学术性的...其中还有一些 stack overflow 和 serverfault 页面。

重点是数据对我们非常重要。

答案1

Gzip 本身非常稳定,但它只是一种压缩,不会单独进行备份。

而 tar 只是归档软件。它无法独自完成现代环境中备份所需的所有任务。

您可能需要查看一些专为备份设计的软件,它将提供数据一致性等功能。

相关内容