理解虚拟机感知存储选项(一) 虚拟化
虚拟化技术已经改变了数据中心的原有工作方式,而现在存储技术也在发生变革,以满足虚拟机为IT管理员所带来的全新需求。
现在管理员可以使用大量自动化技术完成部署流程,因此能够在几分钟之内部署一台全新的虚拟机,但是通常虚拟机仍然需要共享容量大大超过自身需求的LUN,并且存储空间的分配过程需要由管理员在存储阵列上手动完成。由此带来的结果是浪费大量存储空间——在本就有限的磁盘转速和性能表现的基础上,增加了IOPS和随机磁盘活动。更为糟糕的是,逻辑上存储系统和虚拟机并无关联,这使得优化和排错变得极其困难。
但是好消息是存储终于开始逐渐适应虚拟化技术的发展,能够感知虚拟化的存储系统可以提供更快的访问速度以及更高效的存储利用率,并且可以针对单个虚拟机来分配、迁移和管理存储。
实现虚拟机感知能力
从根本上来说,现在虚拟化环境当中所面临的存储挑战来自于传统的物理环境,也就是服务器、网络和存储资源由企业中的不同人员进行管理。有经验的IT专家也许能够回想起在传统虚拟化环境当中部署虚拟机或者负载的过程中,所遇到的大量计划、协作和排错工作。
虚拟化技术改变了这种工作模式,将负载从底层硬件当中抽象出来,为IT管理员提供了能够将服务器和网络资源融合在一起的工具。尽管同样能够将存储系统融入到其中,但是存储仍然在很大程度上保持独立。存储管理员通常会根据计划划分出固定容量的LUN,之后将虚拟机分配到可用的LUN当中。这些单元号依赖于传统的存储协议,比如SCSI、NFS、SMB等等,而和虚拟化环境或者负载并无关联。因此存储系统一直十分笨重并且难以管理,特别是随着虚拟机数量不断增加导致对于LUN的竞争更加激烈,对存储的性能表现和容量带来了更多压力。
存储厂商使用插件和命令行脚本来实现常用存储任务自动化,这样可以轻松满足一些简单的配置需求。后来,hypervisor厂商推出了新的存储协议,比如XenServer(现在已经被弃用)、StorageLink和适用于阵列集成的VMware vStorage API,其可以帮助实现一些基于阵列的功能,比如复制、快照和QoS支持等。尽管从管理的角度来说这些功能可以提供很大的帮助作用,但是这些所谓的改进并没有将虚拟机和存储实现底层分离。
比如,即便一套存储系统在处理备份和远程复制方面表现的十分完美,但是这些功能仍旧只是针对每个LUN,而不是每台虚拟机。因此,当许多台虚拟机共享一个LUN时,其性能和效率将会被极大浪费。
而虚拟化感知存储的目标在于从根本上改变对于传统LUN的依赖性。虚拟化技术允许在虚拟机层面(每台虚拟机而不是每个LUN)将存储平台集成到虚拟基础架构当中,并且提供了存储管理、计算和网络等资源,这种薄置备技术已经应用在早期的存储虚拟化当中,但是并不能识别hypervisor或者虚拟化。
一套真正能够感知虚拟机的存储系统可以在存储和虚拟机之间建立映射关系,所以可以使用性能监控等方式来评估虚拟机层的存储延迟等问题。还可以将其应用在QoS这样的特性当中——可以根据存储重要性(通过QoS设定)以及其他存储基础架构当中的性能等级来智能决定将出现问题的虚拟机移动到哪个存储资源当中。
“大多数能够感知虚拟化的存储都通过在hypervisor当中集成软件实现,”Aldo Cabrera说 ,他是W.P.Carey公司的网络工程师和发布经理。“我们使用一套安装有vCenter插件的Nimble存储系统,当其需要备份、创建、销毁、更改新的LUN,或者报告IOPS、容量和其他问题时,可以和hypervisor直接进行通讯。”
满足需求
能够感知虚拟机的存储会在传统的存储阵列之上集成hypervisor软件层——存储阵列自身仍然使用磁盘、闪存或者多种存储媒介混合等方式。IT部门可以选择是否进行部署、是否在本地部署这种混合环境,或者购买经过预先配置、已经包含hypervisor集成软件存储子系统。
IT部门当然也可以使用自己开发的虚拟化感知存储。“如果你现在拥有一个空白存储阵列,你当然使用OpenStack工具将其进行虚拟化,并不需要其他特殊的硬件,”Tim Noble说,他是ReachIPS的IT总监和顾问委员会成员。“我们在一套全闪存阵列当中使用OpenStack,将这个存储用于现有的内部云环境。”Noble注意到使用亚毫秒访问时间有助于提升应用程序的访问速度。除了开源工具之外,第三方软件产品,比如Nutanix Xtreme Computing Platform可以被安装用来虚拟化现有的存储资产或者创建软件定义存储环境。
企业还可以使用专用的存储子系统来部署虚拟化感知存储(有时将这些子系统被归类到超级融合设备),比如Tintri VMstore、Nutanix NX硬件平台等。现在阵列能够更加高效地使用闪存、硬盘、混合阵列甚至是全闪存系统。来自Tegile和Pure Storage等厂商的混合以及闪存阵列大量使用了压缩和去重复化技术,以功能模块的方式来提供计算和存储资源,利用集群机制提供更好的系统弹性。
但是仍然有一些潜在隐患需要考虑。不论最终采用哪种方式,IT经理都必须注意集成等级以及底层hypervisor提供的管理功能。Noble表示VMware hypervisor可以在不同阵列之间迁移存储,但是还不能基于当然使用情况在不同存储层之间移动数据——这是一种非常让人心烦的限制,因为许多传统的、非虚拟化存储阵列都已经能够自动完成这个过程。
此外,为虚拟化感知存储提供怎样的技术支持对于是否能够成功部署也是至关重要的。比如,部署OpenStack之前需要对Linux版本(比如KVM)进行深入理解。不能忽视OpenStack环境当中的安全性,特别是在基于appliance的OpenStack产品当中,需要及时安装厂商补丁或者更新来修复潜在的脆弱性。OpenStack安全性需要IT和开发人员的共同努力才能实现,只有他们才能创建和维护这些软件。DevOps也能够在本地软件开发当中发挥作用。外部顾问不仅需要帮助开发针对OpenStack部署的支持软件,还应该拥有制作文档的专业知识,并且为内部员工提供详细的技术培训。
“强大的hypervisor工具以及获得足够技术支持的硬件真的能够避免许多令人头疼的问题,”网络自动化解决方案提供商6connect的COO兼合伙人Pete Sclafani表示。Sclafani还提到了网络专业知识和支持的重要性。“所有这些存储系统都需要依赖于网络基础架构才能正常工作,如果能够提前了解哪些地方可能出现性能瓶颈并且主动进行修复,那么将会起到很大帮助作用。”他说。