rsync 2 szerver kozott

Fórumok

Sziasztok,

2 szerver adott konyvtarat szeretnem szinkronizalni.
pelda:

a)
a szerver1-en levo fajlok:
file1
file2

b)
szinkronizacio szerver2-rol (atveszi a 2 fajlt es letrehozza szerver2-n)

c)
file3,file4 letrehozva szerver1-n

d)
szerver1 shutdown

e)
szerver2-n most letrehozom ujonnan a file4 fajlt

f)
szerver1 feljon

milyen parametereket kene az rsync-ben hasznalnom, hogy
a 2 rendszer kozt az adott konyvtar szinkronizalodjon?
(azaz, file4 atkerul a szerver2-re, es az ujonnan letrehozott file3 szerver2-rol atkerul szerver1-re)

Megoldhato ez?
Koszonom elore a magyarazatot.
ardi

Hozzászólások

Azt érzem kisebb problémának, hogy file3 valahogy visszakerüljön a server1-re - de mi a helyzet a file4-gyel? Az ebben a felállásban már mindkét gépen létezik - de eltérő tartalommal! Ekkor mi alapján mondjam azt, hogy a server1-en lévővel kell felülírni a server2-n lévőt és nem fordítva? Oké, hogy a server1 gépen van az újabb - de ettől még lehet, hogy az érdemi adat a régebbi állományban van! Ráadásul mi a teendő abban az esetben ha mondjuk file5 állomány csak az egyik gépen van meg. Ekkor mi történt? A másikról törölték, tehát a rendszer úgy hozható szinkronba, ha innen is törlésre kerül - vagy itt jött létre és így a helyes válasz az, hogy át kell másolni a másik szerverre is? Ezt neked rsync eldönteni nem fogja.
Megoldásra javaslatok:
- az rsync fusson percenként, hogy minél kisebb legyen az esélye annak, hogy az általad vázolt eset bekövetkezzen
- a szolgáltatás megnyitása _előtt_ fusson le egy rsync - ezzel kizárható az általad vázolt eset, mert előbb átkerül server1-re a server2-n létre hozott file3, file4, minthogy a server1-en egy újabb file4-et létre hozhatnának.
- hogy a file5 kapcsán vázolt helyzet semmiképp ne állhasson elő, egyszerre mindig csak egy szerveren futhat a szolgáltatás, annak a könyvtára az aktuális, azt kell mindig a másikra áttenni - ott meg csak az rsync miatt változhat a könyvtár szerkezet.
Az igazán nagyágyú egyébként az, ha drbd-t használsz aktív-aktív felállással és erre ocfs-t (Oracle Clustered FileSystem) ültetsz - ekkor a teljes szinkront automatikusan az alacsonyabb réteg biztosítja. De ez nem rsync-es megoldás... :-)

Igen, nem olvastam el rendesen, a file4 kérdéses. Ha jól értem, akkor a két gépen külön-külön lett létrehozva és az itt leírtakból az derül ki, hogy a régebbit kéne megtartani. Emlékeim szerint az unison kérdez ilyenkor és talán paraméterezhető hogy batch módban miképpen döntsön, de a jelen esetben még az se biztos hogy az ember jól dönt, nemhogy a script :D

Talan rosszul fogalmaztam, de en ugy ertettem, hogy mivel szerver1 ki volt kapcsolva, a szerver2-n letrehozott file4 az ujabb.
Tehat amikor szerver1 feljon, akkor annak kene atkerulnie szerver2-rol szerver1-re.
nezegetek most mas megoldasokat - a glusterfs avagy georeplication nem egyszerubb megoldas?
vmi olyasmit szeretnek - amit mar elkezdtem ezen a forumon, hogy a 2 gep kozott mukodik az ucarp es kozos vip (virtualis ip)-t hasznal a kettos.
Ha ftp-zek erre a vip-re, a fajlok a szerver1-re kerulnek - mivel ez master.
A slave csak szikronizalna.
Ha lemegy a szerver1, szerver2 lesz master, de amint feljon a szerver1, rogton masterre valt.
ardi

Erre a fenti kombo amit javasoltam tökeletesen alkamas,

röviden:

- a DRBD manageli a filerendszereket törödik azzal hogy szinkronban legyenek a ket gep között pl.:csinalsz rajta egy NFS vagy Samba share-t ( a te estedben lehtne ez egy master - slave mod a DRBD-ben)
- a heartbeat/pacemaker pedig azt felügyeli hogy a cluster elerhetö legyen, ö folyamtosan nezi hogy szerver1 pingelehetö-e ha nem atvalt szerver2-re

http://drbd.linbit.com/users-guide-8.3/s-heartbeat-config.html
http://drbd.linbit.com/users-guide-8.3/s-heartbeat-r1.html

sztem olvass utana szemely szerint ezt ajanlanam.

EN rsync-kel nem csinalnek ilyet, de amugy lsyncd asszem tudja, amit szeretnel.