LizardFS
LizardFS on MooseFSi fork, mis tekkis peale Moose kommertsiks minemist. Arendatud on mõlemad tarkvarad Poolas. Üldiselt on tegemist vägagi sarnaste tarkvaradega. Hetkeseisuga tundus peamine erinevus olevas selles, et LizardFSil toimis koormuse jagamise algoritm paremini. Samas suutis MooseFS jällegi automaatselt ümberlülitada metadata serverite Master-Slave olekuid.
Põhimõtteliselt koosneb LisardFS kahest suurest komponendist: Metadata ja chunk server. Metadata hoiab endas inodesid kaustasid jms. Korraga saab seejuures olla vaid üks metadata server master seisus, aga ta saab omada tervet hulka slave servereid mis temalt infot sünkroniseerivad. Metadata servereid on lisaks kahte sorti, master ja shadow master, viimaseid võib olla mitu. Kolmas asi on metalogger (mille logidest on võimalik samuti taastada metadata serverit). Chunk server sisaldab deemonit ja kõvakettaid kuhu paigaldatakse reaalsed andmeblokid.
Olles startinud ühe metadata serveri saab kliendis juba failisüsteemi külge haakida ja sinna nii faile kui kaustu tekitada, ainult failid ei saa enne chunk serverite külgehaakimist olla suuremad kui 0 baidi pikkusega.
Failisüsteem ise on mounditav üle fuse. Eraldi jaotisi (ingliskeeles pool) failisüsteemis pole aga küll saab faili-kataloogi baasil määrata replikatsiooni tasemeid ning üle fuse saab külge haakida ka alamkaustu. Failisüsteemis on olemas na nn "prügikast" ehk ühtegi faili ei kustutata kohe vaid esmalt märgitakse see metadata serveris ära ning kustutatakse teatud invervalliga. Lisaks on võimalik teha snapshotte ja määrata paroole.
Tasub ilmselt veel ära märkida, et lisaks Linuxile töötab LizardFS ka FreeBSD10 peal.
Paigaldamine
Järgnev buildimine, installimine ning kasutaja loomine tuleb viia läbi nii metadata ja chunk serveritel kui klientidel. Buildimiseks on vajalik cmake ja kliendi (mfsmount) ehitamiseks ka fuse lib.
tar xf lizardfs-2.5.4.tar.gz cd lizardfs-2.5.4 ./configure make make install
Tekitame grupi ning kasutaja
groupadd -g 900 mfs useradd -g mfs -M -u 900 mfs
Seadistame metadata serveri asukoha, see tuleb teha nii chunck serverite kui klientidel
echo "10.7.0.1 mfsmaster" >> /etc/hosts
Metadata serveri seadistus
Nimetame mõned dist konfid ümber, kusjuures vaikekonfid tunduvad minimaalsete täiendamisega igati kasutamiseks sobivat.
cd /etc/mfs cp mfsexports.cfg.dist mfsexports.cfg cp mfsmaster.cfg.dist mfsmaster.cfg
Teeme kausta metadata hoiustamiseks, seadistame õigusi jne
mkdir /srv/mfs cp /var/lib/mfs/metadata.mfs.empty /srv/mfs/metadata.mfs chown -R mfs:mfs /srv/mfs
Lisame metadata asukohta konfiguratsiooni
echo "DATA_PATH = /srv/mfs" >> mfsmaster.cfg
Käivitame metadata serveri
mfsmaster
Käivitame dashboardi veebiserveri
mfscgiserv
Tegemist on veebiliidesega, milleni pääseb http://mfsmaster/ urliga ning kus näeb LizardFS hetkeseisu graafikuid, statistikaid jms.
Data nodede(de) seadistus
Esiteks tuleb kõigile nodes asuvatele kettaseadmetele tekitada failisüsteem, kettad külge haakida ning /etc/mfs/mfshdd.cfg konfifaili defineerida mountpoindid. Näiteks nelja ketta korral:
/srv/mfs1 /srv/mfs2 /srv/mfs3 /srv/mfs4
Chunkserveri startimiseks tuleb anda käsk
# mfschunkserver
Klient
Kliendis failisüsteemi haakimiseks tuleb anda käsk
# mfsmount /srv
Kui kõik läks hästi siis peaks tulemust nägema df käsuga
mfs#mfsmaster:9421 51T 2.1G 51T 1% /srv
Haldamine
Koopiate määramiseks on kliendi arvutis utiliit mfssetgoal, näiteks
# mfssetgoal 2 /srv
või
# mfssetgoal 2 /srv/fail/suva
Uutele failidele kehtib kataloogile määratud replikatsioonide poliitika. Kui kataloogi replikatsioonide poliitikat muuta, jäävad vanad failid endise tasemega. Poliitika vaatamiseks on käsk
# mfssetgoal /srv/fail
Fuse kliendi häälestamine
Fuse kliendi osas, millega failisüsteem külge haagitakse, tundub, et palju aega kulub context switchidele (ehk kernel-userspace vahelisele sõelumisele), mida paistab saab pisut parandada kui kinnistada fuse protsess taskset utiliidi abil kindlale tuumale mistõttu saab fuse kasutada ühe ja sama protsessori cachet ja see tundus testimisel vähendavat üleüldist protsessori koormust ning parandavat jõudlust.
Käsk ise võiks olla selline
# taskset 01 mfsmount /srv