如何缩减服务器与存储虚拟化之间的差距

DoSERV服务器在线2010年8月20日 国际报道:应用于Linux操作系统的服务器虚拟化技术在VMware 和思杰的带领下在创新方面取得了飞快的发展。如今红帽公司也斥以巨额战略投资加入其中。

不幸的是,存储领域的虚拟化发展却一直滞后。几种IT领域的趋势-诸如无组织数据的爆发和云计算的出现都让这种差异愈发凸显,让许多有识之士意识到存储虚拟化正在成为阻碍数据中心全面虚拟化取得成功的后腿。Linux逐渐成为比以微核为基础的VMware技术更加高级的管理程序,其构思也来自于早期研发阶段的微核设计。

本文将着重探讨Linux虚拟化目前的状态并提供最佳的实践方法,关注存储,目的是缩小服务器虚拟化与存储虚拟化领域之间的差距。

服务器虚拟化

在虚拟化的早期阶段,服务器虚拟化最初的不表是通过将DHCP,域名服务器和研发环境等相对静态的服务整合在一起来提高服务器的利用率。这个目标可以采用创建管理程序的方法来实现–管理程序就是位于硬件和操作系统之间的虚拟软件层。

随着虚拟化技术开始为大家所接受,英特尔和AMD相继在处理器中对虚拟化进行支持,硬件厂商也开始介入其中。之后虚拟化技术进入蓬勃发展的第二阶段,IT管理者将虚拟化应用到了整个数据中心并通过中央控制台进行管理。

Linux核心作为管理程序

根据性能的不同,硬件辅助虚拟化技术在管理程序领域展露头角。VMware和Xen使用他们自己的微核管理程序来参与Linux设备的竞争。红帽KVM则采用了不同的方式,采用可承载的Linux核心模块和修改过的QEMU来用于设备竞争。

这么做有几点原因。管理程序必须能支持各种设备,涵盖多核和大容量内存,可以安全和有效的管理所有这些资源–以此来证明核心的能力。

这种方法也会得到蓬勃发展的开源研发社区的支持。在不久的将来,客户端操作系统核心将变得更加精简,因为底层管理程序将仿效标准硬件芯片集,处理包括内存管理,网络输入/输出和操作系统安全在内的复杂功能。

对网络来说,万兆以太网将把TCP/IP和ISCSI协议分配给网络卡来执行。存储虚拟化将通过全面的NAS和目标存储系统来分别处理。

虚拟化在云上的发展

云计算是与虚拟化需求紧密相关的数据中心体系架构上的进步,技术创新的关注点也转移到了云计算上。如今管理程序已经是成熟的管理工具,监控能力和相关标准也在发展之中。云上的资源要更加灵活,多用户和大规模。虚拟化厂商正在快速与云需求相辅相成的配合在一起。

RHEV 2.2是红帽公司迈出的最新一步:思杰公司的重头产品是旗下的开源XenServer;Rackspace推出了OpenStack,将其作为Apache许可证授权下使用的免费软件;Cloud.com (之前的VMOps)和 Eucalyptus也推出了在GNU GPLv3许可证授权下使用的云软件。

随着标准的逐步完善,云计算将会有很多的选择,整合也是不可避免的。

存储虚拟化发展依旧滞后

全面的数据中心虚拟化和云如果没有对存储系统实施虚拟化就无法完成。存储经常都是事后才考虑的部分,专门为以指令处理为导向的数据库所设计的系统无法与新的需求完美匹配。
存储系统必须在能力和性能上直线升级;将问题推给硬件系统并不是解决办法。存储虚拟化需要全新的软件方式来平衡扩容体系架构来实现数以千兆的数据传输和存储。

商用硬件时代已经来临

商用存储硬件正在快速向企业级能力靠近,SCSI硬盘的优点以低售价,大容量的SATA硬盘形式供用户使用。RAID控制器可以支持每秒6GB的SAS连通能力和自动分级。网络方面,万兆以太网网可以将存储和计算输入/输出连接为一体(消除了昂贵而复杂的光纤通道网络对于IT企业绝对是个福音)。

你可以用10个存储节点,SATA硬盘和万兆以太网来构建500兆兆位字节的超级存储配置。

存储是个软件问题

如今的文件系统处理的不仅是数据块。一套完整的存储操作系统软件必须能处理容量管理,软件RAID,网络协议和一系列其他的功能。与计算虚拟化类似,用户可以实现虚拟化领域的大部分功能。

FUSE界面能允许文件系统和虚拟数据块设备来实现这个目标。当下的多核处理器优化的性能可以在用户设备上同步运行多个操作系统,那些有关单片电路核心的争论早已经过时。集群文件系统采用这种方式在商用硬件顶端构建了一个强大的存储虚拟化软件层。

Linux与存储系统直接关联

缺省Linux根文件系统Ext3正在逐渐成为过去,而Ext4还存在一些局限。

名为”Btrfs”的最新文件系统正处在积极的研发阶段,将成为Solaris ZFS的Linux解决方案。它可以支持很多强大的功能,比如快照,容量管理,软件RAID,在线压缩等。

诸如Btrfs和ZFS等早期磁盘文件系统的不足之处是他们无法超出单个服务器的范围。

Linux NAS

使用OpenFiler构建的单机版Linux ISCSI或者NFS服务器能通过NFS,CIFS,FTP和ISCSI协议来提供单机版NAS/SAN,供多个计算节点内的存储资源共享。

不过单机版存储是一种单点故障。

DRBD(分布式复制模块设备)能为使用激活-被动HA配置的双存储服务器提供网络RAID-1。

Linux向外扩展NAS

上一代的向外扩展系统(比如甲骨文的Lustre,红帽的GFS,甲骨文的OCFS2和SGI的CXFS)采用的是以核心为基础的方式。他们在配置和管理上都比较复杂,而且无法从高性能计算深入渗透到企业级原始存储中去。而新一代的扩容文件系统采用的是用户区方式。其中的产品代表为可扩容NFS/CIFS,Ceph和GlusterFS。

向外扩展NFS:NFS v4.1 (pNFS)在2010年1月被正式分配RFC数字。但不幸的是,由于Linux pNFS采用的是集中式元数据和核心方式,它被归类为第一代产品。pNFS被企业用户所接受的速度可能会比较缓慢。由于NFSv3 TCP是使用最广泛的NAS协议,因此最好采用循环DNS或者虚拟IP为基础的扩容NAS存储。RHEV, VMware和Xen都可以支持NFSv3。虚拟化和云用户都开始从所有权存储区域网络为基础的存储解决方案向可扩容NAS的方向转移。

向外扩展CIFS:Samba针对SMB1和SMB2协议的Linux采用的是CIFS。SMB2解决了SMB1中的性能问题,但是要到明年才能真正出炉。即使是微软也不推荐在Hyper-V管理程序中使用CIFS。

Ceph:Ceph目前处在积极的研发阶段,看起来颇有前景。与Linux (从v2.6.34和服务器领域开始)一起推出的核心空间客户端会在用户区使用。Ceph使用的分布式元数据体系架构增加了多重服务器内部管理分布式复制元数据的复杂性。随着时间的推移和来自大型社区的支持,他们应该能应对这个挑战。Ceph依靠Btrfs来作为后端存储,直到可以支持NFS才能解决这个问题,在服务器虚拟化厂商能够在管理程序中支持本地客户端之前还需要等待一段时间。

GlusterFS:GlusterFS是用户区内部署的完整的存储操作系统软件。诸如容量管理器,复制,排序,网络协议,输入/输出调度程序,线程和性能模块等功能都可以作为软件模块来执行。集群消除了使用弹性散列运算法则的元数据服务器需求。还能支持在线自我恢复。与Linux NFS类似,文件和文件夹都是存储在使用标准磁盘文件系统的后端硬盘上。集群可以支持诸如NFSv3, CIFS, WebDAV, FTP和本地集群(通过FUSE)等多个NAS协议。集群还可以广泛的配置在从亚马逊弹性计算云环境到VMware等一系列应用软件环境中。

非-POSIX存储

全新系列的存储解决方案在以POSIX为基础的NAS和SQL数据库之间涌现出来。这主要指的是”NoSQL,”,他们形成了包括分布式目标存储,文件存储,关键值配对和向外扩展目标数据库在内的一整套解决方案。这些解决方案需要针对应用软件源码进行修改。由于这些软件是为特定目的而设计的,他们在各自的应用软件领域有着各自的优势。

举例来说,Hadoop是针对大规模搜索分析或者数据采集应用软件而设计的。Cassandra和MongoDB类似于亚马逊的Dynamo或者谷歌的BigTable。Redis, Memcached和Memcachedb能提供分布式关键值数据存储。

结论

存储和计算领域的Linux虚拟化的未来看起来一片光明。免费软件和开源的发展也呈多样性态势。当一切尘埃落定,一些创新型解决方案将涌现出来。

我们希望能追踪到Linux服务器虚拟化的下一个发展阶段,希望随着服务器虚拟化和存储虚拟化之间的差距逐渐缩小,企业用户能逐渐意识到存储虚拟化的价值所在。