Linux 文件服务器存储池

Linux 文件服务器存储池

是否可以通过 Samba 让 Linux 服务器将多个硬盘共享为一个存储池?这样,当我使用共享时,我就不必担心将数据保存到具有可用空间的某个驱动器,而是将数据保存到负责所有这些工作的池中。

我想我可以通过某种(软件)RAID 来实现这一点,但我的很多文件实际上并不需要进行RAID。我的目标是设置一个有约 500GB RAID 和几 TB 未RA​​ID 空间的设置。

我目前有一台轻量级的 W2008 服务器,想要转移到 Linux,这将是一个非常好的功能。

答案1

在 Linux 上,您可以使用 LVM 将多个硬盘 (PV) 聚集到一个卷组 (VG),并使用您希望通过 samba 共享的逻辑卷 (LV) 对其进行分区。

此链接了解更多信息。

LVM 架构

答案2

我赞同 Raphink 对 LVM 的建议(事实上,我赞同它)——这几乎正是 LVM 的设计目的,而且根据我的经验,它运行良好。

需要注意的一点是,在多块驱动器上使用 LVM 仅比 RAID0 稍微安全一点 - 如果一个驱动器发生故障,您可能会因为逻辑卷跨越驱动器边界而丢失不止一个驱动器的文件系统。因此,虽然“我的很多文件实际上不需要被突袭”,但请确保您对那些不太容易替换的文件有一个良好的备份计划。

如果您的存储服务器可能会看到大量活动,您可以考虑使用 RAID0 以及 LVM。这将显著提高许多 I/O 模式的性能,并且不会减少可用的总存储空间(因为 RAID0 不提供冗余,因此不会为镜像数据或奇偶校验块使用空间)。一旦您将一些驱动器绑定到 RAID0 阵列中,您就可以像任何其他驱动器/分区一样将该阵列设为 LVM PV,并使用逻辑卷根据需要划分空间。

当然,使用 RAID0 几乎肯定会损失一切如果一个驱动器坏了,但如果您有一个足以满足 JBOD 要求的备份计划(这就是您使用 LVM 所做的事情,它相当于一些 RAID 参考所称的“线性模式”),那么您就有一个足以满足 RAID0 上的数据要求的备份计划(任何说不是的人都对使用 LVM 的多个驱动器上的数据不够警惕!)。

您可以在同一驱动器上混合搭配 RAID 级别。在我控制的一台作为 VM 主机运行以进行开发和测试的机器上,其阵列中的驱动器有些部分是 RAID0(用于 VM 本身),有些部分是 RAID1(用于 VM 的备份)。每个驱动器被分成 ~100Gb 分区,每组或每个分区都可以是一个 RAID 阵列。每个驱动器上的前两个当前是 RAID0(由 LVM 链接为一个逻辑卷),后三个是 RAID1(再次链接为一个 LV),中间剩下的驱动器在需要更多空间时可以自由选择。如果这样做,您当然需要警惕 I/O 争用(这在我的例子中不是问题,因为两个 RAID 阵列很少同时看到明显的活动,因为 RAID1 组仅在进行新备份或恢复旧备份时才会访问)和当两个阵列都在使用时过多的磁头移动(因为它们位于驱动器的两端),但无论如何,您应该注意那些只使用 LVM 而没有任何 RAID 的情况。这种安排意味着我在安装时不必准确猜测机器需要多少高速(R0)空间和高安全(R1)空间之间的平衡X几个月后,我们无需妥协,只需采用单一 RAID10 阵列。

答案3

我还建议你看看虚拟文件系统其中还包含内置的驱动器池和 RAID 镜像。

许可方面存在一些问题,导致实施起来有些尴尬,但我已经在我的家用系统上使用 3 x 1TB 驱动器运行它,没有任何问题。

相关内容