构建网络存储服务器,不同RAID配置的权衡?

构建网络存储服务器,不同RAID配置的权衡?

我想在家里安装一台Linux服务器,以便能够在家里的每个设备之间共享文档和多媒体文件。

我的机器有 3 个 HDD 插槽,我需要至少 3.5 TB 的存储空间,并且我希望我的文件在发生磁盘故障时是安全的。

我目前正在研究目前价格大致相同的两种选择:

  • 选项1: 3*2TB RAID 5
  • 选项2:RAID 1 中的 2*4TB,节省了一个可用于操作系统的 HDD 插槽。

我的第一个问题是: 这两种选择都有技术优势吗?在它们之间进行选择时我应该考虑什么?

我的第二个问题是:如果选项1,我应该在哪里安装系统?我应该创建一个在所有磁盘上复制的 50GB RAID 卷来保存系统,还是应该将其放置在一个不进行复制的特定驱动器上?那么交换呢?

答案1

权衡是:

  • 假设磁盘具有相同的可靠性,选项 2 (2xRAID1) 更可靠。基本上,我们假设每年(或任何时间段)有 N% 的单个磁盘发生故障。如果您有两个磁盘,其中任何一个发生故障的可能性都会更大。如果你有三张磁盘,其中任何一张的机会就更大。因此,3 磁盘 RAID5 更有可能出现(单个磁盘)故障。任何一个阵列都可以在单磁盘故障时幸存下来。在一次故障之后,RAID5仍然有更多的磁盘,因此更容易遭受第二次故障。尽管这也取决于重建时间,这对于 2TB 磁盘来说可能更好一点,尽管它也取决于磁盘的速度。然而,由于没有热备件,我预计重建时间实际上主要取决于管理员安装替换磁盘所需的时间。

  • 选项 1 (3xRAID5) 对于单个文件具有更好的读取性能(由于条带化)。写入性能可能更差,但这取决于情况。对于多个文件,RAID1 可以从两个磁盘读取。

  • 选项 2 (RAID1) 具有更简单的“几何结构”(数据在磁盘上的布局方式)。如果由于某种原因您必须在不访问 RAID 软件的情况下从中恢复数据(这在硬件 RAID 的情况下更有可能,例如,如果控制器损坏),那就更容易了。

  • 两个选项的正常管理应该是相同的。您通常会使用相同的命令来更换故障驱动器、启动和停止阵列等。

还有另一个您没有提到的选项:3xRAID1。您可以将 3 个磁盘放入 RAID1。这意味着即使在丢失磁盘后,您仍然完全冗余,因此,例如,(以前)未检测到的坏扇区并不意味着重建时数据丢失。写入可能会慢一些(由于额外的镜像)。成本是主要缺点。

提高数据持久性的另一种方法是使用冷备用驱动器(位于某处架子上的驱动器,准备在其中一个活动驱动器发生故障时安装)。这意味着您无需等待几天即可更换驱动器到达。

如果支持的话,还有文件系统选项(例如,ZFS 和 btrfs 都支持镜像数据)。

至于操作系统,除非不可能,否则我会将其安装在阵列上。例如,在 Linux x86-64 上,我有一个单独的 /boot(或 EFI 机器的 /boot/efi)阵列,这将是跨所有磁盘的小型 RAID1。一旦你加载了内核和 initramfs(实际上,一旦你加载了 grub2),你就可以使用 RAID 级别、逻辑卷等的完整选择。

最后,请记住,RAID 不能替代备份。例如,如果一台计算机感染了勒索软件,它会加密并删除您的所有文件,并且 RAID 软件会忠实地将这种破坏复制到您提供的尽可能多的磁盘上。与意外删除、导致文件系统损坏的错误等相同。并且它不会阻止自然或人为灾难摧毁整个服务器。

答案2

我建议您不要贪婪并使用 RAID 1。当您想要扩展文件系统时,它还应该为您提供更多选择。

不是使用单个驱动器作为操作系统驱动器,而是将操作系统放在您的 raid 卷上?

也许是选项 3、三向镜?没有双关语的意思。 ;o)

您打算如何进行 RAID?硬件还是软件?

相关内容