比特网 发表于:14年05月09日 09:17 [转载] 比特网
虚拟机和云计算
虚拟机的发展催生硬件加速方案,也正是因为硬加速,又使得虚拟机可以大范围应用,也正是如此,才将云计算的概念带了出来,也就是硬件又反过来加速了软件的变革。而随着量的上升,会影响质变,人们会发现其实VM这种东西是非常低效的虚拟化,VMM个人理解其实是一股具有邪性的阳气,他看似光鲜实则非常损耗阴实的,体现为过多不必要的操作系统实例。操作系统本来就是利用线程/进程来虚拟化多任务多用户的运行,每一次系统调用的开销是非常高的,让一个CPU同时运行多个操作系统实例,无疑是极大的浪费,上文提到过这种模式是单机性能过剩而整体资源又无法得到池化时代的产物。而云计算架构的出现,会打破这个矛盾。云计算可能初生的时候就是一个全局虚拟机资源调度管理软件框架,但是一个事物毕竟是不断在成长进化的,云计算会最终找到它的使命,那就是大范围全局资源的池化、分配调度管理监控,也就是数据中心级的OS,做的事情与单机OS如出一辙。既然如此,那么AAAS(ApplicationAs a Service)应该是云计算最终要实现的状态,这就相当于打开屏幕,就出现一堆应用图标,点进去完成你要的功能,退出,结束。既然用户不需要IAAS,不需要直接面对操作系统,那么搞那么多VM实例其实就是没有必要的,空耗资源。云计算需要实现一个全局的应用进程级别的调度中枢,而不是调度VM。再来思考一下大机为什么需要VM?因为大机那个时代并没有现在这种云计算的概念,xAAS这个思维,你可以说那时候人脑残,那时候软件技术是很封闭而且不发达的,所以进行资源细粒度切分,用VM也算是快刀斩乱麻的方案。我们也看到进程级虚拟机(比如LinuxContainer)业逐渐在受到关注。这些都是云计算这个软件框架、这个宏观的OS的定义,那么这种定义会对硬件有什么影响?我想那一定会催生两个硬件形态的变革,一个就是上面所说的单点的性能要足够低,力度要足够细,单点性能“足够低”,这可能让人大跌眼镜,不过将来可真说不定啊,众核CPU就是个很好的胚子;另一个是局部多层高速Fabric核间通信,由于CPU/核心可以任意切分和组合,他们之间一定需要一个高速总线相互连接,目前存在多种Fabric方案和产品,这块虽然比较低调冷门但是也还算成熟,加上硅光等技术会将Fabric隐身至机架外,这就为大范围池化提供了支撑。而这次硬件的变革很可能又会影响软件的架构,使得大规模并行计算不再需要MPI等远程消息传递机制,消息传递直接使用Fabric硬件加速的队列FIFO,会大大简化编程,有利于HPC的模式最终可以全面得到普及。
云计算,宏观操作系统,数据中心级的NUMA机,一切皆有可能。