lvm
LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制,它由Heinz
Mauelshagen在Linux 2.4内核上实现,目前最新版本为:稳定版1.0.5,开发版
1.1.0-rc2,以及LVM2开发版。Linux用户安装Linux操作系统时遇到的一个常见的难以决定的问题就是如何正确地评估各分区大小,以分配合适的硬盘空间。普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小,当一个逻辑分区存放不下某个文件时,这个文件因为受上层文件系统的限制,也不能跨越多个分区来存放,所以也不能同时放到别的磁盘上。而遇到出现某个分区空间耗尽时,解决的方法通常是使用符号链接,或者使用调整分区大小的工具,但这只是暂时解决办法,没有从根本上解决问题。随着Linux的逻辑卷管理功能的出现,这些问题都迎刃而解,用户在无需停机的情况下可以方便地调整各个分区大小。
*物理卷(Physical Volume,PV)
指磁盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。
*卷组(Volume Group,VG)
类似于非LVM系统中的物理磁盘,其由一个或多个物理卷PV组成。可以在卷组上创建一个或多个LV(逻辑卷)。
*逻辑卷(Logical Volume,LV)
类似于非LVM系统中的磁盘分区,逻辑卷建立在卷组VG之上。在逻辑卷LV之上可以建立文件系统(比如/home或者/usr等)。
- 1建立LVM
首先要fdisk建立分区,特别要注意的是Linux的LVM的格式为8e
作之前用此命令监控
watch -n 1 'pvs;echo ====;vgs; echo ====;lvs; echo ====;df -h /mnt'
df -h /mnt ##查看/mnt可以使用的设备的情况
1 fdisk /dev/vdb ##建立分区
2 pvcreate /dev/vdb1 ##将分区转化成物理卷
3 vgcreate vg0 /dev/vdb1 ##把物理卷制作成一个物理组
4 lvcreate -L 100M -n lv0 vg0 ##在这个物理组中建立出一个设备
-L 指定设备大小 -n 指定设备名字
5 mkfs.xfs /dev/vg0/lv0 ##格式化逻辑卷
6 mount /dev/vg0/lv0 /mnt/ ##挂载逻辑卷
1.2 扩展LVM
注:在xfs系统中,xfs文件系统只能扩大不能缩减
1 lvextend -L 150M /dev/vg0/lv0 ##扩大lvm设备到150M
2 xfs_growds /dev/vg0/lv0 ##将xfs文件系统扩大到设备一样大小
3 fdisk /dev/vdb ##再建立一个分区
4 partprobe ##同步分区信息表
5 pvcreate /dev/vdb2 ##在pv中增加一块设备
6 vgextend vgo / ##将新建立的设备增加到vg0中
7 lvextend -L 300M /dev/vg0/lv0 ##扩大到300M
8 xfs_growfs /dev/vg0/lv0 ##将xfs文件系统扩大到设备
- 3收缩LVM
注:xfs系统不能缩减,etx4系统可以,所以进行缩减的时候,先将xfs格式文件转化为ext4,格式化前必须取消挂载
1 umount /mnt/ ##取消挂载
2 e2fsck -f /dev/vg0/lv0 ##检测磁盘内容防止内容丢失
3 resize2fs /dev/vg0/lv0 200M ##磁盘分区缩减
4 mount /dev/vg0/lv0 /mnt/ ##挂载
5 lvreduce -L 200M /dev/vg/lv0 ##磁盘设备缩减到200M
- 4LVM快照
1 umount /mnt/ ##取消挂载
2 lvcreate -L 40M -n lvmkz -s /dev/vg0/lv0 ##快照大小一般是原设备的1/5, -s是模板对象
3 mount /dev/vg0/lvmkz /mnt/ ##挂载
4 umount /mnt/ ##取消挂载
5 lvremove /dev/vg0/lvmkz ##删除快照
6 lvcreate -L 20M -n lvmkz -s /dev/vg0/lv0 ##重新拍照
.......
下图可知在拍照前建立的文件,删除后,再拍照可以恢复。因为挂载到上面的只是数据备份,删除了也不会影响原文件。
但是在照片之后的会被永久性删除。
- 4删除LVM
删除顺序和建立顺序相反umount /mnt/
umount /mnt/
1 df
2 umount /mnt/
3 df
4 lvremove /dev/vg0/lvmkz ##删除快照
5 lvremove /dev/vg0/lv0 ##删除逻辑卷
6 vgremove vg0 ##删除物理组
7 pvremove /dev/vdbn(n=1..n-1,n) ##删除物理卷
8 pvs
9 vgs
10lvs