Migration Strato HiDrive in OwnCloud

Datenbackups sind wichtig und natürlich halte ich solche auch von allen meinen Daten vor. Diese liegen jedoch auch in meiner Wohnung was zu einem Problem führt, wenn es z. B. dort zu einem Feuer kommt. Sicherlich ist das dann erst einmal mein kleinstes Problem aber was an Daten weg ist, ist einmal weg.

Aus diesem Grund sichere ich meine persönlichen Daten schon seit Jahren extern auf einer sog. Online Festplatte. Zwischenzeitlich wird dies ja Cloudspeicher genannt. Natürlich wächst dieser Datenbestand mit der Zeit was bei mir vor allem auf ein umfangreiches Fotoarchiv zurückzuführen ist. Aktuell bewege ich mich bei einem Datenvolumen bei knapp unter einem Terabyte.

Bisher wurden die Daten auf einem sog. HiDrive des Berliner Anbieters Strato abgelegt. Wer wie ich Daten online speichert, sollte sich hier auch Gedanken über Datensicherheit machen. Dazu gehören auch der Datenstandort und der Sitz der Firma und das somit geltende Recht. Dies sei aber nur am Rande erwähnt. Da ich noch einen alten Vertrag hatte, war dies mit meinem Volumen von 1 TB und 19,95 € relativ günstig. Allerdings hatte Strato hier in den letzten Jahren die Preise enorm angezogen, weshalb jetzt hier ein Upgrade wesentlich mehr kosten würde.

Eine Alternative war der Umstieg auf einen eigenen Server mit der OpenSource Lösung OwnCloud. Server bekommt man ja inzwischen relativ günstig. Die Wartung eines solchen Systems ist für mich auch kein Problem und somit stellte sich nur noch die Frage, wie man am besten die Daten von dem HiDrive in die OwnCloud bekommt.

    1. Ein erneuter Upload: dauert jedoch bei meiner Datenmenge viel zu lange vor allem da ich nur über einen VDSL-Anschluss mit 5 MBit Upload verfügt
    2. Download in die Firma und Upload über den Sync-Client: mit 10 MBit zwar schneller wie Möglichkeit 1 aber immer noch zu langsam
    3. Das WebDav mounten und darauf einen rsync laufen lassen: wäre eine Möglichkeit aber dauert viel zu lang
    4. Rsync direkt ins Filesystem: rsync direkt ins Filesystem und dann die Struktur neu einlesen ist die schnellste Möglichkeit.

Entschieden habe ich mich für die vierte Möglichkeit. Hierbei muss man zwar noch einiges beachten aber an sich funktioniert es. Verwendet wurde die zum Zeitpunk aktuelle Version 4.5.6.

Zuerst habe ich auf meinem Server OwnCloud eingerichtet und meinen Benutzer angelegt. Ich habe hier auch bereits eine Grundordnerstruktur angelegt um die Synchronisation in mehreren Schritten durchführen zu können.

Als nächstes logt man sich auf der Konsole ein und geht in das Verzeichnis in welchen die OwnCloud Daten gespeichert sind. In meinem Fall direkt in das jeweils angelegte Unterverzeichnis und startet dann die Synchronisation der Daten von dem HiDrive:

rsync -rltDzv <Benutzer>@rsync.hidrive.strato.com:/users/<benutzer>/<ggf. Pfad>/ .

Dieser Vorgang kann je nach Umfang mehrere Stunden (oder Tage *gähn*) in Anspruch nehmen. Sind dann endlich alle Daten auf den Server müssen die Dateien noch in das richtige Format konvertiert werden. Das ist notwendig weil sonst aus der Kündigung.pdf nur die Datei K wird. Ein Zugriff oder aber das Löschen dieser Datei ist nicht möglich. Dies geschieht am einfachsten mit dem Programm convmv. Sollte dies nicht installiert sein, so muss man es noch nachinstallieren (bei mir durch ein yum install convmv).

convmv -f iso-8859-15 -t utf8 -r --notest --replace .

 

Dieser Befehl benennt alle Dateien vom iso8859-15 Zeichensatz in den utf-8 Zeichensatz um. Durch den Parameter --notest wird dies sofort ausgeführt! Wer sich die Änderungen erst einmal anschauen möchte, der lässt diesen also einfach weg. Der replace Parameter sorgt noch dafür, dass Doppelt vorkommende Dateien überschrieben werden. Ist also auch mit Vorsicht zu genießen!

Ist dies erledigt muss noch geprüft werden, ob die Dateien dem richtigen Benutzer gehören. Bei mir ist das nicht der Fall. Die Dateien müssen also noch schnell übereignet werden.

chown -R apache:apache .

 

Wenn das alles geschehen ist, logen wir uns in die OwnCloud ein. Wenn noch nicht geschehen, aktivieren wir über Einstellungen, Apps die Application ReScan Filesystem Icon. Neben  Dateien sollte nun ein drehender Pfeil erscheinen und durch einen Klick auf diesen, sollten alle Dateien neu eingelesen werden.

Achtung! Ich habe dies zuerst im Internet Explorer durchgeführt. Dies hat leider nicht funktioniert. In Chrome gab es keinerlei Schwierigkeiten. Auch andere Benutzer haben über ähnliche Probleme geschrieben. Firefox sollte ebenfalls keine Probleme machen.

Wenn der Scan abgeschlossen ist, sollte man je nach Umfang der Dateien der OwnCloud noch etwas Zeit geben. Bei mir braucht trotz entsprechender Hardware die Datenbank noch etwas Zeit bis diese alles sauber aufgebaut hat und wirklich performant läuft.

Sollten die Dateien/Ordner mit einer Größe von 0 angezeigt werden zuerst etwas warten. Manchmal hängt der Datenbankserver vor allem bei großen Datenbeständen etwas hinterher. Wenn sich aber nichts ändert dann geht man in die MySQL Datenbank und leert die Tabelle oc_fscache (TRUNCATE wenn man alleine auf dem System ist) oder aber löscht die Datensätze für seinen User (Spalte user). In der OwnCloud wird dann erst einmal nichts angezeigt. Kurz warten bis der InnoDB Index sauber ist und dann einen Rescan starten. Danach passt es.

Einige Ordner/Dateien ließen sich nicht überreden, sauber angezeigt zu werden (Umlaute). Diese habe ich dann im Dateisystem kurzerhand gelöscht, einen Scan laufen lassen und dann von Lokal diese neu hochgeladen. Das betraff ca. 40 Dateien und 150 MB von knapp 1 TB. Prozentual gesehen vernachlässigbar.

Der Umzug ist somit aber abgeschlossen. Da die Synchronisation bei mir nicht über den OwnCloud Client läuft, habe ich diese in einem anderen Artikel gesondert beschrieben.

Filesystem Rescan in OwnCloud 5/6

Das o. g. Plugin funktionierte prima in OwnCloud Version 4. Für die neueren Versionen 5 und 6 gibt es jedoch auch hier eine Möglichkeit. Die OwnCloud hat hierfür ein Tool auf der Konsole, welche das für einen übernimmt. Möchte man nur die Dateien eines bestimmten Benutzers scanne, so macht man dies wie folgt:

/path/of/owncloud/console.php files:scan Userid

Userid muss hier natürlich durch den Namen des entsprechenden Benutzers ersetzt werden. Möchte man jedoch gleich die komplette OwnCloud Instanz durchlaufen, so ist auch dies möglich.

/path/of/owncloud/console.php files:scan --all

Kommentare:

Kommentar von maxe |

Voorsicht, zumindest bei Ubuntu ist es anstatt Apache WWW-data:www-data :)

Kommentar von Tobias |

Stimmt. Aber solche Spielzeug Distributionen berücksichtigen wir ja nicht ;-)

Was ist die Summe aus 8 und 9?