1. PV (Physical Volume - 物理卷)
-
是什么: 物理存储设备(如硬盘
/dev/sda
、分区/dev/sda1
、RAID 设备/dev/md0
等)在 LVM 体系中的表示形式。 -
作用: 是 LVM 存储管理的最底层基石。PV 提供了原始的物理存储空间。
-
关键点:
-
一个物理设备(硬盘/分区)必须先被初始化为 PV (
pvcreate
命令),才能加入 LVM 系统。 -
PV 被划分成许多固定大小的单元,称为 PE (Physical Extent - 物理盘区)。PE 是 LVM 分配空间的最小单位(默认大小通常为 4MB,可在创建 VG 时指定)。
-
命令操作:
pvcreate
,pvdisplay
,pvs
,pvremove
,pvmove
,pvresize
。
-
总结 PV: 物理存储设备本身在 LVM 中的化身。它是构成上层资源池的原材料。
2. VG (Volume Group - 卷组)
-
是什么: 由一个或多个 PV 组合而成的一个大的、统一的存储资源池。
-
作用: 是 LVM 存储管理的中间层。VG 聚合了底层 PV 的存储空间,形成一个可供灵活分配的“存储池”。
-
关键点:
-
可以把不同大小、不同类型的物理设备(PV)加入同一个 VG,LVM 会统一管理它们提供的空间。
-
VG 的总容量等于其包含的所有 PV 的容量之和(减去少量管理开销)。
-
从 VG 中划分出的空间用于创建 LV。
-
VG 的空间分配也是以 PE 为基本单位进行的。
-
命令操作:
vgcreate
,vgdisplay
,vgs
,vgextend
(添加 PV 扩容),vgreduce
(移除 PV 缩容),vgremove
,vgrename
。
-
总结 VG: 存储资源的聚合池。它屏蔽了底层物理设备的差异,为上层的逻辑卷提供统一的、可伸缩的存储空间。
3. LV (Logical Volume - 逻辑卷)
-
是什么: 从 VG 的存储池中划分出来的逻辑存储单元。
-
作用: 是 LVM 存储管理的最上层,是最终被操作系统识别、格式化并挂载使用的“分区”。
-
关键点:
-
LV 在用户看来就像是一个独立的块设备(例如
/dev/vgname/lvname
或/dev/mapper/vgname-lvname
)。 -
可以像使用标准硬盘分区一样,对 LV 进行格式化(
mkfs
)、挂载(mount
)、读写文件。 -
LV 的大小可以动态调整 (
lvextend
,lvreduce
):-
扩容: 只要 VG 中有足够的空闲空间,可以随时在线扩展 LV 的大小(通常需要配合文件系统扩容命令如
resize2fs
/xfs_growfs
)。 -
缩容: 需要先卸载文件系统并确保文件系统支持缩容,操作相对复杂且有风险。
-
-
支持高级功能:
-
快照 (Snapshot): 创建 LV 在某个时间点的只读/可写副本,用于备份或测试。
-
精简配置 (Thin Provisioning): 允许创建的总 LV 大小超过实际 VG 容量,按需分配物理空间。
-
条带化 (Striping): 类似 RAID 0,将数据分散存储在多个 PV 上,提高 I/O 性能。
-
镜像 (Mirroring): 类似 RAID 1,在多个 PV 上保存相同数据,提供冗余。
-
缓存 (Caching): 使用 SSD 等快速设备为较慢的 LV 提供缓存加速。
-
-
命令操作:
lvcreate
,lvdisplay
,lvs
,lvextend
,lvreduce
,lvremove
,lvrename
,lvresize
。
-
总结 LV: 面向用户和系统的最终可用“磁盘分区”。它从 VG 池中分配空间,并提供了传统分区无法比拟的灵活性和强大功能。
——————————————————————————————————
linux 系统在线扩容步骤分析:
- 先查看磁盘和逻辑卷信息文件系统类型和挂在点:fdisk -l lsblk df -hT
- 增加磁盘空间,增加原始盘空间或者新增硬盘
- Pvcreate 新磁盘空间名称
- Vgextend 需要扩容的vg名称 新新磁盘空间名称
- Lvextend -l 100%FREE 扩容空间名称
- 刷新文件系统,根据df -hT 判断文件系统类型,ext2/3/4使用 resize2fs 扩容空间名称,xfs文件系统使用 xfs_growfs 扩容空间名称
具体扩容过程
[root@venus ~]# lsblk ----------先查看磁盘和逻辑卷信息文件系统类型和挂在点
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 1T 0 disk
├─sda1 8:1 0 500M 0 part /boot
└─sda2 8:2 0 1023.5G 0 part
├─vg_venus-lv_root (dm-0) 253:0 0 50G 0 lvm /
├─vg_venus-lv_swap (dm-1) 253:1 0 15.8G 0 lvm [SWAP]
└─vg_venus-lv_home (dm-2) 253:2 0 957.8G 0 lvm /home
sr0 11:0 1 1024M 0 rom
sdb 8:16 0 200G 0 disk
[root@venus ~]# pvcreate /dev/sdb --------增加磁盘空间,增加原始盘空间或者新增硬盘Pvcreate 新磁盘空间名称
Physical volume "/dev/sdb" successfully created
[root@venus ~]# pvdisplay ----------查看pv
--- Physical volume ---
PV Name /dev/sda2
VG Name vg_venus
PV Size 1023.51 GiB / not usable 3.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 262018
Free PE 0
Allocated PE 262018
PV UUID I1wGWb-v2uM-0aDE-6eiq-AnOC-vedT-Woy62n
"/dev/sdb" is a new physical volume of "200.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb
VG Name
PV Size 200.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID GAOoIa-vD6p-3V7L-P5my-uzKl-ghse-KtqL2g
[root@venus ~]# vgextend vg_venus /dev/sdb ----Vgextend 需要扩容的vg名称 新新磁盘空间名称
Volume group "vg_venus" successfully extended
[root@venus ~]# vgdisplay -----查看vg
--- Volume group ---
VG Name vg_venus
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 1.19 TiB
PE Size 4.00 MiB
Total PE 313217
Alloc PE / Size 262018 / 1023.51 GiB
Free PE / Size 51199 / 200.00 GiB
VG UUID ji6Mcr-8mIh-drD7-DVH0-LSFA-ilUK-KRD6hV
[root@venus ~]# lvs ----查看逻辑卷信息
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv_home vg_venus -wi-ao---- 957.77g
lv_root vg_venus -wi-ao---- 50.00g
lv_swap vg_venus -wi-ao---- 15.74g
[root@venus ~]# lsblk ----------查看磁盘和逻辑卷信息文件系统类型和挂在点
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 1T 0 disk
├─sda1 8:1 0 500M 0 part /boot
└─sda2 8:2 0 1023.5G 0 part
├─vg_venus-lv_root (dm-0) 253:0 0 50G 0 lvm /
├─vg_venus-lv_swap (dm-1) 253:1 0 15.8G 0 lvm [SWAP]
└─vg_venus-lv_home (dm-2) 253:2 0 957.8G 0 lvm /home
sr0 11:0 1 1024M 0 rom
sdb 8:16 0 200G 0 disk
[root@venus ~]# lvextend -l +100%FREE /dev/mapper/vg_venus-lv_home -----------Lvextend -l 100%FREE 扩容空间名称
Size of logical volume vg_venus/lv_home changed from 957.77 GiB (245188 extents) to 1.13 TiB (296387 extents).
Logical volume lv_home successfully resized.
[root@venus ~]# lvdisplay -----查看lv
--- Logical volume ---
LV Path /dev/vg_venus/lv_root
LV Name lv_root
VG Name vg_venus
LV UUID rRNtss-oO6P-ZilP-PVgh-TMuj-Mg9v-UTmVf2
LV Write Access read/write
LV Creation host, time venus.tsoc.sa, 2020-07-28 15:57:55 +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 256
Block device 253:0
--- Logical volume ---
LV Path /dev/vg_venus/lv_home
LV Name lv_home
VG Name vg_venus
LV UUID g2agD7-ndP2-e9Bq-vLN1-rIzj-8JT3-jaXMpQ
LV Write Access read/write
LV Creation host, time venus.tsoc.sa, 2020-07-28 15:57:56 +0800
LV Status available
# open 1
LV Size 1.13 TiB
Current LE 296387
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:2
--- Logical volume ---
LV Path /dev/vg_venus/lv_swap
LV Name lv_swap
VG Name vg_venus
LV UUID DdhN5R-Vssb-1DnX-Ihcx-FOJq-0Ocg-bYuY3x
LV Write Access read/write
LV Creation host, time venus.tsoc.sa, 2020-07-28 15:57:59 +0800
LV Status available
# open 1
LV Size 15.74 GiB
Current LE 4030
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:1
[root@venus ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv_home vg_venus -wi-ao---- 1.13t
lv_root vg_venus -wi-ao---- 50.00g
lv_swap vg_venus -wi-ao---- 15.74g
[root@venus ~]# df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/vg_venus-lv_root
ext4 50G 8.5G 39G 19% /
tmpfs tmpfs 32G 228K 32G 1% /dev/shm
/dev/sda1 ext4 477M 78M 375M 18% /boot
/dev/mapper/vg_venus-lv_home
ext4 943G 732G 164G 82% /home
/dev/mapper/vg_venus-lv_home
ext4 943G 732G 164G 82% /data
[root@venus ~]# resize2fs /dev/mapper/vg_venus-lv_home -----------查看文件系统格式,根据df -hT 判断文件系统类型,ext2/3/4使用 resize2fs 扩容空间名称,xfs文件系统使用 xfs_growfs 扩容空间名称
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/mapper/vg_venus-lv_home is mounted on /home; on-line resizing required
old desc_blocks = 60, new_desc_blocks = 73
Performing an on-line resize of /dev/mapper/vg_venus-lv_home to 303500288 (4k) blocks.
The filesystem on /dev/mapper/vg_venus-lv_home is now 303500288 blocks long.
[root@venus ~]# df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/vg_venus-lv_root
ext4 50G 8.5G 39G 19% /
tmpfs tmpfs 32G 228K 32G 1% /dev/shm
/dev/sda1 ext4 477M 78M 375M 18% /boot
/dev/mapper/vg_venus-lv_home
ext4 1.2T 732G 351G 68% /home
/dev/mapper/vg_venus-lv_home
ext4 1.2T 732G 351G 68% /data