LVM存在的意义及名词解释
1、LVM存在的意义:
2、LVM的图解
3、名词解释
LVM的建立
1、查看LVM的信息
pvs #查看pv的信息
vgs #查看vg的信息
lvs #查看lvm的信息
2、步骤
在创建过程中我们可以用以下命令监控,可以更好的看到创建效果
watch -n 1 "pvs;echo ======;vgs;echo ======;lvs;echo ======;df -h /weixindata"
step1
划分lvm
所用到的设备(划分物理分区),这些设备的功能id
必须是linux LVM
,指定ID为8e
fdisk /dev/vdb/
step2
建立pv
pvcreate /dev/vdb1 #建立pv
step3
建立vg
vgcreate vg0 /dev/vdb1 #以/dev/vdb1建立名为vg0的vg
step4
建立lvm
lvcreate -L 100M -n lv0 vg0 ##在vg0这个组中建立出lv0设备 -L 指定设备大小 -n 指定设备名字
step5
对lvm
进行格式化
mkfs.xfs /dev/vg0/lv0 ##格式化
step6
挂载lvm
mount /dev/vg0/lv0 /weixindata##挂载到/weixindata
LVM设备的拉伸与缩减
(1)LVM设备的拉伸(xfs文件系统)
1、拉伸lvm( 当lvm
的大小小于
vg
的大小时)
lvextend -L 300M /dev/vg0/lv0 ##加参数 -l 20M 表示拉伸了20M,-L表示拉伸到300M
xfs_growfs /dev/vg0/lv0 ##扩大xfs文件系统到设备大小
2、拉伸vg
当拉伸 lvm 的大小大于
vg 的大小时,需要先对 vg 进行拉伸,首先需要建立物理分区(/dev/vdb2,ID为8e),之后进行如下操作:
pvcreate /dev/vdb2
vgextend vg0 /dev/vdb2
lvextend -L 800M /dev/vg0/lv0
xfs_growfs /dev/vg0/lv0
(2)LVM设备的拉伸(ext4)
由于我们系统中目前的文件系统是xfs系统,我们先通过以下方法把它转化成ext系统
umount /weixindata ##卸载(进行文件系统转换时要先卸载)
mkfs.ext4 /dev/vg0/lv0 ##格式化成ext文件系统
mount /dev/vg0/lv0 /weixindata
vg扩大:(和xfs系统相同)
pvcreate /dev/vdb3 ##在pv中增加一块设备/dev/vdb3
vgextend vg0 /dev/vdb3 ##把新建立的/dev/vdb3添加到vg0中
lvm扩大:
lvextend -L 900M /dev/vg0/lv0 ##扩大lvm设备到900M
resize2fs /dev/vg0/lv0 ##设定文件系统大小和设备同步
(3)LVM设备的缩减(ext4)
注意:xfs文件系统不能缩减,只有ext文件系统可以缩减
lvm缩减:
umount /dev/vg0/lv0 ##卸载设备,因为文件系统缩减不支持在线操作
e2fsck -f /dev/vg0/lv0 ##检测文件系统,确定文件系统中已有数据大小防止过度缩减
resize2fs /dev/vg0/lv0 300M ##把文件系统缩减到300M
lvreduce -L 300M /dev/vg0/lv0 ##设备缩减到300M
vg缩减:
注意:在vg缩减时只能缩减没有被占用的设备
pvmove /dev/vdb2 /dev/vdb1 ##把设备2上的所有数据移动到设备1上
vgreduce vg0 /dev/vdb2 ##把vg0中的/dev/vdb2删除
pvremove /dev/vdb2 ##把/dev/vdb2上的lvm管理信息删除
LVM快照
1 、创建快照
lvcreate -L 20M -n lv0backup -s /dev/vg0/lv0 ##-L后为快照大小,-n后为快照名称,-s后为需要创建快照的设备
mount /dev/vg0/lv0backup /weixindata/ ## 挂载设备
注意:
1.当快照设备里的数据被更改,如果想还原,删除快照设备,再重新建立快照即可
2.创建快照时要预估好快照大小,如果在使用时截取一个比快照大的文件,快照会被撑坏
2 、快照的生命周期
改变的数据的大小大于快照的总容量时,快照的生命周期将结束
lvdisplay ##查看lvm的状态
截取50M的文件到设备:
dd if=/dev/zero of=/weixindata/file bs=1M count=50
之后再查看设备状态:
LVM的删除
1 、卸载设备
umount /weixindata/
2 、删除lvm
lvremove /dev/vg0/lv0
3 、解决未知设备的vg
当使用fdisk
命令删除含有vg的分区后,将会出现位置设备的vg:
可以使用以下命令删除这个vg设备:
vgreduce --removemissing vg0
4 、正常情况删除vg
vgremove vg0
5、 删除pv
pvremove /dev/vdb2
pvremove /dev/vdb2 --force
pvremove /dev/vdb2 --force --force