ZFS Basics: Kuchengeta uye Kuita

ZFS Basics: Kuchengeta uye Kuita

Chirimo chino takambokurukura dzimwe nyaya dzenhanganyaya, semuenzaniso, maitiro ekutarisa kumhanya kwemadhiraivha ako ΠΈ chii chinonzi RAID. Mune yechipiri yavo, isu takatovimbisa kuenderera mberi nekudzidza mashandiro eakasiyana siyana-dhisiki topologies muZFS. Ichi ndicho chizvarwa chinotevera faira system chave kushandiswa kwese kwese: kubva apuro up to Ubuntu.

Zvakanaka, nhasi izuva rakanakisa rekuzivana neZFS, vaverengi vanoda kuziva. Ingoziva kuti mune akazvininipisa maonero eOpenZFS mugadziri Matt Ahrens, "zvakaoma chaizvo."

Asi tisati tasvika kunhamba - uye ivo vachadaro, ndinovimbisa - kune ese sarudzo dzemasere-disk ZFS kumisikidzwa, isu tinofanirwa kutaura nezvazvo. sei Kazhinji, ZFS inochengeta data pane dhisiki.

Zpool, vdev uye mudziyo

ZFS Basics: Kuchengeta uye Kuita
Iyi yakazara dziva dhizaini inosanganisira matatu ebetsero vdevs, imwe yekirasi yega yega, uye ina yeRAIDz2.

ZFS Basics: Kuchengeta uye Kuita
Iko kazhinji hapana chikonzero chekugadzira dziva rezvisizvo vdev mhando uye saizi - asi hapana chinokumisa kuita kudaro kana uchida.

Kuti unyatsonzwisisa iyo ZFS faira system, unofanirwa kunyatso tarisisa chimiro chayo chaicho. Kutanga, ZFS inobatanidza mazinga echinyakare evhoriyamu uye faira system manejimendi. Kechipiri, inoshandisa dhizaini yekukopa-pa-kunyora michina. Aya maficha anoreva kuti sisitimu yacho yakanyatsosiyana kubva kune yakajairwa faira masisitimu uye RAID arrays. Yekutanga seti yezvivakwa zvekuvaka kuti unzwisise ndiyo dziva rekuchengetedza (zpool), virtual mudziyo (vdev), uye chaiyo mudziyo (mudziyo).

zpool

Iyo zpool yekuchengetedza dziva ndiyo yepamusoro ZFS chimiro. Dziva rega rega rine mudziyo mumwe chete kana anopfuura. Zvakare, chimwe nechimwe chazvo chine imwe kana kupfuura chaiyo mudziyo (mudziyo). Virtual madziva mabhuroko ega. Imwe komputa yepanyama inogona kuve nemadziva maviri kana anopfuura akaparadzana, asi rimwe nerimwe rakazvimiririra zvachose kubva kune mamwe. Madziva haakwanise kugovera midziyo chaiyo.

Iyo redundancy yeZFS iri padanho rekushandisa, kwete padanho redziva. Iko hakuna zvachose redundancy padanho redziva - kana chero drive vdev kana yakakosha vdev yakarasika, ipapo dziva rose rinorasika pamwe chete naro.

Madziva emazuva ano ekuchengetera anogona kupona kurasikirwa kwecache kana chaiyo mudziyo wegiyo - kunyangwe iwo achigona kurasikirwa nediki data rakasviba kana vakarasikirwa nevdev log panguva yekudzima kwemagetsi kana kuparara kwehurongwa.

Pane fungidziro yakajairika yekuti ZFS "data mitsetse" yakanyorwa padziva rese. Ichi hachisi chokwadi. Zpool haina kusekesa RAID0 zvachose, inonakidza JBOD ine nzira yakaoma yekuparadzira dhizaini.

Kune chikamu chikuru, zvinyorwa zvinogoverwa pakati pezvishandiso zviripo zvinoenderana nenzvimbo iripo yemahara, saka muchirevo ivo vese vanozadzwa panguva imwe chete. Mushanduro dzakazotevera dzeZFS, ikozvino vdev kushandiswa (kushandiswa) kunotariswa - kana imwe chaiyo mudziyo yakabatikana zvakanyanya kupfuura imwe (semuenzaniso, nekuda kwekuremerwa kuverenga), icharegwa kwenguva pfupi kunyora, kunyangwe iine yakanyanya mahara. chiyero chenzvimbo.

Iyo yekushandisa yekuona nzira yakavakirwa mune yemazuva ano ZFS kunyora nzira yekugovera inogona kuderedza latency uye kuwedzera kubuda mukati menguva yekuremerwa zvakanyanya - asi hazvisizvo. carte blanche pane kusanganisa kusanganisa kweanononoka HDD uye nekukurumidza SSDs mune rimwe dziva. Dziva rakadaro risina kuenzana richaramba richishanda nekumhanya kwechigadzirwa chinononoka, ndiko kuti, sekunge chakanyatsogadzirwa nemidziyo yakadaro.

vdev

Imwe neimwe dziva rekuchengetera rine mudziyo mumwe kana anopfuura chaiwo (virtual mudziyo, vdev). Nekudaro, yega yega vdev ine imwe kana yakawanda chaiyo mudziyo. Mazhinji madhizaini ekushandisa anoshandiswa nyore kuchengetedza data, asi kune akati wandei vdev mubatsiri makirasi, anosanganisira CACHE, LOG, uye SPECIAL. Imwe neimwe yemhando idzi dzevdev inogona kuve neimwe yezvishanu topology: mudziyo mumwe (imwe-mudziyo), RAIDz1, RAIDz2, RAIDz3, kana girazi (girazi).

RAIDz1, RAIDz2 uye RAIDz3 ndiwo akakosha akasiyana siyana anganzi nevakuru vekare kaviri (diagonal) parity RAID. 1, 2 uye 3 inoreva kuti mangani mabhuroko eparity akagoverwa kune yega yega data strip. Panzvimbo yemadhisiki akapatsanurwa ekuenzanisa, RAIDz chaiwo madivha anogovera iyi parity semi-yakaenzana pamadisiki. A RAIDz array inogona kurasikirwa nemadhisiki akawanda sezvo ine parity block; kana ikarasikirwa neimwe, ichaputsika uye yotora dziva rokuchengeta naro.

Mumirrored virtual madivayiri (mirror vdev), imwe neimwe block inochengetwa pane yega mudziyo muvdev. Kunyangwe magirazi maviri-akafara ari iwo akanyanya kuwanda, chero nhamba yekupokana yemidziyo inogona kunge iri mugirazi - katatu anowanzo shandiswa mukumisikidzwa kwakakura kwekuvandudza kuverenga uye kushivirira. Vdev girazi rinogona kupona chero kukundikana chero bedzi mudziyo mumwe muvdev uchiramba uchishanda.

Single vdevs vane njodzi. Chigadzirwa chakadaro chakadaro hachizopona kukundikana kumwe chete - uye kana yakashandiswa sekuchengetedza kana yakakosha vdev, ipapo kukundikana kwayo kunotungamirira kuparadzwa kwedziva rose. Nyatsochenjerera pano.

CACHE, LOG, uye SPECIAL VAs anogona kugadzirwa uchishandisa chero pamusoro apa topology - asi yeuka kuti kurasikirwa kweSPECIAL VA kunoreva kurasikirwa kwedziva, saka topology isina basa inokurudzirwa zvakanyanya.

mudziyo

Iri ringangove izwi riri nyore kunzwisisa muZFS - iro chairo dhizaini yekupinda mudziyo. Rangarira kuti zvigadziriso zvinogadzirwa nemidziyo yega yega, nepo dziva rinoumbwa nemidziyo chaiyo.

Madhisiki - angave magineti kana akasimba mamiriro - ndiwo akajairika block zvishandiso anoshandiswa sezvivharo zvekuvaka zvevdev. Nekudaro, chero mudziyo une descriptor mukati / dev uchaita, saka yakazara hardware RAID arrays inogona kushandiswa semidziyo yakasiyana.

Iyo yakapfava faira ndeimwe yeakanyanya kukosha mamwe mabhuroka zvishandiso izvo vdev inogona kuvakwa kubva. Test madziva kubva sparse mafaira inzira inoshanda kwazvo yekutarisa mirairo yedziva uye kuona kuti yakawanda sei nzvimbo inowanikwa mudziva kana chaiyo mudziyo weiyo topology yakapihwa.

ZFS Basics: Kuchengeta uye Kuita
Iwe unogona kugadzira dziva rekuyedza kubva kune sparse mafaera mumasekondi mashoma - asi usakanganwe kudzima dziva rese uye zvikamu zvaro mushure.

Ngatiti iwe unoda kuisa sevha pamadhisiki masere uye kuronga kushandisa gumi TB disks (~ 10 GiB) - asi hauna chokwadi chekuti ndeipi topology inonyatso kuenderana nezvido zvako. Mumuenzaniso uri pamusoro, tinovaka dziva rekuedza kubva kune sparse mafaira mumasekondi - uye ikozvino tinoziva kuti RAIDz9300 vdev yemasere gumi e2 TB disks inopa 10 TiB yekukwanisa kushandiswa.

Imwe kirasi yakakosha yemidziyo ndeye SPARE (spare). Zvishandiso zvinopisa-zvinopisa, zvakasiyana nemidziyo yakajairwa, ndeye dziva rose, uye kwete kune imwechete chaiyo mudziyo. Kana vdev iri mudziva ikakundikana uye mudziyo wakasarudzika wakabatana nedziva uye uripo, zvino unozongobatana neiyo yakakanganiswa vdev.

Mushure mekubatanidza kune yakakanganisika vdev, iyo spare mudziyo inotanga kugamuchira makopi kana kugadziridzwa kweiyo data inofanirwa kunge iri pane yakarasika mudziyo. Muchinyakare RAID iyi inonzi kuvaka patsva, nepo muZFS inonzi resilver.

Izvo zvakakosha kuti uzive kuti zvakasara zvishandiso hazvitsive zvachose zvakakundikana zvishandiso. Uku kungotsiva kwenguva pfupi kuderedza huwandu hwenguva vdev yakaderedzwa. Mushure mekunge maneja atsiva iyo vdev yakakundikana, redundancy inodzoserwa kune icho chisingaperi chishandiso, uye SPARE inobviswa kubva kuvdev uye inodzoserwa kushanda sechipo chedziva rose.

Data seti, mabhuroko uye zvikamu

Iyo inotevera seti yezvivharo zvekuvaka kuti tinzwisise parwendo rwedu rweZFS ishoma nezve Hardware uye zvimwe nezve iyo data pachayo yakarongeka nekuchengetwa. Isu tiri kusvetuka mazinga mashoma pano - senge metaslab - kuti tisazadze iwo ruzivo tichichengetedza kunzwisisa kwechimiro chese.

Dataset

ZFS Basics: Kuchengeta uye Kuita
Patinotanga kugadzira dataset, inoratidza yese iripo nzvimbo yedhamu. Zvadaro tinoisa quota - uye shandura nzvimbo yegomo. Mashiripiti!

ZFS Basics: Kuchengeta uye Kuita
Zvol ndeye chikamu chikuru ingori dataset yakabviswa faira refaira, yatiri kutsiva pano neyakajairika ext4 faira system.

Iyo ZFS dataset yakangofanana neyakajairwa yakaiswa faira system. Kufanana neyakajairwa faira system, pakutanga kuiona inoita se "imwe folda". Asi seyakajairwa inotakurika mafaera, yega yega ZFS dataset ine yayo seti yezvakakosha zvivakwa.

Chekutanga pane zvese, dataset inogona kuve neyakapihwa quota. Kana yaiswa zfs set quota=100G poolname/datasetname, ipapo hauzokwanisi kunyora kune yakamisikidzwa folda /poolname/datasetname kupfuura 100 GiB.

Cherechedza kuvapo - uye kusavapo - kwekucheka kwekutanga kwemutsara wega wega? Imwe neimwe dhata ine nzvimbo yayo mune ese eZFS hierarchy uye system inokwira hierarchy. Iko hakuna inotungamira slash muZFS hierarchy - unotanga nezita redziva uyezve nzira kubva kune imwe dhata kuenda kune inotevera. Semuyenzaniso, pool/parent/child yedataset ine zita child pasi pedataset yevabereki parent mudziva rine zita rekugadzira pool.

Nekumisikidza, nzvimbo yekukwira yedataset ichave yakaenzana nezita rayo mubazi reZFS, ine inotungamira slash - dziva rakanzi. pool mounted as /pool, data set parent yakaiswa mukati /pool/parent, uye dataset yemwana child yakaiswa mukati /pool/parent/child. Nekudaro, iyo dataset's system Mount point inogona kuchinjwa.

Kana tikatsanangura zfs set mountpoint=/lol pool/parent/child, ipapo iyo data set pool/parent/child yakaiswa pahurongwa se /lol.

Pamusoro pemaseti, isu tinofanirwa kutaura mavhoriyamu (zvols). Vhoriyamu yakangofanana nedataset, kunze kwekuti haina chaizvo faira system-ingori dhizaini. Unogona, semuenzaniso, kugadzira zvol Nezita mypool/myzvol, wobva waifomate ne ext4 faira system, wobva waisa iyo faira system - iwe ikozvino une ext4 faira system, asi iine ese ekuchengetedza maficha eZFS! Izvi zvingaite sezvisina kupusa pamuchina mumwe chete, asi zvine musoro wakawanda senge backend kana uchitumira kunze kweiSCSI mudziyo.

Mabhuroko

ZFS Basics: Kuchengeta uye Kuita
Iyo faira inomiririrwa neimwe kana akawanda mabhuroko. Imwe neimwe block inochengetwa pane imwechete chaiyo mudziyo. Saizi yebhuroka kazhinji yakaenzana neparameter recordsize, asi inogona kuderedzwa kusvika 2^kuchinjakana iine metadata kana faira diki.

ZFS Basics: Kuchengeta uye Kuita
Isu chaizvo chaizvo kwete kuita jee nezve murango wakakura wekuita kana ukaisa diki ashift

Mune dziva reZFS, data rese, kusanganisira metadata, rinochengetwa mumabhuraki. Iyo yakanyanya block saizi yeeseti yega yega data inotsanangurwa mumudziyo recordsize (rekodhi saizi). Saizi yerekodhi inogona kuchinjwa, asi izvi hazvizochinji saizi kana nzvimbo yechero zvidhinha zvakatonyorwa kune dataset - zvinongobata mabhuroko matsva sezvaanonyorwa.

Kunze kwekunge zvatsanangurwa neimwe nzira, yazvino default rekodhi saizi i128KiB. Imhando yekunyepedzera kutengesa-kure uko kuita kusina kukwana, asi haina kutyisa mune dzakawanda zviitiko zvakare. Recordsize inogona kuiswa kune chero kukosha kubva ku4K kusvika ku1M (ine advanced settings recordsize unogona kuisa zvakatowanda, asi iyi kashoma iri zano rakanaka).

Chero block inoreva data refaira rimwe chete - haugone kurovera mafaera maviri akasiyana mublock rimwe. Imwe neimwe faira ine chivharo chimwe kana anopfuura, zvichienderana nehukuru. Kana saizi yefaira iri diki pane rekodhi saizi, ichachengetwa mudiki bhuroka saizi - semuenzaniso, bhuroka rine 2 KB faira rinotora imwe chete 4 KB chikamu padhisiki.

Kana iyo faira yakakura zvakakwana uye ichida mabhuroki akati wandei, ipapo marekodhi ese ane iyi faira achave akakura recordsize - kusanganisira yekupedzisira kupinda, chikamu chikuru chinogona kunge chiri nzvimbo isina kushandiswa.

zvols havana pfuma recordsize - pane kudaro vane pfuma yakaenzana volblocksize.

Sectors

Yekupedzisira, inonyanya kukosha yekuvaka inzvimbo. Ndiro diki diki chikamu chemuviri chinogona kunyorerwa kana kuverengerwa kubva pamudziyo uri pasi. Kwemakumi emakore akati wandei, madhisiki mazhinji akashandisa 512-byte zvikamu. Munguva pfupi yapfuura, madhisiki mazhinji akagadzirirwa zvikamu zve4 KB, uye mamwe - kunyanya maSSD - ane 8 KB zvikamu kana kutopfuura.

Iyo ZFS sisitimu ine chivakwa chinokutendera iwe kuseta nemaoko saizi yechikamu. pfuma iyi ashift. Zvimwe zvinovhiringa, ashift isimba rezviviri. Semuyenzaniso, ashift=9 zvinoreva chikamu chechikamu che2^9, kana 512 bytes.

ZFS inobvunza iyo inoshanda sisitimu yeruzivo rwakadzama nezvechivharo chega chega kana chawedzerwa kune vdev nyowani, uye ne theoretically inoisa ashift nemazvo zvichienderana neruzivo irworwo. Nehurombo, madhiraivha mazhinji anonyepa nezve saizi yavo yechikamu kuitira kuti arambe achienderana neWindows XP (iyo yaisakwanisa kunzwisisa madhiraivha nemamwe masaizi echikamu).

Izvi zvinoreva kuti maneja weZFS anorairwa zvakasimba kuti azive iyo chaiyo chikamu saizi yemidziyo yavo uye nemaoko kuseta ashift. Kana ashift yakadzikira zvakanyanya, saka nhamba yekuverenga / kunyora mabasa inowedzera nenyeredzi. Saka, kunyora 512-byte "sectors" kuita chaiyo 4KiB chikamu zvinoreva kunyora yekutanga "sector", wobva waverenga 4KiB chikamu, shandura nei yechipiri 512-byte "sector", nyora udzokere kune itsva. 4 KB chikamu, zvichingodaro.

Munyika chaiyo, chirango chakadaro chinorova Samsung EVO SSDs, iyo ashift=13, asi maSSD aya anonyepa nezve saizi yavo yechikamu, uye saka iyo default inoiswa ashift=9. Kana ane ruzivo system maneja akasachinja marongero aya, saka iyi SSD inoshanda inononoka zvakajairika magnetic HDD.

Kuenzanisa, nokuda kwehukuru hwakanyanya ashift hapana chirango. Iko hakuna chirango chaicho chekuita, uye kuwedzera kwenzvimbo isina kushandiswa hakuna magumo (kana zero ine compression inogoneswa). Naizvozvo, isu tinokurudzira zvakasimba kuti kunyangwe iwo madhiraivha anoshandisa 512-byte zvikamu kuisa ashift=12 kana kunyange ashift=13kutarisana neramangwana nechivimbo.

Property ashift yakagadzirirwa yega yega vdev virtual mudziyo, uye kwete yedziva, sezvo vazhinji vanofunga zvisiri izvo - uye haishanduki mushure mekuiswa. Kana warova netsaona ashift paunowedzera vdev itsva padziva, wakasvibisa dziva iro risingadzoreki rine mudziyo wakaderera wekuita uye kazhinji hapana imwe sarudzo kunze kwekuparadza dziva uye kutanga patsva. Kunyangwe kubvisa vdev hakuzokuponese kubva pakaputsika gadziriso ashift!

Copy-on-write mechanism

ZFS Basics: Kuchengeta uye Kuita
Kana yenguva dzose faira system ichida kudzoreredza data, inoshandura bhuroka yega yega pairi

ZFS Basics: Kuchengeta uye Kuita
Iyo kopi-pa-kunyora faira system inonyora vhezheni itsva yebhuroka uye yozovhura iyo yekare vhezheni

ZFS Basics: Kuchengeta uye Kuita
Muchidimbu, kana tikafuratira nzvimbo chaiyo yezvivharo, saka "data comet" yedu inorerutswa kuita "data worm" inofamba kubva kuruboshwe kuenda kurudyi kuyambuka mepu yenzvimbo iripo.

ZFS Basics: Kuchengeta uye Kuita
Iye zvino isu tinogona kuwana zano rakanaka rekuti kopi-pa-kunyora snapshots inoshanda sei - block yega yega inogona kuve yeakawanda snapshots, uye icharamba ichienderera kusvika ese anobatana snapshots aparadzwa.

Iyo Copy paKunyora (CoW) maitiro ndiyo hwaro hwaro hwezvinoita ZFS ive inoshamisa system. Iyo yekutanga pfungwa iri nyore - kana iwe ukabvunza yechinyakare faira system kuti ichinje faira, ichaita chaizvo zvawakabvunza. Kana iwe ukakumbira kopi-pa-kunyora faira system kuti uite zvakafanana, inozoti "zvakanaka" asi kunyepa kwauri.

Panzvimbo iyoyo, kopi-pa-kunyora faira system inonyora vhezheni nyowani yeyakagadziridzwa block uye yobva yagadzirisa metadata yefaira kuti isunungure bhuroko rekare uye ubatanidze bhuroka idzva rawabva kuinyorera.

Kubvisa chivharo chekare uye kubatanidza chitsva kunoitwa mukuvhiya kumwe chete, saka hazvigone kukanganiswa - kana iwe ukadzika pasi mushure meizvi zvaitika, une vhezheni itsva yefaira, uye kana ukakurumidza kudzika, une vhezheni yekare. . Chero zvazvingava, hapazovi nekukakavadzana mufaira system.

Copy-on-write muZFS inoitika kwete chete padanho refaira, asiwo padanho rekutonga dhisiki. Izvi zvinoreva kuti ZFS haina kukanganiswa nenzvimbo chena (gomba muRAID) - chiitiko apo tambo yaive nenguva yekurekodha zvishoma sisitimu isati yapunzika, nekukuvadzwa kwakarongwa mushure mekutangwazve. Pano mutsara wakanyorwa atomu, vdev inogara ichitevedzana, uye Bob ndisekuru vako.

ZIL: ZFS chinangwa chinyorwa

ZFS Basics: Kuchengeta uye Kuita
Iyo ZFS sisitimu inobata synchronous inonyora nenzira yakakosha - iyo kwenguva pfupi asi inongozvichengeta muZIL isati yazvinyora zvachose gare gare pamwe neasynchronous kunyora.

ZFS Basics: Kuchengeta uye Kuita
Kazhinji, data rakanyorwa kuZIL harina kuverengwa zvakare. Asi zvinogoneka mushure mekuparara kwehurongwa

ZFS Basics: Kuchengeta uye Kuita
SLOG, kana yechipiri LOG mudziyo, ingori yakakosha - uye zvichida inokurumidza - vdev, uko ZIL inogona kuchengetwa yakaparadzana kubva kune huru yekuchengetera.

ZFS Basics: Kuchengeta uye Kuita
Mushure mekuparara, data rese rakasviba muZIL rinodzokororwa - mune iyi kesi, ZIL iri paSLOG, saka inodzokororwa kubva ipapo.

Kune maviri makuru mapoka ekunyora mashandiro - synchronous (sync) uye asynchronous (async). Kune akawanda mabasa, mazhinji ekunyora ari asynchronous - iyo faira sisitimu inovatendera kuti vaunganidzwe uye vabudiswe mumabhechi, kuderedza kupatsanuka uye kuwedzera zvakanyanya kubuda.

Marekodhi akawiriraniswa inyaya yakasiyana zvachose. Kana chikumbiro chikakumbira kunyorerwa, chinoudza iyo faira system: "Iwe unofanirwa kuendesa izvi kune isiri-inotenderera ndangariro. pari zvinokusvika ipapo, hapana chimwe chandinogona kuita." Naizvozvo, synchronous inonyora inofanirwa kuzvipira kudiski nekukasira-uye kana izvo zvichiwedzera kupatsanuka kana kuderedza kubuda, ngazvive zvakadaro.

ZFS inobata synchronous inonyora zvakasiyana neyakajairwa faira masisitimu-panzvimbo yekukasika kuti igare yakachengetwa, ZFS inovaisa kunzvimbo yakakosha yekuchengetera inonzi ZFS Intent Log, kana ZIL. Chinonyengera ndechekuti zvinyorwa izvi zvakare ramba uri mundangariro, uchiunganidzwa pamwe chete nezvakajairwa asynchronous zvikumbiro zvekunyora, kuti ugozonyungudutswa kuchengeterwa seyakajairwa maTXGs (Transaction Groups).

Mukushanda kwakajairika, ZIL inonyorerwa uye haizomboverengeki zvakare. Apo, mushure mechinguva chiduku, zvinyorwa kubva kuZIL zvakagadzirirwa kukuchengetedza kukuru mune zvakajairwa maTXGs kubva kuRAM, zvakabviswa kubva kuZIL. Nguva chete chimwe chinhu chinoverengwa kubva kuZIL ndeye apo dziva rinotengeswa kunze kwenyika.

Kana ZFS ikatadza - kuparara kwehurongwa hwekushandisa kana kudzimwa kwemagetsi - paine data muZIL, iyo data ichaverengerwa panguva yekuuya kwedziva kunotevera (semuenzaniso, kana iyo emergency system yatangwazve). Chero chipi zvacho chiri muZIL chichaverengwa, chakaiswa muTXGs, chakazvipira kudura guru, uye chobva chabviswa kubva kuZIL panguva yekuunza.

Imwe yevdev mubatsiri makirasi inonzi LOG kana SLOG, yechipiri mudziyo weLOG. Iine chinangwa chimwe - kupa dziva rakaparadzana, uye zvichida zvakanyanya kukurumidza, zvakanyanya kunyora-resistant vdev kuchengetedza ZIL, pane kuchengetedza ZIL pane chikuru vdev store. Iyo ZIL pachayo inozvibata zvakafanana zvisinei kuti inochengeterwa kupi, asi kana iyo LOG vdev ine yakanyanya kunyora kuita, synchronous inonyora ichakurumidza.

Kuwedzera vdev ine LOG kune dziva hakushande handikwanise kunatsiridza asynchronous kunyora kuita - kunyangwe ukamanikidza zvese kunyora kuZIL ne zfs set sync=always, ivo vachave vachibatanidzwa kune huru yekuchengetedza muTXG nenzira imwechete uye pamwero wakafanana seusina log. Iyo chete yakananga kuvandudza kwekuita ndeye latency ye synchronous inonyora (nekuti inokurumidza logi inomhanyisa mashandiro). sync).

Nekudaro, munzvimbo inotoda akawanda synchronous anonyora, vdev LOG inogona kumhanyisa zvisina kunanga asynchronous kunyora uye isina-cached kuverenga. Kuburitsa zvinyorwa zveZIL kune yakaparadzana vdev LOG zvinoreva kushomeka kukakavara kweIOPS pane yekutanga kuchengetedza, iyo inovandudza kuita kwese kuverenga nekunyora kusvika pamwero wakati.

Snapshots

Iyo yekukopa-pa-kunyora maitiro zvakare hwaro hunodiwa hweZFS atomic snapshots uye inowedzera asynchronous kudzokorora. Iyo inoshanda faira sisitimu ine chinongedzo muti unomaka marekodhi neazvino data - kana iwe uchitora mufananidzo, unongoita kopi yeiyi pointer muti.

Kana rekodhi ichinyorwa pamusoro peiyo inoshanda faira system, ZFS inotanga kunyora iyo nyowani block vhezheni kune isina kushandiswa nzvimbo. Inobva yabvisa iyo yekare vhezheni yebhuroka kubva kune yazvino faira system. Asi kana imwe snapshot ichitaura kune yekare block, inoramba isina kuchinjika. Iyo yekare block haizonyatso kudzoserwa senzvimbo yemahara kudzamara zvidhori zvese zvinonongedza block iyi zvaparadzwa!

Replication

ZFS Basics: Kuchengeta uye Kuita
Raibhurari yangu yeSteam muna 2015 yaive 158 GiB uye yaisanganisira 126 mafaera. Izvi zviri padyo padyo neakanyanya mamiriro e rsync - ZFS kudzokorodza pamusoro petiweki yaive "chete" 927% nekukurumidza.

ZFS Basics: Kuchengeta uye Kuita
Pane imwechete network, kudzokorora imwe 40GB Windows 7 virtual muchina mufananidzo faira inyaya yakasiyana zvachose. ZFS kudzokorora ndeye 289 nguva nekukurumidza kupfuura rsync - kana "chete" 161 nguva nekukurumidza kana wakangwara zvekufona rsync ne --inplace.

ZFS Basics: Kuchengeta uye Kuita
Kana mufananidzo weVM ukayerwa, rsync nyaya dzinoyera nayo. 1,9 TiB haina kukura kudaro kumufananidzo weVM wemazuva ano - asi yakakura zvekuti ZFS kudzokorodza kuri 1148 nguva nekukurumidza kupfuura rsync, kunyangwe nersync's --inplace nharo.

Paunenge uchinge wanzwisisa mashandisiro anoita zvidhori, zvinofanirwa kuve nyore kubata hunhu hwekudzokorora. Sezvo snapshot uchingori muti wezvinongedzo kune zvinyorwa, zvinotevera kuti kana tikadaro zfs send snapshot, tobva tatumira zvese muti uyu uye zvese zvinyorwa zvine chekuita nazvo. Patinotumira izvi zfs send Π² zfs receive pane chinangwa, inonyora zvese zviri mukati me block uye muti weanongedzo unoreva mabhuroko kune inotarirwa dataset.

Zvinhu zvinowedzera kunakidza pane yechipiri zfs send. Isu ikozvino tine maviri masisitimu, imwe neimwe ine poolname/datasetname@1, uye iwe unotora mufananidzo mutsva poolname/datasetname@2. Nokudaro, mudziva rekutanga raunaro datasetname@1 ΠΈ datasetname@2, uye mudziva rinotarirwa kusvika zvino chete mufananidzo wekutanga datasetname@1.

Sezvo isu tine snapshot yakajairwa pakati pechibviro uye chinangwa datasetname@1, tinokwanisa kuzviita kuwedzera zfs send pamusoro pazvo. Kana tichiti kuhurongwa zfs send -i poolname/datasetname@1 poolname/datasetname@2, inofananidza miti miviri inonongedza. Chero mapoints aripo chete mukati @2, zviri pachena kureva mabhuroko matsva - saka isu tinoda zviri mukati mezvivharo izvi.

Pane iri kure system, kugadzirisa kuwedzera send zviri nyore. Kutanga tinonyora zvese zvitsva zvinosanganisirwa murukova send, uye wobva wawedzera zvinongedzo kumabhuroko iwayo. Voila, tine @2 muhurongwa hutsva!

ZFS asynchronous incremental replication ivandudzo huru pamusoro pekare isiri-snapshot yakavakirwa nzira dzakadai sersync. Muzviitiko zvese izvi, data rakashandurwa chete rinotamiswa - asi rsync inofanira kutanga verenga kubva padhisiki data rese kumativi ese maviri kuti utarise huwandu uye uenzanise. Mukupesana, ZFS kudzokorodza hakuna chainoverenga kunze kwemiti yekunongedzera - uye chero zvidhinha zvisipo mune yakagovaniswa snapshot.

Yakavakwa-mukati compression

Iyo yekukopa-pa-kunyora michina zvakare inorerutsa iyo inline compression system. Mune yechinyakare faira system, kudzvanya kune dambudziko - zvese vhezheni yekare uye vhezheni itsva ye data yakagadziridzwa zvinogara munzvimbo imwechete.

Kana tikafunga chidimbu che data pakati pefaira inotanga hupenyu se megabyte ye zero kubva 0x00000000 uye zvichingodaro, zviri nyore kwazvo kuimanikidza kune imwe chikamu pa diski. Asi chii chinoitika kana tikatsiva iyo megabyte yezero ne megabyte yeincompressible data seJPEG kana pseudo-random ruzha? Zvisingatarisirwi, iyi megabyte yedata haizodi imwe chete, asi 256 4 KB zvikamu, uye munzvimbo ino pane diski chikamu chimwe chete chakachengetwa.

ZFS haina dambudziko iri, sezvo marekodhi akagadziridzwa anogara achinyorerwa kunzvimbo isingashandiswe - iyo yepakutanga block inongotora imwe 4 KB chikamu, uye rekodhi nyowani inotora 256, asi iri harisi dambudziko - chidimbu chichangobva kugadziridzwa kubva ku " pakati" yefaira yaizonyorerwa nzvimbo isina kushandiswa zvisinei nekuti saizi yaro yachinja here kana kuti kwete, saka kuZFS iyi inguva yakajairwa.

Native ZFS compression yakaremara nekusarudzika, uye sisitimu inopa pluggable algorithms-ikozvino LZ4, gzip (1-9), LZJB, uye ZLE.

  • LZ4 ndeyekutepfenyura algorithm inopa yakanyanya kukurumidza kudzvanya uye decompression uye mabhenefiti ekuita kune akawanda ekushandisa kesi - kunyangwe painononoka CPUs.
  • GZIP ndeye inoremekedzwa algorithm iyo vese vashandisi veUnix vanoziva uye vanoda. Inogona kushandiswa ne compression mazinga 1-9, ine compression ratio uye CPU kushandiswa kunowedzera sezvainoswedera padanho 9. The algorithm inonyatsokodzera zvinyorwa zvose (kana zvimwe zvinomanikidzika zvikuru) mashandisirwo ekushandisa, asi zvimwe zvinowanzokonzera CPU nyaya - shandisa iyo. nehanya, kunyanya pamazinga epamusoro.
  • LZJB ndiyo yekutanga algorithm muZFS. Yakasakara uye haifanirwe kushandiswa, iyo LZ4 inoipfuura munzira dzese.
  • ZVAKAIPA - zero level encoding, Zero Level Encoding. Iyo haibate yakajairwa data zvachose, asi inomanikidza yakakura kutevedzana kwezero. Inobatsira kune zvachose incompressible datasets (senge JPEG, MP4, kana mamwe mafomati atove akadzvanywa) sezvo inofuratira data isingagadzike asi ichimanikidza nzvimbo isingashandiswe mumarekodhi anobuda.

Isu tinokurudzira LZ4 kudzvanywa kweanenge ese ekushandisa kesi; chirango chekuita kana uchisangana neincompressible data idiki kwazvo, uye kukura kuita kweiyo data data kwakakosha. Kukopa mufananidzo wemuchina wekuisa patsva yeWindows inoshanda system (ichangobva kuisirwa OS, hapana data mukati parizvino) ne compression=lz4 yakapfuura 27% nekukurumidza kupfuura ne compression=nonein bvunzo iyi muna 2015.

ARC - adaptive inotsiva cache

ZFS ndiyo yega yemazuva ano faira sisitimu yatinoziva iyo inoshandisa yayo yekuverenga caching meshini, pane kuvimba neiyo inoshanda sisitimu peji cache kuchengetedza makopi eachangobva kuverenga mabhuroki mu RAM.

Kunyangwe iyo cache yemuno isiri isina matambudziko ayo - ZFS haigone kupindura kune mitsva yekugovera zvikumbiro nekukurumidza sekernel, saka dambudziko idzva. malloc() pandangariro yekugoverwa inogona kutadza kana ichida iyo RAM parizvino inogarwa neARC. Asi pane zvikonzero zvakanaka zvekushandisa yako cache, zvirinani ikozvino.

Ese anozivikanwa emazuva ano masisitimu anoshanda, anosanganisira MacOS, Windows, Linux uye BSD, shandisa iyo LRU (Ichangopfuura Ichangobva Kushandiswa) algorithm kuita iyo cache peji. Iyi ndiyo primitive algorithm inosundira cached block "kukwira mutsara" mushure mekuverenga kwega kwega, uye inosundira zvivharo "pasi pemutsara" sezvinodiwa kuwedzera cache misses (mabhuraki aifanira kunge akaverengwa kubva kudiski, kwete kubva kucache) kumusoro.

Iyo algorithm inowanzo shanda zvakanaka, asi pane masisitimu ane makuru ekushanda dataset, LRU inotungamira nyore mukurova - kudzinga mabhururu anowanzo kudiwa kuti awane nzvimbo yezvivharo zvisingazoverengeke kubva kucache zvakare.

ARC igorogorom ishoma shoma iyo inogona kufungidzirwa se "yakaremerwa" cache. Pese painoverengerwa block block, inowedzera "kurema" uye kuoma kudzinga - uye kunyangwe mushure mekudzinga block. tracked mukati meimwe nhambo yenguva. Chivharo chakadzingwa asi chozoda kuverengerwa mucache chichavawo "chinorema".

Mhedzisiro yezvese izvi ndeye cache ine yakanyanya kurova ratio, chiyero pakati pecache hits (inoverengerwa yakaitwa kubva kune cache) uye cache misses (inoverenga kubva kudhisiki). Ichi chiverengero chakakosha zvikuru - kwete chete iyo cache inorova pachayo inopihwa maodha ehukuru nekukurumidza, cache misses inogona zvakare kupihwa nekukurumidza, sezvo yakawanda cache hits, mashoma anowirirana dhisiki zvikumbiro uye kudzikisa latency kune avo vasara vanopotsa izvo zvinofanirwa. kushumirwa ne diski.

mhedziso

Mushure mekudzidza iwo ekutanga semantics eZFS - mashandiro anoita kopi-pa-kunyora, pamwe nehukama pakati pemadziva ekuchengetera, madhiraivha, mabhuroka, zvikamu, uye mafaera - tagadzirira kukurukura mashandiro epasirese nenhamba chaidzo.

Muchikamu chinotevera, tichatarisa maitiro chaiwo emadziva ane magirazi vdevs uye RAIDz, tichipesana, uye zvakare tichipesana neyechinyakare Linux kernel RAID topologies yatakaongorora. pakutanga.

Pakutanga, taida kungovhara izvo zvekutanga - iyo ZFS topology ivo pachavo - asi mushure akadaro a ngatigadzirirei kutaura nezve mamwe epamberi kuseta uye tuning yeZFS, kusanganisira kushandiswa kweanobatsira vdev mhando seL2ARC, SLOG uye Special Allocation.

Source: www.habr.com

Voeg