VMware不关机扩容linux磁盘:修订间差异
来自三线的随记
小无编辑摘要 |
小无编辑摘要 |
||
第1行: | 第1行: | ||
__TOC__ | __TOC__ | ||
=== 在虚拟化平台对磁盘扩容后 fdisk -l 识别不到分区 (partition丢失) === | === 在虚拟化平台对磁盘扩容后 fdisk -l 识别不到分区 (partition丢失,GPT分区表不建议使用fdisk) === | ||
注意在部分OS下,可能在扩容前 Disk 的相关 partition 信息在fdisk中是可以正常识别的,但是在 vsphere / esxi 对磁盘进行扩容以后 | 注意在部分OS下,可能在扩容前 Disk 的相关 partition 信息在fdisk中是可以正常识别的,但是在 vsphere / esxi 对磁盘进行扩容以后 | ||
2024年8月11日 (日) 11:30的版本
在虚拟化平台对磁盘扩容后 fdisk -l 识别不到分区 (partition丢失,GPT分区表不建议使用fdisk)
注意在部分OS下,可能在扩容前 Disk 的相关 partition 信息在fdisk中是可以正常识别的,但是在 vsphere / esxi 对磁盘进行扩容以后
就发现 partition 丢了【fdisk -l /dev/sda 看不到某些分区】(特别是centos7.9 + fdisk -l + GPT)
这时候可以直接 parted /dev/sda
进入以后应该就会提示
Error: The backup GPT table is not at the end of the disk, as it should be. This might mean that another operating system believes the disk is smaller. Fix, by moving the backup to the end (and removing the old backup)?
直接进行Fix并扩容即可
也可以找到原本的扇区记录,然后进入fdisk ,修改 partition table 为 GPT,根据相关扇区记录,把分区重新建立回来即可
lvm类型的分区扩容
利用fdisk - 传统步骤扩容分区(旧版本fdisk对GPT兼容不好,GPT分区表建议使用parted)
磁盘名sda, vg名 cl, lv名 root 等自行根据实际情况修改!
- vsphere(虚拟化平台)层面完成磁盘扩容
- 进入系统 shell 中,执行命令 lsblk 查看对应的磁盘是否有感知到新的容量。有时候会碰到 os 无法感知到 disk 容量变化的情况出现,这时候需要手动rescan一下
echo 1 > /sys/class/block/sda/device/rescan
fdisk -l /dev/sda
确认相关分区及扇区信息- 使用
fdisk /dev/sda
进入交互式操作删除重建需要扩容的分区(增大分区容量,保留原本的LVM2_member signature, 起始扇区与原本一致) partprobe /dev/sda
pvresize /dev/sda3
lvextend /dev/cl/root /dev/sda3
xfs_growfs /dev/mapper/cl-root
- 完成
利用parted工具一行命令直接扩容第三分区到100%
磁盘名sda, vg名 cl, lv名 root 等自行根据实际情况修改!
parted /dev/sda --script -- resizepart 3 100%
pvresize /dev/sda3 && lvextend -l +100%FREE /dev/ol/root && xfs_growfs /
非lvm类型虚拟磁盘扩容(磁盘直接作为了挂载点)
磁盘名sda, vg名 cl, lv名 root 等自行根据实际情况修改!
- vm层面完成磁盘扩容
- 同样手动rescan一下让os感知磁盘容量变化
echo 1 > /sys/class/block/sda/device/rescan
- 根据文件系统类型执行fs扩容,如
xfs_growfs
/resize2fs
- 例如⬇️
[root@192-168-157-39 ~]# lsblk /dev/sdb NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sdb 8:16 0 150G 0 disk /var/lib/containers [root@192-168-157-39 ~]# echo 1 > /sys/class/block/sdb/device/rescan [root@192-168-157-39 ~]# lsblk /dev/sdb NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sdb 8:16 0 155G 0 disk /var/lib/containers [root@192-168-157-39 ~]# cat /etc/fstab |grep cont /dev/sdb /var/lib/containers xfs defaults,pquota 0 0 [root@192-168-157-39 ~]# xfs_growfs /dev/sdb meta-data=/dev/sdb isize=512 agcount=4, agsize=9830400 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0 spinodes=0 data = bsize=4096 blocks=39321600, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal bsize=4096 blocks=19200, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 data blocks changed from 39321600 to 40632320 [root@192-168-157-39 ~]# df -h /var/lib/containers Filesystem Size Used Avail Use% Mounted on /dev/sdb 155G 19G 137G 12% /var/lib/containers [root@192-168-157-39 ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 50G 0 disk ├─sda1 8:1 0 1019M 0 part /boot └─sda2 8:2 0 49G 0 part └─centos-root 253:0 0 49G 0 lvm / sdb 8:16 0 155G 0 disk /var/lib/containers sr0 11:0 1 9.5G 0 rom