什么是LVM?
LVM,即逻辑卷管理。是Linux环境下对磁盘分区的一种管理机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。
- 物理卷(PV):磁盘分区或从逻辑上与磁盘分区具有相同功能的设备,是LVM的基本存储逻辑块,但和基本的物理存储介质比较,却包含有与LVM相关的管理参数。
- 卷组(VG):类似于非LVM系统中的物理磁盘,其由一个或多个物理卷PV组成。可以在卷组上创建一个或多逻辑卷(LV)。
- 逻辑卷(LV):类似于非LVM系统中的磁盘的分区,逻辑卷建立在卷组VG之上。在逻辑卷LV之上可以建立文件系统(/home或者/usr)。
- 物理块(PE):每一个物理卷PV被划分为物理块(PE)的基本单元,具有唯一编号的PE是可以被LVM作为寻址的最小单元。
LVM的制作
首先划分lvm所用到的设备,这些设备功能id必须为Linux LVM。
使用监控命令监控创建的物理卷,物理卷组和逻辑卷。
pvcreate /dev/vdb1 把物理分区做成物理卷
vgcreate vg0 /dev/vdb1 用制作好的/dev/vdb1这个物理卷制作一个物理卷组vg0
lvcreate -L 20M -n lv0 vg0 在vg0组中建立出lv0设备,-L指定设备大小,-n指定设备名字
mkfs.xfs /dev/vg0/lv0 格式化成xfs
mount /dev/vg0/lv0 /mnt 挂载到/mnt
LVM设备的扩大
对于xfs文件系统只能扩大不能缩减
1>当物理卷组vg中剩余容量充足时:
lvextend -L 60M /dev/vg0/lv0 拉伸到60M
xfs_growfs /dev/vg0/lv0 拉伸文件系统
2>当物理卷组vg中的容量不足时:
fdisk /dev/vdb 再次建立分区并修改标签为8e
n
+400M
t
8e
wq
partprobe 同步分区表
pvcreate /dev/vdb2 在pv中增加一块设备/dev/vdb2
vgextend vg0 /dev/vdb2 把新建立的/dev/vdb2添加到vg0中
lvextend —L 500M /dev/vg0/lv0 扩大lvm设备到500M
fs_growfs /dev/vg0/lv0 扩大xfs文件系统到设备大小
ext4文件系统设备的拉伸与缩减
xfs文件类型只能扩大,不能缩小。而ext4文件类型既可以扩大也可以缩小。
umount /mnt
mkfs.ext4 /dev/vg0/lv0 将逻辑卷格式化为ext4格式
mount /dev/vg0/lv0 /mnt
blkid
拉伸:拉伸不用卸载
lvextend -L 450M /dev/vg0/lv0
resize2fs /dev/vg0/lv0 resize2fs:调整ext4文件系统的大小,放大或缩小没有挂载的文件系统的大小
缩减lv:
umount /dev/vg0/lv0 先卸载
e2fsck -f /dev/vg0/lv0 检测文件系统完整性
resize2fs /dev/vg0/lv0 100M 缩减文件系统到100M
mount /dev/vg0/lv0 /mnt/
lvreduce -L 100M /dev/vg0/lv0 缩减lv0到100M
vg缩减
在vg缩减时只能缩减没有被占用的设备
pvmove /dev/vdb1 /dev/vdb2 将vdb1中的数据移至vdb2中,前提是vdb2中的空间够我们转移
vgreduce vg0 /dev/vdb1 把vg0中的/dev/vdb1删除
pvremove /dev/vdb1 把/dev/vdb1上的lvm管理信息删除
逻辑卷的快照
快照逻辑卷是 LVM 存储的另一项灵活功能。 LVM 快照是临时保留所更改的逻辑卷的原始数据的逻辑卷。快照提供原始卷的静态视图 , 从而能够以一致状态备份其数据快照卷大小只需足以存储在它存在期间更改的数据即可如果数据更改量大于快照存储容量 , 则快照将自动变为不可用( 原始卷原封不动 , 仍然需要从卷组中手动解除挂载和删除不可用的快照 )
创建快照
umount /mnt
lvcreate -L 20M -n lv0-backup -s /dev/vg0/lv0 创建快照lv0-backup
/dev/vg0/lv0建立快照,-L 指定快照大小,-n指定快照名字 -s 指定快照模板设备
挂载快照
mount /dev/vg0/lv0-backup /mnt/
cd /mnt
ls
删除文件,卸载快照,删除快照
rm -fr /mnt/*
umount /mnt/
lvremove /dev/vg0/lv0-backup
重新建立快照,挂载快照
逻辑卷的删除
umount /mnt/ 卸载
lvremove /dev/vg0/lv0-backup 删除快照
lvremove /dev/vg0/lv0 删除逻辑卷
vgremove vg0 删除物理卷组
pvremove /dev/vdb2 删除物理卷