LVM(Logical Volume Manager)是一个应用于 Linux 内核的本地卷管理器 (Logical Volume Manager),它是Linux环境下对磁盘分区进行管理的一种机制,通过建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。
每个Linux的使用者,在装系统的时候,给系统分区是一个让人头疼的问题。管理员不仅要考虑到当前某个分区需要的容量,还要遇见到该分区以后的使用情况,给其相应的空间。如果估计不当,会导致某个分区不够用,这时可能要备份系统,清楚硬盘,重新对硬盘分区,然后恢复数据到新分区等。而对有些服务器来说,停机是不能允许的,那么当磁盘空间耗尽的话,该怎么办呢?而LVM就完美的解决了这些问题,他可以使管理员自由的分区,并能方便实现文件系统跨越分区和不同磁盘。
我们前面提到LVM通过在硬盘和分区之上的一个逻辑层,来实现管理。而这个逻辑层的组成是什么呢?它有三个层次:
1,物理卷
它是最底层的,用pv标识,可以把任何一种物理块设备创建为物理卷,例如磁盘分区或RAID设备都能被创建为物理卷
2,卷组
用vg标识,它由pv组成,可以把多个pv创建为一个卷组。vg的大小由物理卷的大小来决定,vg的大小可以扩展或者缩减,扩展或缩减之后其中存放的数据不会丢失。
3,逻辑卷
用lv标识,建立在vg之上,可以在vg上建立多个,建立之后就可以格式化为磁盘分区来使用了。
逻辑卷非常重要的功能是支持:快照
什么是快照呢?
在LVM中,快照存放在相应的卷组中,它也是一个逻辑卷。快照是原文件的第二条访问路径,通过快照可以访问原文件,但这个原文件是建立快照那一刻的文件的状态,对快照备份就是对这一时刻的文件备份,这就保证了在备份的时候,原文件不改变,保证了数据的完整和可用性。
而快照工作原理是什么呢?
快照刚建立的时候是空的,其中存放的是建立快照之后那些被改变的文件,也就是说快照的大小会随着你磁盘写入量的增大而增加。当我们恢复或使用快照的时候,系统会把快照中存放的文件还原为原来的状态,这也就相当于把文件恢复到建立快照时的状态了。
快照的大小,取决于备份数据的时间,及这段时间内,磁盘数据的变化量。备份完后,删除快照就好了。
既然LVM有三个层次,那么我们必须先将物理设备创建成物理卷,在组合物理卷创建为卷组,再在物理卷上创建逻辑卷,最后把逻辑卷格式化为相应的文件系统就可以使用了。
我们先来了解一下和物理卷,卷组,逻辑卷相关的一些命令:
pvcreate 创建物理卷
pvremove 删除物理卷
pvmove 移动物理卷中的数据
pvscan 扫描物理卷
pvdisplay 显示物理卷的详细信息
pvs 显示物理卷的摘要信息
vgcreate 创建卷组
vgdisplay 显示卷组的详细信息
vgextend 扩展卷组
vgreduce 缩减卷组
vgremove 删除卷组
vgs 显示卷组的摘要信息
vgscan 扫描卷组
lvcreate 创建逻辑卷
lvdisplay 显示逻辑卷的信息信息
lvremove 删除逻辑卷
lvreduce 缩减逻辑卷
lvextend 扩展逻辑卷
lvs 显示逻辑卷的摘要信息
lvscan 扫描逻辑卷
下面讲解创建过程:
fdisk /dev/sda
先对磁盘分区,创建我们要使用的分区,id为"8e"
一,创建
pvcreate /dev/sda5 /dev/sda6
把这两个磁盘分区创建为逻辑卷
vgcreate -s 8M myvg /dev/sda5 /dev/sda6
-s 用于指定PE的大小,不指定默认是4M,单位可以是K,M,G,T等
把这两个物理卷创建为卷组,卷组名myvg
lvcreate -L 1G -p rw -n lv1 myvg
-L 指定创建的逻辑卷的大小,单位可以是K,M,G,T
-n 指定创建的逻辑卷的名字
-p 可以指定逻辑卷的权限,例r|rw
在卷组myvg中创建逻辑卷mylv
mke2fs -j /dev/myvg/lv1
格式化这个逻辑卷为ext3文件系统,之后挂载就可以使用了
mkdir /mylv
vi /etc/fstab
/dev/myvg/lv1 /mylv ext3 defaults 0 0
在文件中添加如下行,可以使这个逻辑卷在开机时自动挂载
mount /dev/myvg/lv1 /mylv
挂载lv1,使现在就能使用
二,查看相关信息
pvdisplay
查看所有物理卷的信息
pvdisplay /dev/sda5
查看此物理卷的信息
vgdisplay
查看所有卷组的信息
vgdisplay /dev/myvg
查看此卷组的信息
lvdisplay
查看所有逻辑卷的信息
lvdisplay /dev/myvg/lv1
查看此逻辑卷的信息
三,扩展缩减
文件系统定义的是一个软边界,lv创建的是一个硬边界。当我们扩展逻辑卷的时候:先要扩展硬边界,再扩展软边界。当我们缩减逻辑卷的时候:先要缩减软件边界,再缩减硬边界
扩展卷组:
vgextend myvg /dev/sda7 (sda7的id为8e)
给卷组再新建一个物理卷,这样卷组的空间就变大了
缩减卷组:
pvmove /dev/sda6
缩减卷组之前,先将要移除的物理卷中的数据移走,它会自动识别移动数据
vgreduce myvg /dev/sda6
去除了sda6,也就缩减了卷组的大小
扩展逻辑卷:
lvextend -L 2G /dev/myvg/lv1
把逻辑卷扩展到2G
resize2fs /dev/myvg/lv1
自动扩展文件系统至和逻辑卷相同大小
缩减逻辑卷:
umount /dev/myvg/mylv
缩减时要先卸载
e2fsck -f /dev/myvg/lv1
强制检测这个文件系统
resize2fs /dev/myvg/lv1 1G
缩减文件系统到1G
lvreduce -L 1G /dev/myvg/lv1
缩减逻辑卷到1G
mount /dev/myvg/lv1 /mylv
挂载之后就可以继续使用了
四,快照的创建
lvcreate -L 100M -s -p r -n snap_lv1 /dev/myvg/lv1
-L 创建快照的大小
-s 指定要创建的是快照
-p 指定这个快照的权限
-n 创建快照的名字
给/dev/myvg/lv1创建一个快照snap_lv1
mkdir /backup
mount /dev/myvg/snap_lv1 /mnt
挂载这个快照至/mnt下
tar jcf /backup/snap_lv1.tar.bz2 /mnt
实现对快照的保存,也就实现了对建立快照时文件系统的备份
umount /mnt
卸载快照
lvremove /dev/myvg/snap_lv1
删除快照
本文转自 leejia1989 51CTO博客,原文链接:http://blog.51cto.com/leejia/798541,如需转载请自行联系原作者