[[s-neutron-server]] ==== Highly available OpenStack Networking Server OpenStack Networking is the network connectivity service in OpenStack. Making the OpenStack Networking Server service highly available in active / passive mode involves * configuring OpenStack Networking to listen on the VIP address, * managing OpenStack Networking API Server daemon with the Pacemaker cluster manager, * configuring OpenStack services to use this IP address. NOTE: Here is the http://docs.openstack.org/trunk/openstack-network/admin/content/index.html[documentation] for installing OpenStack Networking service. ===== Adding OpenStack Networking Server resource to Pacemaker First of all, you need to download the resource agent to your system : ---- cd /usr/lib/ocf/resource.d/openstack wget https://raw.github.com/madkiss/openstack-resource-agents/master/ocf/neutron-server chmod a+rx * ---- You may now proceed with adding the Pacemaker configuration for OpenStack Networking Server resource. Connect to the Pacemaker cluster with +crm configure+, and add the following cluster resources: ---- include::includes/pacemaker-neutron_server.crm[] ---- This configuration creates +p_neutron-server+, a resource for manage OpenStack Networking Server service +crm configure+ supports batch input, so you may copy and paste the above into your live pacemaker configuration, and then make changes as required. For example, you may enter +edit p_neutron-server+ from the +crm configure+ menu and edit the resource to match your preferred virtual IP address. Once completed, commit your configuration changes by entering +commit+ from the +crm configure+ menu. Pacemaker will then start the OpenStack Networking API service, and its dependent resources, on one of your nodes. ===== Configuring OpenStack Networking Server Edit +/etc/neutron/neutron.conf+ : ---- # We bind the service to the VIP : bind_host = 192.168.42.103 # We have to use MySQL connection to store datas : sql_connection = mysql://neutron:password@192.168.42.101/neutron # We bind OpenStack Networking Server to the VIP : bind_host = 192.168.42.103 # We send notifications to Highly available RabbitMQ : notifier_strategy = rabbit rabbit_host = 192.168.42.102 ---- ===== Configuring OpenStack Services to use Highly available OpenStack Networking Server Your OpenStack services must now point their OpenStack Networking Server configuration to the highly available, virtual cluster IP address -- rather than a OpenStack Networking server's physical IP address as you normally would. For example, you should configure OpenStack Compute for using Highly Available OpenStack Networking Server in editing +nova.conf+ file : ---- neutron_url = http://192.168.42.103:9696 ---- You need to create the OpenStack Networking Server Endpoint with this IP. NOTE : If you are using both private and public IP, you should create two Virtual IP and define your endpoint like this : ---- keystone endpoint-create --region $KEYSTONE_REGION --service-id $service-id --publicurl 'http://PUBLIC_VIP:9696/' --adminurl 'http://192.168.42.103:9696/' --internalurl 'http://192.168.42.103:9696/' ----