您的位置:首页 > 运维架构 > Linux

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

2017-04-01 15:42 555 查看
LVM 简介

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

逻辑卷组管理概念

PV (Physical Volume) - 物理卷

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

VG (Volume Group) - 卷组

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

LV (Logical Volume) - 逻辑卷

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

LVM关系图如下:





准备配置LVM

实验系统的版本为 CentOS6.7

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





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





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





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





开始创建 PV

# pvcreate /dev/sdb{5,6}





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

# pvs





# pvscan





# pvdisplay





创建 VG 卷组

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





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

# vgs





# vgscan





# vgdisplay





创建 LV 卷组

# lvcreate –L 50M –n testlv myvg

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





# mkfs.ext4 /dev/myvg/testlv

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





# mount /dev/myvg/testlv

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





# df –Th





# vim /etc/fstab

将 testlv 设置为开机自动挂载





LV 的扩容

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





首先扩展物理边界

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

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





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

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

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





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





继续扩展逻辑边界

# resize2fs –p /dev/myvg/testlv





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





LV 的缩减

# df –lh

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





# umount /mnt

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





# e2fsck –f /dev/myvg/testlv

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





# resize2fs /dev/myvg/testlv 30M

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





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

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





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





VG 的缩减

# pvs





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





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

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





# vgreduce myvg /dev/sdb5

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





# pvremove /dev/sdb5

将 /dev/sdb5 彻底移除





VG 的扩容

# pvs

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





# pvcreate /dev/sdb7

将 /dev/sdb7 设置为 pv





# vgextend myvg /dev/sdb7





# pvs

通过 pvs 查看 , 添加成功





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

lvcreate

-s : 指明为创建快照卷

-p : 指明权限 r | w

注意 :

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

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

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

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









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

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

-s 指明为创建快照

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

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





# lvs 查看刚才创建的快照





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





# mount /dev/myvg/testsnap /tmp

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





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

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





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

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





# rm –rf *

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





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

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





当原数据大于创建快照时指定的快照大小时,快照将会彻底失效.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: