Nova: add live_migration_interface option

This option is useful in environments where the live-migration traffic
can impact the network plane significantly.
A separate network for live-migration traffic can then use this config
option and avoids the impact on the management network.

Change-Id: Id16c95e77730e5b244cf5bc69beb0e549c979701
This commit is contained in:
Jawon Choo 2018-06-22 14:16:25 +09:00 committed by Jawon Choo
parent e68ec9814c
commit 31be86079d
4 changed files with 22 additions and 1 deletions

View File

@ -23,3 +23,17 @@ mkdir -p /var/lib/nova/instances
# Set Ownership of nova dirs to the nova user # Set Ownership of nova dirs to the nova user
chown ${NOVA_USER_UID} /var/lib/nova /var/lib/nova/instances chown ${NOVA_USER_UID} /var/lib/nova /var/lib/nova/instances
migration_interface="{{- .Values.conf.libvirt.live_migration_interface -}}"
if [[ -n $migration_interface ]]; then
# determine ip dynamically based on interface provided
migration_address=$(ip r | grep $migration_interface | grep -v default | awk '{print $9}')
fi
touch /tmp/pod-shared/nova-libvirt.conf
if [[ -n $migration_address ]]; then
cat <<EOF>/tmp/pod-shared/nova-libvirt.conf
[libvirt]
live_migration_inbound_addr = $migration_address
EOF
fi

View File

@ -20,4 +20,5 @@ set -ex
exec nova-compute \ exec nova-compute \
--config-file /etc/nova/nova.conf \ --config-file /etc/nova/nova.conf \
--config-file /tmp/pod-shared/nova-console.conf --config-file /tmp/pod-shared/nova-console.conf \
--config-file /tmp/pod-shared/nova-libvirt.conf

View File

@ -67,6 +67,8 @@ spec:
readOnly: true readOnly: true
- name: varlibnova - name: varlibnova
mountPath: /var/lib/nova mountPath: /var/lib/nova
- name: pod-shared
mountPath: /tmp/pod-shared
{{- if .Values.conf.ceph.enabled }} {{- if .Values.conf.ceph.enabled }}
{{- if empty .Values.conf.ceph.cinder.keyring }} {{- if empty .Values.conf.ceph.cinder.keyring }}
- name: ceph-admin-keyring-placement - name: ceph-admin-keyring-placement

View File

@ -1019,6 +1019,10 @@ conf:
DEFAULT: DEFAULT:
scheduler_host_manager: ironic_host_manager scheduler_host_manager: ironic_host_manager
compute_driver: ironic.IronicDriver compute_driver: ironic.IronicDriver
libvirt:
# Get the IP address to be used as the target for live migration traffic using interface name.
# If this option is set to None, the hostname of the migration target compute node will be used.
live_migration_interface:
nova: nova:
DEFAULT: DEFAULT:
default_ephemeral_format: ext4 default_ephemeral_format: ext4