在学习 OpenStack 各服务之前,让我们先搭建起一个实验环境。
毋庸置疑,一个看得到摸得着而且允许我们随便折腾的 OpenStack 能够提高我们的学习效率。
因为是我们自己学习用的实验环境,CloudMan 推荐使用 DevStack
http://docs.openstack.org/developer/devstack/
DevStack 丰富的选项让我们能够灵活地选取和部署想要的 OpenStack 服务,非常适合学习和研究。
部署拓扑
首先我们来设计 OpenStack 的部署拓扑。
OpenStack 是一个分布式系统,由若干不同功能的节点(Node)组成:
控制节点(Controller Node)
管理 OpenStack,其上运行的服务有 Keystone、Glance、Horizon 以及 Nova 和 Neutron 中管理相关的组件。
控制节点也运行支持 OpenStack 的服务,例如 SQL 数据库(通常是 MySQL)、消息队列(通常是 RabbitMQ)和网络时间服务 NTP。网络节点(Network Node)
其上运行的服务为 Neutron。
为 OpenStack 提供 L2 和 L3 网络。
包括虚拟机网络、DHCP、路由、NAT 等。存储节点(Storage Node)
提供块存储(Cinder)或对象存储(Swift)服务。计算节点(Compute Node)
其上运行 Hypervisor(默认使用 KVM)。
同时运行 Neutron 服务的 agent,为虚拟机提