LVM逻辑卷管理

逻辑卷创建

  1. pvcreate /dev/sd{b,c,d}1 将sdb1,sdc1,sdd1生成为pv物理卷(移除用pvremove)
  2. vgcreate vg0 /dev/sd{b,c,d}1 将生成的几个pv加入到卷组vg0中(-s # 指定PE大小,默认为4M,这个时候设备文件还没生成)(移除pv用vgreduce)
  3. lvcreate -n lv0 -L 20G vg0 生成名为lv0,大小为20G的lv,也可以用-l 跟PE个数,或者-l 100%vg也行
    此时,生成设备文件映射–> /dev/mapper/vg0-lv0或者/dev/vg0/lv0,真实路径为/dev/dm-0
  4. mkfs -t ext4 /dev/vg0/lv0创建文件系统
  5. mkdir /lv0;mount /dev/vg0/lv0 /lv0挂载文件系统

扩展(支持热扩展,所以不需要取消挂载)

首先将要转化成pv的盘分区格式改为8e

  1. pvcreate /dev/sdf1 当pv不够时候,pvcreate创建新的pv
  2. vgextend vg0 /dev/sdf1 当vg不够用时添加vg
  3. lvextend -r -L +10G /dev/vg0/lv0,扩展 +10G,也可以写成-L 扩展后的大小,或者-l +100%free,-r一定要写,要不不会同步,很麻烦。

缩减(不支持热缩减)

建议先备份

  1. umount /lv0,不支持热缩减,所以需要先取消挂载
  2. fsck -f /dev/vg0/pv0,需要强制检测,要不会报错。
  3. resize2fs /dev/vg0/lv0 30G,先缩减文件系统大小
  4. lvreduce -L 30G /dev/vg0/lv0,然后缩减lv卷大小
  5. mount /dev/vg0/lv0 /lv0,重新挂载文件系统到挂载点

移除pv

  1. pvdisplay查看哪个pv存放的数据。
  2. pvmove /dev/sdb1移除sdb1上的数据到vg中另一个pv,移除是随机的,不一定移到哪个上。
  3. vgreduce vg0 /dev/sdb1,从vg0中移除sdb1
  4. pvremove /dev/sdb1,将sdb1的pv属性移除,现在他又成了不带属性的磁盘分区了。

vg跨主机迁移

1 查看LV对应的卷组是由几个PV组合的
/dev/sdc /dev/sdd
2 查看下VG名称,确保在目标主机上的名称不要冲突
vgrename vg0 newvg0
lvrename /dev/vg0/lv0 /dev/newvg0/newlv0
3在源主机
umount /dev/newvg0/lv0
vgchange -an newvg0
vgexport newvg0
4 将对应所有PV,接入到目标主机
5 在目标主机
pvscan
vgimport newvg0
vgchange -ay newvg0 激活
mount /dev/newvg0/newlv0 /mnt/newlv0

快照

快照之所以这么快是因为他不是讲数据拷贝过去,而是创建一个空间,当原始文件删除修改时,才将删除的文件放到块快照中,这样就只能保存创建时的文件,所以快照只能恢复到创建快照时的状态。
注意:lv没有格式化创建文件系统时,创建的快照也是没有格式化的快照。

创建快照

lvcreate -n slv0 -s -p r -L 10G /dev/vg0/lv0
和创建lv的命令很像,但是加了-s表示快照,-p r表示使用只读的格式,最后不能写卷组名了,而是要写创建快照的lv的路径。

恢复快照

lvconvert --merge /dev/vg0/sslv0注意这里跟的是快照的路径,而且回复完成后快照就没了。

    原文作者:fengkaipeng
    原文地址: https://www.jianshu.com/p/6415ee92c93d
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞