一,LVM概述:
LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制,它由Heinz Mauelshagen在Linux 2.4内核上实现,目前最新版本为:稳定版1.0.5,开发版 1.1.0-rc2,以及LVM2开发版。
LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。前面谈到,LVM是在磁盘分区和文件系统之间添加的一个逻辑层,来为文件系统屏蔽下层磁盘分区布局,提供一个抽象的盘卷,在盘卷上建立文件系统。物理卷(physical volume)物理卷就是指硬盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。
Linux用户安装Linux操作系统时遇到的一个最常见的难以决定的问题就是如何正确地给评估各分区大小,以分配合适的硬盘空间。而遇到出现 某个分区空间耗尽时,解决的方法通常是使用符号链接,或者使用调整分区大小的工具(比如PatitionMagic等),但这都只是暂时解决办法,没有根本解决问题。随着Linux的逻辑盘卷管理功能的出现,这些问题都迎刃而解,用户在无需停机的情况下方便地调整各个分区大小。
通过LVM系统管理员可以轻松管理磁盘分区,如:将若干个磁盘分区连接为一个整块的卷组 (volumegroup),形成一个存储池。管理员可以在卷组上随意创建逻辑卷组(logicalvolumes),并进一步在逻辑卷组上创建文件系统。管理员通过LVM可以方便的调整存储卷组的大小,并且可以对磁盘存储按照组的方式进行命名、管理和分配,例如按照使用用途进行定义:“development”和“sales”,而不是使用物理磁盘名“sda”和“sdb”。而且当系统添加了新的磁盘,通过LVM管理员就不必将磁盘的 文件移动到新的磁盘上以充分利用新的存储空间,而是直接扩展文件系统跨越磁盘即可。
二,安装LVM
#rpm -qa | grep lvm
lvm2-2.02.88-7.el5
三,创建管理LVM
要创建一个LVM,需要以下一个命令步骤:
1,fdisk -l
分区工具可以看到未分区的磁盘,比如sdb
2,fdisk /dev/sdb 进入分区界面
m,相当于help
n,分区
p,查看分区
d,删除分区
t,指定分区系统类型:LVM:8e linux:83 swap:82 因为我们现在做的是LVM,所以一定要指定类型8e
w,保存退出
q, 不保存退出
#partprobe 不需要重启系统即可刷新磁盘分区表
3,创建PV,转换成PV
#pvcreate /dev/sdb1
#pvdisplay 查看
4,创建VG
#vgcreate VG_name /dev/sdb1也可以是已经存在的卷组名,同一VG名下的多个PV构成一个VG
#vgdisplay
5,划分LV
#lvcreate -L 10G -n LV-name VG-name 在VG里划分出一个LV,其中:-L:指定LV的大小 -n:指定LV的名。
#lvdisplay
6,LV格式化&挂载
#mkfs -t(或mkfs.ext3) ext3 /dev/VG-name/LV-name
#mount /dev/VG-name/LV-name /data #挂载之后,分区即可使用
7,将物理卷还原成普通分区
#pvremove /dev/sdb1 保证此磁盘没有使用,也就是说先lvremove,再vgremove,最后在pvremove
8,减少逻辑卷大小
#umount /data 先卸载
#e2fsck �Cf /dev/VG-name/LV-name 检查文件系统的完整性
#resize2fs /dev/VG-name/LV-name 1G 将文件系统减小1G
#lvchange �Can /dev/VG-name/LV-name 关闭逻辑卷 就cd不到LV的路径了
#lvreduce �CL -1G /dev/VG-name/LV-name 减小Vol01逻辑卷1G的空间
#lvchange �Cay /dev/VG-name/LV-name 打开逻辑卷
注:如果不做lvchange操作而直接做减小逻辑卷,可能会导致数据寸坏,数据无价。文件系统大小和逻辑卷大小一定要保持一致才行。如果逻辑卷大于文件系统,由于部分区域未格式化成文件系统会造成空间的浪费。如果逻辑卷小于文件系统,数据就出问题了。
#lvs 查看LV-name的大小已减少1G为
四,扩容当前分区
1,首先创建一个新的分区,以上步骤只操作步骤1,之后格式化
#mkfs -t ext3 /dev/sdc1
#partx /dev/sdb查看磁盘分区及使用情况
2,创建PV,扩容VG,LV
#pvcreate /dev/sdc1
#vgextend VG-name New_disk(比如/dev/sdc1)
#lvextend -L +100G /dev/VG-name/LV-name
#resize2fs /dev/VG-name/LV-name 执行重设大小,df才能生效