Ceph告警: MON_DISK_LOW¶
Ceph的Cluster Status提供了基本的集群状态监控,其中有一个比较常规的监控是服务器磁盘可用空间监控。例如, MON_DISK_LOW
:
上述提示报错在 Logs
页面可以清晰看到:
5/18/22 12:00:00 AM [WRN] overall HEALTH_WARN mons z-b-data-1,z-b-data-2,z-b-data-3 are low on available space
5/17/22 11:50:00 PM [WRN] overall HEALTH_WARN mons z-b-data-1,z-b-data-2,z-b-data-3 are low on available space
...
执行检测命令:
ceph status
可以看到:
cluster:
id: 0e6c8b6f-0d32-4cdb-a45d-85f8c7997c17
health: HEALTH_WARN
mons z-b-data-1,z-b-data-2,z-b-data-3 are low on available space
详细的健康状态信息检查:
ceph health detail
可以看到:
HEALTH_WARN mons z-b-data-1,z-b-data-2,z-b-data-3 are low on available space
[WRN] MON_DISK_LOW: mons z-b-data-1,z-b-data-2,z-b-data-3 are low on available space
mon.z-b-data-1 has 22% avail
mon.z-b-data-2 has 22% avail
mon.z-b-data-3 has 23% avail
我在 私有云架构 部署架构中,为3个 z-b-data-X
虚拟机分配了很小的磁盘空间(只有6G),实际上对长期运行的服务器,根目录空间太小了:
/dev/vda2 5.8G 4.5G 1.3G 78% /
你看可以看到使用根目录目前就是 78%
,剩余可用 22%
,和 ceph health detail
完全对应
可能的解决方法如下:
journalctl 调整系统日志存储空间
清理主机缓存,例如
apt
或dnf
安装升级系统时会遗留大量缓存文件调整虚拟机磁盘(LVM卷) 扩容根目录
备注
经过排查,最终发现 apt
安装过程,特别是内核升级,本地会保留很多不再需要的软件包和文件。通过 apt autoremove
我实际清理了 1.5G 空间。清理后本地根目录空闲 2.x G空间,已经能够满足运行要求。
不过,需要注意,实际上 ceph
监控的是 /var/lib/ceph
目录地盘空间,不过默认情况下,这个目录没有采用独立磁盘维护,则会重叠在根目录上:
Filesystem Size Used Avail Use% Mounted on
udev 7.8G 0 7.8G 0% /dev
tmpfs 1.6G 744K 1.6G 1% /run
/dev/vda2 5.8G 4.5G 1.3G 78% /
tmpfs 7.9G 0 7.9G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 7.9G 0 7.9G 0% /sys/fs/cgroup
/dev/vda1 240M 5.2M 235M 3% /boot/efi
tmpfs 7.9G 28K 7.9G 1% /var/lib/ceph/osd/ceph-0
tmpfs 1.6G 0 1.6G 0% /run/user/1000
对于性能考量,ceph运行目录 /var/lib/ceph
应该采用独立大容量高性能磁盘,解决容量不足问题,可以通过为虚拟机创建独立磁盘并挂载到 /var/lib/ceph
来解决:
/var/lib/ceph/mon/ceph-`hostname`/store.db/
目录会存储大量的监控日志以及状态 ,如果占用大量空间,我们需要 压缩Ceph监控服务存储将
/var/lib/ceph
迁移到独立的虚拟机磁盘,确保该目录保留足够空间: 我最终采用 /var/lib/ceph 目录独立存储