[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Problem mit rsync und Hardlinks (Diskspace explodiert)



Hallo,

Michelle Konzack <linux4michelle@tamay-dogan.net>:

>Die Incremental-Backups explodieren, sprich, sie haben  WESENTLICH  mehr
>Diskspace Verbrauch als sie sollten.

>Damit bei  einem  Full-Backup  nicht  jedesmal  >1,2 TByte  transferiert
>werden müssen, kopiere ich das lezte Full-Backup mit
>
>    cp -a ${LAST_FULL}/* ${NEW_BACKUP}/
>    +
>    rsync -v -e ssh -a root@${SERVER}:${SOURCE} ${NEW_BACKUP}/
>
>damit werden auch Hardlinks de-refferenced.  Für das  Incremental-Backup
>verwende ich immer das lezte Backup-Verzeichnis mit
>
>    cp -a -l ${LAST_BACK}/* ${NEW_BACKUP}/
>    +
>    rsync -v -e ssh -a --delete root@${SERVER}:${SOURCE} ${NEW_BACKUP}/


>Normalerweise sollte lezterer Test die Hardlinks ausschließen und  der  effektiv
>benötiget Platz nicht 25 GByte sondern so um die 10-12 GByte liegen oder  besser
>gesagt, ein Full-Backup und  sechs  Incremental-Backup  sollten  den  benötigten
>Backplatz gerade mal verdoppeln, wenn nichts nennenswertes neu installiert wurde

Man muss hier unterscheiden zwischen

1. ("Hard"-)Links, die innerhalb des zu sichernden Dateibestandes
existieren.

Um diese zu erhalten, gibt es bei rsync die Option -H . Beachte, dass -H
nicht in -a enthalten ist. Der Grund ist, dass ein rsync mit -H viel mehr
Speicherplatz braucht, weil es sich alle kopierten inodes merken muss.

2. Links, die zwischen den verschiedenen Versionen des Backups existieren
(von dir mit cp -l angelegt).

Hierzu bietet rsync die Option --link-dest=... . Für ein Beispiel siehe
die Folie 6 meines Vortrages über versioniertes Backup:
http://www.weidner.ch/pub/VersioniertesBackup_LinuxWSKoeln_2011.pdf

Das cp kannst du dir in beiden Fällen sparen. Beim Full Backup übernimmt
rsync --copy-dest die Rolle des cp.

Idealerweise verwendest du auch noch die Option rsync -S, um Sparse Files
zu erhalten. Also:

Full Backup:
rsync -v -e ssh -aHS --copy-dest=${LAST_FULL} root@${SERVER}:${SOURCE}/ ${NEW_BACKUP}/

Incremental Backup:
rsync -v -e ssh -aHS --delete --link-dest=${LAST_BACKUP} root@${SERVER}:${SOURCE}/ ${NEW_BACKUP}/

Gruß, Harald


Reply to: