{"id":9232,"date":"2020-01-20T12:48:56","date_gmt":"2020-01-20T02:48:56","guid":{"rendered":"https:\/\/nsrd.info\/blog\/?p=9232"},"modified":"2020-01-20T12:49:02","modified_gmt":"2020-01-20T02:49:02","slug":"basics-networker-compressed-recoveries","status":"publish","type":"post","link":"https:\/\/nsrd.info\/blog\/2020\/01\/20\/basics-networker-compressed-recoveries\/","title":{"rendered":"Basics \u2013\u00a0NetWorker Compressed Recoveries"},"content":{"rendered":"\n<p>While Data Domain compressed restores had been available in the NMDA and NMM modules for a while, NetWorker 19.1 introduced recovery compression for most other backups. (VMware virtual machine recoveries \u2013&nbsp;i.e., via vProxy\/NVP, are a notable exception. But you can get even higher speed recoveries of these backups through <em>instant access<\/em> and <em>changed-block-tracking<\/em>.)<\/p>\n\n\n\n<p>I did a post some time ago showing the impacts of compressed recovery for an <a rel=\"noreferrer noopener\" aria-label=\"Oracle database using the NetWorker 18.1 NMDA plugin (opens in a new tab)\" href=\"https:\/\/nsrd.info\/blog\/2018\/08\/08\/accelerating-oracle-recoveries-with-networker-18-1\/\" target=\"_blank\"><strong>Oracle database using the NetWorker 18.1 NMDA plugin<\/strong><\/a>, but I wanted to show how it can make a speedup in other recoveries, too.<\/p>\n\n\n\n<p>The great thing about NetWorker\/Data Domain compressed recoveries is that they&#8217;re <em>enabled by default<\/em>. It&#8217;s only if you want to <em>disable<\/em> them that you have to take any action. (You create a file called <em>disable_compressed_restore<\/em> in the <em>\/nsr\/debug<\/em> directory \u2013&nbsp;or appropriate equivalent directory on Windows.)<\/p>\n\n\n\n<p>So I figured I&#8217;d have a look at two different compressed recovery scenarios. The first instance was to recover a Synology NAS share in my lab that is about 99.9% populated with PDFs. As you&#8217;d know, PDFs don&#8217;t necessarily yield themselves to a lot of extra compression, so they&#8217;re a good &#8220;line in the sand&#8221;.<\/p>\n\n\n\n<p>Here&#8217;s the recovery:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1808\" height=\"1478\" src=\"https:\/\/nsrd.info\/blog\/wp-content\/uploads\/2020\/01\/01_restore_PDF_share.png\" alt=\"\" class=\"wp-image-9234\" srcset=\"https:\/\/nsrd.info\/blog\/wp-content\/uploads\/2020\/01\/01_restore_PDF_share.png 1808w, https:\/\/nsrd.info\/blog\/wp-content\/uploads\/2020\/01\/01_restore_PDF_share-300x245.png 300w, https:\/\/nsrd.info\/blog\/wp-content\/uploads\/2020\/01\/01_restore_PDF_share-1024x837.png 1024w, https:\/\/nsrd.info\/blog\/wp-content\/uploads\/2020\/01\/01_restore_PDF_share-768x628.png 768w, https:\/\/nsrd.info\/blog\/wp-content\/uploads\/2020\/01\/01_restore_PDF_share-1536x1256.png 1536w\" sizes=\"auto, (max-width: 1808px) 100vw, 1808px\" \/><figcaption>NetWorker Restore of PDF-Populated NAS Share<\/figcaption><\/figure>\n\n\n\n<p>So that was the restore of the PDF populated NAS share, but how do I see what sort of compression I got during the restore? To do that, I had also logged onto the Data Domain system console to run the following command, starting it just before the recovery:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sysadmin@neutronium# <strong>ddboost stats show interval 1<\/strong><\/pre>\n\n\n\n<p>That command gives me details of Data Domain boost connections running on the Data Domain, with details of the number of connections, size of data sent, etc. Here&#8217;s what I got for the duration of the recovery:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1576\" height=\"1162\" src=\"https:\/\/nsrd.info\/blog\/wp-content\/uploads\/2020\/01\/02_ddboost_stats_restore_PDF_share.png\" alt=\"\" class=\"wp-image-9235\" srcset=\"https:\/\/nsrd.info\/blog\/wp-content\/uploads\/2020\/01\/02_ddboost_stats_restore_PDF_share.png 1576w, https:\/\/nsrd.info\/blog\/wp-content\/uploads\/2020\/01\/02_ddboost_stats_restore_PDF_share-300x221.png 300w, https:\/\/nsrd.info\/blog\/wp-content\/uploads\/2020\/01\/02_ddboost_stats_restore_PDF_share-1024x755.png 1024w, https:\/\/nsrd.info\/blog\/wp-content\/uploads\/2020\/01\/02_ddboost_stats_restore_PDF_share-768x566.png 768w, https:\/\/nsrd.info\/blog\/wp-content\/uploads\/2020\/01\/02_ddboost_stats_restore_PDF_share-1536x1133.png 1536w\" sizes=\"auto, (max-width: 1576px) 100vw, 1576px\" \/><figcaption>ddboost stats show interval 1 \u2013&nbsp;Showing compressed recovery<\/figcaption><\/figure>\n\n\n\n<p>Well there&#8217;s definitely compression happening during the recovery, where possible. For instance, the highlighted line shows a recovery <em>read<\/em> of 100MB\/s, but only 85MB\/s sent.<\/p>\n\n\n\n<p>But can we show better than that? Well, my lab only uses 0.5TB DDVEs, so it&#8217;s not as if I have huge chunks of data flowing to them, but it occurred to me to use my <strong><a rel=\"noreferrer noopener\" aria-label=\"savekvm (opens in a new tab)\" href=\"https:\/\/nsrd.info\/blog\/2019\/02\/08\/updated-kvm-image-backup-script-for-networker\/\" target=\"_blank\">savekvm<\/a><\/strong><span id='easy-footnote-1-9232' class='easy-footnote-margin-adjust'><\/span><span class='easy-footnote'><a href='https:\/\/nsrd.info\/blog\/2020\/01\/20\/basics-networker-compressed-recoveries\/#easy-footnote-bottom-1-9232' title='This highlighted there&amp;#8217;s a bug in my savekvm script which doesn&amp;#8217;t work unless it&amp;#8217;s invoked with a virtual cluster name, which I&amp;#8217;ll need to fix.'><sup>1<\/sup><\/a><\/span> script then subsequently test out recovery of a KVM virtual machine.<\/p>\n\n\n\n<p>So having done a backup of a CentOS 7 KVM virtual machine, I first checked the mminfo output:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1328\" height=\"344\" src=\"https:\/\/nsrd.info\/blog\/wp-content\/uploads\/2020\/01\/03_savekvm_vms.png\" alt=\"\" class=\"wp-image-9236\" srcset=\"https:\/\/nsrd.info\/blog\/wp-content\/uploads\/2020\/01\/03_savekvm_vms.png 1328w, https:\/\/nsrd.info\/blog\/wp-content\/uploads\/2020\/01\/03_savekvm_vms-300x78.png 300w, https:\/\/nsrd.info\/blog\/wp-content\/uploads\/2020\/01\/03_savekvm_vms-1024x265.png 1024w, https:\/\/nsrd.info\/blog\/wp-content\/uploads\/2020\/01\/03_savekvm_vms-768x199.png 768w\" sizes=\"auto, (max-width: 1328px) 100vw, 1328px\" \/><figcaption>mminfo output for savekvm backup<\/figcaption><\/figure>\n\n\n\n<p>So the virtual machine disks are about 5.5GB. The NetWorker recovery of just the disks themselves ran as follows:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"797\" height=\"1024\" src=\"https:\/\/nsrd.info\/blog\/wp-content\/uploads\/2020\/01\/04_savekvm_restore-797x1024.png\" alt=\"\" class=\"wp-image-9237\" srcset=\"https:\/\/nsrd.info\/blog\/wp-content\/uploads\/2020\/01\/04_savekvm_restore-797x1024.png 797w, https:\/\/nsrd.info\/blog\/wp-content\/uploads\/2020\/01\/04_savekvm_restore-233x300.png 233w, https:\/\/nsrd.info\/blog\/wp-content\/uploads\/2020\/01\/04_savekvm_restore-768x987.png 768w, https:\/\/nsrd.info\/blog\/wp-content\/uploads\/2020\/01\/04_savekvm_restore-1195x1536.png 1195w, https:\/\/nsrd.info\/blog\/wp-content\/uploads\/2020\/01\/04_savekvm_restore.png 1296w\" sizes=\"auto, (max-width: 797px) 100vw, 797px\" \/><figcaption>NetWorker Recovery from savekvm Backup<\/figcaption><\/figure>\n\n\n\n<p>The Data Domain Boost stats though showed a substantial improvement in recovery performance as a result of automatic compression:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"1002\" src=\"https:\/\/nsrd.info\/blog\/wp-content\/uploads\/2020\/01\/05_ddboost_stats_savekvm_restore-1024x1002.png\" alt=\"\" class=\"wp-image-9238\" srcset=\"https:\/\/nsrd.info\/blog\/wp-content\/uploads\/2020\/01\/05_ddboost_stats_savekvm_restore-1024x1002.png 1024w, https:\/\/nsrd.info\/blog\/wp-content\/uploads\/2020\/01\/05_ddboost_stats_savekvm_restore-300x294.png 300w, https:\/\/nsrd.info\/blog\/wp-content\/uploads\/2020\/01\/05_ddboost_stats_savekvm_restore-768x752.png 768w, https:\/\/nsrd.info\/blog\/wp-content\/uploads\/2020\/01\/05_ddboost_stats_savekvm_restore-1536x1504.png 1536w, https:\/\/nsrd.info\/blog\/wp-content\/uploads\/2020\/01\/05_ddboost_stats_savekvm_restore.png 1570w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption>ddboost show stats interval 1 \u2013 During KVM Recovery<\/figcaption><\/figure>\n\n\n\n<p>Here we see a substantial improvement. At times the recovery process reduced the data that needed to be sent from the Data Domain by more than 12x, and overall the recovery sent 4.87x <em>less<\/em> data as a result of compression.<\/p>\n\n\n\n<p>Where this is important is obvious: backup speed is important, but so too is recovery speed. If you need to recover a 2TB filesystem, would you rather stream 2TB across your network, or 410.68GB? (That&#8217;s using the 4.87x reduction result above.) Sure, on a 10Gbit network, in theory you can transmit 2TB of data in 26 minutes and 40 seconds, but 411GB would only take you 5 minutes and 28 seconds. Perhaps even more importantly, 411GB over a 1Gbit network will take you almost 55 minutes, but 2TB over a 1Gbit network is going to take you almost 4.5 hours.<\/p>\n\n\n\n<p>And the best thing about NetWorker\/Data Domain compressed recoveries is that they&#8217;re on by default so long as you&#8217;ve got NetWorker 19.1+ and DDOS 6.0.0.30 or higher.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>While Data Domain compressed restores had been available in the NMDA and NMM modules for a while, NetWorker 19.1 introduced&hellip;<\/p>\n","protected":false},"author":1,"featured_media":9233,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[1181,16,19],"tags":[242,1215],"class_list":["post-9232","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-data-domain-2","category-networker","category-recovery","tag-compression","tag-restore"],"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/nsrd.info\/blog\/wp-content\/uploads\/2020\/01\/bigStock-Clothes-Too-Big.jpg","jetpack_shortlink":"https:\/\/wp.me\/pKpIN-2oU","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/nsrd.info\/blog\/wp-json\/wp\/v2\/posts\/9232","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nsrd.info\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nsrd.info\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nsrd.info\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/nsrd.info\/blog\/wp-json\/wp\/v2\/comments?post=9232"}],"version-history":[{"count":5,"href":"https:\/\/nsrd.info\/blog\/wp-json\/wp\/v2\/posts\/9232\/revisions"}],"predecessor-version":[{"id":9243,"href":"https:\/\/nsrd.info\/blog\/wp-json\/wp\/v2\/posts\/9232\/revisions\/9243"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nsrd.info\/blog\/wp-json\/wp\/v2\/media\/9233"}],"wp:attachment":[{"href":"https:\/\/nsrd.info\/blog\/wp-json\/wp\/v2\/media?parent=9232"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nsrd.info\/blog\/wp-json\/wp\/v2\/categories?post=9232"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nsrd.info\/blog\/wp-json\/wp\/v2\/tags?post=9232"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}