CentOS 6.7 配置LVM (逻辑卷管理)

LVM 简介

LVM是逻辑盘卷组管理 (Logical Volume Manager) 的简称. LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性,在一定程度上解决普通磁盘分区带来空间不够使用的问题.

逻辑卷组管理概念

PV (Physical Volume) - 物理卷   

物理卷在逻辑卷管理中的最低层,它可以是实际物理硬盘上的分区,也可以是整个物理硬盘或者raid设备

VG (Volume Group) - 卷组

卷组建立在物理卷之上,一个卷组至少要包括一个物理卷,在卷组建立之后可动态添加物理卷到卷组中.一个逻辑卷管理系统工程中可以只有一个卷组,也可以有多个卷组.

LV (Logical Volume) - 逻辑卷

逻辑卷建立在卷组之上,卷组中的未分配空间可以用于建立新的逻辑卷,逻辑卷建立以后可以动态地扩展和缩小空间.

LVM关系图如下:

wps7D77.tmp

准备配置LVM

实验系统的版本为 CentOS6.7

首先检测系统中是否安装了 LVM管理工具

wps7DC6.tmp

在虚拟机中添加一块磁盘,作为练习LVM的专用硬盘

wps7EE0.tmp

继续在 /dev/sdb 硬盘上创建三个分区,类型为 Linux LVM. 可以

wps7F0F.tmp

{通过 t 命令 , 将指定分区分区调整为 8e (lvm)}

wps7F10.tmp

开始创建 PV

# pvcreate /dev/sdb{5,6}  

wps7F11.tmp

创建完成后可以通过 # pvs #pvscan 查看简略信息  #pvdisplay 查看详细信息

# pvs

wps7F22.tmp

# pvscan

wps7F23.tmp

# pvdisplay

wps7F24.tmp

创建 VG 卷组

创建名称为 myvg , 将 /dev/sdb5,/dev/sdb6 组合为一个

wps7F25.tmp

创建 vg 卷组后也可以通过 # vgs # vgscan 查看简略信息  # vgdisplay 查看详细信息

# vgs

wps7F36.tmp

# vgscan

wps7F37.tmp

# vgdisplay

wps7F47.tmp

创建 LV 卷组

# lvcreate –L 50M –n testlv myvg

在 myvg 卷组中,创建一个名称为 testlv 的逻辑卷组,大小为 50M

wps7F67.tmp

# mkfs.ext4 /dev/myvg/testlv

将 /dev/myvg/testlv 格式化为 ext4 格式

wps7F68.tmp

# mount /dev/myvg/testlv  

格式化完成后,将 /dev/myvg/testlv 挂载,并查看

wps7F69.tmp

# df –Th

wps7F6A.tmp

# vim /etc/fstab

将 testlv 设置为开机自动挂载

wps7F6B.tmp

LV 的扩容

# df –lh   查看当前逻辑卷的大小为 47M , 需要扩展空间到 1G

wps7F7C.tmp

首先扩展物理边界

在扩展 lv 之前,需要先确定 vg 有足够的空间

# vgs  查看当前 vg 的大小,可用

wps7F7D.tmp

# lvextend –L 1G /dev/myvg/testlv

-L 1G 表示为将 /dev/myvg/testlv 扩展到 1G  

-L +1G 表示为将 /dev/myvg/testlv 添加 1G 的空间

wps7F8E.tmp

# lvs   查看 testlv 大小,物理边界扩展成功,此时若通过 # df –lh 命令查看  /dev/myvg/testlv , 会发现大小没有改变 , 所以还需要对文件系统进行扩容 (扩展逻辑边界)

wps7F9E.tmp

继续扩展逻辑边界

# resize2fs –p /dev/myvg/testlv 

wps7F9F.tmp

# df –lh  查看 /dev/myvg/testlv 的大小 , 扩展完成

wps7FA0.tmp

LV 的缩减

# df –lh

首先需要查看将要缩减的 lv , 已经使用了多少空间 . 要确定缩减后的空间大于已经使用的空间

wps7FA1.tmp

# umount /mnt

缩减 lv 需要离线操作 , 则卸载

wps7FB2.tmp

# e2fsck –f /dev/myvg/testlv

强制检测文件系统的完整性

wps7FC2.tmp

# resize2fs /dev/myvg/testlv 30M

将 /dev/myvg/testlv 缩减至 30M

wps7FC3.tmp

# lvreduce –L 30M /dev/myvg/testlv

两个步骤的缩减大小必须保持一致.  -L 30M 表示将 testlv 缩减至30M. –L –30M 表示将 testlv 缩减 30M 的空间

wps7FC4.tmp

# mount /dev/myvg/testlv  挂载完成后,查看 testlv 的大小

wps7FC5.tmp

VG 的缩减

# pvs   

wps7FC6.tmp

# umount /mnt   缩减 vg 的大小需要先卸载

wps7FC7.tmp

# pvmove  缩减 vg 就是移除 pv 的过程 , 需要提前将要移除的 pv 上的数据移动

如下图,将要移除 /dev/sdb5,那么先执行 pvmove /dev/sdb5 命令,将sdb5硬盘上的数据移动

wps7FD8.tmp

# vgreduce myvg /dev/sdb5

从 myvg 中挪走 /dev/sdb5 , 并且查看 /dev/sdb5 已经不属于 myvg 卷组

wps7FD9.tmp

# pvremove /dev/sdb5

将 /dev/sdb5 彻底移除

wps7FDA.tmp

VG 的扩容

# pvs

在当前系统中在添加一个 pv

wps7FDB.tmp

# pvcreate /dev/sdb7

将 /dev/sdb7 设置为 pv

wps7FDC.tmp

# vgextend myvg /dev/sdb7

wps7FDD.tmp

# pvs

通过 pvs 查看 , 添加成功

wps7FDE.tmp

创建快照卷  (可以在线创建,无需卸载)

lvcreate

     -s  : 指明为创建快照卷

     -p : 指明权限 r | w

注意 : 

1. 生命周期为整个数据时长 : 在这段时长内,数据的增长不能超出快照卷大小.

2. 快照卷应该是只读的.

3. 跟原卷在同一卷组内.

当前挂载挂载后目录的内容如下

wps7FDF.tmp

wps7FF0.tmp

# lvcreate –L 50M –n testsnap –s –p r /dev/myvg/testlv

-L 50 M   指定快照大小最多为 50M

-s   指明为创建快照

-p r    指定为快照权限为 只读

-n    指定创建的快照名称为 testsnap

wps7FF1.tmp

# lvs       查看刚才创建的快照

wps7FF2.tmp

在 /mnt 目录下创建 a b c 三个文件

wps7FF3.tmp

# mount /dev/myvg/testsnap /tmp

将刚才创建的快照挂载到 /tmp 目录下查看,并没有后来创建的 a b c 三个文件,因为a b c文件是创建快照卷以后touch的

wps7FF4.tmp

# tar –zcf /root/testsnap.tar.gz *  

将创建的快照挂载后,在挂载目录中所有文件打包备份

wps7FF5.tmp

# umount /tmp    # lvremove /dev/myvg/testsnap

卸载已经挂载的快照,并将其删除

wps7FF6.tmp

# rm –rf *

将 /mnt 下的所有文件删除,准备恢复数据

wps7FF7.tmp

# tar /root/testsnap.tar.gz –C /mnt

将备份好的数据指定路径,解压到 /mnt 下

wps7FF8.tmp

当原数据大于创建快照时指定的快照大小时,快照将会彻底失效.

原文地址:https://www.cnblogs.com/wcwen1990/p/6656259.html