LVM逻辑卷管理
有时候我们做主机规划时考虑的不够周全或者其他的原因会导致我们给的磁盘分区不够用。这时我们只能够重新扩展磁盘容量了。如果再加一块硬盘上去,然后重新分区格式化,将原来的分区数据完整的复制到新的硬盘,最后将原来的分区给卸载重新挂载上新分区。这样的话,事情就会变得很繁琐了。而且有时候我们如果给的太多就会造成磁盘空间被浪费了。有么哦有更好的办法呢?答案是肯定的 。LVM就是为解决这种问题而存在的。
什么是LVM?
LVM的全名是Logical Volume Manager,即逻辑卷管理器。它可以整合多个物理分区或磁盘。,让他们看起来像是一个大磁盘一样,而且将来我们可以根据我们的需要将其中的物理分区或磁盘删除或增加。就是说,我们可以任意调整文件系统的容量。
LVM机制实现机制
将几个物理分区或磁盘通过软件组合成一个看起来独立的大磁盘。然后将这块大磁盘经过分成可用的分区(LV),最终实现挂载使用。本质上它是通过PE来进行数据交换的。将原本LV内PE转移到其他设备上以降低LV的容量,将其他设备中的PE加到现有的LV中以达到增加磁盘容量的目的。
物理卷(Physical Volume)
我们实际的分区需要用fdisk调整系统的标识符(system ID)成为LVM的标识符(8e),然后经过pvcreate的命令将其转换成为最底层的物理卷(pv)之后才能对这些pv加以利用。
卷组(Volume Group)
所谓的LVM大磁盘就是将许多的pv组合成一个VG,而此磁盘的大小与里面的PE有关。
物理扩展块(PE)
PE是使用vgcreate工具生成的。它是LVM中最小的存储块。我们文件与数据的写入都是由它来处理的。LVM默认的PE大小是4MB,我们可以把看看成文件系统中的快(block)。
逻辑卷(Logical Volume )
VG会被切成LV,LV才是最后可以被mke2fs(mkfs)格式化成为我们使用的分区。LV的大小与VG内的PE总数有关。同时为了方便用户管理lvm系统,LV的设备文件通常被指定与一下格式
/dev/vg_name/lv_name
具体实现流程图
具体操作流程
1.用fsck工具分出四个区,且修改他们的分区标识符(system ID)为逻辑绝的标识符(8e)。
~]# fdisk /dev/sda
强行让内核读分区
~]# partx -a /dev/sda
~]# cat /proc/partitions
2. PV阶段
首先用pv查看一下系统上已经有的的pv。
~]# pvdisplay 或pvs查看。
利用pvcreate工具生成pv,再次查看pv结果。
~]# pvcreate /dev/sda{3,5}
~]# pvdisplay
注意这里PE的大小等于0。
3.VG阶段
利用vgcreate工具生成VG。
首先用vgs查看一下现有的vg。
~]# vgs
利用vgcreater工具生成VG。
~]# vgcreate -s 16M myvg /dev/sda{3,5} -s指定PE的大小这里为16M.
4.lv阶段
首先查看一下已经有的逻辑卷。
#lvs
这里vg本来有15G,而我们现在只给了10G剩下的我们可以在后面再扩展。
5.文件系统阶段。
~]# mke2fs -t ext3 -b 1024 -L lablel /dev/myvg/mylv
6.挂载使用
~]# mount /dev/myvg/mylv /mnt
扩展逻辑卷扩展分两种情况。
一种是利用原来vg里面剩下的原有的pe来放大lv的容量就能完成。
~]# lvextend -L 15G /dev/myvg/mylv 这里我们用上了前面剩下的5G.
一种是需要先扩张物理边界再扩展逻辑边界。这种情况比较复杂,也较为常见。
下面我们就利用原来剩下的/dev/sda6来进行扩展。
1.首先利用pvcreate来构建pv。
~]# pvcreate /dev/sda6
2.利用vgcreate来构建卷组。
~]# vgextend myvg /dev/sda6
3.扩展逻辑卷的大小。
~]# lvextend /dev/myvg/mylv /dev/sda6
4.通过resize2fs将文件系统的总容量增加。
~]# df -h
~]# resize2fs -f /dev/myvg/mylv
注意扩张文件系统不需要卸载,可以在线执行,而缩减文件系统则必须要卸载,即离线进行。
缩减文件系统
这里将/dev/sda6抽离出来。
1.卸载文件系统必须要先卸载
~]# umount /mnt
2.强制检测和修复分区。
~]# fsck -f /dev/myvg/mylv
3.缩减逻辑分区
~]# lvresize -L -8G /dev/myvg/mylv
4.缩减物理分区
~]# vgreduce /myvg /dev/sda6
5.移除pv
~]# pvremove /dev/sda6
缩减时需要热别注意里面的容量,要能容纳下所有的数据,如果缩减的太多,就会损坏数据,所以每一步,我们都要根据磁盘数据的大小计算来完成相应的增删操作。