{"id":202,"date":"2007-10-03T21:58:25","date_gmt":"2007-10-04T07:58:25","guid":{"rendered":"https:\/\/anildesai.net\/?p=202"},"modified":"2007-10-03T21:58:25","modified_gmt":"2007-10-04T07:58:25","slug":"advanced-backup-options-for-virtual-machines","status":"publish","type":"post","link":"https:\/\/anildesai.net\/index.php\/2007\/10\/advanced-backup-options-for-virtual-machines\/","title":{"rendered":"Advanced Backup Options for Virtual Machines"},"content":{"rendered":"<p><em>This article was first published on <\/em><a href=\"http:\/\/searchservervirtualization.techtarget.com\/\"><em>SearchServerVirtualization.TechTarget.com<\/em><\/a><em>.<\/em><\/p>\n<p>It\u2019s a pretty big challenge to support dozens or hundreds of separate virtual machines. Add in the requirement for backups \u2013 something that generally goes without saying &#8211; and you have to figure out how to protect important information. Yes, that usually means at least <i>two<\/i> copies of each of these storage hogs. I understand that you\u2019re not made of storage (unless, of course, you\u2019re the disk array that\u2019s reading this article on the web server). So what should you do? In this tip, I\u2019ll outline several approaches to performing backups for VMs, focusing on the strengths and limitations of each. <\/p>\n<h2><b>Determining Backup Requirements<\/b><\/h2>\n<p>Let\u2019s start by considering the requirements for performing backups. The list of gaols is pretty simple, in theory: <\/p>\n<ul>\n<li>Minimize data loss<\/li>\n<li>Minimize recovery time<\/li>\n<li>Simplify implementation and administration<\/li>\n<li>Minimize costs and resource usage<\/li>\n<\/ul>\n<p>Unfortunately, some of these objectives are often at odds with each other. Since implementing any solution takes time and effort, start by characterizing the requirements for each of your virtual machines and the applications and services they support. Be sure to write in pencil, as it\u2019s likely that you\u2019ll be revising these requirements. Next, let\u2019s take a look at the different options for meeting these goals. <\/p>\n<h2><b>Application-Level Backups<\/b><\/h2>\n<p>The first option to consider for performing backups is that of using application features to do the job. There\u2019s usually nothing virtualization-specific about this approach. Examples include: <\/p>\n<ul>\n<li><b>Relational Database Servers<\/b>: Databases were designed to be highly-available and it should come as no surprise that there are many ways of using built-in backup methods. In addition to standard backup and restore operations, you can use replication, log-shipping, clustering, and other methods to ensure that data remains protected.<\/li>\n<li><b>Messaging Servers<\/b>: Communications platforms such as Microsoft Exchange Server provide methods for keeping multiple copies of the data store in sync. Apart from improving performance (by placing data closer to those who need it), this can provide adequate backup functionality.<\/li>\n<li><b>Web Servers<\/b>: The important content for a web server can be stored in a shared location or can be copied to each node in a web server farm. When a web server fails, just restore the important data to a standby VM, and you\u2019re ready to go. Better yet, use shared session state or stateless application features and a network load-balancer to increase availability and performance.<\/li>\n<\/ul>\n<p>All of these methods allow you to protect against data loss and downtime by storing multiple copies of important information. <\/p>\n<h2><b>Guest-Level Backups<\/b><\/h2>\n<p>What\u2019s so special about VMs, anyway? I mean, why not just treat them like the physical machines that they think they are? That\u2019s exactly the approach with guest-level backups. The most common method with this approach is to install backup agents within the guest OS and to specify which files should be backed up and their destinations. As with physical servers, administrators can decide what really needs to be backed up \u2013 generally just data, applications, and configuration files. That saves precious disk space and can reduce backup times. <\/p>\n<p>There are, however, drawbacks to this backup approach. First, your enterprise backup solution must support your guest OS\u2019s (try finding an agent for OS\/2!) Assuming the guest OS is supported, the backup and recovery process is often different for each OS. This means more work on the restore side of things. Finally, the restore process can take significant time, since a base OS must be installed and the associated components restored. <\/p>\n<p>Examples of popular enterprise storage and backup solutions are those from <a href=\"http:\/\/www.symantec.com\/business\/solutions\/index.jsp?ptid=tab3&amp;ctid=tab3_3\">Symantec<\/a>, <a href=\"http:\/\/www.emc.com\/solutions\/bura\/index.jsp\">EMC<\/a>, <a href=\"http:\/\/www.microsoft.com\/en\/us\/default.aspx\">Microsoft<\/a> and many other vendors.  <\/p>\n<h2><b>Host-Level Backups<\/b><\/h2>\n<p>Host-level backups take advantage of the fact that virtual machines are encapsulated in one or more virtual disk files, along with associated configuration files. The backup process consists of making a copy of the necessary files from the host OS\u2019s file system. Host-level backups provide a consistent method for copying VMs since you don\u2019t have to worry about differences in guest operating systems. When it comes time to restore a VM (and you know it\u2019s going to happen!), all that\u2019s usually needed is to reattach the VM to a working host server. <\/p>\n<p>However, the drawback is that you\u2019re likely to need a lot of disk space. Since the entire VM, including the operating system, applications, and other data are included in the backup set, you\u2019ll have to allocate the necessary storage resources. And, you\u2019ll need adequate bandwidth to get the backups to their destination. Since virtual disk files are exclusively locked while a VM is running, you\u2019ll either need to use a \u201chot backup\u201d solution, or you\u2019ll have to pause or stop the VM to perform a backup. The latter option results in (gulp!) scheduled downtime. <\/p>\n<p>Solutions and technologies include: <\/p>\n<ul>\n<li>VMware: VMotion; High Availability; Consolidated Backup; DRS<\/li>\n<li>Microsoft Volume Shadow Services (VSS)<\/li>\n<\/ul>\n<h2><b>File System Backups<\/b><\/h2>\n<p>File system backups are based on features available in storage arrays and specialized software products. While they\u2019re not virtualization-specific, they can help simplify the process of creating and maintaining VM backups. Snapshot features can allow you make a duplicate of a running VM, but you should make sure that your virtualization platform is specifically supported. File system replication features can use block- or bit-level features to keep a primary and backup copy of virtual hard disk files in-sync. <\/p>\n<p>Since changes are transferred efficiently, less bandwidth is required. And, the latency between when modifications are committed on the primary VM and the backup VM can be minimized (or even eliminated). That makes the storage-based approach useful for maintaining disaster recovery sites. While third-party products are required, file system backups can be easy to setup and maintain. But, they\u2019re not always ideal for write-intensive applications and workloads. <\/p>\n<p>Potential solutions include products from <a href=\"http:\/\/www.doubletake.com\/\">Double-Take Software<\/a> and from <a href=\"http:\/\/www.neverfailgroup.com\/\">Neverfail<\/a>. Also, if you\u2019re considering the purchase of a storage solution, ask your vendor about replication and snapshot capabilities, and their compatibility with virtualization. <\/p>\n<h2><b>Back[up] to the Future<\/b><\/h2>\n<p>Most organizations will likely choose different backup approaches for different applications. For example, application-level backups are appropriate for those systems that support them. File system replication is important for maintaining hot or warm standby sites and services. Guest- and host-level backups balance ease of backup\/restore operations vs. the amount of usable disk space. Overall, you should compile the data loss, downtime and cost constraints, and then select the most appropriate method for each type of VM. While there\u2019s usually no single answer that is likely to meet all of your needs, there are some pretty good options out there!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This article was first published on SearchServerVirtualization.TechTarget.com. It\u2019s a pretty big challenge to support dozens or hundreds of separate virtual machines. Add in the requirement for backups \u2013 something that generally goes without saying &#8211; and you have to figure out how to protect important information. Yes, that usually means at least two copies of [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[15,16,17],"tags":[],"class_list":["post-202","post","type-post","status-publish","format-standard","hentry","category-vm-backup-disaster-recovery","category-vm-best-practices","category-vm-management"],"_links":{"self":[{"href":"https:\/\/anildesai.net\/index.php\/wp-json\/wp\/v2\/posts\/202","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/anildesai.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/anildesai.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/anildesai.net\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/anildesai.net\/index.php\/wp-json\/wp\/v2\/comments?post=202"}],"version-history":[{"count":0,"href":"https:\/\/anildesai.net\/index.php\/wp-json\/wp\/v2\/posts\/202\/revisions"}],"wp:attachment":[{"href":"https:\/\/anildesai.net\/index.php\/wp-json\/wp\/v2\/media?parent=202"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/anildesai.net\/index.php\/wp-json\/wp\/v2\/categories?post=202"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/anildesai.net\/index.php\/wp-json\/wp\/v2\/tags?post=202"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}