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