解决Nutanix集群节点中可能出现的影子磁盘问题

Posted on

问题描述

Nutanix超融合构架利用CVM(Controller Virtual Machine)来管理调度集群中的各个节点,每个节点中都会放置一台CVM虚拟机来获取其状态并控制相关读写行为。

下面讨论一种可能的特殊情况:当某个节点的物理磁盘发生变化(例如硬件更换或者突然掉电),有小概率在该节点的CVM上产生“影子磁盘”(Phantom Disks)。这会影响到某些版本NCC组件的监控数据采集,进而触发Prism管理控制台中的误报Container Space Error

解决办法

SSH登陆到问题节点的CVM,然后按如下步骤尝试移除影子磁盘:

1、查看CVM上所识别到的磁盘:

$ sudo du -sh ~/data/stargate-storage/disks/

2、查看实际挂载到节点上的磁盘:

$ ncli disk ls

3、对比上述两个表中的磁盘信息:如果存在差异,则差异条目即为影子磁盘。通常影子磁盘的空间大小很小(因为盘实际已经不存在了)。记录下对应的磁盘名称,例如BTHC6090XXX3800XXX

4、确认影子磁盘上是否仍残留有任何内容:

$ ls /home/nutanix/data/stargate-storage/disks/
$ ls -rlt /home/nutanix/data/stargate-storage/disks/BTHC6090XXX3800XXX

5、卸载影子磁盘。如果卸载时提示磁盘未挂载,则忽略:

$ sudo umount /home/nutanix/data/stargate-storage/disks/BTHC6090XXX3800XXX

6、根据名称获取影子磁盘的磁盘ID(Disk ID):

$ ncli disk ls | grep BTHC6090XXX3800XXX -C 8

7、移除影子磁盘:

$ ncli disk remove-start id=XX
#如果移除失败,则强制移除该盘:
$ ncli disk remove-start force=true id=XX

8、确认所有磁盘状态。如果移除失败,则尝试重启CVM:

$ ncli disk ls

END