一、前言
在日常运维过程中,我们经常会遇到服务器磁盘空间不足的情况。这时候,我们可以通过 LVM (Logical Volume Manager) 的动态扩展功能来实现磁盘扩容,而无需重新分区或格式化磁盘。本教程将介绍在 CentOS 环境下,通过 LVM 实现磁盘扩容的详细步骤。
二、环境说明
设备名 | 类型 | 大小 |
---|---|---|
/dev/sda | 磁盘 | 300G |
/dev/sda1 | /boot 分区 | 1G |
/dev/sda2 | LVM 物理卷 | 299G |
centos | 逻辑卷 | 199G |
三、检查当前磁盘使用情况
1. 查看卷组信息
vgdisplay
[root@ops-gitlab ~]# vgdisplay
--- Volume group ---
VG Name centos
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
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 50943 / <199.00 GiB
Free PE / Size 0 / 0
VG UUID nQGMo4-0Tzw-qmMQ-uqSU-2qDd-Xq37-9s2c0e
2. 查看磁盘空间使用情况
df -h
[root@ops-gitlab ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 7.9G 0 7.9G 0% /dev
tmpfs 7.9G 0 7.9G 0% /dev/shm
tmpfs 7.9G 8.6M 7.9G 1% /run
tmpfs 7.9G 0 7.9G 0% /sys/fs/cgroup
/dev/mapper/centos 199G 198G 1.3G 100% /
/dev/sda1 1014M 170M 845M 17% /boot
overlay 199G 198G 1.3G 100% /var/lib/docker/overlay2/e328a45adc6a314b292bddeeaf0e8824ea7b91bc8f15434f8154e94fc75341d8/merged
tmpfs 1.6G 0 1.6G 0% /run/user/0
3. 查看分区及 LVM 信息
lsblk
[root@ops-gitlab ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 300G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 299G 0 part
└─centos 253:0 0 199G 0 lvm /
四、扩展 LVM 的详细步骤
1. 扩展物理分区
如果当前物理分区不足,例如 /dev/sda
磁盘有剩余空间,可以扩展 /dev/sda2
分区。
使用 parted
工具扩展分区:
parted /dev/sda
在 parted
环境下执行以下操作:
(parted) print # 查看当前分区
(parted) resizepart 2 100% # 扩展 sda2 分区到最大
(parted) quit
2. 扩展物理卷 (PV)
pvresize /dev/sda2
[root@ops-gitlab ~]# pvresize /dev/sda2
Physical volume "/dev/sda2" changed
1 physical volume(s) resized or updated / 0 physical volume(s) not resized
3. 查看卷组剩余空间
vgdisplay
查看 Free PE / Size 是否大于 0。
4. 扩展逻辑卷 (LV)
将剩余空间全部扩展给 /
根分区所在的逻辑卷:
lvextend -l +100%FREE /dev/centos_ops-gitlab/root
[root@ops-gitlab ~]# lvextend -l +100%FREE /dev/centos/root
Size of logical volume centos/root changed from <199.00 GiB (50943 extents) to <299.00 GiB (76543 extents).
Logical volume centos_ops-gitlab/root successfully resized.
5. 扩展文件系统
如果是 xfs
文件系统:
xfs_growfs /
如果是 ext4
文件系统:
resize2fs /dev/centos_ops-gitlab/root
五、验证扩容结果
df -h
[root@ops-gitlab ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 7.9G 0 7.9G 0% /dev
tmpfs 7.9G 0 7.9G 0% /dev/shm
tmpfs 7.9G 8.6M 7.9G 1% /run
tmpfs 7.9G 0 7.9G 0% /sys/fs/cgroup
/dev/mapper/centos 299G 198G 102G 67% /
/dev/sda1 1014M 170M 845M 17% /boot
overlay 299G 198G 102G 67% /var/lib/docker/overlay2/e328a45adc6a314b292bddeeaf0e8824ea7b91bc8f15434f8154e94fc75341d8/merged
tmpfs 1.6G 0 1.6G 0% /run/user/0
确认根分区的容量已经变大。
六、注意事项
- 操作前请务必备份数据,以防意外情况导致数据丢失。
- 使用
parted
工具操作分区时,需谨慎,避免误操作。 - 如果是云服务器,如阿里云或腾讯云,可直接在控制台申请扩容云盘,然后按照本教程调整 LVM。
七、总结
通过上述步骤,即可顺利完成 LVM 的扩容操作。LVM 的优势在于其灵活性,可以在不停机的情况下对磁盘进行调整,是生产环境中非常实用的工具。
评论 (0)