Linux : 逻辑卷的管理
逻辑卷管理(LVM)是 Linux 的高级存储管理方案,突破传统分区限制,提供动态存储分配、在线扩容、快照备份等核心功能
1. 物理卷(PV)管理
# 创建物理卷
pvcreate /dev/sda5 /dev/sda6
# 查看PV信息
pvdisplay # 详细信息
pvs # 摘要信息
# 移除物理卷
pvremove /dev/sda5
2. 卷组(VG)管理
# 创建卷组(指定PE大小)
vgcreate vg0 /dev/sda5 /dev/sda6 # 默认PE=4M
# 查看VG信息
vgdisplay
vgs
# 扩展卷组
vgextend vg0 /dev/sda7
# 缩减卷组
vgreduce vg0 /dev/sda5
3. 逻辑卷(LV)管理
# 创建逻辑卷
lvcreate -L 700M -n lv0 vg0 # -L指定大小
lvcreate -l 200 -n lv1 vg0 # -l指定PE数量
# 查看LV信息
lvdisplay
lvs
4. 文件系统操作
# 格式化
mkfs.xfs /dev/vg0/lv0 # XFS格式
mkfs.ext4 /dev/vg0/lv0 # ext4格式
在线扩容操作
文件系统 | 扩容命令 | 刷新文件系统命令 |
---|---|---|
XFS | lvextend -L +300M /dev/vg0/lv0 | xfs_growfs /disk |
ext4 | lvextend -L 1000M /dev/vg0/lv0 | resize2fs /dev/vg0/lv0 |
精简卷 | lvextend -L +500M /dev/vg0/thin_vol | xfs_growfs 或 resize2fs |
- 先扩LV → 2. 再扩文件系统
离线缩减操作(仅ext4)
# 1. 卸载文件系统
umount /disk
# 2. 强制文件系统检查
e2fsck -f /dev/vg0/lv0
# 3. 缩减文件系统
resize2fs /dev/vg0/lv0 500M
# 4. 缩减逻辑卷
lvreduce -L 500M /dev/vg0/lv0
# 5. 重新挂载
mount -a
XFS 文件系统不支持缩减!
删除流程
# 1. 卸载文件系统
umount /disk
# 2. 删除逻辑卷
lvremove /dev/vg0/lv0
# 3. 删除卷组(需先删所有LV)
vgremove vg0
# 4. 删除物理卷
pvremove /dev/sda5 /dev/sda6 /dev/sda7
扩容操作及缩减删除全流程
1.启动分区工具
parted /dev/sda
2.更改单位
(parted) unit
Unit? [compact]? MIB
(parted) p
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sda: 102400MiB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1.00MiB 1025MiB 1024MiB primary xfs boot
2 1025MiB 52225MiB 51200MiB primary xfs
3 52225MiB 56321MiB 4096MiB primary linux-swap(v1)
4 56330MiB 58000MiB 1670MiB extended lba
3.创建扩容分区(如果有则不需要创建)
(parted) mkpart
Partition type? primary/extended? extended
Start? 56330MIB
End? 100000MIB
4.创建逻辑分区
(parted) mkpart
Partition type? [logical]? logical
File system type? [ext2]?
Start? 56340MIB
End? 57000MIB
(parted) quit
udevadm settle
5.创建物理卷
pvcreate /dev/sda5
6.创建卷组
vgcreate vg0 /dev/sda5
7.创建逻辑卷
lvcreate -L 300M -n lv1 vg0
8.格式化
mkfs.ext4 /dev/vg0/lv1
9.查看uuid
blkid
10.创建挂载点
mkdir /lv1
vim /etc/fstab
UUID=5b2ed1af-ba29-4b98-8f78-a4717b0c8d30 /lv1 ext4 defaults 0 0
mount -a
查看挂载情况
[root@xieyuhui ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda2 xfs 50G 3.5G 47G 7% /
devtmpfs devtmpfs 2.0G 0 2.0G 0% /dev
tmpfs tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs tmpfs 2.0G 13M 2.0G 1% /run
tmpfs tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/sda1 xfs 1014M 163M 852M 17% /boot
tmpfs tmpfs 394M 28K 394M 1% /run/user/0
/dev/sr0 iso9660 4.3G 4.3G 0 100% /run/media/root/CentOS 7 x86_64
/dev/mapper/vg0-lv1 ext4 283M 2.1M 262M 1% /lv1
扩容
lvextend -L 500M /dev/vg0/lv1
resize2fs /dev/vg0/lv1
缩减(需要先停止挂载)
umount /lv1
检查逻辑卷的文件系统
e2fsck -f /dev/vg0/lv1
缩小该逻辑卷的文件系统
resize2fs /dev/vg0/lv1 300M
缩小逻辑卷(大小需要与文件系统保持一致)
lvreduce -L 300M /dev/vg0/lv1
重新挂载
mount -a
删除前需要取消挂载状态
umount /lv1
删除逻辑卷
lvremove /dev/vg0/lv1
删除卷组
vgremove /dev/vg0
删除物理卷
pvremove /dev/sda5
删除uuid
vim /etc/fstab
删除lv1的uuid
删除分区
parted /dev/sda
rm 5
quit
udevadm settle