首页 > 代码库 > Linux逻辑卷管理LVM详解

Linux逻辑卷管理LVM详解

 

Linux逻辑卷管理LVM详解

Linux用户安装Linux操作系统时遇到的一个最常见的难以决定的问题就是如何正确地评估各分区大小,以分配合适的硬盘空间。而遇到出现某个分区空间耗尽时,解决的方法通常是使用符号链接,或者使用调整分区大小的工具(比如Patition Magic等),但这都只是暂时解决办法,没有根本解决问题。随着Linux的逻辑卷管理功能的出现,这些问题都迎刃而解,本文就深入讨论LVM技术,使得用户在无需停机的情况下方便地调整各个分区大小。

一、LVM基本术语 

  LVM是在磁盘分区和文件系统之间添加的一个逻辑层,来为文件系统屏蔽下层磁盘分区布局,提供一个抽象的盘卷,在盘卷上建立文件系统。首先我们讨论以下几个LVM术语: 

1、介质(The physical media) 

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

2、物理卷(physical volume) 

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

3、卷组(Volume Group) 

由一个或多个物理卷组成一个整体,即称为卷组,在卷组中可以动态的添加或移除物理卷,许多个物理卷可以分别组成不同的卷组,卷组名称由用户自行定义。 

4、逻辑卷(logical volume) 

逻辑卷是建立在卷组之上的,与物理卷无直接关系,对于逻辑卷来说,每一个卷组就是一个整体,从这个整体中切出一小块空间,作为用户创建文件系统的基础,这一小块空间就称为逻辑卷,使用mkfs等工具在逻辑卷之上建立文件系统以后,即可挂载到Linux系统中的目录下使用。

5、物理段(physical extent)

每一个物理卷被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。

二、创建和管理LVM

要创建一个LVM系统,一般需要经过以下步骤:

1、分区

                       

 

如图所示创建3个100G的分区;

 

查看创建成功的分区sda5、sda6和sda7;

2、创建物理卷

创建物理卷的命令为pvcreate,利用该命令将希望添加到卷组的所有分区或者磁盘创建为物理卷。

将多个分区创建为物理卷的命令为:

 

将dev/sda5、sda6和sda7分区转换成物理卷。

3、创建卷组

创建卷组的命令为vgcreate,将使用pvcreate建立的物理卷创建为一个完整的卷组:vgcreate zsdata /dev/sda5 /dev/sda6 /dev/sda7

 

vgcreate命令第一个参数是指定该卷组的逻辑名:zsdata。后面参数是指定希望添加到该卷组的所有分区和磁盘。

vgcreate在创建卷组 zsdata 以外,还设置使用大小为4 MB的PE(默认为4MB),这表示卷组上创建的所有逻辑卷都以 4 MB 为增量单位来进行扩充或缩减。PE大小范围为8 KB 到 512 MB,并且必须总是 2 的倍数(使用-s指定,具体请参考man vgcreate)。

4、激活卷组

    为了立即使用卷组而不是重新启动系统,可以使用vgchange来激活卷组:# vgchange -a /dev/sda5 /dev/sda6 /dev/sda7

5、创建逻辑卷

    创建逻辑卷的命令为lvcreate:#lvcreate -l 100%free -n zhmp zsdata

 

该命令就在卷组zhmp上创建名字为zsdata的逻辑卷,并把所有的物理卷分配给它。

6、创建文件系统

   使用mkfs命令在“zsdata”逻辑卷中创建EXT4文件系统:# mkfs.ext4 /dev/mapper/zsdata-zhmp

7、挂载到“/home”目录下。

# mount /dev/mapper/zsdata-zhmp /home/

如果希望系统启动时自动加载文件系统,则还需要在/etc/fstab中添加内容:# vi /etc/fstab

 

8、扩展逻辑卷大小

LVM提供了方便调整逻辑卷大小的能力,扩展逻辑卷大小的命令是lvextend:

#lvextend -L *G  /dev/mapper/ zsdata-zhmp

上面的命令就实现将逻辑卷zsdata的大小扩招为*G。

# lvextend –L +*G /dev/mapper/ zsdata-zhmp

上面的命令就实现将逻辑卷zsdata的大小增加*G。

增加了逻辑卷的容量以后,就需要修改文件系统大小以实现利用扩充的空间。  

 # resize2fs           /dev/mapper/ zsdata-zhmp

9、删除一个逻辑卷

删除逻辑卷以前首先需要将其卸载,然后删除:

#umount /dev/mapper/zsdata-zhmp

#lvremove /dev/mapper/zsdata-zhmp

三、总结

根据上面的讨论可以看到,LVM具有很好的可伸缩性,使用起来非常方便。可以方便地对卷组、逻辑卷的大小进行调整,更进一步调整文件系统的大小。

 

 

Linux逻辑卷管理LVM详解