lvm相关概念
lvm的重点在于可以弹性调节文件系统的容量。
lvm的做法是将几个物理的分区或磁盘通过软件组合成一块看起来是独立的大磁盘VG,然后将这块大磁盘分成可使用的小分区LV最终就能挂载使用了。而PE决定了这样的文件系统可以进行扩充和缩减。
PV:物理卷。我们实际的分区需要调整系统标识符为8e然后在经过pvcreat的命令将它转成lvm最底层的物理卷。
VG:物理卷组。LVM大磁盘就是将很多PV整合成这个VG。那么这个大磁盘可以达到多少容量呢?因为每个VG最多仅能包含65534个PE而已。如果使用LVM默认的参数则一个VG最多可以达到256G。
PE:物理扩展块。LVM默认使用4M的PE。它是LVM最小的存储块,也就是说我们文件数据都是由写入PE开始的。pe有点像文件系统里面块block的大小。所以说调整PE会影响文件系统的最大容量。
LV:逻辑卷。最终的VG还是会被切成LV这个LV就是最后可以被格式化使用的类似分区。为了方便用户利用LVM来管理系统,因此LV的设备文件名通常指定为/dev/vgname/vname
如何弹性改变文件系统的容量?
通过交换pe进行数据交换,将原本的LV内的PE转移到其他设备上以降低LV的容量。
-
实现流程
PV阶段:对/dev/vda1等具体分区进行操作。先通过fdisk改变system id为8e。然后使用pvcreat、pvscan创建和查看pv。
最后一行显示的是整体pv的量已经被使用的量,剩余pv的量
VG阶段:以已有的pv创建VG。
主要的工具:vgcreate、vgextend、vgreduce、vgremove、vgdisplay、vgscan、vgdisplay
注意:与pv不同vg的名字是自定义的,pv的名称是分区的设备文件名,而vg的名称却是自己定义的。
vgcreate: vgcreate [-s N[mgt]] VG名称 PV名称
s后面接PE的大小单位可以是mgt,并且pe的大小必须是2的幂次方
Screenshot from 2018-08-08 10-31-43.png
出现问题
使用vgcreate时并未同时加入vdb3和vdb4,导致vdb4并未出现在cq组里。
删除cq组重新添加,并且查看。
也可以通过vgextend cq /dev/vdb4 增加vg的容量
LV阶段:从vg中切出lv。
lvcreate、lvscan、lvdisplay、lvextend、lvreduce、lvremove、lvresize
lvcreate -l -n
lvdisplay查看lv的全名以及lv的大小
文件系统阶段:
mkfs -t xfs /dev/cq/cqlv注意lv的全名
mkdir /mnt/lvm
mount /dev/cq/cqlv /mnt/lvm
df
从以上步骤我们已经构建好了一个lv了。
-
放大lv的容量
步骤;
1、用fdisk设置新的具有8e systemid的分区
2、利用pvcreat创建pv
3、利用vgextend将新的pv加入vg里
4、利用lvresize将新加入的pv内的pe加入lv中
5、通过resize2fs将文件系统的容量确实增加(针对文件系统来处理的)
lvresize非常灵活的改变lv的大小
如果你已经有数据在lvm扇区的话这个数据不会轻易死掉的。用dumpe2fs检查/dev/cq/cqlv的容量时,会发现后续的group增加了。
&blockgroup(知识点)
- 缩小lvm容量
抽离/dev/vdb5
pvdisplay 先查看/dev/vdb5的大小,并尝试计算计算机需要缩小到多少。
496+96=592
不支持小数位
出现此提示成功。
缩小文件系统不支持在线进行。
我们知道vdb5有12个pe
lvresize -l -12 /dev/cq/cqlv 降低lv的容量
将/dev/vdb5移出cq这个vg,在进行这个操作前必须确定/dev/vdb5中的pe完全不被使用才能抽离。
‘最后执行vgreduce
vgreduce cqlv /dev/vdb5
pvremove /dev/vdb6
- LVM的系统快照
当最初建立系统快照时,lvm会预留一个区域作为数据存放处。此时快照区没有任何数据,而快照区与系统区共享所有pe数据。假设系统区的一部分内容改变了,则会提前将未改变的内容移动到快照区。这只备份有改动的数据。
快照区与被快照的lv必须在同一个vg上。
网友评论