{"id":537,"date":"2011-02-15T10:24:00","date_gmt":"2011-02-15T16:24:00","guid":{"rendered":"http:\/\/press.mcs.anl.gov\/virtualization\/?p=537"},"modified":"2011-02-15T10:24:00","modified_gmt":"2011-02-15T16:24:00","slug":"catch-22-for-infrastructure-clouds","status":"publish","type":"post","link":"https:\/\/wordpress.cels.anl.gov\/scienceclouds\/2011\/02\/15\/catch-22-for-infrastructure-clouds\/","title":{"rendered":"Catch-22 for Infrastructure Clouds"},"content":{"rendered":"<p>Cloud computing users think on-demand availability is the best thing since sliced bread: it enables elastic computing, outsourcing for applications requiring urgent or interactive response, and reduces wait times in batch queues. But if you are a cloud provider you might not think so\u2026 In order to ensure on-demand availability you\u00a0 need to overprovision: keep a lot of nodes idle so that they can be used to service an on-demand request, which could come at any time. This means low utilization. The only way to improve it is to keep fewer nodes idle. But this means rejecting more requests \u2013 at which point you\u2019re not really on-demand&#8230; a veritable <a href=\"http:\/\/en.wiktionary.org\/wiki\/Catch-22\">catch-22<\/a>.<\/p>\n<p>Low utilization is particularly hard to swallow in the scientific community where utilization rates are high \u2013 why configure a cloud if the good old batch scheduler will amortize your resource so much better?<\/p>\n<p>This gave us an idea. What if we deployed a VM on every idle cloud node and joined it to something that is used to operating in an environment where resources are coming and going, something that makes use of screensaver time on people\u2019s desktops, something like <a href=\"http:\/\/setiathome.ssl.berkeley.edu\/\">SETI@home<\/a> or a <a href=\"http:\/\/www.cs.wisc.edu\/condor\/\">Condor<\/a> pool? We went to work and extended <a href=\"www.nimbusproject.org\">Nimbus<\/a> so that an administrator can configure a \u201cbackfill VM\u201d that gets deployed on cloud nodes by default. When an on-demand request comes in, enough backfill VMs get terminated to service the request; when the on-demand request finishes, the backfill VMs get deployed again.<\/p>\n<div id=\"attachment_559\" style=\"width: 286px\" class=\"wp-caption alignright\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-559\" class=\"size-medium wp-image-559\" title=\"util2\" src=\"http:\/\/scienceclouds.org\/wp-content\/uploads\/2011\/02\/util2-276x300.png\" alt=\"Cloud utilization: without backfill (top) and with backfill (bottom)\" width=\"276\" height=\"300\" \/><p id=\"caption-attachment-559\" class=\"wp-caption-text\">  Cloud utilization: without backfill (top) and with backfill (bottom)<\/p><\/div>\n<p>For the user, this solution means that they can now choose from two types of instances: on-demand instances &#8212; what you get from a typical <a href=\"http:\/\/aws.amazon.com\/ec2\/\">EC2-style cloud<\/a> &#8212; and opportunistic instances \u2013 a pre-configured VM joining a <a href=\"http:\/\/boinc.berkeley.edu\/trac\/wiki\/VolunteerComputing\">volunteer computing<\/a> pool. To find out what this means for the provider, <a href=\"http:\/\/www.csc.cs.colorado.edu\/~marshalp\/\">Paul Marshall<\/a> ran some experiments with backfill VMs configured to join a Condor pool and came up with the graphs on the right: a purely on-demand cloud is cold \u2013 add backfill VMs and the system heats up\u2026 you can get 100% utilization! More details in Paul\u2019s <a href=\"http:\/\/www.nimbusproject.org\/files\/backfill_ccgrid_2011.pdf\">CCGrid paper<\/a>.<\/p>\n<p>But now we had more questions: who can configure the backfill VM: does it have to be the administrator or could it be the user? And: can we have more than one type of backfill VM? One simple refinement would be for the admin to use multiple VMs and have policies on what percentage of available cycles should be devoted to each. But if we are going to allow the user to submit such VMs, how is this percentage set? <a href=\"http:\/\/aws.amazon.com\/\">Somebody<\/a> has already figured this out before: why not auction it off \u2013 and provide <a href=\"http:\/\/aws.amazon.com\/ec2\/spot-instances\/\">spot instances<\/a>. Both the backfill VMs and spot pricing are special cases of a more general mechanism\u2026 that we released today in Nimbus 2.7.<\/p>\n<p><a href=\"http:\/\/www.nimbusproject.org\/downloads\/\">Nimbus 2.7<\/a> contains both the backfill and spot pricing implementation &#8212; different configurations of roughly the same thing. This makes Nimbus the only EC2-compatible open source IaaS implementation with support for spot pricing. Backfill instances may be more relevant to scientific settings where the concept of payment is not explicit, and simulating it with auctions has been known to cause &#8220;inflation&#8221;. We hope it will allow providers to leverage their cloud cycles better. And we also hope that it will provide a flexible tool for all of you investigating and fine-tuning the relationships between various aspects of resource utilization, energy savings, cost, and pricing.<\/p>\n<p>Best for last &#8212; this is probably the first time that content is not the most important feature of a Nimbus release. You\u2019ve seen us mention the <a href=\"https:\/\/github.com\/nimbusproject\/nimbus\/graphs\/impact\">hard work<\/a> of <a href=\"http:\/\/www.nimbusproject.org\/about\/people\/\">our open source community contributors<\/a> before \u2013 but this is the first time that open source contributions are primarily responsible for a Nimbus release. The spot pricing implementation is the work of our brilliant Brazilian contributor <a href=\"http:\/\/pauloricardomg.wikidot.com\/\">Paulo Ricardo Motta Gomes<\/a> (just one person despite appearances to the contrary&#8230; \ud83d\ude09 sponsored by the <a href=\"http:\/\/code.google.com\/soc\/\">Google Summer of Code (GSoC)<\/a> last summer. And incidentally, there may be new opportunities this year &#8212; watch the <a href=\"http:\/\/www.nimbusproject.org\/news\/\">Nimbus news feed <\/a>for details.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Cloud computing users think on-demand availability is the best thing since sliced bread: it enables elastic computing, outsourcing for applications requiring urgent or interactive response, and reduces wait times in batch queues. But if you are a cloud provider you might not think so\u2026 In order to ensure on-demand availability you\u00a0 need to overprovision: keep&#8230;  <a href=\"https:\/\/wordpress.cels.anl.gov\/scienceclouds\/2011\/02\/15\/catch-22-for-infrastructure-clouds\/\" class=\"more-link\" title=\"Read Catch-22 for Infrastructure Clouds\">Read more &raquo;<\/a><\/p>\n","protected":false},"author":90,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[5,1],"tags":[6],"class_list":["post-537","post","type-post","status-publish","format-standard","hentry","category-solutions","category-uncategorized","tag-featured"],"acf":[],"_links":{"self":[{"href":"https:\/\/wordpress.cels.anl.gov\/scienceclouds\/wp-json\/wp\/v2\/posts\/537","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.cels.anl.gov\/scienceclouds\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.cels.anl.gov\/scienceclouds\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.cels.anl.gov\/scienceclouds\/wp-json\/wp\/v2\/users\/90"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.cels.anl.gov\/scienceclouds\/wp-json\/wp\/v2\/comments?post=537"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.cels.anl.gov\/scienceclouds\/wp-json\/wp\/v2\/posts\/537\/revisions"}],"wp:attachment":[{"href":"https:\/\/wordpress.cels.anl.gov\/scienceclouds\/wp-json\/wp\/v2\/media?parent=537"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.cels.anl.gov\/scienceclouds\/wp-json\/wp\/v2\/categories?post=537"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.cels.anl.gov\/scienceclouds\/wp-json\/wp\/v2\/tags?post=537"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}