lvm主要功能之一能够按须要调整文件系统的大小。 将多个分区组合成一个大的分区,能够在线调整它们的大小。若是要缩小的话就先卸载再缩小。app
1,实现步骤:lvm(逻辑滚动条管理员)将几个实体的分区或磁盘经过软件组合成为一块看起来是一个独立的大磁盘(VG),再将这块大磁盘分割能够被使用的分区(LV),最终通过格式化与挂载才能够被使用。ide
physical volume (pv)--->vg(volume group)--->lv(logical volume)spa
(1)pv(物理卷):将物理的分区调整成lvm能识别的分区,也就是修改分区标识,修改为8e。而后通过pvcreate指令将分区转换成lvm最底成的物理卷,以后才能加以利用。blog
(2)vg(卷组):由pv组合而成。能够在卷组上建立一个或多个LV(逻辑卷),LV由一个或多个物理卷组成。rem
(3)lv(逻辑卷):在vg上进行分区,相似于系统中普通分区,也须要在lv上创建文件系统。get
(4)pe(physical extend):每一个物理卷被划分为称为pe(扩展卷)的基本单元,具备惟一编号的PE是能够被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。it
(5)le(logical extend):逻辑卷也被划分为被称为le(扩展卷)的可被寻址的基本单位。在同一个卷组中,le的大小和pe是相同的,而且一一对应。、class
2,实验流程:在主机上分出4个100M的分区,并将id改为8e。基础
(1)建立 pv:pvcreate(将物理分区创建成pv),pvscan(扫描当前系统上的pv磁盘),pvdisplay(显示当前系统pv状态),pvremove(将pv属性移除,让该分区不具备pv属性),pvmove(移动pe)扩展
pvcreate /dev/sda5,pvcreate /dev/sda6(或者pvcreate /dev/sda{5,6}
(2)建立vg: vgcreate(创建vg),vgscan(扫描系统上面的vg),vgdisplay(显示当前系统上面的vg状态),vgextend(在vg内增长pv),vgreduce(在vg内移pv),vgchange(设定vg是否启动active),vgremove(删除vg)
vgcreate bingovg /dev/sda{5,6}(bingovg本身定义vg的名称,这里也能够指定pe的大小,加-s 后面跟大小,默认pe是4M)
(3)建立lv: lvcreate(创建lv),lvscan(扫描系统上面的lv), lvdisplay(显示当前系统上的lv状态),lvextend(在lv内增长容量),lvreduce(在lv内缩小容量),lvremove(删除一个lv),lvresize(对lv大小进行调整)
lvcreate -L 100M -n bingolv bingovg(-L指定容量,也能够换成-l指定pe的数量)
(4)格式化与挂载:
mke2fs -j /dev/bingovg/bingolv(注意/dev/bingovg/bingolv是/dev/mapper/bingovg-bingolv的软连接)
mount /dev/bingovg/bingolv /mnt(到这里已经完成基本的lv创建)
(5)增长lv容量,若是vg还有剩余容量,则能够直接增长
lvextend -L +100M /dev/bingovg/bingolv(或者lvresize -L +100M /dev/bingovg/bingolv两个命令效果同样,这一步是物理边界扩大)
resize2fs /dev/bingovg/bingolv(这一步调整文件系统的边界,通过这一步以后,被扩大的才会被文件系统所识别)
若是vg没有剩余的容量,则须要先扩大vg的容量才能扩大lv,以下
pvcreate /dev/sda{7,8}
vgextend bingovg /dev/sda{7,8}
lvextend -L +200M /dev/bingovg/bingolv
resize2fs /dev/bingovg/bingolv
(6)缩小lv容量,这须要卸载(把/dev/sda5拿掉)
umount /mnt
pvdisplay (查找/dev/sda5的pv大小)
e2fsck -f /dev/bingovg/bingolv 先执行这一步,强制检查。不然会致使数据丢失。
resize2fs /dev/bingovg/bingolv 100M 这是缩小文件系统的容量
lvreduce -L 100M /dev/bingovg/bingolv(这是缩小物理边界的容量,lvextend不支持缩小,缩减后物理边界为100M,若是使用-L -100M表示在原来基础上减去100M,文件系统的容量终于要小于等于物理边界的容量,当文件系统边界的容量比物理边界的容量还大时,数据确定已经出现混乱或者丢失。)
pvdisplay(查看/dev/sda5的PE是否还在使用中)
若是/dev/sda5的free pe不是0,则须要执行下面的命令
pvmove /dev/sda5 /dev/sda8(只有sda8 的free pe可以容下sda5的pe)
pvmove bingovg /dev/sda5
这时/dev/sda5能够拿去用别的用途。
3,lvm还有一重要的功能是创建快照,快照的做用能够用来作备份之用。
如上图所示,当对lv创建一个快照区以后,从这创建快照的时间以后,经过快照访问里面的内容仍是那个时刻以前的,在那个时刻以后所作的修改,并不影响快照中的内容。这样作用处是,当咱们要备份lv中的数据时,只要备份快照中的数据就ok。
创建快照区须要在vg中有空余的容量,固然快照创建大小由本身须要决定。也就是说,在这备份这段时间内数据发生更改的频率过高,就建大一点。
创建快照以前先在往/dev/bingovg/bingolv里复制数据,在/mnt下有/boot 和inittab
lvcreate -L 100M -s -n bingosnap -p r /dev/bingovg/bingolv(—L指定大小 -s表示创建快照, -n表示快照名,-p表示这个快照只读r)
挂载快照 mount /dev/bingovg/bingosnap /media
快照中的内容跟原文件的内容同样,这时,能够对快照作备份
tar -jcf /backups/lv.tar.bz2 /media
在/dev/bingovg/bingolv增长内容与删除并不影响以前那一刻的数据,作完备份以后能够删除快照。
umount /media
lvremove /dev/bingovg/bingosnap
快照到此的使命也完成