适用于异构硬盘组的 RAID 类文件系统

适用于异构硬盘组的 RAID 类文件系统

在过去的几年里,我积累了一套非常多样化的硬盘,它们的大小和速度各不相同,用于存储我的私人数据。我计划将它们放在一个自建的 Linux 文件中,以减少手动复制本地数据的麻烦,减少重复文件并更好地利用给定的资源。此外,我预计未来几年我的存储需求将会增加。因此,应该可以动态添加磁盘,也可以移除单个驱动器,用更新、更大的驱动器替换它们。

如果我没记错的话,构建文件管理器最常见的选项是使用(软件) RAID 来提高可靠性,并在外部或可移动驱动器上使用额外的备份方案,以防止意外丢失重要数据。

由于 RAID5/RAID6 需要大小相同的驱动器,因此它不能满足我对更动态的磁盘添加/删除方案的需求。因此,我正在寻找 FLOSS 文件系统或块设备抽象层,它提供:

  • 可以动态添加和删除硬盘
  • 复制/冗余类似于 RAID5,可能每个文件或目录都可调整
  • 不需要额外的(特别是专用的)机器(但如果以后需要的话可以添加第二台机器,那就更好了,但这不是必需的)

我研究了一下像 XtremeFS 这样的分布式文件系统,但还没有找到一个能满足所有要求并在单台机器上运行良好的系统。您知道有什么解决方案吗?

答案1

简单来说,不管你信不信,硬件解决方案更容易重建更可靠而不是软件解决方案,而现有的解决方案通常实施成本较低

除非您非常精通存储管理,否则构建存储系统通常不是一个好主意。一般来说,老话“如果你不得不问,它不适合你”是适用的。

底线:我建议购买新硬盘(如今这些硬盘与我的数据相比很便宜 - 如果你的数据现在不值得购买一套硬盘,休斯顿,我们遇到了问题.)并设置一个全新的raid5/6来处理它,以及一些冷替代品。

更重要的是,请注意备份和冗余是存储管理中的两个独立实体。冗余用于在单个设备发生故障时保持服务在线,而备份用于在整个设备发生故障时。例如,如果电源突然发生故障并尝试将一些 100V 交流电泵入 12V 导轨(这不太可能,但是......)别管 RAID5,别管 RAID6 - 一切都会消失。您需要备份来处理这些情况。对于备份,请遵循以下简单规则:

  1. 进行备份离线
  2. 进行备份场外
  3. 进行备份经常

祝你好运!

答案2

我会研究 ZFS。它(或它的某些实现)提供了您特别要求的一些功能(跨异构介质的冗余、能够轻松应对主轴丢失(如果存在冗余数据))。

BTRFS 理论上正在朝着这个方向发展,目前我不知道 ZFS 是否具有 Linux(甚至 Solaris)下上述功能,但至少它是一条研究途径。

除此之外,我会研究 LVM 和创造性分区 + MD 或 LVM 功能,以获得类似 RAID 的特性。LVM 应该可以让您轻松调整分区大小(他们称之为其他名称)。不过,我不认为这是一种低维护方法。

答案3

在 Linux 上,将AUFS磁盘描绘成一个文件系统,然后SnapRAID保护。有一个直接的写法如何配置 Snapraid 和 AUFS作者:Wouter Dullaert。

AUFS 还有其他替代方案,例如文件系统覆盖文件系统。OverlayFS 已经合并到 Linux 内核,因此从长远来看,它可能是一种比 AUFS 更受支持的路线。

Windows 允许安装分区作为目录来自磁盘管理工具,然后从那里使用 SnapRAID 如上所述(它是多平台的)

答案4

应该是可能的(抱歉,我对 LINUX 不是很深入)在异构的磁盘驱动器上构建多个 RAID 卷;从而最大限度地利用空间,同时保持冗余。

假设您有 3 个 1TB 驱动器、2 个 2TB 驱动器和 1 个 4TB 驱动器。您可以使用所有 6 个驱动器中的 1TB 构建 5TB 空间的 RAID 5 卷。您可以使用剩余 3 个驱动器中的 1TB 构建另一个 2TB 的 RAID 5 卷。

在 Windows 小型企业服务器中,这些卷会跨接;显示为单个卷。我希望我能更有效地就如何在 LINUX 中执行此操作提出具体建议。

您是否应该添加另一个 4TB 驱动器:然后您可以将两个阵列都增加 1TB,并使用每个 4TB 驱动器上可用的 2TB 空间添加第三个 2TB 阵列。

至于硬件与软件:硬件无疑更快;但成本更高,并且如果硬件控制器本身出现故障,可能需要您找到相同的控制器或丢失所有数据。

一如既往:冗余不能替代备份。

相关内容