ZFS Basics: Cia thiab Kev Ua Haujlwm

ZFS Basics: Cia thiab Kev Ua Haujlwm

Lub caij nplooj ntoo hlav no peb twb tau tham txog qee cov ntsiab lus qhia, piv txwv li. yuav ua li cas xyuas qhov ceev ntawm koj cov tsav tsheb ΠΈ RAID yog dab tsi. Nyob rau hauv qhov thib ob ntawm cov no, peb txawm tau cog lus tias yuav kawm ntxiv txog kev ua tau zoo ntawm ntau lub disk topologies hauv ZFS. Qhov no yog cov ntaub ntawv tiam tom ntej uas tam sim no raug xa mus rau txhua qhov chaw los ntawm Kua rau Ubuntu.

Zoo, hnub no yog hnub zoo tshaj plaws kom paub ZFS, cov neeg nyeem xav paub. Tsuas yog paub tias hauv OpenZFS tus tsim tawm Matt Ahrens qhov kev ntsuas txo qis, "nws nyuaj heev."

Tab sis ua ntej peb mus rau cov lej - thiab yuav muaj, kuv cog lus - rau txhua qhov sib txawv ntawm yim-disk ZFS teeb tsa, peb yuav tsum tham txog yuav ua li cas Feem ntau, ZFS khaws cov ntaub ntawv ntawm disk.

Zpool, vdev and device

ZFS Basics: Cia thiab Kev Ua Haujlwm
Daim duab qhia tag nrho ntawm lub pas dej no suav nrog peb pab vdevs, ib qho ntawm txhua chav kawm, thiab plaub rau RAIDz2

ZFS Basics: Cia thiab Kev Ua Haujlwm
Feem ntau tsis muaj laj thawj los tsim ib lub pas dej ntawm cov vdev mismatched hom thiab qhov ntau thiab tsawg - tab sis yog tias koj xav tau, tsis muaj dab tsi txwv koj ua li ntawd

Yuav kom nkag siab tiag tiag ZFS cov ntaub ntawv kaw lus, koj yuav tsum ua tib zoo saib nws cov qauv tiag tiag. Ua ntej, ZFS koom ua ke cov ntim ib txwm muaj thiab cov txheej txheem tswj cov ntaub ntawv. Qhov thib ob, nws siv lub tshuab luam ntawv luam-on-sau. Cov yam ntxwv no txhais tau hais tias lub kaw lus yog qhov sib txawv ntawm cov kab ke cov ntaub ntawv thiab RAID arrays. Thawj cov txheej txheem hauv tsev kom nkag siab yog lub pas dej ua ke (zpool), cov cuab yeej virtual (vdev) thiab cov cuab yeej tiag (device).

zpool ua

Zpool cia pas dej ua ke yog lub topmost ZFS qauv. Txhua lub pas dej muaj ib lossis ntau cov khoom siv virtual. Nyob rau hauv lem, txhua tus ntawm lawv muaj ib los yog ntau tshaj cov khoom siv tiag tiag (cov khoom siv). Cov pas dej virtual yog cov chav nyob ntawm tus kheej. Ib lub computer lub cev muaj peev xwm muaj ob lossis ntau lub pas dej sib cais, tab sis txhua tus muaj kev ywj pheej ntawm lwm tus. Cov pas dej tsis tuaj yeem sib koom cov khoom siv virtual.

ZFS redundancy yog nyob rau theem virtual ntaus ntawv, tsis yog nyob rau theem pas dej ua ke. Tsis muaj kev rov ua dua tshiab ntawm qib pas dej - yog tias vdev lossis nplooj siab vdev ploj, tag nrho lub pas dej tau ploj nrog nws.

Cov pas dej niaj hnub no tuaj yeem muaj sia nyob qhov poob ntawm lub tshuab virtual cache lossis cav - txawm hais tias lawv yuav poob me me ntawm cov ntaub ntawv qias neeg yog tias lawv plam vdev cav thaum lub zog hluav taws xob lossis lub kaw lus poob.

Muaj ib qho kev xav tsis zoo uas ZFS "cov ntaub ntawv kab txaij" tau sau hla tag nrho lub pas dej. Qhov no tsis muaj tseeb. Zpool tsis yog qhov lom zem RAID0, nws yog qhov lom zem ntau dua JBOD nrog ib tug complex variable faib mechanism.

Rau feem ntau, cov ntaub ntawv tau muab faib rau ntawm cov khoom siv virtual uas muaj raws li qhov chaw pub dawb, yog li hauv kev xav lawv txhua tus yuav tau sau rau tib lub sijhawm. Tsis ntev los no versions ntawm ZFS coj mus rau hauv tus account qhov tam sim no vdev siv (tshem tawm) - yog tias ib lub cuab yeej virtual yog qhov ua haujlwm loj dua li lwm tus (piv txwv li, vim nyeem ntawv), nws yuav raug hla mus ib ntus rau kev sau, txawm tias muaj qhov chaw dawb tshaj plaws. .

Lub tshuab tshawb nrhiav rov ua dua tshiab tau tsim rau hauv ZFS niaj hnub sau cov txheej txheem tuaj yeem txo qis latency thiab nce kev nkag mus rau lub sijhawm ntawm kev thauj khoom tsis zoo - tab sis nws tsis carte blanch kom tsis txhob sib xyaw ntawm qeeb HDDs thiab ceev SSDs hauv ib lub pas dej. Xws li lub pas dej tsis sib xws tseem yuav ua haujlwm ntawm qhov nrawm ntawm cov cuab yeej qeeb tshaj plaws, uas yog, zoo li nws tau tsim los ntawm cov khoom siv zoo li no.

vdev

Txhua lub pas dej ua ke muaj ib lossis ntau qhov khoom siv virtual (vdev). Nyob rau hauv lem, txhua vdev suav nrog ib los yog ntau tshaj li tiag tiag. Cov khoom siv virtual feem ntau yog siv los khaws cov ntaub ntawv yooj yim, tab sis muaj ob peb vdev pab pawg, suav nrog CACHE, LOG, thiab SPECIAL. Txhua yam ntawm cov vdev no tuaj yeem muaj ib qho ntawm tsib topologies: ib qho khoom siv, RAIDz1, RAIDz2, RAIDz3 lossis daim iav.

RAIDz1, RAIDz2 thiab RAIDz3 yog ntau yam tshwj xeeb ntawm dab tsi cov neeg laus yuav hu ua ob npaug (kab phiab) parity RAID. 1, 2 thiab 3 yog xa mus rau ntau npaum li cas parity blocks tau faib rau txhua txoj kab ntaub ntawv. Es tsis txhob muaj cov disks cais los muab kev sib luag, cov khoom siv virtual RAIDz faib parity ib nrab sib npaug thoob plaws cov disks. Ib qho RAIDz array tuaj yeem poob ntau li disks raws li nws muaj parity blocks; yog tias nws poob lwm tus, nws yuav poob thiab nqa lub pas dej nrog nws.

Hauv daim iav virtual li (daim iav vdev), txhua qhov thaiv yog khaws cia ntawm txhua lub cuab yeej hauv vdev. Txawm hais tias ob daim iav dav dav yog qhov ntau tshaj plaws, daim iav tuaj yeem muaj cov khoom siv tsis txaus ntseeg - hauv kev teeb tsa loj, triples feem ntau yog siv los txhim kho kev nyeem ntawv thiab kev ua txhaum cai. Daim iav vdev tuaj yeem muaj sia nyob txhua qhov kev ua tsis tiav yog tias tsawg kawg ib lub cuab yeej hauv vdev tseem ua haujlwm.

Ib leeg vdev yog inherently txaus ntshai. Xws li ib tug virtual ntaus ntawv yuav tsis ciaj sia ib tug tsis ua hauj lwm - thiab yog siv raws li cia los yog ib tug tshwj xeeb vdev, ces nws tsis ua hauj lwm yuav ua rau kev puas tsuaj ntawm tag nrho cov pas dej ua ke. Yuav tsum ceev faj heev ntawm no.

CACHE, LOG, thiab SPECIAL virtual li tuaj yeem tsim nyob rau hauv ib qho ntawm cov saum toj kawg nkaus topologies - tab sis nco ntsoov tias poob ib qho SPECIAL virtual ntaus ntawv txhais tau tias poob lub pas dej, yog li kev pom zoo rov ua dua.

ntaus ntawv

Qhov no yog tej zaum lub ntsiab lus yooj yim tshaj plaws kom nkag siab hauv ZFS - nws yog ib qho kev thaiv kev nkag mus nkag tau yooj yim. Nco ntsoov tias cov khoom siv virtual yog tsim los ntawm cov khoom siv ib leeg, thiab lub pas dej ua ke yog tsim los ntawm cov khoom siv virtual.

Disks, xws li sib nqus los yog lub xeev muaj zog, yog cov khoom siv thaiv feem ntau siv los ua cov tsev thaiv ntawm vdev. Txawm li cas los xij, txhua yam khoom siv nrog tus piav qhia hauv / dev yuav ua - yog li tag nrho cov khoom siv RAID arrays tuaj yeem siv los ua cov khoom sib cais.

Cov ntaub ntawv nyoos yooj yim yog ib qho tseem ceeb tshaj plaws lwm txoj hauv kev thaiv cov khoom siv los ntawm kev tsim vdev. Test pas dej los ntawm sparse cov ntaub ntawv yog ib txoj hauv kev yooj yim heev los xyuas cov lus txib hauv pas dej ua ke thiab pom tias qhov chaw muaj ntau npaum li cas hauv lub pas dej lossis cov khoom siv virtual ntawm ib qho kev muab topology.

ZFS Basics: Cia thiab Kev Ua Haujlwm
Koj tuaj yeem tsim lub pas dej sim los ntawm cov ntaub ntawv sib cais hauv ob peb feeb xwb - tab sis tsis txhob hnov ​​​​qab tshem tag nrho lub pas dej thiab nws cov khoom tom qab.

Cia peb hais tias koj xav tau yim-disk server thiab npaj siv 10 TB (~ 9300 GiB) disks - tab sis koj tsis paub tseeb tias qhov twg topology zoo tshaj plaws rau koj cov kev xav tau. Hauv qhov piv txwv saum toj no, peb tsim lub pas dej ua ke los ntawm cov ntaub ntawv me me hauv ib lub vib nas this - thiab tam sim no peb paub tias RAIDz2 vdev ntawm yim 10 TB disks muab 50 TiB ntawm lub peev xwm siv tau.

Lwm chav tshwj xeeb ntawm cov khoom siv yog SPARE. Cov khoom siv kub sib pauv, tsis zoo li cov khoom siv niaj hnub, koom nrog tag nrho lub pas dej ua ke es tsis yog rau ib qho khoom siv virtual. Yog hais tias ib tug vdev nyob rau hauv lub pas dej ua ke tsis ua hauj lwm thiab ib tug spare ntaus ntawv txuas nrog lub pas dej ua ke thiab muaj, ces nws yuav cia li koom nrog cov cuam tshuam vdev.

Thaum txuas nrog vdev cuam tshuam, lub cuab yeej hloov pauv pib tau txais cov ntawv theej lossis rov tsim kho cov ntaub ntawv uas yuav tsum tau nyob ntawm lub cuab yeej ploj. Hauv ib txwm RAID qhov no yog hu ua "rebuilding", thiab hauv ZFS nws yog "resilvering".

Nws yog ib qho tseem ceeb uas yuav tsum nco ntsoov tias cov khoom siv hloov pauv tsis tas hloov cov cuab yeej ua tsis tiav. Qhov no tsuas yog hloov ib ntus los txo lub sijhawm nws siv rau vdev kom txo qis. Tom qab tus thawj tswj hwm hloov lub cuab yeej vdev ua tsis tiav, rov qab rov qab mus rau lub cuab yeej tas li, thiab SPARE raug txiav tawm ntawm vdev thiab rov qab los ua ib qho khoom seem rau tag nrho lub pas dej.

Cov ntaub ntawv teev, blocks thiab sectors

Cov txheej txheem tom ntej ntawm lub tsev kom nkag siab hauv peb ZFS cov lus hais txog tsawg dua rau cov khoom siv kho vajtse thiab ntau dua los ua li cas cov ntaub ntawv nws tus kheej tau teeb tsa thiab khaws cia. Peb tab tom hla ob peb txheej ntawm no - xws li metaslab - kom tsis txhob cuam tshuam cov ntsiab lus thaum tswj kev nkag siab ntawm tag nrho cov qauv.

Cov ntaub ntawv

ZFS Basics: Cia thiab Kev Ua Haujlwm
Thaum peb xub tsim ib cov ntaub ntawv, nws qhia tag nrho cov chaw muaj pas dej ua ke. Tom qab ntawd peb teeb lub quota - thiab hloov lub mount point. Khawv koob!

ZFS Basics: Cia thiab Kev Ua Haujlwm
Zvol feem ntau tsuas yog cov ntaub ntawv tshem tawm ntawm nws cov txheej txheem cov ntaub ntawv, uas peb hloov ntawm no nrog cov txheej txheem tag nrho ext4.

ZFS cov ntaub ntawv teeb yog kwv yees tib yam li cov txheej txheem mounted cov ntaub ntawv. Zoo li cov ntaub ntawv tsis tu ncua, thaum xub thawj siab ib muag nws zoo nkaus li "tsuas yog lwm lub nplaub tshev." Tab sis ib yam li cov ntaub ntawv txuas mus tas li, txhua ZFS cov ntaub ntawv teeb tsa muaj nws tus kheej cov khoom siv yooj yim.

Ua ntej ntawm tag nrho cov, ib dataset yuav muaj ib tug muab quota. Yog tias koj nruab zfs set quota=100G poolname/datasetname, ces koj yuav tsis muaj peev xwm sau rau mounted folder /poolname/datasetname ntau tshaj 100 GiB.

Pom qhov muaj-thiab qhov tsis muaj-ntawm cov slashes thaum pib ntawm txhua kab? Txhua cov ntaub ntawv teev muaj nws qhov chaw nyob rau hauv ob qho tib si ZFS hierarchy thiab lub system mount hierarchy. Tsis muaj kev sib tw ua ntej hauv ZFS hierarchy - koj pib nrog lub npe pas dej ua ke thiab tom qab ntawd txoj hauv kev los ntawm ib cov ntaub ntawv teev mus rau lwm qhov. Piv txwv li, pool/parent/child rau ib daim ntawv teev npe child nyob rau hauv cov ntaub ntawv niam txiv parent nyob rau hauv lub pas dej ua ke nrog ib tug muaj tswv yim lub npe pool.

Los ntawm lub neej ntawd, lub mount taw tes ntawm ib dataset yuav sib npaug rau nws lub npe nyob rau hauv lub ZFS hierarchy, nrog ib tug ua slash - lub pas dej ua ke muaj npe. pool mounted as /pool, data set parent mounted hauv /pool/parent, thiab tus me nyuam cov ntaub ntawv teev child mounted hauv /pool/parent/child. Txawm li cas los xij, cov ntaub ntawv teeb tsa qhov system mount point tuaj yeem hloov pauv.

Yog peb qhia zfs set mountpoint=/lol pool/parent/child, ces cov ntaub ntawv teev pool/parent/child mounted rau hauv qhov system li /lol.

Ntxiv rau datasets, peb yuav tsum hais txog ntim (zvols). Ib lub ntim yog ib yam li cov ntaub ntawv teev tseg, tshwj tsis yog tias nws tsis muaj cov ntaub ntawv kaw lus - nws tsuas yog lub cuab yeej thaiv. Koj tuaj yeem ua piv txwv tsim zvol Nrog lub npe mypool/myzvol, ces format nws nrog ib qho ext4 filesystem, thiab tom qab ntawd mount qhov filesystem - tam sim no koj muaj ext4 filesystem, tab sis nrog tag nrho cov kev ruaj ntseg nta ntawm ZFS! Qhov no yuav zoo li dag ntawm ib lub khoos phis tawj, tab sis ua rau muaj kev nkag siab ntau dua li qhov backend thaum xa tawm iSCSI ntaus ntawv.

Blocks

ZFS Basics: Cia thiab Kev Ua Haujlwm
Cov ntaub ntawv yog sawv cev los ntawm ib lossis ntau qhov blocks. Txhua qhov thaiv tau khaws cia ntawm ib lub cuab yeej virtual. Qhov loj ntawm qhov thaiv feem ntau yog sib npaug rau qhov parameter cov ntaub ntawv loj, tab sis yuav raug txo kom tsawg 2^ kev, yog tias nws muaj cov metadata lossis cov ntaub ntawv me me.

ZFS Basics: Cia thiab Kev Ua Haujlwm
Peb tiag tiag tiag tiag Peb tsis yog hais txog qhov kev nplua loj heev yog tias koj teem caij ua haujlwm qis dhau

Hauv lub pas dej ZFS, tag nrho cov ntaub ntawv, suav nrog cov metadata, yog khaws cia hauv cov blocks. Qhov siab tshaj plaws thaiv qhov loj rau txhua cov ntaub ntawv teev yog txhais hauv cov cuab yeej recordsize (cov ntaub ntawv loj). Cov ntaub ntawv loj tuaj yeem hloov pauv, tab sis qhov no yuav tsis hloov qhov loj lossis qhov chaw ntawm cov blocks uas twb tau sau rau hauv cov ntaub ntawv teev tseg - nws tsuas yog cuam tshuam cov blocks tshiab raws li lawv tau sau.

Tshwj tsis yog tias tau teev tseg, qhov kev nkag mus tam sim no yog 128 KiB. Nws yog hom kev lag luam nyuaj uas qhov kev ua tau zoo yuav tsis zoo tag nrho, tab sis nws yuav tsis txaus ntshai nyob rau hauv feem ntau. Recordsize tuaj yeem teem rau txhua tus nqi ntawm 4K rau 1M (nrog rau kev teeb tsa ntxiv recordsize koj tuaj yeem nruab ntau dua, tab sis qhov no tsis tshua muaj lub tswv yim zoo).

Ib qho thaiv yog hais txog cov ntaub ntawv ntawm ib daim ntawv nkaus xwb - koj tsis tuaj yeem nyem ob cov ntaub ntawv sib txawv rau hauv ib qho thaiv. Txhua cov ntaub ntawv muaj ib lossis ntau qhov blocks, nyob ntawm nws qhov loj me. Yog tias cov ntaub ntawv loj me dua li cov ntaub ntawv loj, nws yuav muab khaws cia rau hauv ib qho me me - piv txwv li, ib qho thaiv nrog 2 KiB cov ntaub ntawv tsuas yog nyob ib qho 4 KiB sector ntawm disk.

Yog tias cov ntaub ntawv loj txaus xav tau ntau qhov blocks, ces txhua qhov nkag rau cov ntaub ntawv yuav loj recordsize - suav nrog qhov kawg nkag, qhov tseem ceeb ntawm qhov yuav yog qhov chaw tsis siv.

zvol ntim tsis muaj cov cuab yeej recordsize - es tsis txhob lawv muaj cov khoom sib npaug volblocksize.

Cov ntu

Qhov kawg, feem ntau lub tsev thaiv yog lub sector. Nws yog lub cev me tshaj plaws uas tuaj yeem sau rau lossis nyeem los ntawm tus tswv tsev. Tau ntau xyoo lawm, feem ntau disks siv 512-byte sectors. Hnub no, feem ntau cov tsav tau teeb tsa rau 4 KiB cov haujlwm, thiab qee qhov - tshwj xeeb tshaj yog SSDs - tau teeb tsa rau 8 KiB cov haujlwm lossis loj dua.

ZFS muaj qhov tshwj xeeb uas tso cai rau koj los teeb tsa qhov loj me. Cov cuab yeej no ashift. Qee qhov tsis meej pem, kev hloov pauv yog lub zog ntawm ob. Piv txwv li, ashift=9 txhais tau tias sector loj 2^9, los yog 512 bytes.

ZFS nug lub operating system rau cov ncauj lus kom ntxaws txog txhua lub cuab yeej thaiv thaum nws ntxiv rau vdev tshiab, thiab theoretically cia li teem caij ua haujlwm kom tsim nyog raws li cov ntaub ntawv ntawd. Hmoov tsis zoo, ntau lub drives dag txog lawv qhov loj me txhawm rau tswj kev sib raug zoo nrog Windows XP (uas tsis tuaj yeem nkag siab cov tsav nrog lwm qhov ntau thiab tsawg).

Qhov no txhais tau hais tias nws tau pom zoo tias ZFS tus thawj coj paub qhov tseeb sector loj ntawm lawv cov khoom siv thiab teeb tsa manually ashift. Yog tias ashift tau teem me me dhau lawm, tus naj npawb ntawm kev nyeem / sau ua haujlwm nce astronomically. Yog li, sau 512-byte "sectors" mus rau 4 KiB sector tiag tiag txhais tau tias yuav tsum tau sau thawj "sector", tom qab ntawd nyeem 4 KiB sector, hloov nws nrog 512-byte thib ob "sector", sau nws rov qab rau qhov tshiab. 4 KiB sector, thiab lwm yam rau txhua qhov nkag.

Hauv lub ntiaj teb tiag tiag, qhov kev nplua no cuam tshuam rau Samsung EVO SSDs, uas nws yuav tsum siv ashift=13, tab sis cov SSDs no dag txog lawv qhov loj me, thiab yog li lub neej ntawd tau teeb tsa rau ashift=9. Tshwj tsis yog tias tus thawj tswj hwm paub txog qhov hloov pauv qhov teeb tsa no, SSD no ua haujlwm qeeb qeeb niaj zaus sib nqus HDD.

Rau kev sib piv, rau qhov loj heev ashift yeej tsis muaj txim. Tsis muaj kev ua tau zoo tiag tiag, thiab qhov nce hauv qhov chaw tsis siv yog infinitesimal (lossis xoom yog tias compression qhib). Yog li ntawd, peb xav kom txawm tias cov tsav uas siv 512-byte sectors nruab ashift=12 los sis txawm ashift=13saib kom ntseeg siab rau yav tom ntej.

Khoom ashift yog ntsia rau txhua lub tshuab virtual vdev, thiab tsis yog rau pas dej, raws li ntau tus neeg yuam kev xav - thiab tsis hloov tom qab kev teeb tsa. Yog tias koj tsoo ashift Thaum koj ntxiv vdev tshiab rau lub pas dej ua ke, koj tau irrevocably polluted pas dej ua ke nrog ib tug tsawg-kev ua tau zoo ntaus ntawv thiab, raws li txoj cai, tsis muaj lwm yam kev xaiv dua li ua kom puas lub pas dej ua ke thiab pib dua. Txawm rho vdev yuav tsis cawm koj ntawm qhov chaw tawg ashift!

Copy-on-write mechanism

ZFS Basics: Cia thiab Kev Ua Haujlwm
Yog tias cov ntaub ntawv tsis tu ncua xav tau rov sau cov ntaub ntawv, nws hloov kho txhua qhov thaiv qhov chaw nws nyob

ZFS Basics: Cia thiab Kev Ua Haujlwm
Ib daim ntawv theej-on-write file system sau cov ntawv tshiab ntawm lub thaiv thiab tom qab ntawd qhib cov ntawv qub

ZFS Basics: Cia thiab Kev Ua Haujlwm
Hauv kev paub daws teeb meem, yog tias peb tsis quav ntsej txog qhov tseeb lub cev ntawm cov blocks, peb "cov ntaub ntawv comet" yooj yim rau "cov ntaub ntawv kab mob" uas txav ntawm sab laug mus rau sab xis hla daim duab qhia chaw ntawm qhov chaw muaj.

ZFS Basics: Cia thiab Kev Ua Haujlwm
Tam sim no peb tuaj yeem tau txais ib lub tswv yim zoo ntawm yuav ua li cas luam-on-sau snapshots ua haujlwm - txhua qhov thaiv tuaj yeem ua rau ntau qhov snapshots, thiab yuav pheej mus txog thaum tag nrho cov snapshots cuam tshuam raug puas tsuaj.

Lub Tshuab Luam Ntawv Sau (CoW) yog lub hauv paus tseem ceeb ntawm qhov ua rau ZFS zoo li qhov system zoo. Lub tswv yim yooj yim - yog tias koj nug cov ntaub ntawv ib txwm siv los hloov cov ntaub ntawv, nws yuav ua raws nraim li koj nug. Yog tias koj nug cov ntaub ntawv theej-on-sau ua ib yam, nws yuav hais tias "tsis ua li cas" - tab sis nws yuav dag rau koj.

Hloov chaw, ib daim ntawv theej-on-write cov ntaub ntawv sau ib qho tshiab ntawm qhov hloov kho thaiv, thiab tom qab ntawd hloov kho cov ntaub ntawv cov metadata kom tshem tawm cov block qub thiab koom nrog cov block tshiab uas koj nyuam qhuav sau.

Unlinking lub qub thaiv thiab txuas tus tshiab yog ua tiav hauv ib qho kev ua haujlwm, yog li nws tsis tuaj yeem cuam tshuam - yog tias koj rov pib lub zog tom qab qhov no tshwm sim, koj muaj cov ntaub ntawv tshiab, thiab yog tias koj rov pib dua lub zog ua ntej, ces koj muaj. lub qub version. Nyob rau hauv txhua rooj plaub, yuav tsis muaj teeb meem nyob rau hauv cov ntaub ntawv system.

Luam-on-sau hauv ZFS tshwm sim tsis tsuas yog nyob rau hauv cov ntaub ntawv system theem, tab sis kuj nyob rau hauv lub disk tswj theem. Qhov no txhais tau tias ZFS tsis raug rau qhov chaw dawb hauv cov ntaub ntawv (qhov hauv RAID) - ib qho tshwm sim thaum lub sawb tsuas yog ib feem tau sau tseg ua ntej lub kaw lus poob, nrog kev puas tsuaj rau cov array tom qab reboot. Ntawm no cov kab txaij sau atomically, vdev yog ib txwm ua raws, thiab Bob yog koj txiv ntxawm.

ZIL: ZFS intent log

ZFS Basics: Cia thiab Kev Ua Haujlwm
ZFS tuav synchronous sau nyob rau hauv ib txoj kev tshwj xeeb - nws khaws cia lawv ib ntus tab sis tam sim ntawd hauv ZIL ua ntej tom qab ntawv sau lawv nrog rau asynchronous sau.

ZFS Basics: Cia thiab Kev Ua Haujlwm
Feem ntau, cov ntaub ntawv sau rau ZIL tsis tau nyeem dua. Tab sis qhov no yog ua tau tom qab lub system tsis ua hauj lwm

ZFS Basics: Cia thiab Kev Ua Haujlwm
Ib qho SLOG, lossis lwm yam khoom siv LOG, tsuas yog qhov tshwj xeeb - thiab nyiam dua sai heev - vdev qhov twg ZIL tuaj yeem khaws cia nyias ntawm lub ntsiab cia

ZFS Basics: Cia thiab Kev Ua Haujlwm
Tom qab kev sib tsoo, tag nrho cov ntaub ntawv qias neeg hauv ZIL tau rov ua dua - qhov no, ZIL yog nyob ntawm SLOG, yog li ntawd nws yog qhov rov ua dua.

Muaj ob pawg tseem ceeb ntawm kev sau: synchronous (sync) thiab asynchronous (async). Rau feem ntau ntawm kev ua haujlwm, feem ntau ntawm kev sau ntawv yog asynchronous - cov ntaub ntawv kaw lus tso cai rau lawv sib sau ua ke thiab muab tso rau hauv cov khoom siv, txo qis kev tawg thiab ua kom muaj zog ntxiv.

Cov ntaub ntawv synchronous yog qhov sib txawv kiag li. Thaum ib daim ntawv thov thov kev sau synchronous, nws qhia cov ntaub ntawv kaw lus: "Koj yuav tsum tau ua qhov no rau lub cim xeeb uas tsis muaj qhov tsis zoo. tam sim no, thiab txog thaum ntawd tsis muaj dab tsi ntxiv kuv ua tau. " Yog li ntawd, synchronous sau yuav tsum tau cog lus rau disk tam sim ntawd - thiab yog hais tias qhov no tsub kom fragmentation los yog txo throughput, yog li ntawd.

ZFS ua haujlwm synchronous sau txawv dua li cov ntaub ntawv tsis tu ncua - tsis txhob tso lawv tam sim ntawd mus rau qhov chaw cia, ZFS cog lus rau lawv rau thaj chaw tshwj xeeb cia hu ua ZFS Intent Log, lossis ZIL. Lub tswv yim yog tias cov ntaub ntawv no kuj nyob twj ywm hauv lub cim xeeb, tau muab sib sau ua ke nrog cov ntawv thov asynchronous ib txwm, kom tom qab ntawd tau ntws mus rau hauv qhov chaw cia li tag nrho TXGs (Cov Pab Pawg Kev Lag Luam).

Thaum lub sijhawm ua haujlwm ib txwm, ZIL tau sau thiab tsis txhob nyeem dua. Thaum, tom qab ob peb lub sijhawm, cov ntaub ntawv los ntawm ZIL tau cog lus rau lub ntsiab cia hauv TXGs tsis tu ncua los ntawm RAM, lawv raug cais tawm ntawm ZIL. Tib lub sij hawm ib yam dab tsi nyeem los ntawm ZIL yog thaum importing lub pas dej.

Yog hais tias ZFS tsis ua hauj lwm tshwm sim - ib qho kev khiav hauj lwm sib tsoo lossis hluav taws xob tawm - thaum muaj cov ntaub ntawv hauv ZIL, cov ntaub ntawv ntawd yuav raug nyeem thaum lub sij hawm tom ntej no (piv txwv li, thaum lub kaw lus tsis ua haujlwm rov pib dua). Txhua yam nyob hauv ZIL yuav raug nyeem, muab tso rau hauv TXGs, cog lus rau lub khw tseem ceeb, thiab tom qab ntawd tshem tawm ntawm ZIL thaum lub sijhawm ua haujlwm.

Ib qho ntawm cov chav kawm pab vdev hu ua LOG lossis SLOG, ib qho khoom siv LOG thib ob. Nws muaj ib txoj hauj lwm - muab lub pas dej ua ke nrog kev sib cais thiab, nyiam dua, nrawm dua, nrog kev sau siab heev, vdev ntaus ntawv khaws cia ZIL, tsis txhob khaws ZIL ntawm lub ntsiab vdev cia. ZIL nws tus kheej coj tus yam ntxwv tsis hais qhov chaw cia, tab sis yog tias vdev nrog LOG muaj kev sau ntawv siab heev, ces synchronous sau yuav nrawm dua.

Ntxiv vdev nrog LOG rau lub pas dej ua ke tsis ua haujlwm tsis tau txhim kho asynchronous sau kev ua tau zoo - txawm tias koj yuam txhua tus sau rau ZIL nrog zfs set sync=always, lawv tseem yuav txuas nrog lub ntsiab cia hauv TXG tib txoj kev thiab nyob rau tib lub sijhawm uas tsis muaj lub cav. Qhov tsuas yog kev txhim kho kev ua haujlwm ncaj qha yog synchronous sau latency (raws li cov cav nrawm dua ua haujlwm sai dua sync).

Txawm li cas los xij, nyob rau hauv ib puag ncig uas twb xav tau ntau cov ntawv sau synchronous, vdev LOG tuaj yeem ua kom nrawm nrawm asynchronous sau thiab nyeem tsis tau. Offloading ZIL cov ntaub ntawv mus rau lwm qhov vdev LOG txhais tau tias muaj kev sib cav tsawg dua rau IOPS ntawm thawj qhov chaw cia, uas txhim kho kev ua tau zoo ntawm txhua qhov kev nyeem thiab sau rau qee qhov.

Snapshots

Lub tshuab luam-on-sau kuj tseem yog lub hauv paus tsim nyog rau ZFS atomic snapshots thiab incremental asynchronous replication. Cov ntaub ntawv nquag muaj muaj tsob ntoo taw qhia uas cim txhua qhov kev nkag nrog cov ntaub ntawv tam sim no - thaum koj thaij duab, koj tsuas yog ua ib daim qauv ntawm tsob ntoo pointer no.

Thaum cov ntaub ntawv sau dua ntawm cov ntaub ntawv nquag, ZFS thawj zaug sau cov ntawv tshiab ntawm qhov thaiv rau qhov chaw tsis siv. Tom qab ntawd tshem tawm cov qub version ntawm qhov thaiv los ntawm cov ntaub ntawv tam sim no. Tab sis yog tias qee qhov snapshot hais txog qhov qub thaiv, nws tseem tsis tau hloov pauv. Qhov qub thaiv yuav tsis tau rov qab los ua qhov chaw dawb kom txog thaum tag nrho cov duab xaim xaim uas thaiv raug puas tsuaj!

Rov ua dua

ZFS Basics: Cia thiab Kev Ua Haujlwm
Kuv lub tsev qiv ntawv Steam xyoo 2015 yog 158 GiB thiab suav nrog 126 cov ntaub ntawv. Qhov no zoo nkauj ze rau qhov zoo tshaj qhov teeb meem rau rsync - ZFS replication tshaj lub network yog "tsuas yog" 927% sai dua.

ZFS Basics: Cia thiab Kev Ua Haujlwm
Ntawm tib lub network, rov ua dua ib qho 40GB Windows 7 virtual tshuab duab cov ntaub ntawv yog ib zaj dab neeg sib txawv kiag li. ZFS replication yog 289 lub sij hawm sai dua rsync-los yog "tsuas yog" 161 lub sij hawm sai dua yog tias koj muaj peev xwm txaus hu rau rsync nrog lub --inplace hloov.

ZFS Basics: Cia thiab Kev Ua Haujlwm
Thaum VM duab ntsuas, rsync teeb meem nrog nws. Qhov loj ntawm 1,9 TiB tsis yog qhov loj heev rau cov duab VM niaj hnub - tab sis nws loj txaus uas ZFS replication yog 1148 lub sij hawm sai dua rsync, txawm nrog rsync --inplace sib cav

Thaum koj nkag siab tias snapshots ua haujlwm li cas, nws yuav yooj yim rau kev nkag siab cov ntsiab lus ntawm kev rov ua dua. Txij li lub snapshot tsuas yog ib tsob ntoo ntawm cov ntawv taw qhia, nws ua raws li yog tias peb ua zfs send snapshot, ces peb xa cov ntoo no thiab tag nrho cov ntaub ntawv cuam tshuam nrog nws. Thaum peb hla qhov no zfs send Π² zfs receive ntawm lub hom phiaj khoom, nws sau ob qho tib si cov ntsiab lus ntawm qhov thaiv thiab tsob ntoo ntawm cov pointers referencing cov blocks rau lub hom phiaj cov ntaub ntawv teev.

Txhua yam tau txais txiaj ntsig ntau dua ntawm qhov thib ob zfs send. Tam sim no peb muaj ob lub tshuab, txhua qhov muaj poolname/datasetname@1, thiab koj coj ib tug tshiab snapshot poolname/datasetname@2. Yog li ntawd, nyob rau hauv lub pas dej ua ke koj muaj datasetname@1 ΠΈ datasetname@2, thiab nyob rau hauv lub hom phiaj pas dej ua ke tsuas yog thawj snapshot datasetname@1.

Vim hais tias ntawm qhov chaw thiab lub hom phiaj peb muaj ib qho snapshot datasetname@1, peb tuaj yeem ua tau nce ntxiv zfs send nyob saum nws. Thaum peb qhia qhov system zfs send -i poolname/datasetname@1 poolname/datasetname@2, nws piv ob lub pointer ntoo. Txhua tus taw tes uas muaj nyob hauv xwb @2, pom tseeb hais txog cov blocks tshiab - yog li peb yuav xav tau cov ntsiab lus ntawm cov blocks.

Nyob rau hauv tej thaj chaw deb system, ua incremental send ib yam li yooj yim. Ua ntej peb sau tag nrho cov kev nkag tshiab suav nrog hauv cov kwj deg send, thiab tom qab ntawd ntxiv pointers rau cov blocks. Voila, peb muaj @2 hauv qhov system tshiab!

ZFS asynchronous incremental replication yog ib qho kev txhim kho loj dua ua ntej tsis-snapshot-raws li txoj kev xws li rsync. Hauv ob qho tib si, tsuas yog cov ntaub ntawv hloov pauv hloov pauv - tab sis rsync yuav tsum ua ntej nyeem los ntawm disk tag nrho cov ntaub ntawv ntawm ob sab los xyuas cov lej thiab sib piv. Nyob rau hauv sib piv, ZFS replication tsis nyeem lwm yam tshaj li cov ntoo pointer-thiab tej blocks uas tsis sawv cev rau tag nrho cov snapshot.

Ua-nyob rau hauv compression

Cov txheej txheem theej-on-sau kuj tseem ua kom yooj yim rau kev tsim-hauv compression system. Nyob rau hauv ib txwm ua ntaub ntawv system, compression yog teeb meem - ob qho tib si cov qub version thiab cov tshiab version ntawm cov ntaub ntawv hloov nyob rau hauv tib qhov chaw.

Yog hais tias koj xav txog ib daim ntawm cov ntaub ntawv nyob rau hauv nruab nrab ntawm ib cov ntaub ntawv uas pib nws lub neej raws li ib tug megabyte ntawm zeros los ntawm 0x00000000 thiab hais txog - nws yog ib qho yooj yim heev rau compress nws mus rau hauv ib lub sector ntawm disk. Tab sis yuav ua li cas yog tias peb hloov qhov megabyte ntawm zeros nrog ib megabyte ntawm cov ntaub ntawv tsis txaus ntseeg, xws li JPEG lossis pseudo-random suab nrov? Tam sim ntawd, cov ntaub ntawv megabyte yuav xav tau tsis yog ib qho, tab sis 256 4 KiB sectors, thiab tsuas yog ib qho haujlwm tau tshwj tseg hauv qhov chaw disk.

ZFS tsis muaj qhov teeb meem no, txij li cov ntaub ntawv hloov kho yeej ib txwm sau rau qhov chaw tsis siv - thawj qhov thaiv tsuas yog siv li 4 KiB sector, thiab sau ntawv tshiab yuav siv li 256, tab sis qhov no tsis yog qhov teeb meem - qhov tsis ntev los no tau hloov pauv los ntawm qhov "nruab nrab" ntawm cov ntaub ntawv yuav raug sau rau qhov chaw tsis siv txawm hais tias nws qhov loj me tau hloov pauv lossis tsis, yog li qhov no yog qhov xwm txheej ib txwm muaj rau ZFS.

Built-in ZFS compression yog neeg xiam los ntawm lub neej ntawd, thiab lub kaw lus muaj pluggable algorithms - tam sim no suav nrog LZ4, gzip (1-9), LZJB thiab ZLE.

  • LZ4 yog streaming algorithm uas muaj kev ceev nrawm heev thiab decompression thiab cov txiaj ntsig kev ua tau zoo rau feem ntau siv - txawm tias ntawm CPUs qeeb qeeb.
  • GZIP yog venerable algorithm uas txhua tus neeg siv Unix paub thiab hlub. Nws tuaj yeem siv tau nrog compression qib 1-9, nrog kev nce compression piv thiab kev siv CPU thaum koj mus txog qib 9. Lub algorithm zoo haum rau tag nrho cov ntawv nyeem (los yog lwm yam compressible heev) siv, tab sis feem ntau ua rau CPU teeb meem lwm yam - siv nws nrog ceev faj, tshwj xeeb tshaj yog nyob rau theem siab dua.
  • LZJB - thawj algorithm hauv ZFS. Nws yog siv tsis tau thiab yuav tsum tsis txhob siv, LZ4 yog qhov zoo tshaj plaws hauv txhua txoj kev.
  • ZLE - Zero Level encoding, Zero Level encoding. Nws tsis kov cov ntaub ntawv ib txwm, tab sis nws compresses loj sequences ntawm zeros. Pab tau rau cov ntaub ntawv tsis txaus ntseeg tag nrho (xws li JPEG, MP4 lossis lwm yam uas twb tau sau tawm lawm) vim nws tsis quav ntsej cov ntaub ntawv tsis txaus ntseeg tab sis compresses qhov chaw tsis siv hauv cov ntaub ntawv tshwm sim.

Peb pom zoo LZ4 compression rau yuav luag txhua qhov kev siv; lub txim txhaum thaum soj ntsuam nrog incompressible cov ntaub ntawv yog heev me me, thiab kev loj hlob kev ua tau zoo rau cov ntaub ntawv ib txwm yog qhov tseem ceeb. Luam theej duab lub tshuab virtual rau kev teeb tsa tshiab ntawm Windows operating system (cov tshiab tau nruab OS, tsis muaj cov ntaub ntawv sab hauv) nrog compression=lz4 dhau 27% sai dua nrog compression=none, nyob rau hauv qhov kev xeem no los ntawm 2015.

ARC - hloov pauv hloov cache

ZFS yog tib cov ntaub ntawv niaj hnub no peb paub txog qhov uas siv nws tus kheej nyeem caching mechanism, es tsis yog cia siab rau lub operating system nplooj ntawv cache khaws cov ntawv luam ntawm cov ntawv nyeem tsis ntev los no hauv RAM.

Txawm hais tias ib txwm cache tsis yog tsis muaj nws cov teeb meem - ZFS tsis tuaj yeem teb rau qhov kev thov tshiab ntawm lub cim xeeb faib kom sai npaum li lub ntsiav, yog li hu xov tooj tshiab. malloc() Kev faib lub cim xeeb yuav ua tsis tau yog tias nws xav tau RAM tam sim no nyob los ntawm ARC. Tab sis muaj cov laj thawj zoo los siv koj tus kheej cache, tsawg kawg rau tam sim no.

Txhua qhov kev ua haujlwm niaj hnub paub, suav nrog macOS, Windows, Linux thiab BSD, siv LRU (tsawg kawg Siv) algorithm los siv cov nplooj ntawv cache. Qhov no yog ib qho tseem ceeb algorithm uas thawb lub cached block "mus rau sab saum toj ntawm kab" tom qab txhua tus nyeem ntawv thiab thawb cov blocks "rau hauv qab ntawm kab" raws li xav tau los ntxiv cov cache tshiab tsis nco qab (cov blocks uas yuav tsum tau nyeem los ntawm disk es tsis yog. los ntawm cache) mus rau saum.

Feem ntau cov algorithm ua haujlwm zoo, tab sis ntawm cov kab ke nrog cov ntaub ntawv ua haujlwm loj, LRU yooj yim ua rau thrashing - tshem tawm cov blocks uas xav tau los ua chaw rau cov blocks uas yuav tsis tau nyeem los ntawm lub cache dua.

ARC yog ib tug ntau yam tsis ncaj ncees lawm algorithm uas yuav xam tau tias yog ib tug "hnyav" cache. Txhua lub sij hawm ib tug cached block yog nyeem, nws yuav hnyav me ntsis thiab nyuaj rau kev ntiab tawm - thiab txawm tias tom qab lub block raug tshem tawm taug qab nyob rau ib lub sij hawm. Ib qho thaiv uas tau raug tshem tawm tab sis tom qab ntawd yuav tsum tau nyeem rov qab rau hauv cache kuj yuav hnyav dua.

Qhov kawg tshwm sim ntawm tag nrho cov no yog ib tug cache nrog ib tug ntau dua hit piv - qhov piv ntawm cache hits (nyeem los ntawm cache) thiab nco (nyeem los ntawm disk). Qhov no yog ib qho tseem ceeb heev statistic - tsis tsuas yog cache hits lawv tus kheej cov kev txiav txim ntawm qhov loj dua sai dua, cache tsis tuaj yeem ua haujlwm tau sai dua, vim tias ntau cache hits muaj, tsawg dua qhov kev thov rau disk thiab qis dua qhov latency rau cov uas tseem nco. uas yuav tsum tau muab kev pab nrog disk.

xaus

Tam sim no peb tau hais txog cov ntsiab lus tseem ceeb ntawm ZFS-yuav ua li cas luam-on-sau ua haujlwm, nrog rau kev sib raug zoo ntawm cov pas dej, cov khoom siv virtual, blocks, sectors, thiab cov ntaub ntawv-peb npaj los tham txog kev ua tau zoo hauv ntiaj teb nrog tus lej tiag.

Hauv ntu tom ntej, peb yuav saib qhov ua tau zoo ntawm mirrored vdev thiab RAIDz pas dej, piv rau ib leeg, thiab kuj muab piv rau cov tsoos Linux ntsiav RAID topologies peb tau tshuaj xyuas. ua ntej lawm.

Thaum xub thawj peb xav npog tsuas yog cov hauv paus - ZFS topologies lawv tus kheej - tab sis tom qab xws li a Peb yuav npaj siab los tham txog kev teeb tsa ntau dua thiab kho ZFS, suav nrog kev siv cov pab pawg vdev xws li L2ARC, SLOG thiab Kev faib tshwj xeeb.

Tau qhov twg los: www.hab.com

Ntxiv ib saib