ZFS: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Spihelga (talk | contribs)
Spihelga (talk | contribs)
No edit summary
 
(25 intermediate revisions by the same user not shown)
Line 1: Line 1:
'''Leht on koostamisel''''
==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 haldada. See pakub oluliselt lihtsustetud 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 haldatavuse lihtsaks ning ei eelda toimingute läbi viimiseks mitmete kästude sisestamist ega konfiguratsiooni failide muutmist. Reserveeringuid, kokkupakkimist või mitmete erinevate failisüsteemide haakepunkte on võimalik määrata ühe käsuga". <ref>[https://docs.oracle.com/cd/E23823_01/html/819-5461/zfsover-2.html#scrolltoc Oracle Solaris ZFS Administration Guide]</ref>
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". <ref>[https://docs.oracle.com/cd/E23823_01/html/819-5461/zfsover-2.html#scrolltoc Oracle Solaris ZFS Administration Guide]</ref>


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 tekidades 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: [http://open-zfs.org/wiki/Distributions#Linux ZFS'i toetavad distributsioonid]. <ref>[https://www.howtogeek.com/272220/how-to-install-and-use-zfs-on-ubuntu-and-why-youd-want-to/ How to install and use ZFS on Ubuntu]</ref>
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: [http://open-zfs.org/wiki/Distributions#Linux ZFS'i toetavad distributsioonid]. <ref>[https://www.howtogeek.com/272220/how-to-install-and-use-zfs-on-ubuntu-and-why-youd-want-to/ How to install and use ZFS on Ubuntu]</ref>


==Kuidas paigaldada ZFS Ubuntu 16.04'le?==
==Kuidas paigaldada ZFS Ubuntu 16.04'le?==
Line 15: Line 15:


==Kuidas luua ZFS ketaste grupp?==
==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.  
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.


RAID0 puhul tuleb silmas pidaad, 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.
'''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 laadse kettagrupi loomiseks on järgnev käsk:
 
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
  sudo zpool create pool-name /dev/sdb /dev/sdc /dev/sdd


RAID1 konfiguratsioonis tekitatakse salvestusruumist 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 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:
RAID1 laadse kettagrupi loomiseks on järgnev käsk (kasutatakse kahte ketast):
  sudo zpool create pool-name mirror /dev/sdb /dev/sdc /dev/sdd
  sudo zpool create pool-name mirror /dev/sdb /dev/sdc /dev/sdd


Eelnevate käskude näidetes tuleb "pool-name" asendada endale sobiva kettagrupi nimega ning /dev/sdb, /dev/sdc ja /dev/sdd asendada ketaste nimedega, mida soovitakse kettagruppi lisada.
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


Kettanimede laidmiseks on võimalik kasutada näiteks järgnevaid käske:
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
  sudo lsblk või sudo fdisk -l


Line 36: Line 48:
     pool: pool-name
     pool: pool-name
   state: ONLINE
   state: ONLINE
    scan: non-requested
    scan: non-requested
config:
  config:
         NAME           STATE       READ     WRITE     CKSUM
         NAME               STATE     READ           WRITE       CKSUM
         Pool-name          ONLINE      0              0            0  
         Pool-name          ONLINE      0              0            0  
         sdb                ONLINE      0              0            0  
         sdb                ONLINE      0              0            0  
         sdc                ONLINE      0              0            0  
         sdc                ONLINE      0              0            0  
         sdd                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. <ref>[https://wiki.ubuntu.com/Kernel/Reference/ZFS Ubuntu wiki - ZFS]</ref> Põhjalikuma info leidmiseks külastada järgnevat veebilehte: [https://github.com/zfsonlinux/zfs/wiki/faq GitHub ZFS FAQ]. <ref>[https://github.com/zfsonlinux/zfs/wiki/faq GitHub ZFS FAQ]</ref>


==Autor==


Sander Pihelgas <br/>
Õppegrupp: AK21 <br/>
Kevad 2018


References: {{reflist}}
References: {{reflist}}


[[Category:Andmesalvestustehnoloogiad]]
[[Category:Andmesalvestustehnoloogiad]]

Latest revision as of 21:36, 27 May 2018

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: