创建,扩展,缩减LVM2及快照

  • 相关概念

    lvm英文 Logical Volume Manager,逻辑卷管理类似于raid,但又有别于raid, 它是能够将一个或多个底层块设

    备组织成一个逻辑设备的模块不具备容错功能,任一设备损坏或分区损坏,对数据是致命的;它主要有三个部分

    组成,分别是pv,vg和lv。

        PV:Physical Volume物理卷,组成LVM的最底层的元素,也可理解为物理分区,但构建lvm不能直接使用               Linux物理分区,得先将物理分区期转化为最小单位pv,使用pv管理工具pvcreate /dev/DEVICE

        VG:Volume Group卷组,将每个独立的PV组合起来形成的一个存储空间就称为VG,在一个VG空间中可以构

            建多个逻辑卷,即LV,创建VG使用vgcreate  [-                

            s [kKmMgGtTpPeE]] VolumeGroupName  PhysicalDevicePath [PhysicalDevicePath…]

        LV:Logical Volume逻辑卷,在VG的存储空间中取一段空间用来构建LV,它的空间依赖是VG,也就是说如

            果要扩展LV,首先是得保证VG的物理卷组是不是有足够的空间。创建完成之后这个LV便可以使用,可

            以创建文件系统,可以挂载,直接当一个普通分区来使用,命令 lvcreate -L #[mMgGtT] –

             n NAME VolumeGroup

        PE:Physical Extent物理扩展块,基于物理卷组是LVM的最小存储单位,默认为4M,在创建VG的时候

            VGCREATE -s是指定设置单个PE的存储单位为多大

blob.png

  • 创建LVM

    1.第一步首先创建PV,必须要有空闲的分区,如没有,则相应的创建,如图,我在我自己的机器上创建了2个类型为LVM的分区,/dev/sda5和/dev/sda6 

blob.png

    2.在分区的基础上创建PV,命令:pvcreate /dev/sdc{5,6}

blob.png

    3.创建VG,将创建的PV组合成一个物理卷组,在这里可以指定最小单位块的大小,也就是PE的大小,例如创建一个PE大小为8Mb的VG。命令:vgcreate -s 8M vgname /dev/sdc{5,6},使用vgs可以简略的显示创建vg的情况,使用vgdisplay可以详细显示

blob.png

    4,创建LV,在步骤3中,我总共创建的VG物理卷组的大小是20G,因此,我构建逻辑卷的空间范围只有20G,可以在20G的范围内创建多个LV,例如我再创建2个LV分别是18G和2G,使用命令:lvcreate -L 18G -n lvname1 /dev/vgname 和lvcreate -L 2G -n lvname2 /dev/vgname,如下图,可以看到当我创建完一个18G的lv之后再创建12G的明显空间不够了

blob.png

    5.一个完整的逻辑分区已经创建完成了,为了能正常使用,还必须给这个逻辑分区创建文件系统,然后挂载,我以18G的lvname1为例,使用命令:mke2fs -t ext4 /dev/vgname/lvname1 ,以及挂载且重启自动挂载,在/etc/fstab上添加规则,然后mount -a自动挂载/etc/fstab中的项,至此,一个完整的LVM搭建完成

blob.png

blob.png

blob.png

  • 扩展LVM

    之前创建lv的时候,空间我已经使用完了,因此如果要扩展LVM则需先删掉之前创建的lvname2,使用命令:

    lvremove /dev/vgname/lvname2,然后拓展lvextend -L +2G /dev/vgname/lvname1,虽然此时的逻辑卷的空间已

    经增加了,但是文件系统认到的空间系统还是之前的8G,因此文件系统也相应的要更新resizefs 

    /dev/vgname/lvname    1

blob.png

blob.png

  • 缩减KVM

    缩减KVM主要分四步,1卸载装载在lv上的文件系统,2强制检查修复文件系统,3调整文件系统边界,4缩减LV,5

    重新挂载,下面我就来演示一下

    1.卸载文件系统:命令  umount /dev/vgname/lvname1

    2.强制检查修复文件系统  命令:e2fsck -f /dev/vgname/lvname1

    3.调整文件系统边界   命令:resize2fs /dev/vgname/lvname1 18G

blob.png

    4.缩减LV  命令:lvreduce -L -2G /dev/vgname/lvname1

blob.png

    5.重新挂载  mount -a

  • 快照

    基于将已经创建好的LVM并且已经正常使用的文件系统的数据做一次快照,重新挂载到另外的文件夹中用于备份

    及查看。命令:lvcreat -L +1G -p r -s -n lvname_snap /dev/vgname/lvname1

    1.首先查看原挂载到/users的lvm文件系统都有哪些文件然后据此作快照

blob.png

    2.创建快照并挂载到/mnt,然后可以看到/mnt文件夹中所有的内容便是快照发生的此刻原lvname1文件系统中的文件,如果再后面继续往lvname1中修改增加文件,快照文件夹/mnt是不变的

blob.png

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

(1)
东里西里东里西里
上一篇 2016-02-14
下一篇 2016-02-14

相关推荐

  • 硬软链接的区别 节点 以及重定向和管道

    INODE全称叫index node 表中包含文件系统所有文件列表   一个节点是在一个表项 包含有关文件的信息 ( 元数据 ) 包括: 文件类型,权限,UID,GID 链接数(指向这个文件名路径名称个数) 该文件的大小和不同的时间戳 指向磁盘上文件的数据块指针 有关文件的其他数 1 文件引用一个是 inode号   2 我们是通过文件名…

    Linux干货 2016-08-12
  • shell 编程(一)

    shell脚本编程:  编程语言的分类:根据运行方式    编程运行:源代码->编译器(编译)--程序文件    解释运行:源代码-->运行启动时解释,由解释器边解释运行; 根据其编程过程中功能的实现是调用库还是调用外部的程序文件:   shell脚本编程:      利用系统上的命令编程组件进行编程:   完整的编程:     利用库或编程组件进行编程; …

    Linux干货 2016-12-23
  • 私有IP网子网掩码划分原则及计算方法

    私有IP网子网掩码划分原则及计算方法 最好记下的二进制转换十进制 00000000 0 00000001 1 00000010 2 00000100 4 00001000 8 00010000 16 00100000 32 01000000 64 10000000 128 11000000 192 11100000 224 11110000 240 1111…

    Linux干货 2017-05-02
  • N25-第8周博客作业

    第八周 1、写一个脚本,使用ping命令探测172.16.250.1-172.16.250.254之间的所有主机的在线状态; 在线的主机使用绿色显示; 不在线的主使用红色显示; #!/bin/bash # ip=172.16.250. for i in {1..254}; do if ping -w 1 -c 1 $ip$i &> /dev/n…

    Linux干货 2017-03-10
  • HAProxy实现请求的80端口转发至后端的8000端口并实现动静分离

    一 实验目的 用HAProxy作为负载均衡器,实现把前端请求调度到后端,前端监听80端口,转发至后端的8000端口,并会对访问资源进行判断实现不同的访问内容转发至相对应的服务器。 二 实验拓扑 三 实验环境 IP 功能 192.168.20.108 HAProxy 192.168.237.129 Nginx 192.168.237.130 Nginx+PHP…

    Linux干货 2016-12-19
  • CentOS 7 tomcat 7.0.54 的功能实现及详解

    一、 jdk 安装配置 # yum install java-1.8.0-openjdk-devel (依赖的java-1.8.0-openjdk,java-1.8.0-openjdk,headless也会被安装 ) # alternatives -h # vim /e…

    Linux干货 2014-06-09

评论列表(1条)

  • stanley
    stanley 2016-02-14 09:57

    已置顶,认真看的出,赞