lvm是什么?
LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制
实现过程:
借用了下别人日志的图片,在此表示感谢http://dreamfire.blog.51cto.com
基本术语:
LVM是在磁盘分区和文件系统之间添加的一个逻辑层,来为文件系统屏蔽下层磁盘分区布局,提供一个抽象的存储卷,在存储卷上建立文件系统
物理存储介质(Physical storage media):
指系统的物理存储设备:如磁盘,/dev/hda,dev/sda等
物理卷(Physical Volume,简称PV):
指磁盘分区或从逻辑上与磁盘分区具有同样功能的设备(如raid),是LVM的基本存储逻辑块,但和基本的物理介质(如分区,磁盘等)比较,却包含有与LVM相关和管理参数
卷组(Volume Group,简称VG):
类似于非LVM系统中的物理磁盘,其由一个多多个物理卷PV组成,可以在卷组上创建一上或多个LV(逻辑卷)
逻辑卷(Logical Volume,简称LV):
类似于非LVM系统中的磁盘分区,逻辑卷建立在卷组(VG)之上,在逻辑卷LV之上可以建立文件系统(比如/home或者/usr等)
物理块(Physical Extent,简称PE):
每一个物理卷PV被划分为称为PE的基本单元,具胡唯一编号的PE是可以被LVM寻址的最小单元,PE的大小是可配置的,默认为4MB,所以物理卷由大小等同的基本单元PE组成
逻辑块(logical Extent,简称LE):
逻辑卷LV也被划分为可被寻址的基本单位,称为LE,在同一个卷组中,LE的大小和PE是相同的,并且一一对应
安装管理工具:
如果系统安装时使用了lvm ,一般都会带管理工具,如果没有检查下是否安装一lvm工具
rpm -qa |grep lvm
创建管理:
1.创建分区:
使用分区工具fdisk创建lvm分区,方法和创建其它一般分区一样,区别是LVM的分区类型是8e,普通的是83(他用fdisk下的t修改类型)
fdisk /dev/sdb
n
e
+5G(这一步选择大小)
w
#可以重复创建多个
2.创建物理卷:
将磁盘整个物理卷创建为物理卷:
pvcreate /dev/sdb
将单个分区创建为物理卷:
pvcreate /dev/sdb5
将多个分区创建为物理卷:
pvcreate /dev/sdb{5,6} #或者pvcreate /dev/sdb5 /dev/sdb6
使用pvs或者 pvdisplay查看,pvdisplay也可以只指定某个pv 如:pvdiplay /dev/sdb6
3.创建卷组:
vgcreate myvg /dev/sdb{5,6} #myvg是卷组的逻辑名,后面的添加到该卷组的所有分区和磁盘
默认PE是4MB,但也可以手动指定,PE大小范围为8KB到16G,并且必须总是2的倍数,用-s指定,单位可以是bBsSkKmMgGtTpPeE
vgcreate -s 8M myvg /dev/sdb{5,6}
注:由于内核原因,PE大小决定了逻辑卷的最大大小,4MB的PE决定了单个逻辑卷最大容量为256GB,若希望使用大于256G的逻辑卷则创建卷组 时指定更大的PE
使用vgs或者vgdisplay查看
4.添加新的物理卷到卷组中:
pvcreate /dev/sdb7
vgextend myvg /dev/sdb7
5.从卷组中删除一个物理卷:
要从一个卷组中删除一个物理卷,首先要确认要删除的物理卷没有被任何逻辑卷正在使用,就要使用pvdisplay命令察看一个该物理卷信息
如果某个物理卷正在被逻辑卷所使用,就需要将该物理卷的数据备份到其它地方,然后再删除,删除物理卷的命令为
pvmove /dev/sdb5 #把数据移动其它PV上去
vgreduce myvg /dev/sdb5 #返sdb5这个PV从myvg移除
vgremove /dev/sdb5 #把sdb5这个pv删除,把里面的数据都抹除,使用pvs就看不到了
6.创建逻辑卷:
在VG名为myvg上创建一个50M的逻辑卷名为testlv
lvcreate -L 50M -n testlv myvg #-L指定大小(支持的单位bBsSkKmMgGtTpPeE) -n 是逻辑卷的名称,myvg是卷组名
然后格式化逻辑卷
msfs.ext4 /dev/myvg/testlv
挂载到/testlv目录
mount /dev/myvg/testlv /testlv
注:挂载引用的的路径是/dev/mapper/myvg-testlv, /dev/myvg/testlv只是个软链接,链接到/dev/mapper/myvg-testlv
使用lvs或lvdisplay查看逻辑卷相关信息
7.创建文件系统:
resize2fs -p /dev/myvg/testlv #或者resize2fs -p /dev/mapper/myvg-testlv
#然后挂载就可以使用了
mount /dev/myvg/testlv /testlv
8.删除一个逻辑卷:
a.删除逻辑卷以前首先需要将其卸载,然后删除
umount /testlv
b.删除逻辑卷
lvremove /dev/myvg/testlv
9.扩展逻辑卷大小:
a.扩展之前请确定vg里有足够的空间可以供扩展
b.扩展物理边界
lvextend -L 3G /dev/myvg/testlv #-L指定大小(+3G意思是扩展3G,不加就是扩展到3G) 扩展物理边界,这里用df -h 是看不到变化的
c.扩展逻辑边界
resize2fs -p /dev/myvg/testlv #扩展逻辑边界,或者写resize2fs -p /dev/mapper/myvg-testlv
10.缩减逻辑卷大小:
a.缩减是有风险的,不能在线缩减,需要先卸载
umount /testlv
b.确保缩减后的空间大小,依然能存储原有的所有数据
e2fsck -f /dev/mapper/myvg-testlv
c.在缩减之前,应该先强行检查文件系统,以确保文件系统牌一致性状态
resize2fs /dev/mapper/myvg-testlv 3G #缩减到3G
d.缩减物理边界
lvreduce -L 3G /dev/myvg/testlv
#会有提示:Do you really want to reduce testlv?[y/n]: 按y确定就好
#完成后会提示:Reducing logical volume testlv to 3GB
Logical volume testlv successfully resized
11.快照卷
a.生命周期为整个数据时长,在这段时长内,数据的增长量不能超出快照卷大小
b.快照卷应该是只读的
c.跟原卷在同一卷组内
lvcreate
-L: 指定大小,指定的大小需要自己估计,如果数据的增长量大于快照卷的大小,数据会损毁
-s:表示创建快照卷
-p:指定权限 r|w
#对/dev/myvg/testlv创建快照卷testlv_snap
lvcreate -L 1G -n testlv_snap -s -p r /dev/myvg/testlv
使用lvs或者 lvdisplay可以查看
挂载快照卷:
mount /dev/myvg/testlv_snap /testlv_snap
卸载快照卷:
umount /testlv_snap
移除快照卷:
lvremove /dev/myvg/tstlv_snap