{"id":5520,"date":"2015-04-22T17:46:16","date_gmt":"2015-04-22T07:46:16","guid":{"rendered":"http:\/\/nsrd.info\/blog\/?p=5520"},"modified":"2018-12-11T12:59:30","modified_gmt":"2018-12-11T02:59:30","slug":"upgrade-times","status":"publish","type":"post","link":"https:\/\/nsrd.info\/blog\/2015\/04\/22\/upgrade-times\/","title":{"rendered":"Upgrade times"},"content":{"rendered":"<p>We live in a world of activities.&nbsp;Particularly in IT, almost everything we do can at some point&nbsp;be summarised as being an&nbsp;<em>activity<\/em>.&nbsp;Activities we perform&nbsp;typically fall into one of three organisational types, viz.:<\/p>\n<ul>\n<li>Parallel \u2013 Activities that&nbsp;can be performed simultaneously<\/li>\n<li>Sequential \u2013 Activities that must be performed in a&nbsp;particular order<\/li>\n<li>Standalone \u2013 Activities that can be performed in any order<\/li>\n<\/ul>\n<p>Additionally, we can say that most activities we perform are either&nbsp;<em>blocking<\/em> or <em>non-blocking<\/em>, at least in some context.&nbsp;Setting up a new client in NetWorker for instance is not normally considered to be a&nbsp;<em>blocking<\/em> activity, unless of course we consider it&nbsp;in the context of a subsequent backup of that same client.<\/p>\n<p><a href=\"https:\/\/nsrd.info\/blog\/wp-content\/uploads\/2015\/04\/hourglass.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-5522\" src=\"https:\/\/nsrd.info\/blog\/wp-content\/uploads\/2015\/04\/hourglass.png\" alt=\"Hourglass\" width=\"314\" height=\"500\" srcset=\"https:\/\/nsrd.info\/blog\/wp-content\/uploads\/2015\/04\/hourglass.png 314w, https:\/\/nsrd.info\/blog\/wp-content\/uploads\/2015\/04\/hourglass-188x300.png 188w\" sizes=\"auto, (max-width: 314px) 100vw, 314px\" \/><\/a><\/p>\n<p>One thing we can definitely consider to be a&nbsp;<em>blocking<\/em> activity in&nbsp;NetWorker is a server upgrade. These days you have to be a little more conscientious about server upgrades. Whereas before it was not uncommon to encounter environments with multiple storage nodes of varying NetWorker versions (despite whether this was a good idea or not), the upgrade process now requires you to ensure all storage nodes are upgraded either before, or at least at the same time as the NetWorker server. Additionally, if you&#8217;re using a dedicated NetWorker Management Console server, you should also upgrade that before the NetWorker server so that your NMC interface is capable of addressing any new functionality introduced in NetWorker*.<\/p>\n<p>Each of those upgrades (NMC, storage nodes and NetWorker server) take a particular amount of time. If you&#8217;re using standard NetWorker authentication, the package upgrade or removal\/reinstall process will take mere minutes. If your authentication is integrated with an Active Directory or LDAP service, that&#8217;ll be a little bit more complicated.<\/p>\n<p>But (and there&#8217;s always a but), the process of either upgrading the NetWorker binaries on the server (or uninstalling and re-installing, depending on your operating system) is&nbsp;<em>not<\/em> the be-all and end-all of the NetWorker upgrade process. There are a sequence of activities you need to perform prior to the upgrade as part of consistency checking and validation that you <em>really<\/em> shouldn&#8217;t ever skip.&nbsp;Depending on the number of clients, backup volumes or savesets you have, that might take some time to complete**.<\/p>\n<p>Looking at the NetWorker 8.2 upgrade guide, the&nbsp;recommended&nbsp;activities you should complete before performing a NetWorker server software upgrade are as follows:<\/p>\n<ul>\n<li><strong>nsrim -X<\/strong><\/li>\n<li>nsrck -m<\/li>\n<li><strong>nsrck -L6<\/strong><\/li>\n<li>nsrls -m<\/li>\n<li>nsrls<\/li>\n<li>nsrports<\/li>\n<li><strong>savegrp -l full -O&nbsp;<em>groupName ***<\/em><\/strong><\/li>\n<li>mminfo -B<\/li>\n<\/ul>\n<p>Of those commands, the ones that will potentially take the&nbsp;<em>most<\/em> time to execute are shown in bold, though the timing difference between just those three commands can be quite substantial. Consider the nsrck -L6 in particular: that&#8217;s a complete in-place index rebuild for&nbsp;<em>all<\/em> clients. If your indices are very large, or your NetWorker index filesystem storage&nbsp;incapable of providing sufficient IOPS (or a combination of both), the run-time for that activity may be lengthy. Equally, if your indices are large, a&nbsp;<em>savegrp -l full -O<\/em> to force a full index backup**** may also take quite a while to backup, depending on your backup destination.<\/p>\n<p>As an example, on a virtual lab server&nbsp;<em>significantly<\/em> under the minimum performance specifications for a NetWorker server (not to mention virtualised in vSphere which was in turn virtualised in VMware Fusion), I built up an index for a client of approximately 10GB after first creating then repeatedly backing up a filesystem with approximately 3,000,000 files in it. (mminfo reports an&nbsp;<em>nfiles<\/em> of 3,158,114). After those backups were generated, nsrls told me:<\/p>\n<pre># <strong>nsrls centaur<\/strong><\/pre>\n<pre>\/nsr\/index\/centaur: 88957985 records requiring 10 GB\n\/nsr\/index\/centaur is currently 100% utilized<\/pre>\n<p>Moving on to compare the run-times of an nsrck -L1, -L3 and -L6 yielded the following:<\/p>\n<pre># <strong>date; nsrck -L1 centaur; date<\/strong><\/pre>\n<pre>Wed Apr 22 17:19:51 AEST 2015\nnsrck: checking index for 'centaur'\nnsrck: \/nsr\/index\/centaur contains 88957985 records occupying 10 GB\nnsrck: Completed checking 1 client(s)\nWed Apr 22 17:19:51 AEST 2015<\/pre>\n<pre># <strong>date; nsrck -L3 centaur; date<\/strong><\/pre>\n<pre>Wed Apr 22 17:19:51 AEST 2015\nnsrck: checking index for 'centaur'\nnsrck: \/nsr\/index\/centaur contains 88957985 records occupying 10 GB\nnsrck: Completed checking 1 client(s)\nWed Apr 22 17:19:52 AEST 2015<\/pre>\n<pre># <strong>date; nsrck -L6 centaur; date<\/strong><\/pre>\n<pre>Wed Apr 22 17:19:52 AEST 2015\nnsrck: checking index for 'centaur'\nnsrck: \/nsr\/index\/centaur contains 88957985 records occupying 10 GB\nnsrck: Completed checking 1 client(s)\nWed Apr 22 17:26:26 AEST 2015<\/pre>\n<p>Now, these timings are&nbsp;<em>not under any circumstances<\/em> meant to be typical of how long it might take to perform an nsrck -L6 against a client index of a similar size on a real NetWorker server. But the fact that there&#8217;s a jump in the time taken to execute an nsrck -L3 vs an nsrck -L6 should serve to highlight my point: it&#8217;s a nontrivial operation depending on the size of the indices (as are nsrim -X and the savegrp -O), and you&nbsp;<em>must<\/em>&nbsp;know how long these operations are going to take in your environment.<\/p>\n<p>When planning NetWorker upgrades, I think it&#8217;s quite important to keep in mind the upgrade process is blocking: once you&#8217;ve started it, you really need to complete it before you can do any new backups or recoveries. (While some of those tasks above can be interrupted, you may equally find that an interruption should be followed by starting afresh.) So it becomes very&nbsp;important to know &#8211; in advance of when you&#8217;re actually going to perform the upgrade &#8211; just how long the various pre-upgrade steps are going to take. If not, you may end up in the situation of watching your change window or allowed outage time rapidly shrinking while an operation like&nbsp;<em>nsrck -L6<\/em> is still running.<\/p>\n<p>It may be that I&#8217;ve made the upgrade process sound a little daunting. In actual fact, it&#8217;s not: those of us who have been using NetWorker for close to two decades will recall just how pugnaciously problematic NetWorker v4 and v5 upgrades were with the older database formats*****. However, like all upgrades for critical infrastructure, NetWorker upgrades are going to be optimally hassle-free when you&#8217;re well prepared for the activities involved&nbsp;<em>and<\/em> the amount of time each activity will take.<\/p>\n<p>So, if you&#8217;re planning on doing a NetWorker upgrade, make sure you plan the timings for the pre-upgrade maintenance steps &#8230; it&#8217;ll allow you to accurately predict the amount of time you need and the amount of effort involved.<\/p>\n<p>&#8212;<br \/>\n* Finally of course, if you&#8217;re using VBA, you&#8217;ll possibly need to upgrade your EBR appliance and proxies, too.<\/p>\n<p>** On the plus side, NetWorker is quite efficient at those maintenance operations compared to a lot of other backup products.<\/p>\n<p>*** The guide doesn&#8217;t mention including &#8216;-l full&#8217;. However, if doing anything approaching a major version upgrade (e.g., 8.1 to 8.2), I believe you&nbsp;<em>should<\/em> do the index backup as a full one.<\/p>\n<p>**** To execute this successfully, you optimally should have a group defined with&nbsp;<em>all<\/em> clients in it. Otherwise you&#8217;ll have to carefully run multiple groups until you&#8217;ve captured all clients.<\/p>\n<p>***** For <em>servers<\/em>, I only go back as far as v4, so I can&#8217;t say what upgrades were like with v3 or lower.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>We live in a world of activities.&nbsp;Particularly in IT, almost everything we do can at some point&nbsp;be summarised as being&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"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":[16],"tags":[1222,1053],"class_list":["post-5520","post","type-post","status-publish","format-standard","hentry","category-networker","tag-maintenance","tag-upgrade"],"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/pKpIN-1r2","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/nsrd.info\/blog\/wp-json\/wp\/v2\/posts\/5520","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=5520"}],"version-history":[{"count":9,"href":"https:\/\/nsrd.info\/blog\/wp-json\/wp\/v2\/posts\/5520\/revisions"}],"predecessor-version":[{"id":7433,"href":"https:\/\/nsrd.info\/blog\/wp-json\/wp\/v2\/posts\/5520\/revisions\/7433"}],"wp:attachment":[{"href":"https:\/\/nsrd.info\/blog\/wp-json\/wp\/v2\/media?parent=5520"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nsrd.info\/blog\/wp-json\/wp\/v2\/categories?post=5520"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nsrd.info\/blog\/wp-json\/wp\/v2\/tags?post=5520"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}