LVM逻辑卷管理

前言

    通常情况下,在操作系统上新建了一个分区并在此分区创建文件系统后,该文件系统的大小就固定了。假如要增加此文件系统的大小,我们不得不添加一块硬盘并重新分区,创建文件系统,然后把原文件系统的数据完整复制过来。如果第二次分区时分配的空间太大,用不完又浪费该怎么办呢?重复此前的流程又将花费大量的时间,有没有更便捷的办法呢?下面介绍的逻辑卷管理器就是解决这个问题的。

一、简介

    LVM(Logical Volume Manager),译为逻辑卷管理器。所谓卷(Volume),意味着可伸缩,我们可以弹性调整文件系统的容量大小,并且不会损坏数据。LVM是对磁盘管理的一种机制,是建立在硬盘和分区之上、文件系统之下的一个逻辑层;LVM的工作原理其实很简单,它就是通过将底层的物理硬盘抽象的封装起来将一个或多个底层块设备组成一个逻辑的工具。

lvm.jpg

1、Physical Volume(PV),物理卷:创建分区时,标记分区类型为8e后,就可以将该分区做成物理卷供LVM使用了。可以用任意块设备做成物理卷,单个分区、整块硬盘、RAID设备都可以。

2、Volume Group(VG),卷组:顾名思义,就是将一个或多个PV组合为一个卷组,以PE为存储单位。一个VG至少包含一个PV,VG可以创建多个。

3、Physical Extent(PE),物理区域:PE是整个LVM中可分配的最小存储单元,大小在创建卷组时指定且确定后不能更改;同一卷组的PE大小需一致。新的PV加入卷组后,PE的大小会自动更改为原卷组PE的大小。

4、Logical Volume(LV),逻辑卷:建立在卷组的基础上,卷组中空闲的PE可分配给LV使用,创建LV后可通过增加或减少PE来动态扩展和缩小空间大小。LV可以直接创建文件系统并挂载使用。两种写入模式:线性模式(linear)、交错模式(triped)。

二、物理卷(PV)的常用管理命令

pvcreate   #创建一个物理卷
pvchange   #修改物理卷的属性
pvresize   #调整一个PV的大小
pvremove   #删除一个PV
pvdisplay  #显示PV的属性信息
pvmove     #移动PE到指定物理卷
pvscan     #搜索所有磁盘上的物理卷
pvs        #显示PV的简要信息

    示例1:创建3个PV

[root@qin ~]# parted /dev/sdb mklabel msdos
[root@qin ~]# parted /dev/sdb mkpart primary ext2 0G 10G
[root@qin ~]# parted /dev/sdb mkpart primary ext2 10G 20G
[root@qin ~]# parted /dev/sdb mkpart primary ext2 20G 30G
[root@qin ~]# pvcreate /dev/sdb{1..3}

    示例2:将PV1上的数据迁移到PV2,然后删除该PV。

[root@qin ~]# pvmove /dev/sdb1 /dev/sdb2    #注意:两个PV必须在同一卷组内
[root@qin ~]# pvremove /dev/sdb1     #删除PV前要确保该PV没有在任何卷组中

三、卷组(VG)的常用管理命令。

vgcreate    #创建卷组
    -l:设置可容纳的LV最大数,默认为255
    -p:设置包含PV的最大数,默认为255
    -s:设置PE大小,默认为4M
vgextend    #扩展VG大小
vgdisplay   #显示VG属性信息
vgchange    #修改VG属性信息
vgreduce    #缩减VG大小
vgremove    #删除VG
vgscan      #搜索所有磁盘上的卷组
vgs         #显示VG简要信息
vgck        #检查VG元数据

    示例1:创建一个卷组,要求PE大小为8M,名称为Myvg,最大支持LV不能超过10个,包含的PV不能超过2个

[root@qin ~]# vgcreate -s 8M -l 10 -p 2 Myvg /dev/sdb{1,2}
[root@qin ~]# vgdisplay Myvg     #查看VG属性信息验证结果
  --- Volume group ---
  VG Name               Myvg     #VG名称
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                10        #可以看到,支持最大LV数为10个
  Cur LV                0
  Open LV               0
  Max PV                2         #支持最大PV数为2个
  Cur PV                2
  Act PV                2
  VG Size               18.61 GiB
  PE Size               8.00 MiB    #PE大小
  Total PE              2382
  Alloc PE / Size       0 / 0   
  Free  PE / Size       2382 / 18.61 GiB
  VG UUID               LdOZtc-4ccd-5ryh-Ux7V-O29f-CEhc-VVuuSF

    示例2:扩展Myvg大小

[root@qin ~]# vgextend Myvg /dev/sdb3    #由于此前定义了VG的最大PV数,无法扩展
  No space for '/dev/sdb3' - volume group 'Myvg' holds max 2 physical volume(s).
  Unable to add physical volume '/dev/sdb3' to volume group 'Myvg'.
[root@qin ~]# vgchange -p 3 Myvg    #修改VG属性
[root@qin ~]# vgextend Myvg /dev/sdb3    #扩展VG成功

    示例3:缩减Myvg大小;然后删除Myvg

[root@qin ~]# vgreduce Myvg /dev/sdb2    #注意:把PV移出卷组时要保证该PV数据已迁移或未使用
[root@qin ~]# vgchange -an Myvg        #标记Myvg为不可用状态
[root@qin ~]# vgremove Myvg        #不论VG包含多少PV都可删除,前提是该VG上没有任何LV,如果有就需要先删除LV

四、逻辑卷(LV)的常用管理命令

lvcreate    #创建LV
    -l:设置LV大小,以PE为单位
    -L:设置LV大小,以字节为单位
    -n:设置LV名称
    -p:设置LV权限读写权限,默认为可读可写
    -s:设置一个快照卷,对一个已存在的LV做快照
lvextend    #扩展LV大小
lvreduce    #缩减LV大小
lvchange    #修改LV属性信息
    -ay:标记LV为可用状态
    -an:标记LV为不可用状态
lvremove    #删除LV
lvdisplay   #显示LV属性信息
lvscan      #搜索所有磁盘上的逻辑卷
lvs         #显示LV简要信息

    示例1:创建一个LV,要求大小为10G,名称为lv001,指定卷组为Myvg。

[root@qin ~]# lvcreate -L 10G -n lv001 Myvg

    示例2:扩展lv001的大小,要求增加5G空间大小

#方法一:
[root@qin ~]# lvextend -L +5G /dev/Myvg/lv001
#方法二:
[root@qin ~]# lvextend -L 15G /dev/Myvg/lv001

    示例3:缩减lv001的大小,要求减少8G空间大小

[root@qin ~]# lvreduce -L -8G /dev/Myvg/lv001    #注意,缩减前需确保LV为卸载状态

    示例4:删除lv001

[root@qin ~]# lvchange -an /dev/Myvg/lv001     #标记lv001为不可用状态
[root@qin ~]# lvremove /dev/Myvg/lv001

    示例5:对lv001创建一个快照卷

[root@qin ~]# lvcreate -L 10G -n lv001_snap -p r -s /dev/Myvg/lv001    #必须跟目标逻辑卷在同一卷组中

五、实验:在线扩容和离线缩减逻辑卷的大小。

    1、查看当前系统挂载及逻辑卷的相关信息。

lvm.png

    2、缩减/data的空间大小,并验证查看。

lvreduce.png

注意:缩减逻辑卷大小前必须先缩减文件系统的大小,而且要强制检查文件系统

      缩减不能少于已经存储的所有数据空间的大小

22.jpg

33.png

3、扩展逻辑卷大小

    先查看当前LV大小,卷组可用空间,文件系统大小

44.png

    然后扩展逻辑卷大小

55.png

    最后扩展文件系统大小

66.png

总结:

    LVM的添加顺序:PV–>VG–>LV

    LVM的删除顺序:LV–>VG–>PV

    逻辑卷可在线扩展,但必须离线缩减

    缩减很危险,不到万不得已不要执行缩减操作!!!

    扩展逻辑卷后文件系统也要扩容

    缩减逻辑卷前要先缩减文件系统

原创文章,作者:秦,如若转载,请注明出处:http://www.178linux.com/3673

(0)
上一篇 2015-05-04 14:45
下一篇 2015-05-04 18:05

相关推荐

  • 也许你根本不会用百度搜索

    搜索引擎可以帮助使用者在Internet上找到特定的信息,但它们同时也会返回大量无关的信息。但是如果多使用一些技巧,你将发现搜索引擎会花尽可能少的时间找到你需要的确切信息。 1.简单查询 这个就是最简单便捷的使用方式,其实也是我们大多数人平时使用百度或者其他搜索引擎的方式。比如你想查培训学校,那么你的第一反应肯定就是在百度里输入【挖掘机】【挖掘机学校】【蓝翔…

    2015-03-02
  • N26-第七周作业-邢岩

    马哥门徒-N26-邢岩      今天看了一本书《运维前线:一线运维专家的运维方法、技巧与实践》,有一张运维全平台规划体系如下:      看完这张图,瞬间觉得自动化运维真的是很庞大精深,我只是在运维这片海洋的岸边,刚刚迈入一只脚步而已,究竟什么是山,什么是水,还不得而知。就让我化身一条小鱼,在这片…

    2017-03-11
  • 进程管理

    Process Manager 工作管理  jobs ctrl+z,& bg,fg nohup 进程,资源管理  查看:pstree,ps,top,vmstat,pmap 查询:pgrep,pidof,fuser,lsof 管理:kill,nice,renice 管理软件or命令  htop glances dstat …

    Linux干货 2016-04-11
  • 利用varnish构建httpd缓存服务器

    varnish如何存储缓存对象:     file: 单个文件;不支持持久机制;     malloc: 缓存在内存中;     persistent:基于文件的持久存储;(此方式不建议使用) vcl:配置缓存系统的缓存机制;【线程中缓存功…

    Linux干货 2016-06-20
  • 海量数据处理算法—Bloom Filter

    1. Bloom-Filter算法简介         Bloom-Filter,即布隆过滤器,1970年由Bloom中提出。它可以用于检索一个元素是否在一个集合中。        Bloom Filter(BF)是一种空间效率很高的随机数据结构,它利用位数组很简洁地表…

    Linux干货 2015-10-22
  • 第一周的学习总结

       本人是Linux 小白,0基础。加入马帮开始Linux之旅。由于完全不懂Linux,所以在学习的过程中,每课都要看上2遍。接下来说说我第一周所学的内容。 首先是了解到了计算机基础知识,计算机的组成部分、CPU架构类型、其他外围设备。 操作系统基础知识进程管理、内存管理、网络管理、驱动管理、安全管理等。 Linux的起源、发行版以及构…

    Linux干货 2016-02-28