ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 【转】lvm(逻辑卷管理器)的介绍和常用功能流程实验

【转】lvm(逻辑卷管理器)的介绍和常用功能流程实验

原创 Linux操作系统 作者:zroc 时间:2012-02-08 16:51:15 0 删除 编辑
1) 前言
2) lvm组成和概念
3) 如何使用lvm,创建逻辑卷的流程和实例
4) 如何动态放大/缩小一个逻辑卷/逻辑卷组
5) 如何删除逻辑卷/逻辑卷组
6) lvm相关命令
 
 1) 前言 
一直想写一个简单的lvm方面的文章,可以作个背忘,主要以流程和实例为主,希望文章能起到抛砖引玉的  作用.  LVM=(Logical Volume Mamager)逻辑卷管理器,LVM最先是用在IBM AIX系统上,它的最大作用是可以动态分  配磁盘分区,并且可以让多个分区或者物理硬盘作为一个逻辑卷(相当于一个逻辑硬盘).这种机制可以让磁  盘分区容量划分变得很灵活.  我们先举个简单例子.比如我们有一个硬盘/dev/hda,分了3个主分区:hda1,hda2,hda3,后面磁盘空间没有  划分,分别对应的挂载点是/boot,/,/home,如果我们的/home空间不够了,怎么办?传统的方法是在未划分的  空间中分割一个分区,挂载到/home下,并且把hda3的内容复制到这个新分区上.或者把这个新分区挂载到另  外的挂载点上,然后在/home下创建链接,链接到这个新挂载点.  这两种方法都不大好,第一种方法浪费了hda3,并且如果后面的分区容量小于hda3怎么办?第二种方法不大  浪费容量,但是每次要额外创建链接,比较麻烦.那么,如果用lvm呢?lvm的好处在于,可以动态放大一个逻辑  卷(相当于一个逻辑分区),也就是说,hda3如果是一个逻辑分区,比如/dev/rootvg/lv3,那么lv3可以被动态  放大.这样就解决了动态容量调整的问题.当然,前提是系统已设定好lvm支持,并且需要动态缩放的挂载点  对应的设备是逻辑卷.  在这里,我所有例子都是基于RHEL 4/CentOS 4.x和LVM2的。
 
 2) lvm组成和概念 
PV(Physical Volume)     物理卷。可以是单独磁盘,也可以是硬盘分区
VG(Volume Group)        卷组。是PV的组合,可以看成单独的逻辑磁盘
LV(Logical Volume)       逻辑分区。相当于物理分区的/dev/hdaX
PE(Physical Extent)       物理范围。VG单元,类似于RAID的条带大小。             
           当多个PV组成一个VG时,LVM会在所有PV上做类似格式化的动作,
           将每个PV切成一块块的空间,这一块块的空间就称为PE, 通常是4MB。
LE(Logical Extent)        逻辑范围。LV的组成单位。大小为PE的倍数(通常为1:1)       
那么,最常用的3个名词和意义列表如下:
名词        意义                操作系统对应设备
PV        物理卷                /dev/hdaX
VG        卷组                   /dev/     (通常是个目录)
LV        逻辑卷                /dev// 
如果我们要使用lvm,顺序是pv->vg->lv。 就是说,我们先创建一个物理卷(对应一个物理硬盘分区或者一个物理硬盘),然后把这些分区/硬盘加入  一个卷组中(相当于一个逻辑上的大硬盘),然后我们在这个大硬盘上划分分区lv(逻辑上的分区,就是逻  辑卷) 这样,我们把lv逻辑卷格式化以后,就可以像使用一个传统分区那样,把它挂载到一个挂载点上,需要的  时候,这个逻辑卷可以被动态缩放。  我们可以用一个长方蛋糕来说明这个对应关系。物理硬盘相当于一个长方蛋糕,我们把它切割成许多快,  每个小块相当于一个pv,然后我们把其中的某些pv重新放在一起,抹上奶油,那么这么些个pv的组合就是  一个新的蛋糕,也就是vg。最后,我们切割这个新蛋糕vg,切出来的小蛋糕就叫做lv。  有一点需要注意,就是/boot区不可以是lvm,因为引导程序lilo/grub并不能识别lvm,就像/boot同样不可以是软raid设备一样。 
 
3) 如何使用lvm,创建逻辑卷的流程和实例 
 
好了,我们来创建一个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           lvremo    

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8477629/viewspace-715854/,如需转载,请注明出处,否则将追究法律责任。

下一篇: linux_nmon监控方法
请登录后发表评论 登录
全部评论

注册时间:2011-12-14

  • 博文量
    32
  • 访问量
    131437