Chinaunix首页 | 论坛 | 博客
  • 博客访问: 319021
  • 博文数量: 95
  • 博客积分: 3010
  • 博客等级: 中校
  • 技术积分: 840
  • 用 户 组: 普通用户
  • 注册时间: 2008-06-01 13:05
文章分类

全部博文(95)

文章存档

2009年(8)

2008年(87)

我的朋友

分类:

2008-06-03 08:02:41



卷 管理在 -ix 环境(UNIX?、AIX 等等)中并不是新特性。逻辑卷管理(logical volume management,LVM)在 Linux? 内核 2.4v1 和 2.6.9v2 中就已经出现了。本文讨论 LVM2 最有用的特性(LVM2 是一个相当新的用户空间工具集,它提供逻辑卷管理功能),并提供几种简化系统管理任务的方法。 qm7Linux联盟
qm7Linux联盟
逻 辑卷管理(LVM)指系统将物理卷管理抽象到更高的层次,常常会形成更简单的管理模式。通过使用 LVM,所有物理磁盘和分区,无论它们的大小和分布方式如何,都被抽象为单一存储(single storage)源。例如,在图 1 所示的物理到逻辑映射布局中,最大的磁盘是 80GB 的,那么用户如何创建更大(比如 150GB)的文件系统呢? qm7Linux联盟
qm7Linux联盟
图 1. 物理到逻辑的映射 qm7Linux联盟
qm7Linux联盟
物理到逻辑的映射 qm7Linux联盟
qm7Linux联盟
LVM 可以将分区和磁盘聚合成一个虚拟磁盘(virtual disk),从而用小的存储空间组成一个统一的大空间。这个虚拟磁盘在 LVM 术语中称为卷组(volume group)。 qm7Linux联盟
qm7Linux联盟
建立比最大的磁盘还大的文件系统并不是这种高级存储管理方法的惟一用途。还可以使用 LVM 完成以下任务: qm7Linux联盟
qm7Linux联盟
* 在磁盘池中添加磁盘和分区,对现有的文件系统进行在线扩展 qm7Linux联盟
* 用一个 160GB 磁盘替换两个 80GB 磁盘,而不需要让系统离线,也不需要在磁盘之间手工转移数据 qm7Linux联盟
* 当存储空间超过所需的空间量时,从池中去除磁盘,从而缩小文件系统 qm7Linux联盟
* 使用快照(snapshot)执行一致的备份(本文后面会进一步讨论) qm7Linux联盟
qm7Linux联盟
LVM2 是一个新的用户空间工具集,它为 Linux 提供逻辑卷管理功能。它完全向后兼容原来的 LVM 工具集。在本文中,将介绍 LVM2 最有用的特性以及几种简化系统管理任务的方法。(随便说一句,如果您正在寻找关于 LVM 的基本指南,那么可以看看 参考资料 中列出的 LVM HowTo。) qm7Linux联盟
qm7Linux联盟
我们来看看 LVM 的结构是什么样子的。 qm7Linux联盟
qm7Linux联盟
LVM 的结构 qm7Linux联盟
qm7Linux联盟
LVM 被组织为三种元素: qm7Linux联盟
qm7Linux联盟
* 卷(Volume):物理 和逻辑卷 和卷组 qm7Linux联盟
* 区段(Extent):物理 和逻辑区段 qm7Linux联盟
* 设备映射器(Device mapper):Linux 内核模块 qm7Linux联盟
qm7Linux联盟
qm7Linux联盟
qm7Linux联盟
Linux LVM 组织为物理卷(PV)、卷组(VG)和逻辑卷(LV)。物理卷 是物理磁盘或物理磁盘分区(比如 /dev/hda 或 /dev/hdb1)。卷组 是物理卷的集合。卷组 可以在逻辑上划分成多个逻辑卷。 qm7Linux联盟
qm7Linux联盟
图 2 显示一个三个磁盘构成的布局。 qm7Linux联盟
qm7Linux联盟
图 2. 物理到逻辑卷的映射 qm7Linux联盟
qm7Linux联盟
物理到逻辑卷的映射 qm7Linux联盟
qm7Linux联盟
物理磁盘 0 上的所有四个分区(/dev/hda[1-4])以及完整的物理磁盘 1(/dev/hdb)和物理磁盘 2(/dev/hdd)作为物理卷添加到卷组 VG0 中。 qm7Linux联盟
qm7Linux联盟
卷 组是实现 n-to-m 映射的关键(也就是,将 n 个 PV 看作 m 个 LV)。在将 PV 分配给卷组之后, 就可以创建任意大小的逻辑卷(只要不超过 VG 的大小)。在图 2 的示例中,创建了一个称为 LV0 的卷组,并给其他 LV 留下了一些空间(这些空间也可以用来应付 LV0 以后的增长)。 qm7Linux联盟
qm7Linux联盟
LVM 中的逻辑卷就相当于物理磁盘分区;在实际使用中,它们就是 物理磁盘分区。 qm7Linux联盟
qm7Linux联盟
在创建 LV 之后,可以使用任何文件系统对它进行格式化并将它挂载在某个挂载点上,然后就可以开始使用它了。图 3 显示一个经过格式化的逻辑卷 LV0 被挂载在 /var。 qm7Linux联盟
qm7Linux联盟
图 3. 物理卷到文件系统的映射 qm7Linux联盟
qm7Linux联盟
物理卷到文件系统的映射 qm7Linux联盟
qm7Linux联盟
区段 qm7Linux联盟
qm7Linux联盟
为了实现 n-to-m 物理到逻辑卷映射,PV 和 VG 的基本块必须具有相同的大小;这些基本块称为物理区段(PE)和逻辑区段(LE)。尽管 n 个物理卷映射到 m 个逻辑卷,但是 PE 和 LE 总是一对一映射的。 qm7Linux联盟
qm7Linux联盟
在 使用 LVM2 时,对于每个 PV/LV 的最大区段数量并没有限制。默认的区段大小是 4MB,对于大多数配置不需要修改这个设置,因为区段的大小并不影响 I/O 性能。但是,区段数量太多会降低 LVM 工具的效率,所以可以使用比较大的区段,从而降低区段数量。但是注意,在一个 VG 中不能混用不同的区段大小,而且用 LVM 修改区段大小是一种不安全的操作,会破坏数据。所以建议在初始设置时选择一个区段大小,以后不再修改。 qm7Linux联盟
qm7Linux联盟
不同的区段大小意味着不同的 VG 粒度。例如,如果选择的区段大小是 4GB,那么只能以 4GB 的整数倍缩小或扩展 LV。 qm7Linux联盟
qm7Linux联盟
图 4 用 PE 和 LE 显示与前一个示例相同的布局(VG0 中的空闲空间也由空闲 LE 组成,尽管图中没有显示它们)。 qm7Linux联盟
qm7Linux联盟
图 4. 物理到逻辑区段的映射 qm7Linux联盟
qm7Linux联盟
物理到逻辑区段的映射 qm7Linux联盟
qm7Linux联盟
另 外,请注意图 4 中的区段分配策略。LVM2 并非总是连续分配 PE;细节参见关于 lvm 的 Linux 手册页(见 参考资料 中的链接)。系统管理员可以设置不同的分配策略,但是一般不需要这么做,因为默认策略(名为一般分配策略(normal allocation policy))使用符合常规的规则,比如不把并行的条带放在同一物理卷上。 qm7Linux联盟
qm7Linux联盟
如果决定创建第二个 LV(LV1),那么最终的 PE 布局可能像图 5 这样。 qm7Linux联盟
qm7Linux联盟
图 5. 物理到逻辑区段的映射 qm7Linux联盟
qm7Linux联盟
物理到逻辑区段的映射 qm7Linux联盟
qm7Linux联盟
设备映射器 qm7Linux联盟
qm7Linux联盟
设备映射器(也称为 dm_mod)是一个 Linux 内核模块(也可以是内置的),最早出现在 2.6.9 内核中。它的作用是对设备进行映射 —— LVM2 必须使用这个模块。 qm7Linux联盟
qm7Linux联盟
在 大多数主流发行版中,设备映射器会被默认安装,常常会在引导时或者在安装或启用 LVM2/EVMS 包时自动装载(EVMS 是一种替代 LVM 的工具,更多信息见 参考资料)。如果没有启用这个模块,那么对 dm_mod 执行 modprobe 命令,在发行版的文档中查找在引导时启用它的方法:modprobe dm_mod。 qm7Linux联盟
qm7Linux联盟
在创建 VG 和 LV 时, 可以给它们起一个有意义的名称(而不是像前面的示例那样使用 VG0、LV0 和 LV1 等名称)。设备映射器的作用就是将这些名称正确地映射到物理设备。对于前面的示例,设备映射器会在 /dev 文件系统中创建下面的设备节点: qm7Linux联盟
qm7Linux联盟
* /dev/mapper/VG0-LV0 qm7Linux联盟
o /dev/VG0/LV0 是以上节点的链接 qm7Linux联盟
* /dev/mapper/VG0-LV1 qm7Linux联盟
o /dev/VG0/LV1 是以上节点的链接 qm7Linux联盟
qm7Linux联盟
(注意名称的格式标准:/dev/{vg_name}/{lv_name} -> /dev/mapper/{vg_name}{lv_name})。 qm7Linux联盟
qm7Linux联盟
与物理磁盘相反,无法直接访问卷组(这意味着没有 /dev/mapper/VG0 这样的文件,也不能执行 dd if=/dev/VG0 of=dev/VG1)。常常使用 lvm(8) 命令访问卷组。
阅读(1266) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~