So verwalten Sie Backups in der Cloud mit Duplicacy

Einführung

Duplicacy ist ein plattformübergreifendes Sicherungstool, das eine Reihe von Funktionen bietet - einschließlich inkrementeller Sicherungen, gleichzeitiger Sicherung und clientseitiger Verschlüsselung -, die darauf abzielen, den Prozess der Datensicherung in der Cloud zu optimieren. Die Linux-Version der Befehlszeilenschnittstelle (CLI) ist für den persönlichen Gebrauch kostenlos, erfordert jedoch eine kostenpflichtige Lizenz für gewerbliche Benutzer. Darüber hinaus ist Duplicacy für MacOS und Windows mit einer grafischen Oberfläche verfügbar. Für diese Version müssen sowohl private als auch gewerbliche Benutzer eine Lizenz bezahlen.

Duplicacy basiert auf der Idee vonlock-free deduplication und wurde entwickelt, um Backups für eine Vielzahl von Cloud-Speicherdiensten sicher zu verwalten. Wenn ein Duplicacy-Client einen neuen Block erstellt und speichert, können andere Clients, die denselben Speicherbereich verwenden, feststellen, dass der Block bereits vorhanden ist, und ihn daher nicht erneut hochladen. Auf diese Weise können separate Clients identische Daten gemeinsam nutzen und sichern, ohne dass zusätzliche Anstrengungen zur Verfolgung von Sicherungen erforderlich sind.

Dieses Lernprogramm bietet einen allgemeinen Überblick über die Installation der CLI-Version von Duplicacy und die Verwaltung eines typischen Datensicherungsprozesses mit einem DigitalOcean Space. Wir zeigen auch, wie Sie ein freigegebenes Repository von mehreren Droplets auf demselben Space sichern und wie Sie Snapshots auf mehreren Spaces sichern, um die Datensicherheit zu erhöhen.

Voraussetzungen

Um diesem Tutorial folgen zu können, benötigen Sie:

  • Two Ubuntu 16.04 Droplets konfiguriert mit unsereninitial server setup guide. Sie können Ihre Server beliebig benennen. Um die Übersichtlichkeit zu gewährleisten, werden sie in diesem Lernprogramm alsserver-01 undserver-02 bezeichnet.

  • Two DigitalOcean Spaces. Anweisungen zur Inbetriebnahme finden Sie in unserenIntroduction to DigitalOcean Spaces.

  • An Access key and a Secret key for your Spaces. Um diese zu generieren, besuchen SieAPI page in der DigitalOcean-Systemsteuerung.

Mit diesen Voraussetzungen können Sie Duplicacy installieren.

Duplicacy installieren

Die neueste Duplicacy CLI-Version kann mitwget von denDuplicacy GitHub repository heruntergeladen werden (für persönliche Benutzer ist keine Lizenz erforderlich).

Führen Sie die folgenden Befehle aufboth server-01 and server-02 aus, um Duplicacy auf jeden von ihnen herunterzuladen (wobei Sie den Download-Link durch den der neuesten Version ersetzen):

sudo wget -O /opt/duplicacy https://github.com/gilbertchen/duplicacy/releases/download/v2.0.10/duplicacy_linux_x64_2.0.10

Erstellen Sie als Nächstes innerhalb von/usr/local/bin eine symbolische Verknüpfung zwischen dem Download-Speicherort und einem neuen Verzeichnis:

sudo ln -s /opt/duplicacy /usr/local/bin/duplicacy

Machen Sie schließlichduplicacy ausführbar:

sudo chmod 0755 /opt/duplicacy

Duplicacy sollte jetzt auf jedem Ihrer Droplets installiert sein und Sie können es jetzt für die Verwendung Ihres Space konfigurieren.

Repository initialisieren und Duplizierung konfigurieren

Durch die Duplizierung werden Daten auf Verzeichnisebene gesichert. Bevor Sie also mit dem Hochladen von Dateien in Ihren Space beginnen können, müssen diese mit einem bestimmten Verzeichnis oder Repository auf beiden Droplets verknüpft sein. Dazu müssen Sie ein Projekt-Repository erstellen und es mit dem Befehlinitvon Duplicacy initialisieren.

Der Befehlinit akzeptiert die folgende Syntax:

duplicacy init repository_id s3://region@endpoint/space_name
  • repository_id: Dies ist die Bezeichnung, die von Duplicacy verwendet wird, um zwischen verschiedenen Repositorys zu unterscheiden. Wenn Sie dasselbe Repository aus mehreren Quellen sichern möchten (wie im nächsten Schritt dieses Lernprogramms beschrieben), sollte die Repository-ID für beide Droplets identisch sein.

  • region:region ist der Name der Region, in der sich Ihr Droplet befindet.

  • endpoint: Ein Endpunkt ist ein statischer Speicherort, der von serverseitigen Web-APIs verwendet wird, um anzugeben, wo bestimmte Ressourcen gefunden werden. Bei DigitalOcean Spaces ist der Endpunkt die Region, gefolgt von.digitaloceanspaces.com, wie innyc3.digitaloceanspaces.com. Der Endpunktname Ihres Space kann auch direkt aus der Spaces-Systemsteuerung auf der Registerkarte "Einstellungen" kopiert werden.

  • space_name: Dies ist der Name Ihres Space, der bei seiner Erstellung angegeben wurde. Beachten Sie, dass dies nicht die URL Ihres Space ist. Wenn die URL Ihres Spacehttps://example_space.nyc3.digitaloceanspaces.com lautet, lautet der Name nurexample_space.

Wenn Sie möchten, dass Ihre Backups in einen bestimmten Ordner in Ihrem Space verschoben werden, fügen Sie den Namen des Ordners nach dem Namen Ihres Space hinzu, wenn Sie den Befehlinitausführen. Denken Sie dabei daran, dem Ordnernamen einen abschließenden Schrägstrich zu folgen:

duplicacy init repository_id s3://region@endpoint/space_name/folder_name/

Sobald Sie diese Details zur Hand haben, können Sie mit dem Befehlmkdir ein Repository-Verzeichnison each of your Droplets erstellen. Navigieren Sie danach mitcd in Ihre neuen Repositorys:

mkdir project-repository
cd project-repository/

Führen Sie mitproject-repository/ als Arbeitsverzeichnis den folgenden Befehlinit fürserver-01 aus. Achten Sie darauf, die hervorgehobenen Werte durch Ihre eigenen Daten zu ersetzen:

duplicacy init project_01 s3://[email protected]/example_space

Es ist erwähnenswert, dass Sie die Verschlüsselung mit Duplikat aktivieren können, indem Sie die Option-e mit dem Befehlinit wie folgt verwenden:

duplicacy init -e project_01 s3://[email protected]/example_space

Wenn die Verschlüsselung aktiviert ist, werden Sie von Duplicacy jedes Mal zur Eingabe Ihres Verschlüsselungskennworts aufgefordert, wenn Sie es für die Interaktion mit Ihrem Space verwenden.

Sobald der Befehlinitausgeführt wird, werden Sie von Duplicacy aufgefordert, Ihre Zugriffs- und Geheimschlüssel einzugeben, die von denAPI page der Systemsteuerung kopiert werden können.

OutputEnter S3 Access Key ID:ExampleAccessKeyGBBI
Enter S3 Secret Access Key:ExampleSecretKeyEC1wnP2YiHobVcSBaZvLoFXXlnA

Und es wird Folgendes ausgegeben:

Output/home/sammy/project-repository will be backed up to s3://[email protected]/example_space with id project_01

Wenn Sie den Befehlinit ausführen, wird in Ihrem Repository ein Verzeichnis mit dem Namen.duplicacy/ erstellt, das eine Datei mit dem Namenpreferences enthält. Diese Datei enthält Informationen zu Ihrem Space sowie alle von Ihnen angegebenen Verschlüsselungs- oder Speicheroptionen. Wenn Sie zu einem späteren Zeitpunkt Änderungen an Ihrer Duplizitätskonfiguration vornehmen möchten, können Sie diepreferences-Datei entweder direkt bearbeiten oder löschen. Die Datei wird neu erstellt, wenn Sie das nächste Mal den Befehlinit in diesem Repository ausführen.

Wiederholen Sie nun den Befehliniton your second Droplet:

duplicacy init project_01 s3://[email protected]/example_space

Nachdem Sie Ihre Zugriffsschlüssel erneut hinzugefügt haben, sehen Sie eine etwas andere Ausgabe als bei Ihrem ersten Droplet:

OutputThe storage 's3://[email protected]/example_space' has already been initialized
Compression level: 100
Average chunk size: 4194304
Maximum chunk size: 16777216
Minimum chunk size: 1048576
Chunk seed: 6475706c6963616379
/home/sammy/project-repository will be backed up to s3://[email protected]/example_space with id project_01

Die Repositorys beider Server sind jetzt initialisiert. Möglicherweise möchten Sie jedoch noch einen Schritt ausführen, um die Duplizierung zu konfigurieren. So wie es aussieht, werden Sie von Duplicacy jedes Mal zur Eingabe Ihrer Zugangs- und Geheimschlüssel aufgefordert, wenn Sie Ihre Daten sichern, was ziemlich schnell mühsam werden würde. Um dies zu vermeiden, können Sie den Befehlsetvon Duplicacy verwenden, um die Anmeldeinformationen Ihres Space in diepreferences-Datei von Duplicacy zu schreiben. Führen Sie die folgenden Befehleon each of your servers aus, damit Duplicacy Ihre Zugriffs- bzw. Geheimschlüssel speichert:

duplicacy set -key s3_id -value ExampleAccessKeyGBBI
duplicacy set -key s3_secret -value ExampleSecretKeyEC1wnP2YiHobVcSBaZvLoFXXlnA

Sie können jetzt Duplicacy verwenden, um die Repositorys Ihrer Droplets in einem Ihrer Spaces zu sichern!

Ein Repository aus mehreren Quellen sichern

Verteilte Teams können von unauffälligen Cloud-Backup-Lösungen profitieren, die Dateikonflikte und Datenverlust verhindern. Durch das Erstellen eines Snapshots eines gesamten Repositorys und das Hochladen in einen Space mit einem einzigen Befehl optimiert Duplicacy die Sicherungen und vermeidet Dateikonflikte auf mehreren Computern.

Verwenden Sietouch, um die Sicherungsfunktionalität von Duplicacy zu testen, und füllen Sie dieproject-repositoryon each of your Droplets mit einigen Dummy-Dateien:

touch /project-repository/file-1.txt
touch /project-repository/file-2.txt

Verwenden Sie als Nächstes unterserver-01 den Befehlbackupvon Duplicacy, um einen Snapshot Ihres Repositorys zu erstellen und in Ihren Space hochzuladen. Da Sie Ihr Repository mit nur einem Speicherort initiiert haben, müssen Sie keine weiteren Optionen angeben, um Ihre Dateien zu sichern:

duplicacy backup

Die resultierende Ausgabe sollte ungefähr so ​​aussehen:

OutputNo previous backup found
Indexing /home/mark/project-repository
Listing all chunks
Packed file-1.txt (0)
Packed file-2.txt (0)
Backup for /home/sammy/project-repository at revision 1 completed

Versuchen Sie nun, Ihr Repository vonserver-02 zu sichern:

duplicacy backup
OutputLast backup at revision 1 found
Indexing /home/sammy/project-repository
Backup for /home/sammy/project-repository at revision 2 completed

Da die Repositorys fürserver-01 undserver-02 identisch waren, hat Duplicacy keine Dateien wie beim Ausführen des Befehlsbackup auf Ihrem ersten Droplet gepackt. Um zu sehen, was passiert, wenn Sie einen etwas anderen Snapshot sichern, öffnen Sie eine der Dummy-Dateien aufserver-02 und fügen Sie Text hinzu:

nano file-1.txt

project-repository/file-1.txt

The quick brown fox jumped over the lazy dogs.

Speichern und schließen Sie die Datei, indem SieCTRL - X,Y, dannENTER eingeben und den Befehlbackup erneut ausführen:

duplicacy backup
OutputStorage set to s3://[email protected]/example_space
Last backup at revision 2 found
Indexing /home/sammy/project-repository
Packed file-1.txt (45)
Backup for /home/sammy/project-repository at revision 3 completed

Da an einer der Dateien in Ihrem Repository neue Änderungen vorgenommen wurden, hat Duplicacy diese Datei gepackt und als Teil von Revision 3 hochgeladen.

Mit dem Befehlrestore können Sie Ihr Repository auf eine vorherige Revision zurücksetzen, indem Sie die Option-r verwenden und die Revisionsnummer angeben. Beachten Sie, dass vorhandene Dateien nur überschrieben werden, wenn die Option-overwritewie folgt angegeben ist:

duplicacy restore -overwrite -r 2

Nachdem Sie den Befehlrestoreausgeführt haben, können Sie bestätigen, dass Duplicacyfile-1.txt tatsächlich neu geschrieben hat, indem Sie überprüfen, ob Inhalt vorhanden ist:

cat file-1.txt

Wenn dieser Befehl keine Ausgabe erzeugt, istfile-1.txt wieder eine leere Datei und Sie haben Ihr Repository erfolgreich auf die vorherige Version zurückgesetzt.

Sichern an mehreren Speicherorten

Das Speichern von Backups an mehreren externen Standorten betruga common data security practice for many years. Das Sichern von Dateien an mehreren Zielen kann sich jedoch als mühsam erweisen und die Produktivität beeinträchtigen. Es gibt jedoch eine Reihe von Sicherungswerkzeugen von Drittanbietern, die eine schnelle Lösung für die Sicherung von Daten an mehreren Standorten in der Cloud bieten.

Um diese Funktionalität in Duplicacy zu demonstrieren, fügen Sie Ihren zweiten Speicherplatz aufserver-01 zum Repository hinzu. Sie können dies nicht tun, indem Sie den Befehlinit erneut ausführen, da dieses Repository bereits von Duplicacy initiiert und Ihrem ersten Space zugeordnet wurde. Für diese Szenarien müssen Sie den Befehladd verwenden, der ein bereits initialisiertes Repository mit einem anderen Speicherbereich verbindet.

Der Befehladdder Duplizierung verwendet die folgende Syntax:

duplicacy add storage_id repository_id s3://region@endpoint/example_space_02

Dies ähnelt größtenteils dem zuvor verwendeten Befehlinit, mit dem Hauptunterschied, dass Sie eine ID für den neuen Speicherort angeben müssen. Wenn Sie den obigen Befehlinit ausgeführt haben, hat Duplicacy Ihrem ersten Speicherbereich die IDdefault zugewiesen, da dies der Standardspeicherort ist, an dem Sicherungen gesendet werden. Der Speichername, den Sie für Ihren zweiten Space angeben, kann beliebig sein. Es kann jedoch hilfreich sein, ihn zu beschreiben, damit Sie sich daran erinnern, für welchen Space er steht.

Fügen Sie unter Berücksichtigung dieser Informationen Ihren zweiten Space zum Repository hinzu:

duplicacy add space_02 project_01 s3://[email protected]/example_space_02

Sie können nun Ihr Repository auf Ihrem zweiten Space sichern. Es wird empfohlen, dies zu tun, indem Sie zuerst Ihr Repository an Ihrem Standardspeicherort sichern und dann mit dem Befehlcopyvon Duplicacy eine identische Sicherung auf Ihren zweiten Speicherort kopieren:

duplicacy backup
duplicacy copy -from default -to space_02

Dies kopiert jeden Chunk und jeden Schnappschuss von Ihrem ersten Space auf Ihren zweiten. Es ist wichtig zu beachten, dass der Befehlcopynicht destruktiv ist und keine vorhandenen Dateien überschreibt.

Fazit

In Kombination mit DigitalOcean Spaces können Benutzer mit Duplicacy Cloud-Backups flexibel verwalten. Wenn Sie dasselbe Repository von mehreren Computern aus sichern oder ein Repository an mehreren Stellen in der Cloud sichern müssen, kann die Duplizierung zu einem integralen Bestandteil Ihrer Sicherungslösung werden.

Wenn Sie mehr über die Verwendung von Duplikaten erfahren möchten, können Sie dieproject wiki on GitHub überprüfen. Wenn Sie mehr über Sicherungsstrategien im Allgemeinen erfahren möchten, lesen Sie alternativ unseren Leitfaden zuHow To Choose an Effective Backup Strategy for your VPS oder unseren Vergleich zwischenObject Storage vs. Block Storage Services.