Difference between revisions of "Ironic/NovaBaremetalIronicMigration"
< Ironic
(→Nova Bare-metal to Ironic migration) |
(→Nova Bare-metal to Ironic migration) |
||
Line 10: | Line 10: | ||
** Populated nova_bm database | ** Populated nova_bm database | ||
** Nova Juno release admin upgrades applied | ** Nova Juno release admin upgrades applied | ||
− | * | + | * A correctly set up [[#https://github.com/openstack/diskimage-builder|Diskimage-builder]] |
− | + | ||
=== High Level Walk Through === | === High Level Walk Through === | ||
+ | * Build deploy-ironic kernel and ram-disk ([[#Build_kernel_and_ram-disk|Example]]) | ||
+ | * Create empty Ironic database ([[#Create_empty_database|Example]]) | ||
* Start maintenance period (to prevent API service access for upgrade) | * Start maintenance period (to prevent API service access for upgrade) | ||
* Stop Nova services ([[#Stop_services|Example]]) | * Stop Nova services ([[#Stop_services|Example]]) | ||
Line 28: | Line 30: | ||
==== Detailed examples ==== | ==== Detailed examples ==== | ||
+ | ===== Build kernel and ram-disk ===== | ||
+ | diskimage-builder/bin/ramdisk-image-create -a $NODE_ARCH $NODE_DIST deploy-ironic -o deploy-ironic $DIB_ELEMENTS | ||
+ | ===== Create_empty_database ===== | ||
+ | TBA | ||
===== Stop services ===== | ===== Stop services ===== | ||
sudo service nova-compute stop | sudo service nova-compute stop |
Revision as of 16:39, 11 September 2014
Contents
Nova Bare-metal to Ironic migration
Assumptions / Requirements
- Migration is only supported *within* Juno release
- Migrating live instances between virt drivers in Nova is not tested! It is NOT recommended.
- Migrating from Icehouse-baremetal -> Juno-ironic is not supported
- The nova-compute and nova-scheduler will need to be restarted
- Icehouse Nova deployed with:
- Nova "bare-metal" driver
- Populated nova_bm database
- Nova Juno release admin upgrades applied
- A correctly set up Diskimage-builder
High Level Walk Through
- Build deploy-ironic kernel and ram-disk (Example)
- Create empty Ironic database (Example)
- Start maintenance period (to prevent API service access for upgrade)
- Stop Nova services (Example)
- Update nova-compute configuration (nova.conf)
- Update flavor metadata to reference Ironic's deploy kernel & ramdisk (Example)
- Run migrate_db script (Example)
- Start Ironic services (Example)
- Ensure proper service start-up (Example)
- (Re)start Nova services (Example)
- End maintenance period
Detailed examples
Build kernel and ram-disk
diskimage-builder/bin/ramdisk-image-create -a $NODE_ARCH $NODE_DIST deploy-ironic -o deploy-ironic $DIB_ELEMENTS
Create_empty_database
TBA
Stop services
sudo service nova-compute stop sudo service nova-scheduler stop
Changes
compute_driver = nova.virt.ironic.IronicDriver scheduler_host_manager = nova.scheduler.ironic_host_manager.IronicHostManager
Ironic section
[ironic] admin_username = ironic admin_password = password admin_url = http://keystone.host:35357/v2.0 admin_tenant_name = service
Baremetal section
[Baremetal] sql_connection = db tftp_root = /tftpboot flavor_extra_specs = cpu_arch / arch driver = nova.virt.baremetal.pxe.PXE pxe_network_config=True pxe_deploy_timeout= pxe_deploy_timeout power_manager = power_manager virtual_power_host_user=user virtual_power_host_key=/mnt/state/var/lib/nova/virtual-power-key virtual_power_ssh_host=ssh_host virtual_power_type=type
Update flavor
dkid=$(glance image-create --name "deploy-ironic-kernel" --public --disk-format aki --file deploy-ironic.kernel | awk ' / id / {print $4}') drid=$(glance image-create --name "deploy-ironic-ramdisk" --public --disk-format ari --file deploy-ironic.initramfs | awk ' / id / {print $4}') nova flavor-key baremetal set "baremetal:deploy_kernel_id"="$dkid" nova flavor-key baremetal set "baremetal:deploy_ramdisk_id"="$drid"
Run migrate script
TBA
Start Ironic services
sudo service ironic-api start sudo service ironic-conductor start
Ensure service start-up
TBA
Start Nova services
sudo service nova-compute start sudo service nova-scheduler start