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
下一篇 2015-05-04

相关推荐

  • nginx 配置参数说明和实验

    nginx.org 实验版本: 1.10.2 相关命令: # nginx -t //检查配置文件格式 #nginx -s reload //重新载入配置文件 实验: 主配文件大概组成 主配置文件的设定 /etc/nginx/nginx.conf events{..} //事件驱动相关 http{..} //网站服务相关 全局配置段解读与实验: user ng…

    2017-05-12
  • 计算机基础知识

    命令总结 echo :回显 echo $PATH:显示命令定义的路径变量 Init 3,5:关闭和打开图形界面 chvt切换虚拟终端(此命令只能本机切换) startx从新打开图形界面 powerr off关机 hostname 显示当前主机名 lsb_release -a显示操作系统版本 lscpu显示cpu信息 cat查看 who am显示当前用户身份 …

    Linux干货 2016-07-26
  • N22期-第6周作业

    1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; cp /etc/rc.d/rc.sysint /tmp vim /tmp/rc.sysinit :%s@^[[:space:]]\+@#&@g 2、复制/boot/grub/grub.conf至/tmp目…

    Linux干货 2016-10-09
  • 逻辑卷管理器LVM

    一、LVM逻辑卷管理     lvm(Logical Volume Manage,逻辑卷管理)的重点在于可以弹性的调整filesystem的容量,而并非在于数据的存储效率及安全上面。需要文件的读写效能或者是数据的可靠性是RAID所考虑的问题。LVM可以整合多个实体partition在一起,让这些partitions看起…

    Linux干货 2016-09-02
  • LVS入门

    随着互联网进入寻常百姓家,网络流量愈来愈大,大规模的网路访问如果都使用一个服务器提供服务,那么网络通讯注定会拥堵不堪。为了解决这些问题,达到使网络流量均衡地分散到各个服务器上的目的,一些技术大牛发明了LVS负载均衡技术。   LVS简介   LVS(Linux Virtual Server)即为Linux虚拟服务器,使由章文嵩博士主导开发…

    Linux干货 2017-05-09
  • ansible部署KeepAlived动态站点

    一、设计原因 利用ansible可以自动化部署KeepAlived 的双方模型(其中包括两个动态的站点),多组服务器需要一样的部署时 可以利用ansible写的程序来代替重复性的操作。 二、设计拓扑结构及服务器详情   三、详细步骤 1、环境的搭建 (1)安装ansible,同时配置私钥免密码进行通信 [root@localhost ~]# ssh…

    2015-05-13