转载于 http://www.wdlinux.cn/node/125
Linux LVM 的使用详解
摘要: Linux用户安装Linux操作系统时遇到的一个最常见的难以决定的问题就是如何正确地给评估各分区大小,以分配合适的硬盘空间。而遇到出现某个分区空间耗尽时,解决的方法通常是使用符号链接,或者使用调整分区大小的工具(比如Patition Magic等),但这都只是暂时解决办法,没有根本解决问题。随着Linux的逻辑盘卷管理功能的出现,这些问题都迎刃而解,本文就深入讨论LVM技术,使得用户在无需停机的情况下方便地调整各个分区大小。
一、 前言
二、 LVM基本术语
物理存储介质(The physical media)
这里指系统的存储设备:硬盘,如:/dev/hda、/dev/sda等等,是存储系统最低层的存储单元。
物理卷(physical volume)
物理卷就是指硬盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。
卷组(Volume Group)
LVM卷组类似于非LVM系统中的物理硬盘,其由物理卷组成。可以在卷组上创建一个或多个“LVM分区”(逻辑卷),LVM卷组由一个或多个物理卷组成。
逻辑卷(logical volume)
LVM的逻辑卷类似于非LVM系统中的硬盘分区,在逻辑卷之上可以建立文件系统(比如/home或者/usr等)。
PE(physical extent)
每一个物理卷被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。
LE(logical extent)
逻辑卷也被划分为被称为LE(Logical Extents) 的可被寻址的基本单位。在同一个卷组中,LE的大小和PE是相同的,并且一一对应。
三、 安装LVM
[*] Multiple devices driver support (RAID and LVM)
<*> Logical volume manager (LVM) Support
# LVM initialization
if [ -e /proc/lvm -a -x /sbin/vgchange -a -f /etc/lvmtab ]; then
action $"Setting up Logical Volume Management:" /sbin/vgscan && /sbin/vgchange -a y
fi
四、 创建和管理LVM
要创建一个LVM系统,一般需要经过以下步骤:
1、 创建分区
2、 创建物理卷
# pvcreate /dev/hdb
3、 创建卷组
4、 激活卷组
5、 添加新的物理卷到卷组中
6、 从卷组中删除一个物理卷
7、 创建逻辑卷
# vgdisplay web_document| grep "Total PE"
Total PE 45230
# lvcreate -l 45230 web_document -n www1
8、 创建文件系统
# mkdir /data/wwwroot
# mount /dev/web_document/www1 /data/wwwroot
如果希望系统启动时自动加载文件系统,则还需要在/etc/fstab中添加内容:
/dev/web_document/www1 /data/wwwroot reiserfs defaults 1 2
9、 删除一个逻辑卷
删除逻辑卷以前首先需要将其卸载,然后删除:
# umount /dev/web_document/www1
# lvremove /dev/web_document/www1
lvremove -- do you really want to remove "/dev/web_document/www1"? [y/n]: y
lvremove -- doing automatic backup of volume group "web_document"
lvremove -- logical volume "/dev/web_document/www1" successfully removed
10、 扩展逻辑卷大小
用惯了传统调整硬盘工具的人可能会认为文件系统和硬盘的分区之间是统一的,实际上他们之间并不是完整的整体(这也就是为什么BSD可以在一个硬盘分区里面制作多个文件系统分区)。想像一下带有移动式书架的书橱。你可以通过移动式书架调整书橱里面书籍的位置。把书当成文件系统,你可以在书橱里面放满书籍,也可以通过移动式书架调整书橱的空间。当然也可以通过书架调整书橱里面书籍存放的位置。如下图所示:
|<-- hda1--- ->|<-- hda2------>|
+---------------+---------------+
|xxxxxxxxxxx|xxxxxx| |
|xxxxxxxxxxx|xxxxxx| |
+---------------+---------------+
硬盘分区/dev/hda1中的文件系统占满了整个分区,而/dev/hda2中的文件系统只占用了2/3左右的分区。
所以在调整逻辑卷容量大小的同时也要调整在该卷上的文件系统的大小,当要增大容量时,先调整容量,后调整文件系统,若要缩小容量则反之。
LVM提供了方便调整逻辑卷大小的能力,扩展逻辑卷大小的命令是lvextend:
# lvextend -L12G /dev/web_document/www1
lvextend -- extending logical volume "/dev/web_document/www1" to 12 GB
lvextend -- doing automatic backup of volume group "web_document "
lvextend -- logical volume "/dev/web_document/www1" successfully extended
上面的命令就实现将逻辑卷www1的大小扩招为12G。
# lvextend -L+1G /dev/web_document/www1
lvextend -- extending logical volume "/dev/web_document/www1" to 13 GB
lvextend -- doing automatic backup of volume group "web_document "
lvextend -- logical volume "/dev/web_document/www1" successfully extended
上面的命令就实现将逻辑卷www1的大小增加1G。
# umount /dev/web_document/www1
# resize_reiserfs /dev/web_document/www1
# mount -treiserfs /dev/web_document/www1 /data/wwwroot
对于使用ext2或ext3文件系统的用户可以考虑使用工具
11、 减少逻辑卷大小
使用lvreduce即可实现对逻辑卷的容量,同样需要首先将文件系统卸载:
# umount /data/wwwroot
# resize_reiserfs -s-2G /dev/web_document/www1
# lvreduce -L-2G /dev/web_document/www1
# mount -treiserfs /dev/web_document/www1 /data/wwwroot
五、 总结