注意:文章中有些信息是从网上找的资料学习过程中抄的。
一、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