{"id":5844,"date":"2014-09-03T10:00:05","date_gmt":"2014-09-03T08:00:05","guid":{"rendered":"http:\/\/blog.zhaw.ch\/icclab\/?p=5844"},"modified":"2014-12-08T17:58:40","modified_gmt":"2014-12-08T15:58:40","slug":"setting-up-live-migration-in-openstack-icehouse","status":"publish","type":"post","link":"https:\/\/blog.zhaw.ch\/icclab\/setting-up-live-migration-in-openstack-icehouse\/","title":{"rendered":"Setting up Live Migration in Openstack Icehouse [Juno]"},"content":{"rendered":"<p><em>[Update 8.12.2014] Since OpenStack&#8217;s Juno release hasn&#8217;t introduced any changes regarding live migration, Juno users should be able to\u00a0follow this tutorial as well as the Icehouse users. If you experience any issues let us know.<\/em>\u00a0<em>The same setup can be used for newer versions of QEMU and Libvirt as well. Currently we are using QEMU 2.1.5 with Libvirt 1.2.11.<\/em><\/p>\n<p>The Green IT theme here in ICCLab is working on monitoring and reducing datacenter energy consumption by leveraging Openstack&#8217;s live migration feature. We\u2019ve already experimented a little with live migration in the <a href=\"http:\/\/www.openstack.org\/software\/havana\/\">Havana<\/a> release (mostly with no luck), but since live migration is touted as one of the new stable features in the Icehouse release, we decided to investigate how it has evolved. This blogpost, largely based on official Openstack documentation, provides step-by-step walkthrough of how to setup and perform virtual machine live migration with servers running the Openstack Icehouse release and KVM\/QEMU hypervisor with libvirt.<\/p>\n<p>Virtual machine (VM) live migration is a process, where a VM instance, comprising of its states, memory and emulated devices, is moved from one hypervisor to another with ideally no downtime. It can come handy in many situations such as basic system maintenance, VM consolidation and more complex load management systems designed to reduce data center energy consumption. <!--more-->Following system configuration was used for our testing:<\/p>\n<ul>\n<li>3 nodes: 1 control node (node-1), 2 compute nodes (node-2, node-3)<\/li>\n<li>Mirantis Openstack 5.0 (which contains a set of sensible deployment options and the <a href=\"https:\/\/wiki.openstack.org\/wiki\/Fuel\">Fuel<\/a> deployment tool)<\/li>\n<li>Openstack <a href=\"http:\/\/www.openstack.org\/software\/icehouse\/\">Icehouse<\/a> release<\/li>\n<li>Nova 2.18.1<\/li>\n<li><a href=\"http:\/\/wiki.qemu.org\/Main_Page\">QEMU<\/a> 1.2.1<\/li>\n<li><a href=\"http:\/\/libvirt.org\/\">Libvirt<\/a> 0.10.2<\/li>\n<\/ul>\n<p>The default Openstack live migration process requires a shared file system (e.g. <a href=\"http:\/\/en.wikipedia.org\/wiki\/Network_File_System\">NFS<\/a>, <a href=\"http:\/\/www.gluster.org\/\">GlusterFS<\/a>) across both source and destination computing hosts to copy the VM via disk. Openstack also supports \u201c<a href=\"http:\/\/docs.openstack.org\/trunk\/config-reference\/content\/section_configuring-compute-migrations.html\">Block live migration<\/a>\u201d where a VM disk is copied via TCP and hence no shared file system is needed. Shared files system usually ensure better migration performance while the block migration approach provides better security due to file system separation.<\/p>\n<p><a href=\"http:\/\/blog.zhaw.ch\/icclab\/files\/2014\/09\/migration.jpg\"><img decoding=\"async\" class=\"size-medium wp-image-5852 aligncenter\" src=\"http:\/\/blog.zhaw.ch\/icclab\/files\/2014\/09\/migration-300x108.jpg\" alt=\"migration\" width=\"400\" srcset=\"https:\/\/blog.zhaw.ch\/icclab\/files\/2014\/09\/migration-300x108.jpg 300w, https:\/\/blog.zhaw.ch\/icclab\/files\/2014\/09\/migration-500x181.jpg 500w, https:\/\/blog.zhaw.ch\/icclab\/files\/2014\/09\/migration.jpg 567w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p><strong>System setup<\/strong><\/p>\n<p><strong>1. Network configuration<\/strong><\/p>\n<p>Make sure all hosts (hypervisors) run in the same network\/subnet.<\/p>\n<p><strong>1.1. DNS configuration<\/strong><\/p>\n<p>Check configuration and consistency of <em>\/etc\/hosts<\/em> file across all hosts.<\/p>\n<p><code>192.168.0.2\u00a0\u00a0\u00a0\u00a0 node-1\u00a0 node-1.domain.tld<br \/>\n192.168.0.3\u00a0\u00a0\u00a0\u00a0 node-2\u00a0 node-2.domain.tld<br \/>\n192.168.0.4\u00a0\u00a0\u00a0\u00a0 node-3\u00a0 node-3.domain.tld<\/code><\/p>\n<p><strong>1.2. Firewall configuration<\/strong><\/p>\n<p>Configure <em>\/etc\/sysconfig\/iptables<\/em> file to allow libvirt listen on TCP port 16509 and don\u2019t forget to add a record accepting KVM communication on TCP port within the range from 49152 to 49261.<\/p>\n<p><code>-A INPUT -p tcp -m multiport --ports 16509 -m comment --comment \"libvirt\" -j ACCEPT<br \/>\n-A INPUT -p tcp -m multiport --ports 49152:49216 -m comment --comment \"migration\" -j ACCEPT<\/code><\/p>\n<p><strong>2. Libvirt configuration<\/strong><\/p>\n<p>Enable libvirt listen flag at <em>\/etc\/sysconfig\/libvirtd<\/em> file.<\/p>\n<p><code>LIBVIRTD_ARGS=\u201d\u2013listen\u201d<\/code><\/p>\n<p>Configure <em>\/etc\/libvirt\/libvirtd.conf<\/em> file to make the hypervisor listen tcp communication with none athentication. Since authentication is set to NONE it\u2019s strongly recommended to use SSH keys for authentication.<\/p>\n<p><code>listen_tls = 0<br \/>\nlisten_tcp = 1<br \/>\nauth_tcp = \u201cnone\u201d<\/code><\/p>\n<p><strong>3. Nova configuration<\/strong><\/p>\n<p>Openstack doesn\u2019t use real live migration mechanism as a default setting, because there is no guarantee that the migration is successful. An example of situation in which a migration never ends is one in which memory pages are dirtied faster than they are transfered to destination host.<\/p>\n<p>To enable real live migration set up live_migration flag in <em>\/etc\/nova\/nova.conf<\/em> file as follows:<\/p>\n<p><code>live_migration_flag=VIR_MIGRATE_UNDEFINE_SOURCE,VIR_MIGRATE_PEER2PEER,VIR_MIGRATE_LIVE<\/code><\/p>\n<p>Once these settings are configured, it should be possible to perform a live migration.<\/p>\n<p><strong>Live Migration Execution<\/strong><\/p>\n<p>First, list available VMs:<\/p>\n<p><code>$ nova list<br \/>\n+-------------------------+------+--------+-------------+---------------+<br \/>\n| ID\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 | Name | Status | Power State | Networks\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0|<br \/>\n+-------------------------+------+--------+-------------+---------------+<br \/>\n| 4cfe0dfb-f28f-43e9-.... | vm\u00a0\u00a0 | ACTIVE | Running\u00a0\u00a0\u00a0\u00a0 | 10.0.0.2 \u00a0 \u00a0\u00a0 |<br \/>\n+-------------------------+------+--------+-------------+---------------+<br \/>\n<\/code><\/p>\n<p>Next, show VM details and determine which host an instance running on:<\/p>\n<p><code>nova show &lt;VM-ID&gt;<br \/>\n+--------------------------------------+--------------------------------+<br \/>\n| Property\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 | Value\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 |<br \/>\n+--------------------------------------+--------------------------------+<br \/>\n| OS-EXT-SRV-ATTR:host\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 | node-2.domain.tld\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 |<br \/>\n+--------------------------------------+--------------------------------+<br \/>\n<\/code><\/p>\n<p>After that, list the available compute hosts and choose the host you want to migrate the instance to:<\/p>\n<p><code>$ nova host-list<br \/>\n+-------------------+-------------+----------+<br \/>\n| host_name\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 | service\u00a0\u00a0\u00a0\u00a0 | zone\u00a0\u00a0\u00a0\u00a0 |<br \/>\n+-------------------+-------------+----------+<br \/>\n| node-2.domain.tld | compute\u00a0\u00a0\u00a0\u00a0 | nova\u00a0\u00a0\u00a0\u00a0 |<br \/>\n| node-3.domain.tld | compute\u00a0\u00a0\u00a0\u00a0 | nova\u00a0\u00a0\u00a0\u00a0 |<br \/>\n+-------------------+-------------+----------+<br \/>\n<\/code><\/p>\n<p>Then, migrate the instance to new host.<\/p>\n<p>For live migration using shared file system use:<\/p>\n<p><code>$ nova live-migration &lt;VM-ID&gt; &lt;DEST-HOST-NAME&gt;<\/code><\/p>\n<p>For block live migration use the same command with block_migrate flag enabled:<\/p>\n<p><code>$ nova live-migration --block_migrate &lt;VM-ID&gt; &lt;DEST-HOST-NAME&gt;<\/code><\/p>\n<p>Finally, show the VM details and check if it has been migrated successfully:<\/p>\n<p><code>$ nova show &lt;VM-ID&gt;<br \/>\n+--------------------------------------+----------------------------+<br \/>\n| Property\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 | Value\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 |<br \/>\n+--------------------------------------+----------------------------+<br \/>\n| OS-EXT-SRV-ATTR:host\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 | node-3.domain.tld\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 |<br \/>\n+--------------------------------------+----------------------------+<br \/>\n<\/code><\/p>\n<p>Note: If you don&#8217;t specify target compute node explicitly nova-scheduler chooses suitable one from available nodes automatically.<\/p>\n<p>Congratulations, you&#8217;ve just migrated your VM.<\/p>\n<p><strong><em>[UPDATE]<\/em><\/strong><br \/>\n<em>If you are more interested in live migration performance in OpenStack you can check out our newer blog posts: <\/em><\/p>\n<ul>\n<li><em><a title=\"An analysis of the performance of block live migration in Openstack\" href=\"http:\/\/blog.zhaw.ch\/icclab\/an-analysis-of-the-performance-of-block-live-migration-in-openstack\/\">An analysis of the performance of block live migration in Openstack<\/a>,\u00a0<a title=\"An analysis of the performance of live migration in Openstack\" href=\"http:\/\/blog.zhaw.ch\/icclab\/an-analysis-of-the-performance-of-live-migration-in-openstack\/\">An analysis of the performance of live migration in Openstack<\/a>,\u00a0<\/em><\/li>\n<li><em><a title=\"Performance of Live Migration in Openstack under CPU and network load\" href=\"http:\/\/blog.zhaw.ch\/icclab\/performance-of-live-migration-in-openstack-under-cpu-and-network-load\/\">Performance of Live Migration in Openstack under CPU and network load<\/a>\u00a0and\u00a0<\/em><\/li>\n<li><em><a title=\"The impact of ephemeral VM disk usage on the performance of Live Migration in Openstack\" href=\"http:\/\/blog.zhaw.ch\/icclab\/the-impact-of-ephemeral-vm-disk-usage-on-the-performance-of-live-migration-in-openstack\/\">The impact of ephemeral VM disk usage on the performance of Live Migration in Openstack<\/a>.<\/em><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<div class=\"pt-sm\">Schlagw\u00f6rter: <a href=\"https:\/\/blog.zhaw.ch\/icclab\/tag\/block-migration\/\">block migration<\/a>, <a href=\"https:\/\/blog.zhaw.ch\/icclab\/tag\/icehouse\/\">icehouse<\/a>, <a href=\"https:\/\/blog.zhaw.ch\/icclab\/tag\/juno\/\">juno<\/a>, <a href=\"https:\/\/blog.zhaw.ch\/icclab\/tag\/live-migration\/\">live migration<\/a>, <a href=\"https:\/\/blog.zhaw.ch\/icclab\/tag\/mirantis-fuel\/\">Mirantis Fuel<\/a>, <a href=\"https:\/\/blog.zhaw.ch\/icclab\/tag\/openstack\/\">openstack<\/a><br><\/div>","protected":false},"excerpt":{"rendered":"<p>[Update 8.12.2014] Since OpenStack&#8217;s Juno release hasn&#8217;t introduced any changes regarding live migration, Juno users should be able to\u00a0follow this tutorial as well as the Icehouse users. If you experience any issues let us know.\u00a0The same setup can be used for newer versions of QEMU and Libvirt as well. Currently we are using QEMU 2.1.5 [&hellip;]<\/p>\n","protected":false},"author":155,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"footnotes":""},"categories":[1],"tags":[451,421,524,450,220,240],"features":[],"class_list":["post-5844","post","type-post","status-publish","format-standard","hentry","category-allgemein","tag-block-migration","tag-icehouse","tag-juno","tag-live-migration","tag-mirantis-fuel","tag-openstack"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Setting up Live Migration in Openstack Icehouse [Juno] - Service Engineering (ICCLab &amp; SPLab)<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blog.zhaw.ch\/icclab\/setting-up-live-migration-in-openstack-icehouse\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Setting up Live Migration in Openstack Icehouse [Juno]\" \/>\n<meta property=\"og:description\" content=\"[Update 8.12.2014] Since OpenStack&#8217;s Juno release hasn&#8217;t introduced any changes regarding live migration, Juno users should be able to\u00a0follow this tutorial as well as the Icehouse users. If you experience any issues let us know.\u00a0The same setup can be used for newer versions of QEMU and Libvirt as well. Currently we are using QEMU 2.1.5 [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.zhaw.ch\/icclab\/setting-up-live-migration-in-openstack-icehouse\/\" \/>\n<meta property=\"og:site_name\" content=\"Service Engineering (ICCLab &amp; SPLab)\" \/>\n<meta property=\"article:published_time\" content=\"2014-09-03T08:00:05+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2014-12-08T15:58:40+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/blog.zhaw.ch\/icclab\/files\/2014\/09\/migration-300x108.jpg\" \/>\n<meta name=\"author\" content=\"cima\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"cima\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/setting-up-live-migration-in-openstack-icehouse\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/setting-up-live-migration-in-openstack-icehouse\/\"},\"author\":{\"name\":\"cima\",\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/#\/schema\/person\/bfb29453d69d6e8260cbfc3ff86df20b\"},\"headline\":\"Setting up Live Migration in Openstack Icehouse [Juno]\",\"datePublished\":\"2014-09-03T08:00:05+00:00\",\"dateModified\":\"2014-12-08T15:58:40+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/setting-up-live-migration-in-openstack-icehouse\/\"},\"wordCount\":690,\"commentCount\":29,\"image\":{\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/setting-up-live-migration-in-openstack-icehouse\/#primaryimage\"},\"thumbnailUrl\":\"http:\/\/blog.zhaw.ch\/icclab\/files\/2014\/09\/migration-300x108.jpg\",\"keywords\":[\"block migration\",\"icehouse\",\"juno\",\"live migration\",\"Mirantis Fuel\",\"openstack\"],\"articleSection\":[\"*.*\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/blog.zhaw.ch\/icclab\/setting-up-live-migration-in-openstack-icehouse\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/setting-up-live-migration-in-openstack-icehouse\/\",\"url\":\"https:\/\/blog.zhaw.ch\/icclab\/setting-up-live-migration-in-openstack-icehouse\/\",\"name\":\"Setting up Live Migration in Openstack Icehouse [Juno] - Service Engineering (ICCLab &amp; SPLab)\",\"isPartOf\":{\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/setting-up-live-migration-in-openstack-icehouse\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/setting-up-live-migration-in-openstack-icehouse\/#primaryimage\"},\"thumbnailUrl\":\"http:\/\/blog.zhaw.ch\/icclab\/files\/2014\/09\/migration-300x108.jpg\",\"datePublished\":\"2014-09-03T08:00:05+00:00\",\"dateModified\":\"2014-12-08T15:58:40+00:00\",\"author\":{\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/#\/schema\/person\/bfb29453d69d6e8260cbfc3ff86df20b\"},\"breadcrumb\":{\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/setting-up-live-migration-in-openstack-icehouse\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blog.zhaw.ch\/icclab\/setting-up-live-migration-in-openstack-icehouse\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/setting-up-live-migration-in-openstack-icehouse\/#primaryimage\",\"url\":\"https:\/\/blog.zhaw.ch\/icclab\/files\/2014\/09\/migration.jpg\",\"contentUrl\":\"https:\/\/blog.zhaw.ch\/icclab\/files\/2014\/09\/migration.jpg\",\"width\":567,\"height\":206},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/setting-up-live-migration-in-openstack-icehouse\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Startseite\",\"item\":\"https:\/\/blog.zhaw.ch\/icclab\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Setting up Live Migration in Openstack Icehouse [Juno]\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/#website\",\"url\":\"https:\/\/blog.zhaw.ch\/icclab\/\",\"name\":\"Service Engineering (ICCLab &amp; SPLab)\",\"description\":\"A Blog of the ZHAW Zurich University of Applied Sciences\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blog.zhaw.ch\/icclab\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/#\/schema\/person\/bfb29453d69d6e8260cbfc3ff86df20b\",\"name\":\"cima\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/8d7cb1dd9511a1465510abf53f139c259c510dbce26f647ee43e3771f65a7143?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/8d7cb1dd9511a1465510abf53f139c259c510dbce26f647ee43e3771f65a7143?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/8d7cb1dd9511a1465510abf53f139c259c510dbce26f647ee43e3771f65a7143?s=96&d=mm&r=g\",\"caption\":\"cima\"},\"url\":\"https:\/\/blog.zhaw.ch\/icclab\/author\/cima\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Setting up Live Migration in Openstack Icehouse [Juno] - Service Engineering (ICCLab &amp; SPLab)","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blog.zhaw.ch\/icclab\/setting-up-live-migration-in-openstack-icehouse\/","og_locale":"en_US","og_type":"article","og_title":"Setting up Live Migration in Openstack Icehouse [Juno]","og_description":"[Update 8.12.2014] Since OpenStack&#8217;s Juno release hasn&#8217;t introduced any changes regarding live migration, Juno users should be able to\u00a0follow this tutorial as well as the Icehouse users. If you experience any issues let us know.\u00a0The same setup can be used for newer versions of QEMU and Libvirt as well. Currently we are using QEMU 2.1.5 [&hellip;]","og_url":"https:\/\/blog.zhaw.ch\/icclab\/setting-up-live-migration-in-openstack-icehouse\/","og_site_name":"Service Engineering (ICCLab &amp; SPLab)","article_published_time":"2014-09-03T08:00:05+00:00","article_modified_time":"2014-12-08T15:58:40+00:00","og_image":[{"url":"http:\/\/blog.zhaw.ch\/icclab\/files\/2014\/09\/migration-300x108.jpg","type":"","width":"","height":""}],"author":"cima","twitter_card":"summary_large_image","twitter_misc":{"Written by":"cima","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blog.zhaw.ch\/icclab\/setting-up-live-migration-in-openstack-icehouse\/#article","isPartOf":{"@id":"https:\/\/blog.zhaw.ch\/icclab\/setting-up-live-migration-in-openstack-icehouse\/"},"author":{"name":"cima","@id":"https:\/\/blog.zhaw.ch\/icclab\/#\/schema\/person\/bfb29453d69d6e8260cbfc3ff86df20b"},"headline":"Setting up Live Migration in Openstack Icehouse [Juno]","datePublished":"2014-09-03T08:00:05+00:00","dateModified":"2014-12-08T15:58:40+00:00","mainEntityOfPage":{"@id":"https:\/\/blog.zhaw.ch\/icclab\/setting-up-live-migration-in-openstack-icehouse\/"},"wordCount":690,"commentCount":29,"image":{"@id":"https:\/\/blog.zhaw.ch\/icclab\/setting-up-live-migration-in-openstack-icehouse\/#primaryimage"},"thumbnailUrl":"http:\/\/blog.zhaw.ch\/icclab\/files\/2014\/09\/migration-300x108.jpg","keywords":["block migration","icehouse","juno","live migration","Mirantis Fuel","openstack"],"articleSection":["*.*"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blog.zhaw.ch\/icclab\/setting-up-live-migration-in-openstack-icehouse\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blog.zhaw.ch\/icclab\/setting-up-live-migration-in-openstack-icehouse\/","url":"https:\/\/blog.zhaw.ch\/icclab\/setting-up-live-migration-in-openstack-icehouse\/","name":"Setting up Live Migration in Openstack Icehouse [Juno] - Service Engineering (ICCLab &amp; SPLab)","isPartOf":{"@id":"https:\/\/blog.zhaw.ch\/icclab\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blog.zhaw.ch\/icclab\/setting-up-live-migration-in-openstack-icehouse\/#primaryimage"},"image":{"@id":"https:\/\/blog.zhaw.ch\/icclab\/setting-up-live-migration-in-openstack-icehouse\/#primaryimage"},"thumbnailUrl":"http:\/\/blog.zhaw.ch\/icclab\/files\/2014\/09\/migration-300x108.jpg","datePublished":"2014-09-03T08:00:05+00:00","dateModified":"2014-12-08T15:58:40+00:00","author":{"@id":"https:\/\/blog.zhaw.ch\/icclab\/#\/schema\/person\/bfb29453d69d6e8260cbfc3ff86df20b"},"breadcrumb":{"@id":"https:\/\/blog.zhaw.ch\/icclab\/setting-up-live-migration-in-openstack-icehouse\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.zhaw.ch\/icclab\/setting-up-live-migration-in-openstack-icehouse\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blog.zhaw.ch\/icclab\/setting-up-live-migration-in-openstack-icehouse\/#primaryimage","url":"https:\/\/blog.zhaw.ch\/icclab\/files\/2014\/09\/migration.jpg","contentUrl":"https:\/\/blog.zhaw.ch\/icclab\/files\/2014\/09\/migration.jpg","width":567,"height":206},{"@type":"BreadcrumbList","@id":"https:\/\/blog.zhaw.ch\/icclab\/setting-up-live-migration-in-openstack-icehouse\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Startseite","item":"https:\/\/blog.zhaw.ch\/icclab\/"},{"@type":"ListItem","position":2,"name":"Setting up Live Migration in Openstack Icehouse [Juno]"}]},{"@type":"WebSite","@id":"https:\/\/blog.zhaw.ch\/icclab\/#website","url":"https:\/\/blog.zhaw.ch\/icclab\/","name":"Service Engineering (ICCLab &amp; SPLab)","description":"A Blog of the ZHAW Zurich University of Applied Sciences","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.zhaw.ch\/icclab\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/blog.zhaw.ch\/icclab\/#\/schema\/person\/bfb29453d69d6e8260cbfc3ff86df20b","name":"cima","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/8d7cb1dd9511a1465510abf53f139c259c510dbce26f647ee43e3771f65a7143?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/8d7cb1dd9511a1465510abf53f139c259c510dbce26f647ee43e3771f65a7143?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/8d7cb1dd9511a1465510abf53f139c259c510dbce26f647ee43e3771f65a7143?s=96&d=mm&r=g","caption":"cima"},"url":"https:\/\/blog.zhaw.ch\/icclab\/author\/cima\/"}]}},"_links":{"self":[{"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/posts\/5844","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/users\/155"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/comments?post=5844"}],"version-history":[{"count":26,"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/posts\/5844\/revisions"}],"predecessor-version":[{"id":6978,"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/posts\/5844\/revisions\/6978"}],"wp:attachment":[{"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/media?parent=5844"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/categories?post=5844"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/tags?post=5844"},{"taxonomy":"features","embeddable":true,"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/features?post=5844"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}