逻辑卷的原理
逻辑卷的组成上包括物理卷,逻辑组,逻辑卷
物理卷即是磁盘分区或者块设备经过转换以后形成的抽象的逻辑设备
逻辑组即是将物理卷进行统一打包,合成一个更大的逻辑上的分区
逻辑卷是在逻辑组的基础上细分的课动态调节的虚拟磁盘分
其工作原理是通过某种机制将物理上的块设备或者分区抽象的进行封装,然后以逻辑卷的方式统一呈现给
上层的应用
逻辑卷的操作
一:创建逻辑卷
步骤一:首先需要将块设备转换为逻辑卷
使用的命令为 pvcreate
在创建之前可以使用 pv 或者 pvdisplay 命令来查看当前系统上的物理卷,如果没有则不予显示
pvcreate /dev/sdb /dev/sdc 将/dev/sdb 和 /dev/sdc 两个设备文件转换为物理卷设备
步骤二:创建逻辑组
逻辑组里面有一个PE的概念,这个是指定一次分配逻辑卷时的最小单位,相当于文件系统里面块的概念
创建逻辑组之前可以先查看是否有逻辑卷,使用命令 vgs 或者 vgdisplay
创建逻辑组的命令为 vgcreat 命令
-s :指定PE的大小
vgcreate -s 16 /dev/sd{b,c} 创建 一个逻辑组,其中PE的大小为16M,
步骤三:创建逻辑卷
逻辑卷的创建必须是在逻辑组的基础上来创建,且最大的逻辑卷的大小是不能超过逻辑组的大小
创建逻辑卷之前可以查看是否逻辑卷,命令为 lvs 或者 lvdisplay
-n : 指定逻辑卷的名字
-L:指定逻辑卷的大小,数值单位,+50G
-l:指令逻辑卷的大小,以PE为单位,PE的个数 后面还可以这样写 %60VG 代表分出VG的%60的空间
%100FREE 代表分配出全部的内存
lvcreat -n lv0 -l 1000 vg0 创建一个逻辑卷,名字为lv0 ,大小为1000个PE ,从vg0分配
需要注意的是分配的名字并不不是设备的真正的名字,实际上它是一个软链接,
设备名 /dev/vg0/lv0 或者 /dev/mapper/vg0-lv0
真正的名字一般为:
/dev/dm-0
查看逻辑卷的状态
步骤四:格式化创建文件系统,挂载文件系统
二:扩展逻辑卷
扩展逻辑卷的前提是,逻辑组里面还有空间,否则报错
扩展逻辑卷一般情况下有两种需要:
-
扩充容量
-
扩充文件系统,容量扩充后,没有扩充的文件系统,系统是无法识别的,容量就不会发生改变
lvextend
-L:指定扩展的大小,100G 扩展到100G +100G 额外增加100G
+100%FREE 将剩余的空间100%的分配给逻辑卷
lvextend -L 100G /dev/vg0/lv0 将/dev/vg0/lv0 扩容到100G
扩充文件系统:扩充文件系统的过程中不会取消挂载状态
resize2fs /dev/vg0/lv0
三:扩充逻辑组
当逻辑组的容量用完以后,此时逻辑卷不能再进行扩容,如果需要扩容,则需要新添加硬盘
方法是执行步骤一之后开始扩展逻辑组的容量
使用命令 vgextend
vgextend vg0 /dev/sdd 将/dev/sdd硬盘加入逻辑组,实现逻辑组的扩容
四:逻辑卷的替换
逻辑卷一般情况下是不会替换的,不过某些情况下却要进行替换,
比如硬盘提示有故障了,但是还没当掉,此时需要将这块硬盘拆下来,但是不能直接拆,不然会导致逻辑卷错误
其基本思想是,先将要替换的磁盘上面的东西(PE)移动到逻辑组上的任意空间(逻辑组空间要足够,否则添加硬盘)
然后移除该硬盘,最后拔掉故障的硬盘
pvmove /dev/sdc 将/dev/sdc上面的所欲PE全部迁移到逻辑组上有空余的空间上去
然后将/dev/sdc从逻辑组里面移除
vgreduce vg0 /dev/sdc
然后查看 vgdisplay
最后在物理卷上面移除该逻辑卷即可
pvremove /dev/sdc
然后可以拔掉硬盘
首先观察到/dev/sdc硬盘上面已经分好了PE
然后执行移动操作
报错,提示逻辑组的空间不够,现在添加一块磁盘之后再来,先扩充vg0
从vg0里面移除/dev/sdc
执行最后一步,在物理卷上移除/dev/sdc
五:逻辑卷的缩减
逻辑卷的缩减不像逻辑卷的增加一样可以在线的增加,逻辑卷的缩减需要先停止业务之后才能进行缩减
umount /dev/sdc
缩减文件系统到指定的值,不过这里需要特备强调的是,缩减一定要非常的注意当前状态下的逻辑卷
设备已经利用了多少,否则会因为缩减而导致数据的丢失
resize2fs /dev/vg0/lv0 50G 缩减lv0到50G ,一定要查看lv0里面所存的数据是否大于50G,故建议先备份然后再缩减
e2fsck -f /dev/vg0/lv0
resize2fs /dev/vg0/lv0 50G
lvreduce -L 50G /dev/vg0/lv0
实际操作:
六:逻辑卷的整体迁移
需要将整个逻辑卷迁移到另外的机器上的时候
逻辑卷的迁移之前需要检查要迁移到的主机上是否存在同名的逻辑卷组,否则需要改名
源主机:
-
改名的指令:vgrename vg0 vg1 将逻辑组vg0的名字改为vg1
-
将卷组卸载
umount /dev/vg1/lv0
-
将卷组设为禁用,防止迁移的过程中有人使用导致数据丢失
vgchang -a n vg1 将卷组设置为no
vgexport vg1
目标主机:
vgimport vg1
vgchang -a y
实际操作:
目的主机上:
原创文章,作者:Double f,如若转载,请注明出处:http://www.178linux.com/74565