码迷,mamicode.com
首页 > 其他好文 > 详细

LVM的缩减、扩展以及快照的使用

时间:2018-11-23 11:18:43      阅读:233      评论:0      收藏:0      [点我收藏+]

标签:cto   def   caff   fsck   term   技术   mount   改变   stl   

LVM:逻辑卷的缩减、扩展、快照使用

一、什么是LVM?
LVM是逻辑盘卷管理(LogicalVolumeManager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制。
LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。
LVM可分为三层。底层为物理卷(Physical Volume),简写为PV;中间层为卷组(Volume Group),简写为VG;顶层为逻辑卷(Logical Volume),简写为LV。
上层的大小取决于下层的大小。

二、如何创建LVM系统?(我用的磁盘是/dev/sdb)
1、首先创建LVM分区/dev/sdb6、/dev/sdb7、/dev/sdb8,大小分别为7G、3G、2G,类型均为8e。
可以使用fdisk /dev/sdb命令创建分区,如下
技术分享图片
完成之后使用partprobe通知内核分区,可查看/proc/partitions内核是否读取
#partprobe
#cat /proc/partitions
技术分享图片

2、创建物理卷PV
#pvcreate /dev/sdb{7,6}
#pvs //查看当前系统PV
技术分享图片
从中可以看到pv有/dev/sdb6、/dev/sdb7,其大小分别为5G、3G。

3、创建卷组GV
#vgcreate myvg /dev/sdb6 /dev/sdb7
技术分享图片
#vgs //查看当前系统VG
技术分享图片
可以看到创建的VG为myvg,大小基本等于(5+3)G
#vgdisplay myvg //显示指定vg的详细信息
技术分享图片

4、创建逻辑卷LV
#lvcreate -n testlv -L 65M myvg
技术分享图片
此处创建了65M大小的逻辑卷,但是创建之后大小为68M,是因为在创建VG时其PE大小默认为4M,创建的逻辑卷大小必须时PE的整数倍。创建VG时可用选项-s #(#为数字)指定PE大小
#lvs //查看当前系统lv
技术分享图片
#lvdisplay /dev/myvg/testlv //显示指定lv的详细信息。
注:指定lv在vg目录下的lv,不是直接指定lv名字
技术分享图片

#mke2fs -j /dev/myvg/testlv //格式化
技术分享图片

#mount /dev/myvg/testlv /mnt //挂载到/mnt下
技术分享图片

#mount
技术分享图片
使用mount可以看到挂载/mnt的是/dev/mapper/mylv-testlv。

#ls -l /dev/mapper
技术分享图片
这里面的才是真正的设备文件

三、在不影响原数据的前提下扩展、缩减逻辑卷和使用快照卷
逻辑边界时紧靠在物理边界大小上创建的,可以理解为逻辑边界微小于物理边界。
所以,存取数据取决于物理边界和逻辑边界

扩展逻辑卷LVM
先扩展物理边界,再扩展逻辑(文件系统)边界
注:逻辑边界一定要小于物理边界,否则文件系统可能会崩溃

lvextend:扩展物理边界
    -L +# /PATH/TO/LV :给lv增加#大小的物理边界
    -L # /PATH/TO/LV :给lv增加到#大小的物理边界

resize2fs(ext2/3):扩展文件系统边界
    resize2fs /PATH/TO/LV #G :增加文件系统边界到#G大小
    -p 扩展文件系统到最大值
例子:在2G大小的名为testlv的LV扩展到5G大小(还是在先前的/dev/myvg上)
#lvcreate -n testlv -L 2G myvg

#lvs
技术分享图片
之后格式化再挂载到/mnt上
#cp /etc/inittab /mnt // 拷贝一份文件到挂载目录下作为原数据
#cat /mnt/inittab //查看此目录下的内容
技术分享图片
#df -lh /查看逻辑卷testlv为2G
技术分享图片
#vgs //查看vg中free是否能够扩展到5G大小
技术分享图片
图中可以看到还剩余约6G,增加3G,足够

#lvextend -L 5G /dev/myvg/testlv //扩展物理边界
#resize2fs -p /dev/myvg/testlv //扩展逻辑边界
技术分享图片
#df -lh //查看逻辑卷testlv为5G(有误差)
技术分享图片
#cat /mnt/inittab //查看原数据是否改变
技术分享图片
从图中看出数据未曾改变

缩减逻辑卷LVM
先缩减逻辑边界,再缩减物理边界
注:1、不能在线缩减,得先卸载
2、确保缩减后的空间大小依然能存储原有所有的数据
3、再缩减前应该先检查文件,以确保文件处于移植状态

df -lh :查看所用空间大小    
umount :卸载
e2fsck -f /PATH/TO/LV :强行检查文件系统

resize2fs(ext2/3):缩减文件系统边界
resize2fs /PATH/TO/LV #G :缩减文件系统边界到#G大小

lvreduce -L -# /PATH/TO/LV   //缩减#G大小的物理边界
lvreduce -L # /PATH/TO/LV    //缩减物理边界到#G大小

重新挂载

例子:接着将上述中5G大小缩减为3G大小。
#df -lh
#umount /mnt
#e2fsck -f /dev/myvg/testlv
技术分享图片
#resize2fs /dev/myvg/testlv 3G //缩减逻辑边界
技术分享图片
#lvreduce -L 3G /dev/myvg/testlv //缩减物理边界
技术分享图片
#mount /dev/myvg/testlv /mnt //重新挂载
#cat /mnt/inittab //查看原数据
技术分享图片
#df -lh //查看大小
技术分享图片
大小变为了3G,且原数据并未受到影响

快照卷
1、生命周期为整个数据时长:在这段时长内,数据的增长量不能超过快照卷的大小(超过的话快照卷就会挂掉)
2、快照卷应该是只读的
3、快照卷应该跟原卷在同一卷组内

命令:lvcreate -s
-p r|w 指定权限 只读|读写

lvcreate -s -L # -n SLVNAME -p r /PATH/TO/LV
挂载: mount /PATH/TO/SLV /指定目录
备份: 压缩快照中的文件 tar

移除:
卸载 umount /指定目录
lvremove /PATH/TO/SLV
还原数据:tar 解压

LVM的缩减、扩展以及快照的使用

标签:cto   def   caff   fsck   term   技术   mount   改变   stl   

原文地址:http://blog.51cto.com/13990544/2320793

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!