我正在尝试一些我很快可能会在工作中使用的技术。所以现在,我正在考虑复制我可能必须在家里为办公室创建的环境,以便我可以节省一些时间。
我们正在考虑将我们的网站托管在我们自己的小型数据中心上。虽然这仍在讨论中,但我认为这为我提供了学习一些云/虚拟化技术的绝佳机会。
因此,我有 2 台组装好的 PC(第二代 i5 处理器,每台 4GB RAM,每台 80GB HDD),我打算在上面学习。我想重新创建一个托管环境,在其中我希望能够托管网站、进行备份、合并负载平衡(如果需要)。我在想开放堆栈。我考虑使用的主机操作系统是 CentOS 或 Fedora。
我的问题是:
是在上述操作系统之上安装 Openstack 更好,还是先使用 ESxi/Xen 虚拟化环境,然后安装 Openstack 更好? (我将第一次使用所有这些技术)
假设有一个网站有一个 MySQL 数据库,在虚拟环境中,是否可以将一台虚拟机作为前端,另一台虚拟机作为数据库服务器?这会影响性能吗?
我已经从网站下载了所有必要的文档和一些教程,并且我还准备好了硬件。我正在等待来自这个社区的一些意见,这些意见可能会有所帮助,或者来自以前尝试过此操作的人的一些建议。
我找到了有关构建自己的环境的列表,但到目前为止,我发现这成为最有趣的。
答案1
这是一个很大的话题,但我会尽量简短。
你可以尝试开发栈,这将使您以更少的配置工作启动并运行。如果您想真正了解该平台的内部工作原理,并且由于您拥有硬件,我会继续在您选择的发行版上从头开始安装它(根据文档- 我建议在开始之前通读它们)。
您将安装一个云控制器和至少一个计算节点。计算节点应该是物理机,因为云中的租户将作为虚拟机在计算节点上运行。另一台机器可以是控制器。安装 Linux,然后通过 yum/other package mgr 安装 OpenStack 及其必备组件。您可以下载预配置的 CirrOS 映像以在云上注册并测试云 API。 KVM 是 OpenStack 的默认管理程序,它对我来说效果很好。
将数据库与应用程序前端(无论是虚拟的还是物理的)分离是一种常见的做法。在大多数情况下,由于两台计算机上的活动减少,性能将会提高(假设 LAN 连接 100mb+)。
构建生产云并非易事,您甚至可能需要擦拭实验室机器并多次重新开始,但学习这些技术是令人兴奋的。
答案2
我的两点意见:我会使用 Foreman 来部署它,这样你就可以轻松地烧掉它并在需要时重新开始。从内到外学习 Puppet 无论您使用什么部署工具 - 几乎所有工具都是 Puppet 的包装器(值得注意的例外是使用 Chef 的 Crowbar)。确保主机的 FQDN 包含多个点,并且 Foreman 服务器也是操作系统控制器。为了简单起见,使用 nova-network 而不是 Quantum/Neutron。在两台机器设置中以及当您刚刚学习时,丝毫不用担心性能。哈!
答案3
这很简单,只需在硬件上放置开放堆栈,然后为 Web 服务器和数据库服务器创建实例,就可以开始了,如果需要,您也可以水平扩展。