| 论坛注册| 加入收藏 | 设为首页| RSS
Google
您当前的位置:首页 > Linux频道 > Linux入门与提高 > 安装与配置

linuxLVM的创建和管理

时间:2007-07-12 11:38:44  来源:tux.cublog.cn  作者:

LVMLogical Volume Manager(逻辑卷管理器)的简写,它为主机提供了更高层次的磁盘存储管理能力。LVM可以帮助系统管理员为应用与用户方便地分配存储空间。在LVM管理下的逻辑卷可以按需改变大小或添加移除。另外,LVM可以为所管理的逻辑卷提供定制的命名标识。因此,使用LVM主要是方便了对存储系统的管理,增加了系统的扩展性。jAQLinux联盟

目前LVMLinux下有两个版本,分别是LVM 1LVM 2LVM2不仅仅是Linux逻辑卷管理在版本与功能上的升级,而且是架构在一个新的内核存储子系统(DMdevice-mapper)之上的。这个存储子系统提供了一个轻量级的、可扩展的卷管理设施。除了在原有LVM卷管理功能的基础上,Linux的逻辑卷管理将会为用户提供更多的存储管理方案,如镜像、加密卷、多路径技术。所以在本节将以LVM 2为例来详细介绍LVM的创建与管理。jAQLinux联盟

 LVM相关概念和术语

LVM是建立在磁盘分区和文件系统之间的一个逻辑层,来为文件系统屏蔽下层磁盘分区布局,提供一个逻辑的盘卷,再在盘卷上来建立文件系统LVM的结构如图1如示:jAQLinux联盟

1 LVM结构图jAQLinux联盟

jAQLinux联盟
jAQLinux联盟

在上面的LVM结构图中,涉及到了很多LVM的相关术语,那么关于这些术语的详细说明如下:jAQLinux联盟

物理卷(physical volumePVjAQLinux联盟

物理卷就是指硬盘分区,也可以是整个硬盘或已创建的软RAID ,是LVM的基本存储设备,与普通物理存储介质的区别是该设备包含有LVM相关的管理参数。 jAQLinux联盟

jAQLinux联盟
jAQLinux联盟

卷组(volume groupVGjAQLinux联盟

卷组是由一个或多个物理卷所组成的存储池,在卷组上能创建一个或多个“LVM分区”(逻辑卷)。 jAQLinux联盟

jAQLinux联盟
jAQLinux联盟

逻辑卷(logical volumeLVjAQLinux联盟

LVM的逻辑卷类似于非LVM系统中的硬盘分区,它建立在卷组之上,是一个标准的块设备,在逻辑卷之上可以建立文件系统。可以做这样一个设想来理解以上三者的关系:如果把PV比做地球的一个板块,VG则是一个地球,因为地球是由多个板块组成的,那么在地球上划分一个区域并标记为亚洲,则亚洲就相当于一LVjAQLinux联盟

jAQLinux联盟
jAQLinux联盟

物理块(physical extentPEjAQLinux联盟

物理卷以大小相等的物理块为存储的基本单位,同时也是LVM寻址的最小单元。jAQLinux联盟

jAQLinux联盟
jAQLinux联盟

逻辑块(logical extentLEjAQLinux联盟

逻辑卷以大小相等的逻辑块为存储的基本单位,在同一个卷组中,LE的大小和PE是相等的,并且一一对应。jAQLinux联盟

jAQLinux联盟
jAQLinux联盟

卷组描述区域(Volume Group Descriptor AreaVGDAjAQLinux联盟

磁盘将包含分区信息的元数据保存在位于分区的起始位置的分区表中一样,逻辑卷以及卷组相关的元数据也是保存在位于物理卷的VGDA中。VGDA包括以下内容: PV描述符、VG描述符、LV描述符、和一些PE描述符。系统启动LVM时激活VG,并将VGDA加载至内存,来识别LV的实际物理存储位置。当系统进行I/O操作时,就会根据VGDA建立的映射机制来访问实际的物理位置。jAQLinux联盟

jAQLinux联盟
jAQLinux联盟

jAQLinux联盟
jAQLinux联盟

创建逻辑卷

创建逻辑卷通常包括如下步骤:jAQLinux联盟

  • 创建分区jAQLinux联盟

  • 创建物理卷jAQLinux联盟

  • 创建卷组jAQLinux联盟

  • 激活卷组jAQLinux联盟

  • 创建逻辑卷jAQLinux联盟

  • 创建文件系统jAQLinux联盟

下面将通过一个具体的实例来详细介绍创建逻辑卷的整个过程。jAQLinux联盟

【实例1jAQLinux联盟

利用/dev/sdb/dev/sdc/dev/sdd这三块磁盘创建一个卷组,再在卷组上创建两个逻辑卷,并指定将其中一个逻辑卷的映射模式为条带映射,实现的步骤如下:jAQLinux联盟

jAQLinux联盟
jAQLinux联盟

1、创建物理卷jAQLinux联盟

创建物理卷的命令是 “pvcreate”,该命令可以将需要添加到卷组的分区或磁盘创建为物理卷。操作如下: jAQLinux联盟

# pvcreate /dev/sdb /dev/sdc /dev/sdd jAQLinux联盟

Physical volume "/dev/sdb" successfully createdjAQLinux联盟

Physical volume "/dev/sdc" successfully createdjAQLinux联盟

Physical volume "/dev/sdd" successfully createdjAQLinux联盟

2、创建卷组jAQLinux联盟

创建卷组的命令为“vgcreate”,将使用“pvcreate”建立的物理卷创建为一个完整的卷组,如下: jAQLinux联盟

# vgcreate vgtest /dev/sdb /dev/sdc /dev/sdd jAQLinux联盟

Volume group "vgtest" successfully createdjAQLinux联盟

其中vgcreate命令第一个参数是指定该卷组的名为“vgtest”,该名称可以根据需要随便定义,后面接添加到该卷组的物理卷。同时在使用vgcreate 在创建卷组时,还可以指定PE的大小,需要加上-s参数来实现,PE大小范围为8 KB 16GB,并且必须总是2的倍数。一个卷组里面最多允许65534PE存在。默认设置的PE大小为4 MB,这表示卷组上创建的所有逻辑卷都以 4 MB 为增量单位来进行扩充或缩减,所以4 MB PE决定了单个逻辑卷最大容量为 256 GB,若要创建更大的逻辑卷则创建卷组时需要指定更大的PEjAQLinux联盟

jAQLinux联盟
jAQLinux联盟

3、创建逻辑卷jAQLinux联盟

创建完卷组后,现在就可通过“lvcreate”命令来创建逻辑卷了,同时在创建逻辑卷的时候,还可以指定逻辑块与物理块映射的模式,逻辑卷的映射模式共有如下两种: jAQLinux联盟

  • 线性模式――按照顺序把一定范围内的物理块与逻辑块映射,这也是默认的映射方式。例如,把逻辑卷中125LE映射到PV1,把2650LE映射到PV2上。 jAQLinux联盟

  • 条带模式――将把逻辑块以条带的形式映射到不同的物理卷中,这种方式与前面讲到的RAID 0有些类似,这种方式可以提高逻辑卷读写的性能。例如,将逻辑卷的LE 1映射为PV1PE1LE 2映射为PV2PE1LE 3映射为PV3PE1jAQLinux联盟

那么创建逻辑卷的操作如下:jAQLinux联盟

# lvcreate -i 3 -I 4 -L 180M -n lvtest1 vgtestjAQLinux联盟

Logical volume "lvtest1" createdjAQLinux联盟

上面的提示信息表明成功创建了一个名为“lvtest1”的逻辑卷,其命令中的几个参数的说明如下:jAQLinux联盟

  • -i:采用条带模式的映射方式创建逻辑卷,该参数的值用于指定所创建的逻辑卷将映射在几个PV上。jAQLinux联盟

  • -I:指定使用条带模式时所采用块的大小,单位为KB,其值必须是:2NN2)。jAQLinux联盟

  • -L:指定创建逻辑卷的大小,单位的可以用KMGT表示KBMBGBTBjAQLinux联盟

  • -n:用来指定所创建的逻辑卷名称,该名称可以根据需要随便定义。jAQLinux联盟

在使用“-i”参数指定PV的个数时,一定要确认所指定的这些PV是没有完全被分配给任何逻辑卷的,否则将创建失败,其次若这些PV的大小不等,那么所创建的逻辑卷只能取最小值。jAQLinux联盟

下面再使用剩余的空间来创建第二个逻辑卷,通过“vgdisplay”命令可查看当前卷组剩余的空间,如下:jAQLinux联盟

# vgdisplay jAQLinux联盟

--- Volume group ---jAQLinux联盟

VG Name vgtestjAQLinux联盟

System ID jAQLinux联盟

Format lvm2jAQLinux联盟

Metadata Areas 3jAQLinux联盟

Metadata Sequence No 11jAQLinux联盟

VG Access read/writejAQLinux联盟

VG Status resizablejAQLinux联盟

MAX LV 0jAQLinux联盟

Cur LV 1jAQLinux联盟

Open LV 0jAQLinux联盟

Max PV 0jAQLinux联盟

Cur PV 3jAQLinux联盟

Act PV 3jAQLinux联盟

VG Size 300.00 MBjAQLinux联盟

PE Size 4.00 MBjAQLinux联盟

Total PE 75jAQLinux联盟

Alloc PE / Size 45 / 180.00 MBjAQLinux联盟

Free PE / Size 30 / 120.00 MBjAQLinux联盟

VG UUID 1Nbgxo-U4Ux-Y5Hb-TDzT-d5Fp-Iov7-wKFHG5jAQLinux联盟

从如上的信息可了解到“vgtest”卷组还剩余30个空闲的PE,那么将这些空闲的空间全部划分给另一个逻辑卷,操作如下:jAQLinux联盟

# lvcreate -l 30 -n lvtest2 vgtestjAQLinux联盟

Logical volume "lvtest2" createdjAQLinux联盟

其中“-l”用于指定逻辑卷的LE数量,默认为4MB,所以此次创建的逻辑卷的大小是120M,该参数与“-L”效果一样。jAQLinux联盟

jAQLinux联盟
jAQLinux联盟

4、创建文件系统jAQLinux联盟

在逻辑卷上创建文件系统和在分区上创建文件系统方法是一样,例如,在逻辑卷上创建ext3格式的文件系统,命令如下:jAQLinux联盟

# mkfs.ext3 /dev/vgtest/lvtest1jAQLinux联盟

# mkfs.ext3 /dev/vgtest/lvtest2jAQLinux联盟

以上就是在Linux下创建逻辑卷的整个步骤。jAQLinux联盟

jAQLinux联盟
jAQLinux联盟

LVM的维护

LVM的日常维护工作中,通常会需要对逻辑卷扩容、添加新的物理卷等操作,下面将结合【实例1】中所创建的逻辑卷来介绍LVM常用的管理操作,如下:jAQLinux联盟

jAQLinux联盟
jAQLinux联盟

1、激活卷组jAQLinux联盟

卷组若不被激活,卷组和逻辑卷是不能被访问的,在LVM 2里创建的卷组默认是激活的,那么手动激活卷组的命令是:jAQLinux联盟

# vgchange -a y vgtestjAQLinux联盟

2 logical volume(s) in volume group "vgtest" now activejAQLinux联盟

其中“-a”用于设置指定的卷组是否可用,参数“y”表示激活卷组,若设置为“n”则表示暂停卷组使用。jAQLinux联盟

jAQLinux联盟
jAQLinux联盟

2、为卷组增加新的物理卷jAQLinux联盟

当卷组空间不足时,可以加入新的物理卷来扩大卷组容量,这时可用“vgextend”命令来实现,如下:jAQLinux联盟

# vgextend vgtest /dev/sdejAQLinux联盟

Volume group "vgtest" successfully extendedjAQLinux联盟

其中“/dev/sde”是新增的物理卷,前提该设备已经使用“pvcreate”进行了初始化了。jAQLinux联盟

jAQLinux联盟
jAQLinux联盟

3、从卷组中移除物理卷jAQLinux联盟

要从一个卷组中移除一个物理卷,首先要确认要移除的物理卷没有被任何逻辑卷正在使用,通过“pvdisplay”命令可查看到该物理卷信息,如下:jAQLinux联盟

# pvdisplay /dev/sde jAQLinux联盟

--- Physical volume ---jAQLinux联盟

PV Name /dev/sdejAQLinux联盟

VG Name vgtestjAQLinux联盟

PV Size 100.00 MB / not usable 0 jAQLinux联盟

Allocatable yes jAQLinux联盟

PE Size (KByte) 4096jAQLinux联盟

Total PE 25jAQLinux联盟

Free PE 25jAQLinux联盟

Allocated PE 0jAQLinux联盟

PV UUID ee2IFC-UHUq-Xg67-icwt-AhdJ-7kRz-JdDjiqjAQLinux联盟

若其中的“Total PE”与“ Free PE”相等,表明该物理卷没有被使用,如果某个物理卷正在被逻辑卷所使用,就需要将该物理卷的数据转移到其它地方,然后再移除。移除物理卷的命令为“vgreduce”,如下:jAQLinux联盟

# vgreduce vgtest /dev/sdejAQLinux联盟

Removed "/dev/sde" from volume group "vgtest"jAQLinux联盟

jAQLinux联盟
jAQLinux联盟

4、在物理卷间转移数据jAQLinux联盟

当发现逻辑卷下的某个磁盘有错误,或有其它需求要转移其中物理卷的数据时(如,更换大容量或更高速的物理设备),那么可通过“pvmove”来实现在物理卷之间转移数据,例如,将物理卷“/dev/sdd”上的数据转移到“/dev/sde”具体操作如下:jAQLinux联盟

# pvmove /dev/sdd /dev/sdejAQLinux联盟

/dev/sdd: Moved: 100.0%jAQLinux联盟

其中/dev/sde的大小一定要大于或等于/dev/sdd其次在使用“pvmove ”前需要用 “modprobe dm-mirror”命令来加载dm-mirror模块,因为“pvmove”在转移数据时需要用到该模块,而默认系统是不加载该模块的。jAQLinux联盟

jAQLinux联盟
jAQLinux联盟

5、扩展逻辑卷jAQLinux联盟

在前面提到过,LVM提供了方便调整逻辑卷大小的功能,扩展逻辑卷大小的命令是“lvextent”,例如,将“lvtest2”的空间大小调整到160M,操作如下:jAQLinux联盟

# lvextend -L 160M /dev/vgtest/lvtest2 jAQLinux联盟

Extending logical volume lvtest2 to 160.00 MBjAQLinux联盟

Logical volume lvtest2 successfully resizedjAQLinux联盟

也可以在原来的基础增加相应的大小,如下:jAQLinux联盟

# lvextend -L +40M /dev/vgtest/lvtest2 jAQLinux联盟

Extending logical volume lvtest2 to 160.00 MBjAQLinux联盟

Logical volume lvtest2 successfully resizedjAQLinux联盟

逻辑卷扩展后并不会马上生效,需要使用“resize2fs”命令重新加载逻辑卷的大小,该命令只针对ext2/ext3的文件系统(若是reiserfs的文件系统,则使用“resize_reiserfs”命令),如果该逻辑卷正在使用中,就应该先将该逻辑卷卸载后再执行“resize2fs”命令,操作如下:jAQLinux联盟

# umount /dev/vgtest/lvtest2jAQLinux联盟

# resize2fs /dev/vgtest/lvtest2 jAQLinux联盟

resize2fs 1.35 (28-Feb-2004)jAQLinux联盟

The filesystem is already 163840 blocks long. Nothing to do!jAQLinux联盟

# mount /dev/vgtest/lvtest2 /mnt/lvtest2/jAQLinux联盟

以上这些操作可以通过“ext2online”命令直接来实现,这样就不用做卸载逻辑卷等操作了,如下:jAQLinux联盟

# ext2online /dev/vgtest/lvtest2 jAQLinux联盟

ext2online v1.1.18 - 2001/03/18 for EXT2FS 0.5bjAQLinux联盟

jAQLinux联盟
jAQLinux联盟

6、删除逻辑卷jAQLinux联盟

删除逻辑卷前首先需要将其卸载,其命令是“lvremove”,如下:jAQLinux联盟

# lvremove /dev/vgtest/lvtest2 jAQLinux联盟

Do you really want to remove active logical volume "lvtest2"? [y/n]: yjAQLinux联盟

Logical volume "lvtest2" successfully removedjAQLinux联盟

其中输入“y”确认确认删除该逻辑卷。jAQLinux联盟

jAQLinux联盟
jAQLinux联盟

7、移除卷组jAQLinux联盟

在移除卷组前首先要确认该卷组中已没有任何的逻辑卷了,或者可使用“vgchange”手工将卷组停止,移除卷组的具体操作如下:jAQLinux联盟

# vgremove vgtestjAQLinux联盟

Volume group "vgtest" successfully removedjAQLinux联盟

jAQLinux联盟
jAQLinux联盟

8、删除物理卷jAQLinux联盟

在删除物理卷前,必须确认该物理卷已从卷组中移除了,删除物理卷的命令是“pvremove”,如下:jAQLinux联盟

# pvremove /dev/sdejAQLinux联盟

Labels on physical volume "/dev/sde" successfully wipedjAQLinux联盟

除此之外,LVM还可以提供snapshot(快照)等功能,其snapshot能够快速的备份当前逻辑卷中的数据,从而大大减轻备份数据的负担,只是目前来说技术并不是很成熟。jAQLinux联盟
转自:http://blog.chinaunix.net/u/25100/showart_338146.htmljAQLinux联盟

来顶一下
近回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
相关文章
    无相关信息
栏目更新
栏目热门