在这论坛看了很多帖子,收益很多,谢谢各位前辈宝贵经验分享!~
回馈论坛,分享下我接触Openstack这段时间的经验。作为初学者,分享的经验主要是初次使用Openstack到基本把Openstack平台搞稳定的过程。
关于如何搭建Openstack,站内很多相关的帖子,资料很多,这里就不重复。
初学者大部分都用虚拟机上实现,我也不例外。这样的好处是,基本上一个台式机或笔记本(配置稍微好点)就可以搞定,作为起步接触Openstack云平台足够了,而且非常方便,不需要大型服务器等,随时随地都可以实现。
先说说我的平台:
硬件平台:Thinkpad T430S:CPU i5;RAM:8G;SATA:500G
虚拟化平台:vmware workstation pro 11
虚拟出两台物理机:
vm1-controller:RAM:2G,SATA1:20G;SATA2:50G(cinder-volume);双网卡eth0-eth1.VPU:2;OS:ubuntu14.04-server
包含核心组件:keystone、glance、nova、neutron、cinder
vm2-computer:RAM:2G,SATA:50G(nova-compute);双网卡eth0-eth1.VPU:2;OS:ubuntu14.04-server
包含核心组件:nova-compute、neutron-agent
官方文档的参考搭建环境是3个主机:主机1、controller(keystone、glance、nova、和horizon)负责认证,镜像管理和计算管理;主机2:neutron管理网络资源分配(neutron组件);主机3:计算节点(nova-compute,neutron-agent),如果要块存储再加存储节点。但考虑到我笔记本的硬件配置情况,虚拟出3-4个主机有些资源紧缺,压缩到俩个节点。一个负责管理、调度和块存储服务,另一个负责计算,如上所述。
Openstack搭建过程的帖子非常多,按部就班一般都可以成功的。这里主要是把我使用过程中遇到的问题和解决办法这里列举一下。
搭建Openstack环境不难,但要保证使用过程的稳定是要花心思。
1、服务不可达问题。创建各个服务对应的数据库的帐号和密码和各服务的配置文件一定要一致。因Openstack所有状态,资源情况都是通过数据维护的。这点只能靠细心避免错误发生。
2、一定要确保各个主机的时间同步!Openstack各个组件是分布结构,组件间的通讯是靠[size=14.545454025268555px]AMQP通讯协议。要保证通讯的畅通,一个是主机间网络互通,二是发送消息的时间戳在合理范围。保证第二点是靠传递消息间的主机系统时间同步。这点非常重要,我使用平台遇到很多问题都是时间同步问题,出现各种AMQP消息不可达,这个按我的经验基本上是时间同步问题,因为主机间的网络互通好确定。
要保证时间同步办法:1、配置好NTP服务,确保时间同步,这个可以结合crontab定期同步。2、在虚拟化环境上,可以让虚拟机与物理机保持时间同步。在vmware平台可以在各个主机上安装vmware工具来确保虚拟机与物理机时间同步,进而确保虚拟主机间时间同步。
3、出现数据库无法访问。因各种原因造成数据库不可访问(非正常关机等),很多时候是因为数据库没及时刷回造成的。根据哪个服务的数据库无法访问就同步下该服务的数据库,做个db sync操作。
4、要善于观察各个服务的日志信息。Openstack无法正常运行,是某(几)个服务不正常运行造成的,相应的日志会记录异常和trace信息。这些信息对问题的定位是非常有用的。
5、查看关键服务的运行状态如nova-manage service list 和neutron agent-list
root@controller:~# source admin-openrc.sh
root@controller:~# nova-manage service list
Binary Host Zone Status State Updated_At
nova-cert controller internal enabled :-) 2016-02-02 07:34:17
nova-consoleauth controller internal enabled :-) 2016-02-02 07:34:17
nova-scheduler controller internal enabled :-) 2016-02-02 07:34:17
nova-conductor controller internal enabled :-) 2016-02-02 07:34:16
nova-compute computer nova enabled :-) 2016-02-02 07:34:19
root@controller:~# neutron agent-list
+--------------------------------------+--------------------+------------+-------+----------------+---------------------------+
| id | agent_type | host | alive | admin_state_up | binary |
+--------------------------------------+--------------------+------------+-------+----------------+---------------------------+
| 3e356240-95ca-4554-bb39-52421cdd4730 | DHCP agent | controller | :-) | True | neutron-dhcp-agent |
| a35ed13d-2395-44a0-8038-18a3af84573a | Metadata agent | controller | :-) | True | neutron-metadata-agent |
| c071e3fa-6269-4f06-a107-8878bc194924 | Open vSwitch agent | controller | :-) | True | neutron-openvswitch-agent |
| ce62ee1a-ede5-43b0-a4ad-115b3d7a3cfd | Open vSwitch agent | computer | :-) | True | neutron-openvswitch-agent |
| e6a9734c-3990-4c14-b385-611298f6e9b2 | L3 agent | controller | :-) | True | neutron-l3-agent |
+--------------------------------------+--------------------+------------+-------+----------------+---------------------------+
|
|