逻辑卷pipe理器有哪些好处?

除了维基百科页面上详细介绍的以外,“ 逻辑卷pipe理器”的哪些function和潜在优势?

直接从我的博客条目: http : //www.standalone-sysadmin.com/blog/2008/09/introduction-to-lvm-in-linux/

首先,让我们讨论没有LVM的生活。 回到过去的糟糕时代,你有一个硬盘驱动器。 这个硬盘可以有分区。 您可以在这些分区上安装文件系统,然后使用这些文件系统。 艰难的双方。 它看起来很像这样:

你有实际的驱动器,在这种情况下sda。 在那个驱动器上有两个分区sda1和sda2。 还有一些未使用的自由空间。 每个分区上都有一个文件系统,它被挂载。 实际的文件系统types是任意的。 你可以把它叫做ext3,reiserfs,或者你有什么。 重要的是要注意,磁盘分区和可能的文件系统之间存在直接的一对一关联。

让我们添加一些逻辑卷pipe理,重新创build完全相同的结构:

现在,您可以看到相同的分区,但在分区上方有一个称为“卷组”的分层,实际上是一组分区,在这种情况下是磁盘分区。 可以认为这是一种可以划分的虚拟磁盘。 由于我们完全符合我们之前的configuration,所以您还没有看到系统的优势。 您可能会注意到,在卷组之上,我们已经创build了逻辑卷,这可能被认为是虚拟分区,正是基于这些构build了我们的文件系统。

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

这里我们有三个物理磁盘,sda,sdb和sdc。 前两个磁盘中的每一个都有一个占据整个空间的分区。 最后一个是sdc,有一个分区占用了一半的磁盘空间,剩余的一半分配空闲空间。

我们可以看到包含所有当前可用卷的卷组。 这是最大的卖点之一。 您可以构build一个与磁盘总和一样大的逻辑分区。 在许多方面,这与RAID级别0的工作原理类似,除了没有条带。 数据大部分是线性编写的。 如果您需要冗余或RAID提供的性能提高,请确保将您的逻辑卷放在RAIDarrays之上。 RAID片在这里与物理磁盘完全一样。

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

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

通常情况下,如果我们使用一对一映射,但是使用逻辑卷,我们会感到非常悲伤,下面是我们可以做的事情:

在这里我们已经把/ dev / sdc上的空闲空间和/ dev / sdc2创build了。 然后我们将其添加到组成myVolumeGroup01的卷列表中。 一旦完成,我们可以根据需要自由扩展任一逻辑卷。 自从我们添加用户以来,我们增长了myLogicalVolume2。 在这一点上,只要文件系统/家庭支持它,我们可以自由地增长它来填补额外的空间。 所有这些都是因为我们从它所在的物理磁盘抽象出存储。

好吧,这涵盖了逻辑卷pipe理的基本原因。 既然我确定你很想知道如何准备和build立你自己的系统,下面是一些很好的资源来帮助你开始:

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

您可以使用LVM在磁盘上做很多事情。 主要的好处是可以随时增加文件系统。 假设你正在build立一个日志服务器,而且你知道将来你将拥有大量的数据。 Ext3最多支持16TB(更多取决于你的内核和版本的EL)。 但如果你知道在2年内你将需要1PB的存储空间呢? 那么,这会产生一些问题。 首先,当你告诉他存储硬件的价格时,你的老板会用头灯看着你。 这导致了另一个问题 – 你需要从一个小的解决scheme开始,你可以向上扩展。 LVM为您提供了该选项。 你从几个磁盘开始。 然后添加更多,将它们变成一个逻辑组,将它们添加到第一个逻辑卷,增加卷的大小,最后扩展文件系统。 瞧,你有一个很好的扩展文件系统。

这使您不必将数据移出设备,重新格式化LUN,然后将所有内容移回执行升级。 对不起,简短,希望是有道理的。

编辑:我还应该注意,如果你正在处理1PB,你不会想要使用Ext3 …可能是XFS。

LVM有许多间接的好处。 LVM所做的主要事情是将物理磁盘从操作系统中抽象出来 。 这样做的主要好处就是灵活性 。 LVM的大多数好处只有在您拥有支持在运行中resize的文件系统时才能实现。 LVM的基本function如下所述:

系统分区存在于磁盘上一层

没有LVM,Linux使用物理上位于磁盘上的分区。 分区是直接的设备名称。 分区表位于MBR中,通常(在逻辑扩展分区的情况下)位于扩展引导logging(允许您创build大量分区)中。 分区在其他属性(更具体地说,它们定义了基本定义大小的开始和结束柱面)中定义了大小types 。 由于它们与磁盘密切相关,安装时build立“正确的”分区scheme非常重要。 如果突然发现机器函数发生了变化,或者如果您是新手,并且您还没有理解分区的含义,或者您低估了某处的磁盘使用情况或特定应用程序的日志,那么更改该分区可能会非常麻烦。 有这样做的工具,但你通常需要移动分区的数据来改变它。 很明显,如果你有四个分区,改变第二个分区结束柱面会影响第三个和第四个分区的启动柱面,所以你会陷入混乱的状况。

天真可能主张使用一个大的分区,但是当你需要引入配额,或者隔离填充系统部分的stream氓进程(例如/ var / log,/ tmp等)时,

这样做的好处是:

添加/删除存储

添加存储通常是微不足道的。 如果您使用的是硬件或软件RAID,并且您添加了更多的磁盘,则您可能经常不得不使用符号链接重新构buildRAIDarrays,以便让Linux在您想要的位置提供新的存储空间。

以一个大的/ home目录的例子为例。 这存在于现有的两个磁盘RAID 1卷上。 你想添加两个磁盘。 您将其设置为硬件RAID 1configuration。 没有LVM,你有几个select:

  1. 以1 + 0configuration重新构build完整的RAIDarrays,这需要将数据从机器上移开,然后重build并重新打开。
  2. 创build一个独立的新RAID 1卷组。 Linux已经在/ home上安装了第一个RAID卷,因此您需要将第二个RAID卷挂载到/ home1或类似的位置。 现在为了获得与第一个一致的用户的适当path,您可能需要使用符号链接来获得相同的效果。 此外,此解决scheme需要不断维护原始RAID卷,并可能将数据从原始分区迁移出去。

使用LVM,您可以简单地将新的RAID 1卷组添加到额外的存储池中,调整文件系统的大小(提供支持),现在/ home突然变大。 您不需要任何符号链接或对可能将数据从/ home移动到/ home1或反之亦然进行维护。 冲洗,清洗,重复未来的磁盘升级。

在线维护

大多数提供硬件支持的LVM任务都可以在线完成,无需重新启动机器。 如果您可以在系统上热交换磁盘,则可以添加新磁盘,然后移除旧的(也许更小的)磁盘以增加系统存储要求。

LVM卷的主要问题之一是它们接近容量,碎片化可能成为我经验中的一个问题。 卷大于90%,真正大于95%可能意味着磁盘上的碎片可能会很糟糕,具体取决于您的磁盘使用情况和文件types。 对于任何types的卷/分区pipe理来说,很less有人过分关心自己,但是卷层是碎片,而不是在此处所关注的分区。

你应该提供更多关于你将要应用的情况的信息,这样我们可以给出有针对性的答案,而不是广泛的可能不相关的答案(我不能评论别的,我会在评论中这样说)。

现在问题本身,您可以轻松创build,resize和删除卷(又名分区),另一个不错的function(取决于您的情况)是创build卷的快照的能力。

即使你已经select了最好的答案,我想提出我的意见,这个话题。 根据我的经验,如果您有一个物理驱动器,或者即使您有多个驱动器(我个人从不在系统驱动器上使用LVM),我也会质疑LVM的实用性。 但是,LVM真正不可或缺的地方就在于硬件RAID之上。 这样就可以清楚地区分RAID和LVM的function – 使用RAID来pipe理存储的可靠性和性能特征,并使用LVM将实际卷分配给系统。 有时候,这个function是重叠的,也就是说LVM可以提供RAID-0和RAID-1的function,但是我不推荐使用任何一种严肃的版本。

基本上RAID和LVM属于一个整体,一个没有另一个通常不是最理想的。