3.13 磁盘技术考虑因素
本小节研究在决定环境中使用的磁盘技术时需要考虑的因素。
3.13.1 支持的磁盘类型
正如你已经看到的,存储架构很重要,磁盘技术扮演着重要的角色。ESXi支持各种磁盘,包括SSD、SAS、FC、SATA、NL-SAS、IDE、USB和SCSI。
可用选项很多,可以根据多种标准选择技术。如表3-5所示,从磁盘技术的角度,可以考虑许多参数:速度可以表现为每分钟转速(RPM)、每秒I/O次数(I/O per second,IOPS)和传输带宽。
固态盘(SSD)是由闪存组成的高性能盘片,它们是非机械性的,比较不容易遭遇故障,消耗的电力和发热量都远小于传统磁盘。它们的访问时间很短,具有很高的IOPS(3000IOPS),对于读取操作很理想,但是对于大量写入操作并不是很合适。
这种存储通常用于日志文件(例如数据库日志)。它们通常用于扩展控制器的缓存。(EMC称作为快速缓存盘,而Netapp称作闪存缓冲盘)。在VMWare环境中,这些高性能盘对于存储VM的交换内存很理想。它们在磁盘活动波峰出现的时候对负载的吸收很有用,例如,在VDI环境中,所有VM同时启动的时候。(这种现象称为启动风暴,boot storm。)磁盘大小通常为100GB、200GB和400GB。800GB容量很快也将出现。
串行连接SCSI(Serial Attached SCSI,SAS)磁盘用于替换光纤通道磁盘。这些磁盘以点对点的方式直接连接到控制器。转速很高—10 000RPM或者15 000RPM。它们对于随机访问应用很理想,且能够处理8字节至16字节的小规模I/O(通常是数据库)。数据流是双向的,目前的磁盘大小为300GB、600GB和900GB。
目前,SAS最适合于虚拟环境,提供最佳的性价比。尽管FC磁盘在生产环境中仍然随处可见,但是用SAS替代它们是一个趋势。
近线SAS(Near-Line SAS,NL-SAS)磁盘使用安装在SAS接口上的SATA磁盘机制。它们与SATA相比的好处是全双工数据传输,读写可以同时进行,而SATA同时只能进行一次读或者写操作。这些磁盘提供SCSI命令解释特性,例如命令队列(减少读磁头移动),并且提供比SATA更好的错误和报告控制。
串行ATA(Serial-ATA,SATA)磁盘能够管理大的容量—2TB、3TB,很快可以达到4TB。建议将它们用于大文件的顺序传输(例如备份和视频文件),但是不适合于有大量随机I/O的数据库应用(如Oracle、Microsoft SQL、MySQL)。ATA是单向传输的,同一时间只能进行一次读或者写操作。SATA是否适合于关键生产VM取决于存储阵列制造商,可以从制造商那里得到建议。SATA磁盘适合于测试VM或者ISO映像、模板或者备份存储。
3.13.2 RAID
表3-6列出了建议的RAID类型及相关的传统用途。
3.13.3 存储池
在物理环境中,一个LUN专用于一个服务器,从而专用于特定的应用。在这种情况下,可以设置参数采用适合于应用(顺序或者随机)的RAID级别。这种方法不适合于虚拟环境。因为虚拟环境的动态特性,根据应用保持相同的LUN归属逻辑变得很难。VM是多变的,可以从一个数据存储转移到另一个数据存储。RAID级别无法保持相同。有些制造商建议使用存储池来代替专用的RAID级别,这是首选方法,因为它提供了出色的性能并简化了管理。
3.13.4 自动磁盘分层
只有20%的LUN数据被频繁访问。统计还显示,80%的数据在两周之后就不被使用。通过自动分层,频繁使用的数据自动地放在高性能的SSD或者SAS磁盘上,而较少使用的数据存储在SATA或者NL-SAS等性能较低的磁盘上。
3.13.5 性能
因为资源池和各种层次(例如,应用、虚拟化管理器、存储阵列),在虚拟环境中监控性能很复杂。以IOPS度量的速度和以MBps度量的带宽取决于数据存储所在磁盘的类型和数量。存储活动应该进行监控,以根据这些标准确定是否形成等待队列(队列长度,queue length)。在虚拟化管理器或者vCenter的层面上,识别争用的最可靠及最简单性能指标是设备访问时间。
所有HBA的读写访问时间应该低于20毫秒。另一个应该监控的指标是停止磁盘(Stop Disk)值,它指出了相关存储无法吸收的活动,从而说明争用的出现。该值应该始终设置为0。如果它的值高于0,负载应该重新均衡,这有两种原因。
该存储设备上的VM活动过多。
存储没有正确配置。(例如,确保没有分区问题,到存储的所有路径都可用,活动很好地分布到所有路径上,存储缓冲没有被强制清除)
3.13.6 其他建议
下面是改进磁盘性能的其他建议。
使用固态缓存允许大量的磁盘I/O。这种缓存可以作为一种杠杆,因为大部分的读写I/O活动都发生在缓存中。数据库需要很多 4字节、8字节、16字节的随机访问I/O操作,而视频文件备份服务器需要高速度和大数据块(32字节、64字节、128字节或者256字节)。
不应该在同一个磁盘上混合顺序访问和随机访问。如果可能,I/O应该按照类型分割(读、写、顺序、随机)。例如,3个存放事务型数据库的VM应该各有3个数据存储:
一个RAID 5数据存储用于OS,分离OS意味着VM可以在不从RAID 5中夺取数据库可用I/O的情况下启动。
如果读/写比例为70%/30%,采用一个RAID5数据存储来存放数据库。否则,RAID类型应该改变。数据库通常使用70%的随机读类型事务。
一个用于日志的RAID 1数据存储,因为日志的写入是顺序的(对于高写入率的大型数据库可使用RAID 10)。
3.14 设备驱动程序
图3-24 显示了ESXi提供给客户OS的SCSI控制器。在可用的选项中,BusLogic为旧的操作系统提供更好的兼容性。LSI Logic Parallel在某些操作系统上提供更高的性能,但是必须添加驱动程序。
VMware Paravirtural设备驱动程序主要用于大负载的情况。它直接访问虚拟化层。这个驱动程序被称作Paravirtural(半虚拟)是因为它翻译来自客户OS的请求,将它们直接发送给虚拟化管理器。这减少了虚拟机监控器(VMM)的请求拦截,改进了性能。这个选项只能工作于Windows Server 2003、Windows Server 2008和RHEI 5。
另一种可用控制器VMDirectPath I/O是一种存储I/O驱动程序,允许直接访问物理设备而不用通过ESXi虚拟化层,从VM中的所有驱动程序原生功能和性能中获益。
3.15 存储是基础
在任何架构中,有一个强大的基础是关键,在虚拟化中更是如此。许多可用选项使得虚拟化在远程办公室或者最高性能的数据中心中都很流行。vSphere 5提供更多的阵列感知特性,确保虚拟化管理器能够与存储通信,从而为此打下了基础。vSphere智能地使用这些信息,使VM离开性能低下的存储卷。由于选项很多,你可能会认为配置非常困难,但是vSphere提供了确保最优配置的工具。