LizardFS

Allikas: Kuutõrvaja
Redaktsioon seisuga 15. jaanuar 2015, kell 15:10 kasutajalt Jj (arutelu | kaastöö) (Fuse kliendi häälestamine)

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 komponendist: Metadata server ja Junkserver. 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. Lisaks on olemas metadata logger ja tekkinud logist saab omakorda teha masteri (Logimine ise ei mõjuta jõudlust). Junk serveris asuvad kõvakettad kuhu paigaldatakse andmed.

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 junk serverite külgehaakimist olla suuremad kui 0 baidi pikkusega.

Failisüsteem ise on mounditav üle fuse. Poole 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.

Paigaldamine

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

Kõigis nodedes

tar xfv /root/lizardfs.tbz
echo "10.7.0.1 mfsmaster" >> /etc/hosts
groupadd -g 900 mfs
useradd -g mfs -M -u 900 mfs

Metadata serveris

cd /etc/mfs
cp mfsexports.cfg.dist mfsexports.cfg
cp mfsmaster.cfg.dist mfsmaster.cfg
mkdir /srv/mfs
cp /var/lib/mfs/metadata.mfs.empty /srv/mfs/metadata.mfs
chown -R mfs:mfs /srv/mfs
echo "DATA_PATH = /srv/mfs" >> mfsmaster.cfg
mfsmaster
mfscgiserv

Viimane käsk käivitab dashboardi kust näeb http://localhost:8000/ urlilt graafikuid statistikaid

Data nodedes tuleb kõigile kettaseadmetele tekitada failisüsteem, kettad külge haakida ning /etc/mfs/mfshdd.cfg konfifaili defineerida mountpoindid. Junkserveri startimiseks tuleb anda käsk

# mfschunkserver

Kliendis failisüsteemi haakimiseks

# /root/lizardfs-2.5.4/build-pack/src/mount/fuse/mfsmount /srv

Kasutamine

Koopiate määramiseks on utiliit mfssetgoal, näiteks

# mfssegoal 2 /mnt

või

# mfssetgoal 2 /mnt/fail/suva

Uus replikatsioonide poliitika hakkab kehtima seejuures ainult uutele tekitatavatele failidele. Vanad failid jäävad varasema tasemega.

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 protsessori cachet ja see tundus testimisel vähendavat üleüldist protsessori koormust ning parandavat jõudlust.

Käsk ise võiks olla selline

# taskset 80 /root/lizardfs-2.5.4/build-pack/src/mount/fuse/mfsmount /srv