标签 OpenStack 下的文章

这是 LXD 2.0 系列介绍文章的第十一篇。

  1. LXD 入门
  2. 安装与配置
  3. 你的第一个 LXD 容器
  4. 资源控制
  5. 镜像管理
  6. 远程主机及容器迁移
  7. LXD 中的 Docker
  8. LXD 中的 LXD
  9. 实时迁移
  10. LXD 和 Juju
  11. LXD 和 OpenStack
  12. 调试,及给 LXD 做贡献

介绍

首先对这次的延期抱歉。为了让一切正常我花了很长时间。我第一次尝试是使用 devstack 时遇到了一些必须解决问题。 然而即使这样,我还是不能够使网络正常。

我终于放弃了 devstack,并使用用户友好的 Juju 尝试使用 “conjure-up” 部署完整的 Ubuntu OpenStack。它终于工作了!

下面是如何运行一个完整的 OpenStack,使用 LXD 容器而不是 VM,并在 LXD 容器中运行所有这些(嵌套的!)。

要求

这篇文章假设你有一个可以工作的 LXD 设置,提供容器网络访问,并且你有一个非常强大的 CPU,大约 50GB 给容器空间和至少 16G B的内存。

记住,我们在这里运行一个完整的 OpenStack,这东西不是很轻量!

设置容器

OpenStack 由大量不同做不同事情的组件组成。 一些需要一些额外的特权,为了可以使设置更简单,我们将使用特权容器。

我们将配置支持嵌套的容器,预加载所有需要的内核模块,并允许它访问 /dev/mem(显然是需要的)。

请注意,这意味着 LXD 容器的大部分安全特性对该容器被禁用。 然而由 OpenStack 自身产生的容器将是无特权的,并且可以正常使用 LXD 的安全特性。

lxc launch ubuntu:16.04 openstack -c security.privileged=true -c security.nesting=true -c "linux.kernel_modules=iptable_nat, ip6table_nat, ebtables, openvswitch"
lxc config device add openstack mem unix-char path=/dev/mem

LXD 中有一个小 bug,它会尝试加载已经加载到主机上的内核模块。这已在LXD 2.5中得到修复,并将在LXD 2.0.6 中修复,但在此之前,可以使用以下方法:

lxc exec openstack -- ln -s /bin/true /usr/local/bin/modprobe

我们需要加几条 PPA 并安装 conjure-up,它是我们用来安装 OpenStack 的部署工具。

lxc exec openstack -- apt-add-repository ppa:conjure-up/next -y
lxc exec openstack -- apt-add-repository ppa:juju/stable -y
lxc exec openstack -- apt update
lxc exec openstack -- apt dist-upgrade -y
lxc exec openstack -- apt install conjure-up -y

最后一步是在容器内部配置 LXD 网络。

所有问题都选择默认,除了:

  • 使用 dir 存储后端( zfs 不在嵌套容器中用)
  • 不要配置 IPv6 网络(conjure-up/juju 不太兼容它)
lxc exec openstack -- lxd init

现在配置完容器了,现在我们部署 OpenStack!

用 conjure-up 部署 OpenStack

如先前提到的,我们用 conjure-up 部署 OpenStack。

这是一个很棒的用户友好的可以与 Juju 交互来部署复杂服务的工具。

首先:

lxc exec openstack -- sudo -u ubuntu -i conjure-up
  • 选择 “OpenStack with NovaLXD”
  • 选择 “localhost” 作为部署目标(使用 LXD)
  • 点击 “Deploy all remaining applications”

接下来会部署 OpenStack。整个过程会花费一个多小时,这取决于你运行的机器。你将看到所有服务会被分配一个容器,然后部署并最终互连。

Conjure-Up deploying OpenStack

部署完成后会显示一个安装完成的界面。它会导入一些初始镜像、设置 SSH 权限、配置网络最后会显示面板的 IP 地址。

访问面板并生成一个容器

面板运行在一个容器中,因此你不能直接从浏览器中访问。

最简单的方法是设置一条 NAT 规则:

lxc exec openstack -- iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to <IP>

其中 <ip> 是 conjure-up 在安装结束时给你的面板 IP 地址。

你现在可以获取 “openstack” 容器的 IP 地址(来自 lxc info openstack),并将浏览器指向:http:///horizon 。

第一次加载可能需要几分钟。 一旦显示了登录界面,输入默认登录名和密码(admin/openstack),你就会看到OpenStack的欢迎面板!

oslxd-dashboard

现在可以选择左边的 “Project” 选项卡,进入 “Instances” 页面。 要启动一个使用 nova-lxd 的新实例,点击 “Launch instance”,选择你想要的镜像,网络等,接着你的实例就产生了。

一旦它运行后,你可以为它分配一个浮动 IP,它将允许你从你的 “openstack” 容器中访问你的实例。

总结

OpenStack 是一个非常复杂的软件,你也不会想在家里或在单个服务器上运行它。 但是,不管怎样在你的机器上包含这些服务在一个容器中都是非常有趣的。

conjure-up 是部署这种复杂软件的一个很好的工具,背后使用 Juju 驱动部署,为每个单独的服务使用 LXD 容器,最后是实例本身。

它也是少数几个容器嵌套多层并实际上有意义的情况之一!

额外信息

conjure-up 网站: http://conjure-up.io

Juju 网站: http://www.ubuntu.com/cloud/juju

LXD 的主站在: https://linuxcontainers.org/lxd

LXD 的 GitHub 仓库: https://github.com/lxc/lxd

LXD 的邮件列表: https://lists.linuxcontainers.org

LXD 的 IRC 频道: #lxcontainers on irc.freenode.net

如果你不想或者不能在你的机器上安装 LXD ,你可以在 web 上试试在线版的 LXD。


作者简介:我是 Stéphane Graber。我是 LXC 和 LXD 项目的领导者,目前在加拿大魁北克蒙特利尔的家所在的 Canonical 有限公司担任 LXD 的技术主管。


via: https://www.stgraber.org/2016/10/26/lxd-2-0-lxd-and-openstack-1112/

作者:Stéphane Graber 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

随着越来越多的组织寻求构建和管理自己的开源云,所以拥有 OpenStack 经验仍然被视为技术界中最需要的技能。但是 OpenStack 是一个巨大的知识领域,包含了十几个正在积极开发的单独项目。仅仅使你的技能跟上它的最新发展就是一个挑战。

好消息是现在有很多资源可以让你跟上这个发展速度。除了其官方项目文档,各种培训和认证程序、纸质的指南、以及其他资源之外,还有大量的由 OpenStack 社区成员编写并发布在各种博客和线上出版物上的教程和指南。

在 Opensource.com,我们每个月都会收集这些社区资源中最好的资源,并将它们放到一个集锦中。这是我们上个月的内容。

  • 这次排第一位的是 Julie Pichon 对 Mistral 在 TripleO 中的使用的一个快速介绍。Mistral 是一个工作流服务,允许你设置一个多步过程自动化和异步协调操作。在该快速指南中学习 Mistral 的基础知识、它如何工作,以及如何在 TripleO 中使用它。
  • 想要使用 OpenStack 自己的一套工具来深入了解 TripleO 管理 OpenStack 部署么?你会想看看这一组为使用 TripleO 设置 OpenStack 的人士写的简洁提示。这是一个正在进行中的工作,所以如果你还想包含什么,欢迎随时贡献。
  • 使用 TripleO 设置独立的 Ceph 部署时,不要错过这个快速指南,这是我们的 TripleO 指南的第三篇。它所需要的只是一个简短的 YAML 文件和一个简单的命令。
  • 接下来,如果你是一个 OpenStack 贡献者,你可能会熟悉 Grafana 面板,它显示了 OpenStack 持续集成基础设施的各种指标。有没有想过这个服务如何工作,或想创建一个新的指标到面板上?学习如何创建你自己的本地面板的副本,你可以测试试试,并作出自己的修改。
  • 有没有想过 OpenStack 云上的网络底层到底在如何运作的?OpenStack 经常使用 Open vSwitch 用于 Neutron 和 Nova 的网络服务;在这个演练中学习设置的基础。

这次就是这样了。和往常一样,请查看我们完整的 OpenStack 教程,它汇集了过去三年发布的数百个单独的指南。

作者简介:

Jason Baker - Jason 热衷于使用技术使世界更加开放,从软件开发到阳光政府行动。Linux 桌面爱好者、地图/地理空间爱好者、树莓派工匠、数据分析和可视化极客、偶尔的码农、云本土主义者。在 Twitter 上关注他。


via: https://opensource.com/article/17/1/openstack-tutorials

作者:Jason Baker 译者:geekpi 校对:jasminepeng

本文由 LCTT 原创编译,Linux中国 荣誉推出

OpenStack 欢迎新成员的到来,但是,对于这个发展趋近成熟并且快速迭代的开源社区而言,能够拥有一个新手指南并不是件坏事。在奥斯汀举办的 OpenStack 峰会上,Paul Belanger (来自红帽公司)、 Elizabeth K. Joseph (来自 HPE 公司)和 Christopher Aedo (来自 IBM 公司)就针对新人的 OpenStack 架构作了一场专门的讲演。在这次采访中,他们提供了一些建议和资源来帮助新人成为 OpenStack 贡献者中的一员。

你的讲演介绍中说你将“深入架构核心,并解释你需要知道的关于让 OpenStack 工作起来的每一件事情”。这对于 40 分钟的讲演来说是一个艰巨的任务。那么,对于学习 OpenStack 架构的新手来说最需要知道那些事情呢?

Elizabeth K. Joseph (EKJ): 我们没有为 OpenStack 使用 GitHub 这种提交补丁的方式,这是因为这样做会对新手造成巨大的困扰,尽管由于历史原因我们还是在 GitHub 上维护了所有库的一个镜像。相反,我们使用了一种完全开源的评审形式,而且持续集成(CI)是由 OpenStack 架构团队维护的。与之有关的,自从我们使用了 CI 系统,每一个提交给 OpenStack 的改变都会在被合并之前进行测试。

Paul Belanger (PB): 这个项目中的大多数都是富有激情的人,因此当你提交的补丁被某个人否定时不要感到沮丧。

Christopher Aedo (CA):社区会帮助你取得成功,因此不要害怕提问或者寻求更多的那些能够促进你理解某些事物的引导者。

在你的讲话中,对于一些你无法涉及到的方面,你会向新手推荐哪些在线资源来让他们更加容易入门?

PB:当然是我们的 OpenStack 项目架构文档。我们已经花了足够大的努力来尽可能让这些文档能够随时保持最新状态。在 OpenStack 运行中使用的每个系统都作为一个项目,都制作了专门的页面来进行说明。甚至于连 OpenStack 云这种架构团队也会放到线上。

EKJ:我对于架构文档这件事上的观点和 Paul 是一致的,另外,我们十分乐意看到来自那些正在学习项目的人们提交上来的补丁。我们通常不会意识到我们忽略了文档中的某些内容,除非它们恰好被人问起。因此,阅读、学习,会帮助我们修补这些知识上的漏洞。你可以在 [OpenStack 架构邮件清单]提出你的问题,或者在我们位于 FreeNode 上的 #OpenStack-infra 的 IRC 专栏发起你的提问。

CA:我喜欢这个详细的帖子,它是由 Ian Wienand 写的一篇关于构建镜像的文章。

"gotchas" 会是 OpenStack 新的贡献者们所寻找的吗?

EKJ:向项目作出贡献并不仅仅是提交新的代码和新的特性;OpenStack 社区高度重视代码评审。如果你想要别人查看你的补丁,那你最好先看看其他人是如何做的,然后参考他们的风格,最后一步步做到你也能够向其他人一样提交清晰且结构分明的代码补丁。你越是能让你的同伴了解你的工作并知道你正在做的评审,那他们也就越有可能及时评审你的代码。

CA:我看到过大量的新手在面对 Gerrit 时受挫,阅读开发者引导中的开发者工作步骤,有可能的话多读几遍。如果你没有用过 Gerrit,那你最初对它的感觉可能是困惑和无力的。但是,如果你随后做了一些代码评审的工作,那么你就能轻松应对它。此外,我是 IRC 的忠实粉丝,它可能是一个获得帮助的好地方,但是,你最好保持一个长期在线的状态,这样,尽管你在某个时候没有出现,人们也可以回答你的问题。(阅读 IRC,开源成功的秘诀)你不必总是在线,但是你最好能够轻松的在一个频道中回溯之前信息,以此来跟上最新的动态,这种能力非常重要。

PB:我同意 Elizabeth 和 Chris 的观点, Gerrit 是需要花点精力的,它将汇聚你的开发方面的努力。你不仅仅要提交代码给别人去评审,同时,你也要能够评审其他人的代码。看到 Gerrit 的界面,你可能一时会变的很困惑。我推荐新手去尝试 Gertty,它是一个基于控制台的终端界面,用于 Gerrit 代码评审系统,而它恰好也是 OpenStack 架构所驱动的一个项目。

你对于 OpenStack 新手如何通过网络与其他贡献者交流方面有什么好的建议?

PB:对我来说,是通过 IRC 并在 Freenode 上参加 #OpenStack-infra 频道(IRC 日志)。这频道上面有很多对新手来说很有价值的资源。你可以看到 OpenStack 项目日复一日的运作情况,同时,一旦你知道了 OpenStack 项目的工作原理,你将更好的知道如何为 OpenStack 的未来发展作出贡献。

CA:我想要为 IRC 再次说明一点,在 IRC 上保持全天在线记录对我来说有非常重大的意义,因为我会时刻保持连接并随时接到提醒。这也是一种非常好的获得帮助的方式,特别是当你和某人卡在了项目中出现的某一个难题的时候,而在一个活跃的 IRC 频道中,总会有一些人很乐意为你解决问题。

EKJOpenStack 开发邮件列表对于能够时刻查看到你所致力于的 OpenStack 项目的最新情况是非常重要的。因此,我推荐一定要订阅它。邮件列表使用主题标签来区分项目,因此你可以设置你的邮件客户端来使用它来专注于你所关心的项目。除了在线资源之外,全世界范围内也成立了一些 OpenStack 小组,他们被用来为 OpenStack 的用户和贡献者提供服务。这些小组可能会定期要求 OpenStack 主要贡献者们举办座谈和活动。你可以在 MeetUp.com 上搜素你所在地域的贡献者活动聚会,或者在 groups.openstack.org 上查看你所在的地域是否存在 OpenStack 小组。最后,还有一个每六个月举办一次的 OpenStack 峰会,这个峰会上会作一些关于架构的演说。当前状态下,这个峰会包含了用户会议和开发者会议,会议内容都是和 OpenStack 相关的东西,包括它的过去,现在和未来。

OpenStack 需要在那些方面得到提升来让新手更加容易学会并掌握?

PB: 我认为我们的 account-setup 环节对于新的贡献者已经做的比较容易了,特别是教他们如何提交他们的第一个补丁。真正参与到 OpenStack 开发者模式中是需要花费很大的努力的,相比贡献者来说已经显得非常多了;然而,一旦融入进去了,这个模式将会运转的十分高效和令人满意。

CA: 我们拥有一个由专业开发者组成的社区,而且我们的关注点都是发展 OpenStack 本身,同时,我们致力于让用户付出更小的代价去使用 OpenStack 云架构平台。我们需要发掘更多的应用开发者,并且鼓励更多的人去开发能在 OpenStack 云上完美运行的云应用程序,我们还鼓励他们在社区 App 目录上去贡献那些由他们开发的应用。我们可以通过不断提升我们的 API 标准和保证我们不同的库(比如 libcloud,phpopencloud 以及其他一些库)持续地为开发者提供可信赖的支持来实现这一目标。还有一点就是通过举办更多的 OpenStack 黑客比赛。所有的这些事情都可以降低新人的学习门槛,这样也能引导他们与这个社区之间的关系更加紧密。

EKJ: 我已经致力于开源软件很多年了。但是,对于大量的 OpenStack 开发者而言,这是一个他们自己所从事的第一个开源项目。我发现他们之前使用私有软件的背景并没有为他们塑造开源的观念、方法论,以及在开源项目中需要具备的合作技巧。我乐于看到我们能够让那些曾经一直在使用私有软件工作的人能够真正的明白他们在开源如软件社区所从事的事情的巨大价值。

我想把 2016 年打造成开源俳句之年。请用俳句来向新手解释 OpenStack 一下。

(LCTT 译注:俳句(Haiku)是一种日本古典短诗,以5-7-5音节为三句,校对者不揣浅陋,诌了几句歪诗,勿笑 :D,另外 OpenStack 本身音节太长,就捏造了一个中文译名“开栈”——明白就好。)

PB 开栈在云上 OpenStack runs clouds // 倘钟情自由软件 If you enjoy free software // 先当造补丁 Submit your first patch

CA 时光不必久 In the near future // 开栈将支配世界 OpenStack will rule the world // 协力早来到 Help make it happen!

EKJ 开栈有自由 OpenStack is free // 放在自家服务器 Deploy on your own servers // 运行你的云 And run your own cloud!

Paul、Elizabeth 和 Christopher 在 4 月 25 号星期一上午 11:15 于奥斯汀举办的 OpenStack 峰会发表了演说


via: https://opensource.com/business/16/4/interview-openstack-infrastructure-beginners

作者:Rikki Endsley 译者:kylepeng93 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

虽然离 Fedora 24 还有几周,你现在可以就测试Fedora 24 Beta了。这是一个窥探新特性的好机会,并且可以帮助他们找出仍需要修复的 bug。

Fedora Cloud 镜像可以从你常用的本地镜像或者 Fedora 的服务器中下载。本篇文章我将向你展示如何将这个镜像导入 OpenStack 环境并且测试 Fedora 24 Beta。

最后说一下:这还是 beta 软件。目前对我来说是可靠的,但是你的体验可能会不同。我建议你等到正式版发布再在上面部署关键的应用。

导入镜像

旧版(版本1)的 glance 客户端允许你在 OpenStack 环境中导入一个可通过 URL 访问的镜像。由于我 OpenStack 云的连接速度(1 Gbps)比我家 (大约 20 mbps 上传速度)快,这个功能对我很有用。然而,从 URL 导入的功能[在 glance v2 中被移除了]。OpenStackClient 也不支持这个功能。

现在由两个选择:

  • 安装旧版的 glance 客户端
  • 使用 Horizon (网页面板)

获取旧版本的 glance 是有挑战性的。OpenStack liberty 版本的需求文件对 glance 客户端没有最高版本上限,并且很难找到让旧版客户端工作的依赖文件。

让我们使用 Horizon,这就是写这篇文章的原因。

在 Horizon 中添加一个镜像

登录 Horizon 面板,点击 Compute->Image。点击页面右上方的“+ Create Image”,一个新的窗口会显示出来。并且窗口中有这些信息:

完成后,你会看到这个:

点击“ 创建镜像 Creat Image ”,接着镜像列表会显示一段时间的 正在保存 Saving 信息。一旦切换到 活动 Active ,你就可以构建一个实例了。

构建实例

既然我们在使用 Horizon,我们可以在此完成构建过程。

在镜像列表页面,找出我们上传的镜像并且点击右边的 启动实例 Launch Instance 。一个新的窗口会显示出来。镜像名(Image Name)下拉框中应该已经选择了 Fedora 24 Beta 的镜像。在这里,选择一个实例名,选择一个安全组和密钥对(在 Access & Security 标签中)和网络(在 Networking 标签)。确保选择有足够容量的存储(m1.tiny 不太够)。

点击 启动 Launch 并且等待实例启动。

一旦实例构建完成,你能以用户 fedora 通过 ssh 连接到实例。如果你的安全组允许连接并且你的密钥对正确配置了,你应该进入到 Fedora 24 Beta 中了!

还不确定接下来做什么?有下面几点建议:

  • 升级所有的包并且重启(确保你测试的是最新的更新)
  • 安装一些熟悉的应用并且验证它们可以正常工作
  • 测试你已有的自动化或者配置管理工具
  • 打开 bug 报告

via: https://major.io/2016/05/24/test-fedora-24-beta-openstack-cloud/

作者:major.io 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

回顾这周的 OpenStack 峰会,我仍然回味着开源云生态系统的浩瀚无垠,有那么多需要了解的项目及概念才能获得成功。不过我们很幸运,因为有许多资源让我们跟随着项目的脚步。除了官方文档外,我们还有许多来自第三方提供的培训和认证、个人分享,以及许多社区贡献的学习资源。

为了让我们保持获得最新消息,每个月我们将会整合发布 OpenStack 社区的最新教程、指导和小贴士等。下面是我们过去几个月最棒的发布分享。

  • 首先,如果你正在寻找一个靠谱实惠的 OpenStack 测试实验室, Intel NUC 是最值得考虑的平台。麻雀虽小,五脏俱全,通过指导文章,可以很轻松的按照教程在 NUC 上使用 TripleO 部署 OpenStack ,并且还可以轻松避开一些常见的古怪问题。
  • 当你已经运行的一段时间 OpenStack 后,你会发现在你的云系统上许多组件生成了大量日志。其中一些是可以安全删除的,而你需要一个管理这些日志的方案。参考在部署生产 9 个月后使用 Celiometer 管理日志的一些思考
  • 对于 OpenStack 基础设施项目的新手,想要提交补丁到 OpenStack 是相当困难的。入口在哪里,测试怎么做,我的提交步骤是怎么样的?可以通过 Arie Bregman 的这篇博客文章快速了解整个提交过程。
  • 突发计算节点失效,不知道是硬件还是软件问题。不过好消息是 OpenStack 提供了一套非常简单的迁移计划可以让你迁移当机节点到别的主机。然而,迁移过程中使用的命令令许多人感到困惑。可以通过这篇文章来理解 migrate 和 evacuate 命令的不同。
  • 网络功能虚拟化技术需要 OpenStack 之外的一些功能,而用户可能不熟悉它们。例如, SR-IOV 和 PCI 直通是最大限度地提高物理硬件性能的方式。可以学习部署步骤以使 OpenStack 的性能最大化。

这些文章基本涵盖了本月(译者注: 4 月)推送,如果你还需要更多文章,可以检索过去推送的 OpenStack 文献来获取更多资源。如果有你认为我们应该推荐的新教程,请在评论中告诉我们,谢谢。


via: https://opensource.com/business/16/4/master-openstack-new-tutorials

作者:Jason Baker 译者:VicYu/Vic020 校对:PurlingNayuki

本文由 LCTT 原创翻译,Linux中国 荣誉推出

得益于围绕 Linux 和云不断发展的平台与基础设施技术,红帽正在持续快速发展。红帽宣布在九月二十一日完成了 2016 财年第二季度的财务业绩,再次超过预期。

这一季度,红帽的收入为 5 亿 4 百万美元,和去年同比增长 13%。净收入为 5 千 1 百万美元,超过了 2015 财年第二季度的 4 千 7 百万美元。

展望未来,红帽为下一季度和全年提供了积极的目标。对于第三季度,红帽希望指导收益能在 5亿1千9百万美元和5亿2千3百万美元之间,和去年同期相比增长 15%。

对于 2016 财年,红帽的全年指导目标是 20亿4千4百万美元,和去年相比增长 14%。

红帽 CFO Frank Calderoni 在电话会议上指出,红帽最高的 30 个订单差不多甚至超过了 1 百万美元。其中有 4 个订单超过 5 百万美元,还有一个超过 1 千万美元。

从近几年的经验来看,红帽产品的交叉销售非常成功,全部订单中有超过 65% 的订单包括了一个或多个红帽应用和新兴技术产品组件。

Calderoni 说 “我们希望这些技术,例如中间件、RHEL OpenStack 平台、OpenShift、云管理和存储能持续推动收益增长。”

OpenStack

在电话会议中,红帽 CEO Jim Whitehurst 多次问到 OpenStack 的预期收入。Whitehurst 说得益于安装程序的改进,最近发布的 Red Hat OpenStack Platform 7.0 向前垮了一大步。

Whitehurst 提到:“在识别硬件和使用方面它做的很好,当然,这也意味着在硬件识别并正确使用它们方便还有很多工作要做。”

Whitehurst 说他已经开始注意到很多的生产应用程序开始迁移到 OpenStack 云上来。他也警告说在产业化方面迁移到 OpenStack 大部分只是尝鲜,还并没有成为主流。

对于竞争对手, Whitehurst 尤其提到了微软、惠普和 Mirantis。在他看来,很多组织仍然会使用多种操作系统,如果他们部分使用了微软产品,会更倾向于开源方案作为替代选项。Whitehurst 说在云方面他还没有看到太多和惠普面对面的竞争,但和 Mirantis 则确实如此。

Whitehurst 说 “我们也有几次胜利,客户从 Mirantis 转到了 RHEL。”


via: http://www.serverwatch.com/server-news/red-hat-ceo-optimistic-on-openstack-revenue-opportunity.html

作者:Sean Michael Kerner 译者:ictlyh 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出