你所不知道的 EMC 开源的那些事
很多人都知道 EMC 这个公司，知道它是一家全球顶尖的存储产品供应商，但是很多人却不知道 EMC 也是一位开源先锋。
EMC 开源
116.76.254.59
这不是跟Oracle一样属于邪恶轴心的一部分么。
来自广东深圳的 Chrome 50.0|GNU/Linux 用户
2016-05-25T10:19:47.000
很多人都知道 EMC 这个公司，知道它是一家全球顶尖的存储产品供应商，但是很多人却不知道 EMC 也是一位开源先锋。
很多人都知道 EMC 这个公司，知道它是一家全球顶尖的存储产品供应商，但是很多人却不知道 EMC 也是一位开源先锋。


前一段时间去参加 [EMC World 2016大会](http://www.emcworld.com/)，在大会上的见闻了种种新技术，也第一时间听到了不少最新披露的消息。这期间，令笔者非常吃惊的是，EMC 在开源方面的步伐之大，远在很多同侪之上。


![](/data/attachment/album/201605/24/092459dkc9dh8wcvn849fp.jpg)


*EMC {code} 在 EMC World 2016 上*


### 对 EMC 的印象


原本印象中，EMC 是一个以硬件和专有软件为主的厂商，在开源方面不会有太多的积极性，而且存储方面的专有软件也未必适合开源。


EMC 是一家已经成立了30多年的老牌 IT 公司，也是全球第六大的企业软件厂商。以过去的经验来看，这种类型的公司通常在采用新技术方面和公司战略方面会比较稳健，但是近些年随着 EMC 公司在开源战略方面的部署，其不仅仅在原本的存储市场、企业软件市场方面继续着保持领导地位，也逐渐将其影响力带到了开源领域。


在听了一场由 [EMC {code}](http://emccode.com/)的 Jonas rosland 和 Stephanie Carlson 做的演讲之后，笔者发现 EMC 已经紧密的融入了整个开源生态方面，不但与包括 Linux 基金会、OpenStack 基金会、GitHub 等在内的各个开源社区形成了紧密的合作，而且在组建自己的开源社区 EMC {code} 方面已经做出了长足的发展。


### EMC 在开源方面的工作


![](/data/attachment/album/201605/24/092543kypma8zyz7y69x8e.png)


*EMC {code} 开源社区*


EMC 的开源社区，与他们开源的各种项目奇奇怪怪的名字相比，起了一个不算出奇的名字 **{code}**。这个名字代表着一句他们的开源战略：**COMMUNITY ONRAMP for DEVELOPER ENABLEMENT**，这句愿景似的标语如果用中文来描述，可以解释为：“让开发者进入高速通道的社区之路”。


EMC {code} 建立两年来，目前已经发布了多达48 个开源项目——哦不， 49 个了，就在写作这篇随笔的时间里又增加了一个。仅在 2015年这一年，就向社区贡献了超过35万行的代码。其中一些开源项目原本能为 EMC 带来大量的商业营收，比如 CoprHD、RackHD 等，因此在开源后得到了社区的高度关注和积极参与。


![](/data/attachment/album/201605/24/092737zyljycdgddgyylxl.jpg)


*COMMUNITY ONRAMP for DEVELOPER ENABLEMENT*


让我们来看来 EMC 在开源方面都做了哪些举措：


#### RackHD


![](/data/attachment/album/201605/24/092827bgcxnw9bqzd4dqn8.png)


*RackHD*


去年底的时候，EMC 公司兑现了其为开源社区带来重要新贡献的承诺，以 Apache 开源协议发布了 RackHD™ (读作Rack ‘H’ ‘D’)项目。这是一个与平台无关的技术栈，旨在解决超大规模环境下管理和组织协调服务器与网络资源这一行业性挑战。


现代化的数据中心是一个多供应商的存储、网络和服务器的混合体，种类不断增加的商品化硬件被用到各种超大规模场景。对数据中心工程师来说，在大量设备上安装低层级的操作系统、更新固件和 BIOS，已经成为一项复杂低效的人工任务，在超大规模环境下，难度和成本以数量级增加。 **RackHD 的创建旨在囊括各种数据中心硬件的自动化，简化这些基础任务。**


开发人员可使用 RackHD API 作为更大的组织协调系统的一个组件，或者创建一个用户界面管理硬件服务，无需考虑底层硬件是否就绪。其目标是帮助各个组织机构加速现代化应用的部署。而这些应用依赖于大量的商品化服务器和异构基础设施。


目前，RackHD 支持各种基于 Intel® 处理器的数据中心服务器，以及交换机的发现和监控。


详细功能列表请访问 GitHub 上的 RackHD 项目地址： <https://github.com/RackHD> 。


#### REX-Ray


![](/data/attachment/album/201605/24/092957vag1voq14n6y1oqo.png)


*REX-Ray*


虽然 EMC 公司旗下已经有了虚拟化领域的领军的 VMWare 公司，但是在 Docker 兴起之后，EMC 还是积极地参与了容器领域的发展，并利用其在存储领域的强大的技术优势，将 Docker 技术融入到其 XtremIO 和 ScaleIO 产品中，利用简单的 Docker 存储容器实现了共享存储。


REX-Ray 是一个存储编排引擎，**它为Docker、Mesos及其他容器运行环境提供了持久化存储访问**。其设计旨在囊括通用存储、虚拟化和云平台，提供高级的存储功能。REX-Ray 为容器提供了与厂商无关的持久存储，为横跨公共存储、虚拟化和云平台实现先进的存储功能提供了一种简便的集中式架构。


REX-Ray率先提供卷挂载功能，允许主机从无响应的主机上重新分配挂载卷。这样可确保应用程序维持对永久存储的访问。


在 EMC World 2016 大会上，EMC 发布了 REX-Ray 的最新版本 0.4，新功能包括了一个可选的 C/S 模型架构，可用于中心化的控制，兼容 Docker 1.11 Volume API，并支持 EMC ScaleIO、XtremIO、Isilon和 Vmax 存储，以及支持 Amazon EC2、Google Compute Engine、OpenStack和Rackspace 等云存储服务。


EMC {code} 技术副总裁 Josh Bernstein 说，“**开源和基于软件的架构变为了我们的客户所急需的。**”


详细功能列表请访问 GitHub 上的 REX-Ray 的项目地址： <https://github.com/emccode/rexray> 。


#### Polly


![](/data/attachment/album/201605/24/093042h8tfp51j2untppff.png)


*Polly*


在本次大会上，EMC {code} 还新发布了 Polly，它提供了一个可以连接到容器调度器的中央存储调度服务。它可以与Cloud Foundry、Docker、Kubernetes,、Mesos 等容器调度服务协同工作，这样，**存储就可以像计算、内存和网络一样访问了**。能够与其他计算资源一起提供存储资源是一个革命性的飞跃，这超越了其他容器计划，而且提升了存储的地位，使其能够像其他资源一样使用。 


Polly 顺应“**调度环境中将存储作为‘头等公民’**”这种需求而出现，其意即“<ruby> 多态存储卷调度 <rp>  （ </rp> <rt>  polymorphic volume scheduling </rt> <rp>  ） </rp></ruby>”，是一种面向 Cloud Foundry、Docker、Kubernetes、Mesos 以及其他调度环境的开源框架。


以前，就容器部署而言，容器调度器仅关注计算、内存和网络资源。随着容器内的应用开始需要持久的后端存储，将其作为可调度的资源使用的需求出现了。Polly 充当了这样的角色：**将存储作为一种开放框架集成到多种容器调度解决方案中。**


开源容器生态系统是多种多样的，部署方式也有所不同。**多态解决方案允许代码演变，同时保持原始算法完好无损，因此在将存储集成到支持性生态系统中时，多态解决方案对于实现公共功能和方法是至关重要的。** 


详细功能列表请访问 GitHub 上的 Polly 的项目地址： <https://github.com/emccode/polly> 。


#### CoprHD


![](/data/attachment/album/201605/24/093125e1kmz7z40rjjk0h1.png)


*CoprHD*


CoprHD 是开源的存储自动化软件，将来自多个供应商的存储集中化，并转变成单一且可扩展的平台。现在以 Apache 2.0 许可协议开源。


为了帮助企业迎战各种变化，EMC 推出了核心产品 VIPR 控制器的开源版本：CoprHD，**向以社区为主导的开发群体开放 ViPR 控制器所有的存储自动化和控制功能代码，以方便社区开发软件定义的存储自动化系统**。CoprHD 提供与 ViPR 控制器同样的灵活性、多种选择、安全性和透明性，同时增强开发新服务和新应用的能力。


CoprHD 是 EMC 首个基于其商业软件产品的开源项目，它的源码具有与 EMC ViPR 控制器相同的核心属性和功能。需要指出的是，CoprHD 其对应的商业版本 EMC ViPR 控制器，EMC 也将继续提供和支持。


详细特性和支持平台的列表请访问 CoprHD 社区页面： <https://coprhd.github.io/> 。 


### 对 EMC 开源战略的社区反响


EMC 在开源方面的举措坚定而持续。比如其去年开源的 ScaleIO 就分别来自其花费了3亿美金收购的公司的拳头产品，而 ScaleIO 这个软件在当初发布时，该公司甚至不愿提供试用版。至于 ViPR ，我们前面提到过，它的开源版本 CoprHD 和 ViPR 具有相同的代码基，而现在 CoprHD 已经形成了一个成熟的开源社区。


![](/data/attachment/album/201605/24/093222gp51r10mzpm1j1ik.jpg)


*EMC 2016 大会上，参会者济济一堂*


虽然对于 ScaleIO 是否算做是开源产品社区还有一些争论，但是无论如何在非产品环境中ScaleIO 是可以免费下载使用的。


当然，从另外一方面来说，除了部分产品，如 CoprHD 等少数核心产品外，社区也对 EMC 开源的部分外围产品关注不多，希望能见到更多靠近核心的产品能贴近开源战略。


从目前 EMC 开源的几十个软件项目中，我们可以看到，有些项目的参与者还较少。按照 EMC 的产品与市场总裁 Jeremy Burton 所说，“**如果一个开源项目没有人参与，那不是开源，而叫做干掉该项目**。”因此，如何将这些项目找到合适的贡献者，而不仅仅是“开放”源代码就万事大吉，还需要 EMC 做更多的工作。至少，社区方面应该有足够的渠道来听到 EMC 在开源方面的声音，并有合适的社区氛围参与进社区生态的建设，才有助于 EMC 开源战略的持续发展。


### 开源能给 EMC 带来什么？


![](/data/attachment/album/201605/24/093315z98ss1cwz2q2jvvq.jpg)


*开源是你的战略的一部分吗？*


那么为什么 EMC 热衷于开源？开源可以为 EMC 带来什么？


开源可以让 EMC 的软件支持更多的第三方硬件，从而扩展了其应用场景，为客户带来更多的价值。


开源也可以让他们的软件得到更多的发展，从开源生态中汲取更多的养分。CoprHD 和 ViPR 的关系就类似 Fedora 和 Red Hat 的 RHEL 一样，可以通过开源社区的贡献、体验，从而为企业级的产品软件提供更多的发展的可能。


虽然，EMC 还是其开源的软件产品的主要贡献者，但是其开源的产品也会吸引大如 Intel 公司、各个研究机构和大学，小到独立开发者这样的开发力量参与进来。


另外，开源也为其争夺市场份额和对业界标准的影响有不可忽视的作用。


### 结语


纵观 EMC 在开源方面这两年来的举措，我们可以看到，**部分传统的 IT 厂商已经坚定的转向开源战略**，将开源作为其产品和业务发展的一大重要方式。


而 EMC 和 DELL 合并之后，笔者在和 EMC 相关高层中的沟通了解到，**这种开源战略显然会进一步延续下去**，并进一步扩展到新成立的 DELL 科技公司，从而吸引更多的开源社区力量参与，相对地也会进一步促进开源生态的发展。


作为开源战略不可或缺的部分，如何在“开放”源代码之后，将其植入开源社区的土壤，从而真正得到发展，这应该是之后 DELL 科技公司和 DELL EMC 的一大考量的地方。

