• This forum has a zero tolerance policy regarding spam. If you register here to publish advertising, your user account will be deleted without further questions.

-avzc --delete ausreichend für ein Systemsnapshot?

servo

New Member
Hallo und guten Abend,

ich möchte meinen Server der recht minimalistisch ist und als Host für virtuelle Maschinen dient auch mal (wieder) :cool: sichern!

Für die Images ist gesorgt nun kümmere ich mich um den Server an sich. Dazu habe ich einen zweiten (einfach zum Test) Server organisiert und beide so vorbereitet das sie mit den rsync-daemons Dateien sichern und zurück spielen können. Jetzt komme ich zu den Parameter, da ich eher aus der Windowswelt komme bin ich hier immer etwas unsicher am Anfang.

Wäre
Code:
rsync -avzc --delete ...
zum sichern eines kompletten Systems (~2GB Daten) geeignet? Geht so etwas mit rsync im laufenden System oder muss man dazu in das rescue System?

Zum Einsatz soll es kommen wenn ich Software auf dem Host-Server installiere, Updates einspiele oder mal wieder Konfigurieren muss. Ich benötige also nur vor der Aktion einen Snapshot und wenn es schief läuft möchte ich wieder 1:1 zum Zustand davor damit es erst einmal weiterläuft.

Grundlegende Dinge wie Partitionierung müssen nicht berücksichtigt werden da diese nicht geändert werden. Ist der Aufruf dazu geeignet? Wie würde der Befehl zum korrekten Zurückspielen aussehen?

Vielen Dank für eure Hilfe.
 
Last edited by a moderator:
Habe jetzt etwas probiert und bin mit
Code:
rsync -avzc --delete --port=ABC --progress --log-file=/var/log/rsyncSELF.log / xxxxx@yyyyy::zzzzz --exclude=/home/vbox/vms --exclude=/var/local/vms

schon mal ganz gut vorwärts gekommen. Von den vermeintlich ~2GB sind ~0,5GB schließlich auf dem Backup-Server gelandet. Aber logischerweise mit einer Menge Fehler. (wird systembedingt wohl sein) Hier muss ich mir das noch einmal anschauen, was überhaupt im laufenden Betrieb gesichert werden kann. Da fehlt mir etwas der Tiefgang wieder im Linux-Bereich.

Es kamen Fehler wie folgende vor
Code:
...
2016/03/13 13:52:08 [32123] file has vanished: "/proc/209/task/209/exe"
2016/03/13 13:52:29 [32123] rsync: read errors mapping "/sys/devices/pci0000:00/0000:00:11.0/host1/target1:0:0/1:0:0:0/block/sdb/stat": No data available (61)
WARNING: sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:1d/path failed verification -- update discarded (will try again).
2016/03/13 13:52:55 [32123] WARNING: sys/devices/virtual/net/br0/statistics/tx_compressed failed verification -- update discarded (will try again).
2016/03/13 13:55:45 [32123] rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1039) [sender=3.0.6]
...

Ich werde wohl doch noch nach einem anderen Programm Ausschau halten. Wenn man mit dd kopiert, gibt es da eine Möglichkeit die Kopie auf den wirklich belegten Speicherplatz zu beschränken? 2TB zu kopieren wenn nu 2GB verwendet werden ist etwas unsinnig. Ich werde wohl einfach die Partition verkleinern ... hoffentlich ist das so praktisch wie in windows :confused:
 
Du sollst/darfst ja auch nicht alles kopieren.
Möglichst einfach (damit nicht ganz korrekt) erklärt:
in Linux wird fast alles durch Dateien repräsentiert, so z.B. auch devices, etc...

Der Kernel stellt damit auch Funktionalität und Informationen zur Verfügung, was auf Deutsch einfach heißt: nicht alles sichern, denn vieles wird mit dem Boot durch den Kernel bereit gestellt und hat auch nur in diesem Kontext einen Sinn.

Ich hoffe mal, dass ich damit an alles denke aber ergänze den Befehl um folgendes:
Code:
--exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"}

Diese Verzeichnisse und alles was darin ist wird von rsync also nicht gesichert.
 
Das es so ist wusste ich schon aber eben nicht das wie und wo :) daher vielen Dank für die Information, das hilft schon mal sehr.

Hab das gleich noch einmal angestubst und ist auch schon fertig. Das Log ist schon mal um die Hälfte kleiner und keine Warnungen, Fehler oder sonst irgendwas was auf Problemchen hindeuten könnten. :rolleyes:

Wie sichert man das Ganze zurück? Gibt es da wichtige Dinge zu beachten?
 
Im Prinzip reicht die Rückrichtung, allerdings wäre dann das Zielsystem nicht automatisch bootbar, sondern man müsste grub noch installieren, was (am Beispiel von Arch Linux und 99% aller Distributionen, die nicht zuviel an den Upstreampaketen pfuschen) so geht:
Code:
1) grub-install /dev/sdX
2) grub-mkconfig -o /boot/grub/grub.cfg

So mache ich das normalerweise, wenn ich eine genaue Kopie will: ich spare mir - faul wie ich bin - dd und schiebe alles per rsync auf das Zielsystem (normalerweise per rescue cd). Danach per chroot in das System und den Bootloader installieren.
Wenn das neue System eine exakte Kopie sein soll/darf, ist das ein extrem einfaches und schnelles Verfahren.

Man kann natürlich auch einfach das System wie gewohnt installieren und dann aus dem Rescuesystem heraus mit Rsync die Daten auf das Zielsystem bringen.
 
Ok das teste ich erst einmal anders herum und schaue ob ich das so hinbekomme. Also kurz gesagt werde ich meinen "leeren" Backupserver mal sichern und schauen ob ich den dann wieder genau so hinbekomme. Da kann ich in Ruhe probiere, danke für deine Hilfe! :)

Ich arbeite eigentlich nur mit CentOS bzw. Suse-Systemen.
 
Achja, eines hätte ich fast vergessen, was noch extrem wichtig ist:
je nachdem wie die /etc/fstab aussieht muss man da noch die jeweiligen Pfade, bzw. IDs ändern, je nachdem wie das auf dem Zielsystem aussieht.

Ein Software-Raid muss ggfls. auch vorher erzeugt werden aber das sind dann Dinge, die wirklich davon abhängen, wie das Setup konkret aussieht.
 
Last edited by a moderator:
...meinen Server der recht minimalistisch ist und als Host für virtuelle Maschinen dient...

Was spricht dagegen nur die Daten/VM Images zu kopieren? Da das Setup "minimalistisch" ist, sollte es doch schnell wiederhergestellt sein. Dann noch die Daten kopiert und gut ist.
 
Was spricht dagegen nur die Daten/VM Images zu kopieren? Da das Setup "minimalistisch" ist, sollte es doch schnell wiederhergestellt sein. Dann noch die Daten kopiert und gut ist.

So ist es auch eigentlich angedacht (wenn mal was "passieren" sollte) Da ich das Hostsystem aber immer so konfiguriere das es dann erstaunlicherweise ohne Angriffe und Probleme 1-3Jahre läuft, habe ich in der Zwischenzeit immer alle Kniffe wieder vergessen und fang regelrecht bei den Basics wider an :D Das wollte ich mir ersparen, aber du hast recht, das Ganze geht am Ziel vorbei und ich bin mir einer Neuinstallation dann wohl besser/sicherer, da hat man auch gleich die neuste Software drauf und nicht ein altes System.
 
Da ich das Hostsystem aber immer so konfiguriere das es dann erstaunlicherweise ohne Angriffe und Probleme 1-3Jahre läuft, habe ich in der Zwischenzeit immer alle Kniffe wieder vergessen und fang regelrecht bei den Basics wider an

Um das zu vermeiden, sollte man die Grundkonfiguration des Servers genauso wie auch alle Änderungen im laufenden Betrieb (Updates, Upgrades, Konfig-Anpassungen, etc.) dokumentieren.
Damit geht nicht nur das Neuaufsetzen leichter, eine gut geführte Dokumentation ist oft auch sehr hilfreich bei einer Fehlersuche :)
 
Um das zu vermeiden, sollte man die Grundkonfiguration des Servers genauso wie auch alle Änderungen im laufenden Betrieb (Updates, Upgrades, Konfig-Anpassungen, etc.) dokumentieren.
Wollte ich auch vorschlagen.
Persönlich bin ich dazu übergegangen, alle meine Server nur noch per Puppet zu konfigurieren.
Dadurch lassen sich diese nicht nur vollständig automatisiert jederzeit neu aufsetzen (z.b. in Vagrant um Änderungen vorab zu testen) sondern ich habe auch implizit eine Dokumentation meines Setups.
 
Back
Top