两者似乎都是物理磁盘上的虚拟化层。 我很难理解他们之间的区别。
不同层次的抽象。
如果你有一个大的存储arrays,你可能不希望一个服务器使用整个事情,所以你把它分成逻辑单元(LUN实际上是逻辑单元号,但嘿,这有助于我记住)。 所以你已经把你的存储分成了可用的块,现在把它展示给服务器。 在一个简单的例子中,假设它显示为/ dev / sdb。 没有分区,只是一个磁盘,只要服务器在意。
为什么要把LVM放在上面呢? 对我而言,这是因为成长。 如果我填满这个磁盘,我想能够增加更多的空间。 因为我可以调整存储arrays上的LUN大小(甚至可以创build另一个LUN并将其提供给服务器)并使用LVM,因此LVM使其更容易(在我看来)风险更小,我可以在不重新引导的情况下生成“虚拟”磁盘。
我在这里写了一个关于LVM的介绍: http : //www.standalone-sysadmin.com/blog/2008/09/introduction-to-lvm-in-linux/
我在谈到调整LUN大小时参考的是: http : //www.standalone-sysadmin.com/blog/2009/05/resizing-storage-luns-in-linux-on-the-fly/
LVM是一个软件,用于将磁盘(通常是本地连接的磁盘)“划分”成较小的部分。
LVM是将硬盘驱动器空间分配到可轻松resize而不是分区的逻辑卷中的一种方法。
LUN是一种结构,通常位于存储arrays上,通过它将磁盘arrays/卷的“切片”呈现给主机,通过某些连接(通常为SAN(iSCSI / FC))将其显示为物理连接的本地磁盘, 。
例如,如果您将LUN提供给主机,则可以使用LVM进一步自定义系统认为是本地磁盘的布局。
LUN是逻辑单元号。 它可以用来指整个物理磁盘,或者一个更大的物理磁盘或磁盘卷的子集。 物理磁盘或磁盘卷可以是整个单个磁盘驱动器,单个磁盘驱动器的一个分区(子集),也可以是包含多个磁盘驱动器的RAID控制器的磁盘卷,集中在一起以实现更大容量和冗余。 LUN代表逻辑抽象,或者如果您愿意的话,可以是物理磁盘设备/卷与应用程序之间的虚拟化层。
LUN通常是磁盘arrays级别的引用,指的是已格式化并分配给特定服务器或服务器组的原始磁盘空间量。 它可能分布在多个物理磁盘上,但将作为单个“逻辑”驱动器由磁盘arrays呈现给目标服务器。
LVM代表“逻辑卷pipe理器”,通常是一个操作系统软件,它分布在分配给服务器的原始LUN之上。 LVM允许您在LUN上执行各种任务,例如将LUN分成更小的逻辑卷,将它们组合成卷组,在LUN之间执行磁盘镜像等。
LUN是SCSI概念(“逻辑单元号”)。
SCSI有“目标”,对应于控制器。 一个目标可能会附加一些“逻辑单位”。 举一个例子,想象一个连接了一堆磁盘的JBOD。 它可以select将这些磁盘作为单个目标上的LUN呈现。
通常,存储arrays会将多个磁盘的RAID作为单独的LUN提供; 你会得到一个看起来像一个大磁盘,但受RAID保护的界面。
LVM是一个更高层次的概念,将逻辑“把文件系统放在哪里”与“物理磁盘”分开。 您当然可以实现一个“LVM控制器”,它接收一堆磁盘,在内部执行某种forms的LVM,并将结果驱动器呈现为SCSI目标上的LUN。 这在发烧友arrays上非常普遍。
但是,LUN不一定是任何LVM的结果! 它可能只是一个物理磁盘。