金融场景具有高密集IO的特性,尤其在数据批量计算方面,分布式存储在频繁数据分布和迁移过程中通常会带来IO争抢的问题,在大规模集群遇到扩容或硬盘替换时尤为明显,给分布式存储在金融领域的深入使用带来了一定的风险。如何有效和智能的控制并恢复IO,减少因IO问题导致数据批量计算的影响,是分布式存储架构师必须要考虑和解决的问题?
ceph在增加osd的时候会触发backfill,让数据得到平均,触发数据的迁移
ceph在移除osd的时候需要在节点上进行数据的恢复,也有数据的迁移和生成
只要是集群里面有数据的变动就会有网卡流量,cpu,内存等资源的占用,并且最重要的是还有磁盘的占用,这个客户端也是需要对磁盘进行访问的,当请求出现碰撞的时候,肯定会比正常的情况下要慢很多,而且还有可能因为资源方面的原因而引起机器down机等异常状况的出现
主要引起的问题可能:
这个在一般情况下会出现不同的需求:
这个需要根据自己可以掌控的程度来进行控制,首先环境的不同,影响不同,迁移数据量,网卡的带宽都是重要的影响因素,从整体上可以根据自己的环境按照上面的三个要求中的一个进行控制
osd recoveryoppriority = 3#默认值10 #恢复操作优先级,取值1-63,值越高占用资源越高osd recovery max active = 3#默认值15 #同一时间内活跃的恢复请求数osd max backfills = 1#默认值10 #一个OSD允许的最大backfills数osd recovery max active = 3 (default : 15)osd recoveryoppriority = 3 (default : 10)osd max backfills = 1 (default : 10)
收起从分布式存储在金融领域的实际使用过程中,不定期会有常规的运维操作,比如题主所提到的大规模集群的扩容和磁盘更换,IO争抢也是较为常见的问题之一。
抛砖引玉,笔者所遇到的大规模集群中,单个集群超过1K的存储节点,按照正常的概率,每个月会有数量不等的磁盘损坏,每个季度会存在一次集中换盘,这些操作都会通过数据迁移、数据负载和数据平衡的方式进行数据恢复,IO争抢大都发生在这个场景, 高密集IO计算的争抢更多的取决于数据分布算法的合理性。
通常情况下,抛开分布式存储自身的算法,更多的采取时间策略+流量策略的方式规避IO争抢,比如在业务高峰期避开磁盘变更窗口,而流量策略更多的是基于数据流量恢复速率阈值匹配业务场景,最终实现 在不影响业务IO的情况下,快速完成数据迁移恢复。