在我的 OpenStack 部署中,我使用 Ceph 进行块和对象存储,报告的状态为健康状态。但是,其中一个硬盘显示 SMART 错误。我不记得具体错误是什么,但大致意思是即将发生故障。
更换驱动器的流程是什么?当驱动器发生故障时,我应该让它继续运行,让 Ceph 来处理吗?还是我应该在 Ceph 发现任何异常之前更换驱动器?
我认为最好在造成任何损坏之前更换驱动器,但在使用 Ceph 的情况下,我相信它可以处理故障。我不确定 JUJU Ceph charm 中是否有某种魔法可以让更换过程变得更容易。
我没有看到性能有任何下降。
答案1
Ceph 的设计目标是,在集群设计正确的情况下,即使出现单个硬盘、节点或整个机架故障,也能保持高可用性。这是数据采用 3 副本策略的主要原因(不需要也不推荐使用 RAID)。
您无需在硬盘发生故障之前更换硬盘,标准的更换程序是作为日常运营的一部分,在每月的预定日期更换所有发生故障的硬件。当然,您需要在集群中拥有足够的可用空间来容纳您的名义硬件故障率,但出于其他原因,您需要在任何企业存储系统中拥有可用空间,因此这是不言而喻的。
一旦驱动器发生故障,Ceph 将创建存储在集群其他位置的相应 OSD 中的数据的新副本,并将该数据的弹性级别恢复为三个副本。在完成此操作之前,该数据将“降级”为两个副本,但仍保持高可用性,因为您在集群的健康部分仍然拥有至少两个副本。