注意:文章中有些信息是从网上找的资料学习过程中抄的。

一、LVM基本定义

  LVM(Logical Volume Manager),它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,可以弹性的增加或减小分区的大小,使得磁盘分区管理更具灵活性。LVM的实现示意图:

二、LVM基本概念

0、物理存储介质(The physical media)

 这里指系统的存储设备:硬盘,如:/dev/hda1、/dev/sda等等,是存储系统最低层的存储单元。

1、 物理卷-----PV(Physical Volume)

  物理卷就是指硬盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。

2、 卷组-------VG(Volumne Group)   卷组建立在物理卷之上,一个卷组中至少要包括一个物理卷,在卷组建立之后可动态添加物理卷到卷组中。一个逻辑卷管理系统工程中可以只有一个卷组,也可以拥有多个卷组。 即卷组由物理卷组成,类似于非 LVM 系统中的物理硬盘,可以在卷组上创建一个或多个 "LVM 分区 "( 逻辑卷 ) 。

3、 逻辑卷-----LV(Logical Volume)   逻辑卷建立在卷组之上,卷组中的未分配空间可以用于建立新的逻辑卷,逻辑卷建立后可以动态地扩展和缩小空间。系统中的多个逻辑卷要以属于同一个卷组,也可以属于不同的多个卷组。

线性逻辑卷 (Linear Volumes)

  一个线性逻辑卷聚合多个物理卷成为一个逻辑卷.比如,如果你有两个60GB硬盘,你可以生成120GB的逻辑卷.

条块化的逻辑卷(Striped Logical Volumes)

  当你写数据到此逻辑卷中时,文件系统可以将数据放置到多个物理卷中.对于大量连接读写操作,它能改善数据I/O效率.

镜像的逻辑卷(Mirrored Logical Volumes)

  镜像在不同的设备上保存一致的数据.数据同时被写入原设备及镜像设备.它提供设备之间的容错。

快照卷(Snapshot Volumes)

  快照卷提供在特定瞬间的一个设备虚拟映像,当快照开始时,它复制一份对当前数据区域的改变,由于它优先执行这些改变,所以它可以重构当前设备的状态。

4、 物理区域---PE(Physical Extent)   物理区域是物理卷中可用于分配的最小存储单元,物理区域的大小可根据实际情况在建立物理卷时指定。物理区域大小一旦确定将不能更改,同一卷组中的所有物理卷的物理区域大小需要一致。默认为4MB。

5、 逻辑区域---LE(Logical Extent)   逻辑区域是逻辑卷中可用于分配的最小存储单元,逻辑区域的大小取决于逻辑卷所在卷组中的物理区域的大小。在同一个卷组中,LE的大小和PE是相同的,并且一一对应。

6、 卷组描述区域-----VGDA(Volume Group Descriptor Area)   卷组描述区域存在于每个物理卷中,用于描述物理卷本身、物理卷所属卷组、卷组中的逻辑卷及逻辑卷中物理区域的分配等所有信息,卷组描述区域是在使用pvcreate建立物理卷时建立的。 VGDA 包括以下内容:  PV 描述符、 VG 描述符、 LV 描述符、和一些 PE 描述符。

系统启动LVM时激活VG,并将VGDA加载至内存,来识别LV的实际物理存储位置。当系统进行I/O操作 时,就会根据VGDA建立的映射机制来访问实际的物理位置。

三、安装LVM

  首先请确定内核支持LVM,Turbolinux发行版内核均已支持LVM。如果您的内核不支持LVM,您可以手工编译内核,在配置内核时,进入Multi-device Support (RAID and LVM)子菜单,选中以下选项:

[*] Multiple devices driver support (RAID and LVM)

  

  然后重新编译内核,即可将LVM的支持添加到新内核中。

确定系统中是否安装了lvm工具:

# rpm -qa | grep lvm 
 lvm2-2.02.16-3

  如果命令结果类似于上例,说明系统已经安装了LVM管理工具;如果命令没有输出则说明没有安装LVM管理工具,则需要从网络下载或者从光盘装LVM rpm工具包。

  为了使用LVM,要确保在系统启动时激活LVM,Turbolinux发行版在启动时已经具有对激活LVM的 支持,在/etc/rc.d/rc.sysinit中有以下内容:

if [ -x /sbin/lvm.static ]; then
              action $"Setting up Logical Volume Management:" /sbin/lvm.static vgchange -a y –ignorelockingfailure  
      fi

  在ubuntu系统下可以使用如下命令安装LVM2:

sudo apt-get install lvm