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

Linux基础(18)LVM以及应用

2016-07-20 22:02 609 查看
LVM是什么?
LVM为逻辑卷管理器,可以将多个物理分区整合起来,让其看起来好像是一个大磁盘,LVM最大的用处为弹性地调整文件系统的容量。
与LVM相关的几个概念

PV 物理卷 位于LVM最底层,通过pvcreate命令将磁盘分区(分区的SystemID需要实现转换成8e,通过fdisk命令实现)转换而成
VG 卷用户组 由多个PV整合而成,也就是上面说的大磁盘,其大小取决于PE的大小和个数。默认VG最大可以包含65536个PE(一个PE大小默认为4MB),即256GB。
PE 物理扩展块,是LVM的最小存储块,类似与文件系统的block
LV 逻辑卷 由LV切分而成,是可以被格式化文件系统的类似的分区。LV的设备名格式/dev/vgname/lvname
LVM 是通过交换PE来实现弹性调整文件系统的容量的。
实现的流程:创建PV----创建VG-----创建LV----格式化LV-----挂载使用。
2.如何实现创建LV?
创建PV
首先创建4个分区,并且将systemid改为8e



创建PV pvcreate /dev/sda{9,10,11,12}



创建VG
使用vgcreate命令,-s用来指定PE的大小



如果需要增减VG的容量,使用vgextend命令 格式为vgextend vgname /dev/sda#
划分LV
使用lvcreate命令
格式为lvcreate [options] vgname
-l 通过PE的数量指定LV的大小
-L 通过容量来指定LV的大小 单位可以G,M,T
-n 指定LV的名字



格式化LV并且挂载



3.增加LV的容量
五步走
使用fdisk创建分区---创建PV---使用vgextend加入新的PV扩展VG---利用lvresize将新的PV内的PE加入到LV中----使用e2fsck检查文件系统----使用resize2fs扩大文件系统的容量
pvcreate /dev/sda13 #新建PV
vgextend myvg /dev/sda13 #扩展VG
lvresize -L +100M /dev/myvg/mylv #扩展LV
e2fsck -f /dev/myvg/mylv #注意,应该是强行检车,没有-f是不行的
resize2fs /dev/myvg/mylv #将LV的容量扩展到整个文件系统
最重要的使用lvresize命令
lvresize -l 或者-L选项 通过+来扩展LV的容量
具体格式为lvresize -L +... /dev/vgname/lvname



4.减少LV的容量
步骤
umount /dev/myvg/mylv #LVM不支持在线缩小,但是放大可以,所以应该先卸载
e2fsck -f /dev/myvg/mylv #强行进行磁盘检查
resize2fs /dev/myvg/mylv 400M #降低文件系统的容量,原来是500M,现在减小到400M
lvresize -L -100M /dev/myvg/mylv #降低LV的容量
pvdisplay #将某个PV抽离VG的时候,必须要确定里面的PE不被使用才可以,所以使用pvdisplay查看哪个PV的PE是没有使用的,将要抽离的PV中的含有数据的PE移动到该PV里
pvmove /dev/sda9 /dev/sda13 #转移PE
vgreduce myvg /dev/sda9将/dev/sda#抽离出VG
pvremove /dev/sda9




5.LVM的重要应用,快照 snapshot,可以用来备份数据
快照的原理:将系统信息记录下来,如果有数据改动了,就将原来的数据移到快照区,没有改动的区域由文件系统和快照区共享。
创建快照区
pvcreate /dev/sda9
vgextend myvg /dev/sda9
lvcreate -L 100M -s -n mysnapshot /dev/myvg/mylv #最重要的是-s选项,意思是创建快照区,最后的/dev/myvg/mylv 是"被快照"的文件系统



接下来挂载快照区
mkdir /mnt/snapshot
mount /dev/myvg/mysnapshot /mnt/snapshot
df #查看是否挂载成功



可以看到快照区就像是LV的一面镜子,一样一样的。也就是我们在挂载/dev/myvg/mylv 与/dev/myvg/mysnapshot后里面看到的数据是一样的。
快照的重要的作用就是可以用来复原文件系统
cd /mydata
rm -rf * #搞破坏
lvdisplay /dev/myvg/mysnapshot #发现确实被占用了一部分空间
mkdir -p /backups
cd /mnt/snapshot
tar -jcf /backups/mylv.tar.bz2 * #备份
umount /mnt/snapshot
lvremove /dev/myvg/mysnapshot
mke2fs -j /dev/myvg/mylv
mount /dev/myvg/mylv /mydata
cd /mydata
tar xf /backups/mylv.tar.bz2 #还原

本文出自 “厚积薄发” 博客,请务必保留此出处http://joedlut.blog.51cto.com/6570198/1828213
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: