当在openstack扩容块设备时,文件系统识别不了扩容的容量,下面以centos为例。

可以通过执行blkid命令可以看到文件系统类型

$ blkid
/dev/vda: UUID="c7800287-605d-4262-9101-1340fa39e7fc" TYPE="xfs" 
/dev/vdb: UUID="Z933tD-82ZI-nO0F-Zrws-iZz5-LDAQ-zrofaw" TYPE="LVM2_member"
  • 1.
  • 2.
  • 3.

当使用的是ext4格式文件系统扩容(扩vdb,不是分区vdb1)

$ umount /dev/vdb 
$ 开始扩容磁盘
$ e2fsck -f /dev/vdb
$ resize2fs /dev/vdb size
$ mount /dev/vdb /mnt
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

使用xfs格式文件系统扩容(扩vdb,不是分区vdb1)

$ umount /dev/vdb 
$ 平台扩容磁盘
$ mount /dev/vdb /mnt
$ xfs_growfs /dev/vdb
  • 1.
  • 2.
  • 3.
  • 4.

如果挂载使用的是分区,则使用以下方法扩容,使用growpart工具扩容
growpart 块设备 分区号

$  growpart /dev/vdb 1
unexpected output in sfdisk --version [sfdisk,来自 util-linux 2.23.2]
$ echo $LANG
zh_CN.UTF-8
$ LANG=en_US.UTF-8
$ growpart /dev/vdb 1
CHANGED: partition=1 start=2048 old: size=419428352 end=419430400 new: size=4294965248 end=4294967296
$ xfs_growfs /dev/vdb1 (ext4文件系统要umount)
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.

如果挂载使用的是分区,扩容只能扩容最后一块盘(我这里是vdb),因为扇区说连续的,有固定的起点和终点。