本文比较了传统分区与动态卷管理(LVM)两种磁盘空间管理方法的优缺点。在传统分区中,使用工具如fdisk或parted对磁盘进行分区,然后创建文件系统,但这种方法存在分区可扩展性差的问题。相比之下,LVM通过引入逻辑卷管理解决了这个问题,提高了磁盘空间管理的可操作性。
LVM的优势体现在以下几个方面:首先,具备灵活的容量管理能力,可以在多个磁盘和分区上扩展文件系统;其次,支持在线重新设定存储池的大小,无需中断业务操作;此外,LVM提供了便捷的在线数据重定位功能,可以在业务不中断的情况下指定存储数据的底层设备。这种中间层的引入解耦了文件系统与底层存储,使得管理更为灵活。
LVM的基本组件包括物理卷(PV)、卷组(VG)和逻辑卷(LV)。物理卷代表硬盘分区,卷组将物理卷组织成磁盘存储空间池,而逻辑卷则将卷组划分成更灵活的存储单元。
在LVM中,管理命令主要分为物理卷、卷组和逻辑卷三类。这些命令使得用户能够方便地创建、管理和查询LVM配置信息。
通过引入动态卷管理,我们能够更灵活地管理磁盘空间,提高了可扩展性,减少了操作的繁琐性。相对于传统分区管理,LVM为磁盘管理提供了更强大的支持
传统分区 vs. 动态卷
一块硬盘,如果通过传统分区进行管理,我们需要进行以下步骤:首先需要使用fdisk、parted或gdisk对磁盘分区,接着创建基本分区,随后通过mkfs等命令在分区上创建文件系统,最后需要把创建的文件系统mount到一个挂在点上。这种传统的分区管理方法简单直接,然而也存在一个致命的问题:在做分区时就需要精确评估和分配各个分区的容量,即分区的可拓展性。评估不准确会导致扩容的操作较为繁琐(备份数据、删除分区、重建分区、恢复数据到新的分区等等系列操作),同时扩展分区也不能解决未来的容量的拓展问题。出现这种问题的本质是传统分区方案导致文件系统与底层存储之间的耦合度太高。
我们可以在文件系统和底层存储之间引入一个中间层解决这个问题。这个中间层就是动态卷管理。LVM就是一种逻辑卷管理的技术。LVM是建立在硬盘和分区之上的逻辑层,文件系统和逻辑层交互,这样大大提高了磁盘空间管理的可操作性。通过LVM能够轻松管理磁盘分区。
例如,图中LVM将Disk1创建为物理卷,随后将其加入卷组rootvg的资源池。LVM支持在卷组上随意创建逻辑卷,文件系统随后被创建在逻辑卷上。
LVM可以理解成一种存储虚拟化技术。逻辑卷管理可以摆脱物理磁盘空间大小的控制。引入LVM中间层,可以屏蔽存储层的配置,对上层应用透明。在不停业务和应用程序的情况下,重新定义卷的大小并进行数据的移动,大大降低操作成本。
使用LVM管理存储比传统的分区模式具有以下优势:
1、灵活的容量。使用逻辑卷可以在多个磁盘和分区空间扩展文件系统。
2、重新设定存储池的大小。
3、在线数据的重定位。多种不同类型的硬盘组成存储池,使用LVM可以在业务不中断的情况下指定存储数据的底层设备。
4、方便设备命令。可以使用适合自己的管理习惯定义卷组和逻辑卷的名称。
5、磁盘条带。在多个磁盘间创建条带分布的逻辑卷,大幅度提高吞吐。
6、镜像卷。通过配置数据景象的逻辑卷,提高数据的可靠性,防止单点故障。
7、卷快照。通过使用逻辑卷提取设备的快照。
8、精简配置。用多少分配多少。
LVM架构
LVM的基本物理存储单元是块设备。常见的是一个分区或整个磁盘。LVM能够把高速的块设备作为低速的缓存。
LVM组件主要包括物理卷(Physical Volume, PV)、卷组(Volume Group, VG)和逻辑卷(Logical Volume, LV)。
物理卷指硬盘分区或从逻辑上与磁盘分区具有相同功能的块设备。和基本的物理存储介质相比,物理卷包含了LVM管理的参数。
卷组将一个或多个物理卷组织在一起,形成一个卷组。也就是形成了一个磁盘存储空间的空间池。一台主机上可以有一个或多个卷组。
逻辑卷可以把卷组划分成一个或多个逻辑卷。LVM的逻辑卷与非LVM中的硬盘分区概率类似,可以在LVM的逻辑卷上创建文件系统,mount到一个目录上给应用使用。或是把LVM逻辑卷作为裸设备提供给应用使用。
物理卷
创建物理卷的命令为pvcreate。pvcreate执行时会创建三个区域:
第一个区域是LVM的标签。pvcreate时会在物理设备的头部放置一个标签,包括UUID、元数据的位置。
第二个区域是LVM的元数据,包含LVM卷组的配置详情。
第三个区域的剩余空间,用于存储数据。
下图展示了一些与pv相关的简单操作和执行结果。
pvs展示了所有的pv信息。安装centos操作系统时自动创建了一个pv:/dev/sda2并将其加入到了centos卷组中。这个pv的格式类型为lvm2,attr中a标识pv为active。PSize表示pv的大小,例如pv /dev/sda2的大小为19G,可用的空间为0。
通过pvdisplay可以查看pv的详细信息。图中展示了pv /dev/sda2的一些信息。
对一个新的磁盘,推荐将一个磁盘直接做成PV或者创建单一分区后做成PV。
卷组
一个或多个物理卷组成卷组VG。卷组是一个磁盘空间池,用于分配逻辑卷。在卷组中,可用于分配的磁盘空间被划分成多个固定大小的单元,称为extent。在LVM中,空间分配的最小单元为extent。在PV中的extend称为Physical Extent(PE)。在逻辑卷中的单元称为Logical Extent(LE),如下图所示。
通过vgcreate可以创建新的卷组:
逻辑卷
卷组可以被进一步分为逻辑卷。根据业务的不同,逻辑卷可以被分为多种类型:
1、线性卷。
2、条带逻辑卷。
3、RAID逻辑卷。
4、镜像逻辑卷。
...
本文主要关注线性卷。一个线性卷可以将多个物理卷卷集合到一个逻辑卷中,将物理存储连接到一起,如下图:
通过lvcreate可以创建一个LV:
上图中,命令1从datavg卷组上创建了一个大小为100M的线性卷lvdata1。命令2展示了所有逻辑卷信息。命令3展示了LV /dev/datavg/lvdata1的详细信息。
LVM常用管理命令
LVM分为三层:物理卷、卷组和逻辑卷。因此LVM的管理命令分为三类。通常,物理卷管理的命令都是pv开头的,卷组的管理命令都是vg开头的,逻辑卷管理命令都是lv开头的。下图展示了一些常用的命令。