Oracle Linux /CentOS 7.7下,利用LVM实现/root分区动态扩容

1、发现 / 空间不足

[root@ ~]# lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sdb           8:16   0   500G  0 disk /u01
sr0          11:0    1   4.4G  0 rom  /media
sda           8:0    0   200G  0 disk
├─sda2        8:2    0   199G  0 part
│ ├─ol-swap 252:1    0  15.8G  0 lvm  [SWAP]
│ ├─ol-home 252:2    0 133.2G  0 lvm  /home
│ └─ol-root 252:0    0    50G  0 lvm  /
└─sda1        8:1    0     1G  0 part /boot

[root@ ~]#  df  -T -h
文件系统                      类型      容量  已用  可用 已用% 挂载点
devtmpfs                      devtmpfs   16G     0   16G    0% /dev
tmpfs                         tmpfs      16G     0   16G    0% /dev/shm
tmpfs                         tmpfs      16G  1.6G   14G   11% /run
tmpfs                         tmpfs      16G     0   16G    0% /sys/fs/cgroup
/dev/mapper/ol-root           xfs        50G   50G   20K  100% /
/dev/mapper/ol-home           xfs       134G   37M  134G    1% /home
/dev/sda1                     xfs      1014M  230M  785M   23% /boot
/dev/sr0                      iso9660   4.5G  4.5G     0  100% /media
tmpfs                         tmpfs     3.2G   44K  3.2G    1% /run/user/0
tmpfs                         tmpfs     3.2G  8.0K  3.2G    1% /run/user/42
/dev/sdb                      xfs       500G   13G  488G    3% /u01

2、查看卷组名称及卷组使用情况: vgdisplay

[root@ ~]# vgdisplay
  --- Volume group ---
  VG Name               ol
  System ID
  Format                lvm2
  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               <199.00 GiB
  PE Size               4.00 MiB
  Total PE              50943
  Alloc PE / Size       50942 / 198.99 GiB
  Free  PE / Size       1 / 4.00 MiB
  VG UUID               2DeO7e-v1u7-Fb62-vaMX-FSvX-96xL-lK8TWM

3、查看当前逻辑卷的空间状态: lvdisplay

[root@ ~]# lvdisplay
  --- Logical volume ---
  LV Path                /dev/ol/swap
  LV Name                swap
  VG Name                ol
  LV UUID                w3R4dI-rB2c-Zwun-0UaB-QMXQ-aIe7-8ZF3uA
  LV Write Access        read/write
  LV Creation host, time localhost, 2021-10-20 17:03:17 +0800
  LV Status              available
  # open                 2
  LV Size                15.75 GiB
  Current LE             4032
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           252:1

  --- Logical volume ---
  LV Path                /dev/ol/home
  LV Name                home
  VG Name                ol
  LV UUID                ReB1ra-Pdgc-1bTJ-kGBI-JfWI-njAV-Lf9EUa
  LV Write Access        read/write
  LV Creation host, time localhost, 2021-10-20 17:03:18 +0800
  LV Status              available
  # open                 1
  LV Size                133.24 GiB
  Current LE             34110
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           252:2

  --- Logical volume ---
  LV Path                /dev/ol/root
  LV Name                root
  VG Name                ol
  LV UUID                mfgysi-FwqR-RCez-uj5T-Jc1s-wveE-Wi914I
  LV Write Access        read/write
  LV Creation host, time localhost, 2021-10-20 17:03:19 +0800
  LV Status              available
  # open                 1
  LV Size                50.00 GiB
  Current LE             12800
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           252:0

4、现在 / 50G不够用,想扩容增加200G,在VMware把/dev/sda扩展200GB;用lsblk -l查看

[root@ ~]# lsblk -l
NAME    MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sdb       8:16   0   500G  0 disk /u01
sr0      11:0    1   4.4G  0 rom  /run/media/root/OL-7.7 Server.x86_64
sda       8:0    0   400G  0 disk
sda2      8:2    0   199G  0 part
ol-swap 252:1    0  15.8G  0 lvm  [SWAP]
ol-home 252:2    0 133.2G  0 lvm  /home
ol-root 252:0    0    50G  0 lvm  /
sda1      8:1    0     1G  0 part /boot

5、在/dev/sda磁盘上新建1个200GB的分区 /dev/sdb3

[root@ ~]# fdisk /dev/sda

[root@ ~]# lsblk -l
NAME    MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sdb       8:16   0   500G  0 disk /u01
sr0      11:0    1   4.4G  0 rom  /run/media/root/OL-7.7 Server.x86_64
sda       8:0    0   400G  0 disk
sda2      8:2    0   199G  0 part
ol-swap 252:1    0  15.8G  0 lvm  [SWAP]
ol-home 252:2    0 133.2G  0 lvm  /home
ol-root 252:0    0    50G  0 lvm  /
sda3      8:3    0   200G  0 part
sda1      8:1    0     1G  0 part /boot

6、修改 /dev/sda3 的分区格式

[root@ ~]# fdisk /dev/sda
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。


命令(输入 m 获取帮助):t
分区号 (1-3,默认 3):3
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。


[root@ ~]# fdisk /dev/sda
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。


命令(输入 m 获取帮助):p

磁盘 /dev/sda:429.5 GB, 429496729600 字节,838860800 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000a9119

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200   419430399   208665600   8e  Linux LVM
/dev/sda3       419430400   838860799   209715200   8e  Linux LVM

命令(输入 m 获取帮助):q

7、将新加的分区 /dev/sda3 创建为物理卷

[root@ ~]# pvcreate /dev/sda3
  Physical volume "/dev/sda3" successfully created.

8、给卷组 'ol' 扩容,将物理卷 /dev/sdb1 扩展至 'ol' 卷组

[root@ ~]# vgextend ol /dev/sda3
  Volume group "ol" successfully extended

9、此时卷组 'ol' 有200G空余空间,及 /dev/sda3,将其全部扩展至 /

[root@ ~]# lvextend -l +100%FREE /dev/mapper/ol-root
  Size of logical volume ol/root changed from 50.00 GiB (12800 extents) to 250.00 GiB (64000 extents).
  Logical volume ol/root successfully resized.

10、此时200G磁盘虽已扩展至 /root,但并没写入文件系统

[root@emrbak ~]# df -h
文件系统             容量  已用  可用 已用% 挂载点
devtmpfs              16G     0   16G    0% /dev
tmpfs                 16G     0   16G    0% /dev/shm
tmpfs                 16G  9.7M   16G    1% /run
tmpfs                 16G     0   16G    0% /sys/fs/cgroup
/dev/mapper/ol-root   50G   50G  608K  100% /
/dev/sdb             500G   13G  488G    3% /u01
/dev/mapper/ol-home  134G   37M  134G    1% /home
/dev/sda1           1014M  230M  785M   23% /boot
tmpfs                3.2G  4.0K  3.2G    1% /run/user/42
tmpfs                3.2G   24K  3.2G    1% /run/user/0

11、用xfs_growfs 命令把文件写入系统中,使扩容生效

[root@emrbak ~]# xfs_growfs /dev/mapper/ol-root
meta-data=/dev/mapper/ol-root    isize=256    agcount=4, agsize=3276800 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=13107200, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=6400, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 13107200 to 65536000

说明:若使用ext4文件格式的,是使用resize2fs命令来生效

12、查看扩容后的硬盘空间小,如下内容则说明,已实现扩容。大功告成!

[root@emrbak ~]# df -h
文件系统             容量  已用  可用 已用% 挂载点
devtmpfs              16G     0   16G    0% /dev
tmpfs                 16G     0   16G    0% /dev/shm
tmpfs                 16G  9.7M   16G    1% /run
tmpfs                 16G     0   16G    0% /sys/fs/cgroup
/dev/mapper/ol-root  250G   50G  200G   20% /
/dev/sdb             500G   13G  488G    3% /u01
/dev/mapper/ol-home  134G   37M  134G    1% /home
/dev/sda1           1014M  230M  785M   23% /boot
tmpfs                3.2G  4.0K  3.2G    1% /run/user/42
tmpfs                3.2G   24K  3.2G    1% /run/user/0
/dev/sr0             4.5G  4.5G     0  100% /run/media/root/OL-7.7 Server.x86_64

附1、本次扩容指令汇总:

1.创建分区                             #fdisk /dev/sdb

2.创建物理卷                           #pvcreat /dev/sdb1

3.查看卷组名称及使用情况                #vgdisplay

4.将物理卷扩展到卷组                    #vgextend ol /dev/sdb1   (此处‘ol’是卷组名称)

5.将卷组中空闲空间扩展到 /home           #lvextend -l +100%FREE /dev/mapper/cl-home

6.刷新文件系统是扩容生效 xfs_growfs /dev/mapper/centos-root

7.若是ext4文件格式使用扩容生效            #resize2fs /dev/mapper/centos-home

附2、相关LVM知识点如下:

这里总结下扩展与缩小LV的实施顺序:

附2.1、扩展LV

1、卸载LV
命令:umount “挂载目录”

2、扩展LV
命令:lvextend -L +500m /dev/lv00/lv01 或者 lvresize -L 5G /dev/lv00/lv01
lvextend 表示增加500M,lvresize表示增加到5G,是调整后的容量。

3、检查文件系统
命令:fsck -f /dev/vg00/lv01

4、重建文件系统
  命令:resize2fs /dev/lv00/lv01

这一步很关键,重建文件系统不用担心LV的数据会丢失,当然,以防万一,也可以先备份下LV里的数据。

5、挂载LV
命令:mount /dev/lv001/lv01 /opt

附2.2、缩小LV

  缩小LV需要事先知道LV中的数据容量大小,缩小容量值不应超过剩余空间容量,而且要知道减少LV容量后的新大小。可以通过lvscan来查看LV容量,通过vgdisplay来查看剩余容量。

1、卸载LV
命令:umount “挂载目录”

2、检查文件系统
命令:fsck -f /dev/lv00/lv01

3、调整LV大小并重建文件系统
命令:resize2fs /dev/vg00/lv01 2G

4、减小LV容量
命令:lvreduce -L -3G /dev/vg00/lv01

5、挂载LV
  命令:mount /dev/lv001/lv01 /opt

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注