{"id":854,"date":"2012-02-03T22:38:48","date_gmt":"2012-02-03T20:38:48","guid":{"rendered":"http:\/\/www.data-protector.org\/wordpress\/?p=854"},"modified":"2015-12-09T22:13:29","modified_gmt":"2015-12-09T21:13:29","slug":"simple-media-vaulting-off-site-tape-vaulting","status":"publish","type":"post","link":"https:\/\/www.data-protector.org\/wordpress\/de\/2012\/02\/simple-media-vaulting-off-site-tape-vaulting\/","title":{"rendered":"Simple Media Vaulting \/ Off-Site Tape Vaulting"},"content":{"rendered":"<p>Der Wunsch die Daten seiner Server auf Medien zu sichern und somit Datensicherheit zu erhalten h\u00f6rt nicht nur bei der Datensicherung auf Band auf,&nbsp;oft besteht auch der Wunsch oder Anforderung die beschriebenen B\u00e4nder vor weiterem Beschreiben zu sch\u00fctzen oder die Medien aus der Bandlibrary zu entfernen und an einem sicheren Ort (Tresor,&nbsp;Ausfall Rechenzentrum,&nbsp;&#8230;) zu verwahren.&nbsp;Jeder Data Protector Admin kennt diese Situation;&nbsp;Herausfinden welche B\u00e4nder in der letzten Vollsicherung beschrieben wurden um sie dann auslagern zu k\u00f6nnen.&nbsp;Der erfahrene Admin l\u00e4sst sich daf\u00fcr einen Report senden oder verwendet viele unterschiedliche Pools um die Tagessicherung,&nbsp;Wochensicherung und Monatssicherung auseinanderzuhalten.&nbsp;Problem:&nbsp;die B\u00e4nder sollen dann trotzdem noch in einen eigenen &#8222;Auslagerungspool&#8220; verschoben werden,&nbsp;bevor sie der Library entnommen werden.<\/p>\n<p><b>L\u00f6sung:<\/b>&nbsp;Genau f\u00fcr dieses Problem habe ich ein kleines Perl Skript geschrieben.&nbsp;Wie immer schreibe ich meine Skripte in Perl,&nbsp;da diese Sprache sehr flexibel f\u00fcr solche einfachen Aufgaben ist.&nbsp;Das Skript ben\u00f6tigt keine vollst\u00e4ndige Perl Installation,&nbsp;die abgespeckte Perl Variante die bei der Installation von Data Protector auf dem Cell Server enhalten ist reicht komplett aus. Funktionweise kurz: Es werden die Sicherungen eines Zeitraums bestimmt, die Medien dazu analysiert und diese dann in einen anderen Pool verschoben.<\/p>\n<p><b>Funktionsweise:<\/b>&nbsp;Das Skript durchsucht die Sicherungen des Timeframes der im Skript angegeben wird,&nbsp;f\u00fcr die Aufstellung der Sicherungen werden die verwendeten B\u00e4nder ermittelt.&nbsp;Die Liste der B\u00e4nder wird nun von eventuell vorhandenen Dubletten bereinigt (ein Band kann von mehreren Backupjobs verwendet wurden sein) und f\u00fcr jedes verbliebene Band der Pool bestimmt.&nbsp;Wenn das Band in einem Pool liegt welches \u00fcber ein einzustellendes Exclude nicht verschoben werden soll,&nbsp;dann wird das jeweilige Band \u00fcbersprungen,&nbsp;anderenfalls wird das Band in den konfigurierten Zielpool verschoben.&nbsp;Sollte die Anforderung an das Skript etwas komplexer werden so ist es auch m\u00f6gliche mehrere Kopien des Skripts mit unterschiedlichen Werten f\u00fcr die Variablen einzustellen und laufen zu lassen.&nbsp;Das gilt auch f\u00fcr Medien unterschiedlichen Typs (LTO und was es sonst noch gibt&#8230;)&nbsp;Am Ende des Skripts wird dann noch eine Mail versendet mit der Information welche B\u00e4nder in den Zielpool verschoben wurden.&nbsp;Wer das nicht mag kann es gern auskommentieren&#8230;&nbsp;Wer es mag muss sich noch das Tool &#8222;Blat&#8220; besorgen und konfigurieren&nbsp;&#8211;&nbsp;Link:&nbsp;<a href=\"http:\/\/www.blat.net\" title=\"http:\/\/www.blat.net\" target=\"_blank\">http:\/\/www.blat.net<\/a>.&nbsp;Der Einfachheit halber habe ich alles (das Skript,&nbsp;das Batchfile dazu und die Blat Binaries) in das Bin Verzeichnis von Data Protector gelegt,&nbsp;aber auch das kann ge\u00e4ndert werden.&nbsp;Denkbar w\u00e4re auch noch eine Erweiterung wo die B\u00e4nder gleich noch in die Mailslots verschoben werden (5 Zeilen Code mehr).&nbsp;Das macht nat\u00fcrlich nur Sinn wenn die Library \u00fcber konfigurierte Mailslots verf\u00fcgt und die Anzahl der auszulagernden kleiner oder gleich der Menge der Mailslots ist.<\/p>\n<p><b>Fallbeispiel:<\/b>&nbsp;Es sind die Pools FilesystemWeekend,&nbsp;FilesystemDaily (f\u00fcr die Filesystem Sicherungen),&nbsp;DatabasesWeekend,&nbsp; DatabasesDaily (f\u00fcr Datenbank Sicherungen),&nbsp;DPDatabase,&nbsp;Vaulting und FreePool vorhanden.&nbsp;Am Montagmorgen sollen die B\u00e4nder die in den Sicherungen seit Freitag Abend verwendet wurden in den Pool &#8222;Vaulting&#8220; verschoben werden.&nbsp;Die &#8222;Daily&#8220; Pools und der DPDatabase Pool (Die Sicherung der internen Datenbank geht bei mir immer in einen eigenen Pool!) sollen in diesem Fall bei der Auslagerung unber\u00fccksichtigt bleiben.&nbsp;Welche Einstellungen im Skript vorgenommen werden m\u00fcssen wird im n\u00e4chsten Abschnitt gezeigt.<\/p>\n<p><b>Einstellungen:<\/b>&nbsp;Was muss im Skript auf Grund des Fallbeispiels ge\u00e4ndert werden?&nbsp;Bitte unbedingt darauf achten,&nbsp;dass die @ Zeichen in den Mailadressen mit einem Backslash quoted sind und das vorher &#8222;blat&#8220; konfiguriert wurde (ist nur ein Befehl absetzen).<br \/>\n<code><br \/>\n$exclude_pools=\"FilesystemDaily,DatabasesDaily,DPDatabase,Vaulting\";<br \/>\n$vault_pool=\"Vaulting\";<br \/>\n$timeframe_start=\"60\";<br \/>\n$timeframe_duration=\"60\";<br \/>\n$mailrecipient=\"servicedesk\\@data-protector.org\";<br \/>\n$mailserver=\"127.0.0.1\";<br \/>\n$mailsender=\"dataprotector\\@data-protector.org\";<br \/>\n$mailsubject=\"Media vaulting\";<br \/>\n<\/code><\/p>\n<p>[wpdm_file id=4]<\/p>\n<p><b>UPDATE Download:<\/b>&nbsp;Es hatte sich ein kleiner Fehler bei der Bestimmung der Medien eingeschlichen, die Anzahl hatte nicht gestimmt &#8211; neuer Download nachfolgend.<\/p>\n<p>[wpdm_file id=5]<\/p>\n<p><b>Einsatzgebiet:<\/b>&nbsp;Das Skript ist besonders f\u00fcr kleine bis mittelst\u00e4ndige Umgebungen geeignet.&nbsp;In gr\u00f6\u00dferen Umgebungen empfehle ich das Konzept von HP Media Operations mal genauer anzuschauen.&nbsp;Alternativ k\u00f6nnen Sie auch ein Skript f\u00fcr gr\u00f6\u00dfere Umgebungen bei mir erwerben,&nbsp;individuelle W\u00fcnsche k\u00f6nnen dabei ber\u00fccksichtigt werden.&nbsp;Entsprechende Anfragen (mit dem Betreff:&nbsp;Off-Site Tape Vaulting) richten Sie bitte direkt an &#x64;&#x61;&#110;ie&#x6c;&#x2d;&#x62;&#114;au&#x6e;&#x40;&#x64;&#97;ta&#x2d;&#x70;&#x72;&#111;te&#x63;&#x74;&#x6f;&#114;.o&#x72;&#x67;<\/p>\n<p><b>Donate:<\/b>&nbsp;Und noch ein Wort am Ende&#8230;&nbsp;Wenn der Artikel und das Skript bei der t\u00e4glichen Data Protector Administration weiterhilft und zum Einsatz kommt,&nbsp;so w\u00fcrde ich mich \u00fcber eine Spende (nicht mehr wie 5 \u20ac) mittels PayPal freuen.&nbsp;Den Link findet ihr rechts oben&#8230;<\/p>\n<p><b>Referenz:<\/b>&nbsp;Und wen der Proxy \u00e4rgert&#8230; nachfolgend das komplette Skript. Wer es schlanker mag (das Skript kommt auch ohne die prints und mit der H\u00e4lfte der Zeilen aus),&nbsp;kann es gern anpassen&#8230;<\/p>\n<p><code><br \/>\n#!perl -I..\/lib\/perl -X -CA<\/p>\n<p>### needed modules<br \/>\nuse Omniback;<\/p>\n<p># Get DP folders<br \/>\nmy $OMNIHOME = Omniback::CmnQuotePath($Omniback::PAN{'BASE'});<br \/>\nmy $OMNIHOME_STR = $OMNIHOME;<br \/>\n$OMNIHOME_STR =~ s\/\\\"\/\/g;<br \/>\nmy $OMNIBIN = \"\\\"${OMNIHOME_STR}\/bin\\\"\";<\/p>\n<p># define the exclude pools, pool for vaulting, ...<br \/>\n$exclude_pools=\"Pool1,Pool2,PoolX\";<\/p>\n<p># the pool mus exist in DP<br \/>\n$vault_pool=\"Vaulting\";<\/p>\n<p># the time frame to retriev the session information<br \/>\n# assuming the script should run monday 8am, the timeframe of<br \/>\n# 60 month covers backups starting friday evening<br \/>\n$timeframe_start=\"60\";<br \/>\n$timeframe_duration=\"60\";<\/p>\n<p># the stuff needed to send a mail at the end of the script<br \/>\n# you need to download blat (mail program) search for blat at google<\/p>\n<p>$mailrecipient=\"firstname.lastname\\@domain.com\";  \t\t# please remind the quoted (at)<br \/>\n$mailserver=\"192.168.2.10\"; \t\t\t\t\t# the ip address of the smtp server<br \/>\n$mailsender=\"dataprotector\\@domain.com\";\t\t\t# please remind the quoted (at)<br \/>\n$mailsubject=\"Media vaulting\";\t\t\t\t\t# Subject for the mail<\/p>\n<p>print \"Generating Report\\n\";<br \/>\nprint \"- skipping pools: $exclude_pools\\n\";<br \/>\nprint \"- target pool is: $vault_pool\\n\";<br \/>\nprint \"- start time: $timeframe_start\\n\";<br \/>\nprint \"- duration: $timeframe_duration\\n\";<br \/>\nprint \"\\n\\nNote: Ignore messages regarding \\\"No medium found\\\"\\n\\n\";<\/p>\n<p>@exec=`${OMNIBIN}\/omnirpt -report list_sessions -timeframe $timeframe_start $timeframe_duration -tab`;<br \/>\nforeach (@exec)<br \/>\n{<br \/>\n\tchomp $_;<br \/>\n\tnext if \/^#\/;<br \/>\n\t(@sessionid)=split(\/\\t\/,$_,23);<br \/>\n\tpush(@sessions,$sessionid[22]);<br \/>\n}<\/p>\n<p>foreach (@sessions)<br \/>\n{<br \/>\n\t@exec=`${OMNIBIN}\/omnidb.exe -session \\\"$_\\\" -media`;<br \/>\n\t$media = $exec[2];<br \/>\n\tchomp $media;<br \/>\n\t($media_short,$dummy)=split(\/  \/,$media,2);<br \/>\n\tif ($media_short ne \"\")<br \/>\n\t{<br \/>\n\t\tpush(@media,$media_short);<br \/>\n\t}<br \/>\n}<\/p>\n<p>@newmedia=&del_double(@media);<\/p>\n<p>print \"Summary\\n\";<br \/>\n@movedmedia=();<br \/>\nforeach (sort(@newmedia))<br \/>\n{<\/p>\n<p>\t($media1,$dummy)=split(\/ \/,$_,2);<br \/>\n\t$media1 =~ s\/\\[\/\/ig;<br \/>\n\t$media1 =~ s\/\\]\/\/ig;<\/p>\n<p>\t@exec=`${OMNIBIN}\/omnimm -media_info \\\"$media1\\\" -detail`;<br \/>\n\t$pool = $exec[2];<br \/>\n\tchomp $pool;<br \/>\n\tchop $pool;<br \/>\n\t$pool =~ s\/Pool name              : \/\/ig;<br \/>\n\tif ($exclude_pools =~ \/$pool\/)<br \/>\n\t{<br \/>\n\t\tprint \"skipping media: $media1 \\n\";<br \/>\n\t}<br \/>\n\telse<br \/>\n\t{<br \/>\n\t\tprint \"moving media: $media1 \\n\";<br \/>\n\t\t@exec=`${OMNIBIN}\/omnimm -move_medium \\\"$media1\\\" $vault_pool`;<br \/>\n\t\tpush(@moved_media,$media1);<\/p>\n<p>\t}<br \/>\n}<\/p>\n<p>$anzahl=@moved_media;<br \/>\nif ($anzahl gt 0)<br \/>\n{<br \/>\n\t$message=\"\";<br \/>\n\t$message=\"Vaulting media:\\n============================\\n\\n\";<br \/>\n\t$message=$message.\"Following media were moved to pool: $vault_pool for vaulting.\\n\";<br \/>\n\t$message=$message.\"Media:\\n\";<br \/>\n\tforeach (@moved_media)<br \/>\n\t{<br \/>\n\t\t$message=$message.$_.\"\\n\";<br \/>\n\t}<\/p>\n<p>\t$message=$message.\"\\n\\nMail generated by robot\\n\\n\";<br \/>\n\t`${OMNIBIN}\/blat -to $mailrecipient -f $mailsender -subject \\\"$mailsubject\\\" -body \\\"$message\\\"`;<br \/>\n}<\/p>\n<p>exit;<\/p>\n<p>sub del_double{<br \/>\nmy %all;<br \/>\ngrep {$all{$_}=0} @_;<br \/>\nreturn (keys %all);<br \/>\n}<br \/>\n<\/code><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Der Wunsch die Daten seiner Server auf Medien zu sichern und somit Datensicherheit zu erhalten h\u00f6rt nicht nur bei der Datensicherung auf Band auf,&nbsp;oft besteht auch der Wunsch oder Anforderung die beschriebenen B\u00e4nder vor weiterem Beschreiben zu sch\u00fctzen oder die Medien aus der Bandlibrary zu entfernen und an einem sicheren Ort (Tresor,&nbsp;Ausfall Rechenzentrum,&nbsp;&#8230;) zu verwahren.&nbsp;Jeder [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_mi_skip_tracking":false,"spay_email":""},"categories":[11],"tags":[129],"translation":{"provider":"WPGlobus","version":"2.8.8","language":"de","enabled_languages":["en","de"],"languages":{"en":{"title":true,"content":true,"excerpt":false},"de":{"title":false,"content":true,"excerpt":false}}},"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p28cjj-dM","jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":1819,"url":"https:\/\/www.data-protector.org\/wordpress\/de\/2014\/01\/storeonce-success-story-australia\/","url_meta":{"origin":854,"position":0},"title":"StoreOnce success story from Australia","date":"27. Januar 2014","format":false,"excerpt":"{:en}Recently I asked you to share your StoreOnce success story. Here is a awesome story and a good example for federated deduplication from a company in Australia. Before using HP StoreOnce, the company used to protect its data in the two datacentres using HP Data Protector. The data (FileSystems, MS\u2026","rel":"","context":"In &quot;SCD&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":694,"url":"https:\/\/www.data-protector.org\/wordpress\/de\/2011\/07\/data-protector-migration-unix-to-other-os\/","url_meta":{"origin":854,"position":1},"title":"Data Protector Migration Unix to other OS","date":"29. Juli 2011","format":false,"excerpt":"{:de}Ich kenne nicht viele gute Gr\u00fcnde warum man eine Data Protector Installation von HP-UX auf ein anderes Betriebssystem wechseln sollte,\u00a0dennoch gibt es viele Kunden die diesen Schritt gehen wollen und zum Beispiel auf Windows oder Linux wechseln;\u00a0meist noch verbunden mit einem Upgrade auf eine aktuelle Version von Data Protector.\u00a0Und hier\u2026","rel":"","context":"In &quot;HowTo&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":2395,"url":"https:\/\/www.data-protector.org\/wordpress\/de\/2015\/09\/future-tape-technology\/","url_meta":{"origin":854,"position":2},"title":"The future of the Tape Technology","date":"25. September 2015","format":false,"excerpt":"{:en} Many customers continue to rely on tape storage to protect their business critical applications and data. The benefit to continue performing classic backup is obvious: Tape storage is cheap compared with backup-to-disk technolgies. In a TCO consideration lower cost per GB and lower energy costs are speaking for an\u2026","rel":"","context":"In &quot;Common&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1478,"url":"https:\/\/www.data-protector.org\/wordpress\/de\/2013\/07\/write-device-parameter-incorrect\/","url_meta":{"origin":854,"position":3},"title":"Cannot write to device &#8211; the parameter is incorrect","date":"5. Juli 2013","format":false,"excerpt":"{:en}When using the wrong block size for the tape devices, you may get the error message Cannot write to device ([87] The Parameter is incorrect.) during the backup or while formatting media. This error may occur if as SAS library, attached to the controller P212-ZM is used. When you try\u2026","rel":"","context":"In &quot;HowTo&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":211,"url":"https:\/\/www.data-protector.org\/wordpress\/de\/2010\/10\/initialization-of-medium-failed-filelibrary-full\/","url_meta":{"origin":854,"position":4},"title":"Initialization of medium failed &#8211; filelibrary full","date":"22. Oktober 2010","format":false,"excerpt":"{:en}The error Initialization of medium failed is shown when the Filelibrary is full or almost full (one or more mountpoints \/ folders in filelibrary). If you did not install the GR Patches from July 2010, you may also see a lot of media with blue question mark withhin the mountpoint\u2026","rel":"","context":"In &quot;Bugs&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":815,"url":"https:\/\/www.data-protector.org\/wordpress\/de\/2011\/11\/data-protector-cases-and-hp-support\/","url_meta":{"origin":854,"position":5},"title":"Data Protector Cases and HP Support","date":"30. November 2011","format":false,"excerpt":"{:de}Nicht immer ist Software von Fehlern befreit und eine Funktion im Data Protector arbeitet nicht wie gew\u00fcnscht oder liefert nicht das notwendige Ergebnis. In diesen F\u00e4llen ben\u00f6tigt man die Unterst\u00fctzung von Support um einen m\u00f6glichen Fehler zu identifizieren, zu analysieren und zu beheben. Nachfolgend findet ihr ein Anleitung wie man\u2026","rel":"","context":"In &quot;Common&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/www.data-protector.org\/wordpress\/de\/wp-json\/wp\/v2\/posts\/854"}],"collection":[{"href":"https:\/\/www.data-protector.org\/wordpress\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.data-protector.org\/wordpress\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.data-protector.org\/wordpress\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.data-protector.org\/wordpress\/de\/wp-json\/wp\/v2\/comments?post=854"}],"version-history":[{"count":25,"href":"https:\/\/www.data-protector.org\/wordpress\/de\/wp-json\/wp\/v2\/posts\/854\/revisions"}],"predecessor-version":[{"id":2708,"href":"https:\/\/www.data-protector.org\/wordpress\/de\/wp-json\/wp\/v2\/posts\/854\/revisions\/2708"}],"wp:attachment":[{"href":"https:\/\/www.data-protector.org\/wordpress\/de\/wp-json\/wp\/v2\/media?parent=854"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.data-protector.org\/wordpress\/de\/wp-json\/wp\/v2\/categories?post=854"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.data-protector.org\/wordpress\/de\/wp-json\/wp\/v2\/tags?post=854"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}