[Eisfair] rsnapshot 1.4.x

Hilmar Böhm hilmar.boehm at web.de
Di Sep 4 15:03:36 CEST 2018


Nach einigen Probs mit der Fenster Software (meine Fensterkenntnisse verblassen zusehends :) ), hier meine Findings bzgl. 
Rsnapshot-Backups auf NTFS-formatierte Medien als Backupziel.

Also generell: rsnapshot, besser rsync erzeugt Hardlinks auf dem Backup-Ziel. Das funktioniert sowohl bei Backups via SMB-Share 
auf ein Windows-System (W10) als auch bei Backups auf ein lokal am Eis-Server angeschlossenes Speichermedium (hier ext. USB2 HD).

1. Backup auf NTFS-Medium  an/im Windows-System via SMB-Share.

Zum Test habe ich nur das /etc (und auch mal das /home) Verzeichnis des Eisfair-Servers gesichert und 2 Sicherungs-Level ("beta" 
und "gamma") eingerichtet (eigenes rsnapshot.conf) und zur Sicherung "rsnapshot -c eigenes-rsnapshot.conf (beta|gamma)" verwendet.

Backup-Ziel:
-------------------------------
Verzeichnis: C:\Users\boehmh\BckData

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----         02.09.18     22:12                beta.0
d-----         02.09.18     22:11                beta.1
d-----         02.09.18     22:04                beta.2
d-----         02.09.18     22:02                gamma.0
--------------------------------

"rsnapshot du" zeigt die Größen der Verzeichnisse
--------------------------------
# rsnapshot -c /etc/rsnapshot-smbtst.conf du
/usr/bin/du -csh /media/wbckp/beta.0/ /media/wbckp/beta.1/ \
     /media/wbckp/beta.2/ /media/wbckp/gamma.0/

17M	/media/wbckp/beta.0/
3.3M	/media/wbckp/beta.1/
0	/media/wbckp/beta.2/ <=====
8.0K	/media/wbckp/gamma.0/
20M	total
--------------------------------

"beta.2" zeigt sehr schön, dass Hardlinks auf der Windowsseite im NTFS erzeugt worden sind.

Dies kann man auch nachprüfen. Allerdings geht das nicht immer mit W10-Bordmitteln.
Man könnte folgendes verwenden (unter Windows 10):
1. "Link Shell Extension" für den Windows Explorer von Hermann Schinagl 
(http://schinagl.priv.at/nt/hardlinkshellext/linkshellextension.html). Da kann man im Explorer für eine bestimmte Datei in ihren 
Dateieigenschaften in einem (neuen) Tab "Link Eigenschaften" alle verlinkten Dateinamen sehen.
1. "fsutil" Utility (siehe: "https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/fsutil"). Das ist 
wohl im W10 enthalten, man muss aber offensichtlich vorher das "Windows Subsystem for Linux" aktivieren.

Was mich etwas stutzig macht, sind die Warnings im rnapshot.log bei der Sicherung des /etc-Verzeichnisses:
--------------------------------
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1165) [sender=3.1.1]
WARNING: Some files and/or directories in /etc/ only transferred partially during rsync operation
--------------------------------

(Aber auch in extn-Verzeichnissen hat rsync ja standardmäßig ein Problem mit Socket- oder Device-Files...)

Bei den Berechtigungen für das (übergeordnete) Windows Backup-Verzeichnis und für das Windows-Share selbst muss man u.U. auf der 
Windows-Seite etwas nachjustieren, da das Backup unter root/Administrator ausgeführt wird.
Außerdem erhalten alle gesicherten Dateien und Verzeichnisse  "root" als Owner und Group und erben die Permissions der 
übergeordneten Windows-Verzeichnisses/Linux-Mountpoints. Das ist wichtig zu wissen beim Backup-Restore.

Es funktioniert aber (im Prinzip)!


2. Backup auf NTFS-formatiertes Speichermedium, lokal ans Eisfair-System gemountet.

Aus das funktioniert (bzgl Hardlinks) einwandfrei. Es gibt hier aber die o.e. Warnings nicht.

Die Punkte wg. geänderter owner/group-Attribute und File-Permissions bei den gesicherten Daten bestehen auch hier!


3. Backup-Restore:

Hier muss man aufpassen, da die Dateien ja nicht auf der NTFS-Seite in "Container" gesichert werden (z.B. ZIP/TAR) sondern 
einzeln als diskrete Dateien in NTFS-Verzeichnisse: Geänderte Owner/Group-Namen (immer root/root) und geänderte Permissions.

Beim Restore ("cp") einer gesicherten Datei (Windows-Seite) auf die noch bestehende lokale Datei (Linux-Seite) werden Owner, 
Group und Permission der lokalen Datei übernommen. Wenn die lokale Datei _nicht mehr_ existiert, werden die Werte der 
gesicherten Datei übernommen, die "falsch" sein können!

Um dieses Problem zu umgehen, habe ich zwei Methoden gefunden, siehe: 
https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/fsutil
Beide Methoden sammeln - als PostExec-Scripts, ggf. zu rsnapshot - bei jedem Backup für jede Datei die betreffenden Infos zu 
Permissions, Owner, Group in eine Datei, die dann unmittelbar nach dem Restore auf die Dateien angewendet werden. Somit werden 
die originalen Datei-Attribute wieder hergestellt:

1. mittels ACL-Utilities "getfacl" und "setfacl". Das erfordert die Installation des ACL-Pakets auf dem Eisfair-System

2. "find" Skripts, siehe Artikel.  (raffiniert!, finde ich)



4. Fazit.

Es funktioniert: Hardlinks werden auf dem NTFS-Medium erzeugt.

Problematisch finde ich die Restore-Aktionen, da man ggf. auch geänderte Owner/Group und Permissions wiederherstellen muss. Hier 
wäre eine Backupsoftware, die die Sicherungen in Container speichert geeigneter, z.B. "backup-zip" oder "backup-manager".

Es wäre wahrscheinlich auch ratsam, _unter Windows_ auf NTFS-Medien zu sichern. Geeignete Windows Bakup-Programme gibt zahlreich.



Sorry für den langen Report. Ich hoffe ich habe mich einigermaßen verständlich ausgedrückt... :)

Viele Grüße. / Hilmar.






Am 28.08.18 um 13:01 schrieb Hilmar Böhm:
> Hallo Marcus,
> 
> 1.4.6 installiert und Änderungen gecheckt: Alles Ok. Danke.
> 
>> Nun fällt mir auf, das on sowieso sprachlich nicht ganz korrekt wäre, da es
>> um den Mountpoint geht, sodass ich das nach to geändert habe.
> Prima. Getestet: OK.
> 
>> Gleichzeitig noch den Menupunkt "View log file" ergänzt.
> Das ist eine echt nützliche Menü-Option!
> 
> Ich hätte noch eine Sache, die ich gerne mal ausprobieren wollte. Im Laufe des 1.2.0-Threads gab es mal die Frage (Stefan 
> Puschek?, ob NTFS (Windows) als Backupziel möglich sei und die Frage ob NTFS Hardlinks unterstützt bzw. kennt.
> 
> Ich habe folgenden Artikel gefunden:
>      https://docs.microsoft.com/en-us/windows/desktop/fileio/hard-links-and-junctions
> 
> Danach gibt es Hardlinks in NTFS. Allerdings muss dazu beim Anlegen eines Links die spezielle Funktion "CreateHardLink" 
> verwendet werden. Da wäre ich mir allerdings nicht so sicher, ob der CIFS-Filesystemtreiber bzw. Samba über den SMB-Share im 
> Linux-System das überhaupt kennen und unterstützen.


Mehr Informationen über die Mailingliste Eisfair