Ero sivun ”ZFS” versioiden välillä
Siirry navigaatioon
Siirry hakuun
p
ei muokkausyhteenvetoa
Ei muokkausyhteenvetoa |
pEi muokkausyhteenvetoa |
||
Rivi 1: | Rivi 1: | ||
ZFS "Zettabyte File System" on SUN:in Solarista varten kehittämä edistyksellinen tiedostojärjestelmä. ZFS on tiedostojärjestelmän ja loogisen levyhallintajärjestelmän yhdistelmä. | '''ZFS''' "Zettabyte File System" on SUN:in Solarista varten kehittämä edistyksellinen tiedostojärjestelmä. ZFS on tiedostojärjestelmän ja loogisen levyhallintajärjestelmän yhdistelmä. | ||
==Mikä ZFS on?== | |||
Solariksen ZFS tiedostojärjestelmä on vallankumouksellinen uusi tiedostojärjestelmä, joka muuttaa perustavanlaatuisesti tapaa, jolla tiedostojärjestelmiä on hallittu. Se tarjoaa ominaisuuksia ja etuja, joita ei löydy mistään toisesta tiedostojärjestelmästä. ZFS on vakaa, skaalautuva ja sen ylläpito on helppoa. | Solariksen ZFS tiedostojärjestelmä on vallankumouksellinen uusi tiedostojärjestelmä, joka muuttaa perustavanlaatuisesti tapaa, jolla tiedostojärjestelmiä on hallittu. Se tarjoaa ominaisuuksia ja etuja, joita ei löydy mistään toisesta tiedostojärjestelmästä. ZFS on vakaa, skaalautuva ja sen ylläpito on helppoa. | ||
ZFS tarjoaa dataintegriteetin, tuen suurille tietomäärille, tilannekuville ja datan kirjoituksen yhteydessä tehtävälle kopioinnille (copy-on-write) sekä tietojen jatkuvan integriteettitarkistuksen ja tuen itse-parantuvalle datalle. ZFS on toteutettu open source -ohjelmistona ja sen lisenssi on CDDL, Common Development and Distribution License. Tämä lisenssi on vaikeuttanut ZFS:n siirtoa Linux-ytimeen. Linuxin natiivi ZFS-siirros on työn alla. ZFS tuotemerkin omistaa [http://www.oracle.com/ Oracle Corporation]. | ZFS tarjoaa dataintegriteetin, tuen suurille tietomäärille, tilannekuville ja datan kirjoituksen yhteydessä tehtävälle kopioinnille (copy-on-write) sekä tietojen jatkuvan integriteettitarkistuksen ja tuen itse-parantuvalle datalle. ZFS on toteutettu open source -ohjelmistona ja sen lisenssi on CDDL, Common Development and Distribution License. Tämä lisenssi on vaikeuttanut ZFS:n siirtoa Linux-ytimeen. Linuxin natiivi ZFS-siirros on työn alla. ZFS tuotemerkin omistaa [http://www.oracle.com/ Oracle Corporation]. | ||
== ZFS:n ryhmitetty varanto == | ==ZFS:n ryhmitetty varanto== | ||
ZFS käyttää ''ryhmitetyn varannon'' (pooled storage) konseptia hallitsemaan fyysistä talletustilaa. Tiedostojärjestelmät on perinteisesti luotu yksittäisen fyysisen laitteen päälle. ''Loogisen levyn'' (volume manager) konsepti on otettu käyttöön mahdollistamaan useamman laitteen hyödyntämistä ja tarjoamaan datan redundanttisuutta, jolloin tiedostojärjestelmiä ei tarvitse muuttaa kun hyödynnetään useampaa levylaitetta. Loogisen levyn mallin käyttö lisäsi kompleksisen lisäkerroksen ja lopulta esti joidenkin tiedostojärjestelmien kehittymisen, koska tiedostojärjestelmällä ei ollut kontrollia datan fyysiseen sijoittumiseen virtualisoiduilla taltioilla. | ZFS käyttää ''ryhmitetyn varannon'' (pooled storage) konseptia hallitsemaan fyysistä talletustilaa. Tiedostojärjestelmät on perinteisesti luotu yksittäisen fyysisen laitteen päälle. ''Loogisen levyn'' (volume manager) konsepti on otettu käyttöön mahdollistamaan useamman laitteen hyödyntämistä ja tarjoamaan datan redundanttisuutta, jolloin tiedostojärjestelmiä ei tarvitse muuttaa kun hyödynnetään useampaa levylaitetta. Loogisen levyn mallin käyttö lisäsi kompleksisen lisäkerroksen ja lopulta esti joidenkin tiedostojärjestelmien kehittymisen, koska tiedostojärjestelmällä ei ollut kontrollia datan fyysiseen sijoittumiseen virtualisoiduilla taltioilla. | ||
Rivi 18: | Rivi 13: | ||
ZFS koostuu ryhmitetyistä varannoista. Yksi ryhmitetty varanto sisältää yhden tai useamman levysetin. Levysetti voi olla joko yksittäinen levy, peilattu levypari (tai usempi levy peilattuna keskenään), kolme tai useampi levy sarjoitettuna raidz1:llä (Solariksen vastine RAID-5:lle), tai neljä tai useampi levy sarjoitettuna raidz2:lla (mahdollistaa kahden levyn hajoamisen ilman datan katoamista). Jos varannosta loppuu levytila, niin tarvitsee ainoastaan lisätä uusi levysetti ryhmään ja ZFS laajentaa tiedostojärjestelmän automaattisesti käyttäen saatavilla olevan lisätilan. ZFS tarjoaa myös tuen usealle tiedostojärjestelmälle, joita on helppo muodostaa lennossa, vaikka oma jokaiselle käyttäjälle. | ZFS koostuu ryhmitetyistä varannoista. Yksi ryhmitetty varanto sisältää yhden tai useamman levysetin. Levysetti voi olla joko yksittäinen levy, peilattu levypari (tai usempi levy peilattuna keskenään), kolme tai useampi levy sarjoitettuna raidz1:llä (Solariksen vastine RAID-5:lle), tai neljä tai useampi levy sarjoitettuna raidz2:lla (mahdollistaa kahden levyn hajoamisen ilman datan katoamista). Jos varannosta loppuu levytila, niin tarvitsee ainoastaan lisätä uusi levysetti ryhmään ja ZFS laajentaa tiedostojärjestelmän automaattisesti käyttäen saatavilla olevan lisätilan. ZFS tarjoaa myös tuen usealle tiedostojärjestelmälle, joita on helppo muodostaa lennossa, vaikka oma jokaiselle käyttäjälle. | ||
==Tapahtumasemantiikat== | |||
== Tapahtumasemantiikat == | |||
ZFS on tapahtumallinen tiedostojärjestelmä, mikä tarkoittaa sitä, että tiedostojärjestelmän tila on aina levyllä konsistentti eli ristiriidaton. Perinteiset tiedostojärjestelmät ylikirjoittavat dataa käytössä, joka tarkoittaa sitä, että jos järjestelmän virta katkeaa esimerkiksi sen välillä, jolloin tietolohkoa allokoidaan ja jolloin se linkitetään hakemistoon, tiedostojärjestelmä joutuu epäkonsistenttiin tilaan. Historiallisesti tämä ongelma ratkaistiin <tt>fsck</tt>-komennon käytön avulla. Tämä komento oli vastuussa läpikäydä ja varmistaa tiedostojärjestelmän tilanteen ja yrittää korjata mahdolliset epäkonsistenttiudet tämän prosessin aikana. Tiedostojärjestelmien epäkonsistenttiuden ongelma on aiheuttanut suurta harmia ylläpitäjille ja <tt>fsck</tt>-komennon käyttö ei ole koskaan taannut kaikkien mahdollisten ongelmien ratkeamista. Hiljattain tiedostojärjestelmiin on esitelty ''kirjauksen'' (journaling) konsepti. Kirjanpitoprosessi tallentaa toiminnot erilliseen kirjanpitoon, joka voidaan tarvittaessa läpikäydä uudelleen turvallisesti mikäli järjestelmä kaatuu. Tämä kirjauksen prosessi aiheuttaa tarpeetonta kuormaa koska data pitää kirjoittaa kahdesti, joka johtaa joukkoon uusia ongelmia, kuten silloin, kun kirjanpitoa ei voida asianmukaisesti läpikäydä uudelleen. | ZFS on tapahtumallinen tiedostojärjestelmä, mikä tarkoittaa sitä, että tiedostojärjestelmän tila on aina levyllä konsistentti eli ristiriidaton. Perinteiset tiedostojärjestelmät ylikirjoittavat dataa käytössä, joka tarkoittaa sitä, että jos järjestelmän virta katkeaa esimerkiksi sen välillä, jolloin tietolohkoa allokoidaan ja jolloin se linkitetään hakemistoon, tiedostojärjestelmä joutuu epäkonsistenttiin tilaan. Historiallisesti tämä ongelma ratkaistiin <tt>fsck</tt>-komennon käytön avulla. Tämä komento oli vastuussa läpikäydä ja varmistaa tiedostojärjestelmän tilanteen ja yrittää korjata mahdolliset epäkonsistenttiudet tämän prosessin aikana. Tiedostojärjestelmien epäkonsistenttiuden ongelma on aiheuttanut suurta harmia ylläpitäjille ja <tt>fsck</tt>-komennon käyttö ei ole koskaan taannut kaikkien mahdollisten ongelmien ratkeamista. Hiljattain tiedostojärjestelmiin on esitelty ''kirjauksen'' (journaling) konsepti. Kirjanpitoprosessi tallentaa toiminnot erilliseen kirjanpitoon, joka voidaan tarvittaessa läpikäydä uudelleen turvallisesti mikäli järjestelmä kaatuu. Tämä kirjauksen prosessi aiheuttaa tarpeetonta kuormaa koska data pitää kirjoittaa kahdesti, joka johtaa joukkoon uusia ongelmia, kuten silloin, kun kirjanpitoa ei voida asianmukaisesti läpikäydä uudelleen. | ||
Tapahtumallisessa tiedostojärjestelmässä data hallitaan käyttäen kopio- tai kirjoitussemantiikkaa. Dataa ei koskaan ylikirjoiteta ja jokainen sarja operaatioita on joko täysin kommitoitu tai täysin hylätty. Siten tiedostojärjestelmä ei voi koskaan korruptoitua virtakatkoksen tai järjestelmän kaatumisen seurauksena. Vaikka viimeiset kirjoitetut osat datasta voivat kadota, tiedostojärjestelmä on itsessään konsistentti. Lisäksi synkroninen data (joka kirjoitetaan käyttäen <tt>O_DSYNC</tt>-lippua) on aina taatusti kirjoitettu ennen jatkamista, joten data ei koskaan pääse katoamaan. | Tapahtumallisessa tiedostojärjestelmässä data hallitaan käyttäen kopio- tai kirjoitussemantiikkaa. Dataa ei koskaan ylikirjoiteta ja jokainen sarja operaatioita on joko täysin kommitoitu tai täysin hylätty. Siten tiedostojärjestelmä ei voi koskaan korruptoitua virtakatkoksen tai järjestelmän kaatumisen seurauksena. Vaikka viimeiset kirjoitetut osat datasta voivat kadota, tiedostojärjestelmä on itsessään konsistentti. Lisäksi synkroninen data (joka kirjoitetaan käyttäen <tt>O_DSYNC</tt>-lippua) on aina taatusti kirjoitettu ennen jatkamista, joten data ei koskaan pääse katoamaan. | ||
==Tarkistussummat ja itse-parantuva data== | |||
== Tarkistussummat ja itse-parantuva data == | |||
ZFS:ssä kaikki data ja metadata varmistetaan käyttämällä käyttäjän valittavissa olevia tarkistussumma-algoritmeja. Perinteisissä tiedostojärjestelmissä, jotka tarjoavat tuen tarkistussummilla varmistamiselle, ne on suoritettu lohko-perustaisesti, tarpeettomasti loogisen levyjen hallintakerroksen ja perinteisen tiedostojärjestelmämallin vuoksi. Perinteinen suunnittelu tarkoittaa sitä, että tietyt häiriöt, kuten kokonaisen lohkon kirjoittaminen väärään sijaintiin, voi johtaa virheelliseen dataan, mutta myös tarkistussumman virheisiin. ZFS:ssä tarkistussummat talletetaan siten, että nämä häiriöt tunnistetaan ja niistä voidaan palautua sulavasti. Kaikki tarkistussummien ja datan palauttaminen suoritetaan tiedostojärjestelmän tasolla, ja ne ovat läpinäkyviä sovelluksille. | ZFS:ssä kaikki data ja metadata varmistetaan käyttämällä käyttäjän valittavissa olevia tarkistussumma-algoritmeja. Perinteisissä tiedostojärjestelmissä, jotka tarjoavat tuen tarkistussummilla varmistamiselle, ne on suoritettu lohko-perustaisesti, tarpeettomasti loogisen levyjen hallintakerroksen ja perinteisen tiedostojärjestelmämallin vuoksi. Perinteinen suunnittelu tarkoittaa sitä, että tietyt häiriöt, kuten kokonaisen lohkon kirjoittaminen väärään sijaintiin, voi johtaa virheelliseen dataan, mutta myös tarkistussumman virheisiin. ZFS:ssä tarkistussummat talletetaan siten, että nämä häiriöt tunnistetaan ja niistä voidaan palautua sulavasti. Kaikki tarkistussummien ja datan palauttaminen suoritetaan tiedostojärjestelmän tasolla, ja ne ovat läpinäkyviä sovelluksille. | ||
Lisäksi ZFS tarjoaa tuen itse-parantuvalle tiedolle. ZFS tukee tallennusvarannoja, jotka tarjoavat vaihtoehtoisia tapoja datan redundanssille. Kun epäkelvollinen datalohko tunnistetaan, ZFS noutaa korrektin datan toisesta redundantista kopiosta ja korvaa epäkelvollisen datan sillä. | Lisäksi ZFS tarjoaa tuen itse-parantuvalle tiedolle. ZFS tukee tallennusvarannoja, jotka tarjoavat vaihtoehtoisia tapoja datan redundanssille. Kun epäkelvollinen datalohko tunnistetaan, ZFS noutaa korrektin datan toisesta redundantista kopiosta ja korvaa epäkelvollisen datan sillä. | ||
==Ennennäkemätön skaalautuvuus== | |||
== Ennennäkemätön skaalautuvuus == | |||
Yksi oleellinen suunnitteluelementti ZFS:lle on skaalautuvuus. Tiedostojärjestelmä on itsessään 128-bittinen, mahdollistaen 256 biljoonaa zetatavua tallennustilaa. Kaikki metatieto on allokoitu dynaamisesti, joten ei ole tarvetta esivarata ''tunnustietueita'' (inodeja) tai muulla tavoin rajoittaa tiedostojärjestelmän skaalautuvuutta kun se on ensimmäisen kerran luotu. Kaikki algoritmit on kirjoitettu skaalautuvuus huomioiden. Hakemistoissa voi olla jopa 2^48 (256 triljoonaa) alkiota ja tiedostojärjestelmien tai tiedostojen lukumäärälle ei ole ylärajaa, joita voidaan sisällyttää tiedostojärjestelmässä. | Yksi oleellinen suunnitteluelementti ZFS:lle on skaalautuvuus. Tiedostojärjestelmä on itsessään 128-bittinen, mahdollistaen 256 biljoonaa zetatavua tallennustilaa. Kaikki metatieto on allokoitu dynaamisesti, joten ei ole tarvetta esivarata ''tunnustietueita'' (inodeja) tai muulla tavoin rajoittaa tiedostojärjestelmän skaalautuvuutta kun se on ensimmäisen kerran luotu. Kaikki algoritmit on kirjoitettu skaalautuvuus huomioiden. Hakemistoissa voi olla jopa 2^48 (256 triljoonaa) alkiota ja tiedostojärjestelmien tai tiedostojen lukumäärälle ei ole ylärajaa, joita voidaan sisällyttää tiedostojärjestelmässä. | ||
==ZFS tilannekuvat== | |||
== ZFS tilannekuvat == | |||
Tilannekuva (snapshot) on vain luettavissa oleva kopio tiedostojärjestelmästä tai taltiosta. Tilannekuvia voidaan luoda nopeasti ja helposti. Aluksi tilannekuvat eivät kuluta lainkaan lisälevytilaa varannosta. Kun data aktiivisessa datasetissä muuttuu, tilannekuva alkaa kuluttamaan levytilaa viittaamalla vanhaan dataan. Tämän seurauksena tilannekuva estää datan vapauttamisen takaisin varantoon. | Tilannekuva (snapshot) on vain luettavissa oleva kopio tiedostojärjestelmästä tai taltiosta. Tilannekuvia voidaan luoda nopeasti ja helposti. Aluksi tilannekuvat eivät kuluta lainkaan lisälevytilaa varannosta. Kun data aktiivisessa datasetissä muuttuu, tilannekuva alkaa kuluttamaan levytilaa viittaamalla vanhaan dataan. Tämän seurauksena tilannekuva estää datan vapauttamisen takaisin varantoon. | ||
==Yksinkertaistettu ylläpito== | |||
== Yksinkertaistettu ylläpito == | |||
Kaikkein tärkeimpänä, ZFS tarjoaa merkittävästi yksinkertaistetun ylläpitomallin. Hierarkkista tiedostojärjestelmän mallia hyödyntämällä, ominaisuuksien periytyminen ja automaattinen liitäntäpisteiden hallinta ja NFS-jakojen semantiikan avulla, ZFS tekee helpoksi luoda ja hallita tiedostojärjestelmiä ilman vaatimusta käyttää useita komentoja ja konfiguraatiotiedostojen muokkaamista. Voit helposti asettaa kiintiöitä tai varauksia, kääntää pakkauksen päälle tai pois, tai hallita liitäntäpisteitä lukuisille tiedostojärjestelmille yhdellä komennolla. Voit tutkia tai korvata laitteita opettelematta loogisen levynhallinnan omia komentoja. Voit lähettää ja vastaanottaa tiedostojärjestelmän tilannekuvien tietovirtoja. ZFS hallitsee tiedostojärjestelmää hierarkian kautta, joka sallii sen yksinkertaistetun ominaisuuksien hallinnan, kuten kiintiöt, varaukset, tiivistäminen ja liitospisteet. Tässä mallissa tiedostojärjestelmät ovat keskeisiä kontrollipisteitä. Tiedostojärjestelmät ovat itsessään taloudellisia (vastaavasti kuin hakemiston luonti), joten tiedostojärjestelmän luontia kannustetaan jokaiselle käyttäjälle, projektille, työtilalle ja niin edelleen. Tämä malli antaa sinulle mahdollisuuden määritellä hienojakoisesti hallintapaikkoja. | Kaikkein tärkeimpänä, ZFS tarjoaa merkittävästi yksinkertaistetun ylläpitomallin. Hierarkkista tiedostojärjestelmän mallia hyödyntämällä, ominaisuuksien periytyminen ja automaattinen liitäntäpisteiden hallinta ja NFS-jakojen semantiikan avulla, ZFS tekee helpoksi luoda ja hallita tiedostojärjestelmiä ilman vaatimusta käyttää useita komentoja ja konfiguraatiotiedostojen muokkaamista. Voit helposti asettaa kiintiöitä tai varauksia, kääntää pakkauksen päälle tai pois, tai hallita liitäntäpisteitä lukuisille tiedostojärjestelmille yhdellä komennolla. Voit tutkia tai korvata laitteita opettelematta loogisen levynhallinnan omia komentoja. Voit lähettää ja vastaanottaa tiedostojärjestelmän tilannekuvien tietovirtoja. ZFS hallitsee tiedostojärjestelmää hierarkian kautta, joka sallii sen yksinkertaistetun ominaisuuksien hallinnan, kuten kiintiöt, varaukset, tiivistäminen ja liitospisteet. Tässä mallissa tiedostojärjestelmät ovat keskeisiä kontrollipisteitä. Tiedostojärjestelmät ovat itsessään taloudellisia (vastaavasti kuin hakemiston luonti), joten tiedostojärjestelmän luontia kannustetaan jokaiselle käyttäjälle, projektille, työtilalle ja niin edelleen. Tämä malli antaa sinulle mahdollisuuden määritellä hienojakoisesti hallintapaikkoja. | ||