mai ötletem: amolyan parasztos backup szétterítve helyi gépekre :)

a következő okosság jutott eszembe, természetesen a vécén, hol máshol! :)
van egy samba fájlszerver és egy pár windows kliens. a szerverben mostmár három vinyó. napi, heti és havi mentések, úgy szétszórva a vinyókon, hogyha bármelyik vinyó kiesik, legrosszabb esetben is az előző napi mentésből megvan minden. plussz a havi packok külső vinyóra is mentve és benn a széfben. ez így szép és jó. de mi van, ha kigyullad a szervergép és minden elég? akkor ott vannak a ahvi mentések, de az elég sovány.
viszont a kliens gépeken csak az oprendszer és a tervezőprogram van, minden adat a sambán. és elég modern gépek, a legkisebb vinyó is 500 gigás, amiből 450 szabad minimum.
arra gondoltam, ezekre csinálok egy rejtett mappát, csak amdin olvashatja, a userek nem is látják, és ezeket a szerveren felmountolom cifs-el, és a teljes fájlszervert ezekre is kitolom naponta mirrordir-el. így nem lenne sok adatforgalom, mert csak a napi kisebb változásokat kéne frissítenie.
csak kérdés, hogy a mirrordir megy-e cifs-re (ntfs van a vinyókon), illetve hogy az x millió kis fájl az még mirrordirrel is rohadt lassú lenne, már maga az ellenőrzés, nem a másolás. a cifs rohadalom lassú.
hmmm, asszem teszek egy próbát a saját gépemmel, aztán ha működik, akkor felmountolom az összes gépet és hagy szóljon. azért ha 5-6 gépen van meg minden adat, az már eléggé safe lenne.

Hozzászólások

es ha ugy csinalod hogy nap vegen csinalsz 1 tar.gz filet, es masnap azt masolod szet kliensekre ?

torrent belső hálón? én mostanában néha még lanon is torrenttel másolok, mert a cifs eszement lassú és így az adatintegritás is biztosított. mondjuk fájltartalom diff-et nem kezel, azt kézzel kell valahogy belevenni vagy a változott fájlokat hagyod átmásolódni, ez csak egy ötlet az adatterítésre.

én is attól félek, hogy a cifs a milliónyi kis fájllal lassú lesz.
egyenlőre most csak egy 6918376614 bájtos tar.gz-t toltam át cifs-el a saját gépemre:

time cp samba-2009-11-02.tgz /mnt/lan/temp

real    3m14.002s
user    0m0.516s
sys     0m37.606s

ami olyan 35.66 MB/s, az végülis nem olyan vészes.
most megnézek egy mirrordir-t pár millió fájllal :)

----------------------------------
feel the beat - it's everywhere!

ha mar bonyolitunk:
windows gepekre egy iscsi target (pl StarPort iSCSI and ATA-over-Ethernet Initiator), ezt mountolod, majd rsnapshottal csinalsz backupot (rsyncet hasznal, tehat csak azt nyomatja at ami fajl valtozott, az egyes backupokban a valtozatlan fajlok hardlinkelve vannak)

--
A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!

és ez miért jó nekem? mindenféle iscsi nélkül is fel tudom mountolni a windows gépeket, akkor minek még egy plussz bigyót felraknom minden gépre? ingyenes ez? megbízható ez? szóval nem látom értelmét.
a hardlinkes megoldások meg nem jók. rsyncnek se sok értelmét láttam még, sosem értem miért ezt használja mindenki.
nekem a mirrordir az tökéletes megoldás.

----------------------------------
feel the beat - it's everywhere!

újabb mérés sok fájllal: tesztkönyvtár: 15,2 GB (16 343 512 165 Bytes), 27981 fájl, 1468 alkönyvtár
első mirrordir futás:

time mirrordir --no-netrc /media/data/samba/tesztkonyvtar/ /mnt/lan/temp/tesztkonyvtar/

real    17m36.821s
user    0m8.533s
sys     2m33.834s

azaz kb. 15,46 MB/s. na ez már elég soványnak tűnik, de ez csak egyszer fut le és nem is vészes az a 17,5 perc...

második körben frissítés:

time mirrordir --no-netrc -v /media/data/samba/tesztkonyvtar/ /mnt/lan/temp/tesztkonyvtar/
{...}
mirrordir: Total mirrored: 15975440kB

real    0m2.283s
user    0m0.428s
sys     0m1.300s

na ez már klassz :)

most már csak a cifs-et kéne rendes kódlappal mountolni :) meg kipróbálom a directio opciót is. bár végülis minek, az első mirrordirt gyórsítaná csak, azt meg minek?

----------------------------------
feel the beat - it's everywhere!

na közben rászaladtam erre... szerencsére ott a megoldás is.
most épp azon gondolkozok, hogy hogyan kéne ezt (mármint a share felmountolást, mirrordir-t rá, majd lecsatolást) lescriptelni 5 gépre mondjuk?
1. először is kéne egy ellenőrzés, hogy a gép egyáltalán be van-e kapcsolva
2. majd mountolni, ellenőrizni, hogy valóban felmountolódott-e (különben csak megint teleírom a root-ot :) )
3. mirrordir
4. umount
egy for ciklus tök jó lenne erre, csak az a baj, hogy vannak a gépek nevei, ezt lehetne for-ral, de az admin jelszó nem ugyanaz minden gépen, hanem gépenként más, úgyhogy erre kéne egy külön táblázat vagy nem is tudom...
lehet bash-ban ilyen táblázatokat meg pointereket használni valahogy? vagy egy külön szövegfájlból olvastassam be a gépneveket és jelszavakat?