需求:

  • 因kubernetees集群内业务增加,磁盘空间所剩无几,为了防范因磁盘不足导致业务故障,决定对磁盘进行10G的扩容

查看磁盘空间

  • 在esxi中,对集群添加10G的空间
  • 查看是否添加成功(可以看到有10G未使用,添加成功)
[root@k8s-master01 ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   50G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   39G  0 part 
  ├─centos-root 253:0    0 35.1G  0 lvm  /
  └─centos-swap 253:1    0  3.9G  0 lvm  
sr0              11:0    1 1024M  0 rom
[root@k8s-master01 ~]# df -h /
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   36G  4.8G   31G   14% /

备份数据

  • 为了安全起见要将数据备份

开始扩容

1. 使用parted

parted /dev/sda

(parted) print      #查看磁盘信息                                                      
Model: VMware Virtual disk (scsi)
Disk /dev/sda: 53.7GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End     Size    Type     File system  标志
 1      1049kB  1075MB  1074MB  primary  xfs          启动
 2      1075MB  53.7GB  52.6GB  primary               lvm

2. 在 parted 交互界面中操作:

(parted) resizepart 2       # 选择分区2                                               
结束点?  [42.9GB]? 53.7GB   #输入磁盘总大小(单位根据提示调整,例如53.7GB或100%)
(parted) quit        # 退出                                                     
信息: You may need to update /etc/fstab.

3. 刷新分区表并验证​

[root@k8s-master01 ~]# partprobe /dev/sda
[root@k8s-master01 ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   50G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   49G  0 part 
  ├─centos-root 253:0    0 35.1G  0 lvm  /
  └─centos-swap 253:1    0  3.9G  0 lvm  
sr0              11:0    1 1024M  0 rom

4. 扩展物理卷(PV)

[root@k8s-master01 ~]# pvresize /dev/sda2       # 自动识别分区扩展后的空间
  Physical volume "/dev/sda2" changed
  1 physical volume(s) resized or updated / 0 physical volume(s) not resized
[root@k8s-master01 ~]# pvs       # 确认 `/dev/sda2` 的 PFree 增加约10G
  PV         VG     Fmt  Attr PSize   PFree 
  /dev/sda2  centos lvm2 a--  <49.00g 10.00g

5. 将新增空间全部分配给根目录逻辑卷​​

[root@k8s-master01 ~]# lvextend -l +100%FREE /dev/centos/root      
  Size of logical volume centos/root changed from <35.12 GiB (8990 extents) to 45.12 GiB (11551 extents).
  Logical volume centos/root successfully resized

6. 扩展XFS文件系统​

[root@k8s-master01 ~]# xfs_growfs /
meta-data=/dev/mapper/centos-root isize=512    agcount=4, agsize=2301440 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=9205760, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=4495, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 9205760 to 11828224

7. 验证结果

[root@k8s-master01 ~]# df -h /
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   46G   11G   35G   25% /
[root@k8s-master01 ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   50G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   49G  0 part 
  ├─centos-root 253:0    0 45.1G  0 lvm  /
  └─centos-swap 253:1    0  3.9G  0 lvm  
sr0              11:0    1 1024M  0 rom

关键说明

  1. 无需删除分区​​:直接使用 resizepart 扩展分区,避免数据丢失风险。
  2. 单位匹配​​:在 parted 中输入结束位置时,单位需与提示一致(例如 53.7GB 或 100%)。
  3. LVM动态扩展​​:pvresize 会自动识别物理卷的新空间。