我刚刚构建了一台全新的 PC 作为文件服务器。它有一个用于操作系统(ubuntu 12.04)的 60gb SSD,以及 8 个 2tb 数据驱动器。我正在寻找最安全、最稳定的方法来设置具有冗余的单个巨型存储池。
注意事项:
- 我的首要任务是保护数据。可用性、可靠性、弹性、可恢复性和风险管理。所有这些词都意味着不会丢失我的文件。
- 我不仅关心 raid 类型的性质所隐含的理论风险,而且还关心简单性和最小故障点的实际考虑。特别是考虑到我不是 RAID 或 FS 技术方面的专家,而且我的故障排除能力仅限于我可以谷歌搜索的内容。
- 这不是一个写入繁重的数据库服务器,就像交易日的数据库服务器一样,它主要用于保存各种流媒体,以及我所有用于网络访问的用户文件。
- 我最糟糕的噩梦是发现由于一些混沌理论的 alpha 粒子从太阳射出并落在电容器中,导致我的 HDD/元数据/主板/软件/任何导致整个阵列无法恢复的错误。厄运&H8!
- 因为我将流式传输数据,所以读取速度优势值得赞赏(但次要)
- 最终我可能想添加驱动器,使用 LVM 池 RAID1 对,这很容易。是否必须使用空白驱动器从头开始重建 RAID6 或 RAID10 阵列?
- 如果这是相关的,我将 8 个驱动器插入华擎 Z77 Extreme4 主板上的 8 个板载 SATA 插槽,其中 4 个是 SATA2,4 个是 SATA3。操作系统位于连接到 PCIe SATA 控制器的 SSD 上。8GB 内存。
- 参见 #1 - 我的首要任务是保护数据。
我读到 RAID6 实际上风险较小,因为任何 2 个磁盘都可能发生故障,而不是每个镜像对只有一个,而且 RAID6 的主要缺点是写入速度,我并不关心这一点。我已经接受了我一半的驱动器丢失了镜像,所以我不想听起来很贪心,即使考虑 RAID6,但如果它实际上更安全,读取速度更快,并且让我保留 12 GB 而不是 8 GB,也许它会很愚蠢不要。或者也许我错过了更大的图景
我想我要问的是 8-12 驱动器阵列的缺点,或者哪一个最适合数据保护,以及较小程度上的读取速度。
- LVM(4x2tb) + 独立磁盘的夜间 cronjob 备份
- LVM(4xRAID1)
- (RAID10)
- (RAID6)
谢谢你的帮助!
最安全?两轴RAID60。或者更好,ZFS。不要忘记备份!
我真的很不理解你最后的考虑 --如果我丢了我的文件,我会用烤面包机洗澡。 这会阻止人们回应,即使它应该很有趣(或者是吗?)。
继续前进,数据弹性存储是一个神话,一切都可能失败。做好准备。根据您的要求,一些观察,
[1] 您的单个 SSD 驱动器可能会发生故障。您不是 RAID 或 FS 方面的专家,您将如何恢复数据?它是企业级SSD吗?SSD 将如何帮助您?
[2] 我假设您使用的是“桌面”类驱动器。它们不是为 24x7 运行而设计的,也不是为使用寿命更长而设计的。典型的台式机硬盘提供 1 年或 2 年保修,而企业级硬盘提供 3 至 5 年保修。
[3] 您正在使用板载主板 RAID。虽然这可能有效,但很难设置和管理。真正的硬件 RAID 控制器可为您提供更好的保护、性能并且更易于使用。如果你负担得起,那就去吧。确保 RAID 控制器上的固件是最新的。
[4] 您的主板、RAM、电源、电源都可能出现故障。您是否准备好从其中任何一个恢复数据,因为失败可能会导致数据损坏/丢失。如果不关闭 HDD 驱动器上的缓存(将其设置为直写模式),您可能会在传输过程中丢失一些数据。
这些只是一些提示,
如果您负担得起,并且数据非常重要,请构建另一个存储(具有不同制造商的组件)并使用 DRBD(或其他任何东西)实现冗余,以便在两个存储服务器之间进行复制。在工作中,我们在企业级硬件上使用 GlusterFS 保持 3 的复制因子。
希望这可以帮助。
如果您的数据真的那么重要,以至于丢失它就意味着用电器洗澡,那么就没有办法需要第二台服务器来镜像设备,并拥有真正的备份。您在一台服务器上所做的任何事情都至少有一个单点故障。(至少,服务器本身 - 对于最基本的示例,如果发生火灾怎么办?或者 PSU 熄灭并带走其他所有东西?等等。)
出于同样的原因,您将需要具有某种保留的真正备份。没有任何备份意味着数据损坏也可能会破坏整个系统,因为如果您将一个系统复制到另一个系统,您很可能也会复制发生的任何损坏。
由于这里还没有人说过,RAID6 和大型 SATA 磁盘并不是一个好的组合。它确实提供了比 RAID5 设置更多的冗余,但还不够。在如此大的磁盘上,您几乎肯定会在其中一个奇偶校验条带上出现读取错误,这实际上意味着在其中一个磁盘上的某个地方(但您不知道在哪里),您实际上在 RAID5 中运行. 在磁盘出现故障之前,一切都很好。然后你在失败的阵列 RAID 上运行,这对关键数据来说风险太大。
关于磁盘故障,RAID6 的问题与 RAID5 相同——奇偶校验位计算很复杂,需要大量时间、资源和 I/O 来完成,这意味着你实际上面临更大的风险重建期间的阵列故障比你想象的要多,而且我实际上已经看到了 RAID6 阵列(甚至带有热备用)在重建期间发生故障的噩梦场景 - 考虑到重建所需的所有 I/O,这并不令人震惊,但如果它发生在你身上,那将是毁灭性的。
我建议在 2xRAID10 中运行它,因为它的价值 - 您可以获得性能优势以及一些冗余措施。在镜像 RAID 中重建故障磁盘比在任何基于奇偶校验的系统中都快得多,因此也更安全。如果重要的话,我家里有一个 12 磁盘 RAID6 阵列(12x2TB 近线 SAS),所以我绝对喜欢 RAID6,但它对于关键数据来说不够安全。
最后一点,你不想触电自杀。这是非常痛苦的,所以你可能会通过不同的自杀方法更好地服务于你。
越简单越好。LinuxSoftRAID-6 上的 LVM 看起来很合理。另一个需要考虑的重要事情是 FS 在上面。到目前为止,在 Linux 世界中只有 Btrfs 具有内置的数据验证机制。但我怀疑它的开发人员是否会分享您对 bath-n-toaster 的态度,以防万一。;)
无论如何,在使用 RAID6 之前,先练习丢失 1 和 2 个磁盘。更进一步——取出 3 或 4 个,然后让它恢复原状。使用 LSR,这是很有可能的。还有一条建议——使用它的位图,它会为你节省很多时间。
如果你打算走 RAID 6 路线,那就帮自己一个忙:访问 eBay 并挑选几张 PERC 6/i 卡(一张作为备用)和两根 SFF-8484 到 4xSFF-8482 电缆进行连接驱动器。以后你会感谢我的。
如果您决定使用 ZFS,那么请全力以赴并设置 NexentaStor。这可能是您在数据的预定位置(呃,家中)获得的最安全的数据。
并仔细考虑备份策略;RAID 和 ZFS 都不是备份。TB 级数据的备份既不容易也不便宜;这通常不是您可以通过 Internet 完成的事情,而且 TB 级的“云”存储无论如何都会比驱动器让您损失更多。
提供三种服务...快速、优质和便宜。选择两个。
没有“最佳”之分,只有“在 xYz 权衡下更好”。
考虑到您列出的一些折衷方案,放弃 DASD(直接附加存储设备)可能是个好主意。您可能会发现查看 GlusterFS(Red Hat Storage)或 CEPH 之类的东西更有用。例如,Gluster 在文件服务器集群上复制数据,该集群可能会丢失一个或多个磁盘,并可能丢失一个或多个节点并保持数据完整性。
总的来说,您的列表适合两个或更多解决方案。您可能需要为 RDBMS 使用快速 DASD 或 SAN,在这种情况下,您将需要花费时间和金钱投资于镜像等。其他用例可能非常适合 Gluster 之类的东西,它可以使扩展更容易,并且可以使您无需了解每种 RAID 类型的复杂性。
总之,您需要对您的用例进行更多的数据分析。
请阅读备份之道。
您不需要最好的 RAID — 简单的 RAID5 就足够了。RAID 是一种高可用性解决方案,而不是数据保护解决方案。您真正需要的是一个非常好的备份解决方案 — 一个可以自动备份的解决方案,通常会保留多个旧备份并定期异地备份(这不是自动的 — 例如,它可以是银行存款箱中的一组磁盘).