ZFS

From ICO wiki
Revision as of 21:36, 27 May 2018 by Spihelga (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

Lühikirjeldus ja ajalugu

ZFS (Z-failisüsteem) on kombinatsioon failisüsteemist ja loogiliste kettajagude haldamise süsteemist. Selle disainis SUN Microsystems ning praeguseks omanikuks on Oracle Corporation. Oracle definistiooni järgi on ZFS järgmine: "ZFS failisüsteem on revolutsiooniline uus failisüsteem, mis muudab fundamentaalselt failisüsteemide administreerimist. Sellel on eelised ja omadused, mida ei leia tänapäeval üheltki teiselt failisüsteemilt. ZFS on robustne, skaleeritav ning seda on lihtne hallata. See pakub oluliselt lihtsustatud haldamise mudelit. Kuna ZFS kasutab hierarhilist failisüsteemi paigutust, süsteemi osade päritavust, automaatset haakimispunktide ja NFS (Network File System) semantika haldust, siis muudab see failisüsteemide loomise ja haldamise lihtsaks ning ei eelda toimingute läbi viimiseks mitmete kästude sisestamist ega konfiguratsiooni failide muutmist. Reserveerimist, kokkupakkimist või mitmete erinevate failisüsteemide haakepunkte on võimalik määrata ühe käsuga". [1]

ZFS'i kasutatakse üldjuhul organisatsioonide poolt serveritel olevate andmete haldamiseks ning personaalarvutitel on kasutamine pigem vähe levinud. ZFS on loodud kaitsma andmeid hävimise eest ning nende tervikluse tagamiseks. Igal faili jaoks on süsteemis kontrollsumma, mille põhjal hinnatakse ega fail ei ole kahjustunud. ZFS'i nimes kajastatud Z tuleneb omadusest suuta hallata zettabaiti informatsiooni, mis omakorda tähendab, et süsteem on võimeline haldama väga suuri andmemahtusid. Selleks, et suuri andmemahtusid hallata on ZFS'il võimekus ehitada tarkvaraline RAID süsteem, lisades mitmeid kettaid ühte kogumikku ning tekitades nii suur virtuaalne ketas. Suure virtuaalse ketta loomiseks ei ole vaja eraldi riistvara, piisab vaid üldlevinud ketastest. Siiski on ZFS'i kasutamisel eelised ka koduarvutitel, kus on oluline andmete terviklus, pakkudes nii alternatiivi näiteks LVM'ile. ZFS'i toetavad mitmed open source distributsioonid, mõningad neist on leitavad järgnevalt lingilt: ZFS'i toetavad distributsioonid. [2]

Kuidas paigaldada ZFS Ubuntu 16.04'le?

Kuigi Ubuntul ei ole ZFS vaikimisi paigaldatud on selle paigaldamine triviaalne. Siiski tasub jälgida, et ZFS'i toetab ametlikult Ubuntu 64 bitine versioon. Esmalt tasub uuendada pakettide nimistut:

sudo apt-get update

ZFS'i paigaldamiseks piisab järgnevast käsust:

sudo apt-get install zfs

Kuidas luua ZFS ketaste grupp?

ZFS ketaste grupp on võimalik luua nii mitmest füüsilisest kettast kui ka ühest kettast. Näiteks on võimalik kolmest füüsilisest kettast luua ZFS kettagrupp.

Tähelepanu! Järgnevates näidetes kasutatakse ketaste identifitseerimist kujul /dev/sdb. Süsteemi töökindluse huvides on soovitav kasutada ketaste kirjeldamiseks viisi /dev/disk/by-uuid.

RAID0 puhul tuleb silmas pidada, et info kirjutatakse kõikidele ketastele, kuid varukoopiat ei tehta. Seega kui 1 ketas peaks riknema, hävib kogu kettagrupp. Sellise ülesehituse kasutamiseks on soovitav alati omada süsteemist varukoopiat. RAID0 laadse kettagrupi loomiseks on järgnev käsk (kasutatakse kahte ketast):

sudo zpool create pool-name /dev/sdb /dev/sdc /dev/sdd

RAID1 konfiguratsioonis tekitatakse salvestusruumist identne koopia. Järgnevas näites on 3 ketast ning kõikidele kirjutatakse sama informatsioon, seega kui isegi 2 ketast antud kettagrupis riknevad on võimalik andmed taastada. RAID1 laadse kettagrupi loomiseks on järgnev käsk (kasutatakse kahte ketast):

sudo zpool create pool-name mirror /dev/sdb /dev/sdc /dev/sdd

RAID5 konfiguratsioonis on võimalik kasutada suurem protsent lisatavate ketaste kogumahust. Sellises konfiguratsioonis talub süsteem ühe ketta hävinemist. RAID5 laadse kettagrupi loomisks on järgnev käsk (kasutatakse 4 ketast):

sudo zpool create pool-name raidz /dev/sdb /dev/sdc /dev/sdd /dev/sde

RAID10 laadse kettagrupi loomiseks on järgnevad võimalused (kasutatakse 4 ketast):

sudo zpool create example mirror /dev/sdb /dev/sdc mirror /dev/sdd /dev/sde

või

sudo zpool create example mirror /dev/sdb /dev/sdc
sudo zpool add example mirror /dev/sdd /dev/sde

Eelnevate käskude näidetes tuleb "pool-name" asendada endale sobiva kettagrupi nimega ning /dev/sdb, /dev/sdc, /dev/sdd ja /dev/sde asendada ketaste nimedega, mida soovitakse kettagruppi lisada.

Kettanimede leidmiseks on võimalik kasutada näiteks järgnevaid käske:

sudo lsblk või sudo fdisk -l

Peale ühe või mitme kettagrupi moodustamist on võimalik kontrollida nende staatust järgneva käsuga:

sudo zpool status

Kuvatakse järgnev info:

   pool: pool-name
  state: ONLINE
   scan: non-requested
 config:
       NAME               STATE      READ           WRITE       CKSUM
       Pool-name          ONLINE       0              0            0 
       sdb                ONLINE       0              0            0 
       sdc                ONLINE       0              0            0 
       sdd                ONLINE       0              0            0 
errors: No known data errors

Vaikimisi monteeritakse kettagrupp root kausta. Seega kui luua kettagrupp nimega pool-name, siis on selle kausta asukohaks /pool-name.

Uue ketta kettagruppi lisamiseks on järgnev käsk:

sudo zpool add pool-name /dev/sdx

Siin on pool-name puhul tegemist kettagrupiga, kuhu soovitakse uus ketas lisada ning /dev/sdx on ketta nimi mida lisatakse.

Kettagrupi eemaldamiseks on järgnev käsk:

sudo zpool destroy pool-name

Andmete täielikkuse kontroll

ZFS pakub võimalust kontrollida, kas kettagrupi andmed on täielikud.

Selleks on järgnev käsk:

sudo zpool scrub pool-name

Scrub funktrooni staatust on võimalik vaadata sarnasele kettagrupi staatuse vaatamisele:

sudo zpool status -v pool-name

Ketaste vahetamine

Kettaid on võimalik eemaldada kettagrupist ning uus ketas asendada määratud kettagruppi

Ketta eemaldamiseks on järgnev käsk:

sudo zpool detach pool-name /dev/sde

Uue ketta lisamiseks määratud kettagruppi:

sudo zpool attach pool-name /dev/sdf /dev/sde  -f

Antud juhul lisatakse uus ketas kettagruppi "pool-name" peegeldama ketst /dev/sdf (RAID10 konfiguratsioonis). Lisatavaks kettaks on /dev/sde.

Peale ketta lisamist tuleb käivitada andmete täielikkuse kontroll (scrub) ning selle käigus luuakse /dev/sdf kettast koopia /dev/sde kettale.

sudo zpool scrub mypool

Peale ketta eelnevaid toiminguid on mõistlik kontrollida kettagrupi staatust.

sudo zpool status

Varutõmmis

ZFS varutõmmise tegemisel luuakse vaid lugemisõigusega fail, mille abil on võimalik taastada nii failisüsteemi endine olek kui ka taastada üksikuid faile eelnevalt tehtud tõmmisest.

Järgnevas näites tehakse varutõmmis failisüsteemist /pool-name/projects

sudo zfs snapshot -r pool-name/projects@snap1

Varutõmmiste kuvamiseks on järgnev käsk:

sudo zfs list -t snapshot

Andmete taastamiseks varutõmmisest:

sudo zfs rollback pool-name/projects@snap1

Varutõmmise kustutamiseks:

sudo zfs destroy pool-name/projects@snap1


Antud näited on vaid mõned valitud laialdasemalt levinud võimalused, mida ZFS pakub. [3] Põhjalikuma info leidmiseks külastada järgnevat veebilehte: GitHub ZFS FAQ. [4]

Autor

Sander Pihelgas
Õppegrupp: AK21
Kevad 2018

References: