<div dir="ltr">I also believe (2) is the most workable option.<div><br></div><div>Full disclosure ... my current job is at EMC, and we just shipped a backup product for the VMware vCloud (the one used for VMware vCloud Air - <a href="http://vcloud.vmware.com/http://vcloud.vmware.com/">http://vcloud.vmware.com/http://vcloud.vmware.com/</a>). <br>
<br>First release of that project was wrapping up, and I was asked to look at backup for OpenStack. As I am familiar with both open source community, and with how to do backup at cloud scale ... the problem is an easy fit.<br>
<br>Different backup vendors might approach the problem in differing ways, which calls for a pluggable backend.</div><div><br>What I find is that OpenStack is missing the hooks we need to do backup efficiently. There are promising proposed bits, but ... we are not there yet.</div>
<div><br></div><div>Storage for backups is of a different character than existing services in OpenStack. Backup vendors need a place to plug in, and need some relevant primitive operations. </div><div><br></div><div>Turns out the AWS folk already have rather nice support for backup from a cloud developer's perspective. At present, there is nothing equivalent in OpenStack. From a cloud developer's perspective, that is a huge lack.</div>
<div><br></div><div>While AWS is an API wrapped around a single service, OpenStack is an API wrapped around differing services. This is both harder (in terms of defining the API), and an advantage to customers with differing requirements.</div>
<div><br></div><div>What lacks and is needed by backup vendors is the right set of primitives.</div><div><br></div><div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Sun, Aug 31, 2014 at 8:19 AM, laserjetyang <span dir="ltr"><<a href="mailto:laserjetyang@gmail.com" target="_blank">laserjetyang@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>I tend to say 2) is the best option. There are many open source or commercial backup software, and both for VMs and volume.<br>
</div>If we do option 1), it reminds me to implement something similar to VMware method, and it will cause nova really heavy.<br>
</div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><br><div class="gmail_quote">On Sun, Aug 31, 2014 at 4:04 AM, Preston L. Bannister <span dir="ltr"><<a href="mailto:preston@bannister.us" target="_blank">preston@bannister.us</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">You are thinking of written-for-cloud applications. For those the state should not persist with the instance.<div>
<br></div><div>There are a very large number of existing applications, not written to the cloud model, but which could be deployed in a cloud. Those applications are not all going to get re-written (as the cost is often greater than the benefit). Those applications need some ready and efficient means of backup. </div>
<div><br></div><div>The benefits of the cloud-application model and the cloud-deployment model are distinct.</div><div><br></div><div>The existing nova backup (if it worked) is an inefficient snapshot. Not really useful at scale.</div>
<div><br></div><div>There are two basic paths forward, here. 1) Build a complete common backup implementation that everyone can use. Or 2) define a common API for invoking backup, allow vendors to supply differing implementations, and add to OpenStack the APIs needed by backup implementations.</div>
<div><br></div><div>Given past history, there does not seem to be enough focus or resources to get (1) done. </div><div><br></div><div>That makes (2) much more likely. Reasonably sure we can find the interest and resources for this path. :)</div>
<div><br></div><div><br></div><div><br></div><div><br></div></div><div><div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Aug 29, 2014 at 10:55 PM, laserjetyang <span dir="ltr"><<a href="mailto:laserjetyang@gmail.com" target="_blank">laserjetyang@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>I think the purpose of nova VM is not for persistent usage, and it should be used for stateless. However, there are use cases to use VM to replace bare metal applications, and it requires the same coverage, which I think VMware did pretty well. <br>
</div>The nova backup is snapshot indeed, so it should be re-implemented to be fitting into the real backup solution.<br></div><div><div><div class="gmail_extra"><br><br><div class="gmail_quote">
On Sat, Aug 30, 2014 at 1:14 PM, Preston L. Bannister <span dir="ltr"><<a href="mailto:preston@bannister.us" target="_blank">preston@bannister.us</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">The current "backup" APIs in OpenStack do not really make sense (and apparently do not work ... which perhaps says something about usage and usability). So in that sense, they could be removed.<div>
<br></div><div>Wrote out a bit as to what is needed:</div><div><a href="http://bannister.us/weblog/2014/08/21/cloud-application-backup-and-openstack/" target="_blank">http://bannister.us/weblog/2014/08/21/cloud-application-backup-and-openstack/</a></div>
<div><div><br></div><div>At the same time, to do efficient backup at cloud scale, OpenStack is missing a few primitives needed for backup. We need to be able to quiesce instances, and collect changed-block lists, across hypervisors and filesystems. There is some relevant work in this area - for example:</div>
<div><br></div><div><a href="https://wiki.openstack.org/wiki/Nova/InstanceLevelSnapshots" target="_blank">https://wiki.openstack.org/wiki/Nova/InstanceLevelSnapshots</a><br></div><div><div><br></div><div>Switching hats - as a cloud developer, on AWS there is excellent current means of backup-through-snapshots, which is very quick and is charged based on changed-blocks. (The performance and cost both reflect use of changed-block tracking underneath.)</div>
</div><div><br></div><div>If OpenStack completely lacks any equivalent API, then the platform is less competitive.</div><div><br></div><div>Are you thinking about backup as performed by the cloud infrastructure folk, or as a service used by cloud developers in deployed applications? The first might do behind-the-scenes backups. The second needs an API.</div>
<div><br></div><div><br></div></div></div><div><div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Aug 29, 2014 at 11:16 AM, Jay Pipes <span dir="ltr"><<a href="mailto:jaypipes@gmail.com" target="_blank">jaypipes@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div>On 08/29/2014 02:48 AM, Preston L. Bannister wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Looking to put a proper implementation of instance backup into<br>
OpenStack. Started by writing a simple set of baseline tests and running<br>
against the stable/icehouse branch. They failed!<br>
<br>
<a href="https://github.com/dreadedhill-work/openstack-backup-scripts" target="_blank">https://github.com/<u></u>dreadedhill-work/openstack-<u></u>backup-scripts</a><br>
<br>
Scripts and configuration are in the above. Simple tests.<br>
<br>
At first I assumed there was a configuration error in my Devstack ...<br>
but at this point I believe the errors are in fact in OpenStack. (Also I<br>
have rather more colorful things to say about what is and is not logged.)<br>
<br>
Try to backup bootable Cinder volumes attached to instances ... and all<br>
fail. Try to backup instances booted from images, and all-but-one fail<br>
(without logged errors, so far as I see).<br>
<br>
Was concerned about preserving existing behaviour (as I am currently<br>
hacking the Nova backup API), but ... if the existing is badly broken,<br>
this may not be a concern. (Makes my job a bit simpler.)<br>
<br>
If someone is using "nova backup" successfully (more than one backup at<br>
a time), I *would* rather like to know!<br>
<br>
Anyone with different experience?<br>
</blockquote>
<br></div></div>
IMO, the create_backup API extension should be removed from the Compute API. It's completely unnecessary and backups should be the purview of external (to Nova) scripts or configuration management modules. This API extension is essentially trying to be a Cloud Cron, which is inappropriate for the Compute API, IMO.<br>
<br>
-jay<br>
<br>
<br>
______________________________<u></u>_________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org" target="_blank">OpenStack-dev@lists.openstack.<u></u>org</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/<u></u>cgi-bin/mailman/listinfo/<u></u>openstack-dev</a><br>
</blockquote></div><br></div>
</div></div><br>_______________________________________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org" target="_blank">OpenStack-dev@lists.openstack.org</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
<br></blockquote></div><br></div>
</div></div><br>_______________________________________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org" target="_blank">OpenStack-dev@lists.openstack.org</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
<br></blockquote></div><br></div>
</div></div><br>_______________________________________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org" target="_blank">OpenStack-dev@lists.openstack.org</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
<br></blockquote></div><br></div>
</div></div><br>_______________________________________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org">OpenStack-dev@lists.openstack.org</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
<br></blockquote></div><br></div>