LVM基础


逻辑卷的原理

LVM基础

逻辑卷的组成上包括物理卷,逻辑组,逻辑卷

物理卷即是磁盘分区或者块设备经过转换以后形成的抽象的逻辑设备

逻辑组即是将物理卷进行统一打包,合成一个更大的逻辑上的分区

逻辑卷是在逻辑组的基础上细分的课动态调节的虚拟磁盘分

其工作原理是通过某种机制将物理上的块设备或者分区抽象的进行封装,然后以逻辑卷的方式统一呈现给

上层的应用



逻辑卷的操作

一:创建逻辑卷

步骤一:首先需要将块设备转换为逻辑卷
使用的命令为  pvcreate  
在创建之前可以使用  pv  或者  pvdisplay 命令来查看当前系统上的物理卷,如果没有则不予显示
pvcreate /dev/sdb  /dev/sdc  将/dev/sdb   和  /dev/sdc          两个设备文件转换为物理卷设备
LVM基础
步骤二:创建逻辑组
逻辑组里面有一个PE的概念,这个是指定一次分配逻辑卷时的最小单位,相当于文件系统里面块的概念
创建逻辑组之前可以先查看是否有逻辑卷,使用命令  vgs 或者  vgdisplay
创建逻辑组的命令为 vgcreat  命令
-s  :指定PE的大小

vgcreate  -s   16  /dev/sd{b,c}         创建 一个逻辑组,其中PE的大小为16M,

LVM基础
步骤三:创建逻辑卷
逻辑卷的创建必须是在逻辑组的基础上来创建,且最大的逻辑卷的大小是不能超过逻辑组的大小
创建逻辑卷之前可以查看是否逻辑卷,命令为  lvs 或者   lvdisplay  
-n  : 指定逻辑卷的名字
-L:指定逻辑卷的大小,数值单位,+50G
-l:指令逻辑卷的大小,以PE为单位,PE的个数   后面还可以这样写  %60VG   代表分出VG的%60的空间
      %100FREE 代表分配出全部的内存
lvcreat  -n lv0  -l  1000  vg0    创建一个逻辑卷,名字为lv0 ,大小为1000个PE ,从vg0分配
需要注意的是分配的名字并不不是设备的真正的名字,实际上它是一个软链接,
设备名 /dev/vg0/lv0    或者 /dev/mapper/vg0-lv0
真正的名字一般为:

     /dev/dm-0

LVM基础
LVM基础

查看逻辑卷的状态

LVM基础

步骤四:格式化创建文件系统,挂载文件系统

二:扩展逻辑卷

扩展逻辑卷的前提是,逻辑组里面还有空间,否则报错
扩展逻辑卷一般情况下有两种需要:
  1. 扩充容量
  2. 扩充文件系统,容量扩充后,没有扩充的文件系统,系统是无法识别的,容量就不会发生改变
lvextend   
-L:指定扩展的大小,100G  扩展到100G  +100G 额外增加100G 
       +100%FREE 将剩余的空间100%的分配给逻辑卷

lvextend  -L 100G  /dev/vg0/lv0   将/dev/vg0/lv0  扩容到100G

LVM基础

扩充文件系统:扩充文件系统的过程中不会取消挂载状态

resize2fs  /dev/vg0/lv0

LVM基础
三:扩充逻辑组

当逻辑组的容量用完以后,此时逻辑卷不能再进行扩容,如果需要扩容,则需要新添加硬盘
方法是执行步骤一之后开始扩展逻辑组的容量
使用命令  vgextend  
vgextend vg0  /dev/sdd         将/dev/sdd硬盘加入逻辑组,实现逻辑组的扩容
四:逻辑卷的替换

逻辑卷一般情况下是不会替换的,不过某些情况下却要进行替换,
比如硬盘提示有故障了,但是还没当掉,此时需要将这块硬盘拆下来,但是不能直接拆,不然会导致逻辑卷错误
其基本思想是,先将要替换的磁盘上面的东西(PE)移动到逻辑组上的任意空间(逻辑组空间要足够,否则添加硬盘)
然后移除该硬盘,最后拔掉故障的硬盘
pvmove  /dev/sdc  将/dev/sdc上面的所欲PE全部迁移到逻辑组上有空余的空间上去
然后将/dev/sdc从逻辑组里面移除
vgreduce  vg0  /dev/sdc
然后查看  vgdisplay 
最后在物理卷上面移除该逻辑卷即可
pvremove  /dev/sdc
然后可以拔掉硬盘

首先观察到/dev/sdc硬盘上面已经分好了PE

LVM基础

然后执行移动操作

LVM基础

报错,提示逻辑组的空间不够,现在添加一块磁盘之后再来,先扩充vg0

LVM基础
LVM基础

从vg0里面移除/dev/sdc

LVM基础

执行最后一步,在物理卷上移除/dev/sdc

LVM基础
五:逻辑卷的缩减

逻辑卷的缩减不像逻辑卷的增加一样可以在线的增加,逻辑卷的缩减需要先停止业务之后才能进行缩减
  • 取消挂载
          umount  /dev/sdc  
  • 缩减文件系统
          缩减文件系统到指定的值,不过这里需要特备强调的是,缩减一定要非常的注意当前状态下的逻辑卷
          设备已经利用了多少,否则会因为缩减而导致数据的丢失
          resize2fs  /dev/vg0/lv0  50G  缩减lv0到50G ,一定要查看lv0里面所存的数据是否大于50G,故建议先备份然后再缩减
  • 检查文件系统的完整性
           e2fsck   -f  /dev/vg0/lv0   
  •  缩减文件系统
          resize2fs   /dev/vg0/lv0  50G 
  • 缩减逻辑卷
          lvreduce   -L   50G  /dev/vg0/lv0
  • 重新挂载逻辑卷
实际操作:
  • 取消挂载
  • 执行检查
LVM基础
  • 缩减文件系统
LVM基础
  • 缩减逻辑卷
LVM基础
六:逻辑卷的整体迁移
     需要将整个逻辑卷迁移到另外的机器上的时候
     逻辑卷的迁移之前需要检查要迁移到的主机上是否存在同名的逻辑卷组,否则需要改名
源主机:
  • 改名的指令:vgrename  vg0   vg1   将逻辑组vg0的名字改为vg1
  • 将卷组卸载
          umount  /dev/vg1/lv0
  • 将卷组设为禁用,防止迁移的过程中有人使用导致数据丢失
          vgchang   -a  n  vg1    将卷组设置为no 
  • 导出卷组
          vgexport    vg1
  • 拔掉与逻辑卷相关的所有硬盘
目标主机:
  •  插上刚刚卸载的硬盘
  • 导入新的逻辑卷组
          vgimport  vg1
  •  激活逻辑卷组
          vgchang   -a  y  
          
实际操作:
  • 将逻辑组改名
LVM基础
  • 将逻辑组禁用
LVM基础
  • 卸载逻辑卷
  • 导出逻辑卷组
LVM基础
  • 拔出硬盘
目的主机上:
  • 先查看磁盘上导入是否成功
LVM基础
  • 导入逻辑卷组
LVM基础
  • 激活逻辑卷组
LVM基础

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

(0)
Double fDouble f
上一篇 2017-05-01 21:41
下一篇 2017-05-02 08:42

相关推荐

  • 删除三天前备份的脚本

    [root@scm-dzm testfolder]# ll total 4 drwxr-xr-x. 2 root root   6 Jul 14 00:53 20160722 drwxr-xr-x. 2 root roo…

    Linux干货 2016-07-16
  • awk的基本原理

    awk的工作原理 一次读取一行文本,按输入分隔符进行切片,切成多个组成部分,将每片直接保存在内建的变量中,$1,$2,$3….,引用指定的变量,可以显示指定断,或者多个断。如果需要显示全部的,需要使用$0来引用。可以对单个片断进行判断,也可以对所有断进行循环判断。其默认分隔符为空格 awk的基本用法格式awk [options…

    Linux干货 2017-07-11
  • N26-第四周作业-邢岩

    马哥门徒-N26-邢岩   精神练习需要深入认真的工作以及热情的劲头。当你开始练习,你是在挣扎、在反抗,你需要集中精力,然后慢慢进步。那么,我们就开始吧。   第一题,复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。   ~]# cp -r /et…

    Linux干货 2017-02-15
  • https实现

    实现https 搭建CA 颁发证书

    2018-01-29
  • shell脚本编程

    shell俗称壳(用来区别于核),提供使用者使用界面(命令解析器),它接受用户命令,然后调用相应的应用程序。 同时它还是一种程序设计语言,作为命令语言,它交互式解释和执行用户输入的命令或者自动地解释和执行预先设计好的一连串的命令。作为程序涉及语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。 一、shell脚本基础概念 …

    Linux干货 2016-08-16
  • 26期全程班-第五周博客作业

      1、显示/boot/grub/grub.conf中以至少一个空白字符开头的行; # grep “^[[:space:]]\+” /boot/grub/grub.conf 2、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行; # grep “^…

    Linux干货 2017-03-09