{"id":625,"date":"2009-07-01T06:50:52","date_gmt":"2009-06-30T20:50:52","guid":{"rendered":"http:\/\/nsrd.wordpress.com\/?p=625"},"modified":"2009-07-01T06:50:52","modified_gmt":"2009-06-30T20:50:52","slug":"my-personal-networker-wish-list","status":"publish","type":"post","link":"https:\/\/nsrd.info\/blog\/2009\/07\/01\/my-personal-networker-wish-list\/","title":{"rendered":"My Personal NetWorker Wish List"},"content":{"rendered":"<p>This is not necessarily reflective of my customers, though several of them have expressed desire for at least one or two features in the following list. However, that doesn&#8217;t mean there&#8217;s features currently not in NetWorker that I feel would significantly enhance it.<\/p>\n<p>(I should point out that even missing these features, I still think it&#8217;s superior to other backup products.)<\/p>\n<p>So, here&#8217;s my personal wish-list for NetWorker (in no particular order), coming from a continuous use of the product since 1996:<\/p>\n<ul>\n<li>Enhancements to ADV_FILE backup:\n<ul>\n<li>The <em>nsrmmd<\/em> service needs to be able to support some form of proxying, such that savesets which are being written to a disk backup unit which fills can be &#8220;moved&#8221; to another nsrmmd service for completion on another ADV_FILE unit.<\/li>\n<li>When backing up to ADV_FILE units, NetWorker needs to pick next volume to write to by <em>capacity<\/em>, not <em>age<\/em>. This would prevent the same ADV_FILE unit(s) filling frequently and stagger writes better across all devices.<\/li>\n<\/ul>\n<\/li>\n<li>Enhancements to backup, more generally:\n<ul>\n<li>Simultaneously generate a backup and one or more clones, with the option available as to whether failure of one, a particular number or all constitutes a failure.<\/li>\n<li>Support for expiration\/browse dates beyond 2038.<\/li>\n<\/ul>\n<\/li>\n<li>Enhancements to recovery:\n<ul>\n<li>New <em>recover<\/em> log that gets automatically populated with details of <em>who<\/em> recovered <em>what<\/em>. This should be at the NetWorker server, rather than NMC level.<\/li>\n<li>Administrators should be able to optionally allow <em>cross platform directed recoveries<\/em>. (This will become particularly pertinent as companies complete migration activities from Novell NetWare to Novell Open Enterprise Server. As one platform is NetWare, and the other Linux, recovering old NetWare data to an OES server is not supported.)<\/li>\n<li>Preferred recovery pools \u2013 currently NetWorker picks savesets to use for recovery based on <em>nsavetime<\/em>, which can result in disk backup environments where data has been cloned, then staged, in NetWorker requesting recovery from a clone rather than stage volume. While this can be ameliorated by individually setting the &#8220;offsite&#8221; flag for each volume, it would be preferable to be able to nominate &#8220;priorities&#8221; for pools, such that NetWorker will recommend volumes from the &#8220;highest priority pool&#8221; when a recovery is required and no volumes are on-line.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>The wish list is by no means complete, but these are the things I tend to chafe against more frequently than others.<\/p>\n<p>Since I don&#8217;t want it to be said that I just come up with a wish-list but don&#8217;t have any idea of how topics on it would be accomplished, I&#8217;ll go focus on what would (theoretically) need to be done to fix up disk backup, accomplish simultaneous (inline) cloning, etc. (Admittedly, this is my &#8220;I don&#8217;t have access to the NetWorker source code and never have but architecturally I think EMC should do this&#8221; train of thought, but that doesn&#8217;t invalidate the theoretical architecture.)<\/p>\n<p>The current &#8220;tiering&#8221; used to get data to a volume needs to be extended by <em>one<\/em> layer. Currently the (general) process is that the client <em>save<\/em> process (or other nominated process) sends data to the nominated <em>nsrmmd<\/em> process for writing directly to a volume.<\/p>\n<p>It&#8217;s this model that needs to be changed. Rather than the client sending directly to the <em>nsrmmd<\/em> process, instead it needs to send to a proxy process \u2013 let&#8217;s call that the fictional <em>nsrmmpd<\/em> process. This process would act as a &#8220;broker&#8221;. It would receive the individual backup processes from each client backup, and determine which <em>nsrmmd<\/em> would facilitate the backup. The important feature however would be that there would <em>not<\/em> be a 1-to-1 relationship between <em>nsrmmd<\/em>s and <em>nsrmmpd<\/em>s &#8211; rather, there would be a 1-to-1 relationship between <em>client backups<\/em> and <em>nsrmmpd<\/em>s, and the <em>nsrmmpd<\/em> would be able to redirect the client data stream to <em>another nsrmmd<\/em> on an as-needs basis. This would resemble the following:<\/p>\n<figure id=\"attachment_639\" aria-describedby=\"caption-attachment-639\" style=\"width: 466px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-639\" title=\"Proposed nsrmmpd architecture\" src=\"http:\/\/nsrd.files.wordpress.com\/2009\/07\/nsrmmpd-fictional-architecture.png\" alt=\"Proposed nsrmmpd architecture\" width=\"466\" height=\"457\" srcset=\"https:\/\/nsrd.info\/blog\/wp-content\/uploads\/2009\/07\/nsrmmpd-fictional-architecture.png 466w, https:\/\/nsrd.info\/blog\/wp-content\/uploads\/2009\/07\/nsrmmpd-fictional-architecture-300x294.png 300w, https:\/\/nsrd.info\/blog\/wp-content\/uploads\/2009\/07\/nsrmmpd-fictional-architecture-305x300.png 305w\" sizes=\"auto, (max-width: 466px) 100vw, 466px\" \/><figcaption id=\"caption-attachment-639\" class=\"wp-caption-text\">Proposed nsrmmpd architecture<\/figcaption><\/figure>\n<p>The advantage of this style of daemon layout would be that client backup processes would not have to re-negotiate with <em>nsrmmd<\/em> processes, but rather, would be passed-through by the proxy process to whichever <em>nsrmmd<\/em> process was most suitable at any given time. This would in theory be completely seamless and undetectable to the client.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This is not necessarily reflective of my customers, though several of them have expressed desire for at least one or&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":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[5,16],"tags":[1249,1111],"class_list":["post-625","post","type-post","status-publish","format-standard","hentry","category-backup-theory","category-networker","tag-networker","tag-wish-list"],"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/pKpIN-a5","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/nsrd.info\/blog\/wp-json\/wp\/v2\/posts\/625","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=625"}],"version-history":[{"count":0,"href":"https:\/\/nsrd.info\/blog\/wp-json\/wp\/v2\/posts\/625\/revisions"}],"wp:attachment":[{"href":"https:\/\/nsrd.info\/blog\/wp-json\/wp\/v2\/media?parent=625"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nsrd.info\/blog\/wp-json\/wp\/v2\/categories?post=625"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nsrd.info\/blog\/wp-json\/wp\/v2\/tags?post=625"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}