上一篇为大家介绍LVM的一些概念,这一篇就教大家一些日常的LVM的操作吧。毕竟,理论还是要应用到实战中来的嘛。
本篇博文大致分了8个点为大家阐述和操作LVM的功能,希望能对大家有所帮助。
一、创建新的卷
1、准备物理分区(Physical Partions)
使用分区工具(如:fdisk)创建LVM分区,方法同创建其它一般分区的方式一样。区别在于,LVM的分区类型为8e。
2、创建物理卷PV
假设上面创建了分区/dev/sdb1,这里我们用pvcreate创建物理卷PV。
# pvcreate /dev/sdb1 #使用pvcreate将sdb1转换为物理卷# pvdisplay#查看已经存在的PV
3、创建卷组VG
# vgcreate -s 4M vgname /dev/sdb1 #将PV(/dev/sdb1)创建名为vgname的PE为4M的VG卷组
4、创建逻辑卷LV
# lvcreate -l 10 -n lvname vgname #在vgname卷组上创建名为lvname的占10个PE块大小的LV逻辑卷-l 指定PE块数量-L 直接指定大小,例如-L 40M,直接指定40M大小-n 后跟所要创建的LV的名字
5、格式化逻辑卷
# mkfs -t ext4 /dev/vgname/lvname #格式化lvname这个逻辑卷为ext4的文件系统-t 后跟所要格式过去的文件系统名
6、创建挂载点,挂载逻辑卷
# mkdir /file #创建挂载目录/file# mount /dev/vgname/lvname /file #将逻辑卷lvname挂载到/file挂载点下
二、增加卷组
以下测试在pv和vg都无剩余空间的情况下进行操作实验。
1、准备物理分区(Physical Partions)
使用分区工具(如:fdisk)创建LVM分区,方法同创建其它一般分区的方式一样。区别在于,LVM的分区类型为8e。
2、创建物理卷PV
假设上面创建分区/dev/sdb2,,这里我们用pvcreate创建物理卷PV。
# pvcreate /dev/sdb2 #使用pvcreate将sdb1转换为物理卷# pvdisplay#查看已经存在的PV
3、增加卷组VG
# vgextend vgname /dev/sdb2 #将sdb2这个物理卷加入vgname卷组中# pvdisplay#添加完成之后,再次查看PV信息
三、抽离PV并删除
方案一:
1、查看pv使用情况
# pvdisplay#查看已经存在的PV— Physical volume — PV Name/dev/sda1 VG Namevgname PV Size1019.72 MiB / not usable 3.72 MiB Allocatableyes PE Size4.00 MiB Total PE254 Free PE254 Allocated PE0 PV UUIDTEiNQm-3H9i-OpmE-p5cX-KgRS-aGuf-HKaLON — Physical volume — PV Name/dev/sdb1 VG Namevgname PV Size1019.72 MiB / not usable 3.72 MiB Allocatableyes PE Size4.00 MiB Total PE254 Free PE80 Allocated PE174 PV UUID27pvVQ-lERX-91ew-0XL2-Oxbk-NFKh-7l6c4M
2、根据pv信息,抽离空的pv出来
# vgreduce vgname /dev/sda1
3、删除抽离出来的pv
# pvremove /dev/sda1
方案二:
在sda1被使用的状态下,抽离sda1这个PV
1、查看pv信息
# pvdisplay — Physical volume — PV Name/dev/sda1 VG Namevgname PV Size1019.72 MiB / not usable 3.72 MiB Allocatableyes PE Size4.00 MiB Total PE254 Free PE80 Allocated PE174 PV UUIDTEiNQm-3H9i-OpmE-p5cX-KgRS-aGuf-HKaLON — Physical volume — PV Name/dev/sdb1 VG Namevgname PV Size1019.72 MiB / not usable 3.72 MiB Allocatableyes PE Size4.00 MiB Total PE254 Free PE254 Allocated PE0 PV UUIDDuz6zM-GJwo-8cc5-5Jp2-vGiH-0j0L-gSvUtl
2、移动sda1的中的所有PE到sdb1中
# pvmove /dev/sdb1 /dev/sdd1 /dev/sda1: Moved: 0.0% /dev/sdb1: Moved: 100.0%
3、查看现在pv使用情况
# pvdisplay#查看已经存在的PV— Physical volume — PV Name/dev/sda1 VG Namevgname PV Size1019.72 MiB / not usable 3.72 MiB Allocatableyes PE Size4.00 MiB Total PE254 Free PE254 Allocated PE0 PV UUIDTEiNQm-3H9i-OpmE-p5cX-KgRS-aGuf-HKaLON — Physical volume — PV Name/dev/sdb1 VG Namevgname PV Size1019.72 MiB / not usable 3.72 MiB Allocatableyes PE Size4.00 MiB Total PE254 Free PE80 Allocated PE174 PV UUIDDuz6zM-GJwo-8cc5-5Jp2-vGiH-0j0L-gSvUtl
4、根据pv信息,抽离空的pv出来
# vgreduce vgname /dev/sda1
5、删除抽离出来的pv
# pvremove /dev/sda1
四、在线拉伸文件系统
1、查看VG空余
# vgdisplay
2、查看LV大小
# lvdisplay
3、拉伸逻辑卷大小
# lvresize -l +888 /dev/vgname/lvname #根据vg内剩余的PE快来指定数量-l 后面跟+号是增加,跟-号是缩小,不跟就是直接指定大小
4、拉伸文件系统大小
# resize2fs /dev/vgname/lvname [nM/G] 若不加大小,则调整到最大
5、查看拉伸后的LV大小
# lvdisplay
五、在线缩小文件系统
1、取消挂载
# umount /dev/sda1
2、用fsck检查
# e2fsck -f /dev/vgname/lvname
3、缩小文件系统大小
# resize2fs /dev/vgname/lvname 200M
4、缩小LV大小
# lvresize -L -40M /dev/vgname/lvname
5、重新挂载
# mount -a
这里mount -a是按照之前这个分区挂载的条目在/etc/fstab里有的才生效。如果是之前就是临时挂载上的,后来给卸载然后进行缩小文件系统大小了,,这时就不能用mount -a重新挂载了。
简单总结:在lvm逻辑卷上,缩小文件系统大小,需要先缩小文件系统大小,然后再缩小逻辑卷大小。就像瓶子里的水,只有先把水倒出去,然后再缩小瓶子大小。
六、删除LVM
1、取消挂载及删除/etc/fstab中条目
# umount /home #取消挂载# vim /etc/fstab #删除该文件中/home挂载的对应条目
2、移除逻辑卷LV
# lvchange -an /dev/vgname/lvname #关闭逻辑卷# lvremove /dev/vgname/lvname#移除逻辑卷
3、移除卷组VG
# vgchange -an /dev/vgname #关闭卷组# vgremove /dev/vgname#移除卷组
4、移除物理卷PV
# pvremove /dev/sda1#移除物理卷
5、删除磁盘分区
通过fdisk删除磁盘分区,这个不做演示# partx -d –nr 1 /dev/sda #删除之后,记得用该命令刷新内存条目
七、LVM的迁移
以下操作以迁移VG为主进行的操作,迁移LV同理
1、源主机上操作
①取消所要迁移的文件系统挂载
# umount /home
②关闭LV和VG
# lvchange -an /dev/vgname/lvname# vgchange -an /dev/vgname
③导出VG
# vgexport vgname
2、目标主机上操作
①导入VG
#vgimport vgname
②激活VG,挂载文件系统
# vgchange -ay vgname
③挂载迁移过来的文件系统
# mkdir /home# mount /dev/vgname/lvname /home# df -h #查看挂载情况
八、LVM的快照功能
生活不是等待风暴过去,而是学会在雨中翩翩起舞。