日期:2014-05-16  浏览次数:20739 次

Linux中的LVM(逻辑卷管理)

?这几天把自己的系统重做了一下,把自己电脑的硬盘分区做成了LVM(逻辑卷管理)类型的了。呵呵,以前老是会出现某一个分区的磁盘空间突然不足,然后就得放别的盘里。等东西放的多了用某一件东西时候就非常麻烦,都不知道自己的东西到底在哪个磁盘里面放着呢。。。这下好了,把硬盘做了LVM类型的磁盘就不用操这心了,现在先分少点,等以后不够用了,直接给不够用的磁盘往上加容量就OK了,挺方便的。好了,不废话了,下面我来说一下LVM的概念及及如何去实现。
一、LVM(逻辑卷管理)的概念:
??? LVM是Linux系统对磁盘分区进行管理的一种方式,使用它可以让你更为灵活的管理你的磁盘。在了解LVM的概念之前我们应该先了解PV(physical volume,物理卷)、VG(volume group,卷组)和LV(logical volume,逻辑卷)。因为LVM就是由这三种元素组成的。下面我们来了解一下它们各自的概念:
1. PV(physical volume,物理卷):
??? PV是VG的组成部分,它是由分区构成的,通常我们在有多块硬盘的环境中把一块硬盘格式化成一个主分区后,然后把这块硬盘做成PV,在只有一块硬盘的情况下我们就是把这块硬盘上的某一个分区做成PV。比如,公司里的服务器可能有多块硬盘,这个时候你可以把一块硬盘划一个主分区,然后再把它做成PV,但是就像这次我重做系统时候机子上就一块硬盘,我还得考虑引导分区和“/”根分区,所以我就把硬盘划了四个主分区,一个“/boot”分区、一个“/”分区,还有一个“swap”分区,最后当然就把剩下的分了一个主分区,把系统装好后我把最后一个主分区做成了一个PV,然后加入到VG里,又从VG里划分的LV,也就组成了LVM。
2. VG(volume group,卷组):
??? VG就是卷组,它是由若干个PV组成的。也就是我们把上面那些硬盘分区,然后做成的PV。它就是由那些PV组成的。它的作用就是把PV集中到一块再进行划分。
3. LV(logical volume,逻辑卷):
??? LV就是从VG里划分出来的卷,它可以在你所用的卷不够用的情况下增加其容量。它其实就像是Windows里的逻辑磁盘,不过Windows里的逻辑磁盘不能随心所欲的增加或减少磁盘的容量,而LV就可以。下面就是PV、VG和LV它们之前的关系图:


??? 从上图我们可以很容易的看出它们之前的关系,用一个例子说明就是:假如我们三块硬盘,一块50G、一块20G、另一块100G。这个时候我们要把它们做成一个LMV类型磁盘我们应该如下做:首先把三块硬盘进行分区并格式化(在上面说过了,在有多块硬盘的情况下建议一块硬盘划分一个主分区)然后将其做成PV。其次就是新建一个VG,建好之后把上面这三个硬盘转化成的PV加入到VG里将磁盘容量集中起来也就成了170G,最后我们就可以把这个VG当成一块170G的硬盘来使用就OK了!呵呵,这下明白了吧!当硬盘只有一块的时候,也就是说这块硬盘上还的装操作系统时如下图来划分分区:

??? 呵呵,上面就是我的系统的硬盘分区情况,首先划了一个"/boot"分区,然后是“swap”,最后是根“/"分区。后面的空间空下了,然后装好系统后,把空下的空间分为了一个主分区,把这个分区做成一个PV,然后新建一个VG卷组,把做成的PV加入到VG中,最后从VG中划分LV。。。好了!下面我们来看一下如何去做LVM吧。
二、如何实现LVM(我以多个硬盘为例):
1. 首先是新建PV,可以使用命令“pvcreate +分区”来新建,但是在新建PV之前要对硬盘进行分区,然后转换分区类型(转成Linux LVM类型,类型代号为8e),可以使用fdisk工具来进行分区并转换分区类型,(不会使用的详见我另一篇文章
http://blog.chinaunix.net/u3/112561/showart_2235102.html)转好后新建PV,建好后可以使用“pvscan"命令来扫描一下系统中有没没PV。也可以输入命令“pvdisplay"来查看更为详细的信息如图:

2. 建立好PV后就到建立VG了,建立VG可以输入命令“vgcreate +分区号+分区号"来建立加分区号的意思就是把上面建立好的PV加入到VG里,我这里只加两个PV,另一个我们使用另一个命令来往里加,建立好后可以使用命令“vgscan”或“vgdisplay”来查看VG的详细信息,如图:

3. 我们还可以用命令“vgextend +VG名+分区"额外向VG里添加PV,也可以用“vgreduce+VG名+分区”命令来移除PV。如图:

4. VG也建立好后就应该到LV了,可以使用命令“lvcreate -L Size(要建的LV大小) -n LV名+VG名”来建立,也可以用命令“lvdisplay和lvscan”来查看LV的详细信息。如图:
?
5. 建立好lV后我们还可以通过命令“lvextend -L +Size(就是增加多少空间)+LV的绝对路径”来增加LV的空间大小。也可以通过“lvreduce -L -Size(就是减小多少空间)+LV的绝对路径”来减少LV的空间大小。如图:

6.以上的PV、VG、LV、都可以通过“pvremove +分区号、vgremove +VG名称、lvremove +lv的绝对路径(如lvremove /dev/vg_liwei/lv_liwei)”命令来删除。这里就不截图了。
7.做完以上的这一切以后,通过命令“mkfs.ext3 +LV的路径”来格式化分区,然后进行挂载后就可以用了,这都是以前说过的,这里就不多说了,不懂的看前几篇文章。