我们可能知道虚拟化通常关注于核心的计算元素,比如处理器和内存,但是I/O以及磁盘存储同样对虚拟机的总体性能以及响应能力具有重要的影响。磁盘存储以及I/O甚至更为关键,因为与磁盘相关的功能往往对处理任务的性能影响更大。急于提升虚拟机性能的虚拟化管理人员应该投入精力优化磁盘操作性能。
提升虚拟机性能的磁盘选项
在虚拟化中,hypervisor将工作负载从运行在底层的物理硬件中抽象出来,允许快速分配并共享计算资源,迁移工作负载。尽管hypervisor以及与虚拟化兼容的处理器性能开销很小,但是虚拟化层的存在却对性能有影响。
当磁盘性能对工作负载至关重要时,某些管理员可能会选择以直通模式配置LUN,允许虚拟机的操作系统绕过hypervisor与直接LUN进行通信。例如,Windows服务器虚拟机可能使用直通模式绕过Hyper-V直接访问磁盘,这对SQL Server数据库的性能有些许提升。然而,由于客户操作系统(采用直通模式)以及hypervisor试图同时访问磁盘,那么hypervisor必须被配置为忽略直通LUN。
直通模式存在的问题是其不被某些重要的虚拟化功能比如虚拟机快照或者集群所支持。因此,虚拟机在实际上可能会受益于虚拟化提供的各种功能特性而非采用直通模式所带来的处于边缘地位的性能提升。管理员需要评估虚拟机的需求并确定直通模式的适宜性。
除直通模式外,Hyper-V以及其他hypervisor还提供了其他磁盘存储选项。例如,当.VHD文件被创建时,大小固定的磁盘将分配所有的数据块。一旦被创建,大小固定的磁盘就不能够进行调整了。然而,动态扩展磁盘从一开始创建的就是没有数据块的.VHD文件,当数据写入到.VHD文件中后磁盘空间才会被分配出去。这和精简配置类似,尽管在逻辑上创建了一块磁盘,但实际的磁盘空间只有数据写入时才会被用到。
差分磁盘是一种特殊的动态扩展磁盘类型。其设计思路是父磁盘拥有固定的镜像而且差分磁盘与父磁盘相关联,因此写入到磁盘的数据被存放在差分磁盘而非.VHD文件中。读请求首先检查差分磁盘的.VHD文件,如果没有更改,就会读父.VHD文件。当需要标准化的磁盘镜像而且回滚功能很重要时,差分是一个不错的主意,但是管理员在维护父子磁盘配置时可能会面临挑战。
合理分配磁盘空间
磁盘空间分配不存在唯一的标准,因为很多变量可能会影响计算资源的分配。在理想情况下,运行在虚拟机内的工作负载需要的计算资源应该与部署在物理服务器上没有什么两样。然而,虚拟化依赖于软件hypervisor,而且运行hypervisor所需要的额外的计算资源将会为大多数虚拟化工作负载增加一些开销。例如,微软建议虚拟工作负载应该比在物理环境中运行时多获得5%到10%的计算资源。
然而,需要指出的是以上只是一条不应该被严格执行的指南,因为不同应用的资源需求、性能需求、用户流量模式以及负载增长预期都不相同。管理员在分配磁盘前应该仔细考虑上述因素,在开发测试环境中进行基准测试后再在生产环境进行部署。
此外,存储价格昂贵,存储过度分配将增加企业的运营成本。管理员经常会使用动态扩展磁盘或者其他精简配置技术来预留磁盘空间,或者使用重复数据删除技术移除重复的内容并降低存储容量需求。
使用物理磁盘提升虚拟机性能的指导方针
存储性能——无论是虚拟应用还是物理应用——都始于在物理层进行良好的设计,部署性能更好的存储设备将有利于提升虚拟机存储性能。磁盘选择通常涉及磁盘大小、速度、主轴以及数据布局。
例如,选择2.5寸硬盘而非体积更大的3.5寸硬盘。硬盘体积越小,其盘面也就越小,旋转速度更快,延迟更小也就是寻道时间更短。小磁盘查找数据的速度更快、功耗更低,能够降低数据中心存储的能耗。
需要考虑的另一个因素就是磁盘组的构成。磁盘组的性能往往更好因为数据分散在多个磁盘上,可以同时在多个磁盘上查找数据能够提升性能。除整合磁盘外,RAID 5或者RAID 6磁盘组能够支持多个轴,并在存储阵列或者服务器内提供全面的数据保护。
如果可能的话,采用动态数据分布方案将自动在最外侧的磁道访问最重要或者访问最为频繁的数据。请记住整个磁盘盘片以相同的速度旋转,因此最外侧的磁道实际上要比内侧磁道的读写速度更快。尽管整个磁盘的速度仍旧受磁盘缓存大小的限制,但是动态数据分布能够更快速地访问最重要或者最为频繁的数据。
虚拟机依赖存储,但是存储系统的限制及瓶颈将显著影响虚拟机性能。使用直通磁盘能够提升性能,但是因此丢掉虚拟化相关的功能却不值得。和物理部署相比,虚拟机可能需要额外的存储,但是准确的存储容量需求最好通过亲自测试确定,结合现有的技术设计以缓解对存储的需求。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/58125.html