LVM:是 Logical Volume Manager(逻辑卷管理)的简写。
LVM是Linux系统中对磁盘分区进行管理的一种逻辑机制,是建立在硬盘和分区之上的一个逻辑层,能够在保持现
有数据不变的情况下动态调整磁盘容量,从而来提高磁盘分区管理的灵活性。
首先了解LVM的几个基本术语:
名词解释:
物理卷:physical volume PV
卷组:vlolume groap VG
物理分区:physical partition PP
逻辑卷:logical volume LV
逻辑分区:logical partition LP
将普通分区转换为物理卷的命令是pvcreate。
将物理卷组合为卷组的命令是vgcreate。
从卷组中提取容量创建逻辑卷的命令是Ivcreate。
创建完成后可以分别使用pvdisplay、vgdisplay、 Ivdisplay 查看效果。
功能物理卷管理卷组管理逻辑卷管理Scan 扫描pvscanvgscanlvscanCreate建立pvcreatevgcreatelvcreateDisplay显示pvdisplayvgdisplaylvdisplayRemove删除pvremovevgremovelvremoveExtend扩展--------------vgextendlvextendReduce 减少--------------vgreducelvreduce将各物理磁盘或分区的系统类型设为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 ...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-MVt9OO4、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卷组将多个物理卷整合起来(屏蔽了底层细节),并划分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 created2、vgscan:查找系统中存在的LVM卷组,并显示找到的卷组列表
例如: [root@localhost ~]# vgscan Reading volume groups from cache. Found volume group "myvg" using metadata type lvm23、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-wv9poA4、vgextend:动态扩展LVM卷组,它通过向卷组中添加物理卷来增加卷组的容量
用法:vgextend VG_NAME PV_DEVICE 例 vgextend myvg /dev/sdb35、vgreduce:通过删除LVM卷组中的物理卷来减少卷组容量,不能删除LVM卷组中剩余的最后一个物理卷
用法:vgreduce VG_NAME PV_DEVICE6、vgremove:删除卷组,其上的逻辑卷必须处于离线状态
用法:vgremove [-f] VG_NAME -f:强制删除在卷组上创建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] inherit3、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:04、lvextend:可在线扩展逻辑卷空间
用法:lvextend -L/-l 扩展的大小 /dev/VG_NAME/LV_NAME 选项: -L:指定扩展(后)的大小。例如,-L +800M表示扩大800M,而-L 800M表示扩大至800M -l:指定扩展(后)的大小(LE数) 例子: lvextend -L 200M /dev/myvg/mylv5、lvreduce:缩减逻辑卷空间,一般离线使用
用法:lvexreduce -L/-l 缩减的大小 /dev/VG_NAME/LV_NAME 选项: -L:指定缩减(后)的大小 -l:指定缩减(后)的大小(LE数) 例 lvreduce -L 200M /dev/myvg/mylv6、lvremove:删除逻辑卷,需要处于离线(卸载)状态
用法:lvremove [-f] /dev/VG_NAME/LV_NAME -f:强制删除如果格式化成 EXT4 文件系统,然后在使用 lvextend 命令为逻辑卷扩容,最后一定要用 resize2fs 更新系统识别的 文件系统大小。
如果格式化成 xfs 文件系统,LVM扩容后使用的是 xfs_growfs 命令 更新系统识别的文件系统大小。
通过以上内容,相信大家对LVM的配置过程和一些命令有了一定的了解,但是对于LVM的配置还需要多多练习。不 要担心,在下一个博客我会列举一个实例操作来带着大家做。
