Ablauf der Sysvol-Sync Replikation
Es gibt typischerweise einen, ggf. aber auch mehrere Sysvol-Sync-Hosts (definiert in “samba4/sysvol/sync/host”). Alle andern Samba4 DCs sind sog. “downstream S4 DCs” .
Führt ein “downstream S4 DC” sysvol-sync.sh aus, passieren zwei Dinge:
- Der “downstream S4 DC” Synchronisiert “/var/lib/samba/sysvol” vom “samba4/sysvol/sync/host” in sein eigenes “/var/lib/samba/sysvol” Verzeichnis.
- Dabei wird nichts gelöscht, Dateien/Verzeichnisse die auf dem “samba4/sysvol/sync/host” neuer sind als auf dem “downstream S4 DC” werden aber überschrieben.
- Der “downstream S4 DC” legt auf dem “samba4/sysvol/sync/host” unter “/var/cache/univention-samba4/sysvol-sync/.trigger” eine Datei an die nach seinem Hostnamen benannt ist.
- Dass ist das trigger-file, das anzeigt, dass der “downstream S4 DC” noch aktiv ist und in die weitere Replikation einbezogen werden möchte.
Führt ein “samba4/sysvol/sync/host” sysvol-sync.sh aus, wird über alle “trigger files” itteriert und für jedes gefundene (d.h. für jeden “downstream S4 DC” der zwischenzeitlich sysvol-sync.sh ausgeführt hat) werden die folgenden Schritte ausgeführt:
- Der “samba4/sysvol/sync/host” löscht das trigger-file.
- Der “samba4/sysvol/sync/host” synchronisiert “/var/lib/samba/sysvol” vom “downstream S4 DC” nach “/var/cache/univention-samba4/sysvol-sync/”. Dabei werden in der lokalen Kopie (d.h. auf dem “samba4/sysvol/sync/host”) nur Dateien beibehalten, die auf dem “downstream S4 DC” aktuell vorhanden sind.
- Der “samba4/sysvol/sync/host” synchronisiert “/var/cache/univention-samba4/sysvol-sync/” in sein eigenes “/var/lib/samba/sysvol” und führt so dass Sysvol-Verzeichnis des “downstream S4 DC” mit seinem eigenen (und allen anderen) zusammen.
- Dateien die in “/var/cache/univention-samba4/sysvol-sync/” nicht mehr vorhanden sind werden dabei nicht gelöscht.
Im Anschluss daran führt auch dieser bis hier als “upstream” bezeichnete Sysvol-Sync-Host die oberen beiden Schritte aus, falls auch bei ihm lokal per UCR ein “samba4/sysvol/sync/host” definiert ist. Dies ist wie gesagt normalerweise nicht der Fall.