1.lvm简介
LVM是 Logical Volume Manager(逻辑卷管理)的简写,它由Heinz Mauelshagen在Linux 2.4内核上实现。LVM将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间不够使用的时候,可以继续将其它的硬盘的分区加入其中,这样可以实现磁盘空间的动态管理,相对于普通的磁盘分区有很大的灵活性。
与传统的磁盘与分区相比,LVM为计算机提供了更高层次的磁盘存储。它使系统管理员可以更方便的为应用与用户分配存储空间。在LVM管理下的存储卷可以按需要随时改变大小与移除(可能需对文件系统工具进行升级)。LVM也允许按用户组对存储卷进行管理,允许管理员用更直观的名称(如"sales'、 'development')代替物理磁盘名(如'sda'、'sdb')来标识存储卷。
LVM的工作原理其实很简单,它就是通过将底层的物理硬盘抽象的封装起来,然后以逻辑卷的方式呈现给上层应用。在传统的磁盘管理机制中,我们的上层应用是直接访问文件系统,从而对底层的物理硬盘进行读取,而在LVM中,其通过对底层的硬盘进行封装,当我们对底层的物理硬盘进行操作时,其不再是针对于分区进行操作,而是通过一个叫做逻辑卷的东西来对其进行底层的磁盘管理操作。比如说我增加一个物理硬盘,这个时候上层的服务是感觉不到的,因为呈现给上层服务的是以逻辑卷的方式。
LVM最大的特点就是可以对磁盘进行动态管理。因为逻辑卷的大小是可以动态调整的,而且不会丢失现有的数据。如果我们新增加了硬盘,其也不会改变现有上层的逻辑卷。作为一个动态磁盘管理机制,逻辑卷技术大大提高了磁盘管理的灵活性。
2.基本的逻辑卷管理概念:
PV(Physical Volume)- 物理卷
物理卷在逻辑卷管理中处于最底层,它可以是实际物理硬盘上的分区,也可以是整个物理硬盘,也可以是raid设备。
VG(Volumne Group)- 卷组
卷组建立在物理卷之上,一个卷组中至少要包括一个物理卷,在卷组建立之后可动态添加物理卷到卷组中。一个逻辑卷管理系统工程中可以只有一个卷组,也可以拥有多个卷组。
LV(Logical Volume)- 逻辑卷
逻辑卷建立在卷组之上,卷组中的未分配空间可以用于建立新的逻辑卷,逻辑卷建立后可以动态地扩展和缩小空间。系统中的多个逻辑卷可以属于同一个卷组,也可以属于不同的多个卷组。
关系图如下:
PE(Physical Extent)- 物理块
LVM 默认使用4MB的PE区块,而LVM的LV最多仅能含有65534个PE (lvm1 的格式),因此默认的LVM的LV最大容量为4M*65534/(1024M/G)=256G。PE是整个LVM 最小的储存区块,也就是说,其实我们的资料都是由写入PE 来处理的。简单的说,这个PE 就有点像文件系统里面的block 大小。所以调整PE 会影响到LVM 的最大容量!不过,在 CentOS 6.x 以后,由于直接使用 lvm2 的各项格式功能,因此这个限制已经不存在了。
3.安装LVM管理工具
rpm -qa | grep lvm
yum install lvm
4.建立LVM
首先要fdisk建立分区,特别要注意的是Linux的LVM的格式为8e,做之前用watch命令监控
watch -n 1 'pvs;echo ====;vgs; echo ====;lvs; echo ====;df -h /mnt'
df -h /mnt
fdisk /dev/vdb
pvcreate /dev/vdb1
vgcreate vg0 /dev/vdb1
lvcreate -L 100M -n lv0 vg0
5.扩展LVM
注:在xfs系统中,xfs文件系统只能扩大不能缩减
lvextend -L 150M /dev/vg0/lv0
xfs_growds /dev/vg0/lv0
fdisk /dev/vdb
partprobe
pvcreate /dev/vdb2
vgextend vgo /
lvextend -L 300M /dev/vg0/lv0
xfs_growfs /dev/vg0/lv0
6.缩减LVM
注:xfs系统不能缩减,etx4系统可以,所以进行缩减的时候,先将xfs格式文件转化为ext4,格式化前必须取消挂载
umount /mnt/
blkid
mkfs.ext4 /dev/vg0/lv1
e2fsck -f /dev/vg0/lv0
resize2fs /dev/vg0/lv0 200M
mount /dev/vg0/lv0 /mnt/
lvreduce -L 200M /dev/vg/lv0
7.LVM快照
1 umount /mnt/
2 lvcreate -L 40M -n lvmkz -s /dev/vg0/lv0
3 mount /dev/vg0/lvmkz /mnt/
4 umount /mnt/
5 lvremove /dev/vg0/lvmkz
6 lvcreate -L 20M -n lvmkz -s /dev/vg0/lv0
在快照前建立的文件,删除后,再通过快照可以恢复。因为挂载到上面的只是数据备份,删除了也不会影响原文件。但是在快照之后存储的数据会被永久性删除。
8.删除LVM
删除顺序和建立顺序相反
umount /mnt/
df
lvremove /dev/vg0/lvmkz ##删除快照
lvremove /dev/vg0/lv0 ##删除逻辑卷
vgremove vg0 ##删除物理组
pvremove /dev/vdbn(n=1..n-1,n) ##删除物理卷