LVM详解

一、概述

    LVM全称为Logical Volume Manager,即逻辑卷管理器。LVM可以弹性的调整文件系统的容量,可以将多个物理分区整合在一起,并且根据需要划分空间或动态的修改文件系统空间。

    LVM有两个版本: lvm,lvm2

二、LVM的相关概念

    1、物理卷(PV)

        物理卷是LVM的最底层的元素,组成LVM的物理分区就是PV。

    2、卷组(VG)

        将各个独立的PV组合起来,所形成的一个存储空间称为VG;VG的大小就是整个LVM的空间大小。

    3、逻辑卷(LV)

        最终可以被用户格式化、挂载、存储数据的操作对象就是LV;LV与分区相类似,只不过LV可以理加灵活的调整容量。

    4、物理扩展块(PE)

        PE类似与分区中block的概念,也就是LVM的最小存储单位,默认大小为4M;可以通过调整PE块的数量来定义LV的容量。

    5、快照(snapshot)

        快照用于保存原卷上有变化的数据。快照刚刚被创建时其内容与原卷是一模一样的,只有在原卷中的数据发生变化时,快照才会将被改动的数据的原数据保存起来。

三、LVM实际操作

    1、创建PV

        首先创建分区,分区的类型要更改为8e。

1.png

1.png

        上图中将4个分区创建为4个PV;可以使用以下命令来进行PV的查看:

2.png

    2、创建VG

3.png

        上图中使用了两个PV来创建了一个VG,其中"testvg"为VG的名称;下面来查看一下VG的详细信息

4.png

        在创建VG时,也可以指定PE的大小,如下图所示:

5.png

    3、创建LV

        查看可用VG信息:

6.png

         由上图可以看出,刚刚创建了个两个VG,容量分别为5G和2G,下面我们就在两个VG上分别创建lv;

7.png

        参数说明:

            -L:指定逻辑卷的容量;

            -n:指定逻辑卷的名称;

            -l:指定逻辑卷占用的PE数量;

        创建一个LV,使用PE的数量定义LV的容量:

8.png

         由于在创建VG时定义了每个PE的容量为16M,所以创建的LV的容量为16M*40=640M。

    4、挂载LV

        在对LV进行格式化、挂载之前先说明一下lv的访问路径问题。

        可以使用两种路径来访问lv:

            a、/dev/VG_NAME/LV_NAME

                如:/dev/testvg/tlv

            b、/dev/mapper/VG_NAME-LV_NAME

                如:/dev/mapper/testvg_tlv

            以上两路径均为符号链接,指向的文件为/dev/dm-#,如下图所示:

1.png

2.png

    5、扩展逻辑卷

        步骤:

            1)先确定扩展的目标大小,并确保对应的卷组中有足够的空间;

            2)扩展物理边界,使用lvextend命令;

            3)扩展逻辑边界,使用resize2fs命令。

        演示:

            将逻辑卷tlv扩展到1G:

1.png

            参数说明:

                -L [+] #:指定扩展的容量;如果带+号,表示扩展的容量是在原来的基础上加上#的容量;不带+号,表示扩展容量到#。

                -l [+] #:指定扩展的容量;如果带+号,表示扩展的容量是在原来的基础上加上#个PE的容量;不带+号,表示扩展到#个PE的容量。

1.png

            扩展文件系统的容量到1G:

2.png

        上面的实例中是在VG中还有剩余空间的情况进行的LV扩展,那么如果VG空间已经全部用完,这时再想增加扩展逻辑卷应该将新的PV加入到VG中以获得更多的空间。

1.png

        上图中如果testvg已经没有剩余空间了,这时可以使用vgextend命令来扩展VG。

2.png

        这样就可以对LV进行扩展了。                  

    6、缩减逻辑卷:

        步骤:

            1)先确定缩减后的目标大小,并确保目标逻辑卷中有足够的空间可用;

            2)卸载逻辑卷,并要执行强制检测,使用e2fsck -f命令;

            3)缩减逻辑边界,使用resize2fs命令;

            4)缩减物理边界,使用lvreduce命令。

        演示:

            将逻辑卷tlv空间缩减到1G。

1.png2.png

3.png

4.png

5.png

    注意:在扩展、缩减逻辑卷时除了使用上面用到的lvextend和lvreduce外,还可以使用lvresize命令,这几个命令的用法类似,就不再进行演示了,更多的使用方法可自行查看man手册。

    7、卷的移除

        1)移除逻辑卷

1.png

        2)移除卷组

2.png

        3)移除物理卷

3.png

        上面的实例中我们将拥有3个PV的VG整个移除,如果我们只想移除VG中的个别PV可以进行如下操作:

4.png

5.png

        再来看一种情况,如下图,卷组test1vg中拥有一个逻辑卷t1lv,现在要求在不对t1lv进行任何操作的情况下移动物理卷/dev/sdd1。

1.png

        我们先来直接移除/dev/sdd1:

1.png

        结果提示此PV正在使用,来看一下PV的信息:

2.png

        由于/dev/sdd1有被占用的PE,如果想要移除此PV,需要先将PE块的移动到其它的PV上:

3.png

        再来移除/dev/sdd1:

4.png

    命令总结:

        PV:

            pvcreate,pvs,pvdisplay,pvremove,pvmove,pvscan

        VG:

            vgcreate,vgs,vgdisplay,vgremove,vgscan,vgextend,vgreduce

        LG:

            lvcreate,lvs,lvdisplay,lvremove,lvextend,lvreduce,lvresize,lvscan

        LVM的命令比较简单,具体的参数也就没有做太多的说明。

四、创建快照卷

    创建快照与创建逻辑卷类似,使用-s选项,后面指明是对哪个逻辑卷操作即可。

1.png

2.png3.png

    结果中两个卷是一模一样的,再看一下快照卷的使用情况:

4.png

    下面对原卷进行一些操作:

5.png

    快照卷已经自动将原卷中改动的数据备份了,如需恢复只需将快照卷的内容复制也来即可。

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

(0)
petmasterpetmaster
上一篇 2015-04-27 22:13
下一篇 2015-04-29 14:30

相关推荐

  • Centos7下的systemd管理

    systemd简介 Systemd是由红帽公司的一名叫做Lennart Poettering的员工开发,systemd是Linux系统中最新的初始化系统(init),它主要的设计目的是克服Sys V 固有的缺点,提高系统的启动速度,systemd和upstart是竞争对手,ubantu上使用的是upstart的启动方式,centos7上使用systemd替换…

    Linux干货 2016-09-23
  • 推荐-​以各种方式实现yum源,简单暴力,绝对实操干货!

    以各种方式实现yum源,简单暴力,绝对实操干货! 科普:yum不是程序包安装工具,而是rpm包前端管理工具,通过yum可以更好的管理rpm的安装卸载 以各种方式实现yum源,简单暴力,绝对实操干货! 一、本地yum源之“挂载光盘镜像实现”! 二、本地yum源之“挂载本地磁盘上的镜像文件”! 三、如能上网,实现自定义指定镜像网站yum源 四、炸天重磅来袭!!!…

    Linux干货 2016-04-11
  • N25-第九周作业

    第九周 1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; #!/bin/bash # sum_login=0 sum_nologin=0 for i in $(awk -F: ‘{print $7}’ /etc/passwd);do if…

    Linux干货 2017-03-10
  • 网络服务基础理论

    最近学习了有关网络管理的有关知识,所以给也在学习这些知识的童鞋分享一下我的一些经验。 听了这几天课,总结了几个前提。 有关网络的通信均是基于数据传输的,且数据均是二进制格式的流式数据。 在网络中需要把大包分成小包, 每传一个包都需要有三个地址,由内向外为端口号、IP地址、MAC地址。端口号确定应用,IP确定网段,MAC确定广播域中的某个网卡。 OSI模型 &…

    Linux干货 2017-09-01
  • bash脚本编程实例

    bash脚本编程实例 1.写一个脚本 接受一个以上文件路径作为参数 显示每个文件拥有的行数 总结说明本次共为几个文件统计了其行数 #!/bin/bash # read -p “please input some paths:” paths if [ -z $paths ];then echo “There are not any paths inputtin…

    Linux干货 2017-08-14
  • 博客作业-N22第二周

    1、linux上的文件管理类命令都有那些,其常用的使用方法及其相关示例演示。 答: cp 复制文件 [root@localhost network-scripts]# cp ifcfg-eno16777736 ifcfg-eno.bak [root@localhost network-scripts]# ls ifcfg-eno16777736  …

    Linux干货 2016-08-22

评论列表(1条)

  • stanley
    stanley 2015-04-28 19:19

    赞,非常棒。如此神速提升请问如何实现的?