Atom feed of this document
  

 ZooKeeper 服务组驱动

ZooKeeper服务组驱动通过使用ZooKeeper临时节点来工作。ZooKeeper不像数据库,它是一分布式系统,可将负载分发到不同的服务器。在计算线程节点中,驱动可以建立ZooKeeper会话,然后在组目录创建临时的znode。临时的znode和会话有着同样的生命周期。如果一个计算节点或nova-compute守护进程崩溃了,又或者是节点之间的网络出现了问题,ZooKeeper服务重新选举了,那么临时节点都会自动的移除。驱动可以在组目录中运行ls命令来给到组的成员。

ZooKeeper的驱动需要ZooKeeper服务和客户端的库。设置ZooKeeper服务不在本书的范围之内(更多信息,请参阅 Apache Zookeeper)。这些客户单的Python库必须安装在每台计算节点中:

python-zookeeper

Zookeeper官方的Python绑定

evzookeeper

此库让绑定工作在基于eventlet线程模式下。

此例设定ZooKeeper服务器的地址和端口是192.168.2.1:2181, 192.168.2.2:2181, 以及 192.168.2.3:2181.

每台运行ZooKeeper驱动的节点都需要在文件/etc/nova/nova.conf中配置这些值:

# Driver for the ServiceGroup service
servicegroup_driver="zk"

[zookeeper]
address="192.168.2.1:2181,192.168.2.2:2181,192.168.2.3:2181"

要定制计算服务组,使用这些配置项来设置:

表 4.9. Description of Zookeeper configuration options
配置属性=默认值 描述
[zookeeper]
address = (StrOpt) Zookeeper 服务组服务的地址格式为 host1:port,host2:port,host3:port
recv_timeout = 4000 (IntOpt) zk 会话的 recv_timeout 参数
sg_prefix = /servicegroups (StrOpt) Zookeeper 用于保存临时节点的前缀
sg_retry_interval = 5 (IntOpt) 等待重新尝试加入会话的时间秒数

Questions? Discuss on ask.openstack.org
Found an error? Report a bug against this page


loading table of contents...