Bootstrap

Linux——逻辑卷(LVM)管理

目录

LVM简介

LVM机制的基本概念

PV(Physical Volume,物理卷)  

VG(Volume Group,卷组)  

LV(Logical Volume,逻辑卷)  

PE(Physical Extent)

逻辑卷的管理方法

LVM的管理命令

主要命令的用法

使用命令行工具实现 LVM存储

具体流程

        建立LVM分区——fdisk

        建立物理卷——pvcreate

        建立卷组——vgcreate

        建立逻辑卷——lvcreate

        扩大卷组——vgextend

        缩减卷组——vgreduce

        扩展逻辑卷和ext4文件系统——lvextend,resize2fs

        减少逻辑卷和文件系统——lvreduce,resize2fs

        删除卷——lvremove

        检查物理卷,卷组,逻辑卷——pyscan,vgscan,lvscan

创建快照(数据备份)

LVM应用示例

1. 转化物理卷

2. 创建卷组

3. 创建逻辑卷

为逻辑卷扩容

为逻辑卷缩减

 创建逻辑卷快照

配置本地yum源: 


LVM简介

        逻辑卷管理器(Logical Volume Manager),最早应用在IBM AIX系统上。

        它的主要作用是动态分配磁盘分区及调整磁盘分区大小,并且可以让多个分区或者物理硬盘作为一个逻辑卷(相当于一个逻辑硬盘)来使用。

        这种机制可以让磁盘分区容量划分变得很灵活。

LVM机制的基本概念

PV(Physical Volume,物理卷)  

        物理卷:物理卷处于LVM的最底层,可以是整个物理磁盘,也可以是硬盘中的分区。

        整个硬盘,或使用fdisk等工具建立的普通分区.

        包括许多默认4MB大小的PE(Physical Extent,基本单元)

VG(Volume Group,卷组)  

        卷组:可以看成单独的逻辑磁盘,建立在PV之上,是PV的组合。一个卷组中至少要包括一个PV,在卷组建立之后可以动态的添加PV到卷组中。

LV(Logical Volume,逻辑卷)  

        逻辑卷:相当于物理分区的/dev/hdaX。逻辑卷建立在卷组之上,卷组中的未分配空间可以用于建立新的逻辑卷,逻辑卷建立后可以动态地扩展或缩小空间。系统中的多个逻辑卷可以属于同一个卷组,也可以属于不同的多个卷组。

        从卷组中分割出的一块空间,用于建立文件系统

PE(Physical Extent)

        物理区域:物理区域是物理卷中可用于分配的最小存储单元,物理区域的大小可根据实际情况在建立物理卷时指定。物理区域大小一旦确定将不能更改,同一卷组中的所有物理卷的物理区域大小需要一致。当多个PV组成一个VG时,LVM会在所有PV上做类似格式化的动作,将每个PV切成一块块的空间,这一块块的空间就称为PE, 通常是4MB。

逻辑卷的管理方法

LVM进行逻辑卷的管理时,创建顺序是pv->vg->lv。

  • 首先创建一个物理卷(对应一个物理硬盘分区或者一个物理硬盘)
  • 然后把这些分区或者硬盘加入到一个卷组中(相当于一个逻辑上的大硬盘)
  • 再在这个大硬盘上划分分区lv(逻辑上的分区,就是逻辑卷)
  • 最后,把lv逻辑卷格式化以后,就可以像使用一个传统分区那样,把它挂载到一个挂载点上
  • 需要的时候,这个逻辑卷可以被动态缩放

LVM的管理命令

主要命令的用法

  • pvcreate  设备名
  • vgcreate  -s  8M    卷组名  物理卷名1 物理卷名2
  • lvcreate   -L  大小  -n  逻辑卷名  卷组名
  • lvextend  -L  大小  /dev/卷组名/逻辑卷名  
  • lvreduce –L  大小  /dev/卷组名/逻辑卷名

-L参数指定了逻辑卷的大小,-n参数指定了逻辑卷的名称

使用命令行工具实现 LVM存储

准备物理卷

  1. fdisk (type 0x8e linux LVM)
  2. pvcreate /dev/sdb5

创建卷组

  1. vgcreate –s 8M  wgroup /dev/sdb5

创建和使用新逻辑卷

  1. lvcreate –n wshare –L 100M /dev/wgroup
  2. mkfs –t vfat /dev/wgroup/wshare
  3. mkdir /mnt/wshare
  4. add an entry to the /etc/fstab file:   /dev/wgroup/wshare   /mnt/wshare  vfat  defaults 0 0 5.mount –a

具体流程

        建立LVM分区——fdisk

        利用fdisk命令在 /dev/sdb上建立LVM类型的分区/dev/sdb1、/dev/sdb2。

fdisk /dev/sdb

使用相关指令创建分区:

n——创建分区 ;

p——创建主分区;   e——创建扩展分区;

p——查看分区情况;t——修改分区类型(8e:LVM类型);

w——保存;              q——退出;

其中选择编号(1,2,3,4)和选择分区大小

        建立物理卷——pvcreate

        物理卷直接建立在物理硬盘或者硬盘分区上,所以物理卷的设备文件使用系统中现有的磁盘分区设备文件的名称。

  • pvcreate /dev/sdb1      //创建物理卷
  • pydisplay /dev/sdb1     //显示指定物理卷的属性

        建立卷组——vgcreate

        在创建好物理卷后,建立卷组。

        卷组设备文件使用/dev目录下与卷组同名的目录表示,该卷组中的所有逻辑设备文件都将建立在该目录下。

        卷组中可以包含多个物理卷也可以只有一个物理卷

  • vgcreate vg0 /dev/sdb1    // 创建卷组vg0,vg0为要建立的卷组名称。
  • vgdisplay vg0                   // 查看vg0信息

        建立逻辑卷——lvcreate

        建立好卷组后,可以使用命令lvcreate在已有卷组上建立逻辑卷。

        逻辑卷设备文件位于其所在的卷组的卷组目录中。

  • lvcreate -L 20M -n lv0 vg0   // 创建逻辑卷
  • lvdisplay /dev/vg0/lv0

格式化逻辑卷:使用mkfs命令格式化新创建的逻辑卷。例如,如果你使用的是ext4文件系统:

  • mkfs.ext4 /dev/vg0/lv0

        扩大卷组——vgextend

        扩展卷组 当卷组中没有足够的空间分配给逻辑卷时,可以用给卷组增加物理卷的方法来增加卷组的空间

  1. fdisk /dev/vda                           创建新分区 (必须为LVM类型)
  2. pvcreate /dev/vdaN                  初始化分区
  3. vgextend vgname /dev/vdaN    将新物理卷添加到现有卷组vgname
  4. vgdisplay vgname                     显示卷组状态

        缩减卷组——vgreduce

  1. vgreduce vgname /dev/vdaN 从卷组删除物理卷

        扩展逻辑卷和ext4文件系统——lvextend,resize2fs

当逻辑卷的空间不能满足要求时,可以利用lvextend命令把卷组中的空闲空间分配到该逻辑卷以扩展逻辑卷的容量。

  1. 验证已挂载文件系统的当前大小            df  -h  /data
  2. 验证可用物理区块是否够用                    vgdisplay  vgname
  3. 使用部分或全部可用区块扩展逻辑卷      lvextend  -L  128M  /dev/vgname/lvname
  4. 扩展在/data 上挂载的关联文件系统        resize2fs  -p  /dev/vgname/lvname
  5. 验证以挂载文件系统 /data的新大小        df  -h  /data  

        减少逻辑卷和文件系统——lvreduce,resize2fs

  1. 解除挂载要减小的文件系统                          umount  /date
  2. 验证所有文件系统数据结构是否得到清理    fsck –f /dev/mapper/vgname-lvname
  3. 将文件系统大小调整为512M      resize2fs  –p  /dev/mapper/vgname-lvname 512M
  4. 将逻辑卷减小到512M                 lvreduce –L 512M  /dev/mapper/vgname-lvname
  5. 重新挂载/etc/fstab中列出的所有文件系统,包括现在较小的逻辑卷        mount –a  

        删除卷——lvremove

必需按照删除“逻辑卷-卷组-物理卷”的先后顺序来执行删除

  1. lvremove /dev/vg0/lv0
  2. vgremove vg0
  3. pvremove /dev/sdb1

        检查物理卷,卷组,逻辑卷——pyscan,vgscan,lvscan

  • pyscan
  • vgscan
  • lvscan

创建快照(数据备份)

快照是临时保留所更改的逻辑卷的原始数据的逻辑卷

快照提供原始卷的静态视图,从而能够以一致状态备份其数据

创建和使用快照进行备份

  1. 创建lvname名为snaplvname,大小为20M的新快照卷                                                                                                          lvcreate –s –n snaplv –L 20M /dev/vgname/lvname
  2. 挂载快照,并使备份程序指向新挂载点   mkdir  /snapmount                                                                                                            mount –ro /dev/vgname/snaplv  /snapmount
  3. 验证快照逻辑卷的状态                            lvs /dev/vgname/lvname
  4. 不在使用快照时,解除挂载并删除          umount /snapmount                                                                                                          lvremove  /dev/vgname/lvname

LVM应用示例

需求描述: 公司的邮件服务器由于用户数量众多,邮件存储需要大量的空间,考虑到动态扩容的需要,计划增加两块SCSI硬盘并构建LVM逻辑卷,挂载到“/mail”目录专门用于存放邮件数据

步骤: PV → VG → LV → 格式化,挂载使用文件系统

1. 转化物理卷

  • 使用fdisk命令规划两个分区,类型设置为“8e”  /dev/sdb1、/dev/sdc1
  • 使用pvcreate命令转换上述分区为物理卷

[root@localhost ~]# fdisk -l /dev/sdb /dev/sdc | grep "LVM"

/dev/sdb1     1     9660    77593918+  8e  Linux LVM

/dev/sdc1     1     9660    77593918+  8e  Linux LVM

[root@localhost ~]# pvcreate /dev/sdb1  

Physical volume "/dev/sdb1" successfully created

[root@localhost ~]# pvcreate /dev/sdc1  

Physical volume "/dev/sdc1" successfully created

2. 创建卷组

  • 使用vgcreate命令创建卷组mail_store

[root@localhost ~]# vgcreate mail_store /dev/sdb1 /dev/sdc1  

Volume group "mail_store" successfully created

3. 创建逻辑卷

  • 使用lvcreate命令创建逻辑卷 mail  从卷组mail_store上划出20GB空间
  • 使用mkfs命令创建ext4文件系统

[root@localhost ~]# lvcreate  -L  20G  -n  mail  mail_store  

/dev/cdrom: open failed: Read-only file system  

Logical volume "mail" created

[root@localhost ~]# mkfs -t ext4 /dev/mail_store/mail

为逻辑卷扩容

  • 使用lvextend命令为逻辑卷 mail扩充容量  从卷组 mail_store 上再划出10GB给逻辑卷mail
  • 使用resize2fs命令更新系统识别的文件系统大小

[root@localhost ~]#  lvextend -L +10G  /dev/mail_store/mail

[root@localhost ~]#  resize2fs –p /dev/mail_store/mail

为逻辑卷缩减

  • 使用lvreduce命令为逻辑卷 mail缩减容量,必须先卸载  
  • 从卷组 mail_store 上缩小逻辑卷mail到10G
  • 使用resize2fs命令更新系统识别的文件系统大小
  • 使用fsck 命令清理文件系统数据结构 

[root@localhost ~]#  umount  /mail

[root@localhost ~]#  fsck –f  /dev/mail_store/mail

[root@localhost ~]#  resize2fs –p /dev/mail_store/mail 10G

[root@localhost ~]#  lvreduce –L 10G  /dev/mail_store/mail

[root@localhost ~]#  mount  -a

 创建逻辑卷快照

lvcreate -L 512M -s -n snapshot dev/vg0/lv0

在挂载目录中创建一个文件,创建挂载在该目录下的逻辑卷快照,删除此文件,使用快照恢复:

1.挂载逻辑卷

        mount /dev/vg0/lv0 /data

        cd /data

        touch a.txt

2.制作快照

        lvcreate -L 500M -s -n lv0_snap /dev/vg0/lvo

3.删除文件

        rm /data/a.txt

4.从快照中恢复文件

        mkdir /datasnap

        mount /dev/vg0/lv0_snap /datasnap

        ls -al /datasnap

        cp /datasnap/a.txt /data

5.删除快照

        umount /datasnap

        lvremove /dev/vg0/lv0_snap

配置本地yum源: 

[root@localhost ~]# vim /etc/yum.repos.d/dvd.repo  

[dvd]

name=dvd

baseurl=file:///mnt/cdrom

enabled=1

gpgcheck=0

安装system-config-lvm:

[root@localhost ~]# yum install system-config-lvm

;