"Poor mans CA" Brug rsync til replikering mellem 2 eller flere lokationer (live)
Jeg har valgt at kalde dette for "Poor mans CA" (CA = Continues Access), da dette skal udføres på standalone Linux maskiner på forskellige lokationer.
Jeg har flere Linux maskiner, hvor jeg skal have replikeret data/filer mellem disse. Der skal udelukkende flyttes data fra "master" serveren til "slaverne", og på "slaverne" bliver filerne kun læst. Dette skal ske løbene, og pt. udfører jeg rsync hvert 2 min.
Er der ikke en mulighed for at have en daemon kørene som løbene flytter filerne i stedet for at jeg skal køre rsync i crontab hvert 2 min, for at hente filer?
Klienten kan ikke køre som en daemon, det er kun serveren der kan det.
Du kan muligvis selv scripte en wrapper der hele tiden scanner for ændringer og så kører rsync kommandoen når der er ændringer - men det er ikke noget rsync kan af sig selv ... hvis du er heldig er der måske nogen der allerede har gjort det.
rsync kan jo allerede lave selve scanningen, og det gør den også i dag, så det kune er ændringerne jeg flytter.
Men der hvor jeg vil hen, er at kunne have en mere jævn sync mulighed, men en applikation der kørte heletiden og når der så lå en ny fil, skulle den flyttes med det samme. (i dag går der op til 2 min).
Jeg ved godt at 2 min er ok hurtigt, men der er jo altid mulighed for forbedringer. :)
Jeg forstår godt hvor du vil hen, men det er ikke rsync du skal bruge til sådan en løsning (det er ikke det det er lavet til) - hvilken linux distro bruger du, så kan jeg se om jeg kender et distribueret filsystem hvor man har mindst 2 kopier af data.
På den måde vil du få High availability på dine data (de er spredt rundt på dine linux bokse og man vil så skulle mounte filsystemet på de maskiner der har brug for adgang).
Fordelen er, at hvis du har mere end 2 maskiner vil det samlede diskforbrug være mindre - og ændringer skrevet til det distribuerede fs vil automatisk være tilgængeligt på alle klienter såsnart ændringerne er skrevet.
Jeg har også selv tænkt på 2 alternative løsninger, hvor "master" skriver filen, men filerne ligger enten på et iSCSI/NAS/SAN eller NFS mountpoint hvor det kun er masterserveren, som har skrive rettigheder, og slaverne kan læse.
Men det vil kræve at alle mine servere står på én og samme lokation.
Jeg har pt. 10 servere, hvor master står i Holland. Resten stor i Holland, Belgien, Tyskland, Danmark og Sverige. - Så måske jeg skulle vælge at samle maskinerne til at begynde med.
Der er jo mange fordele ved at have stor geografisk spredning, du ksn desværre fra cron "kun" køre rsync 1 gang i minuttet, hvis det ikke er nok bliver du nok nødt til at tænke i nfs/iscsi/gfs eller nas løsninger - eller skrive et script der feks looper over: lav en hash værdi af dit dataområde, sammenholder det med forrige hashværdi og hvis de er ændrede så kør rsynk tilbage til start
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.