在过去的一周中,我被问到了有关VMFS卷和LUN分区的几个与存储相关的问题。这些问题的主题基于具有丰富经验的人员以及对VMware虚拟化平台的知识的了解。问题集中在VMFS卷及其工作方式上,原因之所以不是在已分区的LUN中创建多个VMFS卷的好习惯。我想花一点时间并尝试尽可能简单地解释它,所以这是我对为什么不这样做的看法’想要每个LUN使用多个VMFS卷。我希望它’可能会有帮助。
的VMware’vStorage 虚拟机 是在许多服务器之间共享的群集文件系统–全部或其中任何一个都可能写入共享LUN。所以访问LUN’s(顺便说一下是单个分区)需要控制某些重要功能。
另一个重要功能是ESX服务器启动VM。不能混淆哪个ESX服务器正在运行VM,因为只有该ESX服务器可以写入VM的文件(否则VM文件可能会损坏。因此,我们锁定了整个LUN(数据存储区)(通常是1个分区) )当我们启动一个VM时。
另一个重要功能是分配空间。当我们在VMFS上分配块时,我们不会对是否分配该块感到困惑-因此我们锁定了整个LUN。
的VMware如何锁定整个LUN?要锁定LUN,VMware使用了称为SCSI-2保留的iSCSI或FC阵列功能-它是VMware’s''分布式锁定机制-ESX Server请求并向ESX Server阵列授予SCSI-2保留,以允许该服务器对LUN进行独占访问。保留一个SCSI-2储备金,直到ESX Server释放SCSI-2储备金(我相信)。在VMFS3中,VMware尝试在最短的时间内(仅1或2个I / O)保留储备金,否则其他ESX服务器当然不能访问LUN,从而可能会降低性能。
因此,这就是我对多个VMFS分区的看法:由于无法在单个分区上授予SCSI-2保留(如果LUN具有多个分区),则没有单独的VMFS文件系统(即多个分区)是没有意义的在一个LUN上。 SCSI-2保留仅适用于整个LUN。实际上,大多数VMFS卷都是单个分区。
至于精简配置,这些SCSI保留区也适用于此–如果VM需要增长,则需要为VM分配空间。为了分配空间,ESX服务器必须获得SCSI-2保留,以授予ESX主机对精简配置的VM所在的LUN的独占访问权限,以便VMFS可以为VM分配更多的空间。如果VM增长很多,可能会对性能造成灾难性的影响。因为我们必须1)用SCSI-2保留空间锁定VMFS LUN 2)为VM分配空间3)释放SCSI-2保留空间3)然后对VM进行实际的I / O VM每次填充一个块并需要一个新块。
我希望这对提出要求的人有更好的理解。我要感谢Connie Economou抽出宝贵的时间来帮助我简化主题。希望这可以帮助。
这与多个数据存储相关,这是有道理的,但是,如果多个VMFS分区是同一VMFS数据存储的不同范围,这真的有意义吗?
我的一个示例是在iSCSI机柜上创建LUN,在LUN上创建VMFS文件系统和分区。后来,我们需要更多空间,因此我们扩展了LUN,然后将VMFS扩展区添加到LUN。我本可以添加具有可用空间的另一个LUN,然后在其中添加扩展区,但是有时其他存储管理员在删除LUN时遇到问题’他们认为没有使用它们,这使我的VMFS文件系统损坏了。那是另一个故事。无论如何,在一个扩展LUN上使用2个扩展区的同一VMFS,您会想到什么问题?两个区段同时锁定的事实不应该’如果只是一个程度,那就不是问题了。无论哪种方式,所有空间都将被锁定。
只是好奇您的意见。
我喜欢您博客的布局,’我将为我做同样的事情。你有什么建议吗?请在yahoo上下午PM @ AmandaLovesYou702
这个文件没有’t明确讨论了锁定机制(该文档在哪里?),它确实讨论了精简置备磁盘与厚置备磁盘的性能。
http://www.vmware.com/pdf/vsp_4_thinprov_perf.pdf
德里克 ,为什么不只是销量增加?那你不’不必担心元数据,锁,多个lun等…
@Derek。
“但是,如果多个VMFS分区是同一VMFS数据存储区的不同范围,这真的有意义吗?”
好问题,德里克。答案是
-如果同一个Lun的多个分区参与同一个VMFS数据存储,则应该没问题(还不错)。也就是说,这种特殊的配置将不会导致锁定此博客正在处理的问题。这是因为,
a)仅需要锁定即可更新元数据
b)尽管此元数据可以分布在两个扩展区中(如果通过添加来扩展卷,并且某些元数据可以扩展到新添加的扩展区中),则内部锁定算法始终仅锁定头部扩展区以进行元数据更新:)。群集中的所有主机都遵循以下锁定协议:“仅锁定头范围以更新非头范围上的元数据”(+为简洁起见,这里没有提到其他警告)。
如您现在所见,将相同lun的相同分区添加到VMFS数据存储不会’买给您锁定可扩展性。由于您将锁定头部扩展区,从而导致整个lun都被锁定,并且在较短的时间内,您的非头部扩展区将被锁定以供其他主机进行读/写访问。
(比较上述情况以添加单独的lun作为数据存储区范围,在这种情况下,单个主机将锁定映射到头Lun的头范围,而为其他主机的非元数据更新保留其他范围-
所以建议是
a)不跨VMFS数据存储共享Lun
b)为了扩展容量,可以增长底层的Lun或添加单独的Lun。
谢谢