磁盘空间的扩展与减少------逻辑卷管理器 LVM

一、基本理论知识

    LVM是 Logical Volume Manager(逻辑卷管理)的简写,是Linux环境下对磁盘分区进行管理的一种机制。逻辑卷管理通过将底层物理硬盘抽象封装起来,以逻辑卷的形式表现给上层系统,逻辑卷的大小可以动态调整,而且不会丢失现有数据。新加入的硬盘也不会改变现有上层的逻辑卷。作为一种动态磁盘管理机制,逻辑卷技术大大提高了磁盘管理的灵活性。

二、lvm 基本术语

   物理区域PE(physical extend)默认为4MB的基本块 。物理卷是用固定大小的PE来定义的
   物理卷:PV(physical volume)硬盘或分区 。将设备指定为物理卷,在物理卷上创建的逻辑卷是由PE组成
   卷组: VG(volume group)由一个或多个PV组成的整体 。用一个或者多个物理卷来创建一个卷组
   逻辑卷: LV(logical volume)从VG中切割出的空间用于创建文件系统。可以在逻辑卷上创建文件系统。

                    image.png

三、 lvm 的创建

    1.分区或增加新的硬盘

      如果是分区,注意分区的ID设置为8e。

  fdisk -l /dev/sdb    查看指定块设备/dev/sdb的分区信息

image.png

fdisk /dev/sdb   对指定硬盘dev/sdb修改分区        t:转换分区类型ID

image.png

 fdisk -l /dev/sdb    查看指定块设备/dev/sdb的分区信息

image.png

2. 创建物理卷pv
    pvcreate /dev/sdb1 /dev/sdb2       将/dev/sdb1 /dev/sdb2 指定为物理卷

    pvs     查看命令
    pvdisplay  /dev/sdb1     具体查看物理卷/dev/sdb的信息

pvcreate /dev/sdb1 /dev/sdb2

image.png 

 pvs    查看pv物理卷
 pvdisplay  后可加具体pv   查看较详细

image.png

pvdisplay   /dev/sdb1   查看/dev/sdb1的详细信息

image.png

3.创建卷组vg  

   多个物理卷来创建一个卷组

    vgcreate vgname /dev/sdb1  /dev/sdb2   创建一个包含两个pv(/dev/sdb1 /dev/sdb2)名为vgname的卷组

    vgcreate -s 55M vgname /dev/sdb1  /dev/sdb2      创建一个包含两个pv(/dev/sdb1 /dev/sdb2)名为vgname的卷组

    vgs   查看卷组信息
    vgdisplay vgname     具体查看某一卷组的信息

 vgcreate vgchen  /dev/sdb1  /dev/sdb2     创建一个包含两个pv(/dev/sdb1 /dev/sdb2)名为vgchen的卷组
 vgs   查看卷组信息
 vgdisplay vgchen     具体查看vgchen卷组的信息    部分截图

image.png

4.创建逻辑卷lv
    lvcreate -l pe num /-L size -n lvname vgname   创建  以pe个数为单位 / 设置大小  名为lvname的逻辑卷
    lvs      查看逻辑卷
    lvdisplay   详细查看逻辑卷    

此处引入一个lvm名称的扩展:
  /dev/mapper/vgname-lvname
  /dev/vgname/lvname

 lvcreate -L 200M -n lvchen vgchen   创建大小为200M的逻辑卷lvchen 
 lvs 
 lvdisplay

image.png

四、 扩展与减少逻辑卷

1、扩展逻辑卷

   逻辑卷的魅力:具有在线扩展的能力。扩展逻辑卷分为两种情况。第一种情况,需要扩展的pe数量,vg可以提供。第二种情况,vg空间不够,需先扩展vg,扩展vg就是往vg中加pv。下面具体分析:

    1. 第一种情况,需要扩展的pe数量,vg可以提供。

image.png

        lvextend -r -L +200M /dev/vgchen/lvchen         逻辑卷在原来的基础上扩展200M

        lvextend -r -L 400M /dev/vgchen/lvchen         逻辑卷扩展至400M

                  ( -r:   resize2fs /dev/vgchen/lvchen   将逻辑卷的文件系统扩展(如:房子建好了,需要装修,不需要指定大小)

lvextend -r -L 400M /dev/vgchen/lvchen      逻辑卷扩展至400M
lvs   查看逻辑卷信息

image.png

    2. 第二种情况,vg空间不够。

      在第一种情况中,已把所有的vg空间提供。再需要扩展时,vg空间已没有,需要先扩展vg,扩展vg就是往vg中加pv。

image.png

   1)加硬盘,或创建分区等来增加block device

fdisk /dev/sdb    对指定硬盘修改分区

image.png

    2)创建pv
         pvcreate /dev/sdb3

在此处pv创建不成,根据提示错误,没有发现/dev/sdb3 分区。

image.png

lsblk  查看内核分区信息   
没有/dev/sdb3 分区,需要同步下分区信息  partprobe /dev/sdb3 (centos 7)

image.png

partprobe /dev/sdb     同步信息
pvcreate /dev/sdb3    创建名为/dev/sdb3的物理卷

image.png

    3)扩展vg
        vgextend vgchen /dev/sdb3   vg的扩展

vgextend vgchen /dev/sdb3   将/dev/sdb3 扩展到vgchen卷组
vgs     查看卷组信息

image.png

    4)lvextend -L 500M -r /dev/vgchen/lvchen    逻辑卷的扩展

lvextend -L 500M -r /dev/vgchen/lvchen   将逻辑卷增加至500M
lvs   查看逻辑卷的信息    逻辑卷已成功扩展至500M                (好开心 哒哒哒 ^.^)

image.png

2、减少逻辑卷

     逻辑卷的扩展具有在线扩展的魅力,减少时需要先卸载。

    umount /dev/vgchen/lvchen     或    umount /app        卸载  挂载源 / 挂载点    两者其一都可以。
    e2fsck -f /dev/vgchen/lvchen      在减少逻辑卷时,需要先扫描下空白空间,避免损坏已存在数据。

    resize2fs /dev/vgchen/lvchen  200M    先减少文件系统至200M   (一定先减文件系统,再减逻辑卷。)

    lvreduce -L 200M /dev/vgchen/lvchen      减少逻辑卷至200M

    mount -a   读取配置文件重新挂载

    现在局势如图所示:

image.png

umount /app    卸载
e2fsck -f /dev/vgchen/lvchen

image.png

resize2fs /dev/vgchen/lvchen  200M      先减少文件系统至200M

image.png

lvreduce -L 200M /dev/vgchen/lvchen      减少逻辑卷至200M
mount -a   可能会挂载不上,需要人为修改配置文件 /etc/fstab

image.png


vim /etc/fstab   在最后一行写入/dev/vgchen/lvchen /app ext4 defaults  0 0
mount -a   读取配置文件重新挂载

image.png

image.png


猜你喜欢

转载自blog.51cto.com/13869720/2157426