lvm(逻辑卷管理器)的介绍和常用功能(转载)

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 组成和概念

这里参考了IBM 林彥明 (Alex Lin) <>)

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
        计算lv1block数
        这里一定要加-n参数,这是计算lv1block数,而不是格式化分区,注意。
        并且注意,从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        重新mountdf察看一下容量的减小

动态加大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
        将VGpv 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

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

转载于:http://blog.itpub.net/444614/viewspace-573253/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值