本文理论适用于所有虚拟化系统在线磁盘扩容后,不显示扩容后的空间,我这里以vmware ESXI在线扩容虚拟磁盘为例,全程操作无需重启服务器。
虚拟化环境在线对磁盘空间扩容后,执行fdisk -l查看磁盘空间无变化,不显示新增加的磁盘空间,这是因为要重新扫描连接存储设备的SCSI总线,才能识别到新增的磁盘空间。
当然可以通过reboot重启解决,但是很多时候都为了不影响业务,不能重启系统,所以我这里在不重启系统的情况下,识别到新增的存储空间,以达到平滑扩容为目的。
方法一:
直接执行以下命令,注意:我这里磁盘是sdb(你扩容的盘可能是sda、vdb等等),如果不是,自行更改
1 |
echo '1' > /sys/block/sdb/device/rescan |
方法二:
通过总线标识刷新,ll /sys/block/和ll /sys/class/scsi_disk/进行对比,就可以发现所更改的磁盘对应的标识是哪一个
所以我这里直接执行以下命令,刷新sdb磁盘
1 |
echo '1' > /sys/class/scsi_disk/0\:0\:1\:0/device/rescan |
通过以上方法刷新磁盘后,再次执行fdisk -l命令即可看到刚刚新增的容量已经显示了
如果是新增虚拟磁盘,而不是扩容,那么以上方法就不适用了,需要使用以下命令,扫描SCSI总线
网上很多方法都是,执行以下命令,但是如果host有几十个,那么岂不是要执行几十遍?
1 2 3 |
echo "- - -" > /sys/class/scsi_host/host0/scan echo "- - -" > /sys/class/scsi_host/host1/scan echo "- - -" > /sys/class/scsi_host/host2/scan |
所以这里,可以直接使用以下脚本,直接扫描所有SCSI总线即可
1 |
ls /sys/class/scsi_host/ | while read host ; do echo '- - -' > /sys/class/scsi_host/$host/scan ; done |
原文链接:vmware磁盘在线扩容后不显示扩容后的空间(无需重启),转载请注明来源!