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