一、linux的lv(logical volume)
lv各层次示例图如下:
核心思想:最底层的pv就是一个一个的磁盘,在保证总体容量的情况下,可以移除部分磁盘,在pv上面设置一个vg,相当于vg把所有pv的容量融合在一起,在vg之上再进行逻辑磁盘的容量分配,vg给lv进行空间分配时,是以pe为单位进行的。pe在lv层面叫le,这些功能都是由linux的dm模块,也就是device mapper模块实现的。
实现lv的好处在于,在保证总体容量,不影响使用的情况下,lv,vg可以扩展或者减少容量,pv同样可以加可以撤。
lv可以实现:多路径(几个路径做备份,那个坏了,另一个可以顶上,而且平时还可以让数据并行传输),快照(快照中只保存数据更改的部分)
二、新建lv过程
新建分区(磁盘类型调整为linux lvm类型的)
1.pvcreate /dev/sda{10,11} 创建pv
2.pvs 简单查看pv信息或者pvdisplay 查看pv的详细信息
pvdisplay /dev/sda10
pvscan 扫描当前系统上的pv
3.创建vg
vgcreate myvg /dev/sda{10,11}
vgcreate 用法:
-s:可以指定pe大小,默认为4M。单位可以为b、k、m、g
延伸:
删除vg命令
vgremove vgname
缩减vg过程:
先执行pvmove命令:
pvmove /dev/sda11,将pv sda11中的数据移到其他pv
vgreduce myvg /dev/sda11
pvremove /dev/sda11 将pv删除
4.vgs
vgdisplay myvg
5.扩展vg
vgextend myvg /dev/sda12
6.创建lv
lvcreate -n LV_NAME -L (容量大小)#M,G VG_NAME
lvcreate -L 50M -n testlv myvg
lv 存放在 /dev/mapper/VG_NAME-LV_NAME, 被/dev/VG_NAME/LV_NAME软链接
7.格式化
mke2fs -j /dev/myvg/testlv
8.挂载
mount /dev/myvg/testlv
9.移除lv
umount /dev/myvg/testlv
lvremove /dev/myvg/testlv
三、扩展lv
先扩展物理边界,再扩展逻辑边界
扩展物理边界:先检查vg是否够用
lvextend -L
-L[+]#:表示扩展了5G,-L +5G ,扩展到5G: -L 5G
扩展逻辑边界
resize2fs
resize2fs -p /path/to/lv 物理设备能提供多少,就扩展多少。
四、缩减逻Lv
umonut /path/to/lv
缩减逻辑边界
resize2fs /path/to/lv # 表示缩减逻辑卷
不能在线缩减,得先卸载
确保缩减后的空间大小,依然能存储原有的数据
在缩减之前应该先检查文件系统,确保文件系统处于一致性状态。e2fsck -f
缩减物理边界
lvredude -L{-} # /path/to/lv
缩减逻辑边界
lvreduce -l /path/to/lv
五、创建快照卷
1.注意:
(1).生命周期为整个数据访问时长,在这段时长内,数据的增长量不能超出快照卷大小,
(2).快照卷应该是只读的
(3).快照卷要跟原卷在同一卷组
2.创建
lvcreate
-s
-p r|w
lvcreate -L #
eg:lvcreate -L 50M -N testlv-snap -s -p r /dev/myvg/testlv
挂载
mount /dev/myvg/testlv-snap /mnt
快照创建后,对原卷中的数据进行改变,不会影响快照中的数据。