Win2000 WinXP Win2003 Mac OS Linux FreeBSD 
Google adsense申请技巧本站核心代理域名注册主机业务 快速发布你的买卖域名买卖网站信息 1元注册 cn域名
站长每日新闻导读 √ ·推荐万网空间¥120元 150m 站长网:站长必上的网站网站联盟大全本站代理万网域名55空间120元
 2007-2-10 10:00:41

Linux服务器存储空间巧妙管理(上)

来源: 字体:[ ]

对于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并不是最新技术,早在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),并进一步在逻辑卷组上创建文件系统。如图1。

图1 LVM结构

    LVM最大的优点是不在考虑物理磁盘的特征,中间构架了一层“绝缘层”,或者以现代名词,叫作服务层,提供磁盘空间服务。如果没有这个中间层,必然存在物理磁盘大小的限制,这是不可克服的事实,在这个磁盘上进行的分区,必然受到物理条件制约,存储数据很不方便。在一台计算机只有一个100M磁盘的年代,这并不是大问题,LVM logical volume manager设计之初,就认识到了人类懒惰的本质,在性能、可管理性、兼容、功能支持等方面,实现了很好的平衡。
 
    LVM支持两种模式的逻辑卷(Logical Volumes),一种是串连模式(Concatenation)另一种是条块模式(Striping),系统默认是串连模式。这两种模式有什么区别呢?比如,有两块IDE接口的30GB硬盘/dev/hdb、/dev/hdc,它们共同组成了一个卷组vg1,在此卷组上创建了一个40GB的逻辑卷lv1。如果这个逻辑卷是串连模式,数据在两块硬盘上将顺序存放,只有当一块硬盘存满之后才去使用另一块硬盘。 如果这个逻辑卷是条块模式,数据将被分割成固定大小的条块,然后分散存放到两块硬盘上。这样意味着你有更多有效的磁盘带宽,数据的读写速度将大幅提高。条块模式尽管给我们带来了高性能,但也带来了高风险,如果任一块磁盘坏掉,那全部的逻辑卷都会丢失,其结果将是灾难性的。然而LVM技术对这种灾难已经早有防范,LVM的实现不仅可以在磁盘分区上实现也可以在RAID卷上实现。无论是硬件RAID还是软件RAID,LVM都给予了很好的支持。
 
图2 LVM支持两种模式的逻辑卷

五、LVM的Snapshots(快照)特性

    LVM 提供了一个非常好的特性:snapshots(快照)。它允许管理员建立一个块设备:该设备是一逻辑卷在某一时刻冻结的精确拷贝。这个特性通常用于批处理过程(如备份)需要处理逻辑卷,但又不能停止系统。当操作完成时,snapshot(快照)设备可以被移除。这个特性要求在建立 snapshot (快照)设备时逻辑卷处于相容状态。使用LVM,我们可以做一个LV瞬间的快照,然后挂载(mount)它,再备份它。请注意,快照不是永久的。如果你卸下LVM或重启,它们就丢失了,需要重新创建。图3是LVM Snapshots(快照)示意图。
 

图3 LVM Snapshots(快照)示意图

    快照有2种方式: 一种是只读另一种是可读写。如果你只须拷贝数据,那么只读快照看起来不错,不过可读写快照则有好几个优点。首先是无需额外处理日至文件系统 -- 你可以快照上简单地实现日志恢复。只读快照则必须保证文件系统在开始快照之前就得和设备同步,因此需要日志重现。

六、常用术语
 
    物理存储介质(The Physical Media) :系统的存储设备:硬盘或硬盘上的分区,如:/dev/sda、/dev/hda等等,是存储系统底层的存储。

    物理卷(PV)Physical Volume :硬盘分区或从逻辑上与硬盘分区具有同样功能的设备(如 RAID),是 LVM 的基本存储逻辑块,和基本的物理存储介质(如分区、磁盘等)不同的是,其中包含有 LVM 管理参数。

    卷组(VG)Volume Group :LVM 中的最高抽象层,由一个或多个物理卷组成。一个逻辑卷管理系统中可以只有一个卷组,也可以拥有多个卷组。

    逻辑卷(LV)Logical Volume :逻辑卷(LV)在卷组上建立,相当于非 LVM 系统中的分区,可以在其上创建文件系统,如/home 或者 /var 等。系统中的多个逻辑卷可以属于同一个卷组,也可以属于不同的多个卷组。

    物理区域(PE)Physical Extent :每一个物理卷被划分为大小相等的称为 PE(Physical Extents)的基本单元。物理区域是物理卷中可用于分配的最小存储单元,物理区域的大小可根据实际情况在建立物理卷时指定。物理区域大小一旦确定将不能更改,同一卷组中的所有物理卷的物理区域大小需要一致。 PE 的大小是可配置的,默认为4MB。

    逻辑区域(LE)Logical Extent :逻辑卷也被划分为被称为 LE(Logical Extents)的可被寻址的基本单位。在同一个卷组中,LE的大小和 PE 是相同的,并且一一对应。

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

图4 磁盘分区、卷组、逻辑卷和文件系统之间的逻辑关系的示意图


七、有了 LVM,还要 RAID 干嘛?

    既然 LVM 跟 RAID 的功能相近(例如可以动态换坏掉的硬盘),又有后者所不及之处(例如为卷册动态加入更多空间),那许多使用者会想,我们还要 RAID 干什么?事实上,RAID 与 LVM 是互补的技术,可以搭配使用(就跟复合式 RAID 一样),互采所长,互补其短。

    以上介绍了LVM 基础入门。其实,Linux中实现LVM的方法有两种: 一种是在安装Linux时利用Disk Druid程序在图形化界面下实现; 另一种是利用LVM命令在字符界面下实现,下篇文章首先将介绍基于前一种方法的实现,敬请关注。

    参考文献:
http://www.linuxdevcenter.com/pub/a/linux/2006/04/27/managing-disk-space-with-lvm.html

网站地图 - 域名注册续费虚拟主机代理 - 交易论坛 - 网站投稿 - 广告服务 - 帮助中心 - 联系我们
Copyright ©2003-2007 www.Admin5.com All Rights Reserved