逻辑卷管理器(LVM)
原理图如下:
先准备一个分区/dev/sdb1,注意也存在ID问题,选择8e。
1.先把磁盘变成物理卷
在做这步前可以先看下系统中存在的物理卷,没有就什么都不会显示。
把我们准备好的两个磁盘变成物理卷,注意我那使用旧的格式化的分区磁盘,可能会出现上面有文件系统或者卷标类型的问题,所以尽量使用新磁盘做实验。如果出现这种情况,可以使用dd命令来解决问题。
以下命令pvcreate是把 /dev/sdb1和/dev/sdc变成物理卷
显示pv信息
pvs:简要pv信息显示
pvdisplay
2.创建卷组:使用命令vgcreate,创建卷组的时候有个单位叫PE(可以理解成是分区时候的块大小),-s 16M就是在指定PE大小。
显示卷组
vgs
pvdisplay 可以看到每个磁盘分多少个PE,记得区别开这个是查物理卷信息的指令啊,在这里使用只是让我们看下PE数量,实际想要查看卷组的具体信息还是要使用vgdisplay查看
vgdisplay 查看卷组上分配多少个PE,主要这个命令是来查看卷组信息的
3.创建逻辑卷使用命令lvcreate,注意这里-l是使用PE为单位,1000就相当于创建1000个逻辑卷单位,那就是16M*1000=16000M/1024=15.62G的样子吧,其实还可以使用-L指定创建多大的空间(-L 20G,就可以理解创建一个20G的),还有一种方式是 -l +1000(就是在原有逻辑卷空间上再增加1000PE),-L +20G (就是在原有逻辑卷空间上再增加20G)。
4.开始执行格式化就可以了
5.格式化完成后就是挂载了
这个时候你可以使用df -h(人类易于识别方式显示,理解成自动单位转化就可以了)看看你刚刚挂载的逻辑卷,就是你刚刚创建的那个16G左右。
到这步如果想以后开机使用这个逻辑卷,记得要去/etc/fstab里面写配置文件。
到以上步骤就实现了一个逻辑卷的创建过程。
下面来实现一个逻辑卷的扩展:前提是我们卷组里面有可用的PE来提供给我们扩展
扩展逻辑卷的命令是vextend -L 100G(扩到100G,如果使用+100G是原有基础上加100G,本来是16G,使用加扩完后是116G,不使用加的话扩完后只是扩到100G这两个概念注意区别。)
下面例子里面有个LE单位跟我们物理卷里面遇到的PE是一个概念,只是一个是在物理卷的名字,一个是在逻辑卷里面的名字。
此时df查看磁盘空间还没有同步,就是我们之前讲的文件系统影响到的问题,在这里再次使用命令resize2fs,在挂载的情况下直接去同步我们文件系统就好,这种方式很可靠,在挂载情况下重新格式化,并不会导致原有逻辑卷数据丢失。
一次把卷组里面全部空间全部扩到逻辑卷的例子:这里需要写+100%,直接写100%无效。
注意一个小问题:
resize2fs 这个命令至针对ext系列的文件系统
xfs文件系统用下面这个命令来扩展就好了
下面一个问题是卷组被我们使用完,那么我就需要对卷组进行容量扩充了
1.首先给块新磁盘,把磁盘变成物理卷
2.使用命令vgextend扩展卷组
下一个问题,怎么从一个已经全部PE已经使用了的逻辑卷里面拆下来一个磁盘?
1.首选需要对需要拆下来的磁盘上PE进行搬家:
所存在的卷组里面还有足够的PE来存放需要搬家的磁盘上面的PE。
2./dev/sdc已经不提供服务,可以将他重我们卷组中移除了
3.这个时候他还是一个物理卷,我需要连物理卷也给他删了,变成一个普通磁盘。
下一个问题是逻辑卷的缩减
1.缩减没有办法在线执行的,所以一定要先取消挂载
2. 缩减文件系统,做之前先还是做下备份,然后系统强制要求我们做一次文件系统的完整性检查,使用命令e2fsck -f
3.检查没有问题可以使用resize2fs 缩减文件系统了。
4.缩减逻辑卷,这里会提醒你可能会导致数据丢失,所以备份的重要性就出来了,生产中数据安全是一切的基础,所以一定要备份。
5.可以把缩减完后的逻辑卷重新挂载上去使用了,实验结束
mount /dev/vg0/lv0 /mnt/lv0
注意:生产中基本上很少出现这种逻辑卷的缩减,一般就是加比较多。
其实我们还有一个比较小的细节可以在逻辑卷的扩展中使用:相当于把逻辑卷扩展个文件系统扩展一步做到位,推荐使用。
lvextend -l +100%FREE /dev/vg0/lv0
resize2fs /dev/vg0/lv0
上面两步的功能是等同于下面一步的功能。
lvextend -r -L 100G /dev/vg0/lv0
下一个问题是迁移卷组
1.先给我们需要迁移的卷组还有逻辑卷一个新的卷组名和逻辑卷名:
2.取消挂载
3.卷组改变为不可用的状态
4.导出卷组
pvscan(等同于pvs) 扫描物理卷 pvdisplay 查看物理卷详细信息
5.移除硬盘
6.将硬盘插到新机器上面,先需要导入vgimport
7.重新激活,挂载后就可正常使用了。
mount /dev/newvg0/newlv0 /mnt/newlv0
原创文章,作者:祥健,如若转载,请注明出处:http://www.178linux.com/74691