I/O Virtualization
Bottlenecks in Cloud Computing Today
这一篇文章重点介绍,主要讲的是云计算当中的I/O虚拟化的瓶颈。
作者是,他原来在HPCA
2007上面发表过一篇大家很熟悉的文章:“
Concurrent Direct Network Access for
Virtual Machine Monitors”
文章主要是对一个叫做Eucalyptus Cluster Architecutre进行了相关的网络IO性能和磁盘的IO性能进行了测试,然后对结果进行了一个算是比较详细的分析,然后给出了中肯的建议和展望。
A.首先来了解一下这个Eucalyptus:文章说:Eucalyptus是一个开源的云计算框架,它可以在30分钟内,为一个企业的数据中心创建私有云,并且它提供的API可以与Amazon Web Services(AWS)兼容。
那么什么是私有云(private cloud computing)呢?我们暂时这样理解的,由企业自己部署的,而不是租借别人的(比如:Amazon),并且其上的应用程序,是与该企业的利益紧密相连的,诸如医疗记录处理,信用卡处理等,他们不适用于public cloud computing环境(租借别人的来部署),因为不是很安全,因此私有云对安全性要求比较高。
下图是一个典型的Eucalyptus架构:
我一个个解释:
Cloud Controller (CLC):提供对云资源的一套管理工具,处于一个比较抽象,比较高级的地位,直接接受来自Web Interface的请求,比如:创建或者终结一个虚拟机等操作,
Cluster Controller (CC):CC在CLC和单独的物理节点之间扮演一个网关的作用,它的职责主要是控制特定的虚拟机的进程,(比CLC低级些),并且管理他们的网络,CC必须和他管理的虚拟机进程在同一个广播域的范围内。
Node Controller (NC):这可能是处于最低端的管理控制器了,每一个物理节点有一个NC,负责存取虚拟机镜像, 控制每个物理节点上的hypervisor,这个NC可以部署在KVM中的host domain,或者Xen中的driver domain。
Elastic Block Storage Controller (EBS):每个VM需要对应一个属于自己的磁盘。在这种结构下,每个VM对应的磁盘一般都有专有的存储服务器进行相关存储,而不是用每个物理节点的本地存储。那么EBS就是这么个用处,把来自VM对其相关存储的读写导入到对应的存储服务器中。(EBS是块级的寻址)
Walrus Storage Controller (WS3):WS3 提供了与Amazon S3 (Simple Storage Service)相兼容的API服务,这个服务可以把虚拟机的镜像按文件级的方式存储,而不是块。本文章对其没有相关的测试。
B.再来看它是怎么测试的:作者用了一个2个物理节点的简单的集群来测,一个前端节点,一个后端节点。
前端节点有两张网卡,一个连校园网,另外一个连他要测试的那个私有网段。
后端节点则只连接私有网段。
前端节点负责前面那个图的CLC,CC,EBS和WS3的服务,
而后端节点呢?负责NC,并且跑虚拟机
为了有个对比,作者还做了个performance baseline,分别是硬盘读写110MB/S,网卡接收940MB/s,那么在一个理想化的云环境下,虚拟机应该具有与这两个数值匹配的性能。
作者测了三个东西:
1.Eucalyptus with KVM
2.Eucalyptus with Xen
3.Amazon EC2
所有的这个三个东西,只跑一个虚拟机(为了公平测试),但是Amazon EC2有点麻烦,因为它是个黑盒的,你不知道你旁边有没有和你一起跑的兄弟姐妹虚拟机,没办法,作者一咬牙,掏出了钱,在Amazon EC2上面买了一个比较贵的虚拟机的使用权,虽然不知道旁边到底有没有虚拟机,但是至少数量上会少一点。(做科研真是不容易呀)
测试软件的话,有以下:
在虚拟机装了
个Hadoop,然后呢,
是dd命令,用来产生写请求,还有一个是大家熟悉的netperf,用来测网络性能。
C.测试结果:我把结果贴出来,大家可以自己看看。
作者最后号召大家,前仆后继的去改进云计算里的IO性能吧。
我这里就不分析了,累死了。
阅读(1118) | 评论(0) | 转发(0) |