当前平台:在K8s上部署了Ceph,由Ceph生成的磁盘用途有两种:缓存盘和数据盘
背景说明:每个数据盘都会对应一个OSD_ID,而缓存盘是一种特殊的数据盘
需求:监控页面需要展示各种用途的磁盘的总容量和已使用量,而数据盘(缓存盘)的OSD_ID和盘符之间的关系,需要通过/dev/disk/by-path/pci××× 来对应
方法:
(1) 获取该节点的所有数据盘和缓存盘pod
[root@node-1 ~]# ds=$(kubectl get ds -n ceph | grep osd | grep $(hostname -s)| awk '{print $1}')
[root@node-1 ~]# echo $ds
ceph-osd-0-node-1 ceph-osd-1-node-1 ceph-osd-2-node-1 ceph-osd-3-node-1 ceph-osd-4-node-1
(2) 获取缓存盘的/dev/disk/by-path路径
[root@node-1 ~]# cache_paths=$(for i in $ds;do kubectl get ds $i -n ceph -o yaml | grep -A1 BLUESTORE_CACHE_DISK| grep value | uniq;done | uniq | awk '{print $2}')
[root@node-1 ~]# echo $cache_paths
/dev/disk/by-path/pci-0000:02:00.0-scsi-0:2:0:0
(3) 获取到该缓存盘的盘符