{"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 dani&#101;&#108;&#x2d;&#x62;&#x72;&#x61;&#x75;n&#64;da&#116;&#97;&#x2d;&#x70;&#x72;&#x6f;&#x74;ecto&#114;&#46;&#x6f;&#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":1428,"url":"https:\/\/www.data-protector.org\/wordpress\/de\/2013\/06\/basics-dp-catalog-protection-data-protection\/","url_meta":{"origin":854,"position":0},"title":"BASICS &#8211; DP Catalog Protection and Data Protection","date":"10. Juni 2013","format":false,"excerpt":"{:en}Within Data Protector the protection is set per backup job and not for the tape, which might be misunderstood by customers. In the GUI a distinction is made between \"Data Protection\" and \"Catalog Protection\". \"Data Protection\" describes how long the data is kept on media and \"Catalog Protection\" describes how\u2026","rel":"","context":"In &quot;BASICS&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":87,"url":"https:\/\/www.data-protector.org\/wordpress\/de\/2010\/12\/was-ist-eigentlich-device-polling\/","url_meta":{"origin":854,"position":1},"title":"What is device polling","date":"31. Dezember 2010","format":false,"excerpt":"{:de}Bestimmt jeder Data Protector Kunde mit einer Fibre Channel Tape Library hat dieses Problem schon mal wissentlich oder unwissentlich erlebt: ein SCSI Reset w\u00e4hrend einer Sicherung... und das ganze Band ist zerst\u00f6rt. Was war passiert? Das Bandlaufwerk wurde mit\u00a0SCSI Kommandos \u00fcbersch\u00fcttet - das nennt man auch Device Polling. Polling ist\u2026","rel":"","context":"In &quot;Common&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":2},"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":93,"url":"https:\/\/www.data-protector.org\/wordpress\/de\/2010\/07\/corrupt-media-header\/","url_meta":{"origin":854,"position":3},"title":"Corrupt Media Header","date":"5. Juli 2010","format":false,"excerpt":"{:en}No translation for this article available.{:} {:de} Woran erkennt man das ein Band korrupt ist und der Header nicht mehr lesbar ist? Folgende Meldungen k\u00f6nnen ein Indiz daf\u00fcr sein. In der Regel ist ein Restore von solchen B\u00e4ndern nicht mehr m\u00f6glich, einzig das HP lab k\u00f6nnte unter Umst\u00e4nden noch Daten\u2026","rel":"","context":"In &quot;Common&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1424,"url":"https:\/\/www.data-protector.org\/wordpress\/de\/2013\/06\/storeonce-software-store-daily-maintenance\/","url_meta":{"origin":854,"position":4},"title":"StoreOnce Software Store &#8211; daily maintenance","date":"6. Juni 2013","format":false,"excerpt":"{:en}When in Data Protector media of a StoreOnce software store become expired, the used disk space is not released immediately. The disk space will be released once the media is overwritten or deleted. The housekeeping process running in the background to release the space will start only when the media\u2026","rel":"","context":"In &quot;Common&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1360,"url":"https:\/\/www.data-protector.org\/wordpress\/de\/2013\/05\/data-management-business\/","url_meta":{"origin":854,"position":5},"title":"COM IN &#8211; data management for business","date":"8. Mai 2013","format":false,"excerpt":"{:de}Der HP Partner Comline l\u00e4dt am 18.06.2013 nach N\u00fcrnberg zu einer Veranstaltung rund um das Thema Datenmanagement ein. Business IT Alignment, unstrukturierte Daten, Sicherung von Au\u00dfenstellen (Deduplizierung), Archivierung, Enterprise Search, Backup to Cloud, Datensicherheit sind Punkte die w\u00e4hrend der Vortr\u00e4ge besprochen werden und diskutiert werden k\u00f6nnen. Mit der COM IN\u2026","rel":"","context":"In &quot;SCD&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}]}}