《Linux运维总结:银河麒麟V10操作系统基于LVM动态扩容磁盘》

总结:整理不易,如果对你有帮助,可否点赞关注一下?

更多详细内容请参考:Linux运维实战总结


一、背景信息

PV(physical volume)即物理卷,就是物理磁盘,可以通过fdisk -l 查看操作系统有几块硬盘
VG(volume group)即卷组,就是一组物理磁盘的组合,里面可以有一块硬盘也可以有多块硬盘
LV(logical volume)及逻辑卷,就是在VG(指定的物理磁盘组)里面划分出来的
可以说成是PV就是硬盘,而VG就是管理硬盘的操作系统,而LV就是操作系统分出来的各个分区.
PV->VG->LV->  文件系统使用(挂载到某个目录)

根据如下信息,可以看到 /dev/vda3 的大小为 48.8G,而磁盘的总容量为 100G。为了将 /dev/vda3 扩容到最大可用空间,您需要执行以下步骤:

[root@localhost ~]# df -h
文件系统                                    容量  已用  可用 已用% 挂载点
devtmpfs                                    7.1G     0  7.1G    0% /dev
tmpfs                                       7.3G  192K  7.3G    1% /dev/shm
tmpfs                                       7.3G  733M  6.6G   10% /run
tmpfs                                       7.3G     0  7.3G    0% /sys/fs/cgroup
/dev/mapper/klas_host--192--168--1--11-root   45G   13G   33G   28% /
tmpfs                                       7.3G     0  7.3G    0% /tmp
/dev/vda2                                  1014M  217M  798M   22% /boot
/dev/vda1                                   200M  5.8M  195M    3% /boot/efi
tmpfs                                       1.5G     0  1.5G    0% /run/user/993
tmpfs                                       1.5G     0  1.5G    0% /run/user/68
tmpfs                                       1.5G     0  1.5G    0% /run/user/0
[root@localhost ~]# lsblk
NAME                               MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0                                 11:0    1 1024M  0 rom  
vda                                253:0    0  100G  0 disk 
├─vda1                             253:1    0  200M  0 part /boot/efi
├─vda2                             253:2    0    1G  0 part /boot
└─vda3                             253:3    0 48.8G  0 part 
  ├─klas_host--192--168--1--11-root 252:0    0 44.8G  0 lvm  /
  └─klas_host--192--168--1--11-swap 252:1    0    4G  0 lvm  [SWAP]

二、扩容步骤


2.1、确认磁盘和分区状态

首先确认磁盘和分区的状态,确保没有错误或未同步的 GPT 表。

[root@localhost ~]# fdisk -l /dev/vda
GPT PMBR 大小不符(104857599 != 209715199),将用写入予以更正。
The backup GPT table is not on the end of the device. This problem will be corrected by write.
Disk /dev/vda:100 GiB,107374182400 字节,209715200 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:gpt
磁盘标识符:01177372-EFD3-4DB5-AE11-45E2E30F22F0

设备          起点      末尾      扇区  大小 类型
/dev/vda1     2048    411647    409600  200M EFI 系统
/dev/vda2   411648   2508799   2097152    1G Linux 文件系统
/dev/vda3  2508800 104855551 102346752 48.8G Linux LVM

如果提示 GPT PMBR 大小不符 或 The backup GPT table is not on the end of the device,可以通过以下命令修复 GPT 表:

[root@localhost ~]# parted /dev/vda
GNU Parted 3.3
使用 /dev/vda
欢迎使用 GNU Parted!输入 'help' 来查看命令列表。
(parted) print                                                            
警告: 并非所有可用于 /dev/vda 的空间都被用到了,您可以修正 GPT 以使用所有的空间 (额外的 104857600 个区块),还是说要继续使用目前的设置?
修正/Fix/忽略/Ignore? 修正
型号:Virtio 块设备 (virtblk)
磁盘 /dev/vda:107GB
扇区大小 (逻辑/物理):512B/512B
分区表:gpt
磁盘标志:

编号  起始点  结束点  大小    文件系统  名称                  标志
 1    1049kB  211MB   210MB   fat16     EFI System Partition  启动, EFI 启动
 2    211MB   1285MB  1074MB  xfs
 3    1285MB  53.7GB  52.4GB                                  lvm              
 (parted) quit                           

这将修复 GPT 表并允许后续操作。


2.2、使用parted工具扩容分区

1、启动parted工具

[root@localhost ~]# parted /dev/vda
GNU Parted 3.3
使用 /dev/vda
欢迎使用 GNU Parted!输入 'help' 来查看命令列表。

2、查看扩容前分区表

(parted) print                                                            
型号:Virtio 块设备 (virtblk)
磁盘 /dev/vda:107GB
扇区大小 (逻辑/物理):512B/512B
分区表:gpt
磁盘标志:

编号  起始点  结束点  大小    文件系统  名称                  标志
 1    1049kB  211MB   210MB   fat16     EFI System Partition  启动, EFI 启动
 2    211MB   1285MB  1074MB  xfs
 3    1285MB  53.7GB  52.4GB                                  lvm

3、调整 /dev/vda3 分区大小

# 3 表示指定要调整的分区编号
(parted) resizepart 3 100%      

4、查看扩容后分区表

(parted) print                                                            
型号:Virtio 块设备 (virtblk)
磁盘 /dev/vda:107GB
扇区大小 (逻辑/物理):512B/512B
分区表:gpt
磁盘标志:

编号  起始点  结束点  大小    文件系统  名称                  标志
 1    1049kB  211MB   210MB   fat16     EFI System Partition  启动, EFI 启动
 2    211MB   1285MB  1074MB  xfs
 3    1285MB  107GB   106GB                                   lvm

5、退出 parted

(parted) quit                                                             
信息: 你可能需要 /etc/fstab。

2.3、扩容物理卷

由于 /dev/vda3 是一个 LVM 卷(Linux LVM),需要先扩展物理卷(PV),然后扩展逻辑卷(LV)和文件系统。

1、扩容前查看物理卷

[root@localhost ~]# pvs
  PV         VG                    Fmt  Attr PSize  PFree
  /dev/vda3  klas_host-192-168-1-11 lvm2 a--  48.80g    0 

2、扩展物理卷(PV)

[root@localhost ~]# pvresize /dev/vda3
  Physical volume "/dev/vda3" changed
  1 physical volume(s) resized or updated / 0 physical volume(s) not resized

3、扩容后查看物理卷

[root@localhost ~]# pvs
  PV         VG                    Fmt  Attr PSize  PFree 
  /dev/vda3  klas_host-192-168-1-11 lvm2 a--  98.80g 50.00g

4、扩容后查看卷组

[root@localhost ~]# vgs
  VG                    #PV #LV #SN Attr   VSize  VFree
  klas_host-192-168-1-11   1   2   0 wz--n- 98.80g    0 

2.4、扩容逻辑卷

1、扩容前查看逻辑卷

[root@localhost ~]# lvs
  LV   VG                    Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root klas_host-192-168-1-11 -wi-ao---- <44.77g                                                    
  swap klas_host-192-168-1-11 -wi-ao----   4.03g  

2、扩展逻辑卷(LV)

[root@localhost ~]# lvextend -l +100%FREE /dev/mapper/klas_host--192--168--1--11-root
  Size of logical volume klas_host-192-168-1-11/root changed from <44.77 GiB (11461 extents) to <94.77 GiB (24261 extents).
  Logical volume klas_host-192-168-1-11/root successfully resized.

3、扩容后查看逻辑卷

[root@localhost ~]# lvs
  LV   VG                    Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root klas_host-192-168-1-11 -wi-ao---- <94.77g                                                    
  swap klas_host-192-168-1-11 -wi-ao----   4.03g 

2.5、调整文件系统大小

说明:对于ext4文件系统,可以使用resize2fs,对于XFS文件系统,使用:xfs_growfs 。

[root@localhost ~]# xfs_growfs /dev/mapper/klas_host--192--168--1--11-root
meta-data=/dev/mapper/klas_host--192--168--1--11-root isize=512    agcount=4, agsize=2934016 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1
data     =                       bsize=4096   blocks=11736064, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=5730, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 11736064 to 24843264

6、验证扩容结果

[root@localhost ~]# df -h
文件系统                                    容量  已用  可用 已用% 挂载点
devtmpfs                                    7.1G     0  7.1G    0% /dev
tmpfs                                       7.3G  192K  7.3G    1% /dev/shm
tmpfs                                       7.3G  741M  6.6G   10% /run
tmpfs                                       7.3G     0  7.3G    0% /sys/fs/cgroup
/dev/mapper/klas_host--192--168--1--11-root   95G   13G   83G   14% /
tmpfs                                       7.3G     0  7.3G    0% /tmp
/dev/vda2                                  1014M  217M  798M   22% /boot
/dev/vda1                                   200M  5.8M  195M    3% /boot/efi
tmpfs                                       1.5G     0  1.5G    0% /run/user/993
tmpfs                                       1.5G     0  1.5G    0% /run/user/68
tmpfs                                       1.5G     0  1.5G    0% /run/user/0

总结:整理不易,如果对你有帮助,可否点赞关注一下?

更多详细内容请参考:Linux运维实战总结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东城绝神

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值