PC有操作系统。甚至手机也有操作系统。为什么数据中心没有一个操作系统?
当然,制作一个能够处理数据中心全部资源的操作系统要比制作一个允许一台设备运行应用程序的操作系统困难得多。数据中心有IT专业人员团队来保证所有的服务器运行和保证应用程序有足够的存储等等。但是,这个工作量很大,以至于有必要推出一个更昂贵的能够处理整个数据中心事务的操作系统。
这是加州大学伯克利分校博士生Matei Zaharia本星期在俄勒冈州波特兰举行的Usenix年度技术会议上发表的观点。
他不是第一个提议为计算系统集群制作一个操作系统的人。但是,他认为这个需要变得越来越迫切,因为应用程序和用户、编程框架和存储系统越来越多样化。
数据中心操作系统能够把所有这些集中在一个管理平台并且提供资源共享、数据共享、编程抽象和调试。
Zaharia称,我们开发时间共享和计算机操作系统也是出于同样的原因。
一位听众成员指出,为计算机集群制造操作系统的想法已经出现几十年。他驳斥了Zaharia把它称作一个新的想法和为什么现在会取胜的观点。
Zaharia认为,早期版本的数据中心操作系统已经在制作。他指出,谷歌已经在使用高级的技术运行其数据中心。这个技术还没有完全向大众公开。谷歌的软件栈就像是按照操作系统式的思路设计的。
Zaharia和他的同事在一篇题为“数据中心需要一个操作系统”的论文中解释了他们的想法。在Usenix网站上可以看到这篇论文。
这篇论文称,数据中心已经托管了许多种类的应用程序(存储系统、网络应用、长期运行的服务和批量分析),随着新的集群编程框架的开发,我们预计应用程序的数量还将增长。例如,谷歌已经利用Pregel (一种用于图片应用的特殊框架)、Dremel (一种用于交互式数据挖掘的低延迟系统)和Percolator (一种增量索引系统)来增强其MapReduce框架。同时,计算机集群用户数量正在增长。例如,Facebook的Hadoop数据库处理数百个用户的几乎同时互动的SQL查询。因此,数据中心操作人员能够在一个应用程序的用户与多个应用程序之间有效地反复利用资源是非常重要的。
Zaharia没有说他们已经制作了一个数据中心操作系统。但是,他说,他的团队已采取初步的步骤,设计了一个名为“Mesos”计算机集群管理器,可在应用程序之间实现精确的共享。
仍需要解答的一些问题包括如果制作标准化的节目、如何处理流数据和保障存储性能。
但是,Zaharia认为包括谷歌、亚马逊和微软在内的许多公司正在解决这些问题。
Zaharia在论文中称,Hadoop stack、LAMP、亚马逊的Web服务、Windows Azure和谷歌的GFS/BigTable/ MapReduce等软件平台是目前事实上的数据中心操作系统。这些平台将逐步发展以应对数据中心用户和工作量的多样性。但是,数据中心应用程序仍然很难开发并且不能容易的相互兼容。