1,什么叫LVM
LVM全名Logical Volume Manager(逻辑卷管理),它是Linux环境下一种磁盘分区管理机制,该机制可以弹性的修改分区大小.
物理块(Physical Extent,PE)
每一个物理卷PV被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。所以物理卷(PV)由大小等同的基本单元PE组成。
物理卷(Physical Volume,PV)
指磁盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。
卷组(Volume Group,VG)
类似于非LVM系统中的物理磁盘,其由一个或多个物理卷PV组成。可以在卷组上创建一个或多个LV(逻辑卷)。
逻辑卷(Logical Volume,LV)
类似于非LVM系统中的磁盘分区,逻辑卷建立在卷组VG之上。在逻辑卷LV之上可以建立文件系统(比如/home或者/usr等)。
文件系统:
文件系统大小一般小于等于物理磁盘空间,是操作系统用于明确磁盘或分区上的文件的方法和数据结构;即在磁盘上组织文件的方法。当我们调整物理盘区大小时,文件系统大小时固定的,此时我们需要扩大文件系统管理的空间,以达到拓展分区的作用,或者缩小文件系统管理的空间,以便磁盘空间被合理利用
构建LV逻辑卷时,需要依次创建PV,VG,LV,(PE在构建VG时可以使用-s指定大小,默认在创建LV时自动分配),拓展LVM逻辑卷时首先需要确认LV是否已经达到VG上限,若果没有达到,可以直接调整LV大小,完成后使用resize2fs调整文建立在LV卷上的文件系统大小.
2.创建LVM操作步骤
2.1
创建物理卷PV:
创建物理卷时常用的命令:pvcreate,pvdisplay,pvscan,pvmove,pvremove
pvcreate | 创建PV,格式:pvcreate /PATH/disk|partition |
pvdisplay | 查看系统上PV卷信息,可单独使用,也可以指定查看PV卷,格式:pvdisplay /PATH/PV |
pvscan/pvs | 查看系统上PV卷信息,所属卷组,已使用空间等,可单独使用,可以指定查看 |
pvmove | 移动PV数据,格式:pvmove /PATH/PV或指定位置pvmove /PATH/PV /PATH/PV |
pvremove | 移除PV卷,格式:pvremove /PATH/PV |
[root@localhost mysh]# pvcreate /dev/sdc{1,2,3,5} 基于分区创建PV卷
Physical volume "/dev/sdc1" successfully created
Physical volume "/dev/sdc2" successfully created
Physical volume "/dev/sdc3" successfully created
Physical volume "/dev/sdc5" successfully created
[root@localhost mysh]# pvdisplay /dev/sdc1 查看sdc1的pv信息
"/dev/sdc1" is a new physical volume of "1.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdc1
VG Name
PV Size 1.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID NExGGE-7Sjh-xc42-jRZ8-YpOc-7m50-7ReIL7
[root@localhost mysh]# pvs 浏览系统上的pv卷
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- 19.51g 0
/dev/sdb1 myvg lvm2 a-- 3.00g 3.00g
/dev/sdb2 myvg lvm2 a-- 3.00g 3.00g
/dev/sdb3 myvg lvm2 a-- 3.00g 3.00g
/dev/sdc1 lvm2 a-- 1.00g 1.00g
/dev/sdc2 lvm2 a-- 1.00g 1.00g
/dev/sdc3 lvm2 a-- 1.00g 1.00g
/dev/sdc5 lvm2 a-- 1.00g 1.00g
[root@localhost mysh]# pvremove /dev/sdc5 移除基于sdc5的pv卷
Labels on physical volume "/dev/sdc5" successfully wiped
2.2创建卷组VG
创建卷组常用到的命令:vgcreat,vgremove,vgextend,vgreduce,vgs,vgdisplay,vgscan
vgcreate | 创建VG,格式:vgcreate VG_NAME /PATH/PV (指定的PV卷可以为多个) -s 指定PE大小,默认为4M |
vgremove | 移除VG,格式:vgremove VG_NAME |
vgextend | 拓展VG:vgextend VG_NAME /PATH/PV |
vgreduce | 缩小PV:vgreduce VG_NAME /PATH/PV |
vgs vgdisplay vgscan | 查看VG卷组 |
[root@localhost ~]# vgcreate myvg2 /dev/sdc{1,2,3} 创建VG卷组
Volume group "myvg2" successfully created
[root@localhost ~]# vgs 查看系统上的VG卷组
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz--n- 19.51g 0
myvg 3 0 0 wz--n- 8.99g 8.99g
myvg2 4 0 0 wz--n- 3.98g 3.98g
[root@localhost ~]# vgextend myvg2 /dev/sdc5 将pv卷sdc5添加到myvg2的VG卷组
Volume group "myvg2" successfully extended
[root@localhost ~]# vgreduce myvg2 /dev/sdc1 将pv卷sdc1从myvg2的VG卷组内移除
Removed "/dev/sdc1" from volume group "myvg2
2.3创建逻辑卷LV
创建LV常用到的命令:lvcreate lvremove,lvextend,lvreduce,lvs,lvdisplay,mke2fs
lvcreate | 创建LV卷:lvcreate -n LV_NAME -L 空间 VG_NAME -L:直接指定空间大小 -l:指定盘区(PE)个数 |
lvremove | 移除LV逻辑卷,移除设备时需要先卸载设备,格式:lvremove /dev/VG_NAME/LV_NAME |
lvextend | 拓展物理边界 lvextend -L [+]# /dev/VG_NAME/PVNAME -L带+表示需要增加的空间大小,不带+表示拓展结果的空间大小 |
resize2fs | 拓展逻辑边界:resize2fs /dev/VG_NAME/PVNAME -p表示拓展到物理边界极限(即增加VG剩余大小的空间) |
lvreduce | 裁剪边界:lvreduce -L [-]# /PATH/TO/LV ,(要裁物理边界需要先裁剪逻辑边界,使用resize2fs) 带-号是缩减#size,不带-号代表缩减到#size |
mke2fs | 格式化LV卷:mke2fs -j /dev/VG_NAME/LV_NAME |
lvs lvscan lvdisplay | 浏览 |
2.3.1拓展LVM:
root@localhost dev]# lvextend -L 2.6G /dev/myvg/mylv 将LV卷拓展到2.6G
Extending logical volume mylv to 2.6 GiB
Logical volume mylv successfully resized
root@localhost dev]# lvs 查看LV
mylv myvg -wi-ao---- 2.60g
root@localhost dev]# df -h 查看磁盘使用
dev/mapper/myvg-mylv 1.9G 3.9M 1.8G 1% /mnt
root@localhost dev]# resize2fs -p /dev/myvg/mylv 拓展逻辑边界至VG极限
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/myvg/mylv is mounted on /mnt; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/myvg/mylv is now 681984 blocks long.
2.3.2 裁剪LVM;
要裁剪LVM,首先要对其逻辑卷进行调整,调整过程中需要遵循:
1,需要先卸载
2,确保缩减后的空间依然能足够存储原有数据
3,在缩减之前应该先强行检查文件,以确保文件系统处于一致性状态
[root@localhost dev]# resize2fs /dev/myvg/mylv 2G 调整逻辑边界大小至2G
resize2fs 1.42.9 (28-Dec-2013)Please run 'e2fsck -f /dev/myvg/mylv' first. 注意此处要求运行单引号内的命令
[root@localhost dev]# e2fsck -f /dev/myvg/mylv 运行该命令
e2fsck 1.42.9 (28-Dec-2013)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/myvg/mylv: 11/172032 files (0.0% non-contiguous), 28167/681984 blocks
[root@localhost dev]# resize2fs /dev/myvg/mylv 2G 调整逻辑边界大小至2G
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/myvg/mylv to 524288 (4k) blocks.
The filesystem on /dev/myvg/mylv is now 524288 blocks long.
localhost dev]# lvs 查看LV
LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert
mylv myvg -wi-a----- 2.60g 此处可以看到修改逻辑卷后LV大小没变
[root@localhost dev]# lvreduce -L 2.1G /dev/myvg/mylv 调整物理边界,注意物理边界要大于等于逻辑边界
Rounding size to boundary between physical extents: 2.10 GiB
WARNING: Reducing active logical volume to 2.10 GiB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce mylv? [y/n]: y
Reducing logical volume mylv to 2.10 GiB
Logical volume mylv successfully resized
localhost dev]# lvs 查看LV
LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert
myvg -wi-a----- 2.10g 此处可以看到修改逻辑卷后LV大小已经改变
[root@localhost dev]# mount /dev/myvg/mylv /mnt 挂载
[root@localhost dev]# df -h 查看磁盘信息
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/myvg-mylv 2.0G 3.9M 1.8G 1% /mnt 此处可看到该LV卷大小已经调整至逻辑卷大小
[root@localhost dev]# resize2fs -p /dev/myvg/mylv 调整LV至物理边界大小
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/myvg/mylv is mounted on /mnt; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/myvg/mylv is now 550912 blocks long.
[root@localhost dev]# df -h 查看磁盘信息
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/myvg-mylv 2.1G 3.9M 1.9G 1% /mnt
转载于:https://blog.51cto.com/w564791/1674836