lvm 逻辑卷管理
1>lvm名词 小姿势
lvm可以使硬盘无限扩容:
PV(physical volume):物理卷在逻辑卷管理系统最底层,可谓整个物理硬盘或实际物理硬盘上的分区。
VG(volume group):卷组建立在物理卷上,一卷组中至少要包括一些物理卷,卷组建立后可动态添加卷到卷组中,一个逻辑卷管理系统工作中可有多个卷组。
LV (logical volume):逻辑卷建立在卷组基础上,卷组中未分配空间可用于建立新的逻辑卷,逻辑卷建立后可动态拓展或缩小空间
PE(physical extend): 物理分区是物理卷中可用于分配的最小存储单元,物理区域大小在建立卷组时指定,一旦确定不能更改,同一卷组所有物理卷的物理区域大小需一致,新的pv加入vg后,pe的大小自动更改为vg中定义的pe大小。
LE(logical extend):逻辑区域是逻辑卷中可用于分配的最小存储单元,逻辑区域的大小取决于逻辑卷所在卷组中的物理卷区域的大小。
卷组描述区域:卷组描述区域存在于每个物理卷中,用于描述物理卷本身,物理卷所属卷组,卷组中逻辑卷,逻辑卷中物理区域的分配等信息,他是在建立pvcreate建立物理卷时建立的。
lvm 逻辑卷,可以让设备自由伸缩的一个设备管理软件 pv 物理卷 vg 物理卷组 pe 物理拓展,lvm最小的存储单元
2>lvm制作
1.umount /mnt 2.fdisk /dev/vdb #删除分区信息 3.partprobe 3.vim /etc/fstab #删除挂载 4.watch -n 1 'pvs;vgs;lvs;df -h /mnt'#监控 pvs |pvdisplay #查看物理卷 vgs |vgdisplay #查看物理圈组 lvs |lvdisplay #对逻辑卷设备进行查看 5.fdisk /dev/vdb #重新分区,i为8e,大小为1G Device Boot Start End Blocks Id System /dev/vdb1 2048 2099199 1048576 8e Linux LVM /dev/vdb2 2099200 4196351 1048576 8e Linux LVM /dev/vdb3 4196352 6293503 1048576 8e Linux LVM 6.partprobe 7.fdisk -l 8.pvcreate /dev/vdb1 #把物理分区做成物理卷 9.vgcreate vg0 /dev/vdb1 #用制作好的/dev/vdb1这个物理卷做成一个物理卷组 10.lvcreate -L 300M -n lv0 vg0 #在vg0组中建立出lv0设备 -L 指定设备大小 -n 指定设备的名字lv0 11.mkfs.xfs /dev/vg0/lv0 #格式化
pvcreate /dev/vdb1 #把物理分区做成物理卷
vgcreate vg0 /dev/vdb1 #用制作好的/dev/vdb1这个物理卷做成一个物理卷组
lvcreate -L 300M -n lv0 vg0 #在vg0组中建立出lv0设备 -L 指定设备大小 -n 指定设备的名字lv0
mkfs.xfs /dev/vg0/lv0 #格式化3>lvm的扩大:
1.针对xfs文件系统:
lvm扩大:
1 lvextend -L 500M /dev/vg0/lv0 #扩大lvm设备
2 xfs_growfs /dev/vg0/lv0 #扩大xfs文件
vg扩大:
1 pvcreate /dev/vdb2 #把物理分区做成物理卷 2 vgextend vg0 /dev/vdb2 #把新建立的/dev/vdb2添加到vg0中
3 lvextend -L 1500M /dev/vg0/lv0 #扩大lvm设备 4 xfs_growfs /dev/vg0/lv0 #扩大xfs文件
2.针对ext文件系统
lvm扩大:
1 mkfs.ext4 /dev/vg0/lv0 #格式化成ext文件系统
2 lvextend -L 2G /dev/vg0/lv0 #扩大lvm设备到2G
3 resize2fs /dev/vg0/lv0 #设备文件系统大小和系统同步
vg扩大:
1 pvcreate /dev/vdb3 #在pv中增加一块设备/dev/vdb3 2 vgextend vg0 /dev/vdb3 #把/dev/vdb2添加到vg0中 3 lvextend -L 2G /dev/vg0/lv0 #扩大lvm设备到2G 4 resize2fs /dev/vg0/lv0 #设定文件系统大小和设备同步
lvm缩小:
1 umount /mnt #卸载 2 e2fsck -f /dev/vg0/lv0 #扫描文件是否被损坏 3 resize2fs /dev/vg0/lv0 1000M #缩小lvm文件系统为1000M 4 mount /dev/vg0/lv0 /mnt/ #挂载lv0 5 lvreduce -L 1000M /dev/vg0/lv0 #缩小lv设备e2fsck -f /dev/vg0/lv0 #扫描文件是否被损坏
缩减vg:
当vg缩减时缩减的设备被占用时,即该设备中有数据
1 pvremove /dev/vdb1 /dev/vdb2 #先将/dev/vdb1中的数据移动到闲置的/dev/vdb2中,前提是vdb2的容量要大于vdb1中的数据容量 2 vgreduce vg0 /dev/vdb1 #删除vg0中的/dev/vdb1 3 pvremove /dev/vdb1 #/dev/vdb1上的管理信息删除
4>LVM制作快照lv0backup:
扩大vg0
1 pvcreate /dev/vdb1
2 vgextend vg0 /dev/vdb1
制作快照:
1 lvcreate -L 50M -n lv0backup -s /dev/vg0/lv0 #制作一个容量为50M的快照lv0backup 2 mount /dev/vg0/lv0backup /mnt/ 同步到文件系统 3 ls /mnt 4 rm -fr /mnt/* 5 ls 6 umount /mnt 7 lvremove /dev/vg0/lv0backup 8 lvcreate -L 50M -n lv0backup -s /dev/vg0/lv0 9 mount /dev/vg0/lv0backup /mnt/ 10ls /mnt 11umount /mnt/ 12lvremove /dev/vg0/lv0backup #删除vg0中的快照
lvcreate -L 50M -n lv0backup -s /dev/vg0/lv0
mount /dev/vg0/lv0backup /mnt/
lvremove /dev/vg0/lv0backup
制作快照实验:
快照被挂载时使所有的操作都是对快照进行的,不会破坏原有设备
5> 删除lvm
1 umount /mnt/ 2 lvremove /dev/vg0/lv0backup #删除快照 3 lvremove /dev/vg0/lv0 #删除lv0 4 vgremove vg0 #删除vg0 5 pvremove /dev/vdb{1..2} #删除物理分区1 umount /mnt/
2 lvremove /dev/vg0/lv0backup #删除快照
3 lvremove /dev/vg0/lv0 #删除lv0
4 vgremove vg0 #删除vg0
5 pvremove /dev/vdb{1..2} #删除物理分区最终结果: