ZFS

Material iz Vikipedii -- svobodnoi entsiklopedii
Pereiti k navigatsii Pereiti k poisku
ZFS
Razrabotchik Oracle (ranee Sun Microsystems), OpenZFS[angl.] (razrabotchiki forka)
Failovaia sistema ZFS
Data predstavleniia 2005-11 (OpenSolaris)
Struktura
Soderzhimoe papok Rasshiriaemaia khesh-tablitsa
Ogranicheniia
Maksimal'nyi razmer faila 16 eksbibait
Maksimum failov 248
Maksimal'naia dlina imeni faila 255 bait
Maksimal'nyi razmer toma 256 zebibait
Dopustimye simvoly v nazvaniiakh bez kodirovki ili UTF-8 (vybiraetsia optsiei)
Vozmozhnosti
Tochnost' khraneniia daty 1 ns[1]
Potoki metadannykh Da (nazvannye Extended Attributes (rasshirennye atributy))
Atributy POSIX, dopolnitel'nye
Prava dostupa POSIX
Fonovaia kompressiia Da
Fonovoe shifrovanie Nachinaia s versii pula 30
Podderzhivaetsia OS Solaris, OpenSolaris, FreeBSD, Linux (cherez FUSE ili otdel'nyi modul' iadra (ZFS on Linux)), Apple Mac OS X 10.5, Windows (ZFSin)

ZFS -- failovaia sistema s derevom Merkla i podderzhkoi kopirovaniia pri zapisi s funktsiiami menedzhera tomov, sozdannaia Sun Microsystems v 2004--2005 godakh dlia operatsionnoi sistemy Solaris. Podderzhivaet bol'shie ob'iomy dannykh, pozvoliaet sozdavat' RAID-massivy. Sushchestvuiut otkrytye realizatsii ZFS, v chastnosti, OpenZFS litsenziruetsia pod CDDL (v otlichie ot podobnoi ZFS failovoi sistemy BTRFS, litsenziruemoi po GPL). Po sostoianiiu na 2024 god OpenZFS aktivno razvivaetsia.

Osnovnye preimushchestva ZFS -- eto polnyi kontrol' nad fizicheskimi nositeliami i logicheskimi tomami i postoiannoe podderzhanie soglasovannosti failovoi sistemy. Operiruia na raznykh urovniakh abstraktsii dannykh, ZFS sposobna obespechit' vysokuiu skorost' dostupa k nim, kontrol' ikh tselostnosti, a takzhe minimizatsiiu fragmentatsii dannykh. ZFS gibko nastraivaetsia, pozvoliaet v protsesse raboty izmeniat' ob'iom dostupnogo prostranstva khraneniia i zadavat' raznyi razmer blokov dannykh dlia raznykh primenenii, obespechivaet parallel'nost' vypolneniia operatsii chteniia-zapisi.

Istoriia

[pravit' | pravit' kod]

ZFS byla sproektirovana i sozdana v Sun Microsystems komandoi vo glave s Dzhefom Bonvikom (angl. Jeff Bonwick), anonsirovana 14 sentiabria 2004 goda[2]. Iskhodnyi kod dlia final'nogo reliza byl integrirovan v glavnuiu vetku razrabotki Solaris 31 oktiabria 2005 goda[3].

ZFS voshla v 27 sborku OpenSolaris, vypushchennuiu 16 noiabria 2005 goda. Sun zaiavila, chto ZFS byla integrirovana v 6/06 obnovlenie dlia Solaris 10 v iiune 2006 goda, po proshestvii odnogo goda s momenta otkrytiia soobshchestva OpenSolaris[4].

Pervonachal'no ZFS nazyvalas' <<Zettabyte File System>>, no pozzhe nazvanie prevratilos' v prostuiu abbreviaturu[5].

ZFS byla vypushchena pod kommercheskoi litsenziei v sostave operatsionnoi sistemy Solaris, zatem SUN Microsystems otkryla iskhodnye kody ZFS v proekte OpenSolaris pod litsenziei CDDL. Posle priobreteniia SUN Microsystems kompaniei Oracle kod snova byl zakryt, odnako k etomu vremeni ZFS uzhe byla vkliuchena v FreeBSD i drugie proekty s otkrytymi litsenziiami, kotorye veli razrabotku nezavisimo i obmenivalis' iskhodnymi kodami putiom <> (angl. backports).

V 2013 godu zapushchen proekt OpenZFS[angl.][6][7], v kotorom primeniaiutsia novye vozmozhnosti i ispravleniia iz Illumos i rasprostraniaiutsia vo vse porty v drugie platformy, i naoborot[8].

Spetsifika

[pravit' | pravit' kod]

Maksimal'nye vozmozhnosti

[pravit' | pravit' kod]

ZFS -- 128-bitnaia[istochnik ne ukazan 3519 dnei][9] failovaia sistema, chto pozvoliaet ei khranit' v 18,4 x 1018 raz bol'she dannykh, chem vse izvestnye 64-bitnye sistemy. ZFS sproektirovana tak, chtoby eio ogranicheniia byli nastol'ko nedostizhimy, chto v obozrimom budushchem ne vstretiatsia na praktike[10].

Nekotorye teoreticheskie predely v ZFS:

  • 248 -- kolichestvo snimkov v liuboi failovoi sisteme (2 x 1014);
  • 248 -- kolichestvo failov v liuboi individual'noi failovoi sisteme (2 x 1014);
  • 256 zettabait (1021 bait)[istochnik ne ukazan 3600 dnei] -- maksimal'nyi razmer failovoi sistemy;
  • 16 eksbibait (264 bait) -- maksimal'nyi razmer odnogo faila;
  • 16 eksbibait (264 bait) -- maksimal'nyi razmer liubogo atributa[11];
  • 3 x 1023 petabait[istochnik ne ukazan 3600 dnei] -- maksimal'nyi razmer liubogo pula khraneniia (zpool);
  • 256 -- kolichestvo atributov faila (fakticheski ogranichivaetsia 248 na kolichestvo failov v failovoi sisteme ZFS);
  • 256 -- kolichestvo failov v kataloge (real'no ogranichen 248 na kolichestvo failov v failovoi sisteme ZFS);
  • 264 -- kolichestvo ustroistv v liubom pule;
  • 264 -- kolichestvo pulov v sisteme;
  • 264 -- chislo failovykh sistem v odnom pule;
  • 255 bait -- maksimal'naia dlina imeni faila (ne polnogo imeni, a otnositel'no roditel'skoi papki);
  • 255 bait -- maksimal'naia dlina polnogo imeni khranilishcha dannykh (failovoi sistemy, toma, snimka, obshchego resursa i t. d.).

Pri etom utility upravleniia FS nakladyvaiut dopolnitel'nye ogranicheniia.

Puly khraneniia

[pravit' | pravit' kod]

V otlichie ot traditsionnykh failovykh sistem, kotorye raspolagaiutsia na odnom ustroistve i, sledovatel'no, pri ispol'zovanii bolee chem na odnom ustroistve dlia nikh trebuetsia menedzher tomov, ZFS stroitsia poverkh virtual'nykh pulov khraneniia dannykh, nazyvaemykh zpool. Pul postroen iz virtual'nykh ustroistv (vdevs), kazhdoe iz kotorykh iavliaetsia libo fizicheskim ustroistvom, libo zerkalom (RAID 1) odnogo ili neskol'kikh ustroistv, libo (RAID Z) -- gruppoi iz dvukh ili bolee ustroistv. Iomkost' vsekh vdevs zatem dostupna dlia vsekh failovykh sistem v zpool.

Dlia ogranicheniia prostranstva, dostupnogo konkretnoi failovoi sisteme ili tomu, mozhet byt' ustanovlena kvota. Krome togo, vozmozhno ispol'zovanie rezervirovaniia prostranstva khraneniia (limita) -- eto garantiruet, chto vsegda budet ostavat'sia nekotoryi dostupnyi ob'iom dlia konkretnoi failovoi sistemy ili toma.

Versii pula ZFS

[pravit' | pravit' kod]

Sushchestvuiut razlichnye versii failovoi sistemy ZFS i versii pula ZFS (zpool), v zavisimosti ot versii dostupny razlichnye funktsional'nye vozmozhnosti. Po sostoianiiu na noiabr' 2012 sushchestvuet 34 versii pula ZFS. Vse versii pula iznachal'no vypuskaiutsia dlia Solaris.

V versii 2 byla vkliuchena podderzhka replitsiruemykh metadannykh (angl. ditto blocks). Vvidu togo, chto struktura formata ZFS drevovidnaia, nevosstanovimye oshibki v metadannykh pula mogut privesti k tomu, chto pul nel'zia budet otkryt'. Dannaia funktsiia predostavliaet avtomaticheskuiu replikatsiiu metadannykh (do triokh kopii kazhdogo bloka) nezavisimo ot izbytochnosti zavisimykh pulov (angl. underlying pool-wide redundancy). Naprimer, v pule s edinstvennym zerkalom naibolee kritichnye metadannye budut trizhdy zapisany na kazhdoi storone zerkala, v obshchei slozhnosti shest' kopii. Eto pozvoliaet udostoverit'sia, chto, esli dannye poteriany vsledstvie povrezhdeniia, vse dannye v pule budut dostupny dlia nakhozhdeniia i pul budet rabotosposobnym.

V versii 3 vkliuchena podderzhka tekhnologii goriachego rezerva i RAID-Z dvoinoi chiotnosti (raidz2); v versii 4 vnedrena podderzhka vedeniia istorii pula ZFS (zpool history); v versii 5 dobavlena podderzhka szhatiia na letu dlia naborov dannykh ZFS metodom gzip; v versii 6 vkliuchena podderzhka svoistva bootfs (pozvoliaet perekliuchat' kornevuiu FS zagruzhaemoi OS cherez atribut, pomimo optsii zagruzchika).

V versii 7 realizovana podderzhka <> (ZFS Intent Log, ZIL, bukv. <>), kotoryi predostavliaet prilozheniiam vozmozhnost' uznat', chto dannye, imi izmenionnye, nakhodiatsia v stabil'nom khranilishche, po vozvratu iz sistemnogo vyzova. Tselevoi zhurnal khranit zapisi etikh sistemnykh vyzovov, oni vosproizvodiatsia zanovo, esli proizoshiol sboi pitaniia ili kriticheskaia oshibka, pri kotoroi osnovnoi pul ne podtverdil ikh vypolnenie. Kogda tselevoi zhurnal nakhoditsia vne osnovnogo pula, on vydeliaet bloki, kotorye idut tsepochkoi cherez pul.

V versii 8 realizovana vozmozhnost' delegirovat' administrativnye zadachi po upravleniiu ZFS obychnym pol'zovateliam, do etogo vozmozhnost' upravliat' ZFS byla tol'ko u administratorov.

V versii 9, v dopolnenie k sushchestvuiushchim funktsiiam kvotirovaniia i rezervirovaniia, dobavleno naznachenie kvot i rezervov, ne vkliuchaiushchikh potreblenie prostranstva khraneniia vlozhennymi strukturami dannykh, takimi kak klony i kvoty (zfs set refquota, zfs set refreservation). Rezervirovanie avtomaticheski ustanavlivaetsia, kogda sozdannyi nerazrezhionnyi (non-sparse) tom ZFS sootvetstvuet razmeru razdela. Takzhe v versii 9 dobavlena podderzhka CIFS-servera.

V versii 10 poiavilas' vozmozhnost' dobavliat' ustroistva v pul kak keshiruiushchie dlia obespecheniia dopolnitel'nogo urovnia keshirovaniia mezhdu osnovnoi pamiat'iu i sistemoi khraneniia. Ispol'zovanie keshiruiushchikh ustroistv sushchestvenno uvelichivaet proizvoditel'nost' pri nagruzhennykh operatsiiakh neuporiadochennogo schityvaniia, v osnovnom statichnogo soderzhimogo. V versii 12 poiavilas' podderzhka svoistv snimkov, v versii 13 stali dostupny sleduiushchie svoistva snimkov: usedbysnapshots, usedbychildren, usedbyrefreservation, usedbydataset, v versii 14 dostupny takzhe svoistva passthrough-x i aclinherit, v versii 15 vkliucheny svoistva userused, groupused, userquota, groupquota.

V versii 17 realizovana podderzhka RAID-Z troinoi chiotnosti. V versii 18 podderzhana funktsiia zaderzhki snimkov (ZFS snapshot holds). Nachinaia s versii 19 poiavilas' vozmozhnost' udalit' prisoedinionnoe ustroistvo dlia khraneniia zhurnalov, ranee takoe ustroistvo udalit' bylo nevozmozhno. V 20-i versii vkliuchion algoritm szhatiia zle.

V versii 21 realizovana deduplikatsiia (sushchestvennym obrazom ispol'zuet zle). Nachinaia s versii 30 podderzhivaetsia shifrovanie failovoi sistemy, nachinaia s versii 32 podderzhivaetsia blok razmerom 1 Mbait, a v versii 34 realizovano sozdanie obshchikh setevykh resursov s nasledovaniem mezhdu failovymi sistemami.

V versii 37 dobavlena podderzhka algoritma szhatiia lz4 (bolee effektivnogo i bystrogo po sravneniiu s imevshimisia).

Model' tranzaktsii s ispol'zovaniem kopirovaniia pri zapisi

[pravit' | pravit' kod]

ZFS ispol'zuet model' ob'ektnykh tranzaktsii na osnove mekhanizma kopirovaniia pri zapisi. Vse ukazateli na bloki vnutri failovoi sistemy soderzhat 256-bitnuiu kontrol'nuiu summu v tselevom bloke, kotoraia proveriaetsia, kogda blok prochitan. V kachestve kontrol'noi summy mozhet ispol'zovat'sia libo summa Fletchera, libo kriptograficheskaia khesh-funktsiia SHA-256.[12] Dlia dannykh mogut byt' vybrany i drugie kontrol'nye summy. Bloki dannykh, soderzhashchie aktivnye (v etot moment) dannye, nikogda ne perezapisyvaiutsia vmeste; naprotiv, vydeliaetsia novyi blok, izmenionnye dannye zapisyvaiutsia v nego, a zatem -- metadannye liubykh blokov, kotorye na nego ssylaiutsia, takim obrazom vsio pereraspredeliaetsia i zapisyvaetsia. Chtoby umen'shit' nakladnye raskhody, v etom protsesse gruppiruetsia neskol'ko obnovlenii v gruppu tranzaktsii, takzhe, esli trebuetsia, vediotsia zhurnal ispol'zovaniia pri sinkhronnoi zapisi.

Pul ZFS vediot zhurnal neskol'kikh poslednikh desiatkov versii dannykh pula (na neskol'ko poslednikh minut, chasov ili dnei, v zavisimosti ot intensivnosti izmeneniia dannykh), prednaznachennyi dlia vosstanovleniia dannykh v sluchae, esli oshibka v sisteme privela pul v nerabochee neizlechimoe sostoianie. Blagodaria kopirovaniiu pri zapisi vse eti versii dannykh v zhurnale samodostatochny, no razdeliaiut mezhdu soboi obshchie dannye.

Snimki i klony

[pravit' | pravit' kod]

Poskol'ku ispol'zuemaia v ZFS tekhnika kopirovaniia pri zapisi novykh dannykh pozvoliaet sokhraniat' perezapisyvaemye dannye, v sisteme realizovany effektivnye snimki failovoi sistemy: za iskliucheniem redkikh sluchaev dolgoi blokirovki pula trudoiomkoi operatsiei s failovoi sistemy snimki sozdaiotsia prakticheski momental'no, tak kak vse dannye v sostave snimka uzhe sokhraneny; oni takzhe effektivno razmeshcheny v prostranstve, poskol'ku liubye neizmenionnye dannye razdeliaiutsia (iavliaiutsia obshchimi) mezhdu failovoi sistemoi i eio snimkom. Snimki pozvoliaiut poluchat' dostup k dannym, kotorye byli zapisany na moment sozdaniia snimka, a takzhe bystro vernut' sostoianie toma ili failovoi sistemy k momentu snimka.

Takzhe na osnove liubogo snimka mozhet byt' sozdan perezapisyvaemyi snimok (klon), v rezul'tate chego budut dve ili bolee nezavisimykh failovykh sistem ili tomov, kotorye razdeliaiut kompleks blokov dlia umen'sheniia obshchego zanimaemogo mesta i umen'sheniia vremeni sozdaniia klona. Kak tol'ko vnosiatsia izmeneniia v kakoi-libo klon failovoi sistemy, dlia nego sozdaiutsia bloki novykh dannykh, a vo vsekh ostal'nykh klonakh ostaiutsia prezhnie dannye.

Pri sozdanii klon priviazyvaetsia k snimku, na osnove kotorogo on sozdan. Etot snimok ne mozhet byt' unichtozhen, poka na nego ssylaetsia khotia by 2 klona (vkliuchaia iznachal'nuiu failovuiu sistemu ili tom). Dlia udaleniia etoi ssylki failovuiu sistemu ili tom trebuetsia peresozdat', no eto legko delaetsia s pomoshch'iu peresylki, prichiom mozhno izbezhat' zaniatiia lishnego mesta v pule, esli na vremia peresylki vkliuchit' deduplikatsiiu i peresylat' tom v predelakh odnogo pula.

Snimki i klony mogut sozdavat'sia rekursivno dlia dereva failovykh sistem. Eto pozvoliaet izbezhat' neobkhodimosti mnogokratnogo povtoreniia komand i samostoiatel'nogo upravleniia tranzaktsiiami, tak kak rekursivnoe sozdanie snimkov atomarno.

Sozdanie snimkov i klonov (kak i novykh failovykh sistem) mozhet byt' zatrudneno imeiushchimisia ogranicheniiami ZFS. Snimki i klony ne mogut byt' sozdany, esli imia khotia by odnogo iz nikh prevysit ogranichenie (a polnoe imia snimka dlinnee polnogo imeni originala kak minimum na 2 simvola), esli est' konflikt imion (sushchestvenno dlia rekursivnogo sozdaniia snimkov), esli novye kvoty prevysheny ili rezervy nevypolnimy (kvoty i rezervy nasleduiutsia ot originala).

Na osnove snimkov realizovyvaetsia inkrementnoe rezervnoe kopirovanie. S pomoshch'iu peresylki snimkov mozhno vossozdat' v liubom pule ZFS tu zhe posledovatel'nost' snimkov. Posle sozdaniia novykh snimkov originala inkrementnaia peresylka snimkov vossozdaiot v kopii ili klone te zhe obnovlionnye dannye, esli net konflikta obnovleniia. S pomoshch'iu snimkov takzhe mozhno uznat', kakie faily byli izmeneny, sozdany, udaleny i pereimenovany mezhdu snimkami.

Dinamicheskoe razdelenie

[pravit' | pravit' kod]

Dinamicheskoe razdelenie vsekh ustroistv na maksimal'noi propusknoi sposobnosti oznachaet, chto dopolnitel'nye ustroistva vkliuchaiutsia v zpool, bolee shirokie kanaly avtomaticheski rasshiriaetsia dlia vkliucheniia ispol'zovaniia vsekh nakopitelei v pule, eto uravnoveshivaet nagruzku na zapis'.

Razlichnye razmery bloka

[pravit' | pravit' kod]

ZFS ispol'zuet peremennyi razmer blokov do 1 megabaita (s 32 versii pula, ranee bylo do 128 kilobait). Administrator mozhet nastraivat' maksimal'nyi razmer ispol'zuemykh blokov, no nekotorye raboty ne budut vypolniat'sia (ili budut vypolniat'sia s oshibkami), esli ispol'zovalis' slishkom krupnye bloki. Avtomaticheskie nastroiki rabochikh kharakteristik sootvetstvuiut privilegiiam[utochnit'].

Esli szhatie vkliucheno, ispol'zuiutsia peremennye razmery bloka. Esli blok byl szhat, on mozhet vlit'sia v blok men'shego razmera, to est' ispol'zuetsia men'shee prostranstvo na nakopiteliakh i povyshaetsia propusknaia sposobnost' vvoda-vyvoda (tsenoi zadeistvovaniia resursov protsessora i operativnoi pamiati dlia operatsii szhatiia i raspakovki).

Pul ZFS takzhe podderzhivaet razlichnye razmery sektorov ustroistv i avtomaticheski vybiraet naibol'shii razmer bloka iz ustroistv, ukazannykh pri sozdanii pula (posle etogo razmer bloka pula ne mozhet byt' izmenion). Stabil'no podderzhivaiutsia razmery 512 bait, 4 KiB (4K). Podderzhivaiutsia i bloki bol'shikh razmerov, no OS pri etom mozhet rabotat' ne stabil'no.

Skvoznoi kontrol' tselostnosti dannykh

[pravit' | pravit' kod]

Pod skvoznym kontrolem tselostnosti ponimaetsia zapis' na energonezavisimyi nositel' kontrol'noi summy dlia kazhdogo bloka dannykh, prichiom kontrol'naia summa i dannye spetsial'no raznosiatsia maksimal'no daleko drug ot druga dlia snizheniia veroiatnosti ikh sovmestnoi porchi. Esli v pule est' neskol'ko ustroistv, to dlia dannykh, razmeshchionnykh na odnom iz nikh, kontrol'naia summa budet zapisana na drugom. Kontrol'nye summy vychisliaiutsia ne tol'ko dlia dannykh, no i dlia metadannykh, i poluchaetsia, chto v pule vsegda est' kontrol'naia summa dlia kazhdogo bloka informatsii.

Pri schityvanii liubogo bloka podschityvaetsia ego kontrol'naia summa i rezul'tat sravnivaetsia s kontrol'noi summoi. V sluchae raskhozhdeniia oshibka srazu obnaruzhivaetsia. Razumeetsia, esli v pule zaranee ne bylo zaplanirovano nikakogo rezervirovaniia (ni RAID-Z, ni inogo), to oshibku uzhe ne ispravit', no zato isporchennye dannye ne budut vydany za istinnye.

Smysl skvoznogo kontrolia tselostnosti dannykh v tom, chtoby predotvratit' skrytuiu nezametnuiu porchu dannykh v rezul'tate sboia oborudovaniia ili vstroennogo programmnogo obespecheniia nakopitelei ili kontrollerov. Nesmotria na to, chto veroiatnost' takogo sobytiia kazhetsia nizkoi, nekotorye issledovaniia pokazyvaiut, chto ona vpolne znachima dlia organizatsii liubogo masshtaba[13].

Programmy, chitaiushchie ili pishushchie dannye, pri etom dolzhny podderzhivat' eti osobennosti (vozmozhnost' otkaza schityvaniia otdel'nogo bloka faila, vozmozhnost' perekhoda pula v sostoianie ozhidaniia vosstanovleniia khranilishcha s zavisaniem vvoda-vyvoda na neopredelionnoe vremia).

Sozdanie legkovesnoi failovoi sistemy

[pravit' | pravit' kod]

V ZFS manipulirovanie s failovoi sistemoi v pule legche, chem ob'iomy manipuliatsii v traditsionnykh failovykh sistemakh; vremia i usiliia, trebuemye dlia sozdaniia ili izmeneniia failovoi sistemy ZFS, v bol'shei stepeni napominaiut ob'iomy rabot, sviazannye s novym katalogom, chem s manipulirovaniem razdelom v drugikh tekhnologiiakh.

Dopolnitel'nye vozmozhnosti

[pravit' | pravit' kod]

Sredi dopolnitel'nykh vozmozhnostei -- funktsiia ustanovki konkretnogo prioriteta vvoda-vyvoda so srokom planirovaniia, podderzhka neskol'kikh nezavisimykh potokov s uprezhdeniem avtomaticheskogo obnaruzheniia dliny i shaga, intellektual'naia ochistka i korrektsiia[14], zagruzka i sovmestnoe ispol'zovanie nakopitelei v pule[15], mnogokratnoe vosproizvedenie metadannykh[16], podderzhka mekhanizma kopirovaniia pri zapisi, vozmozhnost' vybora zagruzochnoi failovoi sistemy v zagruzchike OS, ustanovki osnovnoi zagruzochnoi failovoi sistemy, sozdaniia neskol'kikh kornevykh failovykh sistem, iz kotorykh odna (so vsemi dochernimi) budet ispol'zovat'sia pri zagruzke OS, vozmozhnost' integratsii obnovleniia programm i OS s sozdaniem snimkov i klonov failovykh sistem, v kotorykh khraniatsia programmy, i ispol'zovaniia etikh snimkov dlia liogkogo vosstanovleniia prezhnei versii, a klonov -- dlia sozdaniia mul'tizagruzochnoi sistemy s vozmozhnost'iu zagruzki raznykh konfiguratsii ili versii OS (Solaris po umolchaniiu tak i obnovliaetsia), optsiia dlia ogranicheniia imion failov korrektnym tekstom v UTF-8 v vybrannoi normal'noi forme, optsiia nechuvstvitel'nosti k registru simvolov v imenakh failov.

Upravlenie keshem

[pravit' | pravit' kod]

ZFS takzhe vvodit adaptivnuiu zamenu kesha (ARC), novyi metod upravleniia keshem vmesto traditsionnykh dlia Solaris virtual'nykh stranits kesha v pamiati.

Adaptivnyi poriadok bait

[pravit' | pravit' kod]

Massivy i nastroennaia na nikh ZFS mogut byt' pereneseny mezhdu raznymi platformami, dazhe esli te imeiut drugoi poriadok baitov. Format blokov ZFS pozvoliaet avtomaticheski opredeliat' i meniat' poriadok baitov na letu pri chtenii metadannykh.

Pri etom raznyi poriadok baitov na raznykh sistemakh nikak ne otrazhaetsia na prilozheniiakh, faily dlia nikh tak i ostaiutsia prostoi posledovatel'nost'iu baitov. Takim obrazom, prilozheniia otvetstvenny za nezavisimyi (ot platformy) format uzhe vnutri samikh failov.

Atributy pula

[pravit' | pravit' kod]

Atributy pula -- eto sposob upravleniia vozmozhnostiami i nastroikami pula. Oni imeiut spetsial'nye tipy i ogranicheniia na zapis'. V nikh ukazyvaetsia, dostupen li pul na zapis' ili na chtenie, vkliuchena li deduplikatsiia dannykh, FS dlia zagruzki OS po umolchaniiu, al'ternativnyi koren' dlia montirovaniia, kharakteristiki pula i drugoe.

Sistemnye atributy khranilishch dannykh

[pravit' | pravit' kod]

Sistemnye atributy khranilishch -- eto sposob upravleniia vozmozhnostiami i nastroikami khranilishch. Oni imeiut spetsial'nye tipy i ogranicheniia na zapis'. V nikh ukazyvaiutsia nastroiki shifrovaniia, szhatiia, kontrol'nykh summ, deduplikatsii, rezervnogo kopirovaniia, keshirovaniia, razmer blokov khraneniia dannykh konkretnykh khranilishch. Takzhe cherez nikh ukazyvaetsia razmer tomov, tochki montirovaniia FS, dostupnost' otdel'nykh khranilishch na zapis', prinadlezhnost' khranilishch k zonam, mandatam, rezervy, kvoty, nastroiki avtomaticheskogo sozdaniia setevykh obshchikh resursov (NFS, SMB), prava dostupa k nim i drugoe. V etikh atributakh ukazyvaiutsia kharakteristiki khranilishch. Eti atributy uproshchaiut upravlenie funktsiiami, sviazannymi s FS, no prezhde vypolniaemykh vruchnuiu (naprimer, nastroika montirovaniia neskol'kikh dopolnitel'nykh failovykh sistem, sozdanie setevykh obshchikh resursov).

Chast' sistemnykh atributov nasleduetsia dochernimi khranilishchami, v rezul'tate atributy primeniaiutsia srazu i k dochernim khranilishcham. Atributy upravleniia szhatiem, deduplikatsiei, kontrol'nymi summami dannykh i tomu podobnye primeniaiutsia tol'ko k novym zapisannym dannym. Dlia primeneniia ikh ko vsem dannym dannye trebuetsia perezapisat' (eto legko delaetsia peresylkoi snimkov v tot zhe pul s peresozdaniem khranilishch).

Pol'zovatel'skie atributy khranilishch dannykh

[pravit' | pravit' kod]

Kazhdomu khranilishchu dannykh (FS, tomu, snimku i dr.) mogut byt' naznacheny pol'zovatel'skie atributy. Pol'zovatel'skie atributy otlichaiutsia ot sistemnykh po imenam. Dlia pol'zovatel'skikh atributov mozhno ispol'zovat' liubye imena (ot 1 do 210 bait), no rekomenduetsia ispol'zovat' imena, soderzhashchie dvoetochie (dlia iskliucheniia konfliktov s sistemnymi atributami), imia svoego domena pered etim dvoetochiem (dlia iskliucheniia s drugimi pol'zovateliami), imia atributa posle dvoetochiia. Pol'zovatel'skie atributy nasleduiutsia dochernimi khranilishchami.

V sviazi s razvetvleniem razrabotki novykh vozmozhnostei v raznykh OS neskol'ko takikh atributov ispol'zuetsia v kachestve novykh sistemnykh.

Pol'zovatel'skie atributy ispol'zuiutsia pol'zovateliami i otdel'nymi programmami (naprimer, programmoi avtomaticheskogo sozdaniia i rezervnogo kopirovaniia time-slider).

Sistemnye atributy failov

[pravit' | pravit' kod]

Dlia failov liubogo tipa mozhet byt' ukazano znachenie neskol'kikh sistemnykh atributov.[17] Eti atributy pozvoliaiut upravliat' deistviiami s failom. Takie zhe sistemnye atributy est' u rasshirennykh atributov failov.

Pomimo atributov, khraniashchikh daty sozdaniia, poslednego dostupa, poslednego izmeneniia, poslednego izmeneniia metadannykh, est' atributy[18]:

Nazvanie atributa Nazvanie atributa v komande chmod[19] Naznachenie Chto delaet OS s etim atributom
Skrytyi hidden Faily s etim atributom ne otobrazhaiutsia v obshchem spiske, esli eta optsiia vkliuchena i podderzhivaetsia v programme vyvoda failov. Nichego.
Razrezhennyi sparse Fail s etim atributom rekomenduetsia obrabatyvat' kak razrezhennyi, to est' soderzhashchii bloki nulevykh bait, ne khranimykh na nakopitele, a podrazumevaemykh. Etot atribut rekomendatel'nyi i ne sviazan s tem, iavliaetsia li fail razrezhennym na samom dele. Programma obrabotki failov dlia raboty s razrezhennymi failami vsio ravno dolzhna poluchat' dannye o razrezhennykh blokakh faila u FS. Nichego.
Sistemnyi system Fail s etim atributom prednaznachen dlia OS, on ne iavliaetsia pol'zovatel'skim. Obychno ne uchityvaetsia programmami. Nichego.
Tol'ko dlia chteniia readonly Fail s etim atributom nel'zia izmenit' (tol'ko dannye, no ne atributy). Rasprostraniaetsia na vsekh bez iskliuchenii. Blokiruet dostup na zapis', esli atribut ustanovlen.
Dlia arkhivirovaniia archive Fail trebuetsia arkhivirovat'. Nichego.
Neudaliaemyi nounlink Dlia katalogov: imia kataloga i imena ego neposredstvennykh potomkov nel'zia udalit' ili izmenit'. Dlia ostal'nykh tipov failov: imia faila nel'zia udalit' ili izmenit'. Blokiruet dostup na izmenenie imeni i udalenie, esli atribut ustanovlen.
Neizmeniaemyi immutable Fail s etim atributom nel'zia izmenit' (dannye, atributy, krome etogo samogo atributa i daty poslednego dostupa). Rasprostraniaetsia na vsekh bez iskliuchenii. Blokiruet dostup na izmenenie, esli atribut ustanovlen.
Tol'ko dlia dopolneniia appendonly Dannye faila mozhno izmeniat', tol'ko dopolniaia, no nel'zia perezapisyvat'. Blokiruet dostup na perezapis', esli atribut ustanovlen.
Ne dlia dampov nodump V Solaris ne ispol'zuetsia. Prishiol iz BSD. Trebuet sootvetstvuiushchikh privilegii dlia izmeneniia. V Solaris ne ispol'zuetsia.
V karantine antivirusa av_quarantined Dostup k failu ogranichen do sniatiia karantina. Atribut mozhet byt' ustanovlen i sniat tol'ko pri nalichii prav superpol'zovatelia (est' u antivirusa). Blokiruet dostup, esli atribut ustanovlen.
Modifitsirovan (posle poslednei proverki antivirusom) av_modified Soobshchaet, chto tekushchaia versiia faila ne proverena antivirusom. Ustanavlivaetsia avtomaticheski pri sozdanii faila i kazhdom izmenenii dannykh faila ili razmera faila. Mozhet byt' ustanovlen pol'zovatelem s pravami na izmenenie atributov. Mozhet byt' sbroshen tol'ko pri nalichii prav superpol'zovatelia (est' u antivirusa). Avtomaticheski ustanavlivaet atribut pri izmenenii dannykh, sozdanii faila.

Rasshirennye atributy

[pravit' | pravit' kod]

Dlia kazhdogo faila liubogo tipa mozhno sozdavat' rasshirennye atributy. Rasshirennyi atribut predstavliaet soboi imenovannyi massiv bait, kak obychnyi fail. Dlia rasshirennykh atributov, kak i dlia obychnykh failov, mogut byt' naznacheny sobstvennye prava dostupa i sistemnye atributy. V otlichie ot obychnogo faila, dlia rasshirennykh atributov ne mogut byt' sozdany rasshirennye atributy, zhiostkie ssylki. Dlia rasshirennykh atributov faila dostupna vozmozhnost' ogranichenno obrashchat'sia kak k obychnym failam. Dlia etogo dlia kazhdogo faila sozdaiotsia bezymiannaia papka (v moment sozdaniia pervogo rasshirennogo atributa), v kotoroi dostupny obychnye faily, sootvetstvuiushchie rasshirennym atributam etogo faila. V Solaris v etu papku mozhno popast' s pomoshch'iu utility runat[20].

Delegirovanie polnomochii pol'zovateliam

[pravit' | pravit' kod]

Upravlenie otdel'nymi khranilishchami mozhet byt' delegirovano pol'zovateliam. Dlia etogo v ZFS vydeleny polnomochiia, kotorye mozhno delegirovat' (sozdanie khranilishch, snimkov, ikh udalenie, montirovanie, sravnenie, peresylka i drugoe). Polnomochiia delegiruiutsia dlia vybrannykh khranilishch analogichno naznacheniiu atributov i rasprostraniaiutsia na dochernie khranilishcha.

Sokhrannost' i rezervirovanie dannykh

[pravit' | pravit' kod]

Za schiot tekhniki kopirovaniia pri zapisi dannye v ZFS vsegda v soglasovannom sostoianii, fail ne mozhet poteriat'sia v moment perezapisi.

Pri ispol'zovanii tomov s izbytochnost'iu (toma RAIDZ) obespechivaetsia sokhrannost' dannykh pri sboe fizicheskogo nositelia[21], pri etom RAIDZ effektiven dlia otnositel'no dlitel'nogo khraneniia bol'shikh failov, osobenno pri zadanii sootvetstvuiushchego failam razmera bloka, a pri chastoi perezapisi i pri razmeshchenii failov malen'kikh razmerov voznikaet povyshennaia nagruzka na protsessor i podsistemu vvoda-vyvoda.

Ogranicheniia

[pravit' | pravit' kod]

V realizatsii ZFS v Solaris 10 otsutstvuet prozrachnoe shifrovanie, kak v Solaris 11 i NTFS, khotia sushchestvuet ego realizatsiia v ramkakh proekta OpenSolaris[22].

ZFS ne podderzhivaet raspredelenie kvot dlia kazhdogo pol'zovatelia ili gruppy. Vmesto etogo mozhno bystro sozdavat' FS dlia pol'zovatelei, kazhdaia iz kotorykh budet imet' svoi razmer. Po suti, ne sushchestvuet prakticheskogo resheniia po kvotam dlia failovykh sistem, sovmestno ispol'zuemykh raznymi pol'zovateliami (naprimer, proekt gruppy razrabotchikov), gde dannye mogut byt' razdeleny na kazhdogo pol'zovatelia, odnako eto mozhet byt' realizovano poverkh steka ZFS.

Rasshirenie ob'ioma khraneniia obychno dostigaetsia putiom dobavleniia gruppy nakopitelei, takikh kak vdev (stripe, RAID-Z, RAID-Z2 ili zerkalo). Novye dannye budut dinamicheski ispol'zovat' vse dostupnye vdev. Eshchio odnoi vozmozhnost'iu uvelicheniia prostranstva khraneniia iavliaetsia poocheriodnaia zamena nakopitelei na bolee vmestitel'nye s ozhidaniem posle kazhdoi takoi operatsii, poka ZFS sama sebia vosstanovit. Vremia vosstanovleniia zavisit ot ob'ioma sokhranionnoi informatsii, a ne ot razmerov nakopitelei. Esli vo vremia vosstanovleniia budet sozdan mgnovennyi snimok -- eto perezapustit protsess vosstanovleniia. Zamena nakopitelei bez poteri dannykh vozmozhna tol'ko v odnom iz rezhimov raboty pula, eto pozvoliaiushchikh.

Net vozmozhnosti umen'shit' kolichestvo vdev, ne umen'shiv pri etom razmer pula, pri etom vedutsia raboty po ustraneniiu etogo ogranicheniia. Takzhe nevozmozhno dobavit' novyi nakopitel' v massiv RAID-Z ili RAID-Z2 (vdev). Dannaia funktsiia iavliaetsia tiazhioloi dlia vnedreniia. Odnako vy mozhete sozdat' RAIDZ vdev i dobavit' ego v zpool.

Nel'zia smeshivat' tipy vdev v zpool.

Polnaia perekonfiguratsiia sistemy khraneniia trebuet sokhraneniia dannykh na vneshnie nositeli (vne ZFS), unichtozheniia pulov i sozdaniia novykh pulov po novym pravilam. No v bol'shinstve sluchaev mozhno oboitis' peresylkoi dannykh iz starogo pula v novyi sredstvami ZFS s sokhraneniem vsekh ili zhelaemykh dannykh i atributov (bez sokhraneniia vne ZFS). Peresylka ne pomozhet v sluchae vkliucheniia ili otkliucheniia shifrovaniia, smeny ogranicheniia na imena failov, otkliucheniia mandatnogo kontrolia dostupa, izmeneniia razmera bloka nakopitelei i drugikh redkikh operatsiiakh.

ZFS ne iavliaetsia iznachal'no klasternoi, raspredelionnoi ili parallel'noi failovoi sistemoi i ne predostavliaet konkuriruiushchego dostupa k dannym s razlichnykh khostov. ZFS -- eto lokal'naia failovaia sistema.

V realizatsii ZFS v Solaris 11 nel'zia meniat' tip vdev v zpool. Naprimer, esli u vas est' ZFS-pul, soderzhashchii blochnye ustroistva, net vozmozhnosti skopirovav soderzhimoe blochnykh ustroistv v obychnye faily importirovat' pul iz etikh failov, i naoborot -- perenesti pul iz obychnykh failov na blochnye ustroistva.

Udalenie bol'shogo kolichestva dannykh iavliaetsia medlennoi blokiruiushchei operatsiei (v versii pula 37 i bolee rannikh), naprimer, udalenie fragmentirovannoi failovoi sistemy razmerom v 100 GiB mozhet zaniat' bolee minuty i blokiruet operatsii polucheniia spiska failovykh sistem i nekotorykh drugikh deistvii s failovymi sistemami v tom zhe pule.

Net vozmozhnosti prokontrolirovat' vosstanovlenie pula posle vosstanovleniia dostupa k raznym kopiiam zerkalirovannogo pula. Sistema sama reshaet, kak vosstanovit' pul, dazhe esli v raznye kopii pula nezavisimo vnosilis' izmeneniia (eto razreshaetsia).

Sil'no povrezhdionnyi pul ne mozhet byt' vosstanovlen i trebuet peresozdaniia. Pri etom, vo mnogikh sluchaiakh, pol'zovatel'skie dannye mozhno izvlech' iz povrezhdionnogo pula, importirovav ego dlia chteniia.

Nekotorye nevosstanovimye povrezhdeniia pula v sistemnykh dannykh ne privodiat ni k porche pol'zovatel'skikh dannykh, ni k blokirovke izmeneniia pula. Pri etikh povrezhdeniiakh pul vneshne prodolzhaet dolgoe vremia normal'no funktsionirovat' i ne preduprezhdaet o neobkhodimosti ego ispravleniia. No bez ispravleniia on, v kontse kontsov, poteriaet pol'zovatel'skie dannye i pridiot v neispravimoe ili dazhe v nechitaemoe sostoianie. Vozmozhnost' obnaruzheniia takikh problem i svoevremennogo avtomaticheskogo (po vozmozhnosti) ispravleniia ne vstroena v ZFS i trebuet otdel'noi nastroiki.

Platformy

[pravit' | pravit' kod]

Semeistvo Solaris

[pravit' | pravit' kod]

ZFS iavliaetsia chast'iu operatsionnoi sistemy Solaris i dostupna dlia obeikh platform -- SPARC i x86. Poskol'ku kod ZFS iavliaetsia otkrytym (litsenziia CDDL), porty dlia drugikh operatsionnykh sistem i platform mogut proizvodit'sia bez uchastiia Oracle.

OpenSolaris 2008.05 ispol'zuet ZFS kak failovuiu sistemu po umolchaniiu.

Nexenta OS -- operatsionnaia sistema s GNU-okruzheniem, postroennaia poverkh iadra OpenSolaris i ego sredy vypolneniia, v versii alpha1 v eio iadro byla vkliuchena podderzhka ZFS. Neskol'ko pozdnee Nexenta Systems predstavila NexentaStor -- sistemu dlia setevogo khraneniia s podderzhkoi ZFS, predostavliaiushchuiu vozmozhnosti NAS/SAN/iSCSI i baziruiushchuiusia na Nexenta OS. NexentaStor vkliuchaet v sebia graficheskii interfeis, kotoryi uproshchaet protsess ispol'zovaniia ZFS. 2 dekabria 2008 goda vypushchena versiia NexentaStor 1.1. V nei obnovleno iadro OpenSolaris, uluchshena integratsiia s CIFS/AD, a takzhe dobavleny neskol'ko plaginov i ispravleny nekotorye oshibki. Imeetsia dve redaktsii NexentaStor: kommercheskaia Enterprise Edition i besplatnaia Community Edition s ogranicheniem maksimal'noi iomkosti khranilishcha v 18TB. Po sostoianiiu na avgust 2012 goda, tekushchei versiei PO iavliaetsia 3.1.3.

Linux

[pravit' | pravit' kod]

Iz-za litsenzionnykh ogranichenii CDDL ZFS ne vkliuchena v iadro, no dostupna v vide modulia iadra, kotoryi prisutstvuet vo mnogikh distributivakh Linux[23].

Dolgoe vremia v Linux perenos ZFS na uroven' iadra schitalsia iuridicheski nevozmozhnym iz-za nesovmestimosti litsenzii CDDL, pod iurisdiktsiei kotoroi nakhoditsia ZFS, i GNU GPL, pod iurisdiktsiei kotoroi nakhoditsia Linux. Odnako v mae 2010 goda Braian Belendorf predstavil novuiu versiiu proekta, v ramkakh kotorogo vediotsia rabota po realizatsii vstroennoi podderzhki failovoi sistemy ZFS dlia Linux. Dlia obkhoda litsenzionnogo ogranicheniia Belendorf reshil rasprostraniat' svoi produkt tselikom pod litsenziei CDDL v vide otdel'no zagruzhaemogo modulia, kotoryi postavliaetsia otdel'no ot iadra[24][25]. S marta 2013 goda (versiia 0.6.1) proekt schitaetsia gotovym k promyshlennomu primeneniiu[23]. Ubuntu 16.04 (64-bitnaia versiia) iavliaetsia pervym iz shiroko rasprostranionnykh distributivov Linux, gotovym k ispol'zovaniiu ZFS[26].

Initsiativnaia programma Google Summer of Code sponsiruet adaptatsiiu ZFS na Linux s ispol'zovaniem modulia FUSE, v kotorom failovaia sistema ZFS rabotaet v pol'zovatel'skom prostranstve[27]. Schitaetsia, chto eto reshenie teoreticheski chrevato poteriami proizvoditel'nosti[28]. No primer s realizatsiei NTFS (NTFS-3G) cherez FUSE pokazyvaet khoroshuiu proizvoditel'nost' po sravneniiu s drugimi sistemami[29], chto daiot osnovaniia prognozirovat' priemlemuiu proizvoditel'nost' ZFS-FUSE.

Na konets 2012 goda ZFS-FUSE[30] predstavlena v vide versii 0.7.0, v kotoroi vkliuchena prakticheski polnaia podderzhka ZFS i vsekh eio funktsii -- vnedrena podderzhka 23-i versii pula.

FreeBSD

[pravit' | pravit' kod]

Pavel Davidek (Pawel Jakub Dawidek) adaptiroval ZFS dlia FreeBSD v vide modulia dlia iadra sistemy. ZFS vkliuchena v versiiu FreeBSD 7.0 (vyshla 27 fevralia 2008)[31].

Kod ZFSv28 protestirovan v versii FreeBSD 9 i portirovan v stabil'nuiu vetku razrabotki versii 8. Relizy FreeBSD 8.3, 8.4 i 9.0 podderzhivaiut 28-iu versiiu pula ZFS. Reliz FreeBSD 9.2 i bolee pozdnie versii FreeBSD ispol'zuiut novye vozmozhnosti <>, baziruiushchiesia na realizatsii Pula versii 5000[32].

Vo FreeBSD, nachinaia s 8 versii, dlia raboty ZFS, v otlichie ot Linux, ne trebuetsia nalichiia FUSE, i, sledovatel'no, otsutstvuiut problemy proizvoditel'nosti, s etim sviazannye. Podtverzhdeniem etomu iavliaetsia to, chto ZFS v FreeBSD vkliuchena v iadro i prisutstvuet v sisteme srazu, v chisle prochego pozvoliaia osushchestvit' zagruzku operatsionnoi sistemy s tomov ZFS. A modul' FUSE ne vkhodit v operatsionnuiu sistemu, i mozhet byt' pri zhelanii ustanovlen dopolnitel'no iz kollektsii portov[33] (chto trebuetsia naprimer dlia podderzhki NTFS).

Mac OS X

[pravit' | pravit' kod]

Apple predprinimala popytku perenesti ZFS na sistemu Mac OS X, velas' aktivnaia diskussiia v spiskakh rassylki ZFS i predvaritel'nye srezy dlia sleduiushchei versii Apple Mac OS X[34]. Nesmotria na to, chto Mac OS X 10.5 (9A321) podderzhivaet ZFS, v nei otsutstvuet vozmozhnost' ispol'zovat' ZFS na kornevykh razdelakh, a takzhe net vozmozhnosti formatirovat' lokal'nye diski pod ZFS (poslednee schitaetsia bagom[35]).

V iiune 2009 goda Apple na svoei press-konferentsii WWDC'09 otkazalas' ot ZFS v predstavlennoi versii Mac OS X 10.6 Snow Leopard, v dokumentatsii i materialakh saita byli ubrany vse upominaniia o ZFS. Kompaniia ne raskryvaet prichiny otkaza ot ispol'zovaniia ZFS[36].

Khotia v sborke Mac OS X 10.6 Snow Leopard pod nomerom 10A432, pomechennoi kak Golden Master, podderzhka ZFS byla vozvrashchena, v okonchatel'nom relize Mac OS X 10.6 podderzhka ZFS vnov' ubrana, uzhe okonchatel'no[37].

V otvet na zakrytie ofitsial'noi podderzhki ZFS poiavilsia svobodnyi proekt, kotoryi baziruetsia na ranee sozdannoi Apple kodovoi baze, no otlichaiushchiisia metodom integratsii v sistemu. MacZFS vypolniaetsia ne na urovne iadra, a na pol'zovatel'skom urovne, rabotaia s ispol'zovaniem MacFUSE, podgotovlen binarnyi paket, sobrannyi na osnove opublikovannykh v Git-repozitorii iskhodnykh tekstov, a takzhe instruktsiia po nastroike.

Redox

[pravit' | pravit' kod]

Operatsionnaia sistema Redox planirovala ispol'zovat' ZFS kak failovuiu sistemu po umolchaniiu, odnako pozzhe pereshla na sobstvennuiu realizatsiiu skhodnykh printsipov -- TFS[38][39], napisannuiu na osnovnom iazyke Redox -- Rust.

Primechaniia

[pravit' | pravit' kod]
  1. | zfs/zfs_vnops.c at 12fa7f3436fbd89f4d6b00c2c076405e7a21d62f * zfsonlinux/zfs * GitHub + zfs/zfs_znode.h at 25458cbef9e59ef9ee6a7e729ab2522ed308f88f * zfsonlinux/zfs * GitHub + zfs/zfs_vfsops.c at 25458cbef9e59ef9ee6a7e729ab2522ed308f88f * zfsonlinux/zfs * GitHub
  2. | ZFS: the last word in file systems (ZFS: poslednee slovo v failovykh sistemakh) . Sun Microsystems (14 sentiabria 2004). Data obrashcheniia: 30 aprelia 2006. Arkhivirovano 4 iiunia 2012 goda.
  3. | Jeff Bonwick. ZFS: The Last Word in Filesystems . Jeff Bonwick's Blog (31 oktiabria 2005). Data obrashcheniia: 30 aprelia 2006. Arkhivirovano 13 oktiabria 2012 goda.
  4. | Sun Celebrates Successful One-Year Anniversary of OpenSolaris (Sun prazdnuet uspeshnuiu pervuiu godovshchinu OpenSolaris) . Sun Microsystems (20 iiunia 2006). Arkhivirovano 13 oktiabria 2012 goda.
  5. | Jeff Bonwick. You say zeta, I say zetta (Ty skazhesh' zeta, ia skazhu zetta) . Jeff Bonwick's Blog (4 maia 2006). Data obrashcheniia: 8 sentiabria 2006. Arkhivirovano 13 oktiabria 2012 goda.
  6. | The OpenZFS project launches . LWN.net (17 sentiabria 2013). Data obrashcheniia: 1 oktiabria 2013. Arkhivirovano 11 oktiabria 2016 goda.
  7. | OpenZFS Announcement . OpenZFS (17 sentiabria 2013). Data obrashcheniia: 19 sentiabria 2013. Arkhivirovano 2 aprelia 2018 goda.
  8. | OpenZFS History . OpenZFS. Data obrashcheniia: 24 sentiabria 2013. Arkhivirovano 24 dekabria 2013 goda.
  9. | Prosteishaia proverka pokazyvaet, chto v tekushchei realizatsii bolee 16 EiB pul ne mozhet ispol'zovat'. Etu proverku legko provesti samostoiatel'no, tak kak ustroistva po 8 EiB predostavliaet sama ZFS khot' sotniami na real'nyi gigabait mesta pri ispol'zovanii szhatiia.
  10. | Kak zaiavil rukovoditel' proekta Bonvik, <> Primer togo, naskol'ko veliki eti chisla: esli sozdavat' 1000 failov kazhduiu sekundu, dlia dostizheniia predela kolichestva failov v ZFS potrebuetsia okolo 9000 let. Raschiot pokazyvaet, chto trebuemoe vremia sostavliaet 8925,5129601298833079654997463217 let bez uchiota izmeneniia uglovoi skorosti zapisi na disk i drugikh izderzhek. V otvet na vopros o zapolnenii ZFS bez kipiacheniia okeanov, Bonvik pishet: <Zakon Mura vypolnialsia beskonechno dolgo, kvantovaia mekhanika nakladyvaet nekotorye fundamental'nye ogranicheniia na skorost' vychislenii i informatsionnuiu vmestimost' liubogo fizicheskogo ustroistva. V chastnosti, bylo pokazano, chto 1 kilogramm materii, ogranichennyi 1 litrom prostranstva, mozhet vypolniat' ne bolee 1051 operatsii v sekundu nad ne bolee chem 1031 bit informatsii [sm. Seth Lloyd, ,,Ultimate physical limits to computation Arkhivirovano 7 avgusta 2008 goda.." Nature 406, 1047--1054 (2000)]. Tselikom zapolnennyi 128-bitnyi ob'iom budet soderzhat' 2128 blokov = 2137 bait = 2140 bit; poetomu minimal'naia massa, neobkhodimaia dlia khraneniia etogo kolichestva bit, budet (2140 bit) / (1031 bit/kg) = 136 mlrd kg.>>
  11. | Na atributy, ispol'zuemye OS, nakladyvaiutsia dopolnitel'nye ogranicheniia, naprimer, razmer atributa FS dlia spiska dostupa po NFS v Solaris ogranichen primerno 104 bait, chto sootvetstvuet ot 2000 do 20 pol'zovatelei v zavisimosti ot dlin loginov i khostov.
  12. | ZFS On-Disk Specification . Sun Microsystems, Inc.. Arkhivirovano iz originala 28 oktiabria 2015 goda. Sm. glavu 2.4.
  13. | Data integrity . doklad CERN (8 aprelia 2007). Data obrashcheniia: 28 ianvaria 2008. Arkhivirovano 13 oktiabria 2012 goda.
  14. | Smokin' Mirrors . Blog Jeff'a Bonwick'a (2 maia 2006). Data obrashcheniia: 23 fevralia 2007. Arkhivirovano 13 oktiabria 2012 goda.
  15. | Raspredelenie blokov ZFS . Jeff Bonwick's blog (4 noiabria 2006). Data obrashcheniia: 23 fevralia 2007. Arkhivirovano 13 oktiabria 2012 goda.
  16. | Te zhe bloki - Udivitel'naia repelent lenta . Flippin' off bits Weblog (12 maia 2006). Data obrashcheniia: 1 marta 2007. Arkhivirovano 13 oktiabria 2012 goda.
  17. | Synopsis -- man pages section 1: User Commands . Data obrashcheniia: 13 ianvaria 2016. Arkhivirovano 24 oktiabria 2016 goda.
  18. | Synopsis - man pages section 3: Basic Library Functions: fgetattr, fsetattr, getattrat, setattrat - get and set system attributes . Data obrashcheniia: 13 marta 2016. Arkhivirovano 11 oktiabria 2016 goda.
  19. | Synopsis - man pages section 1: User Commands: chmod - change the permissions mode of a file . Data obrashcheniia: 13 marta 2016. Arkhivirovano 25 marta 2016 goda.
  20. | Synopsis -- man pages section 1: User Commands . Data obrashcheniia: 13 ianvaria 2016. Arkhivirovano 2 fevralia 2017 goda.
  21. | Ahrens, 2014.
  22. | Proekt OpenSolaris: Podderzhka shifrovaniia diskov v ZFS. Proekt OpenSolaris. Data obrashcheniia: 11 iiulia 2008. Arkhivirovano 13 oktiabria 2012 goda.
  23. | 1 2 Neil McAllister. Production-ready ZFS offers cosmic-scale storage for Linux. Uber-reliable filesystem now ready for wide deployment (angl.). The Register (30 marta 2013). Data obrashcheniia: 30 marta 2013. Arkhivirovano 4 aprelia 2013 goda.
  24. | Dlia Linux dostupna nativnaia podderzhka failovoi sistemy ZFS : [arkh. 29 maia 2010] // OpenNET. -- 2010. -- 27 maia.
  25. | Matt Ahrens, Brian Behlendorf. OpenZFS on Linux (angl.). LinuxCon 2013 (17 sentiabria 2013). Data obrashcheniia: 25 dekabria 2013. Arkhivirovano iz originala 13 noiabria 2013 goda.
  26. | Ben Everard. Ubuntu 16.04 It's back -- and it's brilliant. Linux Voice, issue 27, June 2016
  27. | Ricardo Correia. Announcing ZFS on FUSE/Linux (26 maia 2006). Data obrashcheniia: 15 iiulia 2006. Arkhivirovano 13 oktiabria 2012 goda.
  28. | Realizatsiia failovoi sistemy na urovne zadach pol'zovatel'skogo prostranstva mozhet nesti v sebe dopolnitel'nye zatraty, k primeru perekliuchenie konteksta. No takaia realizatsiia iavliaetsia osnovoi tseloi teorii mikroiadernykh sistem i otlichaetsia bol'shei nadiozhnost'iu po sravneniiu s realizatsiei vnutri iadra.
  29. | Szabolcs Szakacsits. NTFS-3G Read/Write Driver Performance (28 noiabria 2007). Data obrashcheniia: 20 ianvaria 2008. Arkhivirovano 4 ianvaria 2007 goda.
  30. | ZFS for Linux 0.7.0 . Data obrashcheniia: 7 noiabria 2012. Arkhivirovano 20 noiabria 2012 goda.
  31. | Dawidek, Pawel. ZFS committed to the FreeBSD base (6 aprelia 2007). Data obrashcheniia: 6 aprelia 2007. Arkhivirovano 13 oktiabria 2012 goda.
  32. | FreeBSD 9.2-RELEASE Release Notes . FreeBSD. Data obrashcheniia: 30 sentiabria 2013. Arkhivirovano 3 oktiabria 2013 goda.
  33. | kollektsiia portov FreeBSD . Data obrashcheniia: 21 aprelia 2015. Arkhivirovano 19 aprelia 2015 goda.
  34. | Portirovanie ZFS v OSX . zfs-diskussii (27 aprelia 2006). Data obrashcheniia: 30 aprelia 2006. Arkhivirovano 13 oktiabria 2012 goda.
  35. | Mac OS X 10.5 9A326 Seeded . InsanelyMac Forums (14 dekabria 2006). Data obrashcheniia: 14 dekabria 2006. Arkhivirovano 13 oktiabria 2012 goda.
  36. | Linux.Org.Ru . InsanelyMac Forums (11 iiunia 2009). Data obrashcheniia: 11 iiunia 2009. Arkhivirovano 13 oktiabria 2012 goda.
  37. | Robin Harris - Apple kicks ZFS in the butt . Data obrashcheniia: 2 sentiabria 2009. Arkhivirovano 2 sentiabria 2009 goda.
  38. | https://github.com/redox-os/tfs Arkhivnaia kopiia ot 26 oktiabria 2018 na Wayback Machine <>
  39. | https://www.phoronix.com/scan.php?page=news_item&px=TFS-File-System-Rust-ZFS Arkhivnaia kopiia ot 18 oktiabria 2018 na Wayback Machine, https://www.phoronix.com/scan.php?page=news_item&px=Redox-OS-2016-State Arkhivnaia kopiia ot 18 oktiabria 2018 na Wayback Machine

Ssylki

[pravit' | pravit' kod]

Porty

[pravit' | pravit' kod]

Obzory i informatsiia

[pravit' | pravit' kod]
Sun Microsystems (pogloshchena Oracle)
Oborudovanie
Programmnoe obespechenie
Khranenie dannykh
High-Performance Computing
Issledovaniia
Obuchenie
Soobshchestvo
Tekhnologii
OpenSolaris
Diskovye
Opticheskie diski
Flesh-pamiat'/SSD
Klasternye
Raspredelionnye
(setevye)
Spetsial'nye
Psevdo- i virtual'nye
Shifrovannye
Istochnik -- https://ru.wikipedia.org/w/index.php?title=ZFS&oldid=149831955