VM:逻辑卷管理(Logical Volume Manager),它是一种对磁盘分区进行管理的一种技术,实现了磁盘分区大小动态分配的功能,使用户在无需停机的情况下方便的调整各个分区的大小。
LVM由以下几部分组成:
PV:物理卷(Physical Volume),可以为物理磁盘分区,也可以为整个物理磁盘,也可以为raid设备
VG:卷组(Volume Group),由一个或多个物理卷组成,在卷组建立后可以动态添加或移除
LV:逻辑卷(Logical Volume),建立在卷组之上,卷组中未分配的空间用于建立逻辑卷,创建后可以动态扩展和缩小空间
LE:物理块(Logical Extent),LV的最小组成部分,大小和PE相同
PE:物理块(Physical Extent),每一个物理卷(PV)被划分成相同大小的PE基本单元,所有在VG(卷组)中是由许许多多个PE组成的,LV的大小就是有PE个数决定的,但是在LV中,不叫PE,而是叫LE,默认的PE大小为4MB
PV(物理卷)相关命令
pvchange Cx|--allocation {y|n} 物理卷全路径名 #用于改变物理卷的分配许可设置物理卷的创建与删除命令
pvcreate 设备全路径名 #用于在磁盘或磁盘分区上创建物理卷初始化信息,以便对该物理卷进行逻辑卷管理。
pvmove 源物理卷全路径我[目的物理卷全路径名] #用于把某物理卷中的数据转移到同卷组中其他的特刊卷中。
pvresize #在使用LVM2时调整磁盘或分区的大小
pvscan #在系统的所有磁盘中搜索已存在的物理卷
pvck #查询pv的元信息
pvdisplay 物理卷全路径名称 #用于显示指定物理卷的属性。
pvremove #移除一个pv
pvs #查询所有pv信息
VG(卷组)相关命令
一般命令
vgcfgbackup [卷组名] #把卷组中的VGDA信息备份到“/etc/lvmconf”目录中的文件
vgconvert #转换卷组元数据格式
vgmknodes [卷组名|卷组路径] #用于建立(重新建立)已有卷组目录和其中的设备文件卷组配置的备份与恢复命令
vgs #查询所有vg
vgcfgrestore -n 卷组名 物理卷全路命名 #从备份文件中必得指定物理卷的信息卷组的建立与删除命令
vgcreate 卷组名 物理卷全路径名[物理卷全路径名] #创建一个vg
vgscan #检测系统中所有磁盘
vgchange -a y|n [卷组名] #改变卷组的相应属性。是否可分配
vgdisplay [卷组名] #显示卷组的属性信息
vgimportclone #导入和重命名复制卷组(例如硬的)软件快照
vgremove #移除一个vg
vgck [卷组名] #用于检查卷组中卷组描述区域信息的一致性。
vgrename 原卷组名 新卷组名
卷组的扩充与缩小命令
vgextend 卷组名 物理卷全路径名[物理卷全路径名] #增加一个pv到vg中
vgreduce 卷组名 物理卷全路径名[物理卷全路径名] #从vg中减少一个pv
卷组的合并与拆分
vgmerge 目的卷组名 源卷组名 #合并两个已经存在的卷组,要求两个卷组的物理区域大小相等且源卷组是非活动的。
vgsplit 现有卷组 新卷组 物理卷全路径名[物理卷全路径名]
卷组的输入与输出命令
vgimport 卷组名 卷组中的物理卷[卷组中的物理卷] #导出系统已知的导出卷组
vgexport 卷组名 #使系统不知道卷组
LV(逻辑卷)相关命令
一般命令
lvchange #更改逻辑卷的属性
lvconvert #将逻辑卷从线性转换成镜像或快照
lvm #命令行工具
lvresize #改变lv大小
lvs #查看所有lv信息
lvdisplay 逻辑卷全路径名[逻辑卷全路径名]
lvrename 旧逻辑卷全路径名 新逻辑卷全路径名
lvrename 卷组名 旧逻辑卷名 新逻辑卷名
lvmetad #LVM元数据缓存守护进程
lvscan #浏览所有vg
e2fsadm -L +|- 逻辑卷增减量 逻辑卷全路径名
逻辑卷的创建与删除命令
lvcreate #创建lv
-n:指定名称
-L:指定大小
-s:创建快照卷
-p:指定权限(r|w)
lvremove #移除lv
逻辑卷的扩充与缩小命令
lvextend -L|--size +逻辑卷大小增量 逻辑卷全路径名
lvreduce q -L|--size +逻辑卷减小量 逻辑卷全路径名
逻辑卷管理命令
lvmconfig #配置或显示配置文件
lvmdiskscan #检测所有的SCSI、IDE等存储设备
lvmsar 日志文件全路径名 #从lvmsadc命令生成的日志文件中读取并报告逻辑卷管理器的读写统计信息。
lvmchange -R|--reset #复位逻辑卷管理器
lvmdump #为诊断目的创建lvm2信息转储
lvmsadc [日志文件全路径名] #收信逻辑卷管理器读写统计信息,保存到日志文件中。
lvmconf #LVM配置命令
创建LVM示例
1 #创建pv 2 [root@localhost mnt]# pvcreate /dev/sdb{1,2,3} 3 #创建vg 4 [root@localhost mnt]# vgcreate vg0 /dev/sdb{1,2} 5 #创建lv 6 [root@localhost mnt]# lvcreate -n lv0 -L 50M vg0 7 #格式化lv 8 [root@localhost mnt]# mke2fs -j /dev/vg0/lv0 9 #挂载lv 10 [root@localhost mnt]# mount /dev/vg0/lv0 /mnt/lv0 11 #扩展lv 12 [root@localhost lv0]# lvextend -L 1G /dev/vg0/lv0 13 #扩展文件系统大小 14 [root@localhost lv0]# resize2fs -p /dev/vg0/lv0 15 #缩减文件系统大小 16 [root@localhost mnt]# umount /mnt/lv0 #卸载 17 [root@localhost mnt]# e2fsck -f /dev/vg0/lv0 #强行检查文件系统 18 [root@localhost mnt]# resize2fs /dev/vg0/lv0 500M #缩减文件系统大小 19 [root@localhost mnt]# mount /dev/vg0/lv0 /mnt/lv0 #挂载 20 #缩减lv 21 [root@localhost mnt]# lvreduce -L 500M /dev/vg0/lv0 22 #扩展vg 23 [root@localhost mnt]# vgextend vg0 /dev/sdb3 24 #挪数据 25 [root@localhost mnt]# pvmove /dev/sdb1 26 #缩减vg,即从vg中移除一个pv 27 [root@localhost mnt]# vgreduce vg0 /dev/sdb1 28 #移除pv 29 [root@localhost mnt]# pvremove /dev/sdb1
通过RAID创建LVM
1 #通过软RAID创建LVM 2 #创建md0 3 [root@localhost ~]# mdadm -C /dev/md0 -a yes -l 10 -n 4 /dev/sdb /dev/sdc /dev/sdd /dev/sde 4 #创建pv 5 [root@localhost ~]# pvcreate /dev/md0 6 #创建vg 7 [root@localhost ~]# vgcreate vg0 /dev/md0 8 #创建lv 9 [root@localhost ~]# lvcreate -n lv0 -L 1G vg0 10 #格式化 11 [root@localhost ~]# mke2fs -j /dev/vg0/lv0 12 #挂载 13 [root@localhost ~]# mount /dev/vg0/lv0 /mnt/lv0/
创建快照卷
1 #创建快照卷slv0 2 [root@localhost lv0]# lvcreate -s -n slv0 -L 1G -p r /dev/vg0/lv0 3 #查看lvs 4 [root@localhost lv0]# lvs 5 #挂载快照卷 6 [root@localhost lv0]# mount /dev/vg0/slv0 /mnt/slv0/ 7 #查看进程占用并清理进程占用 8 [root@localhost lv0]# fuser -v /mnt/slv0/ 9 [root@localhost lv0]# fuser -km /mnt/slv0/ 10 #卸载快照卷 11 [root@localhost lv0]# umount /mnt/slv0/ 12 #移除快照卷 13 [root@localhost lv0]# lvremove /dev/vg0/slv0