文章目录
- 一、LVM概述
- 二、LVM命令的详解
- 2.1、新建物理分区
- 2.2、PV物理卷
- 2.3、创建VG卷组
- 2.4、创建LV
- 三、格式化逻辑卷并挂载
- 四、总结
一、LVM概述
LVM:是 Logical Volume Manager(逻辑卷管理)的简写。
LVM是Linux系统中对磁盘分区进行管理的一种逻辑机制,是建立在硬盘和分区之上的一个逻辑层,能够在保持现
有数据不变的情况下动态调整磁盘容量,从而来提高磁盘分区管理的灵活性。
首先了解LVM的几个基本术语:
名词解释:
物理卷:physical volume PV
卷组:vlolume groap VG
物理分区:physical partition PP
逻辑卷:logical volume LV
逻辑分区:logical partition LP
二、LVM命令的详解
将普通分区转换为物理卷的命令是pvcreate。
将物理卷组合为卷组的命令是vgcreate。
从卷组中提取容量创建逻辑卷的命令是Ivcreate。
创建完成后可以分别使用pvdisplay、vgdisplay、 Ivdisplay 查看效果。
功能 | 物理卷管理 | 卷组管理 | 逻辑卷管理 |
Scan 扫描 | pvscan | vgscan | lvscan |
Create建立 | pvcreate | vgcreate | lvcreate |
Display显示 | pvdisplay | vgdisplay | lvdisplay |
Remove删除 | pvremove | vgremove | lvremove |
Extend扩展 | -------------- | vgextend | lvextend |
Reduce 减少 | -------------- | vgreduce | lvreduce |
2.1、新建物理分区
将各物理磁盘或分区的系统类型设为Linux LVM,其system ID为 8e,通过fdisk工具中的 t 命令设置类型。
[root@localhost ~]# fdisk /dev/sdb
...
Command (m for help): n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): p
Partition number (2-4, default 2): 2
First sector (20973568-62914559, default 20973568):
Using default value 20973568
Last sector, +sectors or +size{K,M,G} (20973568-62914559, default 62914559): +5G
...
Command (m for help): t
Partition number (1,2, default 2): 2
Hex code (type L to list all codes): 8e # 指定system id为8e
Changed type of partition 'Linux' to 'Linux LVM'
...
Command (m for help): p
...
/dev/sdb1 2048 20973567 10485760 8e Linux LVM
/dev/sdb2 20973568 31459327 5242880 8e Linux LVM
Command (m for help): w
...
2.2、PV物理卷
1、pvcreate:用于将分区或整个硬盘转换成物理卷。
用法: pvcreate [选项]物理卷[物理卷..]
例子:
[root@localhost ~]# pvcreate /dev/sdb{1,2} # 将两个分区初始化为物理卷
Physical volume "/dev/sdb1" successfully created.
Physical volume "/dev/sdb2" successfully created.
2、pvscan:扫描当前系统上的所有物理卷
用法:pvscan [option]
[root@localhost ~]# pvscan
PV /dev/sdb2 lvm2 [5.00 GiB]
PV /dev/sdb1 lvm2 [10.00 GiB]
Total: 2 [15.00 GiB] / in use: 0 [0 ] / in no VG: 2 [15.00 GiB]
3、pvdisplay:显示物理卷的属性
用法:pvdisplay [PV_DEVICE]
[root@localhost ~]# pvdisplay /dev/sdb1 # 显示物理卷sdb1的详细信息
"/dev/sdb1" is a new physical volume of "10.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb1
VG Name
PV Size 10.00 GiB
Allocatable NO
PE Size 0 # 由于PE是在VG阶段才划分的,所以此处看到的都是0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID GrP9Gi-ubau-UAcb-za3B-vSc3-er2Q-MVt9OO
4、pvremove:将物理卷信息删除,使其不再被视为一个物理卷
用法:pvremove [option] PV_DEVICE
[root@localhost ~]# pvremove /dev/sdb2 # 删除sdb2的物理卷信息
Labels on physical volume "/dev/sdb2" successfully wiped.
[root@localhost ~]# pvscan # 可以看到PV列表中已无sdb2
PV /dev/sdb1 lvm2 [10.00 GiB]
Total: 1 [10.00 GiB] / in use: 0 [0 ] / in no VG: 1 [10.00 GiB
2.3、创建VG卷组
卷组将多个物理卷整合起来(屏蔽了底层细节),并划分PE(physical extend)
PE是物理卷中的最小存储单元,有点类似于文件系统中的block,PE大小可指定,默认为4M。
1、vgcreate:创建卷组
用法:vgcreate [option] VG_NAME PV_DEVICE
选项:
-s:卷组中的物理卷的PE大小,默认为4M
-l:卷组上允许创建的最大逻辑卷数
-p:卷级中允许添加的最大物理卷数
例子:
[root@localhost ~]# vgcreate -s 8M myvg /dev/sdb{1,2}
Volume group "myvg" successfully created
2、vgscan:查找系统中存在的LVM卷组,并显示找到的卷组列表
例如:
[root@localhost ~]# vgscan
Reading volume groups from cache.
Found volume group "myvg" using metadata type lvm2
3、vgdisplay:显示卷组属性
用法:vgdisplay [option] [VG_NAME]
[root@localhost ~]# vgdisplay
--- Volume group ---
VG Name myvg
System ID
Format lvm2
Metadata Areas 2
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 2
Act PV 2
VG Size 14.98 GiB
PE Size 8.00 MiB
Total PE 1918
Alloc PE / Size 0 / 0
Free PE / Size 1918 / 14.98 GiB
VG UUID aM3RND-aUbQ-7RjC-dCci-JiS4-Oj2Z-wv9poA
4、vgextend:动态扩展LVM卷组,它通过向卷组中添加物理卷来增加卷组的容量
用法:vgextend VG_NAME PV_DEVICE
例 vgextend myvg /dev/sdb3
5、vgreduce:通过删除LVM卷组中的物理卷来减少卷组容量,不能删除LVM卷组中剩余的最后一个物理卷
用法:vgreduce VG_NAME PV_DEVICE
6、vgremove:删除卷组,其上的逻辑卷必须处于离线状态
用法:vgremove [-f] VG_NAME
-f:强制删除
2.4、创建LV
在卷组上创建LV(logical volume,逻辑卷)
为了便于管理,逻辑卷对应的设备文件保存在卷组目录下,为/dev/VG_NAME/LV_NAME。
1、lvcreate:创建逻辑卷或快照
用法:lvcreate [选项] [参数]
选项:
-L:指定大小
-l:指定大小(LE数)
-n:指定名称
-s:创建快照
-p r:设置为只读(该选项一般用于创建快照中)
注:使用该命令创建逻辑卷时当然必须指明卷组,创建快照时必须指明针对哪个逻辑卷
例子:
[root@localhost ~]# lvcreate -L 2G -n mylv myvg
Logical volume "mylv" created.
2、lvscan:扫描当前系统中的所有逻辑卷,及其对应的设备文件
例子:
[root@localhost ~]# lvscan
ACTIVE '/dev/myvg/mylv' [2.00 GiB] inherit
3、lvdisplay:显示逻辑卷属性
用法:lvdisplay [/dev/VG_NAME/LV_NAME]
[root@localhost ~]# lvdisplay
--- Logical volume ---
LV Path /dev/myvg/mylv
LV Name mylv
VG Name myvg
LV UUID 2lfCLR-UEhm-HMiT-ZJil-3EJm-n2H3-ONLaz1
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2019-07-05 13:42:44 +0800
LV Status available
# open 0
LV Size 2.00 GiB
Current LE 256
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
4、lvextend:可在线扩展逻辑卷空间
用法:lvextend -L/-l 扩展的大小 /dev/VG_NAME/LV_NAME
选项:
-L:指定扩展(后)的大小。例如,-L +800M表示扩大800M,而-L 800M表示扩大至800M
-l:指定扩展(后)的大小(LE数)
例子:
lvextend -L 200M /dev/myvg/mylv
5、lvreduce:缩减逻辑卷空间,一般离线使用
用法:lvexreduce -L/-l 缩减的大小 /dev/VG_NAME/LV_NAME
选项:
-L:指定缩减(后)的大小
-l:指定缩减(后)的大小(LE数)
例 lvreduce -L 200M /dev/myvg/mylv
6、lvremove:删除逻辑卷,需要处于离线(卸载)状态
用法:lvremove [-f] /dev/VG_NAME/LV_NAME
-f:强制删除
三、格式化逻辑卷并挂载
[root@localhost ~]# mke2fs -t ext4 /dev/myvg/mylv
...
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done
...
[root@localhost ~]# mkdir /data
[root@localhost ~]# mount
mount mountpoint
[root@localhost ~]# mount /dev/myvg/mylv /data
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 50G 1.5G 49G 3% /
devtmpfs 903M 0 903M 0% /dev
tmpfs 912M 0 912M 0% /dev/shm
tmpfs 912M 8.6M 904M 1% /run
tmpfs 912M 0 912M 0% /sys/fs/cgroup
tmpfs 183M 0 183M 0% /run/user/0
/dev/mapper/myvg-mylv 2.0G 6.0M 1.8G 1% /data
四、总结
如果格式化成 EXT4 文件系统,然后在使用 lvextend 命令为逻辑卷扩容,最后一定要用 resize2fs 更新系统识别的
文件系统大小。
如果格式化成 xfs 文件系统,LVM扩容后使用的是 xfs_growfs 命令 更新系统识别的文件系统大小。
通过以上内容,相信大家对LVM的配置过程和一些命令有了一定的了解,但是对于LVM的配置还需要多多练习。不
要担心,在下一个博客我会列举一个实例操作来带着大家做。