对于Linux用户而言,在安装一台Linux机器的时候,遇到的问题之一就是给各分区估计和分派足够的硬盘空间。无论对一个正在为服务器寻找空间的系统管理员,还是一个磁盘即将用尽的普通用户来说,这都是一个非常常见的问题。一般我们会想到解决的方法是:
1. 挂接一个新的硬盘,然后使用符号链接,链接到新的硬盘。
2. 利用一些调整分区大小的工具(比如Pqmagic),进行无损伤数据分区。
一、问题的提出
但是,这些都只是暂时性的解决办法,而且都需要让机器停止运行或者持续很长时间的分区工作而不能正常提供服务。即使缓解了硬盘空间问题,不久,仍然会面临同样的问题。
这对于一个大型站点来说,有着数量众多的客户、又连接在互联网上,只要你的服务器关机一分钟,都会给公司带来很大损失。此外,使用这种方法,在修改了分区表之后,每一次都得重新启动系统。因此,我们可以采用新技术LVM(逻辑卷管理程序)可以帮助我们解决这些问题。
二、什么是LVM
LVM(Logical Volume Manager,逻辑卷管理器)是一种把硬盘驱动器空间分配成逻辑卷的方法,使硬盘不必使用分区也能被简单地重新划分大小。传统上,一个分区大小是静态的。假如一个用户在这个分区上没有空间时,他要么重新分区(这可能要求整个操作系统重装),要么像符号连接一样使用组装机。
使用LVM,硬盘驱动器或硬盘驱动器集合就会分配给一个或多个物理卷(physical volumes)。物理卷被合并成逻辑卷组(logical volume group),惟一例外的是/boot分区。由于物理卷无法跨越一个以上驱动器,如果想让逻辑卷组跨越一个以上驱动器,就应该在驱动器上创建一个或多个物理卷。逻辑卷组被分成逻辑卷(logical volumes),被分配了挂载点(如/home和/),以及文件系统类型(如ext3)。当“分区”达到了它们的极限,逻辑卷组中的空闲空间就可以被添加给逻辑卷来增加分区的大小。当某个新的硬盘驱动器被添加到系统上,它也可以被添加到逻辑卷组中,逻辑卷是可以扩展的分区。 由于LVM允许在机器的物理存储资源以外创建逻辑卷,并且逻辑卷可以在系统仍处于运行状态时扩充和缩减,所以就为Linux系统管理员提供了他们梦寐以求的存储器灵活性。
LVM的作用:LVM 的实际运作情形则根据作法不同,而有所差异;但 LVM 通常包括实体储存分群(physical storage grouping)、重设逻辑扇区大小(logical volume resizing)、以及数据转移(data migrating)。
三、LVM的历史
当然,LVM并不是{zx1}技术,早在UNIX操作系统时代,像HP,IBM AIX上就可以看到VM的身影,作为IBM的旗舰产品,AIX很早就支持了动态逻辑分区(DVM),当然,它的DVM设计是比较厉害的,此后在AIX 5L中,重构了UNIX内核,增加了逻辑卷管理(LVM)和日志文件系统(JFS)等功能。使之AIX更加强大。在各种商业UNIX系统中,譬如AIX,HP-UNIX,Tru64 UNIX等系统中,逻辑卷管理已经被广泛采用,成了事实上的一个标准。
LVM 的功能于2.3 内核发展中版本纳入支持。2001年1月,Linux 2.4.0内核发布,开始正式支持逻辑卷管理,使得Linux新内核更适应于服务器的应用。以前版本的Linux必须要在内核上打上相应的补丁才到实现LVM功能。现在,我们看到从Redhat Linux 9.0已经在内核级支持LVM。因此,我们可以使用LVM来帮助我们更加有效的管理磁盘。
要注意的是 LVM 有两个版本,分别为 LVM 1 与 LVM 2,相关工具与设定方式会有些差异性,本文都会使用 LVM 2 的环境介绍使用。LVM1 命令只能在 2.4 内核上工作。当运行 2.6 内核时,不能使用 LVM1 命令。关于更多关于 LVM2 的信息,请参阅 /usr/share/doc/lvm2*/WHATS_NEW。一个完整的 LVM2 命令被安装在 /usr/sbin/。在 /usr/ 还无效的启动环境中,每个命令前需要加上 /sbin/lvm.static(例如, /sbin/lvm.static vgchange -ay)。 在 /usr/ 有效的环境中,不再需要在每个命令前加 lvm (例如,/usr/sbin/lvm vgchange -ay 变为 /usr/sbin/vgchange -ay)。 新的 LVM2 命令(例如,/usr/sbin/vgchange -ay 和 /sbin/lvm.static vgchange -ay)会检测您是否在运行 2.4 内核。如果是,它会调用旧的 LVM1 命令。
四、LVM结构和分类
LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,它将多个物理分区汇聚为一个卷组(Volume Group),而且这些物理卷的大小可以不相同,甚至类型也可以不同(如SCSI、SATA磁盘)。组成的卷组就像一块大硬盘,然后再从中分割出一块一块的逻辑卷(Logical Volume),并进一步在逻辑卷组上创建文件系统。