Ich benutze die Virtual Box häufig zum Testen von Distributionen und Anwendungen.
Eine der Funktionen, die ich einfach mag, sind Snapshots von virtuellen Maschinen, die den Zustand einer virtuellen Maschine speichern und sie in ihrem früheren Glanz wiederherstellen können, wenn etwas schief gelaufen ist, ohne dass Probleme aufgetreten sind und der gesamte Festplattenspeicher belegt wird.
Auf meinen Live-Systemen kann ich ein 1: 1-Image des Dateisystems erstellen, aber alle mir bekannten Lösungen erstellen ein neues Image des gesamten Dateisystems.
Gibt es Programme / Dateisysteme, die in der Lage sind, einen Schnappschuss eines aktuellen Dateisystems zu erstellen, ihn an einem anderen Ort zu speichern, aber anstatt ein neues Image zu erstellen, werden inkrementelle Sicherungen erstellt?
Um einfach zu beschreiben, was ich will, sollte es sich um dd
Images eines Dateisystems handeln, aber statt nur einer vollständigen Sicherung würde es auch eine inkrementelle Sicherung erstellen.
Ich suche nicht nach Clonezilla usw. Es sollte innerhalb des Systems selbst ohne (oder fast ohne) Eingriffe des Benutzers ausgeführt werden, aber alle Daten der Dateisysteme enthalten. Ich bin auch nicht auf der Suche nach einem duplicity
Backup Ihres gesamten Systems mit Ausnahme einiger Ordner script + dd
, um Ihre mbr zu speichern. Das kann ich selbst machen, auf der Suche nach mehr Finesse.
Ich suche nach etwas, was ich tun kann, bevor ich massive Änderungen an einem System vornehme, und wenn etwas nicht stimmt oder ich meine Festplatte verbrenne, nachdem ich Kaffee darauf verschüttet habe, kann ich einfach von einer Live-CD booten und einen funktionierenden Schnappschuss auf einer Festplatte wiederherstellen.
Es muss nicht täglich sein, es braucht nicht einmal einen Zeitplan. Einfach ab und zu ausführen und es seinem Job überlassen und am besten RAW-basiert, nicht dateikopiebasiert.
quelle
Antworten:
Um zu erklären , cprofitt Antwort (wie seine Antwort ist inkrementell, wie ich das erklären werde) ...
Zuerst müssen Sie über harte Links Bescheid wissen.
Feste Verknüpfungen verweisen auf die Daten, die sich tatsächlich auf der Festplatte (dem physischen Speicherort) befinden, und Sie können über die feste Verknüpfung auf die Daten zugreifen. Jede Datei und jedes Verzeichnis ist eine feste Verknüpfung zum Speicherort der Daten auf der physischen Festplatte. Wenn also zwei Dateien (Hardlinks) auf denselben Speicherort verweisen, werden die Daten nur einmal gespeichert .
Der von cprofitt vorgegebene Prozess beinhaltet:
Drehen Sie die Backups, um einen Platz für einen neuen zu schaffen. (Aus "Heute sichern" von gestern wird "Gestern sichern", aus "Gestern sichern" von vor zwei Tagen wird "Vor zwei Tagen sichern" usw.)
Kopieren Sie den zuletzt erstellten Schnappschuss (z. B. "Sicherungskopie von gestern") an den Speicherort für den neuen (z. B. "Sicherungskopie von heute"), und erstellen Sie neue feste Links zu den vorhandenen Dateien, ohne die Datei zu kopieren. Daher verweisen alle Dateien im neuen Snapshot auf denselben Speicherort wie im vorherigen .
Ein illustriertes Beispiel
In der folgenden Abbildung sind Dateien derselben Farbe mit demselben Dateinamen feste Links zu derselben Datei auf der Festplatte. Hier haben wir es nur mit zwei Schnappschüssen und ein paar Dateien zu tun, aber das Beispiel ist skaliert. (Mit Ausnahme der Tatsache, dass ich Schnappschüsse anders als Skripte in der Antwort von cproffit verschiebe)
Der Prozess ist wie folgt:
Es gibt eine Momentaufnahme des Systems.
Der Schnappschuss besteht aus Kopien (Erstellen fester Links zu den vorhandenen Dateien).
Rsync wird ausgeführt, um den Snapshot zu aktualisieren. Wenn Dateien geändert werden, wird die neue Datei als neue Kopie auf der Festplatte gespeichert (der ältere Schnappschuss wird also nicht geändert). In diesem Beispiel wurde Datei B geändert. Hinweis: Wir haben jetzt nur 1 Kopie von Datei A und Datei C und zwei Kopien von Datei B auf der Festplatte gespeichert
Drehen Sie die Schnappschüsse (in diesem Fall fällt der Schnappschuss 0 ab und wird gelöscht, und ich benenne den Schnappschuss 1 in den Schnappschuss 0 um)
Kopieren Sie den Schnappschuss erneut (Wiederholung von Schritt 2)
Rsync erneut. (Wiederholen Sie Schritt 3). Jetzt haben wir 1 Kopie von Datei A und 2 Kopien von Datei B und Datei C
Eine vereinfachte Version des [ersten] Skripts (nicht auszuführen, nur als Sprungbrett) lautet wie folgt:
Jetzt haben die vollständigen Skripte hier die vollständige Erklärung (als cprofitt verknüpft mit) und es ist gründlicher, aber es ist im Grunde wie oben. Das andere Skript dient zum Gruppieren von Snapshots, und der andere Teil der Antwort von cprofitt befasst sich mit der Automatisierung des Prozesses (mithilfe von cron) und der Überprüfung, ob die Sicherung erfolgreich war.
Sie können die Namen ändern, sodass die Verzeichnisse nicht "stündlich ...", sondern etwas anderes heißen und das Skript manuell ausgeführt wird.
Um das gesamte Los wiederherzustellen, kopieren Sie den letzten (oder einen vorherigen) Snapshot zurück in das Verzeichnis, von dem Sie die Backups erstellt haben.
Um eine einzelne Datei wiederherzustellen, die sich noch in einem Schnappschuss befindet, gehen Sie zum Schnappschuss und kopieren Sie ihn dorthin zurück, wo er hingehört.
Das Sicherungsmedium kann eine externe Festplatte sein (muss ext2 / ext3 / ext4 sein). Wenn Sie wurden zu sichern
/
(vor allem/boot
,/home
,/etc
/root
und/usr
) dann sagen ...Sie mounten das externe Laufwerk, führen die Sicherung durch und erstellen den neuesten Snapshot.
Hängen Sie das Laufwerk aus.
Denken Sie daran, dass Sie eine gewünschte Datei (auch aus dem Papierkorb) gelöscht haben.
Schließen Sie das externe Laufwerk an und rufen Sie die Datei ab.
Mach ein Backup (nur um sicher zu gehen)
Trennen Sie das Laufwerk und fahren Sie ...
Beachten Sie, dass sich Laptop und Lava nicht mischen.
Wenn Ihr neuer Laptop eine Live-CD ausführt, formatieren Sie das interne Laufwerk, hängen Sie das externe Laufwerk ein und dann
cp -a /media/external/snapshot-0/* /media/internal-drive
(vorausgesetzt, Snapshot-0 ist der neueste Snapshot).Installieren Sie grub im MBR (ja, es muss
dd
separat sein) - oder verwenden Sie es, um das mbr zu sichern, wie cprofitt am Ende seiner Antwort gesagt hat.Starten Sie neu.
Das Skript muss verfeinert werden (um nur das zu erhalten, was Sie möchten), und die oben beschriebene Prozedur geht davon aus, dass Sie keine
/home
Partition haben. Wenn Sie einen neuen Datenträger erstellt haben (oder hatten) und diesenmount /dev/sdxy /media/external/home
vor dem Kopieren mit einbinden.quelle
100 x <average size of snapshot>
Speicherplatz. 100 davon kosten<size of snapshot> + <size of changed files>
. Ich habe dies verwendet, um mehrere Snapshots von / home (~ 400 GB) auf eine 500-GB-Festplatte zu kopieren.cp -al
macht Hardlinks zu den Quelldateien, anstatt die Quelldateien zu kopieren. Ihre Abbildungen sollten dies auch widerspiegeln, z. B. indem Sie zeigen, dass die A-Dateien in Abbildung 2 dieselbe Datei sind.Sie könnten rsync verwenden.
und der zweite:
Nachdem Sie das Skript nach Ihren Wünschen erstellt haben, fügen Sie es zu Cron-Jobs hinzu.
Fügen Sie Folgendes hinzu:
Sie bewirken, dass make_snapshot.sh alle vier Stunden und daily_snapshot_rotate.sh jeden Tag um 13:00 Uhr (dh 13:00 Uhr) ausgeführt wird.
Quelle: http://www.mikerubel.org/computers/rsync_snapshots/
Wenn Sie möchten, dass es stündlich ausgeführt wird, fügen Sie für jede Stunde einen Cron-Job hinzu.
Eine andere mögliche Option ist die Verwendung von rsnapshot
Installieren Sie rsnapshot (im Software Center verfügbar)
Konfigurieren Sie rsnapshot und geben Sie das Sicherungsquellenverzeichnis an
Öffnen Sie die Datei /etc/rsnapshot.conf und kommentieren Sie die folgenden Zeilen aus.
Definieren Sie Ihre Zielsicherungsverzeichnisse in /etc/rsnapshot.conf wie unten gezeigt. In diesem Beispiel
/ home - Quellverzeichnis, das gesichert werden soll localhost / - Zielverzeichnis, in dem die Sicherung gespeichert wird. Beachten Sie, dass dieses Verzeichnis wie im letzten Schritt gezeigt unter /.snapshots/{internal.n}/ erstellt wird.
nano /etc/rsnapshot.conf
backup / home / localhost /
Testen Sie die rsnapshot-Konfiguration
Führen Sie einen Konfigurationstest durch, um sicherzustellen, dass rsnapshot ordnungsgemäß eingerichtet und bereit ist, ein Linux-Rsync-Backup durchzuführen.
Sie können Linux-Verzeichnisse oder -Dateien in verschiedenen Intervallen sichern. Standardmäßig sind die stündlichen und täglichen Sicherungen konfiguriert.
Überprüfen Sie die stündliche Sicherungskonfiguration.
Stellen Sie sicher, dass der tägliche rsnapshot cwrsync-Sicherungsprozess ordnungsgemäß konfiguriert ist.
Sobald Sie überprüft haben, ob die stündlichen und täglichen rsync-Sicherungskonfigurationen im Dienstprogramm rsnapshot cwrsync ordnungsgemäß eingerichtet wurden, ist es an der Zeit, diesen Welpen in der crontab wie unten gezeigt einzurichten.
Quelle: http://www.thegeekstuff.com/2009/08/tutorial-backup-linux-using-rsnapshot-rsync-utility/
---- Bare-Metal-Recovery
Ich würde dd und teer verwenden, um die Baremetallwiederherstellung durchzuführen.
Sichern Sie wichtige Metadaten:
Backup des Betriebssystems:
Ich persönlich würde dazu neigen, mein System vom Netz zu nehmen, wenn ich eine Baremetal-Wiederherstellungsdatei erstellen wollte.
quelle
dd
ist nicht inkrementell. Nichts von alledem frage ich. Die letzten 10% könnten interessant sein, aber der Rest des Informationsdumps ist es wirklich nicht.Es gibt zwei Möglichkeiten, eine blockbasierte Teilsicherung durchzuführen
Dateisystembasierte Snapshots
Sowohl ZFS als auch BTRFS bieten blockbasierte inkrementelle Snapshots ( BTRFS , ZFS (Seite 25) ). Sie könnten ein Laufwerk haben, mit dem Sie rsynchen, entweder ZFS oder BTRFS und Snapshot.
Es gibt auch LVM-Snapshots (von cprofitt erwähnt), die dieselben blockbasierten inkrementellen Snapshots bereitstellen.
Programmbasierte Schnappschüsse
Es gibt mehrere Sicherungsprogramme , jedoch einige, die zu diesem Zweck herausragen:
Ich weiß, dass Sie ausdrücklich erwähnt haben, dass Sie nicht nach Dubletten suchen, aber ich dachte, ich könnte einige Merkmale erwähnen.
Für diese Programme müssen Sie sie jedoch installieren, um sie wiederherstellen zu können. Das Schöne an so etwas wie rsync ist, dass fast jede Linux-Installation standardmäßig rsync hat (z. B. fehlt ein winziger Kern (eine 10-MB-Distribution)).
Duplizität
Es speichert nur das Diff (Block Level) und komprimiert und verschlüsselt sie dann. Dies führt zu noch weniger Speicherplatz als die rsync-Methode, allerdings muss (zumindest so wie ich es sehe) das Dateisystem rekonstruiert werden, was einige Zeit in Anspruch nimmt (wenn Sie inkrementelle Sicherungen damit verwenden, und dies hängt von der Zeit seither ab letzte vollständige Sicherung)
Die Manpage erklärt, wie es funktioniert.
Rdiff-Backup
Ein Client-Server-Programm, das wie die Duplizität Unterschiede auf Blockebene erstellt, jedoch Änderungen vom letzten Wiederherstellungspunkt speichert, sodass der neueste Snapshot am schnellsten wiederhergestellt werden kann. Eine Zeitreise in die Vergangenheit (nicht der letzte Schnappschuss) erfordert mehr zu analysierende Diffs und ist daher langsamer.
Einige Leute vergleichen rdiff-backup mit rsnapshot (scheint ein automatischerer Weg des rsync-Mentods zu sein). Fast alle Anleitungen konzentrieren sich auf die Verwendung von rdiff über das Netzwerk, jedoch habe ich eine gefunden, in der erwähnt wird, wie dies auf localhost gemacht wird .
quelle
duplicity
eigentlich ist.Sie sollten sich ddar ( homepage ) ansehen .
Dies ist inkrementell, da die identischen Teile des Schnappschusses nicht übertragen werden. Es ist nicht inkrementell in der klassischen Bedeutung des Wortes, da es sich um Schnappschüsse handelt.
Hinweis: Ich habe das nicht selbst ausprobiert (aber ich vertraue dem Autor). Es kann sein, dass es nicht das tut, was Sie sofort erreichen möchten, es gibt jedoch ähnliche Lösungen auf der Seite (z. B. ZFS ), sodass es sich als Ausgangspunkt möglicherweise als nützlich erweisen kann.
quelle
Ich denke, Sie können dies mit LVM tun, es ist nur theoretisch, und es wird eine große Menge an Festplatte verschwenden. Nach meiner Theorie können Sie Ihr Root-System auf einem logischen Volume betreiben. Wenn Sie einen Test durchführen möchten, können Sie einen Snapshot erstellen und den Computer mit dem neuen Volume neu starten.
LVM-Snapshots benötigen das Original-Volume, um zu funktionieren. Dies liegt daran, dass das neue Volume den Unterschied zwischen dem Snapshot und dem realen Dateisystem enthält.
Wenn Sie das System in diesem Zustand belassen, werden Sie anfangen, Speicherplatz zu verschwenden, wenn sich das neue Dateisystem ändert. Ich weiß nicht, ob es eine Möglichkeit gibt, das Snapshot- und das endgültige Dateisystem zu konsolidieren. Sicherlich können Sie auf ein anderes logisches Volume zugreifen, aber dafür benötigen Sie den doppelten Speicherplatz Ihres Dateisystems plus den Unterschied zwischen Ihrem "Wiederherstellungspunkt" und dem aktuellen Status.
Und all dies erfordert einen Neustart und ist alles andere als automatisch.
Es wird auch angenommen, dass mehrere moderne Dateisysteme diesen Weg gehen, wie zfs auf Solaris-Systemen oder die experimentellen btrfs.
quelle
Diese ist ein bisschen überfordert, aber es hört sich so an, als ob Sie teilweise Sicherungen von Binärdateien (wie Partitionsimagedateien) durchführen möchten. Dafür gibt es ein Paket (ich habe es gerade gelesen - nicht ausprobiert.)
Schauen Sie sich bup an.
https://github.com/apenwarr/bup
Es könnte Ihnen einige Ideen geben.
quelle