VMware下Centos7虚拟机数据盘/data目录(非lvm)不停机热扩容实操
实操环境
VMware:7.0
虚拟机:Centos7 (TEST-K8S-Node01)
扩容目录:/data (20G>>30G)
前置操作
注意事项:如果有条件的话,建议先做个主机的全量备份(自有备份平台,虚拟机克隆,导出OVF等),凡事不怕一万就怕万一,搞运维要时刻保持准备应对最坏情况的 打算。
前置操作内容:
虚拟化中给磁盘扩展空间,操作较为简单,看图操作即可,这一步操作步骤就是在VMware虚拟机的编辑设置中,硬盘这块把容量改大,如果遇到是灰色的不能更改,请确认虚拟机有没有快照,有快照是不能改磁盘容量的,要删除快照。
主机操作
查看目录当前容量:
lsblk
df -h
可以看到此时 ==/data ==目录的容量是20G,然后我们通过 fdisk /dev/sdb
看一下前面在VMware控制台加的容量是否识别。
可以看到,还未识别,那么我们执行一下 echo 1 > /sys/class/block/sdb/device/rescan
重新扫描磁盘,再执行 lsblk
可以看到 扩容的容量已经识别上去了。
接下来执行磁盘扩容操作,命令顺序 fdisk /dev/sdb 、p、d、n、p、1、回车、回车、w
。按照我的这个顺序来,每个命令的用途我单独解释,执行前一定要先理解命令的含义,别盲目操作。
在上述操作后有个警告内容:
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8)
这表示重新读取分区表时失败,原因是设备或资源忙(可能是因为某些进程正在使用该设备)。新分区表将在下次重启后生效,或者可以通过运行 partprobe 或 kpartx 命令来立即更新,我们不需要重启,执行一下重新扫描分区表以及扩展和更新命令就可以直接完成扩容了。
partx -u /dev/sdb # 更新内核对 /dev/sdb 设备上分区表的认识,确保内核加载最新的分区信息。
partprobe /dev/sdb # 通知操作系统重新读取 /dev/sdb 的分区表,以便识别任何新创建或调整大小的分区。
resize2fs /dev/sdb1 # 调整文件系统大小以使用 /dev/sdb1 分区的全部可用空间,适用于 ext2/ext3/ext4 文件系统。
lsblk # 列出所有块设备的信息,包括其挂载点、大小和分区信息,方便查看当前的存储设备状态。
从上面的操作截图可以看到空间已经扩容上去了,全程服务器没有重启的操作,业务无中断。