1.逻辑卷原理及作用
逻辑卷的工作原理:逻辑卷(lv)是将几个磁盘分区或者块设备(pv,pv的id必须是8e的,pv可以位于不同的磁盘分区里,pv大小可以不一)组织起来形成一个大的扩展分区(vg,卷组,一个vg至少要包含一个pv。),该扩展分区不能直接用,需要将其划分成逻辑卷(lv)才能使用,lv可以格式化成不同的文件系统,挂载后直接使用。 lv的扩展和缩减是不会影响原有数据的,但逻辑卷缩减的风险大于逻辑卷扩展的风险。逻辑卷可以支持快照功能。
LVM的原理流程简单表现为:
接下来讲解下如何部署逻辑卷。
2.逻辑卷部署
说明:我使用的是vm,新加入的硬盘设备名为sdb,sdc,硬盘可以是虚拟硬盘,在mv中可操作,通过查看/dev目录的文件就可以知道是否成功添加虚拟硬盘
,正确添加后截图如下:
逻辑卷部署流程大致为:
第一步、添加硬盘设备:
pvcreate /dev/sdb /dev/sdc
正确添加则显示:
第二步、把硬盘设备添加到卷组yexi中,并查看卷组状态
vgcreate yexi /dev/sdb /dev/sdc
正确操作后结果如下:
查看yexi卷组的状态:
第三步、切割一个大小为200m的逻辑卷,并查看逻辑卷的状态:
lvcreate -n yx01 -L 200M yexi;
lvdisplay|head -10
正确操作后结果如下:
第四步、将逻辑卷格式化并挂载使用:
格式化设备使用的命令为:mkfs,挂载命令使用的是:mount
格式化逻辑卷:
mkfs.ext4 /dev/yexi/yx01 #格式化命令格式为:mkfs.type /dev/卷组名/逻辑卷名
挂载逻辑卷:挂载前先创建一个要创建一个文件夹供挂载操作使用,挂载成功后可使用df -h 命令查看挂载信息。
mkdir file_yx;
mount /dev/yexi/yx01 /file_yx;
df -h;
使用df -h 命令后结果:
可以看到有逻辑卷yx01的挂载信息。通过这种方式挂载是会话级的,当服务器重启时,挂载信息丢失,所以我们采用另一种方式挂载,即直接写入挂载信息文件中,文件位置是/etc/fstab,在后面直接添加需要挂载的数据即可。需要添加的数据含义依次为:设备名或uuid值 挂载目录 格式 权限 自检 优先级。挂载具体信息请看另一篇文章。
1.在/etc/fstab后添加挂载信息:
vim /etc/fstab;
添加的信息:/dev/yexi/yx01 /file_yx ext4 defaults 0 0
接着执行命令:
mount -a # -a:自动挂载/etc/fstab中记录的挂载信息的设备
逻辑卷的部署到此就结束了,但有时业务需要,逻辑卷的容量不够时,我们就要给逻辑卷扩容,接下来我们实现一下对逻辑卷yx01进行扩容操作。
3.逻辑卷扩容
扩容操作之前,我们必须要做的是卸载设备和挂载点的关联。
卸载设备和挂载点的关联:
umount /file_yx;
卸载前后的对比:
接着我们对逻辑卷yx01进行扩容操作:
lvextend -L 500M /dev/yexi/yx01;
然后我们要检查硬盘的完整性,并重置硬盘:
e2fsck -f /dev/yexi/yx01;
resize2fs /dev/yexi/yx01;
完成后,我们将扩容后的逻辑卷yx01挂载到/file_yx的挂载点上。
mount -a;
df -h;
查看更改后的挂载信息:
逻辑卷的扩容,我们已经实现,若我们给逻辑卷的容量太大,造成了浪费,那我们就要对逻辑卷进行缩小容量的操作,相对于扩容逻辑卷,缩小逻辑卷有很大的风险,在进行缩小容量之前我们要检查数据完整性,下面我们实现一下缩小容量的操作。
4.逻辑卷缩容
首先,卸载设备和挂载点的关联:
umount /file_yx;
接着检查文件系统的完整性:
e2fsck -f /dev/yexi/yx01;
然后对yx01进行缩容到100M的操作:
resize2fs /dev/yexi/yx01 100M;
最后重新挂载并查看状态:
mount -a;
df -h;
最后结果显示为:
5.逻辑卷快照
快照的工作原理:保存数据某一时刻的状态。快照刚刚建立的时候,它的大小是空的。快照是访问原文件的另一条路径。快照是在数据改变之前将数据原封不动的保存到快照空间里面。注意数据变化的幅度不能超过给定快照空间的大小,否则快照将崩溃。
快照的作用:对某一时刻数据状态的备份提供另一条访问路径,通过快照来备份数据到其它位置,备份完成后,快照就没用了,卸载和移除该快照卷。快照空间的大小取决于数据改变的频度和所需要使用的时间长度,即有限的时间内原文件数据改变的空间大小。(采自百度百科)
接下来我们创建一个快照,并使用快照完成覆盖还原。
首先创建一个文件,
cd /file_yx;
echo "welcome to yexi" >info.txt;
然后创建一个快照:
lvcreate -s -n kzyx /dev/yexi/yx01; #-s:表示创建一个快照,-n:指定快照名,最后指定为哪一个设备创建快照。
lvdisplay; #查看设备信息,下图是快照的信息
在挂载目录下创建一个80M的垃圾文件,查看快照的详细信息:
dd if=/dev/zero of=/file_yx count=1 bs=80M;
lvdisplay|head -40;
可以看出,快照的空间已经使用了80.38%,
接下来我们验证一下快照的效果,通过删除/file_yx/laji文件,使用快照还原的操作。
umount /file_yx;
lvconvert --merge /dev/yexi/kzyx;
mount -a;
这样就已经完成快照回滚的操作啦。
6.删除逻辑卷
本次的实验也马上做完啦,最后我们要将创建的逻辑卷、卷组和物理卷设备删除。首先,我们要卸载逻辑卷和挂载点的关联,即
umount /file_yx;,并删除/etc/fstab中关于本次逻辑卷地信息。
然后删除逻辑卷操作:
lvremove /dev/yexi/yx01;
接着删除卷组:
vgremove yexi;
最后删除物理卷:
pvremove /dev/sdb /dev/sdc;
7.总结
LVM是linux对硬盘分区管理地一种机制,主要目的是解决硬盘容量无法动态调整地缺陷。在LVM中,物理卷处于最底层,管理人员在进行扩容时,只是改变逻辑卷地大小,不涉及物理卷地操作,逻辑卷地创建顺序是从物理卷到卷组再到逻辑卷,而LVM地删除刚好是相反地。