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
下一篇 2017-05-02

相关推荐

  • 高可用Nginx

    高可用Nginx 基于vrrp流动一个IP地址 各节点时间必须同步; 确保iptables以及selinux不会成为阻碍; 各节点之间可通过主机名互相同喜(对KA而言并非必须) 确保各节点的用于集群服务的接口支持MULTICAST通信 IPv4,D类地址224-239 环境: node1:172.16.253.223 li1.jing.io node1 no…

    Linux干货 2017-06-28
  • 第二周-博客

    本文大纲 文件系统层级结构标准 Linux上常见的文件类型 bash的基础特性 用户、组和普通权限 一些零散命令的使用 文件系统层级结构标准 FHS是Filesystem Hierarchy Standard(文件系统层次化标准)的缩写,多数Linux版本采用这种文件组织形式,类似于Windows操作系统中c盘的文件目录,FHS采用树形结构组织文件。FHS定…

    Linux干货 2016-12-07
  • 一个不想被打断腿的人的学习宣言

    听说不晒学习宣言的会被某人打断腿,忍了好几天,思考了好几天,想了想,还是腿比较重要。废话就不多说了。上图~~!  生命中总要去经历一些,好让自己在老的时候回忆起来,不至于说:“哎,怎么就没有去拼一下呢!”

    Linux干货 2016-10-27
  • N25第七周博客作业

    第七周博客作业 1、 创建一个10G分区,并格式为ext4文件系统; fdisk/dev/sdb à nàpàlast扇区:+10Gàwàpartx -a /dev/sdb   (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl; mke2fs  -t ext4 -b 2…

    Linux干货 2017-02-20
  • keepalived实现nginx的高可用-实战可用

    Keepalived.conf解析 三大部分: 全局定义块、VRRP 实例定义块及虚拟服务器定义块 实例剖析 ! Configuration File for keepalived   global_defs {    notification_email {…

    Linux干货 2015-04-14
  • 文本编辑工具vim

                             vim +#: 打开文件直接处在#行 +/PATTERN:打开文件直接处在第一次匹配到行 vim + file :打开文件直接处在最后行 vim –b file :以二进制打开文件…

    Linux干货 2016-08-12