Samba Sysvol Repl

german

#1

Hallo zusammen,

folgende Frage:

Die Sysvol Replizierung funktioniert ja in alle Richtungen, da auf Samba-Ebene alle DC’s gleichgestellt sind.

Soweit so gut, allerdings haben wir bei einem Kunden das Problem, dass gelöschte Files (alte Logon-Scripts) nicht “Synchronisiert” (also gelöscht) werden.

Sprich: Admin löscht Logon Script auf dem DC Master, DC Backup synct das Logon Script dann wieder zurück, und somit ist das Script wieder auf beiden Servern vorhanden.

Kann man das irgendwie “besser” handhaben?

lg,
Rene


#2

Das Verhalten der SysVol-Synchronisation ist wie erwartet [1].
Da die Synchronisation unterschiedlicher Versionsstände alles andere als trivial ist, haben wir uns hier dafür entschieden nichts zu löschen. Als Beispiel sei hier genannt:

Eine Datei wird auf einem Slave angelegt. Nun schaut der Master und kopiert diese auf sein lokales SysVol. Auf einem zweiten Slave ist die Datei (noch) nicht vorhanden. Wie entscheidet der Master nun, ob die Datei noch synchronisiert werden muß oder gelöscht wurde.

Freundlicher Gruß
Nico Stöckigt


[1] [color=#004080]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:
[ol]
[li]Der “downstream S4 DC” Synchronisiert “/var/lib/samba/sysvol” vom “samba4/sysvol/sync/host” in sein eigenes “/var/lib/samba/sysvol” Verzeichnis.[/li]
[li]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.[/li]
[li]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.[/li]
[li]Dass ist das trigger-file, das anzeigt, dass der “downstream S4 DC” noch aktiv ist und in die weitere Replikation einbezogen werden möchte.[/li][/ol]
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:
[ol]
[li]Der “samba4/sysvol/sync/host” löscht das trigger-file.[/li]
[li]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.[/li]
[li]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.[/li]
[li]Dateien die in “/var/cache/univention-samba4/sysvol-sync/” nicht mehr vorhanden sind werden dabei nicht gelöscht.[/li][/ol]
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.[/color]