**This is an old revision of the document!**


title: Dokumentation__CephBackup description: published: true date: 2021-03-13T19:07:26.245Z tags: editor: markdown

dateCreated: 2021-03-13T18:48:12.099Z

  1. acl: TeamGroup:read,write,revert,delete,admin All:

Backup im Ceph

Übersicht

Zur Zeit erstellen wir Backups von VServer-Images im Ceph. Der Backupprozess läuft auf dem Host ceph3, unter Verwendung eines logical Volumes mit 4TB vom hamster via nfs4 auf /backup_ceph/ gemountet.

Wir verwenden seit November 2017 das export-diff Feature von Ceph (bzw. das import-diff Feature für Restore).

Automatischer Ablauf

Via cronjob wird das Skript /home/cavy/cephbackup auf ceph3 ausgeführt. Dieses erstellt derzeit einmal pro Tag ein Diff vom letzten Snapshot eines Images zum aktuellen Zustand. Die Diffs sind auf hamster:/backup_ceph/ zu finden und sehen so aus:

IMAGE_NAME@INITIALER_SNAPSHOT--AKTUELLER_SNAPSHOT.diff

Beispiel:
nelke-var@2017-11-02-13:30:13--2017-11-02-13:37:46.diff

Zusätzlich liegen auf hamster:/backup_ceph/ auch Exporte der initialen Snapshots. Die sehen so aus:

IMAGE_NAME@INITIALER?SNAPSHOT.img

Beispiel:
nelke-srv@2017-11-02-13:12:45.img

Restore

Es gibt mehrere Möglichkeiten, Dateien oder ganze Images (das geht leichter) wiederherzustellen. Die zuverlässigste ist hier beschrieben.

Nehmen wir an, wir möchten Zustand von nelke-srv vor dem 3. November 2017 wiederherstellen:

Zuerst suchen wir den letzten Diff vor dem gewünschten Datum. Das wäre in diesem Beispiel

nelke-srv@2017-11-02-13:12:45--2017-11-02-13:37:46.diff

Aus diesem Diff lässt sich ein Snapshot herstellen:

cavy@ceph3:~$ rbd import-diff /backup_ceph/nelke-srv@2017-11-02-13:12:45--2017-11-02-13:37:46.diff images/nelke-srv

Danach sollten zwei Snapshots für images/nelke-srv existieren:

cavy@ceph3:~$ rbd snap ls images/nelke-srv
SNAPID NAME                   SIZE 
 15454 2017-11-02-13:12:45 8192 MB
 15457 2017-11-02-13:37:46 8192 MB

Am zuverlässigsten funktioniert nun das Klonen des Snapshots in ein neues Image. Dazu muss allerdings vorher der Snapshot geschützt (protected) werden:

cavy@ceph3:~$ rbd snap protect images/nelke-srv@2017-11-02-13:37:46
cavy@ceph3:~$ rbd clone images/nelke-srv@2017-11-02-12-13:37:46 images/nelke-srv-restored
cavy@ceph3:~$ rbd flatten images/nelke-srv-restored
cavy@ceph3:~$ rbd snap unprotect images/nelke-srv@2017-11-02-13:37:46
cavy@ceph3:~$ rbd snap rm images/nelke-srv@2017-11-02-13:37:46

Nachdem das Image mittels flatten vom Snapshot gelöst ist, kann dieser auf unprotected gesetzt und gelöscht werden. Nun kann entweder gleich das ursprüngliche Image (nelke-srv) gelöscht, und das neue Image umbenannt werden (Vorsicht wenn der VServer noch läuft bzw. das Image noch gemountet ist!), oder das neue Image wird gemountet und die gesuchte(n) Datei(en) von dort herauskopiert.

Restore aus Imagedatei

Bestenfalls sind auf hamster:/backup_ceph/ auch Exporte von Snapshots vorhanden. Die können einerseits mittels der .diff Dateien und ceph-apply-diff auf den aktuellsten Stand gebracht werden, und andererseits wiederum ins ceph importiert werden.

cavy@ceph3:~$ ceph-apply-diff VSERVER-NAME@DATE.img VSERVER-NAME@FROM-DATE--TO-DATE.diff
Reading metadata
From snap: FROM-DATE
To snap: TO-DATE
Image size: 10737418240 (10GB)
End of metadata
Data at offset 1048576 of length 8192
Data at offset 1576960 of length 8192
Data at offset 1593344 of length 16384
Data at offset 2154496 of length 4096
Data at offset 4042752 of length 4096
Data at offset 10485760 of length 1048576
Data at offset 20144128 of length 827392
Data at offset 20971520 of length 913408
...
...
End of data
cavy@ceph3:~$ rbd import VSERVER-NAME@DATE.img images/VSERVER-NAME
Importing image: 100% complete...done.

Weitere Infos

Hier noch ein paar Links zu den entsprechenden Stellen in der Ceph Doku. Alles über Snapshots. ceph-apply-diff: ein externes Werkzeug um Diffs auf Imagefiles anzuwenden ist auf ceph3 in /usr/bin/ installiert. Die diversen Funktionen von rbd sind in der Manpage dokumentiert bzw. auch online verfügbar. Hier gibt\'s noch Anwendungsbeispiele für export-diff und import-diff.

zurück zur Dokumentations Übersicht

doc/ceph-backup.1686928854.txt.gz · Last modified: by murmur