健康的Ceph集群需要避免的16个操作设备存储和文件系统服务。在虚拟化领域,常用的是Ceph的块设备存储。比如在OpenStack项目中,Ceph的块设备存储可以接入OpenStack的cinder后端存储,Glance的镜像存储和虚拟机数据存储,这样更直观最重要的是Ceph集群可以提供块存储在raw格式为虚拟机实例的硬盘。Ceph相对于其他存储的优势在于,它不仅仅是为了存储,而是充分利用了存储节点上的计算能力。在存储每条数据时,它会计算数据存储的位置,并尽量平衡数据分布。同时,由于Ceph的良好设计,采用了CRUSH算法、HASH环等方法,使其不存在传统的单点故障问题,其性能也不会随着规模的扩大而受到影响.破坏Ceph集群的10种方法这里总结了破坏Ceph集群的10种原始方法。1.不正确的CRUSH故障域:如果您错误地配置CRUSH,这可能会导致问题。因此,一定要在您的集群上进行测试,以验证是否按预期处理了故障。2.停用主机:这种情况的一个例子是集群运行size=2,min_size=1并且需要更换一些硬件。归置组只剩下一个磁盘作为副本,如果这个磁盘丢失,数据就会丢失。Ceph集群将不得不报废并从头开始重建。3.删除MON数据目录中的“日志”文件:始终确保监视器有足够的磁盘空间,切勿手动删除其数据目录中的文件。4.删除错误的池:在删除池之前仔细检查。更好的是,在移除泳池之前请其他人查看泳池。5、长时间设置noout标志:始终保证集群运行状态为HEALTH_OK,检查集群是否长期处于HEALTH_WARN状态。6、安装XFSwithnobarrier选项:由于新版本支持使用Bluestore,这个问题100%解决了。因为Bluestore不再使用XFS。7.在没有BBU的HBA上启用写回:切勿在没有电池备份单元的HBA中打开写回缓存。8.创建过多的归置组:创建归置组时要小心。当它需要重新连接所有归置组时,它可能会损坏集群。9、使用2份:如果主机断电维护。现在,部分数据依赖于一个磁盘。如果此磁盘发生故障,所有数据都将丢失。10.忽略监视器:建议使用监视器专用硬件。6种破坏你的Ceph集群的方法这里总结了6种方法:11.不理解你使用的自动化工具:简而言之,理解你的自动化工具在做什么,为什么这样做,并且绝对理解它不做什么'应该怎么办。您还应该意识到,您的自动化工具应该可以帮助您完成您已经知道的事情。如果你想使用Ceph,你应该了解Ceph。例如,如果你想使用Ceph和ceph-ansible,你应该了解Ceph和Ansible。12.运行min_size=1:我们建议您至少运行三个副本。但是,如果不能,永远不要将min_size降低到1以下,或者更好的是,永远不要将冗余对象降低到“0”。确保你总是写至少1个冗余对象。这也适用于纠删码。13.更新不完整:Ceph的文档有时会遗漏一些细节。在某些情况下,升级是根据Ceph的一般文档完成的。但是,如果您查看详细的Ceph发行版的发行说明,则会跳过甚至未触及很多步骤。因此,请仔细检查更新是否已完成。14.过早完成更新:确保您没有过早完成升级,并且您确实遵循了所有步骤。15.在负载均衡器后面运行多个具有相同id的rbds:我们有一个客户有9个rbds,但只配置了3个后端rbds。他们为每个rbd运行3个进程。他们都在跳过哪个是活跃的。在负载均衡器的背后,这导致了数百万个未完成的部分上传。客户端的整个集群已满。接下来,他们添加了新硬件,并且他们仍在添加新硬件。幸运的是,我们发现这就是问题所在。为了解决这个问题,我们重命名了6个rbds,清点所有对象并确保它们都被清理干净。16.盲目相信你的PG会自动缩放:有时候,直到你写入数据,你才真正发现你的PG配置错误。您正在写入大量数据并同时拆分所有归置组,导致性能极差,最终严重影响客户应用程序。除非你采取额外的步骤,否则没有真正的方法来修复它。
