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)
上一篇 2017-05-01 21:41
下一篇 2017-05-02 08:42

相关推荐

  • 如何正确安装一个源码包

        下周就要考试了,心情挺忐忑不安的,前几天做了25期的考试题,感觉每个题都是老师上课讲过的,但是自己做却想不起来了。这应该就像学习数学一样,需要大量练习,做的多了自然就会了。     这周我们学习了如何使用yum,还学习了磁盘管理。针对如何安装源码包,以httpd包为例我们…

    2017-08-19
  • 第一周:Linux基础之常用命令(二)

    一、Linux的命令使用格式 命令的语法通用格式: ~]# COMMAND  OPTIONS  ARGUMENTS   命令  选项  参数 1.  COMMAND,命令:发起命令时将请求内核将某个二进制程序运行为一个进程,命令本身是一个可执行的程序文件,二进制格式的文件有可能会调用共享库文件。 多…

    Linux干货 2016-09-18
  • OpenStack之keystone

    一、什么是OpenStack    OpenStack是一种云操作系统,它控制着一个数据中心里大量的计算、存储和网络资源。管理员在一个web界面内通过仪表盘方便地管理,控制,授权用户,以提供各种资源。 二、云服务分类 可分为IAAS, PAAS, SAAS等 IAAS:Infrastructure as a Service (操作系统级别…

    Linux干货 2017-01-19
  • 用户、组、权限和修改

    用户、组和权限     普通用户 1–65535     系统用户  系统已经已经存在专门用来对系统服务或者系统资源进行管理的               1…

    Linux干货 2017-04-04
  • 103-corosync-pacemaker-crmsh

    一、概述: 1.1 什么是AIS和OpenAIS?

    2016-11-26
  • python知识点

    #ipython的使用## 帮助功能?:Ipython的概述和简介help(name):查询指定名称的帮助obj?:列出obj对象的详细信息obj??:列出更加详细信息 ## 特殊变量_ :表示前一次的输出__:倒数第二次输出___:倒数第三次输出_dh:目录历史_oh:输出历史 ## shell命令!command 执行shell命令!ls -l!touc…

    Linux干货 2017-10-03