osd 的 nearFull 和 Full 标记

视紧迫程度不同,OSD 将本地存储空间的使用情况分为4个等级:

等级名称 含义
Nearfull 产生告警,除此之外,无任何影响
Backfillfull 产生告警,拒绝通过backfill 的方式迁入或者继续迁入本OSD
Full 产生告警,所有使用该OSD的存储池,对应客户端的写入操作将被有条件禁止
Failsafefull 产生告警,所有使用该OSD的存储池,对应客户端的写入操作将被无条件禁止

每个OSD通过定时器周期性地已检测自身的空间使用率和状态,并上报至Monitor,如果OSD有Full状态,那么 会将对应的存储池标记为Full,从而阻止该存储池承载的所有客户端的写操作,但是写入操作携带了CEPH_OSD_FLAG_FULL_FORCECEPH_OSD_FLAG_FULL_TRY 标识除外。

引入 Backfillfull 的这个等级的意义在于,有些数据迁移,例如数据恢复或者自动平衡过程中以Backfill的方式进行的PG整体数据迁移,是集群内部自动触发的,它们并不受存储池的 Full 标记影响。

进一步地,如果 Full 设置得过高(默认为OSD管理的主要存储设备裸容量的95%),由于从OSD上报空间使用统计和状态,到 Monitor 真正将对应的存储池标记为Full 并阻止客户端写入有滞后,所以仍然存在在此期间客户端继续产生大量写请求将OSD彻底写满的可能,此时 FailsafeFull 可以作为防止产生OSD永久性地变成只读这类灾难性后果的最后一道屏障。

查看配置和修改
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容