Feb 23, 2016

How to setup nova-compute for live-migration before Contrail R2.2X

In case of using Openstack included Contrail before Contrail R2.2X, you must configure below.
If you don't do that, you must hit a message below;
ERROR (BadRequest): contrail-07 is not on shared storage: Live migration can not be used without shared storage. (HTTP 400) (Request-ID: req-6e3cf590-13a9-4dd0-8406-af54d1a0f17e)

** Mandatory items
Configure mount point of NFS at /var/lib/nova/instances/global

Configure /etc/nova/nova.conf
state_path=/var/lib/nova
live_migration_flag = VIR_MIGRATE_UNDEFINE_SOURCE, VIR_MIGRATE_PEER2PEER, VIR_MIGRATE_LIVE
storage_scope=global

** Step by Step
  1. Create shared directory of NFS which user/group name are nova. ( Use common uid/gid on NFS server and Compute node)
  2. If different uid/gid is used between NFS server and Compute node, modify them by ''usermod -u XXX nova, groupmod –g XXX nova"
  3. Modify /etc/nova.conf. See a Reference below.
  4. Modify /etc/libvirt/libvirtd.conf.
    • listen_tls = 0
    • listen_tcp = 1
    • auth_tcp = "none" 
  5. Modify  /etc/default/libvirt-bin
    • libvirtd_opts=" -d -l"
  6. Modify either /etc/hosts or DNS server to resolve IP address of compute-node name
  7. Mount shared directory of NFS to /var/lib/nova/instances/global
  8. Restart nova-compute and libvirt

Reference)
root@contrail-08:~# mount | grep nfs
172.27.113.201:/lib/nfs/nova on /var/lib/nova/instances/global type nfs (rw,clientaddr=192.168.22.1,addr=172.27.113.201)

/etc/nova/nova.conf
[DEFAULT]
dhcpbridge_flagfile=/etc/nova/nova.conf
dhcpbridge=/usr/bin/nova-dhcpbridge
logdir=/var/log/nova
state_path=/var/lib/nova
lock_path=/var/lib/nova/tmp
force_dhcp_release=True
libvirt_use_virtio_for_bridges=True
verbose=True
ec2_private_dns_show_ip=False
api_paste_config=/etc/nova/api-paste.ini
enabled_apis=ec2,osapi_compute,metadata
neutron_admin_auth_url = http://10.84.50.8:5000/v2.0/
auth_strategy = keystone
libvirt_nonblocking = True
libvirt_inject_partition = -1
rabbit_host = 10.84.50.100
glance_host = 10.84.50.8
neutron_admin_tenant_name = service
neutron_admin_username = neutron
neutron_admin_password = XXXXXXXX
neutron_url = http://10.84.50.100:9696/
neutron_url_timeout = 300
network_api_class = nova.network.neutronv2.api.API
compute_driver = libvirt.LibvirtDriver
novncproxy_base_url = http://172.27.113.201:6080/vnc_auto.html
vncserver_enabled = true
vncserver_listen = 0.0.0.0
vncserver_proxyclient_address = 192.168.22.1
security_group_api = neutron
heal_instance_info_cache_interval = 0
image_cache_manager_interval = 0
libvirt_cpu_mode = none
libvirt_vif_driver = nova_contrail_vif.contrailvif.VRouterVIFDriver
firewall_driver = nova.virt.firewall.NoopFirewallDriver
glance_port = 9292
glance_num_retries = 10
rabbit_port = 5673
rabbit_retry_interval = 1
rabbit_retry_backoff = 2
rabbit_max_retries = 0
rabbit_ha_queues = True
rpc_cast_timeout = 30
rpc_conn_pool_size = 40
rpc_response_timeout = 60
rpc_thread_pool_size = 70
report_interval = 15
novncproxy_port = 6080
vnc_port = 5900
vnc_port_total = 100
resume_guests_state_on_host_boot = True
service_down_time = 300
periodic_fuzzy_delay = 30
disable_process_locking = True
live_migration_flag = VIR_MIGRATE_UNDEFINE_SOURCE, VIR_MIGRATE_PEER2PEER, VIR_MIGRATE_LIVE
storage_scope=global

[keystone_authtoken]
admin_tenant_name = service
admin_user = nova
admin_password = XXXXXXXX
auth_host = 10.84.50.8
auth_protocol = http
auth_port = 5000
signing_dir = /tmp/keystone-signing-nova

No comments:

Post a Comment