逻辑卷管理器有什么好处

逻辑卷管理器有什么好处

有哪些特点和潜在优势逻辑卷管理器超出其维基百科页面上的详细说明吗?

答案1

直接取自我的博客文章: http://www.standalone-sysadmin.com/blog/2008/09/introduction-to-lvm-in-linux/

首先,让我们讨论一下没有 LVM 的生活。在过去的糟糕日子里,您有一个硬盘。这个硬盘可以有分区。您可以在这些分区上安装文件系统,然后使用这些文件系统。两种方式都很好。它看起来很像这样:

您有实际的驱动器,在本例中为 sda。该驱动器上有两个分区,sda1 和 sda2。还有一些未使用的可用空间。每个分区上都有一个文件系统,已安装。实际文件系统类型是任意的。您可以将其称为 ext3、reiserfs 或其他任何名称。需要注意的重要一点是,磁盘分区和可能的文件系统之间存在直接的一一对应关系。

让我们添加一些逻辑卷管理来重新创建完全相同的结构:

现在,您看到的是相同的分区,但是分区上方有一层称为“卷组”的层,实际上是一组卷,在本例中是磁盘分区。可以将其视为一种可以分区的虚拟磁盘。由于我们与之前的配置完全匹配,因此您还看不到系统的优势。您可能会注意到,在卷组上方,我们创建了逻辑卷,这些逻辑卷可能被视为虚拟分区,我们正是在这些逻辑卷上构建文件系统。

让我们看看当我们添加多个物理卷时会发生什么:

这里我们有三个物理磁盘,sda、sdb 和 sdc。前两个磁盘各有一个分区,占据了整个空间。最后一个磁盘,sdc,有一个分区,占据了磁盘的一半,还有一半是未分区的可用空间。

我们可以看到上面的卷组,其中包括所有当前可用的卷。这里是最大的卖点之一。您可以构建一个与磁盘总和一样大的逻辑分区。在许多方面,这与 RAID 级别 0 的工作方式类似,只是根本没有条带化。数据大部分是线性写入的。如果您需要冗余或 RAID 提供的性能提升,请确保将逻辑卷放在 RAID 阵列之上。RAID 切片的工作方式与此处的物理磁盘完全相同。

现在,我们有这个占用 2 个半磁盘的卷组。它被分成两个逻辑卷,其中第一个比任何一个磁盘都大。逻辑卷不关心实际物理磁盘有多大,因为它们看到的只是从 myVolumeGroup01 中分割出来的。我们将会看到,这一层抽象很重要。

如果我们决定需要未使用的空间,因为我们添加了更多用户,会发生什么?

通常,如果我们使用一对一映射,我们会遇到一些麻烦,但对于逻辑卷,我们可以这样做:

这里我们利用了 /dev/sdc 上先前的空闲空间并创建了 /dev/sdc2。然后我们将其添加到组成 myVolumeGroup01 的卷列表中。完成后,我们可以根据需要自由扩展任一逻辑卷。由于我们添加了用户,因此我们扩大了 myLogicalVolume2。此时,只要文件系统 /home 支持它,我们就可以自由地扩大它以填充额外的空间。所有这些都是因为我们将存储从其所在的物理磁盘中抽象出来。

好的,这涵盖了逻辑卷管理的基本原理。由于我确信您渴望了解有关如何准备和构建自己的系统的更多信息,因此这里有一些极好的资源可以帮助您入门:

http://www.pma.caltech.edu/~laurence/Linux/lvm.html
http://www.freeos.com/articles/3921/
http://www.linuxdevcenter.com/pub/a/linux/2006/04/27/managing-disk-space-with-lvm.html

答案2

您可以使用 LVM 对磁盘执行很多操作。主要的好处是能够动态扩展文件系统。假设您正在设置日志服务器,并且您知道将来会有大量数据。Ext3 最多支持 16TB(更多取决于您的内核和 EL 版本)。但是,如果您知道 2 年后您将需要 1PB 的存储空间怎么办?嗯,这会带来一些问题。首先,当您告诉老板该存储硬件的价格时,他会惊慌失措地看着您。这会导致另一个问题 - 您需要从可以向上扩展的小型解决方案开始。LVM 为您提供了该选项。您从几个磁盘开始。然后添加更多磁盘,将它们变成一个逻辑组,将它们添加到第一个逻辑卷,增加卷的大小,最后扩展文件系统。瞧,您有一个不错的扩展文件系统。

这样就无需将数据从设备移出、重新格式化 LUN,然后再将所有内容移回原位以执行升级。抱歉,我写得比较简短,希望您能理解。

编辑:我还应该注意,如果您处理的是 1PB,那么您将不会想使用 Ext3……可能是 XFS。

答案3

LVM 有许多间接的好处。LVM 的主要作用是将物理磁盘从操作系统中抽象出来。这样做的主要好处就是灵活性。只有当您拥有支持动态调整大小的文件系统时,LVM 的大部分优势才能实现。LVM 的基本功能如下所述:

系统分区位于磁盘上一层

如果没有 LVM,Linux 会使用物理上位于磁盘上的分区。分区是直接的设备名称。分区表位于 MBR 中,通常(对于逻辑扩展分区)位于扩展引导记录中(这允许您创建更多分区)。分区定义尺寸类型除其他属性外(更具体地说,它们定义了起始和终止磁柱,这实质上定义了大小)。因为它们与磁盘紧密相关,所以在安装时设置“正确”的分区方案非常重要。如果突然,机器功能发生变化,或者您是新手并且不了解分区的含义,或者您低估了某个地方的磁盘使用情况或特定应用程序的日志,则更改该分区可能会很麻烦。有工具可以做到这一点,但您通常需要将数据从分区中移出才能更改它。显然,如果您有四个分区,更改第二个分区的终止磁柱会影响第三和第四个分区的起始磁柱,因此您会陷入混乱的境地。

天真的人可能会主张使用单个大分区,但是当您需要引入配额或隔离填满系统各部分的恶意进程(例如 /var/log、/tmp 等)时,您可能会陷入困境。

这样做的好处是:

添加/删除存储

添加存储通常很简单。如果您使用硬件或软件 RAID 并添加更多磁盘,您可能经常需要摆弄符号链接来重建 RAID 阵列,以便让 Linux 在您想要的位置提供新的存储。

以一个即将填满的大型 /home 目录为例。该目录位于现有的双磁盘 RAID 1 卷上。您想要添加另外两个磁盘。您将其设置为硬件 RAID 1 配置。如果没有 LVM,您有以下几种选择:

  1. 以 1+0 配置重建完整的 RAID 阵列,这需要将数据从机器中移出,重建并重新移回。
  2. 创建一个独立的新 RAID 1 卷组。Linux 已将第一个 RAID 卷安装在 /home 上,因此您需要将第二个 RAID 卷安装在 /home1 或类似位置上。现在,要获取与第一个一致的用户适当路径,您可能需要使用符号链接来获得相同的效果。此外,此解决方案需要不断维护原始 RAID 卷,并可能将数据从原始分区迁移出去。

使用 LVM,您只需将新的 RAID 1 卷组添加到附加存储池,调整文件系统的大小(前提是它支持),然后 /home 就突然变大了。您不需要符号链接任何东西,也不需要对可能将数据从 /home 移动到 /home1 或反之亦然进行维护。冲洗、清洗、重复,以进行未来的磁盘升级。

在线维护

大多数 LVM 任务(只要硬件支持)都可以在线完成,无需重启机器。如果您可以在系统上热插拔磁盘,则可以添加新磁盘并随后移除旧磁盘(可能较小)以增加系统存储需求。

根据我的经验,LVM 卷的主要问题之一是,当它们接近容量上限时,碎片化就会成为一个问题。卷数 > 90%,实际上 > 95% 可能意味着您最终可能会在磁盘上产生严重的碎片化,具体取决于您的磁盘使用情况和文件类型。这很少需要您过度担心,任何类型的卷/分区管理都是如此,但这里需要担心的是卷层上的碎片化,而不是分区上的碎片化。

答案4

即使您已被选为最佳答案,我还是想对这个主题贡献我的意见。根据我的经验,如果您有一个物理驱动器,或者即使您有多个驱动器(我个人从不在系统驱动器上使用 LVM),我也会质疑 LVM 的实用性。但是,LVM 真正不可或缺的地方是在硬件 RAID 之上。这样可以清楚地区分 RAID 和 LVM 的功能 - 您使用 RAID 来管理存储的可靠性和性能特征,使用 LVM 为系统分配实际卷。有时,此功能会重叠,即 LVM 可以提供 RAID-0 和 RAID-1 的功能,但我不建议在任何严肃的构建中使用这两者中的任何一个。

基本上 RAID 和 LVM 是一起的,只使用其中一个通常不是最理想的。

相关内容