首页 > 代码库 > lvm

lvm

   

 LVM利用Linux内核来实现存储系统的虚拟化(系统分区独立于底层硬件)。通过LVM,你可以实现存储空间的抽象化并在上面建立虚拟分区,可以更简便地扩大和缩小分区,可以增删分区时无需担心某个硬盘上没有足够的连续空间.

 

LVM的基本组成块:

物理卷 (PV):可以在上面建立卷组的媒介,可以是硬盘分区,也可以是硬盘本身或者回环文件。物理卷包括一个特殊的header,其余部分被切割为一块块物理区域。

卷组Volume group (VG):将一组物理卷收集为一个管理单元。

逻辑卷Logical volume (LV):虚拟分区,由物理区域(physical extents)组成。

物理区域Physical extent (PE):硬盘可供指派给逻辑卷的最小单位(通常为4MB)。

 

LVM的优点:

1、使用卷组(VG),使众多硬盘空间看起来像一个大硬盘。

2、使用逻辑卷(LV),可以创建跨越众多硬盘空间的分区。

3、可以创建小的逻辑卷(LV),在空间不足时再动态调整它的大小。

4、在调整逻辑卷(LV)大小时可以不用考虑逻辑卷在硬盘上的位置,不用担心没有可用的连续空间。

5、可以在线(online)对逻辑卷(LV)和卷组(VG)进行创建、删除、调整大小等操作。LVM上的文件系统也需要重新调整大小,某些文件系统也支持这样的在线操作

6、无需重新启动服务,就可以将服务中用到的逻辑卷(LV)在线(online)/动态(live)迁移至别的硬盘上。

7、允许创建快照,可以保存文件系统的备份,同时使服务的下线时间(downtime)降低到最小。

 

LV的创建:

   创建物理卷(PV)所在的分区,设置分区格式为‘Linux LVM‘,对应的十六进制码为8e(MBR)或8e00(GPT)。

   创建物理卷(PV)。如果你只有一个硬盘,那么你最好只创建一个分区一个物理卷;如果你有多个硬盘,你可以创建多个分区,在每个分区上分别创建一个物理卷。

   创建卷组(VG),并把所有物理卷加进卷组。

   在卷组上创建逻辑卷(LV)。

 

创建物理卷(PV):

   正确的分区进行操作:fdisk  -DEVICENAME

   在该分区下创建一个物理卷pv(假设是/dev/sda2): # pvcreate /dev/sda2

   你可以用以下命令查看已创建好的物理卷: # pvs

 

创建卷组(VG):

   创建完成物理卷(PV)之后,下一步就是在该物理卷创建卷组(VG)了。 如果有两个以上的物理卷(例如以下的/dev/sda2和/dev/sdb1),首先必须先在其中一个物理卷(PV)创建一个卷组,然后让该卷组扩大到其他所有的物理卷(这里假设你只使用一个卷组来管理其他所有的物理卷):

# vgcreate VolGroup00 /dev/sda2

# vgextend VolGroup00 /dev/sdb1

其中,“VolGroup00”名字换成你自己起的名字即可。接下来可以用以下命令查看卷组:

#vgs

tip:你可以创建多个的卷组,但这将因此让你的硬盘空间看起来不像一块硬盘。

 

创建逻辑卷(LV)

   创建完卷组(VG)之后,就可以开始创建逻辑卷(LV)了。输入下面命令:

# lvcreate -L 10G VolGroup00 -n lvolhome

其中10G是大小,VolGroup00是卷组名称,lvolhome是逻辑卷名称,这些都可以根据你自己喜欢设定。该逻辑卷创建完后,你就可以通过/dev/mapper/Volgroup00-lvolhome或/dev/VolGroup00/lvolhome来访问它。

   如果你要创建的是swap,那么你需要加上-C y参数:

# lvcreate -C y -L 10G VolGroup00 -n lvolswap

  -C y :参数用来指定逻辑卷的空间分配是连续的,这保证了你所创建的swap空间不会被分散在不连续的物理空间甚至不同的硬盘中。

    如果你想让要创建的逻辑卷拥有卷组(VG)的所有未使用空间,请使用以下命令:

# lvcreate -l +100%FREE VolGroup00 -n lvolmedia

    你可以通过以下命令来查看逻辑卷:

# lvs

tip:一开始可以创建小一点的逻辑卷,在卷组里留下一部分未使用空间,以后就可以根据需要再作扩展了。