
Ich möchte auf dd
diese Weise ein Backup des logischen LVM2-Volumes auf einem externen Laufwerk erstellen.
Der Ansatz, den ich in Betracht ziehe, ist
- Erstellen Sie LV auf einem externen Laufwerk mit identischer Größe
- Kopieren mit
dd
(Bitte lassen Sie es mich wissen, wenn Sie an diesem Ansatz etwas wirklich Falsches finden. Ich brauche etwas Zuverlässiges und Schnelles.)
Ich möchte den gesamten Prozess automatisieren. Folgendes habe ich:
# Sanity check that lv is not used
lvuses="$( lvdisplay -c /dev/mapper/vgA-AA | cut -d ':' -f 6 )"
if [ $lvuses -gt 0 ]; then exit 1 ; fi
#obtain lv size (in sectors)
lvsize="$( lvdisplay -c /dev/mapper/vgA-AA | cut -d ':' -f 7 )"
#create destination
lvcreate -L "${lvsize}s" vgB -n BB || exit 1
# copy
dd if=/dev/mapper/vgA-AA of=/dev/mapper/vgB-BB
Ist alles in Ordnung? Habe ich etwas verpasst?
(In meinem Fall ist vgA-AA ein LVM-Snapshot und ich möchte ihn auf einem externen Laufwerk sichern und dieses Laufwerk an einen anderen geografischen Standort mitnehmen.)
Antwort1
Ihr Skript sieht gut aus, aber ich würde einen anderen Ansatz wählen: Erstellen Sie einen Spiegel und zerstören Sie ihn dann. Soweit ich weiß, können Sie das online tun. Ungetestet:
lvconvert -m /dev/mapper/vgA-AA /dev/sdz98 /dev/sdz99
lvconvert --splitmirrors 1 --name BB /dev/mapper/vgA-AA
Wenn Sie das neue logische Volume in eine andere Volume-Gruppe verschieben möchten, müssen Sie meiner Meinung nach sicherstellen, dass sich das LV, das Sie senden möchten, auf seinem/seinen eigenen physischen Volume(s) befindet, und die PV(s) mit von einem VG auf das andere übertragen vgsplit
.
Antwort2
Verwenden Sie nicht dd
. Das ist ein dummes Ding, das alles im Volume kopiert, einschließlich des freien Speicherplatzes, und ein Dateisystem mit derselben UUID wie das Original erstellt, was das System verwirren kann. Verwenden Sie stattdessen ein Tool wie partclone
oder ghost4linux oder fsarchiver
, das das System in eine komprimierte Image-Datei kopieren und die freien Blöcke überspringen kann.
Antwort3
- externe Festplatte mounten
- Stoppen Sie die Anwendung
- prüfen Sie, ob das Dateisystem unbenutzt ist ($ sudo fuser -M /Pfad/zum/Dateisystem/Einhängepunkt)
- Schnappschuss erstellen ($ sudo lvcreate -s ........... )
- Bewerbung starten
- Backup mit rsync (suchen Sie bei man rsync nach --update und --link-dest)
- oder überprüfenhttp://dirvish.orgoderhttp://backuppc.sourceforge.net/für Implementierungen
- umount externe Festplatte
- Snapshot LV entfernen Dieses Verfahren erstellt pro Backup ein Verzeichnis auf der externen Festplatte. Es kopiert nur geänderte/neue Dateien von der Quellfestplatte und spart Platz, indem doppelte Dateien zwischen Backups fest verknüpft werden.
Antwort4
Zuverlässig und schnell. Ich würde LVM-Snapshots empfehlen.
Es ist extrem schnell und Sie können sicher sein, dass die Sicherung ohne Dateiänderungen während der Sicherung erfolgt. Wenn Sie eine Datenbank auf dem Datenträger haben, müssen Sie diese außerdem nicht offline nehmen.
Dies ist auch eine gute Möglichkeit, Änderungen an Ihrem Volume zu testen. Erstellen Sie einen Snapshot, nehmen Sie Ihre Änderungen vor und führen Sie den Snapshot wieder zusammen. Wenn die Änderungen erfolgreich sind, löschen Sie den Snapshot.
Bearbeiten: Code
lvcreate -L 10G -s -n snapshot /dev/VG/LV
Sichern Sie dann das Snapshot-Volume an einem beliebigen Ort.
Zum Testen des Dateisystems können Sie einen Snapshot erstellen und wieder zusammenführen.
lvconvert --merge /dev/VG/snapshot
Durch diese Zusammenführung wird das Snapshot-Volume automatisch gelöscht.
Notiz:Schnappschüsse erfordern kernel version 2.6.33 or newer
undLVM tools 2.02.58 or newer
Bearbeiten. Links:
TLDP: Erstellen einer Sicherung mithilfe von Snapshots
HowtoForge: Partitionen mit LVM-Snapshots sichern und wiederherstellen