lvm
一、什么是lvm
普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小,当一个逻辑分区存放不下某个文件时,这个文件因为受上层文件系统的限制,也不能跨越多个分区来存放,所以也不能同时放到别的磁盘上。而遇到出现某个分区空间耗尽时,解决的方法通常是使用符号链接,或者使用调整分区大小的工具,但这只是暂时解决办法,没有从根本上解决问题。随着Linux的逻辑卷管理功能的出现,这些问题都迎刃而解,用户在无需停机的情况下可以方便地调整各个分区大小。
通过LVM系统管理员可以轻松管理磁盘分区,如:将若干个磁盘分区连接为一个整块的卷组 (volumegroup),形成一个存储池。管理员可以在卷组上随意创建逻辑卷组(logicalvolumes),并进一步在逻辑卷组上创建文件系 统。管理员通过LVM可以方便的调整存储卷组的大小,并且可以对磁盘存储按照组的方式进行命名、管理和分配,而且当系统添加了新的磁盘,通过LVM管理员就不必将磁盘的 文件移动到新的磁盘上以充分利用新的存储空间,而是直接扩展文件系统跨越磁盘即可。
lvm 逻辑卷,可以让设备自由伸缩的一个设备管理软件,是最终我们使用的
pv 物理卷
vg 物理卷组
pe 物理拓展,lvm最小的存储单元
二、lvm的建立以及使用
watch -n 1 'pvs;vgs;lvs;df -h /mnt'
新建3个分区
(fdisk/dev/vdb------->n----->p----->1----->+1G------>n----->p----->2----->+1G------>n----->p----->3----->+1G----->t----->1----->8e----->t----->2----->8e----->t----->3----->8e) (lvm所用的设备功能id为linux lvm)
partprobe 同步分区表
pvcreate /dev/vdb1 把物理分区做成物理卷
vgcreate vg0(自己定义) /dev/vdb1 把做好的物理卷/dev/vdb1制做成一个物理卷组vg0
lvcreate -L 300M -n lv0(自己定义) vg0(自己定义) 从vg0这个物理卷组中取出300M建立出lv0设备(-L 设备大小 -n 设备名称)
mkfs.xfs /dev/vg0/lv0 格式化,赋予设备xfs文件系统
mount /dev/vdb1/lv0 /mnt 挂载设备到/mnt下
(物理卷组设备大小大于500M直接拉伸)
lvextend -L 500M /dev/vg0/lv0 拉伸文件设备大小到500M
xfs_growfs /dev/vg0/lv0 拉神文件系统到设备大小
mount /dev/vdb1/lv0 /mnt 挂载设备到/mnt下
(当我们需要1500M大小时此时超出物理卷组的大小我们要给物理卷组扩容需要添加物理卷)
pvcreate /dev/vdb2 把物理分区做成物理卷
vgextend vg0 /dev/vdb2 把做好的物理卷/dev/vdb2添加到物理卷组vg0
lvextend -L 1500M /dev/vg0/lv0 拉伸文件设备大小到1500M
xfs_growfs /dev/vg0/lv0 拉神文件系统到设备大小
(2)针对ext文件系统lvm既可扩容也可缩容
umount /mnt 卸载
mkfs.ext4 /dev/vg0/lv0 格式化,赋予设备ext4文件系统
mount /dev/vg0/lv0 /mnt 挂载
mount
扩大容量(若所需得到的容量大于物理卷组容量和前面一样添加物理卷到物理卷组)
lvextend -L 1800M /dev/vg0/lv0 扩大lvm设备到1800M
resize2fs /dev/vg0/lv0 扩大文件系统到设备大小
缩减容量
umount /mnt 卸载设备,因为文件系统的缩减不支持在线操作
e2fsck -f /dev/vg0/lv0 检测文件系统,确定文件系统中已有数据的大小,防止缩减过渡
resize2fs /dev/vg0/lv0 1000M 压缩文件系统到1000M
mount /dev/vg0/lv0 /mnt 挂载
lvreduce -L 1000M /dev/vg0/lv0 压缩文件设备大小到1000M
vg(物理卷组的删减)
移除设备dev/vdb1但此设备上有数据此时应先将数据转移到空闲设备上再进行删除
pvmove /dev/vdb1 /dev/vdb2 将/dev/vdb1中的数据移到/dev/vdb2
vgreduce vg0 /dev/vdb1 移除掉vg0中的/dev/vdb1
pvremove /dev/vdb1 移除掉/dev/vdb1
l vm快照
当快照设备里的数据被更改,如果想还原,删除快照设备,在重新建立快照即可
touch /mnt/westos{1..7}
umount /mnt
ls /mnt
lvcreate -L 50M -n lv0backup -s /dev/vg0/lv0 生成/dev/vg0/lv0的快照名为lv0backup大小为50M(-L 指定大小 -n 生成的名字 -s 对谁作快照)
mount /dev/vg0/lv0backup /mnt
cd /mnt
ls
rm -fr *
cd
umount /mnt
lvremove /dev/vg0/lv0backup
lvcreate -L 50M -n lv0backup -s /dev/vg0/lv0 生成/dev/vg0/lv0的快照名为lv0backup大小为50M(-L 指定大小 -n 生成的名字 -s 对谁作快照)
mount /dev/vg0/lv0backup /mnt
cd /mnt
ls
删除lvm
umount /mnt
lvremove /dev/vg0/lv0backup 移除快照
lvremove /dev/vg0/lv0 移除lv0
vgremove vg0 移除vg0
pvremove /dev/vdb{1..2} 移除/dev/vdb1和/dev/vdb2