LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制,它由Heinz Mauelshagen在Linux 2.4内核上实现。Linux用户安装Linux操作系统时遇到的一个常见的难以决定的问题就是如何正确地评估各分区大小,以分配合适的硬盘空间。普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小,当一个逻辑分区存放不下某个文件时,这个文件因为受上层文件系统的限制,也不能跨越多个分区来存放,所以也不能同时放到别的磁盘上。而遇到出现某个分区空间耗尽时,解决的方法通常是使用符号链接,或者使用调整分区大小的工具,但这只是暂时解决办法,没有从根本上解决问题。随着Linux的逻辑卷管理功能的出现,这些问题都迎刃而解,用户在无需停机的情况下可以方便地调整各个分区大小。
逻辑卷管理器(LogicalVolumeManager)本质上是一个虚拟设备驱动,是在内核中块设备和物理设备之间添加的一个新的抽象层次,如图所示。它可以将几块磁盘(物理卷,PhysicalVolume)组合起来形成一个存储池或者卷组(VolumeGroup)。LVM可以每次从卷组中划分出不同大小的逻辑卷(LogicalVolume)创建新的逻辑设备。底层的原始的磁盘不再由内核直接控制,而由LVM层来控制。对于上层应用来说卷组替代了磁盘块成为数据存储的基本单元。LVM管理着所有物理卷的物理盘区,维持着逻辑盘区和物理盘区之间的映射。LVM逻辑设备向上层应用提供了和物理磁盘相同的功能,如文件系统的创建和数据的访问等。但LVM逻辑设备不受物理约束的限制,逻辑卷不必是连续的空间,它可以跨越许多物理卷,并且可以在任何时候任意的调整大小。相比物理磁盘来说,更易于磁盘空间的管理。
用户态应用来看,LVM逻辑卷相当于一个普通的块设备,对其的读写操作和普通的块设备完全相同。而从物理设备层来看,LVM相对独立于底层的物理设备,并且屏蔽了不同物理设备之间的差异。因而在LVM层上实现数据的连续保护问题,可以不需要单独考虑每一种具体的物理设备,避免了在数据复制过程中因物理设备之间的差异而产生的问题。从LVM的内核实现原理上看,LVM是在内核通用块设备层到磁盘设备驱动层的请求提交流之间开辟的另外一条路径,即在通用块设备层到磁盘设备驱动层之间插入了LVM管理映射层用于截获一定的请求进行处理。
用户通过lvm提供接口,依靠内核创建一系列LVM逻辑卷,所有对lvm逻辑卷的读写操作最终都会由LVM在通用块设备层下方截获下来,进行更进一步的处理。这里的进一步处理主要指的是完成写请求的映射,是将请求的数据根据实际情况进行一些拆分和重定位操作,从而可以将请求和数据分发到实际的物理设备中去。
LVM管理命令
LVM创卷流程
物理卷(PV)是LVM卷机制的基本存储设备,要先创建物理卷,然后组成卷组(VP),最后建成逻辑卷(LV)。
创建物理卷
添加三块磁盘到PC机上,重启后生效,添加流程可参考上个博客
保存退出后对磁盘c,d同样操作
配置完成,检查结果
创建物理卷,命令如上所示
创建卷组
用vgcreate这条命令
创建逻辑卷
创建公式 lvcreate -L 容量大小 -n 逻辑卷名 卷组名
如果逻辑卷空间小了,可以从卷组中拿出空间扩容
逻辑卷创建完成后,必须格式化,挂载后才能使用
自动挂载
原文:https://blog.51cto.com/14449536/2431831