我正在安装一台服务器机器(旨在运行 Debian GNU/Linux),除其他外,它还将用于备份我们的代码。现在,我不需要硬盘驱动器的所有内容都具有错误恢复能力 - 服务器的根文件系统、守护进程的日志等 - 可能会损坏。但如果我将它们放在一个硬盘驱动器上,我会失去对称性,我猜这可能会损害 RAID 性能。
我还要指出的是,这台服务器并不是任务关键型的,也就是说,如果它发生故障,虽然可以容忍,但也很烦人。只有数据完整性才是关键的。
无论如何,我有 3 个硬盘,每个 1 TB。我可以提供更多信息,但是 - 根据我的描述,您将如何对硬盘进行分区?您将选择哪个 RAID 级别,以及在哪些磁盘上?您将选择哪种 LVM 配置?
编辑:事实证明我有一个硬件 RAID 控制器。这会改变我的偏好吗?
答案1
您的两个选择是 RAID 1 或 RAID 5。
如果您需要这个系统正常运行,并且即使丢失磁盘,数据也能安全无虞,我会在每个磁盘上配置一个 /boot 副本,然后在每个磁盘上设置一个交换分区,然后在每个磁盘上设置大小相同的第三个分区,我会在 2 个磁盘上设置 RAID1,第三个分区作为热备用。这样做的缺点是,您的存储空间将只有不到 1T。
如果您可以承受停机,但数据必须安全,那么我会将 1 个磁盘设置为 OS 磁盘,然后将其他两个磁盘设置为 RAID 1 以存储数据。如果您丢失了 OS 磁盘,则在更换/重建时会停机。如果您丢失了数据磁盘,则需要尽快更换它,但数据仍会存在。如果可以,请购买一个较小、较便宜的磁盘作为 OS 磁盘,并将第三个 1T 保留为冷备用。您仍然只有大约 1T 的数据存储空间,好处是您可以在更换 OS 磁盘时使用实时发行版勉强维持。
如果您可以承受较长时间的停机,或者只需从其他来源替换所有数据,那么我会在每个磁盘上配置一个 /boot 副本,然后在每个磁盘上设置一个交换分区,然后在每个磁盘上设置大小相同的第三个分区,我会设置 RAID 5。这将为您提供大约 2T 的可用空间,但如果您丢失了一个磁盘,您可以重建阵列。但在重建阵列之前,所有数据都将不可用。另一种选择是添加一个 8G 或更大的快速 USB 驱动器,并在其上安装操作系统和交换,然后对三个磁盘进行 raid 5 并将全部空间用于数据。
正确的答案将来自于在发生磁盘故障/损坏时对数据会有什么样的期望。
答案2
跨 3 个磁盘的 RAID 5 将为您提供 2TB 的总存储容量,并且您能够承受组中 1 个磁盘的丢失。
确保您有另一份异地数据副本。此设置将导致单个磁盘全部丢失,但电涌或其他事故可能会同时损坏多个磁盘。
答案3
在每个磁盘上为 /boot 创建一个小分区。为了获得加分,请将其设置为 3 路 raid-1。(如另一个答案所建议的那样,在每个磁盘上放置 /boot 的副本)
用大分区创建一个大的 raid5。在上面放 LVM。我可能只放一个大的 / 和一个交换分区,但为操作系统等创建一个单独的 / 分区,然后为用户数据创建一个分区,这并不是不合理的。
我会将整个 RAID 用作 LVM 空间。我不会用逻辑卷完全填充 LVM 空间 - 留出一些空间用于将来的扩展和/或快照。
确保安装一个 cron 作业来不时清理 raid,每周一次是个不错的选择。mdadm 在 redhat-ish linux 上附带了这样的作业。
另一位发帖者说你需要在异地备份,这是正确的。不要把 RAID 误认为是备份。