《虚拟数据中心构建指南》——3.4 VMFS

3.4 VMFS

虚拟机文件系统(VMFS)是由VMware开发的文件系统,专用于群集虚拟环境和大文件存储,并为此作了专门的优化。VMFS的结构使其可以在单个文件夹中存储VM文件,简化了VM的管理。

优点:传统文件系统只允许单个服务器获得存储资源的读/写访问权。VMFS是所谓的群集文件系统,允许多个ESXi主机服务器同时读/写存储资源。为了确保多个服务器不会同时访问同一个VM,VMFS提供磁盘锁(on-disk locking)系统。这一系统确保VM在某个时刻只与单个ESXi服务器协作。为了管理访问权,ESXi使用SCSI保留技术修改元数据文件。这种锁的持续时间很短,避免整个LUN的I/O操作不会被ESXi服务器和VM独占。不要频繁进行SCSI保留之所以重要,也正是因为它们会损害性能。

ESXi在如下情况使用SCSI保留:
创建一个VMFS数据存储
扩展VMFS数据存储
启动VM
获得文件锁
创建或者删除文件
创建模板
从模板部署一个VM
创建新VM
用vMotion迁移VM
扩张文件(例如,VMFS快照文件或者精简配置虚拟磁盘)

使用HA功能(如果服务器出现故障,释放磁盘锁,允许另一个ESXi服务器重启VM并将磁盘锁用于自己的目的)
注意:VAAI特殊特性之一—硬件辅助锁减少了SCSI保留。这个API将锁的活动直接交给存储阵列控制器。

3.4.1 VMFS-5规范

vSphere 5推出VMFS 5,最大容量为64TB。表3-1介绍了VMFS 第3版到第5版的发展。

VMFS-5提供了比VMFS-3更高的容量限值,因为它的地址表被拓展为64位。(VMFS提供32位地址表,容量限值为256 000个8MB的块(2TB))。在VMFS-5中,块的大小固定为1MB,最大容量为64TB。在VMFS-3中,块尺寸在1MB~8MB之间,在块大小太小时可能导致虚拟磁盘最大容量问题。(例如,1MB的块使VMDK文件的大小限制在256GB,为了更大的文件尺寸,该卷必须用正确的块大小重新格式化)子块从64KB变成8KB,因此VMFS-5可以管理1KB的小文件。


image

你还应该注意如下两点。
必须为每个LUN创建一个VMFS数据存储。
VMFS保存一个事件日志。这保证了数据完整性,在问题发生时能够快速恢复。

3.4.2 从VMFS-3升级到VMFS-5

VMFS-3与VMFS-5兼容。从VMFS-3升级到VMFS-5得到支持,并且可以在不中断服务且VM同时运行的情况下发生。但是,最好是创建新的VMFS卷,因为VMFS-3到VMFS-5的升级有如下限制。

块保持原始的大小(可能大于1MB)。不同块大小的数据存储之间的复制操作无法从VAAI全复制特性中获益。
子块仍为64KB。

创建新的VMFS-5卷时,文件最大数量仍然保持为30 720,而不是10万个文件。

仍然使用主引导记录(Master Boot Record,MBR)类型分区,但是在卷大于2TB时自动变为GUID分区表(GUID Partition Table,GPT)。

3.4.3 VMFS数据存储签名

每个VMFS数据存储都有一个全局唯一标识符(Universal Unique Identifier,UUID),用于标识VMFS数据存储所在的LUN。这个UUID必须是唯一的。如果两个VMFS使用同一个UUID同时进行安装,ESXi无法知道在哪个卷上执行读/写操作( 操作将随机发送到每个卷),这可能导致数据损坏。vSphere会发现这种情况并加以避免。

注意:UUID保存在VMFS文件系统的头信息里,根据4个变量生成:日期、时间、ESXi MAC地址的一部分以及存储阵列中的LUN标识符。这确保了环境中该值的唯一性,并形成了VMFS卷元数据的一部分。

当VMFS LUN被复制、快照或者复制时,创建的VMFS LUN完全和原来相同,包括UUID。为了利用新的VMFS LUN,可以赋予一个新的签名,或者使用如下选项(如图3-6所示),在特定条件下保留原来的签名:
注意:卷签名适用于FC或者iSCSI中的VMFS文件系统,但是不适用于NFS卷。

保留现有签名:这个选项能够保留相同的签名和复制的数据存储的安装。 为了避免UUID冲突,这一安装仅在源VMFS LUN被卸下(或者移除)时进行。


image

指定一个新的签名:重新签名VMFS时,ESXi为LUN副本指定一个新的UUID和名称。这就可以用不同的标识符同时安装两个VMFS数据存储(原始卷和副本)。注意,重新签名是不可逆的。要记得进行数据存储重扫描,以更新ESXi中的LUN。

格式化磁盘:这个选项完全重新格式化各个卷。

注意:如果VMFS数据存储包含VM,重新签名可能带来一定的后果。确实,每个VM的配置文件( vmx、vmsd和vmdk文件)根据UUID值指定VM虚拟磁盘所在的数据存储。在卷重新签名的情况下,这些文件中的UUID值不再正确,因为它们用旧UUID指向以前的VMFS。VM必须在vCenter中重新注册,以整合新的UUID,数据中心、资源池和网络映射也必须重新设置。

1. 作为DRP一部分的VMFS卷重签名

在实施灾难恢复计划(DRP)和复制卷改变签名的情况下会生成一个新的UUID。卷上记录的VM的vmx和vmdk配置文件指向原来的UUID,而不是新的卷。因此,DRP计划中的所有VM必须从vCenter的库存中手工删除,然后重新记录,以便恢复新的UUID。这是一个麻烦的过程,在手工操作时可能导致处理错误。

站点恢复管理器(SRM)第5版提出的宝贵想法之一是自动化这种工作流程以简化过程和避免错误。利用SRM 5,复制卷在备份站点上被重新签名,配置文件自动引用正确的UUID,使VM指向新的复制卷。每个受到保护的VM都与指定的虚拟磁盘相关联。

注意:使用RDM卷时,手工操作更加复杂,因为RDM的VMFS指针不复存在。SRM也能自动用重新记入库存的新VM重新映射这些卷。

2. 技术细节

在这种环境中,VMFS卷以如下方式表示:
用UUID(例如,487788ae-34666454-2ae3-00004ea244e1)。
用网址地址授权(Network Address Authority ,NAA)ID(例如naa.5000.xxx)。vSphere使用NAA ID检测与LUN ID关联的UUID。

用ESXi发现的一个标签名和vCenter server看到的数据存储名(例如,myvmfsprod)。这个名称由用户提供,只是指向VMFS UUID的一个别名,但是用它更容易找到数据存储。

用VMkernel设备名,在vCenter中称作运行时名(runtime name),例如,vmhba 1:0:4。
当重新签名VMFS时,ESXi为副本指定一个新的UUID和新的标签名,并和原始VMFS一样安装这个复制的LUN。新的关联名称采用格式类型snap,例如,snapID-oldlabel,其中snapID是一个整数,而oldLabel是数据存储的原名。

除了快照和复制,数据存储上进行的其他操作被ESXi视为原始存储的一个副本,因此需要管理员采取行动。
LUN ID修改:修改LUN ID时,vSphere发现这个UUID现在与新设备关联。
修改SCSI类型:例如,从SCSI-2改为SCSI-3。
为某些系统激活SPC-2符合性:例如,EMC Symmetri需要这种激活。

3.4.4 重新扫描数据存储

每次在ESXi或者存储级别上进行存储相关的更改,都有必要重新扫描存储适配器,纳入新配置。这能更新可见数据存储列表和相关的信息。

每次执行如下任务时都必须重新扫描:
在SAN级别上修改分区(zoning),这会影响ESXi服务器
在SAN中创建新LUN,或者进行重签名
在存储阵列中修改LUN屏蔽
重连电缆或者光纤
在群集级别上更改主机

默认情况下,VMkernel扫描LUN 0~LUN255。(记住,主机引入的最大LUN数量是256)为了加速扫描过程,可以在高级参数中设置较低的值:Disk.MaxLUN(例如,在图3-7中设置为64)。

image

注意:你还可以右键点击数据中心、群集或者包含相关主机的文件夹,启动数据存储的重新扫描。

3.4.5 对齐

对齐(Alignment)是需要考虑的重要问题。堆叠多个层次可能造成不对齐的分区,如图3-8所示。图3-9展示了与此相对的对齐分区。


image

RAID栈中最小的单位称为区块(chunk)。下一层是VMFS,它使用1MB的块(block)。在上面格式化的NTFS使用1~64KB的块(称作磁盘簇,disk cluster)。如果这些层次没有对齐,读取一个簇就可能意味着读取两个覆盖3个不同硬盘上3个区块的数据块,这可能影响写入,从而降低性能。

分区对齐时,一个簇只需要读取一个块,而块与区块对齐。这种对齐很重要,在VMware环境中,不对齐可能使性能下降40%。

在Microsoft环境中,Windows Server 2008自动对齐,而旧的操作系统必须用Diskpart工具对齐。参见软件制造商的说明书。

image

3.4.6 增加容量
卷增长(Volume Grow)功能可以动态地扩展现有的VMFS,而不需要关闭VM(最多32次扩展)。当物理存储空间添加到一个LUN,现有的数据存储可以在不关闭服务器或者相关联的存储的情况下扩展。这补充了允许动态LUN扩展的存储阵列选项。扩展虚拟磁盘(vmdk)的存储空间也可以使用VMDK热扩展(Hot VMDK Extend),在没有快照的情况下,以持续模式进行。建议将扩展放在具有相同性能的磁盘上。

Vmdk扩展和磁盘可用空间的可见性取决于OS的机制及其文件系统。根据OS版本,可能需要第三方工具来扩展系统分区,Windows 2003就是这种情况。更多的信息参见VMware知识库:KB1004071。

3.4.7 可以创建单个64TB卷来保存所有VM吗

vSphere 5中LUN VMFS-5的最大大小为64TB。从理论上讲,可以创建一个非常大的64TB卷。因为存储阵列集成了VMware API(VAAI),它们提供出色的卷访问性能。但是,我们不建议采用这种方法,原因如下:
隔离环境绝对是不可或缺的,生产、测试、接收和备份应该有自己的专用环境和LUN。重要的是不要混合不同的I/O配置(例如随机和顺序访问),也不要根据VM活动实施负载均衡(尽管存储DRS允许负载均衡)。

在迁移期间,大型卷的迁移比多个小型卷的迁移更复杂,因此可能分成多个阶段进行。

大型卷损坏时,影响比包含较少VM的小型卷更加明显。

因为上述原因,创建多个独立的LUN是首选的方法。它也使得复制更简单(例如,允许只对关键环境进行保护)。

3.4.8 VMFS配置最佳实践

建议采用如下最佳实践:
一般来说,应该创建600GB到1TB之间的VMFS卷,每个卷使用15至20个活动的vmdk(不要超过32个)。(一个VM可能有多个活动vmdk)
对于需要高性能的环境,如Oracle、Microsoft SQL和SAP,最好使用RDM模式。

VMware建议在NFS上使用VMFS,因为VMFS提供完整的功能集,可以为I/O密集应用使用RDM卷。

为了避免争用,不要在一个LUN上连接超过8个ESX服务器。

避免在同一个VMFS上放置多个具有快照的VM。

避免将DRS定义为激进(aggressive),因为这会频繁触发VM从一个主机服务器迁移到另一个主机服务器,从而频繁发生SCSI保留。

将生产LUN与测试LUN分开,在专用的LUN上存储ISO文件、模板和备份。

在为新磁盘配置OS后对齐vmdk分区。

避免集合多个LUN以组成一个VMFS,因为不同环境无法分离(生产环境、测试环境和模板),这会增加争用的风险,以及更频繁的保留。

避免为每个VM创建一个VMFS,因为这会增加LUN数量,使管理更加复杂,同时限制了256个LUN或者256个VM的扩展。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值