Linux逻辑盘卷管理(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卷

    1.查看系统中磁盘的可用空间并且将分区标识设为8e
    #fdisk /dev/hda         ;如果为SCSI或SATA的为/dev/sda
    输入p查看分区
    执行t命令,以便通知fdisk我要修改分区的系统标识符数据
    指定要修改分区编号
    直接指定新的系统标识符为8e
    输入w保存
    最后重启(不用重启也可以输入partprobe)
    2.建立物理卷
    #pvcreate /dev/hda13     ;前面设定分区的编号为13
    Physical volume "/dev/hda13" successfully created
    3.建立卷组
    #vgcreate mainVG /dev/hda13
    Volume group "mainVG" successfully created
    4.建立逻辑卷
    以下是我建立一个100MB大小的逻辑卷空间的示范:
    #lvcreate -L 100M -n 1stLV mainVG
    Logical volume "1stLV" created
    建立出逻辑卷后.就可以把逻辑卷当作一个分区了,例如在逻辑卷上建立文件系统.挂载这个文件系统.
    值得注意的是.建立完千万别忘了建立文件系统
    以我的LVM为例
    #mkfs -t ext3 /dev/mainVG/1stLV
    然后挂载就OK了
    卸载卷的方法:
    卸载物理卷:pvremove PVDEVICE
    卸载卷组:vgremove VGNAME
    卸载逻辑卷:lvremove LVDEVICE
    卸载的顺序:先逻辑然后卷组最后物理卷
    卸载前别忘了备份

-----------------------------------------------------------------------------------------------------------------------------------

LV示意图:

一个物理卷,包含了许多物理分区:

    +-----[ Physical Volume ]------+
    | PE | PE | PE | PE | PE | PE |
    +------------------------------+

    一个卷组,包含了2个物理卷(PV)有6个物理分区:

    +------[ Volume Group ]-----------------+
    | +--[PV]--------+ +--[PV]---------+ |
    | | PE | PE | PE | | PE | PE | PE | |
    | +--------------+ +---------------+ |
    +---------------------------------------+

    我们现在做更进一步扩展:

    +------[ Volume Group ]-----------------+
    | +--[PV]--------+ +--[PV]---------+ |
    | | PE | PE | PE | | PE | PE | PE | |
    | +--+---+---+---+ +-+----+----+---+ |
    | | | | +-----/ | | |
    | | | | | | | |
    | +-+---+---+-+ +----+----+--+ |
    | | Logical | | Logical | |
    | | Volume | | Volume | |
    | | | | | |
    | | /home | | /var | |
    | +-----------+ +------------+ |
    +---------------------------------------+

-----------------------------------------------------------------------------------------------------------------------------------
       好了,我们来创建一个lv。

  比如说,在一个物理硬盘/dev/hda上,我们需要将/dev/hda5,/dev/hda6作为pv

  1 fdisk划分hda5,hda6,并且将这两个分区的标志(键入t改)改为(0x)8e

  然后用partprobe通知OS磁盘分区的变化

  2 pvcreate /dev/hda5 /dev/hda6(-s xxM可设定PE大小)

  创建pv hda5,hda6

  3 vgcreate rootvg /dev/hda5 /dev/hda6

  将hda5,hda6加入逻辑卷组rootvg中

  4 lvcreate -L 100M -n lv1 rootvg

  从我们的rootvg中,创建一个100M的逻辑卷lv1

  5 mkfs.ext3 /dev/rootvg/lv1

  格式化我们的lv1,文件系统用ext3

  6 mkdir /mnt/lvm;mount /dev/rootvg/lv1 /mnt/lvm

  将lv1挂载到/mnt/lvm下

  好了,这样一个创建lv的例子完成

  4) 如何动态放大/缩小一个逻辑卷/逻辑卷组

  我们如何放大lv?比如上面的lv1?流程:

  1 lvextend -L+200M /dev/rootvg/lv1

  将lv1增加200M

  2 ext2online /dev/rootvg/lv1

  让lv1容量更改立即生效

  减小lv,网上很多文章介绍的是ReiserFS,这里我们是ext3文件系统,如果我们需要减少50M:

  1 umount /mnt/lvm

  这里,需要先卸载分区

  2 mke2fs -n /dev/rootvg/lv1

  计算lv1的block数

  这里一定要加-n参数,这是计算lv1的block数,而不是格式化分区,注意。

  并且注意,从MB->KB这些的计算,都是乘1024,不是1000,这是个细节问题

  3 计算减少50M后的block数。从mke2fs -n /dev/rootvg/lv1,我们可以得出2个需要的信息:

  Block size和blocks,这两个数的乘积就是分区大小A(单位字节),

  我们把需要减小的容量50M换算成字节B,然后A-B的结果除以Block size,就是剩余的block数

  4 resize2fs -f /dev/rootvg/lv1 剩余的block数

  调整文件系统大小

  5 lvreduce -L-50M /dev/rootvg/lv1

  调整lv分区大小,减小50M

  6 重新mount,df察看一下容量的减小

  动态加大VG:

  这里我们新增一个PV并加入VG

  1 fdisk增加一个(0x)8e标志的分区/dev/hda7

  2 vgextend rootvg /dev/hda7

  好了,vg增大了

  缩小逻辑卷组VG:

  1 搬移PV中的资料(只限于同一VG中)

  #pvmove [-n ] []

  如

  #pvmove /dev/hda5 /dev/hda6

  将VG中pv hda5的内容搬移到hda6中

  pvmove /dev/hda5(也可以这样,lvm决定hda2的内容被复制到哪里)

  2 vgreduce rootvg /dev/hda5

  把vg hda5移除

  5) 如何删除逻辑卷/逻辑卷组

  删除VG流程:

  1 umount /挂接点

  2 lvremove /dev/rootvg/lv1

  移除逻辑卷,这里是lv1

  3 vgchange -a n rootvg(关闭rootvg)

  4 vgremove rootvg

  移除rootvg

  6) lvm相关命令

  这个表格,你可以在RHCE_Study_Guide.pdf上找到

  Physical Volume Volume Group Logical Volume

  scan pvscan vgscan lvscan

  create pvcreate vgcreate lvcreate

  display pvdispaly vgdisplay lvdisplay

  remove pvremove vgremove lvremove'

 ----------------------------------------------------------------------------------------------------------------------------------------------------------------

要创建一个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。

  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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值