http://uselinux.blog.51cto.com/1394909/697915
逻辑卷(LVM) 介绍
一、逻辑卷(LVM)介绍
LVM的全名是逻辑卷管理员(Logic Volume Manager),它以卷为单位,不像传统磁盘以分区为单位,以便可以弹性地调整磁盘空间。他可以在线调整卷的大小,也可以可读可写的模式建立快照。
物理卷(Physical Volume,PV):物理卷是构成LVM的最主要的软件包,在Linux系统中,物理卷就是磁盘的分区,要不过要作为LVM物理卷,其分区系统识别码必须标识为LVM
卷组(Volume Group,VG):可以使用一个或多个物理卷组成一个卷组
逻辑卷(Logic Volume,LV):你可以把逻辑卷当成分区一样使用,逻辑卷的空间是由卷组提供的。
下表是LVM的管理工具:
|
物理卷
|
卷组
|
逻辑卷
|
扫描
|
Pvscan
|
Vgscan
|
Lvscan
|
查看
|
Pvdisplay
|
Vgdisplay
|
Lvdisplay
|
新建
|
Pvcreate
|
Vgcreate
|
Lvcreate
|
卸载
|
Pvremove
|
Vgremove
|
Vgremove
|
放大
|
无
|
Vgextend
|
Lvextend
|
缩小
|
无
|
Vgreduce
|
Lvreduce
|
1、建立物理卷
新建分区:
[root@linux~]#parted –s /dev/sdb mklabel msdos
[root@linux~]#parted –s /dev/sdb mkpartfs primary ext2 0 1024
[root@linux~]#parted –s /dev/sdb mkpartfs primary ext2 1024 2048
[root@linux~]# parted –s /dev/sdb mkpartfs primary ext2 2048 3072
[root@linux~]# parted –s /dev/sdb mkpartfs primary ext2 3072 4096
设置系统标识为LVM:
[root@linux~]#parted –s /dev/sdb set 1 lvm
[root@linux~]#parted –s /dev/sdb set 2 lvm
[root@linux~]#parted –s /dev/sdb set 3 lvm
[root@linux~]#parted –s /dev/sdb set 4 lvm
[root@linux~]#fdisk –l /dev/sdb | grep –i lvm
建立物理卷:
[root@linux~]#pvcreate /dev/sdb{1,2,3,4}
查看一下我创建的物理卷:
[root@linux~]#pvdisplay
用pvs查看一下:
可以看到我/dev/sdb的四个分区都已经成为物理卷
2、建立卷组
VGNAME是卷组的名称,第一个VGNAME都是唯一的,最好不要与/dev/下的其他设备名冲突。以下是我用/dev/sdb1,/dev/sdb2这两个物理卷建立一个叫mainVG的卷组
[root@linux~]#vgcreate mainVG /dev/sdb1 /dev/sdb2
查看一下我的卷组信息
[root@linux~]#vgdisplay mainVG
[root@linux~]#vgs
3、建立逻辑卷
逻辑卷的设备文件被存储在/dev/VGNAME/LVNAME,以下是我建立一个1G大小的逻辑卷空间
[root@linux~]#ls /dev/mainVG
[root@linux~]#lvcreate –L 1G –n 1stLV mainVG
建立出来的逻辑卷,你就可以当做一个分区,在逻辑卷上建立文件系统,挂载这个文件系统
[root@linux~]#mkfs.ext3 –F /dev/mainVG/1stLV
三、调整LVM
1、调整卷组
[root@linux~]#vgdisplay mainVG | grep “VG Size”
[root@linux~]#pvdisplay /dev/sdb3 | grep “PV Size”
以上可以看到,现在我的mainVG大小是1.9G,而且我的一个分区/dev/sdb3大小是900多M
[root@linux~]#vgextend mainVG /dev/sdb3
[root@linux~]#vgdisplay mainVG | grep “VG Size”
现在我的mainVG大小就变成了2.85G了,增加大小正好是/dev/sdb3
[root@linux~]#vgreduce mainVG /dev/sdb3
[root@linux~]#vgdisplay mainVG | grep Size
然后我再把/dev/sdb3从mainVG中卸载,mainVG又回到原先的1.9G了
2、调整逻辑卷
放大:先放大LV再放大文件系统
缩小:先缩小文件系统,再缩小LV
先查看一下我的1stLV文件系统的大小
[root@linux~]#tune2fs –l /dev/mainVG/1stLV |grep ‘Block’
再看看我的逻辑卷大小
[root@linux~]#lvdisplay /dev/mainVG/1stLV | grep ‘LV Size’
现在我把/dev/mainVG/1stLV这个逻辑卷增加500M
[root@linux~]#lvextend –L +500M /dev/mainVG/1stLV
可以看到/dev/mailVG/1stLV已经成了1.49G,可文件系统还是这么大
[root@linux~]#tune2fs –l /dev/mainVG/1stLV | grep Block
然后放大文件系统
[root@linux~]#e2fsck –f /dev/mainVG/1stLV
[root@linux~]#resize2fs /dev/mainVG/1stLV
现在再看一下文件系统,已经达到我的要求
四、LVM高级应用
1、产生卷快照
你可以把卷中的数据冻结起来,就像是为数据排了一张照片,可以永久保存建立时的状态
[root@linux~]#mount /dev/mainVG/1stLV /mnt/lvm
[root@linux~]#lvcreate –L 200M –s –n backup1 /dev/mainVG/1stLV
2、读取卷快照
[root@linux~]#mount /dev/mainVG/backup1 /mnt/backup
可以看到这是我逻辑卷快照的内容,现在我用20M的数据覆盖原本逻辑的passwd
[root@linux~]#dd if=/dev/zero of=/mnt/lvm/passwd bs=1M count=20
而且又新建了一个group文件,可快照中的数据并没有改 变
3、卸载逻辑卷快照
[root@linux~]#umount /dev/mainVG/backup1
卸载快照之前必须先卸载挂载
[root@linux~]#lvremove /dev/mainVG/backup1
可以看到,现在已使用空间降了200M
4、移动物理卷
加入一个新的物理卷,这里可以看到/dev/sdb2已经使用了500多M了
[root@linux~]#vgextend mainVG /dev/sdb3
通过pvmove将/dev/sdb2的数据迁移到/dev/sdb3上
[root@linux~]#pvmove /dev/sdb2 /dev/sdb3
[root@linux~]#pvscan
可以看到/dev/sdb2上的资料都移动到/dev/sdb3上了
5、卸载物理卷
[root@linux~]#vgreduce mainVG /dev/sdb2
[root@linux~]#pvremove /dev/sdb2
现在/dev/sdb2自由了,哈哈~
五、迁移至其他系统
进行迁移卷组的第一个步骤就是导出卷组
1、导出卷组
用vgchange将卷组修改为非有效的配置
[root@linux~]#vgchange –a n mainVG
然后用vgexport导出卷组
[root@linux~]#vgexport mainVG
2、导入卷组
用vgimport命令导入卷组,然后修改为有效配置
[root@linux~]#vgimport mainVG
[root@linux~]#vgchange –a y mainVG
挂载上看一下
本文出自 “洋仔 Learning……” 博客,转载请与作者联系!
Linux LVM 使用指南
非常非常好的一篇LVM技术及应用白皮书,不敢独享,分享给大家:
lvm_whitepaper.pdf(372 KB)
下面是网上找到的有关LVM的技术资料,可以作为阅读这篇技术白皮书的铺垫。
什么是LVM
LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,为文件系统屏蔽下层磁盘分区布局,从而提高磁盘分区管理的灵活性。通过LVM系统管理员可以轻松管理磁盘分区,如:将若干个磁盘分区连接为一个整块的卷组(volume group),形成一个存储池。管理员可以在卷组上随意创建逻辑卷组(logical volumes),并进一步在逻辑卷组上创建文件系统。管理员通过LVM可以方便地调整存储卷组的大小,并且可以对磁盘存储按照组的方式进行命名、管理和分配,例如按照使用用途进行定义“development”和“sales”,而不是使用物理磁盘名“sda”和“sdb”。而且当系统添加了新的磁盘,管理员就不必将磁盘的文件移动到新的磁盘上以充分利用新的存储空间,而是通过LVM直接扩展文件系统跨越磁盘即可。
LVM基本术语
1.物理卷(Physical Volume,PV)
物理卷在LVM系统中处于最底层。
物理卷可以是整个硬盘、硬盘上的分区或从逻辑上与磁盘分区具有同样功能的设备(如:RAID)。
物理卷是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。
2.卷组(Volume Group, VG)
卷组建立在物理卷之上,它由一个或多个物理卷组成。
卷组创建之后,可以动态地添加物理卷到卷组中,在卷组上可以创建一个或多个“LVM分区”(逻辑卷)。
一个LVM系统中可以只有一个卷组,也可以包含多个卷组。
LVM的卷组类似于非LVM系统中的物理硬盘。
3.逻辑卷(Logical Volume, LV)
逻辑卷建立在卷组之上,它是从卷组中“切出”的一块空间。
逻辑卷创建之后,其大小可以伸缩。
LVM的逻辑卷类似于非LVM系统中的硬盘分区,在逻辑卷之上可以建立文件系统(比如,/home或者/usr等)。
4.物理区域(Physical Extent, PE)
每一个物理卷被划分为基本单元(称为PE),具有唯一编号的PE是可以被LVM寻址的最小存储单元。
PE的大小可根据实际情况在创建物理卷时指定,默认为4 MB。
PE的大小一旦确定将不能改变,同一个卷组中的所有物理卷的PE的大小需要一致。
5.逻辑区域(Logical Extent, LE)
逻辑区域也被划分为可被寻址的基本单位(称为LE)。
在同一个卷组中,LE的大小和PE是相同的,并且一一对应。
和非LVM系统将包含分区信息的元数据保存在位于分区的起始位置的分区表中一样,逻辑卷以及卷组相关的元数据也是保存在位于物理卷起始处的卷组描述符区域(Volume Group Descriptor Area, VGDA)中。VGDA包括以下内容:PV描述符、VG描述符、LV描述符、和一些PE描述符。图2-3描述了它们之间的关系。
LVM与文件系统之间的关系
图2-4描述了LVM与文件系统之间的关系。
|
图2-3 PV-VG-LV-PE关系图 |
|
图2-4 LVM与文件系统之间的关系图 |
注意:/boot分区不能位于卷组中,因为引导装载程序无法从逻辑卷中读取。如果你想把/分区放在逻辑卷上,必须创建一个与卷组分离的/boot分区。
PV-VG-LV的设备名
PV-VG-LV的含义及设备名如表2-1所示。
表2-1 PV-VG-LV的含义及设备名
| 含 义 | 设 备 名 |
PV | 物理卷:磁盘或分区 | /dev/sda? |
VG | 卷组:一组磁盘和/或分区 | /dev/<VG name>/(目录) |
LV | 逻辑卷:LVM分区 | /dev/<VG name>/<LV name> |