RHCE系列之LVM—-操作篇

一、创建新的卷

1、准备物理分区(Physical Partions)

1使用分区工具(如:fdisk)创建LVM分区,方法同创建其它一般分区的方式一样。区别在于,LVM的分区类型为8e。

2、创建物理卷PV

假设上面创建了分区/dev/sdb1,这里我们用pvcreate创建物理卷PV。

12# pvcreate /dev/sdb1? #使用pvcreate将sdb1转换为物理卷# pvdisplay??????????? #查看已经存在的PV

3、创建卷组VG

1# vgcreate -s 4M vgname /dev/sdb1 #将PV(/dev/sdb1)创建名为vgname的PE为4M的VG卷组

4、创建逻辑卷LV

1234# lvcreate -l 10 -n lvname vgname #在vgname卷组上创建名为lvname的占10个PE块大小的LV逻辑卷-l 指定PE块数量-L 直接指定大小,例如-L 40M,直接指定40M大小-n 后跟所要创建的LV的名字

5、格式化逻辑卷

12# mkfs -t ext4 /dev/vgname/lvname #格式化lvname这个逻辑卷为ext4的文件系统-t 后跟所要格式过去的文件系统名

6、创建挂载点,挂载逻辑卷

12# mkdir /file? #创建挂载目录/file# mount /dev/vgname/lvname /file? #将逻辑卷lvname挂载到/file挂载点下

二、增加卷组

以下测试在pv和vg都无剩余空间的情况下进行操作实验。

1、准备物理分区(Physical Partions)

1使用分区工具(如:fdisk)创建LVM分区,方法同创建其它一般分区的方式一样。区别在于,LVM的分区类型为8e。

2、创建物理卷PV

假设上面创建分区/dev/sdb2,,这里我们用pvcreate创建物理卷PV。

12# pvcreate /dev/sdb2? #使用pvcreate将sdb1转换为物理卷# pvdisplay??????????? #查看已经存在的PV

3、增加卷组VG

12# vgextend vgname /dev/sdb2 #将sdb2这个物理卷加入vgname卷组中# pvdisplay?????? #添加完成之后,再次查看PV信息

三、抽离PV并删除

方案一:

1、查看pv使用情况

123456789101112131415161718192021# pvdisplay??????????? #查看已经存在的PV--- Physical volume ---PV Name /dev/sda1VG Name?????????????? vgnamePV Size?????????????? 1019.72 MiB / not usable 3.72 MiBAllocatable yesPE Size?????????????? 4.00 MiBTotal PE????????????? 254Free PE?????????????? 254Allocated PE????????? 0PV UUID?????????????? TEiNQm-3H9i-OpmE-p5cX-KgRS-aGuf-HKaLON --- Physical volume ---PV Name /dev/sdb1VG Name?????????????? vgnamePV Size?????????????? 1019.72 MiB / not usable 3.72 MiBAllocatable yesPE Size?????????????? 4.00 MiBTotal PE????????????? 254Free PE?????????????? 80Allocated PE????????? 174PV UUID?????????????? 27pvVQ-lERX-91ew-0XL2-Oxbk-NFKh-7l6c4M

2、根据pv信息,抽离空的pv出来

1# vgreduce vgname /dev/sda1

3、删除抽离出来的pv

1# pvremove /dev/sda1

方案二:

在sda1被使用的状态下,抽离sda1这个PV

1、查看pv信息

123456789101112131415161718192021# pvdisplay--- Physical volume ---PV Name /dev/sda1VG Name???????????? vgnamePV Size?????????????? 1019.72 MiB / not usable 3.72 MiBAllocatable yesPE Size?????????????? 4.00 MiBTotal PE????????????? 254Free PE?????????????? 80Allocated PE????????? 174PV UUID????????????? TEiNQm-3H9i-OpmE-p5cX-KgRS-aGuf-HKaLON--- Physical volume ---PV Name /dev/sdb1VG Name???????????? vgnamePV Size?????????????? 1019.72 MiB / not usable 3.72 MiBAllocatable yesPE Size?????????????? 4.00 MiBTotal PE????????????? 254Free PE?????????????? 254Allocated PE????????? 0PV UUID????????????? Duz6zM-GJwo-8cc5-5Jp2-vGiH-0j0L-gSvUtl

2、移动sda1的中的所有PE到sdb1中

123# pvmove /dev/sdb1 /dev/sdd1/dev/sda1: Moved: 0.0%/dev/sdb1: Moved: 100.0%

3、查看现在pv使用情况

123456789101112131415161718192021# pvdisplay??????????? #查看已经存在的PV--- Physical volume ---PV Name /dev/sda1VG Name???????????? vgnamePV Size?????????????? 1019.72 MiB / not usable 3.72 MiBAllocatable yesPE Size?????????????? 4.00 MiBTotal PE????????????? 254Free PE?????????????? 254Allocated PE????????? 0PV UUID????????????? TEiNQm-3H9i-OpmE-p5cX-KgRS-aGuf-HKaLON--- Physical volume ---PV Name /dev/sdb1VG Name???????????? vgnamePV Size?????????????? 1019.72 MiB / not usable 3.72 MiBAllocatable yesPE Size?????????????? 4.00 MiBTotal PE????????????? 254Free PE?????????????? 80Allocated PE???????? 174PV UUID???????????? Duz6zM-GJwo-8cc5-5Jp2-vGiH-0j0L-gSvUtl

4、根据pv信息,抽离空的pv出来

1# vgreduce vgname /dev/sda1

5、删除抽离出来的pv

1# pvremove /dev/sda1

四、在线拉伸文件系统

1、查看VG空余

1# vgdisplay

2、查看LV大小

1# lvdisplay

3、拉伸逻辑卷大小

12# lvresize -l +888 /dev/vgname/lvname #根据vg内剩余的PE快来指定数量-l 后面跟+号是增加,跟-号是缩小,不跟就是直接指定大小

4、拉伸文件系统大小

1# resize2fs /dev/vgname/lvname [nM/G]??? 若不加大小,则调整到最大

5、查看拉伸后的LV大小

1# lvdisplay

五、在线缩小文件系统

1、取消挂载

1# umount /dev/sda1

2、用fsck检查

1# e2fsck -f /dev/vgname/lvname

3、缩小文件系统大小

1# resize2fs /dev/vgname/lvname 200M

4、缩小LV大小

1# lvresize -L -40M? /dev/vgname/lvname

5、重新挂载

1# mount -a

这里mount -a是按照之前这个分区挂载的条目在/etc/fstab里有的才生效。如果是之前就是临时挂载上的,后来给卸载然后进行缩小文件系统大小了,这时就不能用mount -a重新挂载了。

简单总结:在lvm逻辑卷上,缩小文件系统大小,需要先缩小文件系统大小,然后再缩小逻辑卷大小。就像瓶子里的水,只有先把水倒出去,然后再缩小瓶子大小。

六、删除LVM

1、取消挂载及删除/etc/fstab中条目

12# umount /home?? #取消挂载# vim /etc/fstab?? #删除该文件中/home挂载的对应条目

2、移除逻辑卷LV

12# lvchange -an /dev/vgname/lvname?? #关闭逻辑卷# lvremove /dev/vgname/lvname?????? #移除逻辑卷

3、移除卷组VG

12# vgchange -an /dev/vgname?? #关闭卷组# vgremove /dev/vgname?????? #移除卷组

4、移除物理卷PV

1# pvremove /dev/sda1????? #移除物理卷

5、删除磁盘分区

12通过fdisk删除磁盘分区,这个不做演示# partx -d --nr 1 /dev/sda?? #删除之后,记得用该命令刷新内存条目

七、LVM的迁移

以下操作以迁移VG为主进行的操作,迁移LV同理

1、源主机上操作

①取消所要迁移的文件系统挂载

1# umount /home

②关闭LV和VG

12# lvchange -an /dev/vgname/lvname# vgchange -an /dev/vgname

③导出VG

1# vgexport vgname

2、目标主机上操作

①导入VG

1#vgimport vgname

②激活VG,挂载文件系统

1# vgchange -ay vgname

③挂载迁移过来的文件系统

123# mkdir /home# mount /dev/vgname/lvname /home# df -h??? #查看挂载情况

八、LVM的快照功能

LVM快照有两大用途,一是用来克隆虚拟机,例如做xen虚拟机时,可以先新建一台完整虚拟机,假设大小为10G,然后我们可以在这台10G的虚拟机上 创建1个3G的快照,接着通过这个3G的快照启动虚拟机,做完实验后,可以直接删除快照而保持原来完整虚拟机的纯净。二是实时备份(moment-in- time),即为了保持系统的一致性,我们先做一个快照冻结当前系统状态,这样快照里面的内容可暂时保持不变,系统本身继续运行,通过备份快照来实现不中 断服务的备份。

另外,我们在创建快照时空间最好大于lvname的变换空间,不然一旦空间大小超过快照的大小,快照就会损坏。

现在假若,我们要对/dev/vgname/lvname做快照,lvname现在使用了100M了。

1、用lvcreate创建快照

1# lvcreate -L 5M -s -n lvname_snap /dev/vgname/lvname

2、挂载快照

1# mount /dev/vgname/lvname_snap /snap

命令汇总

1、PV

pvcreat ?将partition创建成PV

pvscan ? 搜索系统里面任何具有PV的磁盘

pvdisplay ?显示出系统上面PV的状态

pvremove 将partition的PV属性移除

2、VG

vgcreate ?创建VG

vgscan ? ?搜索系统上是否有VG的存在

vgdisplay ? 显示系统上VG的状态

vgextend ? 在VG内增加PV

vgreduce ? 在VG内移除PV

vgchange ?设定VG是否启动(active)

vgremove ?删除VG

3、LV

lvcreate ?创建LV

lvscan 搜索系统内的LV

lvdisplay ?显示系统内的LV状态

lvextend ?在LV内增加容量

lvreduce ?在LV内减少容量

lvremove 删除LV

lvresize ?调整LV的容量大小

RHCE系列之LVM—-操作篇

相关文章:

你感兴趣的文章:

标签云: