{"id":461,"date":"2012-07-23T07:39:16","date_gmt":"2012-07-23T06:39:16","guid":{"rendered":"https:\/\/www.kolja-engelmann.de\/blog\/?p=461"},"modified":"2012-07-23T07:39:16","modified_gmt":"2012-07-23T06:39:16","slug":"multipar-widerherstellungsdaten-fur-dateiubertragungen","status":"publish","type":"post","link":"https:\/\/www.kolja-engelmann.de\/blog\/2012\/07\/multipar-widerherstellungsdaten-fur-dateiubertragungen\/","title":{"rendered":"Multipar &#8211; Widerherstellungsdaten f\u00fcr Datei\u00fcbertragungen"},"content":{"rendered":"<p>Letztes Jahr kam es des \u00d6fteren vor, dass ich gebeten wurde die eine oder andere virtuelle Maschine oder eine Menge an Videos, jemandem auf der anderen Seite der Erde zur Verf\u00fcgung zu stellen. Bei Datenmengen weit jenseits der 50 GB, wurden die Dateien nat\u00fcrlich komprimiert und dann auf einem FTP-, Web- oder Fileserver zur Verf\u00fcgung gestellt. Eigentlich h\u00e4tte die Datei\u00fcbertragung, so lange sie auch immer gedauert hat, fehlerfrei \u00fcbertragen werden m\u00fcssen. Daf\u00fcr garantieren schlie\u00dflich schlaue Protokolle. Leider kamen die Daten dennoch korrumpiert an ihrem Zielort an, so dass sie nicht erfolgreich entpackt werden konnten. Tagelange Daten\u00fcbertragung f\u00fcr die Katz. Wo auch immer der Fehler lag &#8211; in der schlechten Internetleitung des Ziels, einer fehlerhaften Encodierung oder kosmischer Urstrahlung &#8211; eine L\u00f6sung musste her und die hie\u00df nicht &#8222;\u00fcbertrag doch einfach nochmal&#8220;. Die Tauschb\u00f6rsianer und Usenetkundigen kennen die L\u00f6sung des Problems, auch wenn sie sie vielleicht noch nicht wirklich wahrgenommen haben: Parity &#8211; Parit\u00e4t oder Wiederherstellungsinformationen. Das sind Archive, die Wiederherstellungsinformationen f\u00fcr Dateien (genauer gesagt eher eine forward error correction) durch die Anwendung des <a href=\"http:\/\/de.wikipedia.org\/wiki\/Reed-Solomon-Code\" target=\"_blank\">Reed-Solomon-Codes<\/a> enthalten. Mittels dieser .par Dateien reparieren heutzutage die meisten Filesharing- oder auch Download Clients die Dateien bei Fehlern vollautomatisch. Aber wie kann man sie erstellen?<\/p>\n<div id=\"attachment_463\" style=\"width: 510px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/www.kolja-engelmann.de\/blog\/wp-content\/uploads\/2012\/07\/MultiPar_Screenshot.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-463\" class=\"size-large wp-image-463\" title=\"MultiPar Screenshot\" src=\"https:\/\/www.kolja-engelmann.de\/blog\/wp-content\/uploads\/2012\/07\/MultiPar_Screenshot-500x419.png\" alt=\"\" width=\"500\" height=\"419\" srcset=\"https:\/\/www.kolja-engelmann.de\/blog\/wp-content\/uploads\/2012\/07\/MultiPar_Screenshot-500x419.png 500w, https:\/\/www.kolja-engelmann.de\/blog\/wp-content\/uploads\/2012\/07\/MultiPar_Screenshot-300x251.png 300w, https:\/\/www.kolja-engelmann.de\/blog\/wp-content\/uploads\/2012\/07\/MultiPar_Screenshot.png 646w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><p id=\"caption-attachment-463\" class=\"wp-caption-text\">MultiPar Screenshot<\/p><\/div>\n<p>F\u00fcr Windows Nutzer gab es bis vor Kurzem nur die M\u00f6glichkeit Kommandozeilentool par2cmdline oder <a href=\"http:\/\/www.quickpar.org.uk\/\" target=\"_blank\">Quickpar<\/a> zu nutzen. Diese Programme implementieren den aktuellen PAR2 Standard zuverl\u00e4ssig, arbeiten jedoch langsam und nutzen bei weitem nicht die M\u00f6glichkeiten aktueller Prozessoren. Besser ist da <a href=\"http:\/\/hp.vector.co.jp\/authors\/VA021385\/\" target=\"_blank\">MultiPar<\/a>, welches vom Japaner Yutaka Sawada entwickelt wird. Das Quickpar wie ein Ei dem Anderen \u00e4hnelnde Programm l\u00e4sst den Benutzer beliebige Dateien ausw\u00e4hlen und einen Prozentsatz der Redundanz bestimmen. Damit k\u00f6nnen bei fehlerhafter \u00dcbertragung genau soviel Prozent der Slices (jede Datei wird bei der Behandlung mit PAR2 in Slices vorgegebener Gr\u00f6\u00dfe geteilt) repariert oder sogar vollst\u00e4ndig ersetzt werden, wie man vorher sich an Redundanz zugestanden hat. Den Geschwindigkeitsvorteil von MultiPar gegen\u00fcber QuickPar bemerkt man zwar erst so recht ab einer Menge an zu bearbeitenden Daten, aber dann zieht MultiPar unaufhaltsam davon :-).<\/p>\n<h3>Fazit<\/h3>\n<p>Den Mehraufwand bei der Erzeugung von Wiederherstellungsdaten sollte man bei gro\u00dfen Datei\u00fcbertragungen oder auch bei der Archivierung von Daten auf optischen Medien durchaus mal durch den Kopf gehen lassen. Besser als alles neu zu \u00fcbertragen oder Dateien auf Grund irgendwelcher Lagerungsfehler zu verlieren wiegen diese paar Minuten Prozessorzeit allemal auf! Wer dennoch lieber eine Kommandozeilenanwendung h\u00e4tte, der sollte sich mal <a href=\"http:\/\/paulhoule.com\/phpar2\/index.php\" target=\"_blank\">phpar2<\/a> ansehen. Zwar wurde das Programm seit 2010 nicht weiter entwickelt, aber immerhin ist es Multithreading-f\u00e4hig und laut Webseite &#8222;hochoptimiert&#8220;.<\/p>","protected":false},"excerpt":{"rendered":"<p>Letztes Jahr kam es des \u00d6fteren vor, dass ich gebeten wurde die eine oder andere virtuelle Maschine oder eine Menge an Videos, jemandem auf der anderen Seite der Erde zur Verf\u00fcgung zu stellen. Bei Datenmengen&#46;&#46;&#46;<\/p>\n","protected":false},"author":1,"featured_media":463,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[10],"tags":[50],"class_list":["post-461","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tools","tag-fehlerkorrektur"],"jetpack_featured_media_url":"https:\/\/www.kolja-engelmann.de\/blog\/wp-content\/uploads\/2012\/07\/MultiPar_Screenshot.png","jetpack_sharing_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/posts\/461","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/comments?post=461"}],"version-history":[{"count":0,"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/posts\/461\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/media\/463"}],"wp:attachment":[{"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/media?parent=461"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/categories?post=461"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/tags?post=461"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}