2013年09月10日

Linux逻辑卷的学习


在运维虚拟机的使用过程中,经常会遇到虚拟机磁盘空间不够,或者物理主机某个分区磁盘空间不够的问题,或者本身需要理解到LVM的概念。很早之前就在自己的记录本上记下了逻辑卷的一些基本概念,适合入门,现在帖在此。

逻辑卷

LVM是在磁盘分区和文件系统之间添加的一个逻辑层,来为文件系统屏蔽下层磁盘分区布局,提供一个抽象的盘卷,在盘卷上建立文件系统。 物理卷(physical volume)就是硬盘分区或从逻辑上与磁盘分区具有同样功能的设备,是LVM的基本存储逻辑块。 PE(Physical Extent):每个物理卷被划分为称为PE的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小可以配置的,默认为4MB. 由于受内核限制的原因,一个逻辑卷(Logic Volume)最多只能包含65536个PE(Physical Extent),所以一个PE的大小就决定了逻辑卷的最大容量,4 MB 的PE决定了单个逻辑卷最大容量为 256 GB,若希望使用大于256G的逻辑卷,则创建卷组时需要指定更大的PE。在Red Hat Enterprise Linux AS 4中PE大小范围为8 KB 到 16GB,并且必须总是 2 的倍数。

下面的这几张图就是物理机上物理卷,逻辑卷和逻辑卷组的切实关系,从图中就可以更加深刻的理解了,通过df查看磁盘的分区,发现物理机上有两个逻辑卷,同属于同一个逻辑卷组。物理卷则是建立在磁盘/dev/sda2的分区上。其实,除了df显示的root逻辑卷和home逻辑卷之后,还有另一个swap逻辑卷。

扩展空间

扩展虚拟机的根目录空间,在使用模板创建虚拟机之后,由于模板的size太小,导致空间不够,具体如下图所示。

根目录才有2.5G的空间,很快就占满了。可以采用扩展逻辑卷的办法来扩展根目录。 一个逻辑卷组包含很多物理卷,然后可以从这个逻辑卷组里面划分逻辑卷或者扩充其中的逻辑卷的大小。 按照上面的思路,查看当前机器的逻辑卷组。

可见,系统目前只存在一个逻辑卷,大小为4.51G,并且该逻辑卷组的空间已经使用完了,所以需要先扩充逻辑卷组,将新的分区加入到该逻辑卷组中。 将新的分区创建为物理卷,pvcreate /devdb 然后添加到指定的逻辑卷组中,vgextend VolGroup /devdb 现在再查看逻辑卷组的情况。

可见,逻辑卷组的容量扩充到了24.5G,现在可以扩充其中逻辑卷的大小了。

使用lvextend来扩充大小,新增19G的空间。查看该逻辑卷的大小。

实际上的根目录还没有增加空间,还需要最后一步,重新加载逻辑卷的大小。使用resize2fs命令,就可以了。最后查看结果,根目录的空间变大了。

操作完之后,遇到这样的问题。这是因为没有将新的盘就行格式化,应该先使用mkfs.ext4来格式盘,之所以使用ext4,因为其他的都是ext4,可以使用df –h –T查看。

前一篇: 线段树之区间最大值 后一篇: 二叉树中查找和最大的节点集合