我最近拿起了一堆硬件来构建一个新的家庭媒体服务器。完全配置后,它将有 20 个 1TB 可热插拔 SATA-II 驱动器在 Linux 系统下运行。迄今为止,我已经在跨越多达八个驱动器的小型服务器中使用了 RAID5 和 RAID6(未结合使用),但我想知道这是否仍然是一个好主意。
更具体地说,我将在系统中有六个 SATA 卡——四个 PCI 卡,每个卡有四个 SATA 端口,两个 PCI-Express x1 卡,每个卡有两个 SATA 端口。(这个硬件还不能完全确定——顺便说一句,如果我可以改进它,请告诉我。这些插槽是当前主板上唯一可用的插槽。)
我主要是在寻找关于我应该使用什么低级软件系统(RAID、LVM、组合,完全是其他东西)来实现这个系统的建议。要求:
- 它必须最多可扩展到 20 个驱动器 - 我从四个开始,然后逐步提高(一次很可能是一两个驱动器)以达到最大容量。
- 它必须在Gentoo Linux上运行——我对我使用的软件非常灵活,但不会为它切换整个操作系统。
- 它必须足够可靠以承受驱动损失——在任何给定时间至少有 20 个。服务器大部分时间都在离我几百英里的地方,一旦驱动器坏了,我无法让任何人在那里更换驱动器,因此它需要能够承受一两个驱动器故障一小会儿。如果整个控制器卡可能出现故障并且阵列保持正常,则可获得奖励。
- 它必须具有合理的容量——我希望至少有 15TB,在 20 个中,实际可用于数据存储(而不是 RAID 奇偶校验或类似的)。只要不牺牲太多完整性,容量越大越好。
- 它必须向操作系统提供一个统一的文件系统- 20 个单独的 1TB 驱动器,全部具有单独的文件系统并单独安装,将无法管理(即使忽略这种设置中的驱动器故障会破坏 TB 数据的事实)。
在提出建议时请记住,我不介意为此投入大量工作 - 不需要简单或即时的设置,只要它可以工作并且在未来是可靠的。关于在其之上分层的文件系统的建议也将受到欢迎。我目前正在使用 JFS,因为它似乎表现良好,并且在安装读写时可以增长,但如果有改进,我可以接受它。
我会(最终)在 Linux 软件上使用两个 9 磁盘 RAID6 阵列和两个热备件(鉴于您与硬件相距甚远,您希望最大限度地减少更多磁盘发生故障的机会窗口) RAID,顶部有 LVM。LVM 允许您轻松扩展存储,将多个 RAID 阵列统一到单个卷组中,并在分配存储方面提供灵活性(如果您有一个合适的文件系统允许在线调整大小)。
Linux 软件 RAID 允许您轻松地将更多磁盘添加到现有阵列中,从而满足您随着时间的推移慢慢添加磁盘的需要。
在某些时候,机器其余部分的可靠性会低于磁盘的可靠性。
当您声称这是“家庭媒体服务器”时,我假设您将使用消费级部件。光盘可能会出现故障,但在某些时候机器的其余部分也可能会出现故障。
如果您希望它可靠,请至少使用冗余电源(无论如何,20 个光盘将需要相当多的电源)。我不知道所有这些 SATA 卡有多可靠,我想它们可能不会失败很多。
此外,您将需要 ECC RAM,否则您推送的数据量意味着迟早几乎可以保证数据错误。
根据我的经验,主板偶尔会出现故障,但电源却经常出现故障。
如果您确定使用 Linux,请查看 ZFS-FUSE,但如果您可以更灵活地考虑 NexentaStor,它是具有更多(Debian)Linux 风格的用户空间的 Solaris 内核,用作文件存储设备。
在一两年内,BTRFS 可能会很有趣,但还没有。
如果您仍然想要一个统一的文件系统,您的另一个选择是让 LVM 呈现基于两个 RAID6 集的单个 PV,并在此之上使用 XFS。
同样,目前 1.5TB 驱动器似乎是性价比曲线中的最佳点(至少在澳大利亚)
您基本上是在使用 FUSE 包装器来描述Tahoe(尽管 Tahoe 的分发和安全方式也对您的需求来说是过度的)。Tahoe 设置起来有点麻烦,并不是最快的,但它基本上是您应该关注的方向。您可以配置 Tahoe(或类似XtreemFS的系统,我没有任何经验)对于您喜欢的任何冗余级别。我会在机器上的每个驱动器上设置一个 Tahoe 节点。然后对其进行配置,以便将放置在 Tahoe FS 上的文件拆分为 20 个共享,以便可以使用其中的任何 15 个进行恢复。这将使您比您想要的 20 TB 中的 15TB 少一点,但可以在五个同时发生的驱动器故障中幸存下来。如果您不那么保守,您可以获得更多容量,但风险更大。
IMO,Tahoe 的另一大优势是它可以让您扩展到真正的分布式设置。正如其他人指出的那样,您可能有 20 个驱动器,但在只有一个机箱的设置中仍然存在很多单点故障。使用 Tahoe,您可以安全地扩展它以推动整个创作。