Owncloud-zu-Nextcloud Server-zu-Server Umzug mit Datenmitnahme

In der letzten Woche habe ich einen aufgeregten Kunden am Telefon gehabt. Dieser erklärte mir, dass die von ihm gepflegte OwnCloud-Instanz nicht mehr funktionieren würde. Es ist kein Login mehr möglich. Obwohl die Logindaten korrekt waren, wurde er mit der Fehlermeldung, er hätte sich zu lange Zeit gelassen, nicht eingeloggt.

Nach kurzer Suche war klar, dass der Server mit dessen ~60 Nutzern auf 100% Speicherverbrauch lief. Der MariaDB Server konnte keine Daten mehr schreiben und der Login war dann auch nicht mehr möglich.

Was also tun? Da der Speicherplatz sich nicht erweitern lies und somit auch ein Update auf eine aktuelle Version nicht möglich war - ein Snapshot gab es auch nicht, da es sich um echte Hardware handelete, die schon einige Jahre auf dem Buckel hatte - kam nur die Migration auf eine neue Installation in Frage.

Für den Umzug vom vollen OwnCloud-Server gab es zwei Möglichkeiten:

Die erste Möglichkeit war alle Dateien zu kopieren und danach auf dem alten Server zu löschen, um so ausreichend Platz für ein Datenbankbackup zu haben. Dieses wird dann auf dem neuen Server eingespiel.

Die zweite Möglichkeit war einen neuen Server aufzusetzen und die User unabhängig vom System zu übertragen.

Da der Kunde zu Nextcloud wechseln wollte, bot sich die zweite Variante an, da ein Upgrade einer 10er OwnCloud-Version auf eine aktuelle 18er Nextcloud-Version nicht ohnen weiteres Möglich gewesen wäre bzw. mehr Arbeit gemacht hätte als nötig war. Die Nutzer nutzen nämlich die Cloud nur als Backup. Es gab also keine Freigaben oder gemeinsame Ordner. Ideal also für die zweite Variante.

Der neue Server sollte auch gleich eine neue Domain bekommen, die sich in die Netzstruktur besser eingliederte (diese OwnCloud war wirklich eine ziemliche Altlast).

Das Setup des neuen Servers bzw. die Installation der neuen Nextcloud-Instanz war schnell erledigt. Da auch der Data Exporter nicht zu aktivieren war, wurde nun Handangelegt. Zuerst galt es die Dateien der User bzw. die User an sich zu kopieren. Dazu exportiere ich dei Users-Tabelle aus der alten Datenbank. Vorher machte ich noch ein paar Megabyte frei. Danach ging es an das Filesystem. Um die Daten zu übertragen nutzte ich rsync.

Zuerst erstellte ich mir auf dem neuen Server einen neuen SSH-Key (vorher cd /home/) ssh-keygen -t rsa -b 4096 -f sshkey. Das war notwendig, da auf dem alten Owncloud-Server kein Login mit dem Passwort möglich war (hätte zu Not natürlich auch geändert werden können, aber da ich das System aus "Backup-Gründen" nicht umkonfigurieren wollte, lies ich es). Den Public-Key kopierte ich in die “authorized_keys"-Datei auf dem alten Server (ja, dafür war noch Platz). Danach führt ich den folgenden Befehl aus: nohup rsync --progress -avW -t -e "ssh -i /home/sshkey -p 2992" root@xx.xx.xx.xx:/var/www/owncloud/data/ /var/www/virtual/nextcloud/data/ &.

Mit nohupstellte ich sicher, dass die Aufgabe auch durchgeführt wird, wenn ich mich abmelde. Mit tail -f / home/nohup.datkonnte ich die aktuelle Übertragung schauen, die einige Stunden lief (es waren 4,2 Terrabyte an Daten).

Nachdem die Daten übertragen waren (und die Nutzer im System), führte ich den Befehl php occ files:scan --all aus. Dieser lies die Dateien im Dateisystem ein und fügte diese dem eigentlichen Server hinzu.

Danach ging es darum die Clients der Nutzer zu updaten. Die Desktop App von Owncloud (und Nextcloud) speichert die Konfiguration im lokalen Datensystem ab. Entsprchend dort die neue Server-Url eingegeben und das Programm neugestartet. Das ganze über ein Powershell-Script, welches in der Domain ausgerollt wurde. Der Nutzer musste nur noch das - ihm bekannte - Passwort einmal eingeben. Schon war der Umzug abgeschlossen.

Es wurden noch keine Kommentare verfasst, sei der erste!