NingG +

CentOS 6.4下LVM的使用

背景

系统有9块盘,每个320GB,之前服务器(CentOS 6.3)上磁盘分配情况:选取一块盘作为系统盘,划分/bootswap//home;然后,将剩余的8块盘,逐个格式化,并mount到系统盘的某个目录下。现在的问题是:某系统要上线,需要一个足够大的空间来存储数据,如果使用上述的方案,每个目录最大的存储空间都只有320GB,还是不够大,今后可能面临分区扩容的问题,使用静态分区,扩容有些麻烦。而LVM(Logical Volume Management,逻辑卷管理)能够将多个磁盘/分区组合在一起,抽象为一个逻辑上的分区,即,利用LVM技术,8块盘可以组成一个2.5T大小的分区,这样问题就解决了。

注意:上面利用LVM来管理8块盘的方案,只是初步想法,不是最终方案。

LVM是什么

LVM(Logical Volume Management,逻辑卷管理),一大核心功能是:对磁盘分区进行动态管理。当前无论在Linux、类Unix以及其他Windowns操作系统上,都存在LVM管理软件。

LVM要解决的问题

LVM要解决的典型问题:一块磁盘的空间160GB,其存满数据后,需要扩容,怎么办?传统静态分区时,需要将磁盘中近160GB的数据复制到1TB的磁盘上,然后,使用1TB的磁盘替换掉原来160GB的磁盘即可(替换:只要是挂载点替换一下就可以了)。LVM有更好的思路,来解决这个问题吗?

LVM原理简介

要解决上面磁盘空间不足时,磁盘的扩容问题,LVM提供了一个基本思路:LVM将底层的磁盘封装抽象为逻辑卷(logical volume),上层应用不直接从物理磁盘分区中读数据,而是从逻辑卷中读数据;LVM负责底层磁盘到逻辑卷的映射和管理;增加底层磁盘时,通过LVM可以为逻辑卷动态扩充容量,而这对上层应用是无影响的(透明的)。说这么多,总结一点:LVM提高了磁盘管理的灵活性。

LVM原理详解

上面简要说了一点点LVM的基本原理,吃饭要吃饱、做事要做好,OK,把LVM的原理好好理解一下。有几个概念要好好说一说。

PV: Physical Volume

PV(Physical Volume),物理卷

notes(ningg):为什么要有PV?直接使用物理分区不行吗?

VG: Volume Group

VG(Volume Group),卷组

LG: Logical Volume

LG(Logical Volume),逻辑卷

PE: Physical Extent

PE(Physical Extent),物理区域,

LE: Logical Extent

LE(Logical Extent),逻辑区域

notes(ningg):PE、LE,是否与文件系统中block(逻辑块)类似?而block大,能够提升磁盘IO速度;但block过大,造成磁盘空间的浪费?

VGDA

和非LVM系统将包含分区信息的元数据保存在位于分区的起始位置的分区表中一样,逻辑卷以及卷组相关的元数据也是保存在位于物理卷起始处的卷组描述符区域(Volume Group Descriptor Area, VGDA)中。VGDA包括以下内容:PV描述符、VG描述符、LV描述符、和一些PE描述符。

注意:/boot分区不能位于卷组中,因为引导装载程序无法从逻辑卷中读取。如果你想把/分区放在逻辑卷上,必须创建一个与卷组分离的/boot分区。

小结

我们在创建好LV以后,我们会在 /dev 目录下看到我们的LV信息,例如 /dev/vgname/lvname, 我们每创建一个VG,其会在/dev目录下创建一个以该VG名字命名的文件夹,在该VG的基础上创建好LV以后,我们会在这个VG目录下多出一个以LV名字命名的逻辑卷。

下面我们来对整个LVM的工作原理进行一个总结:

notes(ningg):在创建PV时,需要物理磁盘/物理分区提前进行格式化吗?RE:不需要格式化的,直接创建PV就行。

CentOS的推荐配置doing..

使用LVM来管理磁盘时,CentOS有没有推荐的配置?

LVM只有优点吗? LVM有没有副作用?降低磁盘IO?耗费一定的磁盘空间?LVM管理时,有没有CPU、磁盘资源的浪费?

(下面还没有修改,参考来源:理解 LVM (Logical Volume Manager)

是否使用 LVM?

在决定是否使用 LVM 前请先了解下 LVM 的优缺点。

使用 LVM 的优势:

使用 LVM 的限制:

使用要点

按需分配文件系统大小,不要一次性分配太大的空间给文件系统,剩余的空间可以放在存储池中,在需要时再扩充到文件系统中。 把不同的数据放在不同的卷组中,这样在做系统升级或数据迁移操作时会比较方便。

Linux下LVM命令

LVM要实现的如下几个功能:

notes(ningg):LV本质由PE组成的,那一个LV对应的所有PE是均匀分布在PV上吗?有什么策略?

PV\VG\LV的创建、删除

来个表格吧:

命令 说明
pvcreate 创建PV
pvdisplay/pvs 查询PV详情
pvremove 删除PV
vgcreate 创建VG
vgdisplay/vgs 查询VG详情
vgremove 删除VG
lvcreate 基于VG创建LV
lvdisplay/lvs 查询LV详情
lvremove 删除LV
mkfs 格式化LV
mount 挂载LV
umount 卸载LV

注意:先删除LV,再删除VG,最后删除PV。

LV的动态调整doing…

LV的动态调整:参考LVM逻辑卷的拉伸及缩减简单理解LVM(Logical Volume Manager)的基本原理

参考资料

杂谈

我一直坚持读第一手的资料,因此,这次我直接就想到了CentOS官网的文章;不过读起来还是有些羞涩的,第一次接触LVM,很多东西云里雾里,相反查到的几篇blog还是不错的,有配图、有简洁的表述;因此,个人感觉,对于很生疏的东西,查看网上的blog反倒是入门的好方法;有了简单的入门知识,又希望深入理解的,那再去查第一手的资料就好了。

Top