ZFS: Difference between revisions
No edit summary |
No edit summary |
||
(33 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
==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 | 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 | 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?== | |||
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. <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: