通过存储性能指标,可以评估监控存储系统支持服务器虚拟化环境的具体情况,这一过程中有许多因素要考虑。
服务器虚拟化的存储配置可以是Hypervisor或基于网络的文件或数据块的存储设备。当存储配置为Hypervisor,Hypervisor控制着访问许可,问题是两者之间的关系是,对于Hypervisor的任何影响都会影响到Hypervisor上运行的应用上性能指标,并且理解其对于 Hypervisor的整体影响,非常重要。
配置为Hypervisor的存储对虚拟机而言就像是个SCSI设备,而通过网络提供的存储需要额外的驱动器,这和iSCSI类似。
Hypervisor配置的存储可以是光纤,iSCSI,NFS(在Hyper-V环境下为CIFS)或本地存储,不过当虚拟机连接存储设备时,存储以一般的SCSI设备形式工作,因此虚拟机使用客户端操作系统中通常的SCSI驱动器。Hypervisor将标准虚拟机SCSI驱动器的二进制指令翻译成光纤,iSCSI,NFS或本地SCSI设备可以识别的协议。二进制编解码的操作通过Hypervisor或使用Intel VT-x或AMD RVI指令结构的处理器完成。不管何种方式,虚拟机将存储识别为SCSI,而Hypervisor会将存储完全视为别的东西。
性能指标及解释方式
以下三种方式是常用的虚拟存储的性能指标方式:
通过客户端操作系统测试存储性能指标
通过Hypervisor测试存储性能指标
通过存储邮件测试存储性能指标
每一种指标对应某种测试目的,不过有时也会引起误导。一些指标结果可能不会反映真实结果。
最不可靠的测试方式就是通过客户端操作系统反馈的信息,虚拟机并不需要接受整个处理器时钟周期,其中所含的数据并不准确。其实,涉及虚拟机处理器时钟周期的测试很难准确,因为虚拟机可能或可能不会接收整个处理器时钟。不过一些虚拟机的性能指标和处理器时钟周期无关,而这些性能指标是可信的。
通过Hypervisor的存储性能指标是较为可信的,也经常会用以测试中,不过这种指标同样会引起误导,因为测试数据可能在缓存或Hypervisor的队列中。
余下的基于存储硬件的指标是最为理想的,因为每家硬件供应商都会提供最为细致的数据,甚至细致到磁盘轴的速度。在许多情况下,这一数据和通过 Hypervisor测试得到的数值是一样的,仅在高延迟的子系统会产生不同结果。不幸的是,并非所有的硬件系统供应商会公布这一数据,这种情况下你必须关注Hypervisor测试所得的信息,比较虚拟机得出的数据太不可靠了。
从虚拟化存储硬件层看,最重要的指标是读写延迟值,或者特定层面读取或写入磁盘所需的时间。其次重要的指标就是IOPS值。不过你不能只看着IOPS而对每秒的读写Kbps不闻不问。IOPS反映了操作层的性能;而Kbps反映的则是系统的实际读写性能。无论从Hypervisor或存储设备上看,IOPS是通常最受关注的指标,不过延迟才是最佳指标,其反映了存储是否存在问题。IOPS值会随着写入的数据块数量发生变化,并且在NFS或CIFS系统中,由于协议中未包含延迟指标,IOPS值很难获取。
有哪些可用工具呢?
为了获取所有这些存储性能指标,你可以借助NetApp的Balance,SolarWindshield的Storage Manager,Quest的vFoglight Storage和其它直接和硬件通讯的产品。这类产品可以通过存储管理接口标准(SMI-S)或直接通过存储厂商协议检测存储硬件层。
对于Hypervisor层,可以使用如VMware vCenter Operation、vKernel、VMturbo和Quest vFoglight这类的工具,通过直接询问Hypervisor或间接使用Hypervisor的集中管理控制台,比如VMware vCenter监测Hypervisor层。
最后,客户端操作系统提供自身的工具来收集存储性能指标。
整合了存储管理接口标准和基于Hypervisor的工具提供了最佳的功能组合来诊断延迟,IOPS和读写速度。因为只要Hypervisor不是在机器繁忙的状态,这些工具所提供的数据几乎是与其同步的。而在Hypervisor极度繁忙的情况下,硬件指标可能是反映存储性能的最佳选择。但是,由于 Hypervisor中的资源相互关联,确保Hypervisor没有达到极度繁忙的状态总是必要的。
如果你的环境中并没有存储层的工具,比如在一些iSCSI服务器环境中,基于Hypervisor的工具或许是最佳选择。