`
heidian
  • 浏览: 99107 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
文章分类
社区版块
存档分类
阅读更多

LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。前面谈到,LVM是在磁盘分区和文件系统之间添加的一个逻辑层,来为文件系统屏蔽下层磁盘分区布局,提供一个抽象的盘卷,在盘卷上建立文件系统。物理卷(physical volume)物理卷就是指硬盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。

  Linux用户安装Linux操作系统时遇到的一个最常见的难以决定的问题就是如何正确地给评估各分区大小,以分配合适的硬盘空间。而遇到出现 某个分区空间耗尽时,解决的方法通常是使用符号链接,或者使用调整分区大小的工具(比如PatitionMagic等),但这都只是暂时解决办法,没有根 本解决问题。随着Linux的逻辑盘卷管理功能的出现,这些问题都迎刃而解,本文就深入讨论LVM技术,使得用户在无需停机的情况下方便地调整各个分区大 小。

  一、前言

  每个Linux使用者在安装Linux时都会遇到这样的困境:在为系统分区 时,如何精确评估和分配各个硬盘分区的容量,因为系统管理员不但要考虑到当前某个分区需要的容量,还要预见该分区以后可能需要的容量的最大值。因为如果估 计不准确,当遇到某个分区不够用时管理员可能甚至要备份整个系统、清除硬盘、重新对硬盘分区,然后恢复数据到新分区。

  虽然现在有 很多动态调整磁盘的工具可以使用,例如PartationMagic等等,但是它并不能完全解决问题,因为某个分区可能会再次被耗尽;另外一个方面这需要 重新引导系统才能实现,对于很多关键的服务器,停机是不可接受的,而且对于添加新硬盘,希望一个能跨越多个硬盘驱动器的文件系统时,分区调整程序就不能解 决问题。

  因此完美的解决方法应该是在零停机前提下可以自如对文件系统的大小进行调整,可以方便实现文件系统跨越不同磁盘和分区。幸运的是Linux提供的逻辑盘卷管理(LVM,LogicalVolumeManager)机制就是一个完美的解决方案。

  LVM是逻辑盘卷管理(LogicalVolumeManager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和 分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。通过LVM系统管理员可以轻松管理磁盘分区,如:将若干个磁盘分区连接为一个整块的卷组 (volumegroup),形成一个存储池。管理员可以在卷组上随意创建逻辑卷组(logicalvolumes),并进一步在逻辑卷组上创建文件系 统。管理员通过LVM可以方便的调整存储卷组的大小,并且可以对磁盘存储按照组的方式进行命名、管理和分配,例如按照使用用途进行定义: “development”和“sales”,而不是使用物理磁盘名“sda”和“sdb”。而且当系统添加了新的磁盘,通过LVM管理员就不必将磁盘的 文件移动到新的磁盘上以充分利用新的存储空间,而是直接扩展文件系统跨越磁盘即可。

  二、LVM基本术语

  前面谈到,LVM是在磁盘分区和文件系统之间添加的一个逻辑层,来为文件系统屏蔽下层磁盘分区布局,提供一个抽象的盘卷,在盘卷上建立文件系统。首先我们讨论以下几个LVM术语:

  *物理存储介质(Thephysicalmedia)

  这里指系统的存储设备:硬盘,如:/dev/hda1、/dev/sda等等,是存储系统最低层的存储单元。

  *物理卷(physicalvolume)

  物理卷就是指硬盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。

  *卷组(VolumeGroup)

  LVM卷组类似于非LVM系统中的物理硬盘,其由物理卷组成。可以在卷组上创建一个或多个“LVM分区”(逻辑卷),LVM卷组由一个或多个物理卷组成。

  *逻辑卷(logicalvolume)

  LVM的逻辑卷类似于非LVM系统中的硬盘分区,在逻辑卷之上可以建立文件系统(比如/home或者/usr等)。

  *PE(physicalextent)

  每一个物理卷被划分为称为PE(PhysicalExtents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。

  *LE(logicalextent)

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

  首先可以看到,物理卷(PV)被由大小等同的基本单元PE组成。

  一个卷组由一个或多个物理卷组成。

  从上图可以看到,PE和LE有着一一对应的关系。逻辑卷建立在卷组上。逻辑卷就相当于非LVM系统的磁盘分区,可以在其上创建文件系统。

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

  和非LVM系统将包含分区信息的元数据保存在位于分区的起始位置的分区表中一样,逻辑卷以及卷组相关的元数据也是保存在位于物理卷起始处的VGDA(卷组描述符区域)中。VGDA包括以下内容:PV描述符、VG描述符、LV描述符、和一些PE描述符。

  系统启动LVM时激活VG,并将VGDA加载至内存,来识别LV的实际物理存储位置。当系统进行I/O操作时,就会根据VGDA建立的映射机制来访问实际的物理位置。

  三、安装LVM

  首先确定系统中是否安装了lvm工具:

  [root@wwwroot]#rpm–qa|greplvm

  lvm-1.0.3-4

  如果命令结果输入类似于上例,那么说明系统已经安装了LVM管理工具;如果命令没有输出则说明没有安装LVM管理工具,则需要从网络下载或者从光盘装LVMrpm工具包。

  安装了LVM的RPM软件包以后,要使用LVM还需要配置内核支持LVM。RedHat默认内核是支持LVM的,如果需要重新编译内核,则需要在配置内核时,进入Multi-deviceSupport(RAIDandLVM)子菜单,选中以下两个选项:

  

  • Multipledevicesdriversupport(RAIDandLVM)
      <*>Logicalvolumemanager(LVM)Support
      然后重新编译内核,即可将LVM的支持添加到新内核中。
      为了使用LVM,要确保在系统启动时激活LVM,幸运的是在RedHat7.0以后的版本,系统启动脚本已经具有对激活LVM的支持,在/etc/rc.d/rc.sysinit中有以下内容:
      #LVMinitialization
      if[-e/proc/lvm-a-x/sbin/vgchange-a-f/etc/lvmtab];then
      action$"SettingupLogicalVolumeManagement:"/sbin/vgscan&&/sbin
      /vgchange-ayfi
      其中关键是两个命令,vgscan命令实现扫描所有磁盘得到卷组信息,并创建文件卷组数据文件/etc/lvmtab和/etc/lvmtab.d/*;vgchange-ay命令激活系统所有卷组。
      四、创建和管理LVM
      要创建一个LVM系统,一般需要经过以下步骤:
      1、创建分区
      使用分区工具(如:fdisk等)创建LVM分区,方法和创建其他一般分区的方式是一样的,区别仅仅是LVM的分区类型为8e。
      2、创建物理卷
      创建物理卷的命令为pvcreate,利用该命令将希望添加到卷组的所有分区或者磁盘创建为物理卷。将整个磁盘创建为物理卷的命令为:
      #pvcreate /dev/hdb
      将单个分区创建为物理卷的命令为:
      #pvcreate /dev/hda5
      3、创建卷组
      创建卷组的命令为vgcreate,将使用pvcreate建立的物理卷创建为一个完整的卷组:
      #vgcreate web_document/dev/hda5 /dev/hdb
      vgcreate命令第一个参数是指定该卷组的逻辑名:web_document。后面参数是指定希望添加到该卷组的所有分区和磁盘。vgcreate 在创建卷组web_document以外,还设置使用大小为4MB的PE(默认为4MB),这表示卷组上创建的所有逻辑卷都以4MB为增量单位来进行扩充 或缩减。由于内核原因,PE大小决定了逻辑卷的最大大小,4MB的PE决定了单个逻辑卷最大容量为256GB,若希望使用大于256G的逻辑卷则创建卷组 时指定更大的PE。PE大小范围为8KB到512MB,并且必须总是2的倍数(使用-s指定,具体请参考manvgcreate)。
      4、激活卷组
      为了立即使用卷组而不是重新启动系统,可以使用vgchange来激活卷组:
      #vgchange -ay web_document
      5、添加新的物理卷到卷组中
      当系统安装了新的磁盘并创建了新的物理卷,而要将其添加到已有卷组时,就需要使用vgextend命令:
      #vgextend web_document /dev/hdc1
      这里/dev/hdc1是新的物理卷。
      6、从卷组中删除一个物理卷
      要从一个卷组中删除一个物理卷,首先要确认要删除的物理卷没有被任何逻辑卷正在使用,就要使用pvdisplay命令察看一个该物理卷信息:
      如果某个物理卷正在被逻辑卷所使用,就需要将该物理卷的数据备份到其他地方,然后再删除。删除物理卷的命令为vgreduce:
      #vgreduce web_document /dev/hda1
      7、创建逻辑卷
      创建逻辑卷的命令为lvcreate:
      #lvcreate -L1500 -n www1 web_document
      该命令就在卷组web_document上创建名字为www1,大小为1500M的逻辑卷,并且设备入口为 /dev/web_document/www1(web_document为卷组名,www1为逻辑卷名)。如果希望创建一个使用全部卷组的逻辑卷,则需 要首先察看该卷组的PE数,然后在创建逻辑卷时指定:
      #vgdisplay web_document | grep"TotalPE"
      TotalPE45230
      #lvcreate -l45230 web_document -n www1
      8、创建文件系统
      笔者推荐使用reiserfs文件系统,来替代ext2和ext3:
      创建了文件系统以后,就可以加载并使用它:
      #mkdir/data/wwwroot
      #mount /dev/web_document/www1/data/wwwroot
      如果希望系统启动时自动加载文件系统,则还需要在/etc/fstab中添加内容:
      /dev/web_document/www1/data/wwwrootreiserfsdefaults12
      9、删除一个逻辑卷
      删除逻辑卷以前首先需要将其卸载,然后删除:
      #umount /dev/web_document/www1
      #lvremove /dev/web_document/www1
      lvremove--doyoureallywanttoremove"/dev/web_document/www1"?[y/n]:y
      lvremove--doingautomaticbackupofvolumegroup"web_document"
      lvremove--logicalvolume"/dev/web_document/www1"successfullyremoved
      10、扩展逻辑卷大小
      LVM提供了方便调整逻辑卷大小的能力,扩展逻辑卷大小的命令是lvextend:
      #lvextend -L12G /dev/web_document/www1
      lvextend--extendinglogicalvolume"/dev/web_document/www1"to12GB
      lvextend--doingautomaticbackupofvolumegroup"web_document"
      lvextend--logicalvolume"/dev/web_document/www1"successfullyextended
      上面的命令就实现将逻辑卷www1的大小扩招为12G。
      #lvextend -L +1G /dev/web_document/www1
      lvextend--extendinglogicalvolume"/dev/web_document/www1"to13GB
      lvextend--doingautomaticbackupofvolumegroup"web_document"
      lvextend--logicalvolume"/dev/web_document/www1"successfullyextended
      上面的命令就实现将逻辑卷www1的大小增加1G。
      增加了逻辑卷的容量以后,就需要修改文件系统大小以实现利用扩充的空间。笔者推荐使用reiserfs文件系统来替代ext2或者ext3。因此这里仅 仅讨论reiserfs的情况。Reiserfs文件工具提供了文件系统大小调整工具:resize_reiserfs。对于希望调整被加载的文件系统大 小:
      #resize_reiserfs -f /dev/web_document/www1
      一般建议最好将文件系统卸载,调整大小,然后再加载:
      #umount /dev/web_document/www1
      #resize_reiserfs /dev/web_document/www1
      #mount-treiserfs /dev/web_document/www1/data/wwwroot
      对于使用ext2或ext3文件系统的用户可以考虑使用工具
      ext2resize。http://sourceforge.net/projects/ext2resize
      11、减少逻辑卷大小
      使用lvreduce即可实现对逻辑卷的容量,同样需要首先将文件系统卸载:
      #umount /data/wwwroot
      #resize_reiserfs -s -2G /dev/web_document/www1
      #lvreduce -L -2G /dev/web_document/www1
      #mount-treiserfs /dev/web_document/www1/data/wwwroot
      五、总结
      根据上面的讨论可以看到,LVM具有很好的可伸缩性,使用起来非常方便。可以方便地对卷组、逻辑卷的大小进行调整,更进一步调整文件系统的大小。
  • 分享到:
    评论

    相关推荐

      vgremove命令 删除LVM卷组

      vgremove命令用于删除LVM卷组,当要删除的卷组上已经创建了逻辑卷时,需要进行确认删除,防止误删除数据。 语法格式: vgremove [参数] 常用参数: -f 强制删除 参考实例 删除卷组vg1000: [root@linuxcool ~...

      HP系统做镜像lvm_cook(lvm卷组管理)9.0和10.0系统.doc

      lvm_cook(lvm卷组管理)9.0和10.0系统 lvm_cook(lvm卷组管理)9.0和10.0系统 lvm_cook(lvm卷组管理)9.0和10.0系统

      vgextend命令 扩展卷组

      vgextend命令用于动态扩展LVM卷组,它通过向卷组中添加物理卷来增加卷组的容量。LVM卷组中的物理卷可以在使用vgcreate命令创建卷组时添加,也可以使用vgextend命令动态的添加。 语法格式:vgextend [参数] 常用参数...

      vgconvert命令 转换指定LVM卷组的元数据格式

      vgconvert命令用于转换指定LVM卷组的元数据格式,通常将“LVM1”格式的卷组转换为“LVM2”格式。转换卷组元数据前必须保证卷组处于非活动状态,否则无法完成转换操作。 语法格式:vgconvert [参数] 常用参数: -M...

      vgdisplay命令 显示LVM卷组的信息

      vgdisplay命令用于显示LVM卷组的信息。如果不指定”卷组”参数,则分别显示所有卷组的属性。 语法格式: vgdisplay [参数] 常用参数: -A 仅显示活动卷组的属性 -s 使用短格式输出的信息 参考实例 显示...

      check_vgfree:Nagios插件,用于检查LVM卷组上的可用空间

      check_vgfree Nagios插件检查LVM卷组上的可用空间$ chmod +x check_vgfree$ ./check_vgfree --helpUsage: check_vgfree [options] try: check_vgfree --helpOptions: -h, --help show this help message and exit -c...

      学习LVM逻辑卷管理.doc

      LVM中每个磁盘分区就是一个物理卷(Physical Volume, PV),若干个物理卷可以组成一个卷组(Volume Group, VG),形成一个存储池。在卷组上可以创建逻辑卷(Logical Volume, LV),并在逻辑卷组上创建文件系统。

      LVM磁盘配置

      LVM磁盘配置和详细的操作过程 lvm卷组添加新的磁盘。

      Linux系统逻辑盘卷管理LVM详细介绍

      LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立...管理员通过LVM可以方便的调整存储卷组的大小,并且可以对磁盘存储按照组的方式进行命名、管理和分配。

      Linux服务器配置与管理:lvm逻辑卷.pptx

      将物理磁盘的空间分解为若干个物理卷,然后将多个物理卷汇聚为卷组,最后将卷组的部分或全部转化为可供用户使用的逻辑卷。逻辑卷的空间可以来自于多个物理磁盘 LVM重要的特征: 逻辑卷的空间大小能够在保持现有数据不变...

      vgcreate命令 创建卷组

      vgcreate命令用于创建LVM卷组。卷组(Volume Group)将多个物理卷组织成一个整体,屏蔽了底层物理卷细节。在卷组上创建逻辑卷时不用考虑具体的物理卷信息。 语法格式:vgcreate [参数] 常用选项: -l 卷组上...

      5.6LVM逻辑卷管理器.docx

      LVM技术是在硬盘分区和文件系统之间添加了一个逻辑层,它提供了一个抽象的卷组,可以把多块硬盘进行卷组合并。这样一来,用户无须关心物理硬盘设备的底层架构和布局,就可以实现对硬盘分区的动态调整。LVM的技术架构...

      Linux系统配置及服务管理__存储管理-逻辑卷LVM

      VG:卷组(Volume Group) LV:逻辑卷(Logical Volume) 创建LVM 准备物理磁盘 1、准备物理磁盘 [root@server0 ~]# ll /dev/sd* brw-rw----. 1 root disk 253, 32 Jun 6 17:38 /dev/sdc brw-rw-

      LVM磁盘管理

      LVM是 Logical Volume Manager(逻辑卷管理)的简写,它由Heinz Mauelshagen在Linux 2.4内核上实现、可以实现磁盘空间的动态管理,相对于普通的磁盘分区有很大的灵活性。

      物理卷、逻辑卷和卷组的关系(高清版).pdf

      文件为VISIO绘制的结构图,主要用以说明物理卷,逻辑卷以及卷组之间的关系,通过图形的方式,更简单直观的说明相互之间的关系,比文字更直接清楚,适合初次接触LVM逻辑卷管理的道友了解基本的架构,相关的操作可以...

      vgscan命令 扫描并显示卷组

      vgscan命令查找系统中存在的LVM卷组,并显示找到的卷组列表。vgscan命令仅显示找到的卷组的名称和LVM元数据类型,要得到卷组的详细信息需要使用vgdisplay命令。 语法格式:vgscan [参数] 常用参数: -d 调试模式 ...

      ubuntu server最佳方案(文字版).zip

      23.5.2 LVM卷组相关命令 360 23.5.3 LVM逻辑卷相关命令 363 23.6 添加新硬盘 365 23.6.1 插入新硬盘 365 23.6.2 配置RAID 365 23.6.3 在RAID上配置LVM 367 23.6.4 扩容文件系统 368 23.7 更换硬盘 368 23.8 ...

      5.6.1LVM逻辑卷企业实战实例.docx

      然后建立lvm的物理卷、卷组和逻辑卷,最后将逻辑卷挂载使用。 1.分区 (1)查看添加的磁盘 [root@localhost ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 40G 0 disk ├─sda1 8:1 0 286M 0 part ...

      磁盘管理高级进阶-LVM逻辑卷管理

      卷组管理(vg)2.1创建卷组—vgcreate2.2查看卷组—vgscan & vgdisplay2.3增加卷组容量–vgextend2.4减小卷组容量–vgreduce2.5删除卷组—vgremove3. 逻辑卷管理(lv)3.1创建逻辑卷–lvcreate3.2查看逻辑卷—...

      LVM简要操作说明

      LVM简要操作说明;含创建和拓展实操例子。 LVM --logical volume manager 逻辑卷管理器。 LVM的优点是可以动态调整存储空间。...VG: volume group 卷组 需创建。 LV: logical volume 逻辑卷 需创建。

    Global site tag (gtag.js) - Google Analytics