{"id":6063,"date":"2014-09-18T18:17:57","date_gmt":"2014-09-18T16:17:57","guid":{"rendered":"http:\/\/blog.zhaw.ch\/icclab\/?p=6063"},"modified":"2014-09-29T11:07:50","modified_gmt":"2014-09-29T09:07:50","slug":"an-analysis-of-the-performance-of-live-migration-in-openstack","status":"publish","type":"post","link":"https:\/\/blog.zhaw.ch\/icclab\/an-analysis-of-the-performance-of-live-migration-in-openstack\/","title":{"rendered":"An analysis of the performance of live migration in Openstack"},"content":{"rendered":"<p>We continue our recent work regarding an analysis of the performance of live migration in <a href=\"http:\/\/www.openstack.org\">Openstack<\/a> Icehouse. <a href=\"http:\/\/blog.zhaw.ch\/icclab\/an-analysis-of-the-performance-of-block-live-migration-in-openstack\/\">Our previous results<\/a> focused on block live migration in Openstack, without shared storage configured between computing nodes. In this post we focus on the performance of live migration in the system with a shared file system configured, compare it with block live migration and try to determine scenarios more suitable for each approach. <!--more--><i>[Note that in the above, when live migration implies shared storage based live migration; block live migration is explicit as in the Openstack literature on this topic].<\/i><\/p>\n<p><em>[Also note that all VMs in following experiments use 5GB of disk space]<\/em><\/p>\n<p>All system configuration and testing aspects (except amended flavors) remain the same as in previous block live migration tests (see <a href=\"http:\/\/blog.zhaw.ch\/icclab\/an-analysis-of-the-performance-of-block-live-migration-in-openstack\/\">here<\/a> for more details). The only infrastructure change in our small 3 node configuration is the shared file system setup. We used an <a href=\"http:\/\/en.wikipedia.org\/wiki\/Network_File_System\">NFS<\/a> server running on the controller node to provide its ..\/nova\/instances folder as a mount point for the compute nodes.<\/p>\n<p><strong>Unloaded case<\/strong><\/p>\n<p>Let\u2019s start with the time taken by live migrations of unloaded VMs. In chart 1 we see a small increase of migration time with larger VM flavors, which is not so surprising. More interestingly the down time stays almost constant (&lt; 1 s) and doesn\u2019t grow with the migration time unlike the case of block live migration.<\/p>\n<table>\n<tbody>\n<tr>\n<td><\/td>\n<td style=\"text-align: center\"><strong>t<\/strong><\/td>\n<td style=\"text-align: center\"><strong>s<\/strong><\/td>\n<td style=\"text-align: center\"><strong>m<\/strong><\/td>\n<td style=\"text-align: center\"><strong>l<\/strong><\/td>\n<td style=\"text-align: center\"><strong>xl<\/strong><\/td>\n<\/tr>\n<tr>\n<td><strong>Migration time (unloaded)<\/strong><\/td>\n<td style=\"text-align: center\">4.9<\/td>\n<td style=\"text-align: center\">5.6<\/td>\n<td style=\"text-align: center\">7.0<\/td>\n<td style=\"text-align: center\">9.6<\/td>\n<td style=\"text-align: center\">15.3<\/td>\n<\/tr>\n<tr>\n<td><strong>Down time (unloaded)<\/strong><\/td>\n<td style=\"text-align: center\">0.7<\/td>\n<td style=\"text-align: center\">0.7<\/td>\n<td style=\"text-align: center\">0.8<\/td>\n<td style=\"text-align: center\">0.8<\/td>\n<td style=\"text-align: center\">0.9<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p style=\"text-align: center\">Table 1 &#8211; Live migration duration &amp; down time<\/p>\n<figure id=\"attachment_6066\" aria-describedby=\"caption-attachment-6066\" style=\"width: 605px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/blog.zhaw.ch\/icclab\/files\/2014\/09\/data_transfered_increasing_stress.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-6066 size-full\" src=\"http:\/\/blog.zhaw.ch\/icclab\/files\/2014\/09\/mig_down_time_block.jpg\" alt=\"mig_down_time_block\" width=\"605\" height=\"340\" srcset=\"https:\/\/blog.zhaw.ch\/icclab\/files\/2014\/09\/mig_down_time_block.jpg 605w, https:\/\/blog.zhaw.ch\/icclab\/files\/2014\/09\/mig_down_time_block-300x168.jpg 300w, https:\/\/blog.zhaw.ch\/icclab\/files\/2014\/09\/mig_down_time_block-500x280.jpg 500w\" sizes=\"auto, (max-width: 605px) 100vw, 605px\" \/><\/a><figcaption id=\"caption-attachment-6066\" class=\"wp-caption-text\">Chart 1 &#8211; Live migration duration &amp; down time<\/figcaption><\/figure>\n<p>&nbsp;<\/p>\n<p>In all cases with shared storage, live migration of unloaded VMs exhibits significantly lower migration time and downtime than block live migration. More precisely, the NFS live migration time is on average only 60% of the block live migration time (see chart 2). VM down time is on average 17% of the down time using block migration (see chart 3) and is less than 1 s in our experiments.<\/p>\n<table>\n<tbody>\n<tr>\n<td><\/td>\n<td style=\"text-align: center\"><strong>t<\/strong><\/td>\n<td style=\"text-align: center\"><strong>s<\/strong><\/td>\n<td style=\"text-align: center\"><strong>m<\/strong><\/td>\n<td style=\"text-align: center\"><strong>l<\/strong><\/td>\n<td style=\"text-align: center\"><strong>xl<\/strong><\/td>\n<\/tr>\n<tr>\n<td><strong>Live migration (unloaded)<\/strong><\/td>\n<td style=\"text-align: center\">4.9<\/td>\n<td style=\"text-align: center\">5.6<\/td>\n<td style=\"text-align: center\">7.0<\/td>\n<td style=\"text-align: center\">9.6<\/td>\n<td style=\"text-align: center\">15.3<\/td>\n<\/tr>\n<tr>\n<td><strong>Block live migration (unloaded)<\/strong><\/td>\n<td style=\"text-align: center\">9.3<\/td>\n<td style=\"text-align: center\">10.5<\/td>\n<td style=\"text-align: center\">11.7<\/td>\n<td style=\"text-align: center\">14.6<\/td>\n<td style=\"text-align: center\">21.8<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p style=\"text-align: center\">Table 2 &#8211; Migration time (unloaded) &#8211; live migration vs. block live migration<\/p>\n<figure id=\"attachment_6093\" aria-describedby=\"caption-attachment-6093\" style=\"width: 604px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/blog.zhaw.ch\/icclab\/files\/2014\/09\/blv_vs_lv_duration.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-6093 size-full\" src=\"http:\/\/blog.zhaw.ch\/icclab\/files\/2014\/09\/blv_vs_lv_duration.jpg\" alt=\"\" width=\"604\" height=\"340\" srcset=\"https:\/\/blog.zhaw.ch\/icclab\/files\/2014\/09\/blv_vs_lv_duration.jpg 604w, https:\/\/blog.zhaw.ch\/icclab\/files\/2014\/09\/blv_vs_lv_duration-300x168.jpg 300w, https:\/\/blog.zhaw.ch\/icclab\/files\/2014\/09\/blv_vs_lv_duration-500x281.jpg 500w\" sizes=\"auto, (max-width: 604px) 100vw, 604px\" \/><\/a><figcaption id=\"caption-attachment-6093\" class=\"wp-caption-text\">Chart 2 &#8211; Migration time (unloaded) &#8211; live migration vs. block live migration<\/figcaption><\/figure>\n<p>&nbsp;<\/p>\n<table>\n<tbody>\n<tr>\n<td><\/td>\n<td style=\"text-align: center\"><strong>t<\/strong><\/td>\n<td style=\"text-align: center\"><strong>s<\/strong><\/td>\n<td style=\"text-align: center\"><strong>m<\/strong><\/td>\n<td style=\"text-align: center\"><strong>l<\/strong><\/td>\n<td style=\"text-align: center\"><strong>xl<\/strong><\/td>\n<\/tr>\n<tr>\n<td><strong>Live migration (unloaded)<\/strong><\/td>\n<td style=\"text-align: center\">0.7<\/td>\n<td style=\"text-align: center\">0.7<\/td>\n<td style=\"text-align: center\">0.8<\/td>\n<td style=\"text-align: center\">0.8<\/td>\n<td style=\"text-align: center\">0.9<\/td>\n<\/tr>\n<tr>\n<td><strong>Block live migration (unloaded)<\/strong><\/td>\n<td style=\"text-align: center\">2.4<\/td>\n<td style=\"text-align: center\">3.2<\/td>\n<td style=\"text-align: center\">4.4<\/td>\n<td style=\"text-align: center\">7.0<\/td>\n<td style=\"text-align: center\">21.5<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p style=\"text-align: center\">Table 3 &#8211; Down time (unloaded) &#8211; live migration vs. block live migration<\/p>\n<figure id=\"attachment_6092\" aria-describedby=\"caption-attachment-6092\" style=\"width: 604px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/blog.zhaw.ch\/icclab\/files\/2014\/09\/blv_vs_lv_downtime.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-6092 size-full\" src=\"http:\/\/blog.zhaw.ch\/icclab\/files\/2014\/09\/blv_vs_lv_downtime.jpg\" alt=\"\" width=\"604\" height=\"340\" srcset=\"https:\/\/blog.zhaw.ch\/icclab\/files\/2014\/09\/blv_vs_lv_downtime.jpg 604w, https:\/\/blog.zhaw.ch\/icclab\/files\/2014\/09\/blv_vs_lv_downtime-300x168.jpg 300w, https:\/\/blog.zhaw.ch\/icclab\/files\/2014\/09\/blv_vs_lv_downtime-500x281.jpg 500w\" sizes=\"auto, (max-width: 604px) 100vw, 604px\" \/><\/a><figcaption id=\"caption-attachment-6092\" class=\"wp-caption-text\">Chart 3 &#8211; Down time &#8211; live migration vs. block live migration (unloaded)<\/figcaption><\/figure>\n<p>&nbsp;<\/p>\n<p>In the unloaded VM scenario, the amount of data transferred over the network increases with the VM size, however even these values are significantly smaller than in the block live migration case: Network traffic is 11 &#8211; 30% lower in the storage based migration case, than the block migration case.<\/p>\n<table>\n<tbody>\n<tr>\n<td><\/td>\n<td style=\"text-align: center\"><strong>t<\/strong><\/td>\n<td style=\"text-align: center\"><strong>s<\/strong><\/td>\n<td style=\"text-align: center\"><strong>m<\/strong><\/td>\n<td style=\"text-align: center\"><strong>l<\/strong><\/td>\n<td style=\"text-align: center\"><strong>xl<\/strong><\/td>\n<\/tr>\n<tr>\n<td><strong>Live migration (unloaded)<\/strong><\/td>\n<td style=\"text-align: center\">175<\/td>\n<td style=\"text-align: center\">190<\/td>\n<td style=\"text-align: center\">288<\/td>\n<td style=\"text-align: center\">315<\/td>\n<td style=\"text-align: center\">480<\/td>\n<\/tr>\n<tr>\n<td><strong>Block live migration (unloaded)<\/strong><\/td>\n<td style=\"text-align: center\">239<\/td>\n<td style=\"text-align: center\">271<\/td>\n<td style=\"text-align: center\">324<\/td>\n<td style=\"text-align: center\">404<\/td>\n<td style=\"text-align: center\">669<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<figure id=\"attachment_6095\" aria-describedby=\"caption-attachment-6095\" style=\"width: 604px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/blog.zhaw.ch\/icclab\/files\/2014\/09\/blv_vs_lv_net1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-6095 size-full\" src=\"http:\/\/blog.zhaw.ch\/icclab\/files\/2014\/09\/blv_vs_lv_net1.jpg\" alt=\"\" width=\"604\" height=\"340\" srcset=\"https:\/\/blog.zhaw.ch\/icclab\/files\/2014\/09\/blv_vs_lv_net1.jpg 604w, https:\/\/blog.zhaw.ch\/icclab\/files\/2014\/09\/blv_vs_lv_net1-300x168.jpg 300w, https:\/\/blog.zhaw.ch\/icclab\/files\/2014\/09\/blv_vs_lv_net1-500x281.jpg 500w\" sizes=\"auto, (max-width: 604px) 100vw, 604px\" \/><\/a><figcaption id=\"caption-attachment-6095\" class=\"wp-caption-text\">Chart 4 &#8211; Network data transfer (unloaded) &#8211; live migration vs. block live migration<\/figcaption><\/figure>\n<p>&nbsp;<\/p>\n<p><b>Loaded case<\/b><\/p>\n<p>Behaviour of live migration for loaded machines was a little more complex.<\/p>\n<p>Using the block live migration we successfully migrated VMs across all flavors even when they were quite heavily loaded &#8211; in our tests, we focused on memory load (as described <a href=\"http:\/\/blog.zhaw.ch\/icclab\/an-analysis-of-the-performance-of-block-live-migration-in-openstack\/\">here<\/a>) and we achieved successful migration even when they were approximately 75% loaded. However, shared storage based live migration was more sensitive to memory load. \u00a0In fact, we couldn\u2019t migrate even a tiny flavor VM with a relatively small memory load &#8211; 100 MB of stressed memory (out of total 512 MB). Migration was initiated but didn\u2019t end until the load was terminated. Consequently, we can\u2019t present results which are directly comparable to the block live migration for this loaded case.<\/p>\n<p>To have a better understanding why we face this problem of non deterministic migration time we need to dive a bit deeper into the migration mechanism. In our configuration of Openstack with QEMU\/KVM and libvirt, the live migration uses <a href=\"http:\/\/en.wikipedia.org\/wiki\/Live_migration#Pre-copy_memory_migration\">pre-copy memory<\/a> approach. This consists of following steps:<\/p>\n<ol>\n<li>Copy source VM memory to destination. This operation takes some time while VM is still running (and some memory pages are changing) at the source.<\/li>\n<li>Repeat step 1 (copy changed memory pages) until amount of dirty memory is small enough and can be transferred in very short VM downtime<\/li>\n<li>Stop VM at source and copy the rest of dirty memory<\/li>\n<li>Start VM at destination<\/li>\n<\/ol>\n<p>The problem arises at the point 2: if the VM memory is dirtied faster than it can be transferred to destination then this step will never terminate.. Therefore, whether a migration is a success or failure depends on the available network capacity \u00a0and the current VM memory load.<\/p>\n<p>To explore this further, we considered VMs with different memory load and examined how it affects migration time and the amount of transferred data. Up to a stress level of 96 MB all migrations were \u00a0successful with relatively small constant downtime (&lt;1 s) and short migration duration (mostly &lt; 20 s). However, beyond this point the VM got stuck in a migration state and doesn\u2019t stop migrating (until it is either killed or the memory load reduced). The real measured throughput in our network was approximately 110 MB\/s, that\u2019s why we could migrate VM with lower memory load than this value and we failed with VMs, where the stress rate of memory exceeded this threshold.<strong>\u00a0<\/strong><\/p>\n<table>\n<tbody>\n<tr>\n<td><strong>Stressed memory [MB]<\/strong><\/td>\n<td style=\"text-align: center\"><strong>0<\/strong><\/td>\n<td style=\"text-align: center\"><strong>16<\/strong><\/td>\n<td style=\"text-align: center\"><strong>32<\/strong><\/td>\n<td style=\"text-align: center\"><strong>48<\/strong><\/td>\n<td style=\"text-align: center\"><strong>64<\/strong><\/td>\n<td style=\"text-align: center\"><strong>80<\/strong><\/td>\n<td style=\"text-align: center\"><strong>96<\/strong><\/td>\n<\/tr>\n<tr>\n<td><strong>Migration time [s]<\/strong><\/td>\n<td style=\"text-align: center\">15.0<\/td>\n<td style=\"text-align: center\">15.3<\/td>\n<td style=\"text-align: center\">16.3<\/td>\n<td style=\"text-align: center\">17.3<\/td>\n<td style=\"text-align: center\">18.5<\/td>\n<td style=\"text-align: center\">20.8<\/td>\n<td style=\"text-align: center\">20.8<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p style=\"text-align: center\">Table 5 &#8211; Migration time with different levels of stress<\/p>\n<figure id=\"attachment_6068\" aria-describedby=\"caption-attachment-6068\" style=\"width: 605px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-6068 size-full\" src=\"http:\/\/blog.zhaw.ch\/icclab\/files\/2014\/09\/mig_time_increasing-stress.jpg\" alt=\"mig_time_increasing stress\" width=\"605\" height=\"340\" srcset=\"https:\/\/blog.zhaw.ch\/icclab\/files\/2014\/09\/mig_time_increasing-stress.jpg 605w, https:\/\/blog.zhaw.ch\/icclab\/files\/2014\/09\/mig_time_increasing-stress-300x168.jpg 300w, https:\/\/blog.zhaw.ch\/icclab\/files\/2014\/09\/mig_time_increasing-stress-500x280.jpg 500w\" sizes=\"auto, (max-width: 605px) 100vw, 605px\" \/><figcaption id=\"caption-attachment-6068\" class=\"wp-caption-text\">Chart 5 &#8211; Migration time with different levels of stress<\/figcaption><\/figure>\n<p>&nbsp;<\/p>\n<table>\n<tbody>\n<tr>\n<td><strong>Stressed memory [MB]<\/strong><\/td>\n<td style=\"text-align: center\"><strong>0<\/strong><\/td>\n<td style=\"text-align: center\"><strong>16<\/strong><\/td>\n<td style=\"text-align: center\"><strong>32<\/strong><\/td>\n<td style=\"text-align: center\"><strong>48<\/strong><\/td>\n<td style=\"text-align: center\"><strong>64<\/strong><\/td>\n<td style=\"text-align: center\"><strong>80<\/strong><\/td>\n<td style=\"text-align: center\"><strong>96<\/strong><\/td>\n<\/tr>\n<tr>\n<td><strong>Data transferred [MB]<\/strong><\/td>\n<td style=\"text-align: center\">472<\/td>\n<td style=\"text-align: center\">510<\/td>\n<td style=\"text-align: center\">541<\/td>\n<td style=\"text-align: center\">573<\/td>\n<td style=\"text-align: center\">635<\/td>\n<td style=\"text-align: center\">770<\/td>\n<td style=\"text-align: center\">943<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p style=\"text-align: center\">Table 6 &#8211; Data transfer with different levels of stress<\/p>\n<figure id=\"attachment_6064\" aria-describedby=\"caption-attachment-6064\" style=\"width: 605px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-6064 size-full\" src=\"http:\/\/blog.zhaw.ch\/icclab\/files\/2014\/09\/data_transfered_increasing_stress.jpg\" alt=\"data_transfered_increasing_stress\" width=\"605\" height=\"340\" srcset=\"https:\/\/blog.zhaw.ch\/icclab\/files\/2014\/09\/data_transfered_increasing_stress.jpg 605w, https:\/\/blog.zhaw.ch\/icclab\/files\/2014\/09\/data_transfered_increasing_stress-300x168.jpg 300w, https:\/\/blog.zhaw.ch\/icclab\/files\/2014\/09\/data_transfered_increasing_stress-500x280.jpg 500w\" sizes=\"auto, (max-width: 605px) 100vw, 605px\" \/><figcaption id=\"caption-attachment-6064\" class=\"wp-caption-text\">Chart 6 &#8211; Data transfer with different levels of stress<\/figcaption><\/figure>\n<p>&nbsp;<\/p>\n<p><b>Take aways<\/b><\/p>\n<p>Openstack live migration is fast technique how to transfer running VM from one host to another with a small downtime. But since its duration is non deterministic and there is no guarantee that migration process finishes successfully, care must be taken when employing this approach and your particular network configuration and load as well as the VM activity must be considered.<\/p>\n<p>Key take aways from our experiments are:<\/p>\n<ul>\n<li>Live migration can be faster and the downtime lower than in case of block live migration but it can be unreliable in the case that the VM has memory intense activity. In our experiments, downtime was low (&lt;1s) and migration time took seconds to some few 10\u2019s of seconds.<\/li>\n<li>Block live migration exhibited better reliability but longer migration times and VM downtimes (up to some 100\u2019s of seconds in both cases);<\/li>\n<li>In both cases, a significant network load can be imposed on the system &#8211; this needs to be borne in mind and indeed the results presented above do not take into account typical network activity within a cluster: when this is taken into account live migration is likely to be even less reliable.<\/li>\n<\/ul>\n<p>Live migration is a useful tool in operating and optimizing your cloud infrastructure; however, it is inherently complex and must be used with care.<\/p>\n<p>In <a href=\"http:\/\/blog.zhaw.ch\/icclab\/performance-of-live-migration-in-openstack-under-cpu-and-network-load\/\">future work<\/a>, we will consider further scenarios where we test live migration, which are closer to real world conditions. We are also investigating the use of post-copy migration and how it may perform.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<div class=\"pt-sm\">Schlagw\u00f6rter: <a href=\"https:\/\/blog.zhaw.ch\/icclab\/tag\/cloud\/\">cloud<\/a>, <a href=\"https:\/\/blog.zhaw.ch\/icclab\/tag\/icehouse\/\">icehouse<\/a>, <a href=\"https:\/\/blog.zhaw.ch\/icclab\/tag\/live-migration\/\">live migration<\/a>, <a href=\"https:\/\/blog.zhaw.ch\/icclab\/tag\/openstack\/\">openstack<\/a>, <a href=\"https:\/\/blog.zhaw.ch\/icclab\/tag\/performance\/\">performance<\/a><br><\/div>","protected":false},"excerpt":{"rendered":"<p>We continue our recent work regarding an analysis of the performance of live migration in Openstack Icehouse. Our previous results focused on block live migration in Openstack, without shared storage configured between computing nodes. In this post we focus on the performance of live migration in the system with a shared file system configured, compare [&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":[5],"tags":[79,421,450,240,416],"features":[],"class_list":["post-6063","post","type-post","status-publish","format-standard","hentry","category-articles","tag-cloud","tag-icehouse","tag-live-migration","tag-openstack","tag-performance"],"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>An analysis of the performance of live migration in Openstack - 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\/an-analysis-of-the-performance-of-live-migration-in-openstack\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"An analysis of the performance of live migration in Openstack\" \/>\n<meta property=\"og:description\" content=\"We continue our recent work regarding an analysis of the performance of live migration in Openstack Icehouse. Our previous results focused on block live migration in Openstack, without shared storage configured between computing nodes. In this post we focus on the performance of live migration in the system with a shared file system configured, compare [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.zhaw.ch\/icclab\/an-analysis-of-the-performance-of-live-migration-in-openstack\/\" \/>\n<meta property=\"og:site_name\" content=\"Service Engineering (ICCLab &amp; SPLab)\" \/>\n<meta property=\"article:published_time\" content=\"2014-09-18T16:17:57+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2014-09-29T09:07:50+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/blog.zhaw.ch\/icclab\/files\/2014\/09\/mig_down_time_block.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=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/an-analysis-of-the-performance-of-live-migration-in-openstack\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/an-analysis-of-the-performance-of-live-migration-in-openstack\/\"},\"author\":{\"name\":\"cima\",\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/#\/schema\/person\/bfb29453d69d6e8260cbfc3ff86df20b\"},\"headline\":\"An analysis of the performance of live migration in Openstack\",\"datePublished\":\"2014-09-18T16:17:57+00:00\",\"dateModified\":\"2014-09-29T09:07:50+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/an-analysis-of-the-performance-of-live-migration-in-openstack\/\"},\"wordCount\":1227,\"commentCount\":14,\"image\":{\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/an-analysis-of-the-performance-of-live-migration-in-openstack\/#primaryimage\"},\"thumbnailUrl\":\"http:\/\/blog.zhaw.ch\/icclab\/files\/2014\/09\/mig_down_time_block.jpg\",\"keywords\":[\"cloud\",\"icehouse\",\"live migration\",\"openstack\",\"performance\"],\"articleSection\":[\"Articles\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/blog.zhaw.ch\/icclab\/an-analysis-of-the-performance-of-live-migration-in-openstack\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/an-analysis-of-the-performance-of-live-migration-in-openstack\/\",\"url\":\"https:\/\/blog.zhaw.ch\/icclab\/an-analysis-of-the-performance-of-live-migration-in-openstack\/\",\"name\":\"An analysis of the performance of live migration in Openstack - Service Engineering (ICCLab &amp; SPLab)\",\"isPartOf\":{\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/an-analysis-of-the-performance-of-live-migration-in-openstack\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/an-analysis-of-the-performance-of-live-migration-in-openstack\/#primaryimage\"},\"thumbnailUrl\":\"http:\/\/blog.zhaw.ch\/icclab\/files\/2014\/09\/mig_down_time_block.jpg\",\"datePublished\":\"2014-09-18T16:17:57+00:00\",\"dateModified\":\"2014-09-29T09:07:50+00:00\",\"author\":{\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/#\/schema\/person\/bfb29453d69d6e8260cbfc3ff86df20b\"},\"breadcrumb\":{\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/an-analysis-of-the-performance-of-live-migration-in-openstack\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blog.zhaw.ch\/icclab\/an-analysis-of-the-performance-of-live-migration-in-openstack\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/an-analysis-of-the-performance-of-live-migration-in-openstack\/#primaryimage\",\"url\":\"https:\/\/blog.zhaw.ch\/icclab\/files\/2014\/09\/mig_down_time_block.jpg\",\"contentUrl\":\"https:\/\/blog.zhaw.ch\/icclab\/files\/2014\/09\/mig_down_time_block.jpg\",\"width\":605,\"height\":340},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/an-analysis-of-the-performance-of-live-migration-in-openstack\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Startseite\",\"item\":\"https:\/\/blog.zhaw.ch\/icclab\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"An analysis of the performance of live migration in Openstack\"}]},{\"@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":"An analysis of the performance of live migration in Openstack - 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\/an-analysis-of-the-performance-of-live-migration-in-openstack\/","og_locale":"en_US","og_type":"article","og_title":"An analysis of the performance of live migration in Openstack","og_description":"We continue our recent work regarding an analysis of the performance of live migration in Openstack Icehouse. Our previous results focused on block live migration in Openstack, without shared storage configured between computing nodes. In this post we focus on the performance of live migration in the system with a shared file system configured, compare [&hellip;]","og_url":"https:\/\/blog.zhaw.ch\/icclab\/an-analysis-of-the-performance-of-live-migration-in-openstack\/","og_site_name":"Service Engineering (ICCLab &amp; SPLab)","article_published_time":"2014-09-18T16:17:57+00:00","article_modified_time":"2014-09-29T09:07:50+00:00","og_image":[{"url":"http:\/\/blog.zhaw.ch\/icclab\/files\/2014\/09\/mig_down_time_block.jpg","type":"","width":"","height":""}],"author":"cima","twitter_card":"summary_large_image","twitter_misc":{"Written by":"cima","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blog.zhaw.ch\/icclab\/an-analysis-of-the-performance-of-live-migration-in-openstack\/#article","isPartOf":{"@id":"https:\/\/blog.zhaw.ch\/icclab\/an-analysis-of-the-performance-of-live-migration-in-openstack\/"},"author":{"name":"cima","@id":"https:\/\/blog.zhaw.ch\/icclab\/#\/schema\/person\/bfb29453d69d6e8260cbfc3ff86df20b"},"headline":"An analysis of the performance of live migration in Openstack","datePublished":"2014-09-18T16:17:57+00:00","dateModified":"2014-09-29T09:07:50+00:00","mainEntityOfPage":{"@id":"https:\/\/blog.zhaw.ch\/icclab\/an-analysis-of-the-performance-of-live-migration-in-openstack\/"},"wordCount":1227,"commentCount":14,"image":{"@id":"https:\/\/blog.zhaw.ch\/icclab\/an-analysis-of-the-performance-of-live-migration-in-openstack\/#primaryimage"},"thumbnailUrl":"http:\/\/blog.zhaw.ch\/icclab\/files\/2014\/09\/mig_down_time_block.jpg","keywords":["cloud","icehouse","live migration","openstack","performance"],"articleSection":["Articles"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blog.zhaw.ch\/icclab\/an-analysis-of-the-performance-of-live-migration-in-openstack\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blog.zhaw.ch\/icclab\/an-analysis-of-the-performance-of-live-migration-in-openstack\/","url":"https:\/\/blog.zhaw.ch\/icclab\/an-analysis-of-the-performance-of-live-migration-in-openstack\/","name":"An analysis of the performance of live migration in Openstack - Service Engineering (ICCLab &amp; SPLab)","isPartOf":{"@id":"https:\/\/blog.zhaw.ch\/icclab\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blog.zhaw.ch\/icclab\/an-analysis-of-the-performance-of-live-migration-in-openstack\/#primaryimage"},"image":{"@id":"https:\/\/blog.zhaw.ch\/icclab\/an-analysis-of-the-performance-of-live-migration-in-openstack\/#primaryimage"},"thumbnailUrl":"http:\/\/blog.zhaw.ch\/icclab\/files\/2014\/09\/mig_down_time_block.jpg","datePublished":"2014-09-18T16:17:57+00:00","dateModified":"2014-09-29T09:07:50+00:00","author":{"@id":"https:\/\/blog.zhaw.ch\/icclab\/#\/schema\/person\/bfb29453d69d6e8260cbfc3ff86df20b"},"breadcrumb":{"@id":"https:\/\/blog.zhaw.ch\/icclab\/an-analysis-of-the-performance-of-live-migration-in-openstack\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.zhaw.ch\/icclab\/an-analysis-of-the-performance-of-live-migration-in-openstack\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blog.zhaw.ch\/icclab\/an-analysis-of-the-performance-of-live-migration-in-openstack\/#primaryimage","url":"https:\/\/blog.zhaw.ch\/icclab\/files\/2014\/09\/mig_down_time_block.jpg","contentUrl":"https:\/\/blog.zhaw.ch\/icclab\/files\/2014\/09\/mig_down_time_block.jpg","width":605,"height":340},{"@type":"BreadcrumbList","@id":"https:\/\/blog.zhaw.ch\/icclab\/an-analysis-of-the-performance-of-live-migration-in-openstack\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Startseite","item":"https:\/\/blog.zhaw.ch\/icclab\/"},{"@type":"ListItem","position":2,"name":"An analysis of the performance of live migration in Openstack"}]},{"@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\/6063","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=6063"}],"version-history":[{"count":13,"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/posts\/6063\/revisions"}],"predecessor-version":[{"id":6148,"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/posts\/6063\/revisions\/6148"}],"wp:attachment":[{"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/media?parent=6063"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/categories?post=6063"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/tags?post=6063"},{"taxonomy":"features","embeddable":true,"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/features?post=6063"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}