记一次 Lvm 磁盘扩容

本文记录了一次在CentOS7系统中进行LVM磁盘扩容的过程,详细阐述了从背景思路到实际操作的每个步骤,包括如何将新磁盘添加到现有LV,以及如何将扩容空间分配到分区。

1、背景思路

CentOS7 服务器系统盘做了 lvm ,随着数据量的增大,可用空间不足,需要扩容。

思路:因为做了系统盘本身做了 lvm ,所以只需要将新磁盘加到现有的 lv 上去即可,具体的思路是: PV->VG->LV-> 文件系统使用(挂载到某个目录)

  • PV (physical volume) 即物理卷,就是物理磁盘,可以通过 lsblk / fdisk -l 查看操作系统有几块硬盘
  • VG (volume group) 即卷组,就是一组物理磁盘的组合,里面可以有一块硬盘也可以有多块硬盘
  • LV (logical volume) 即逻辑卷,就是在 VG (指定的物理磁盘组)里面划分出来的

可以说成是 PV 就是硬盘,而 VG 就是管理硬盘的操作系统,而 LV 就是操作系统分出来的各个分区 。

2、扩容前

# 此时 /dev/mapper/centos-root 使用率已经超过 90%
[root@centos7-mongo data]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   49G   44G  4.5G   91% /
devtmpfs                 3.9G     0  3.9G    0% /dev
tmpfs                    3.9G     0  3.9G    0% /dev/shm
tmpfs                    3.9G  266M  3.6G    7% /run
tmpfs                    3.9G     0  3.9G    0% /sys/fs/cgroup
/dev/mapper/centos-home   24G   33M   24G    1% /home
/dev/vda1                497M  102M  395M   21% /boot
tmpfs                    783M     0  783M    0% /run/user/0

[root@centos7-mongo data]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0              11:0    1 1024M  0 rom
vda             252:0    0   80G  0 disk
├─vda1          252:1    0  500M  0 part /boot
└─vda2          252:2    0 79.5G  0 part
  ├─centos-root 253:0    0 48.1G  0 lvm  /
  ├─centos-swap 253:1    0  7.9G  0 lvm  [SWAP]
  └─centos-home 253:2    0 23.5G  0 lvm  /home
vdb             252:16   0  120G  0 disk                    # vdb 这块磁盘是我刚刚加到机器上的,还没有实际使用起来

# 查看 vg 的详细情况
[root@centos7-mongo data]# vgdisplay
  --- Volume group ---
  VG Name               centos
  System ID
  Format                lvm2                           #格式是 lvm 的则可以进行动态扩容
  Metadata Areas        1
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                3
  Open LV               3
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               79.51 GiB
  PE Size               4.00 MiB
  Total PE              20354
  Alloc PE / Size       20338 / 79.45 GiB                # 这是已经分配的总空间
  Free  PE / Size       16 / 64.00 MiB                   # 这里是 vg 中未分配的空闲空间,可以看到现在基本没有未分配空间   
  VG UUID               rikK2r-ImsN-bmzw-HPPe-v2r3-6Yh3-QGm5iM

3、扩容操作

# 用 pvcreate /dev/vdb 命令将 /dev/vdb 磁盘转换为物理卷(PV)
[root@centos7-mongo data]# pvcreate /dev/vdb
  Physical volume "/dev/vdb" successfully created

# 查看系统中当前存在的 PV 卷   
[root@centos7-mongo data]# pvdisplay
  --- Physical volume ---
  PV Name               /dev/vda2
  VG Name               centos
  PV Size               79.51 GiB / not usable 3.00 MiB
  Allocatable           yes
  PE Size               4.00 MiB
  Total PE              20354
  Free PE               16
  Allocated PE          20338
  PV UUID               iGdwiM-qqhv-Ekga-UhcU-Jc6Q-4xdY-y8DPHC

# 这里也提示了, /dev/vdb 是一个新的 PV 卷
  "/dev/vdb" is a new physical volume of "120.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/vdb
  VG Name
  PV Size               120.00 GiB
  Allocatable           NO
  PE Size               0
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               boHtFk-LpxL-5x3c-89j9-T1Ym-OXQ6-sOlVlG

# 使用 vgextend 命令将 /dev/vdb 加入到 centos 这个 vg 卷组中,也就是把两个物理卷放到一个 vg 卷组里统一管理
[root@centos7-mongo data]# vgextend centos /dev/vdb
  Volume group "centos" successfully extended
# 再次查看 vg 卷组的信息,观察 Free PE/Size 的变化
[root@centos7-mongo data]# vgdisplay
  --- Volume group ---
  VG Name               centos
  System ID
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  5
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                3
  Open LV               3
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               199.50 GiB
  PE Size               4.00 MiB
  Total PE              51073
  Alloc PE / Size       20338 / 79.45 GiB
  Free  PE / Size       30735 / 120.06 GiB              # centos 这个 vg 卷组中还有 120G 的空间可以分配,也就是刚刚加入的新磁盘
  VG UUID               rikK2r-ImsN-bmzw-HPPe-v2r3-6Yh3-QGm5iM

4、分配空间到分区

# 使用 lvextend 命令直接扩容对应的 LV 分区,这里我直接用的 root 分区的路径 /dev/mapper/centos-root,猜测用 lv 的名字也可以,lv 的名字可以使用 lvdisplay 命令查询
[root@centos7-mongo data]# lvextend -l +100%FREE /dev/mapper/centos-root            # +100%FREE 的意思是把剩下的空间全部分配,也可以写成 “ +120G -n ”
  Size of logical volume centos/root changed from 48.09 GiB (12311 extents) to 168.15 GiB (43046 extents).
  Logical volume root successfully resized.
您在 /var/spool/mail/root 中有邮件
# 从下面可以发现,我给 /dev/mapper/centos-root 分区增加的 120G 空间并没有加上,是因为需要刷新一下
[root@centos7-mongo data]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   49G   44G  4.5G   91% /
devtmpfs                 3.9G     0  3.9G    0% /dev
tmpfs                    3.9G     0  3.9G    0% /dev/shm
tmpfs                    3.9G  266M  3.6G    7% /run
tmpfs                    3.9G     0  3.9G    0% /sys/fs/cgroup
/dev/mapper/centos-home   24G   33M   24G    1% /home
/dev/vda1                497M  102M  395M   21% /boot
tmpfs                    783M     0  783M    0% /run/user/0
 
# 使用 xfs_growfs 命令刷新分区的空间,可以看到新加的 120G 磁盘已经添加到 /dev/mapper/centos-root 分区了
[root@centos7-mongo data]# xfs_growfs /dev/mapper/centos-root
meta-data=/dev/mapper/centos-root isize=256    agcount=4, agsize=3151616 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0        finobt=0
data     =                       bsize=4096   blocks=12606464, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal               bsize=4096   blocks=6155, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 12606464 to 44079104
[root@centos7-mongo data]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root  169G   44G  125G   26% /
devtmpfs                 3.9G     0  3.9G    0% /dev
tmpfs                    3.9G     0  3.9G    0% /dev/shm
tmpfs                    3.9G  274M  3.6G    7% /run
tmpfs                    3.9G     0  3.9G    0% /sys/fs/cgroup
/dev/mapper/centos-home   24G   33M   24G    1% /home
/dev/vda1                497M  102M  395M   21% /boot
tmpfs                    783M     0  783M    0% /run/user/0

上面就是一次扩容 lvm 系统盘的全过程,只要是 lvm 的分区方式,就都可以参照这个思路,对需要扩容的分区进行扩容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值