Leitfaden: Migration vom Object Storage (EOL) zu Object Storage 2.0

Leitfaden: Migration vom Object Storage (EOL) zu Object Storage 2.0

Der neue Object Storage 2.0 von Timme Hosting ist eine moderne, S3-kompatible Speicherlösung mit verbesserter Performance und Skalierbarkeit. Wenn Sie derzeit noch den alten Object Storage (EOL) nutzen, können Sie mit diesem Leitfaden schrittweise auf den neuen Object Storage 2.0 umsteigen, ohne Datenverlust und mit minimaler Unterbrechung. Grundsätzlich besteht die Migration aus zwei Hauptschritten:

  1. Übertragen aller Daten vom alten auf den neuen Object Storage und
  2. Anpassen der Konfiguration Ihrer Anwendung auf den neuen Object Storage.

Im Folgenden erläutern wir diese Schritte. Als Beispiel dient Shopware 6, aber die Vorgehensweise ist für andere Systeme ähnlich. Sie müssen ggf. die Konfigurationsdateien Ihrer eigenen Anwendung entsprechend anpassen.

Voraussetzungen

Bevor Sie beginnen, stellen Sie bitte Folgendes sicher:

  • SSH-Zugang: Sie benötigen Zugriff per SSH (Shell) auf den Server, auf dem Ihre Anwendung läuft (z.B. Ihr Webhosting-Paket oder Server). Falls noch nicht vorhanden, richten Sie einen Shell-Benutzer ein (siehe Anleitung „Shell-Benutzer anlegen“).
  • Neuer Object Storage 2.0: Bestellen Sie einen Object Storage 2.0 und legen Sie dort mindestens einen Bucket an
  • Alter Object Storage (EOL): Ihr bisheriger Object Storage sollte weiterhin erreichbar sein, bis die Migration abgeschlossen ist.
  • Zugangsdaten: Sammeln Sie für beide Object Storages die nötigen Zugangsdaten. Dazu gehören jeweils: S3-Endpunkt/Whitelabel-Hostname, Bucket-Name, Access Key ID (Access-Key) und Secret Access Key (Secret). Diese Informationen finden Sie im Timme Hosting Kundencenter unter Mein Konto → Meine Object Storages. Auf der Übersichtsseite des jeweiligen Object Storages stehen der S3-Endpunkt (bzw. der Whitelabel-Hostname) und unter dem Reiter Buckets der Bucket-Name. Die Access/Secret Keys erhalten Sie unter dem Reiter Benutzer beim entsprechenden Benutzer. Notieren Sie sich alle diese Werte für den alten und den neuen Object Storage.

Schritt 1: Vorbereitung der Migration

Bucket im neuen Object Storage anlegen

Öffnen Sie das Timme Hosting Kundencenter und navigieren Sie zu Mein Konto → Meine Object Storages, um Ihren neuen Object Storage 2.0 zu verwalten. Legen Sie hier einen Bucket an (sofern nicht bereits vorhanden) oder verwenden Sie den standardmäßig angelegten Bucket. Wählen Sie einen eindeutigen Namen für den Bucket und vergeben Sie ggf. eine Beschreibung. Achten Sie darauf, die Bucket-Policy passend einzustellen, also public für öffentlich zugängliche Dateien (z.B. Bilder im Onlineshop) oder private für nicht-öffentliche Daten.

Öffnen Sie den Reiter Buckets und wählen Sie den neu erstellen Bucket aus. Stellen Sie dann die Policy per Dropdown auf public oder private ein (je nach benötigter Zugriffsart) und speichern Sie die Änderung.

Hinweis: Bei einem public-Bucket können Dateien von jedem gelesen werden (Schreibzugriff bleibt aber auf berechtigte Nutzer beschränkt), wohingegen bei private-Buckets alle Zugriffe nur mit gültigen Zugangsschlüsseln erfolgen. Stellen Sie im Zweifel die gleiche Policy ein, die auch Ihr alter Object Storage genutzt hat, damit sich das Verhalten Ihrer Anwendung nicht ändert.

Zugangsdaten für rclone konfigurieren

Als nächstes erstellen wir eine Konfiguration für das Tool rclone, mit dem die Datenübertragung erfolgt. Rclone ist auf Servern von Timme Hosting bereits vorinstalliert und muss nur noch mit den Zugangsdaten beider Object Storages eingerichtet werden. Melden Sie sich per SSH auf Ihrem Server an und legen Sie die Datei /var/www/ihredomain.tld/private/rclone.conf an. Tragen Sie in diese Datei die Zugangsdaten beider Object Storages ein:

[OS1]                # alter Object Storage (EOL)
type = s3
provider = Minio
env_auth =
access_key_id = XXXXXXXXXXXXXXXXXXXX        # Access Key (alt)
secret_access_key = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX   # Secret (alt)
endpoint = https://[Alter-OS-Endpoint]     # z.B. os1.meinecloud.io
acl = 

[OS2]                # neuer Object Storage 2.0
type = s3
provider = Other
access_key_id = YYYYYYYYYYYYYYYYYYYY        # Access Key (neu)
secret_access_key = YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY   # Secret (neu)
endpoint = https://[Neuer-OS-Endpoint]     # z.B. os-abcde-123456.meinecloud.io
acl = 

Speichern Sie die Datei anschließend ab. Die Bezeichnungen in eckigen Klammern ([OS1] und [OS2]) dienen als Remote-Namen in rclone und können frei gewählt werden. Wir verwenden hier OS1/OS2 der Einfachheit halber. Die obigen Einstellungen teilen rclone mit, wo und wie es auf die S3-Buckets zugreifen kann. Sobald diese Konfiguration erstellt ist, können wir mit rclone auf beide Storages zugreifen.

Schritt 2: Übertragung der Daten mit rclone

Jetzt kopieren wir alle Dateien vom alten Object Storage (EOL) in den neuen Object Storage 2.0. Hierfür nutzen wir den Befehl rclone sync, der zwei Speicherziele synchronisiert. Je nach Datenmenge kann dieser Vorgang einige Zeit dauern, unter Umständen mehrere Stunden bei sehr vielen oder großen Dateien. Sie können den Prozess auch in einer separaten screen-Session oder im Hintergrund laufen lassen (z.B. über Nacht), damit er bei einem Abbruch nicht verloren geht und Ihr Terminal frei bleibt. Sie können die Synchronisation per SSH im Hintergrund starten, Ihre Anwendung wird nicht beeinträchtigt:

rclone --config=/var/www/<IHRE-DOMAIN.TLD>/private/rclone.conf sync -I -P OS1:<BUCKET1> OS2:<BUCKET2>
  • Die Platzhalter <BUCKET1> und <BUCKET2> müssen je durch die Namen der Buckets im alten und neuen Object Storage ersetzt werden.
  • Mit dem Parameter -I werden ausnahmslos alle Daten übertragen.
  • Der Parameter -P zeigt den Fortschritt an.
  • OS1:<BUCKET1> an erster Stelle ist die Quelle, OS2:<BUCKET2> an zweiter Stelle das Ziel.

Wichtiger Hinweis: Sollte es über den Zeitraum der Datenübertragung Änderungen an den Daten im Object Storage gegeben haben (Bilder oder Artikel hinzugefügt, modifiziert, gelöscht, etc.), müssen die Daten noch einmal synchronisiert werden. Um sicherzustellen, dass beide Object Storages zum Wechsel auf dem gleich Stand sind, schalten Sie im ISPConfig den Wartungsmodus auf Website-Ebene ein. Unsere Anleitung hilft Ihnen dabei. Nun synchronisieren Sie erneut:

rclone --config=/var/www/<IHRE-DOMAIN.TLD>/private/rclone.conf sync --checksum -P OS1:<BUCKET1> OS2:<BUCKET2>

Der zweite Durchlauf sollte deutlich schneller sein als der erste. Anhand von Checksummen und Dateigrößen werden nur fehlende oder geänderte Dateien übertragen. Sobald dieser Vorgang beendet ist, befinden sich alle Ihre Daten im Object Storage 2.0.

Wenn Sie sich nicht sicher sind, dass im Object Storage ausschließlich statische Daten liegen und diese sich nicht geändert haben, empfehlen wir die Nachsynchronisierung im Wartungsmodus durchzuführen.

Schritt 3: Konfiguration der Anwendung anpassen

Im letzten Schritt stellen Sie Ihre Anwendung von der alten auf die neue Object Storage-Verbindung um. Das bedeutet: Ersetzen Sie die alten Zugangsdaten durch die neuen an den entsprechenden Stellen der Konfigurationsdateien Ihrer Software. Meist müssen vier Werte angepasst werden: Access Key, Secret Key, Bucket-Name und Endpoint/Hostname des Object Storage. Suchen Sie in der Konfiguration Ihrer Anwendung nach Einträgen, die auf den bisherigen Object Storage verweisen (ggf. anhand des Bucket-Namens oder der alten Endpoint-URL erkennbar) und aktualisieren Sie diese auf die Werte des neuen Object Storage 2.0.

Wichtig: Führen Sie diesen Konfigurationswechsel erst durch, nachdem die Datensynchronisation aus Schritt 2 abgeschlossen ist. Andernfalls würde Ihre Anwendung auf einen (noch) leeren Bucket zeigen. Stellen Sie außerdem sicher, dass Sie Zugriff auf die Konfiguration haben (z.B. per FTP/SSH oder über das Backend der Anwendung). Fertigen Sie am besten vor Änderungen ein Backup der betreffenden Konfigurationsdatei an.

Schalten Sie nun den Wartungsmodus wieder ab, sofern Sie diesen für die Synchronisierung und die Umstellung aktiviert hatten.

Beispiel: Migration bei Shopware 6

Bei einer Shopware 6-Installation sind die Object Storage-Zugangsdaten typischerweise in der Datei .env.local im Hauptverzeichnis des Shops hinterlegt. Suchen Sie dort den Block mit den Einträgen für den Object Storage (beginnt meist mit OS_...). Ersetzen Sie alle Werte durch die Daten Ihres neuen Object Storage 2.0 - insbesondere OS_ACCESS_KEY_ID, OS_SECRET_ACCESS_KEY, OS_DOMAIN (S3-Endpoint oder Whitelabel-Hostname) sowie OS_BUCKET. Achten Sie darauf, die Syntax beizubehalten (keine Anführungszeichen hinzufügen oder entfernen, etc.). Speichern Sie die Änderungen anschließend ab. Tipp: Legen Sie vor dem Editieren eine Sicherungskopie der bisherigen .env.local an, um bei Bedarf schnell zurück wechseln zu können.

Da Shopware 6 statische Medien (Bilder usw.) direkt aus dem Object Storage lädt, ist in der Regel keine Ausfallzeit nötig und Ihre Seite kann während der Migration online bleiben. Wichtig ist nur, dass während der Datenübertragung keine neuen Medien hochgeladen oder gelöscht werden (siehe Hinweis oben), damit kein Standverlust entsteht. Nachdem Sie die .env.local-Datei angepasst haben, übernimmt Shopware beim nächsten Zugriff die Dateien aus dem neuen Object Storage.

Abschließend müssen Sie in Shopware noch den Cache leeren und das Theme neu kompilieren, damit alle Änderungen wirksam werden. Dies können Sie entweder über die Shopware-Administration tun (Im Menü Einstellungen → Caches & Indizes leeren sowie im Theme-Manager das Theme neu zuweisen/kompilieren) oder per SSH-Konsole:

php /var/www/ihredomain.de/web/bin/console cache:clear
php /var/www/ihredomain.de/web/bin/console theme:compile

Nach dem erfolgreichen Kompilieren sollten Sie prüfen, ob Ihre Shopware-Seite nun wie gewohnt funktioniert und die Medien aus dem neuen Object Storage geladen werden. Kontrollieren Sie z.B., ob Produktbilder und Uploads angezeigt werden und ggf. neu hochgeladene Medien im richtigen (neuen) Bucket landen. Wenn alles in Ordnung ist, können Sie den Wartungsmodus der Website wieder aufheben. Die Migration ist abgeschlossen und Ihre Anwendung nutzt nun den Object Storage 2.0.

Weitere nützliche Anleitungen

Zur Vertiefung und für spezielle Anwendungsfälle finden Sie hier weitere Ressourcen:

Geschafft! Sie haben Ihre Dateien vom alten Object Storage (EOL) auf den neuen Object Storage 2.0 migriert!

Finden Sie den passenden Tarif

Unser Tarifberater hilft Ihnen dabei, das passende Paket zu finden. Bei Fragen berät Sie unser Sales-Team sehr gerne unter +49 (0) 4131 / 22 78 1-25 oder sales@timmehosting.de.

Bitte beachten Sie: Der Tarifberater dient nur der groben Orientierung. Ihr tatsächlicher Bedarf kann durch den Ressourcenbedarf Ihrer Anwendung(en), tageszeitabhängige/saisonale/aktionsbedingte Schwankungen des Besucheraufkommens, geplantes Wachstum und weitere Faktoren von der Empfehlung abweichen.

  • 1
  • 2
  • 3
  • 4
  • 5

Was möchten Sie hosten?

Möchten Sie einen oder mehrere Shops hosten? (Eine Multishop-Installation gilt als ein Shop.)

Möchten Sie eine oder mehrere Websites hosten? (Eine Multisite-Installation gilt als eine Website.)

Wieviele Besucher haben Sie insgesamt pro Tag?

Wieviele Besucher haben Sie insgesamt pro Tag?

Wieviele Besucher haben Sie insgesamt pro Tag?

Wieviele Artikel haben Sie insgesamt in Ihrem Shop/Ihren Shops (inkl. Varianten)?

Wieviele Artikel haben Sie insgesamt in Ihrem Shop/Ihren Shops (inkl. Varianten)?

Wieviel Speicherplatz benötigen Sie insgesamt?

Wieviel Speicherplatz benötigen Sie insgesamt?

Wieviel Speicherplatz benötigen Sie insgesamt?

Wir empfehlen Ihnen folgende Lösungen:

ScaleServer oder Web Hosting

Zu den ScaleServer Paketen Zu den Web Hosting Paketen

Wir empfehlen Ihnen folgende Lösungen:

ScaleServer oder Shop Hosting

Zu den ScaleServer Paketen Zu den Shop Hosting Paketen

Wir empfehlen Ihnen folgende Lösungen:

Managed vServer oder ScaleServer

Zu den Managed vServer Paketen Zu den ScaleServer Paketen

Wir empfehlen Ihnen folgende Lösungen:

Managed Server oder ScaleServer

Zu den Managed Server Paketen Zu den ScaleServer Paketen

Wir empfehlen Ihnen unsere

Managed Server

Zu den Managed Server Paketen