Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1069624
  • 博文数量: 252
  • 博客积分: 4561
  • 博客等级: 上校
  • 技术积分: 2833
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-15 08:23
文章分类

全部博文(252)

文章存档

2015年(2)

2014年(1)

2013年(1)

2012年(16)

2011年(42)

2010年(67)

2009年(87)

2008年(36)

分类:

2011-02-10 10:47:44

 1 简介
1.1
什么是LVM?
LVM
Logical Volume Manager(逻辑卷管理)的简写,它由Heinz MauelshagenLinux 2.4内核上实现,目前最新版本为:稳定版1.0.5,开发版 1.1.0-rc2,以及LVM2开发版。
与传统的磁盘与分区相比,LVM为计算机提供了更高层次的磁盘存储。它使系统管理员可以更方便的为应用与用户分配存储空间。在LVM管理下的存储卷可以按需要随时改变大小与移除(可能需对文件系统工具进行升级)LVM也允许按用户组对存储卷进行管理,允许管理员用更直观的名称("sales' 'development')代替物理磁盘名('sda''sdb')来标识存储卷。
1.2
为什么使用LVM?
LVM
通常用于装备大量磁盘的系统,但它同样适于仅有一、两块硬盘的小系统。
1.2.1
小系统使用LVM的益处
传统的文件系统是基于分区的,一个文件系统对应一个分区。这种方式比较直观,但不易改变:
1.
不同的分区相对独立,无相互联系,各分区空间很易利用不平衡,空间不能充分利用;
2.
当一个文件系统/分区已满时,无法对其扩充,只能采用重新分区/建立文件系统,非常麻烦;或把分区中的数据移到另一个更大的分区中;或采用符号连接的方式使用其它分区的空间。
3.
如果要把硬盘上的多个分区合并在一起使用,只能采用再分区的方式,这个过程需要数据的备份与恢复。
当采用LVM时,情况有所不同:
1.
硬盘的多个分区由LVM统一为卷组管理,可以方便的加入或移走分区以扩大或减小卷组的可用容量,充分利用硬盘空间;
2.
文件系统建立在逻辑卷上,而逻辑卷可根据需要改变大小(在卷组容量范围内)以满足要求;
3.
文件系统建立在LVM上,可以跨分区,方便使用;
1.2.2
大系统使用LVM的益处
在使用很多硬盘的大系统中,使用LVM主要是方便管理、增加了系统的扩展性。
在一个有很多不同容量硬盘的大型系统中,对不同的用户的空间分配是一个技巧性的工作,要在用户需求与实际可用空间中寻求平衡。
用户/用户组的空间建立在LVM上,可以随时按要求增大,或根据使用情况对各逻辑卷进行调整。当系统空间不足而加入新的硬盘时,不必把用户的数据从原硬盘迁移到新硬盘,而只须把新的分区加入卷组并扩充逻辑卷即可。同样,使用LVM可以在不停服务的情况下。把用户数据从旧硬盘转移到新硬盘空间中去。
2 LVM
构成
LVM
的结构简图如下:
hda1 hdc1 sdc (PV:s
物理卷,一般为分区或整个硬盘)
\
/
\
/
diskvg (VG
卷组由物理卷组成)
/ | \
/ | \
usrlv rootlv varlv (LV:s
逻辑卷在卷组上创建)
| | |
ext2 reiserfs xfs (
建立在逻辑卷上的文件系统)
2.1
卷组volume group (VG)
卷组是LVM中最高抽象层,是由一个或多个物理卷所组成的存储器池。
2.2
物理卷physical volume (PV)
典型的物理卷是硬盘分区,但也可以是整个硬盘或已创建的Software RAID 卷。
2.3
逻辑卷logical volume (LV)
逻辑卷相当于非LVM系统中的分区,它在卷组上建立,是一个标准的块设备,可以在其上建立文件系统。
2.4
物理块physical extent (PE)
物理卷按大小相等的为单位存储,块的大小与卷组中逻辑卷块的大小相同。
2.5
逻辑块logical extent (LE)
逻辑卷按为单位存储,在一卷组中的所有逻辑卷的块大小是相同的。
2.6
总述
例子:有一个卷组VG1,它的物理块大小为4MB。在这个卷组中为2个硬盘分区:/dev/hda1/dev/hdb1,它们分别成为物理卷PV1PV2。物理卷将按4MB为单位分块,如PV1PV2分别可分为99248块。在VG1上建立逻辑卷,它的大小可在1347(99+248)块之间。当建立逻辑卷时,会建立逻辑块与物理块的一一映射关系。
2.7
映射模式 (linear/striped)
在建立逻辑卷时,可以选择逻辑块与物理块映射的策略:
1.
线性映射-将把一定范围的物理块按顺序分配给逻辑卷,如 LVLE 1 – 99映射到PV1LE 100 – 347映射到PV2
2.
交错模式-将把逻辑块交错映射到不同的物理卷中,如 LVLE 1映射为PV1PE1LE 2映射为PV2PE1LE 3映射为PV1PE2...。这种方式可以提高逻辑卷的性能,但是采用这种方式建立的逻辑卷将不能在它们所在的物理卷中扩展。
2.8 Snapshots (
快照)
LVM
提供了一个非常好的特性:snapshots。它允许管理员建立一个块设备:该设备是一逻辑卷在某一时刻冻结的精确拷贝。这个特性通常用于批处理过程(如备份)需要处理逻辑卷,但又不能停止系统。当操作完成时,snapshot设备可以被移除。这个特性要求在建立snapshot设备时逻辑卷处于相容状态。
3 LVM
的一般操作
3.1
建立PV
为把一个磁盘或分区作为PV,首先应使用 pvcreate 对其初始化,如对IDE硬盘/dev/hdb
"
使用整个磁盘,
# pvcreate /dev/hdb
这将在磁盘上建立VG的描述符。
"
使用磁盘分区,如/dev/hdb1
使用fdisk t 命令把/dev/hda1的分区类型设为0x8e,然后运行:
# pvcreate /dev/hdb1
这将在分区/dev/hda1上建立VG的描述符。
PV
初始化命令pvcreate的一般用法为:
pvcreate PV1 [ PV2 ... ]
它的参数可以是整个磁盘、分区,也可以是一loop设备。
3.2
建立VG
在使用pvcreate 建立了PV后,可以用vgcreate 建立卷组,如有PV1PV2分别是/dev/hda1/dev/hdb1,使用
# vgcreate testvg /dev/hda1 /dev/hdb1
将建立一个名为testvg的卷组,它由两个PV/dev/hda1/dev/hdb1组成。vgcreate的一般用法为:
# vgcreate [options] VG_name PV1 [PV2 ...]
其中的可选项包括设置VG最大支持的LV数、PE大小(缺省为4MB)等。
注意:当使用devfs系统时,应使用设备的全名而不能是Symbol Link,如对上例应为:
# vgcreate testvg /dev/ide/host0/bus0/target0/lun0/part1\
/dev/ide/host0/bus0/target1/lun0/part1
3.3
激活VG
在被激活之前,VGLV是无法访问的,这时可用命令:
# vgchange -a y testvg
激活所要使用的卷组。当不再使用VG时,可用
vgchange -a n testvg
使之不再可用。
vgchange
可用来设置VG的一些参数,如是否可用( -a [y|n]选项)、支持最大逻辑卷数等。
3.4
移除VG
在移除一卷组前应确认卷组中不再有逻辑卷,首先休眠卷组:
# vgchange -a n testvg
然后可用vgremove移除该卷组:
# vgremove testvg
3.5
VG增加新PV
当卷组空间不足时,可以加入新的物理卷来扩大容量,这时可用命令vgextend,如
# vgextend testvg /dev/hdc1
其中/dev/hdc1是新的PV,当然在这之前,它应使用pvcreate初始化。
3.6
VG移除PV
在移除PV之前,应确认该PV没用被LV使用,这可用命令pvdisplay查看,如:
# pvdisplay /dev/hda1
--- Physical volume ---
PV Name /dev/hda1
VG Name testvg
PV Size 1.95 GB / NOT usable 4 MB [LVM: 122 KB]
PV# 1
PV Status available
Allocatable yes (but full)
Cur LV 1
PE Size (KByte) 4096
Total PE 499
Free PE 0
Allocated PE 499
PV UUID Sd44tK-9IRw-SrMC-MOkn-76iP-iftz-OVSen7
如这个PV仍在被使用,则应把数据传移到其它PV上。在确认它未被使用后,可用命令vgreduce把它从VG中删除,如:
# vgreduce testvg /dev/hda1
3.7
创建LV
在创建逻辑卷前,应决定LV使用哪些PV,这可用命令vgdisplaypvdisplay查看当前卷组与PV的使用情况。在已有的卷组上创建逻辑卷使用命令lvcreate,如:
# lvcreate -L1500 -ntestlv testvg
阅读(505) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~