我的托管服务提供商为我租用的服务器预先配置了 RAID-1。但是,为了实现冗余,我计划使用 GlusterFS 在另一台服务器上保留另一份数据副本。
由于我已经实现了冗余,我可以禁用 RAID-1 来获得额外的磁盘空间吗?
答案1
有三件事可以告诉你这是否是一个好主意:
- 当一个主机丢失数据时整个系统如何运行。
- 您的托管服务提供商需要多长时间来更换坏掉的磁盘。
- 在更换故障驱动器后重新同步过程中系统如何运行。
如果您的应用程序通过 Gluster 安装访问 Gluster 数据,即使一个节点关闭,它也应该保持正常运行。但是,如果您只是使用 Gluster 作为复制机制,并将应用服务器配置为使用本地存储(但通过 Gluster 复制),如果一个驱动器出现故障,则该应用服务器可能仍在提供错误数据。显然,我建议尽可能使用 Gluster 安装。
供应商更换坏硬件需要多长时间是一个关键问题。它告诉你要忍受糟糕的配置多久,以及你会在问题 1 中经历多长时间的痛苦。4 小时响应还不错,但如果周五晚上坏了,下一个工作日响应就很糟糕了。
您应该真正测试系统在重新同步期间的行为。这在很大程度上取决于您需要从状态良好的点移动到修复状态的数据量。在此期间,您的 Gluster-mount I/O 可能会很差,因此请确保您能够承受这种状态。
如果您已处理好所有三种状态,R0 可能对您来说是可以生存的。如果您的故障状态性能不可接受,您可能必须为您的基本 Gluster 砖块使用更高的 RAID 级别。
答案2
一切都与可用性有关。如果您不介意在单个磁盘发生故障时将数据转移到其他服务器,并且您拥有相应的基础设施,那么就去做吧。
一般来说,我喜欢分层可用性。我不希望我的应用程序因为单个磁盘故障而发生故障转移。不过,这真的取决于你。不过,我会确保彻底测试这一点——磁盘故障相对常见。
自您进行编辑以来,以下内容不再适用。
您的问题本质上是无效的,因为 RAID 0 没有冗余,并且具有最大可能的磁盘空间。这很危险,并且不利于可用性。如果您丢失了组中的单个磁盘,则所有数据都将丢失。如果您打算保留 RAID 0,我会非常彻底地测试我的故障转移过程。