LVM就是动态卷管理,可以将多个硬盘和硬盘分区做成一个逻辑卷,并把这个逻辑卷作为一个整体来统一管理,动态对分区进行扩缩空间大小,安全快捷方便管理。
LVM 有三个重要的概念:
1 PV(Physical Volume) 物理卷 处于LVM最底层,可以是物理硬盘或者分区。
2 VG(Volume Group) 卷组 卷组是对一个或多个物理卷的集合
3 LV(Logical Volume) 逻辑卷 逻辑卷是可供系统使用的最终元设备,它们在卷组中创建和管理,由物理块组成,实际上就是一个虚拟分区
在创建LVM时顺序是:PV(物理卷)》》VG(卷组)》》LV(逻辑卷)
功能 | PV物理卷管理 | VG卷组管理 | LV逻辑卷管理 |
扫描 | pvscan | vgscan | lvscan |
创建 | pvcreate | vgcreate | lvcreate |
查看/显示 | pvdisplay | vgdisplay | lvdispaly |
删除 | pvremote | vgremote | lvremote |
扩展 | 无法扩展 | vgextend | lvextend |
缩容 | 无法缩容 | vgreduce | lvreduce |
[root@pg001 ~]# rpm -qa | grep lvm #查看是否安装LVM 如果没有请执行 yum -y install lvm2 安装
lvm2-2.02.186-7.el7.x86_64
lvm2-libs-2.02.186-7.el7.x86_64
[root@pg001 ~]# fdisk -l #查看新的磁盘
磁盘 /dev/sda:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x0009881f
设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 83886079 40893440 8e Linux LVM
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区 #该磁盘并没有分区,这就是我们的新磁盘
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/mapper/centos-root:37.7 GB, 37706792960 字节,73646080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/mapper/centos-swap:4160 MB, 4160749568 字节,8126464 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
[root@pg001 ~]# fdisk /dev/sdb
#进入后输入 n 创建分区
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
分区号 (1-4,默认 1):1
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):
将使用默认值 41943039
分区 1 已设置为 Linux 类型,大小设为 20 GiB
# 创建成功后输入 p 查看分区号
命令(输入 m 获取帮助):p
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x116ed9bd
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 41943039 20970496 83 Linux
命令(输入 m 获取帮助):t
已选择分区 1
Hex 代码(输入 L 列出所有代码):L
0 空 24 NEC DOS 81 Minix / 旧 Linu bf Solaris
1 FAT12 27 隐藏的 NTFS Win 82 Linux 交换 / So c1 DRDOS/sec (FAT-
2 XENIX root 39 Plan 9 83 Linux c4 DRDOS/sec (FAT-
3 XENIX usr 3c PartitionMagic 84 OS/2 隐藏的 C: c6 DRDOS/sec (FAT-
4 FAT16 <32M 40 Venix 80286 85 Linux 扩展 c7 Syrinx
5 扩展 41 PPC PReP Boot 86 NTFS 卷集 da 非文件系统数据
6 FAT16 42 SFS 87 NTFS 卷集 db CP/M / CTOS / .
7 HPFS/NTFS/exFAT 4d QNX4.x 88 Linux 纯文本 de Dell 工具
8 AIX 4e QNX4.x 第2部分 8e Linux LVM df BootIt
9 AIX 可启动 4f QNX4.x 第3部分 93 Amoeba e1 DOS 访问
a OS/2 启动管理器 50 OnTrack DM 94 Amoeba BBT e3 DOS R/O
b W95 FAT32 51 OnTrack DM6 Aux 9f BSD/OS e4 SpeedStor
c W95 FAT32 (LBA) 52 CP/M a0 IBM Thinkpad 休 eb BeOS fs
e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a5 FreeBSD ee GPT
f W95 扩展 (LBA) 54 OnTrackDM6 a6 OpenBSD ef EFI (FAT-12/16/
10 OPUS 55 EZ-Drive a7 NeXTSTEP f0 Linux/PA-RISC
11 隐藏的 FAT12 56 Golden Bow a8 Darwin UFS f1 SpeedStor
12 Compaq 诊断 5c Priam Edisk a9 NetBSD f4 SpeedStor
14 隐藏的 FAT16 <3 61 SpeedStor ab Darwin 启动 f2 DOS 次要
16 隐藏的 FAT16 63 GNU HURD or Sys af HFS / HFS+ fb VMware VMFS
17 隐藏的 HPFS/NTF 64 Novell Netware b7 BSDI fs fc VMware VMKCORE
18 AST 智能睡眠 65 Novell Netware b8 BSDI swap fd Linux raid 自动
1b 隐藏的 W95 FAT3 70 DiskSecure 多启 bb Boot Wizard 隐 fe LANstep
1c 隐藏的 W95 FAT3 75 PC/IX be Solaris 启动 ff BBT
1e 隐藏的 W95 FAT1 80 旧 Minix
Hex 代码(输入 L 列出所有代码):8e #选择 LVM
已将分区“Linux”的类型更改为“Linux LVM”
命令(输入 m 获取帮助):w #执行 W 保存
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@pg001 ~]# pvcreate /dev/sdb1 #创建pv 物理卷
Physical volume "/dev/sdb1" successfully created.
[root@pg001 ~]# pvdisplay #创建成功并查看
--- Physical volume ---
PV Name /dev/sda2
VG Name centos
PV Size <39.00 GiB / not usable 3.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 9983
Free PE 1
Allocated PE 9982
PV UUID FDW1eB-z3hX-SWEs-x4te-H09e-kYUx-gW99oC
"/dev/sdb1" is a new physical volume of "<20.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb1
VG Name
PV Size <20.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID 5HuxOF-w9u1-xRN1-hTzp-EvWP-n04S-Dct2fM
[root@pg001 ~]# vgcreate vgdata /dev/sdb1 #创建vg卷组 卷组名称vgdata
Volume group "vgdata" successfully created
[root@pg001 ~]# vgdisplay #创建成功并查看
--- Volume group ---
VG Name vgdata
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size <20.00 GiB
PE Size 4.00 MiB
Total PE 5119
Alloc PE / Size 0 / 0
Free PE / Size 5119 / <20.00 GiB
VG UUID fnmp3Q-Ctf6-xJQo-krjC-sitB-TzlS-W9uPI3
--- Volume group ---
VG Name centos
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 1
Act PV 1
VG Size <39.00 GiB
PE Size 4.00 MiB
Total PE 9983
Alloc PE / Size 9982 / 38.99 GiB
Free PE / Size 1 / 4.00 MiB
VG UUID BJM6kd-4BcX-UDnf-WKa8-CaKL-BkcE-C3EWVe
[root@pg001 ~]# lvcreate -l +100%FREE -n lvdata vgdata
Logical volume "lvdata" created.
[root@pg001 ~]# lvdisplay #创建成功并查看
--- Logical volume ---
LV Path /dev/vgdata/lvdata
LV Name lvdata
VG Name vgdata
LV UUID JP7EAb-ZhJ1-3dKo-ab9y-YDqd-yScq-E2LoDJ
LV Write Access read/write
LV Creation host, time pg001, 2022-07-09 17:18:20 +0800
LV Status available
# open 0
LV Size <20.00 GiB
Current LE 5119
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:2
--- Logical volume ---
LV Path /dev/centos/root
LV Name root
VG Name centos
LV UUID XUlQHG-jtP5-Vk1Y-7GnR-V5bu-AFLZ-lgFGbY
LV Write Access read/write
LV Creation host, time localhost, 2022-05-02 17:41:43 +0800
LV Status available
# open 1
LV Size <35.12 GiB
Current LE 8990
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:0
--- Logical volume ---
LV Path /dev/centos/swap
LV Name swap
VG Name centos
LV UUID 5ZkUjN-aCNI-9841-u7xO-QhcT-Iujq-KudEGk
LV Write Access read/write
LV Creation host, time localhost, 2022-05-02 17:41:43 +0800
LV Status available
# open 2
LV Size <3.88 GiB
Current LE 992
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:1
[root@pg001 ~]# mkfs.ext4 /dev/vgdata/lvdata #创建ext4文件系统
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
1310720 inodes, 5241856 blocks
262092 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=2153775104
160 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000
Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (32768 blocks):
完成
Writing superblocks and filesystem accounting information: 完成
[root@pg001 ~]# mount /dev/vgdata/lvdata /data #挂载
root@pg001 ~]# df -Th 查看
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 1.9G 12M 1.9G 1% /run
tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/centos-root xfs 36G 2.6G 33G 8% /
/dev/sda1 xfs 1014M 150M 865M 15% /boot
tmpfs tmpfs 378M 0 378M 0% /run/user/0
/dev/mapper/vgdata-lvdata ext4 20G 45M 19G 1% /data
[root@pg001 ~]# vim /etc/fstab #设置开机自动挂载
# /etc/fstab
# Created by anaconda on Mon May 2 17:41:44 2022
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root / xfs defaults 0 0
UUID=a612225b-d15d-45d0-ba4b-04917510d6cb /boot xfs defaults 0 0
/dev/mapper/centos-swap swap swap defaults 0 0
UUID=ed634a26-e1fc-4074-8d2d-596fc99c0a23 /data ext4 defaults 0 0
[root@pg001 ~]# vgextend vgdata /dev/sdc1
Volume group "vgdata" successfully extended
[root@pg001 ~]# vgdisplay 添加成功并查看 查看到vgdata 由原来的20G 变成了30G
--- Volume group ---
VG Name vgdata
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 2
Act PV 2
VG Size 29.99 GiB
PE Size 4.00 MiB
Total PE 7678
Alloc PE / Size 5119 / <20.00 GiB
Free PE / Size 2559 / <10.00 GiB
VG UUID fnmp3Q-Ctf6-xJQo-krjC-sitB-TzlS-W9uPI3
--- Volume group ---
VG Name centos
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 1
Act PV 1
VG Size <39.00 GiB
PE Size 4.00 MiB
Total PE 9983
Alloc PE / Size 9982 / 38.99 GiB
Free PE / Size 1 / 4.00 MiB
VG UUID BJM6kd-4BcX-UDnf-WKa8-CaKL-BkcE-C3EWVe
lvextend -l +100%FREE /dev/vgdata/lvdata
Size of logical volume vgdata/lvdata changed from <20.00 GiB (5119 extents) to 29.99 GiB (7678 extents).
Logical volume vgdata/lvdata successfully resized.
[root@pg001 ~]# lvdisplay #扩展成功并查看
--- Logical volume ---
LV Path /dev/vgdata/lvdata
LV Name lvdata
VG Name vgdata
LV UUID JP7EAb-ZhJ1-3dKo-ab9y-YDqd-yScq-E2LoDJ
LV Write Access read/write
LV Creation host, time pg001, 2022-07-09 17:18:20 +0800
LV Status available
# open 1
LV Size 29.99 GiB
Current LE 7678
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:2
--- Logical volume ---
LV Path /dev/centos/root
LV Name root
VG Name centos
LV UUID XUlQHG-jtP5-Vk1Y-7GnR-V5bu-AFLZ-lgFGbY
LV Write Access read/write
LV Creation host, time localhost, 2022-05-02 17:41:43 +0800
LV Status available
# open 1
LV Size <35.12 GiB
Current LE 8990
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:0
--- Logical volume ---
LV Path /dev/centos/swap
LV Name swap
VG Name centos
LV UUID 5ZkUjN-aCNI-9841-u7xO-QhcT-Iujq-KudEGk
LV Write Access read/write
LV Creation host, time localhost, 2022-05-02 17:41:43 +0800
LV Status available
# open 2
LV Size <3.88 GiB
Current LE 992
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:1
[root@pg001 ~]# df -Th #然而此时data 并没有增加
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 1.9G 12M 1.9G 1% /run
tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/centos-root xfs 36G 2.6G 33G 8% /
/dev/sda1 xfs 1014M 150M 865M 15% /boot
/dev/mapper/vgdata-lvdata ext4 20G 45M 19G 1% /data
[root@pg001 ~]# resize2fs /dev/vgdata/lvdata 同步文件系统容量到内核 该命令只支持ext4、ext3等
如果是xfs 则xfs_growfs /dev/vgdata/lvdata
如果过程中创建错误 可以实用 pvremote、vgremote、lvremote