lvm
1.什么是lvm
LVM( Logical Volume Manager逻辑卷管理)是Linux环境下对磁盘分区进行管理的一种机制,是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性
用途:普通的磁盘分区管理方式 在分区划分好之后就无法改变其大小,但lvm逻辑卷管理可以 使用户在不停机的情况下可以方便地调整各个分区大小
2.基本概念
pv | 物理卷 被lv命令处理过的物理分区 |
vg | 物理卷组 被组装到一起的物理卷 |
pe | Lvm设备的最小存储单元 Lvm是pe的整数倍 pe的大小是可以配置的默认为4MB pv是由大小等同的pe组成的 |
Lvm | 逻辑卷 是一种物理存贮设备(磁盘),可以增大缩减并保持原有数据不变 是存储系统最底层的存储单元 |
Lvm建立
步骤:
1.建立一个未被格式化的分区 并设定分区标签为8e
pvcreate /dev/vdb1 ##改变该设备存储区域 在系统中存在方式
vgcreate vg0 /dev/vdbl ##这里我们设定物理卷组名称为vg0 -s 指定物理卷组大小
lvcreate -L 20M -n lv0 vg0 ##从vg0分给lv020M空间
mkfs. xfs /dev/vg0/lv0 /mnt/ ##格式化之后可以挂载
df -H /mnt/ ##查看挂载的详细信息
watch -n 1 'pvs;echo====;vgs;echo====;lvs;echo====; df -H /mnt/' ##该命令可以监控Lvm的变化情况
建立新的分区设定大小为1GB 修改标签为Lvm
改变该分区物理存储形式 创建物理卷
创建物理卷组 将16M的物理卷给物理卷组
创建lv0
格式化创建的逻辑卷
挂载Lvm逻辑卷设备
Lvm的拉伸与缩减
当挂载设备的存储空间不够用来存放新产生的数据时,我们可以通过拉伸Lvm设备达到原数据信息不变,增加存储空间存放新产生的数据的目的
Lvm支持热拉伸
1.当vg中的剩余容量充足情况
lvextend -L 80M vg0 ##拉伸设备
xts_grow /dev/vg0/lv0 ##拉伸文件系统
拉伸到100M 剩余容量充足 可以直接拉伸
2.当vg中的容量不足时
再次建立分区 并修改标签8e
pvcreate /dev/vdb2
vgextend vg0 /dev/vdb2 ##拉伸物理卷组
lvextend -L 80M vg0
xfs_grow /dev/vg0/lv0
需要1.5GB vg0中剩余容量不足时 会出现提示信息
我们需要重新创建一个Lvm分区
转化新创建分区的储存方式
增加/dev/vdb2的容量到vg0
将lv0的容量扩大到1.5GB
扩大挂载设备的容量 存放数据
3.针对ext文件系统的设备的拉伸和缩减
unount /mnt/ ##卸载
mkfs.ext4 /dev/vg0/Lv0 ##将设备转换为ext文件系统
mount /dev/vg0/lv0 /mnt ##再次挂载
卸载后转换文件系统
(1)拉伸
lvextend -L 250M /dev/vg0/lv0
resize2fs /dev/vg0/lv0
(2)缩减
umount /dev/vg0/lv0
e2fsck -f /dev/vg0/lv0 ##查看逻辑卷中的数据 防止数据被损坏
resize2fs /dev/vg0/lv0 100M
lvreduce -L 100M /dev/vg0/lv0
mount /dev/vg0/lv0 /mnt
注意:该文件系统下 缩减必须先卸载挂载点
查看逻辑卷中的数据 防止缩减过多对原数据造成破坏
减少分区容量至100M
再次挂载逻辑卷设备 可以看到分区容量减小
缩减vg
(1)移除空闲的pv
vgreduce vg0 /dev/vdb2
(2)移除含有数据的设备(将设备1上的数据转移到设备2上 移除设备1)
pvmove /dev/vdbl /dev/vdb2
vgreduce vg0 /dev/vdb1
pvremove /dev/vdb1
移除含有数据的设备 将要移除的设备的数据转移到另一个设备当中 执行第一条命令
执行第二条命令 移除要移除设备给vg0的容量
执行第三条命令成功移除
lvm快照的建立
lvcreate -L 40M -n lv0up -s /dev/vg0/lv0 ##创建Lvm设备/dev/vg0/lv0的快照 该快照名称为lv0up
mount /dev/vg0/lv0up /mnt/ ##将该快照挂载
当我们不小心的删除了Lvm里的文件 我们可以将该快照卸载后删除 再重新创建一个快照
rm -fr /mnt/*
umount /mnt/
lvremove /dev/vg0/lv0up ##删除快照
lvcreate -L 40M -n lv0up -s /dev/vg0/lv0 ##再创建快照
mount /dev/vg0/lv0up /mnt/ ##再次挂载
创建快照
查看
Lvm的删除
lvremove /dev/vg0/lv0up ##Lvm快照的删除命令
Lvm的删除方式
lvremove /dev/vg0/lv0
vgremove vg0
pvremove /dev/vdb2
vgs ##可以查看物理卷组的详细信息 pvs lvs
Lvm的移除过程