Lintlha tsa motheo tsa ZFS: Polokelo le Ts'ebetso

Lintlha tsa motheo tsa ZFS: Polokelo le Ts'ebetso

Selemong sena re se re buisane ka lihlooho tse ling tsa selelekela, mohlala. mokhoa oa ho lekola lebelo la li-drive tsa hau и RAID ke eng. Ea bobeli ho tsena, re bile re ts'episa ho tsoela pele ho ithuta ts'ebetso ea li-topology tse fapaneng tsa li-multi-disk ho ZFS. Ena ke sistimi ea faele ea moloko o latelang eo hona joale e sebelisoang hohle ho tsoa Apple ho Botho.

Kajeno ke letsatsi le letle la ho tloaelana le ZFS, babali ba bohelehele. Tseba feela hore tlhahlobong e ikokobelitseng ea mohlahlami oa OpenZFS Matt Ahrens, "ho thata haholo."

Empa pele re fihla lipalo - mme ho tla ba le, kea ts'episa - bakeng sa mefuta eohle ea tlhophiso ea ZFS ea li-disk tse robeli, re hloka ho bua ka eona. kamoo Ka kakaretso, ZFS e boloka data ho disk.

Zpool, vdev le sesebelisoa

Lintlha tsa motheo tsa ZFS: Polokelo le Ts'ebetso
Setšoantšo sena se felletseng sa letamo se kenyelletsa li-vdev tse tharo tse thusang, e le 'ngoe ea sehlopha ka seng, le tse' nè bakeng sa RAIDz2.

Lintlha tsa motheo tsa ZFS: Polokelo le Ts'ebetso
Hangata ha ho na lebaka la ho theha letamo la mefuta le boholo bo sa tšoaneng ba vdev - empa haeba u batla, ha ho letho le u thibelang ho etsa joalo.

Ho utloisisa hantle sistimi ea faele ea ZFS, o hloka ho shebisisa sebopeho sa eona sa 'nete. Taba ea pele, ZFS e kopanya likarolo tsa tsamaiso ea molumo oa setso le tsamaiso ea faele. Ea bobeli, e sebelisa mokhoa oa ho kopitsa-on-write oa transaction. Likarolo tsena li bolela hore sistimi e fapane haholo le litsamaiso tse tloaelehileng tsa faele le li-array tsa RAID. Sehlopha sa pele sa li-block tsa motheo tsa mohaho ho utloisisa ke letamo la polokelo (zpool), sesebelisoa sa sebele (vdev) le sesebelisoa sa sebele (sesebelisoa).

zpool

Letamo la polokelo ea zpool ke sebopeho se holimo ka ho fetisisa sa ZFS. Letamo le leng le le leng le na le sesebelisoa se le seng kapa ho feta. Ka lehlakoreng le leng, e 'ngoe le e' ngoe ea tsona e na le sesebelisoa se le seng kapa ho feta (sesebelisoa). matamo a Virtual ke likarolo tse ikemetseng. Khomphuta e le 'ngoe ea' mele e ka ba le matamo a mabeli kapa ho feta a arohaneng, empa e 'ngoe le e' ngoe e ikemetse ka ho feletseng ho e meng. Matamo ha a khone ho arolelana lisebelisoa tsa sebele.

Khatiso ea ZFS e boemong ba sesebelisoa, eseng boemong ba letamo. Ho hang ha ho na redundancy boemong ba letamo-haeba vdev kapa vdev e inehetseng e lahlehile, letamo lohle le lahleha hammoho le lona.

Matamo a sejoale-joale a polokelo a ka pholoha tahlehelo ea "cache" kapa "log" ea sesebelisoa - leha a ka lahleheloa ke lintlha tse nyane tse litšila haeba a lahleheloa ke "vdev log" nakong ea ho tima motlakase kapa ho putlama ha sistimi.

Ho na le maikutlo a fosahetseng a tloaelehileng a hore ZFS "mebala ea data" e ngotsoe ho pholletsa le letamo lohle. Sena ha se nnete. Zpool ha se RAID0 e qabolang, ke ntho e qabolang haholo JBOD e nang le mokhoa o rarahaneng oa ho aba.

Ka kakaretso, litlaleho li ajoa har'a lisebelisoa tse fumanehang tsa sebele ho ea ka sebaka se fumanehang sa mahala, kahoo ka khopolo li tla tlatsoa kaofela ka nako e le 'ngoe. Liphetolelo tsa morao-rao tsa ZFS li ela hloko ts'ebeliso ea hona joale ea vdev (ho lahla) - haeba sesebelisoa se le seng se phathahane ho feta se seng (mohlala, ka lebaka la boima ba 'mele), se tla tloheloa ka nakoana bakeng sa ho ngola, leha se na le tekanyo e phahameng ka ho fetisisa ea sebaka sa mahala. .

Mochini oa ho sibolla o hahelletsoeng ka har'a mekhoa ea sejoale-joale ea kabo ea ZFS o ka fokotsa latency le ho eketsa ts'ebetso nakong ea mojaro o phahameng ka mokhoa o sa tloaelehang - empa ha o etse joalo. blanche e nyane ho kopanya ntle ho boikhethelo ha li-HDD tse liehang le li-SSD tse potlakileng letamong le le leng. Letamo le joalo le sa lekaneng le ntse le tla sebetsa ka lebelo la sesebelisoa se liehang ka ho fetisisa, ke hore, joalokaha eka se entsoe ka ho feletseng ka lisebelisoa tse joalo.

vdev

Letamo le leng le le leng la polokelo le na le sesebelisoa se le seng kapa ho feta (vdev). Ka lehlakoreng le leng, vdev ka 'ngoe e kenyelletsa sesebelisoa se le seng kapa ho feta. Lisebelisoa tse ngata tsa sebele li sebelisetsoa ho boloka boitsebiso bo bonolo, empa ho na le lihlopha tse 'maloa tsa bathusi ba vdev, ho akarelletsa le CACHE, LOG, le SPECIAL. E 'ngoe le e' ngoe ea mefuta ena ea vdev e ka ba le e 'ngoe ea li-topology tse hlano: sesebelisoa se le seng, RAIDz1, RAIDz2, RAIDz3 kapa seipone.

RAIDz1, RAIDz2 le RAIDz3 ke mefuta e ikhethang ea seo batho ba khale ba neng ba ka se bitsa habeli (diagonal) parity RAID. 1, 2 le 3 li bua ka hore na ke li-block tse kae tse abetsoeng lane ka 'ngoe ea data. Sebakeng sa ho ba le li-disk tse arohaneng ho fana ka tekano, lisebelisoa tsa RAIDz tse fumanehang li aba semi-evenly ho li-disk. Sehlopha sa RAIDz se ka lahleheloa ke li-disk tse ngata joalo ka ha se na le li-blocks tsa parity; haeba e lahleheloa ke e 'ngoe, e tla hlōleha' me e nke letamo la polokelo le eona.

Ka lisebelisoa tsa seipone tsa seipone (seipone vdev), boloko bo bong le bo bong bo bolokiloe sesebelisoa se seng le se seng ho vdev. Le hoja liipone tse nang le bophara ba bobeli ke tsona tse tloaelehileng ka ho fetisisa, seipone se ka ba le palo leha e le efe e sa tloaelehang ea lisebelisoa-ka ho kenya lisebelisoa tse kholo, makhetlo a mararo a atisa ho sebelisoa ho ntlafatsa ts'ebetso ea ho bala le ho mamella liphoso. Seipone sa vdev se ka pholoha ho hloleha hofe kapa hofe ha feela sesebelisoa se le seng sa vdev se ntse se sebetsa.

Li-vdev tse le 'ngoe li kotsi ka tlhaho. Sesebelisoa se joalo se ke keng sa pholoha ho hlōleha ho le mong - 'me haeba se sebelisoa e le polokelo kapa vdev e khethehileng, joale ho hlōleha ha eona ho tla lebisa timetsong ea letamo lohle. Hlokomela haholo, haholo mona.

CACHE, LOG, le lisebelisoa tse Khethehileng tse ka hlahisoang ho efe kapa efe ea li-topology tse kaholimo - empa hopola hore ho lahleheloa ke sesebelisoa se KHETHEHILENG se bolelang ho lahleheloa ke letamo, kahoo topology e sa sebetseng e khothaletsoa haholo.

sesebediswa

Mohlomong lena ke lentsoe le bonolo ho feta ho le utloisisa ho ZFS - ha e le hantle ke sesebelisoa sa phihlello se sa reroang. Hopola hore lisebelisoa tsa sebele li entsoe ka lisebelisoa tsa motho ka mong, 'me letamo le entsoe ka lisebelisoa tsa sebele.

Li-disk, ekaba tsa makenete kapa tse tiileng, ke lisebelisoa tse atileng haholo tse sebelisoang e le li-block tsa vdev. Leha ho le joalo, sesebelisoa leha e le sefe se nang le tlhaloso ho / dev se tla etsa - kahoo lisebelisoa tsohle tsa hardware RAID li ka sebelisoa e le lisebelisoa tse arohaneng.

Faele e bonolo e tala ke e 'ngoe ea lisebelisoa tsa bohlokoa ka ho fetesisa tseo ho ka hahoang vdev ho tsona. Liteko matamo ho tloha sparse lifaele ke mokhoa o bonolo haholo oa ho hlahloba litaelo tsa letamo le ho bona hore na sebaka se kae se fumaneha ka letamong kapa sesebelisoa sa 'nete sa topology e fanoeng.

Lintlha tsa motheo tsa ZFS: Polokelo le Ts'ebetso
U ka theha letamo la liteko ho tsoa lifaeleng tse fokolang ka metsotsoana e seng mekae - empa u se ke oa lebala ho hlakola letamo lohle le likarolo tsa lona kamora moo.

Ha re re u batla seva ea li-disk tse robeli 'me u rera ho sebelisa li-disk tsa 10 TB (~ 9300 GiB) - empa ha u na bonnete ba hore na topology efe e lumellana hantle le litlhoko tsa hau. Mohlala o ka holimo, re haha ​​​​letamo la liteko ho tloha lifaeleng tse fokolang ka nako ea metsotsoana - 'me joale rea tseba hore RAIDz2 vdev ea li-disk tse robeli tsa 10 TB e fana ka 50 TiB ea bokhoni bo ka sebelisoang.

Sehlopha se seng se ikhethileng sa lisebelisoa ke SPARE. Lisebelisoa tsa ho fetola mocheso, ho fapana le lisebelisoa tse tloaelehileng, ke tsa letamo lohle ho e-na le sesebelisoa se le seng sa sebele. Haeba vdev leha e le efe ka letamo e hlōleha 'me sesebelisoa se setseng se hokahane le letamo' me se fumaneha, joale se tla ikopanya le vdev e amehileng.

Hang ha e se e hokahane le vdev e amehileng, sesebelisoa se ncha se qala ho fumana likopi kapa ho tsosolosoa ha data e lokelang ho ba sesebelisoa se sieo. Ka RAID ea setso sena se bitsoa "rebuilding", 'me ho ZFS ke "resilver".

Ke habohlokoa ho hlokomela hore lisebelisoa tse ncha ha li nkele lisebelisoa tse hlōlehileng ka ho sa feleng. Ena ke phetoho ea nakoana feela ea ho fokotsa nako eo e e nkang hore vdev e theole. Ka mor'a hore mookameli a nke sebaka sa sesebelisoa sa vdev se hlōlehileng, ho khutlisetsoa morao ho khutlisetsoa ho sesebelisoa seo sa ka ho sa feleng, 'me SPARE e khaotsoe ho vdev' me e khutlela ho ba sebaka sa polokelo bakeng sa letamo lohle.

Lisebelisoa tsa data, li-blocks le likarolo

Sehlopha se latelang sa meaho eo re ka e utloisisang leetong la rona la ZFS ha se amane le lisebelisoa tsa thepa le ho feta mabapi le hore na data ka boeona e hlophisitsoe le ho bolokoa joang. Re tlola likarolo tse 'maloa mona - joalo ka metaslab - ho qoba ho kopanya lintlha ha re ntse re boloka kutloisiso ea sebopeho ka kakaretso.

Lefapha la boitsebiso

Lintlha tsa motheo tsa ZFS: Polokelo le Ts'ebetso
Ha re qala ho theha dataset, e bonts'a sebaka sohle se fumanehang sa letamo. Ebe re beha quota - ebe re fetola sebaka sa thaba. Boselamose!

Lintlha tsa motheo tsa ZFS: Polokelo le Ts'ebetso
Zvol hangata e mpa e le dataset e amohuoeng karolo ea eona ea tsamaiso, eo re e nkelang sebaka mona ka sistimi e tloaelehileng ea ext4.

Seteishene sa data sa ZFS se batla se tšoana le mokhoa o tloaelehileng oa faele o kentsoeng. Joalo ka sistimi e tloaelehileng ea faele, ha u habanya feela e bonahala e le "foldara e 'ngoe feela." Empa joalo ka lits'ebetso tsa faele tse behiloeng khafetsa, sete e 'ngoe le e' ngoe ea ZFS e na le thepa ea eona ea mantlha.

Pele ho tsohle, dataset e ka ba le palo e abetsoeng. Haeba u kenya zfs set quota=100G poolname/datasetname, joale u ke ke ua khona ho ngolla foldareng e behiloeng /poolname/datasetname ho feta 100 GiB.

Hlokomela ho ba teng—le ho ba sieo— ha likheo qalong ea mola o mong le o mong? Sete e 'ngoe le e' ngoe ea data e na le sebaka sa eona ho bolaoli ba ZFS le tsamaiso ea maemo a holimo. Ha ho na slash e etellang pele ho sehlopha sa ZFS - o qala ka lebitso la letamo ebe o tloha tseleng ho tloha ho data e 'ngoe ho ea ho e latelang. Ka mohlala, pool/parent/child bakeng sa sete ea data e bitsoang child tlas'a pokello ea boitsebiso ea motsoali parent letamong le nang le lebitso la boqapi pool.

Ka nako e sa lekanyetsoang, sebaka sa marang-rang sa dataset se tla lekana le lebitso la lona ho sehlopha sa ZFS, se nang le slash e etellang pele - letamo le bitsoang. pool hlongoa joalo ka /pool, sete ya data parent hlongoa ka hare /pool/parent, le sete ya data ya ngwana child hlongoa ka hare /pool/parent/child. Leha ho le joalo, sebaka sa marang-rang sa data se ka fetoloa.

Haeba re bontša zfs set mountpoint=/lol pool/parent/child, ebe data set pool/parent/child hlomelloa ka har'a tsamaiso e le /lol.

Ho phaella ho li-datasets, re lokela ho bua ka li-volumes (zvols). Bolumo e batla e tšoana le sete ea data, ntle le hore ha e hlile ha e na sistimi ea lifaele - ke sesebelisoa sa block. Ka mohlala, u ka etsa zvol Ka lebitso mypool/myzvol, ebe u e fomata ka sistimi ea faele ea ext4, ebe u beha sistimi eo - joale u na le sistimi ea ext4, empa ka likarolo tsohle tsa ts'ireletso tsa ZFS! Sena se kanna sa utloahala e le booatla komporong e le 'ngoe, empa sea utloahala haholoanyane joalo ka mokokotlo ha o romella sesebelisoa sa iSCSI.

Litene

Lintlha tsa motheo tsa ZFS: Polokelo le Ts'ebetso
Faele e emetsoe ke boloko e le 'ngoe kapa ho feta. Sebaka se seng le se seng se bolokiloe sesebelisoa se le seng sa sebele. Boholo ba block hangata bo lekana le parameter recordsize, empa e ka fokotsoa ho 2^ashifi, haeba e na le metadata kapa faele e nyane.

Lintlha tsa motheo tsa ZFS: Polokelo le Ts'ebetso
Re hlile re ehlile Ha re tšehe ka kotlo e kholo ea ts'ebetso haeba u beha ashift tlase haholo

Ka letamong la ZFS, lintlha tsohle, ho kenyeletsoa metadata, li bolokiloe ka li-blocks. Boholo ba li-block size bakeng sa sete e 'ngoe le e' ngoe ea data bo hlalositsoe setšeng recordsize (boholo ba rekoto). Boholo ba rekoto bo ka fetoha, empa sena se ke ke sa fetola boholo kapa sebaka sa li-blocks tse seng li ngotsoe ho sete ea data - e ama feela li-blocks tse ncha ha li ngotsoe.

Ntle le ha ho boletsoe ka tsela e 'ngoe, boholo ba hajoale ba ho kena ke 128KiB. Ke mofuta oa khoebo e thata moo ts'ebetso e ke keng ea phethahala, empa e ke ke ea ba mpe maemong a mangata. Recordsize e ka hlophisoa ho boleng bofe kapa bofe ho tloha ho 4K ho isa ho 1M (ka litlhophiso tse ling recordsize o ka kenya le ho feta, empa sena ke seoelo e leng mohopolo o motle).

Sebaka leha e le sefe se bua ka data ea faele e le 'ngoe feela - u ke ke ua petelletsa lifaele tse peli tse fapaneng sebakeng se le seng. Faele ka 'ngoe e na le boloko e le' ngoe kapa ho feta, ho latela boholo ba eona. Haeba boholo ba faele bo le nyane ho feta boholo ba rekoto, e tla bolokoa sebakeng se senyenyane - mohlala, boloko bo nang le faele ea 2 KB bo tla nka karolo e le 'ngoe feela ea 4 KB ho disk.

Haeba faele e le kholo hoo e ka hlokang li-blocks tse 'maloa, joale tsohle tse kenang faeleng eo li tla ba tsa boholo recordsize - ho kenyelletsa le ho kena ho qetela, karolo e ka sehloohong ea eona e ka bang sebaka se sa sebelisoeng.

li-vol volumes ha li na thepa recordsize - ho e-na le hoo ba na le thepa e lekanang volblocksize.

Makala

Sebaka sa ho qetela, sa motheo sa mohaho ke lekala. Ke yuniti e nyane haholo ea 'mele e ka ngolloang kapa ea baloa ho tsoa ho sesebelisoa se amohelang. Ka lilemo tse mashome a 'maloa, li-disk tse ngata li ne li sebelisa likarolo tsa 512-byte. Matsatsing ana, li-drive tse ngata li hlophiselitsoe likarolo tsa 4 KB, 'me tse ling - haholo-holo li-SSD - li hlophiselitsoe likarolo tsa 8 KB kapa tse kholoanyane.

ZFS e na le tšobotsi e u lumellang hore u iketsetse boholo ba lekala. Thepa ena ashift. Ka mokhoa o itseng o ferekanyang, ashift ke matla a mabeli. Ka mohlala, ashift=9 e bolela boholo ba lekala 2^9, kapa 512 byte.

ZFS e botsa sistimi ea ts'ebetso bakeng sa tlhaiso-leseling e felletseng mabapi le sesebelisoa se seng le se seng sa block ha se eketsoa ho vdev e ncha, 'me ka boiketsetso e beha ashift ka nepo ho latela tlhaiso-leseling eo. Ka bomalimabe, li-drive tse ngata li bua leshano ka boholo ba lekala la tsona e le hore li lule li lumellana le Windows XP (e neng e sa khone ho utloisisa li-drive tse nang le boholo ba likarolo tse ling).

Sena se bolela hore ho khothaletsoa haholo hore molaoli oa ZFS a tsebe boholo ba lekala la lisebelisoa tsa bona mme a behoe ka letsoho ashift. Haeba ashift e setiloe e le nyane haholo, palo ea ts'ebetso ea ho bala / ho ngola e eketseha ho latela linaleli. Kahoo, ho ngola "likarolo" tsa 512-byte lefapheng la 'nete la 4 KB ho bolela ho ngola "sekala" sa pele, ebe u bala karolo ea 4KiB, u e fetole ka "sekala" sa bobeli sa 512-byte, se ngole hape ho se secha. 4 KB, joalo-joalo bakeng sa ho kena ka 'ngoe.

Lefatšeng la 'nete, kotlo e joalo e ama Samsung EVO SSD, eo e lokelang ho sebetsa ho eona ashift=13, empa li-SSD tsena li bua leshano ka boholo ba lekala la tsona, ka hona, default e behiloe ho ashift=9. Ntle le haeba motsamaisi ea nang le boiphihlelo a fetola maemo ana, SSD ena ea sebetsa Butlenyana kamehla magnetic HDD.

Bakeng sa papiso, bakeng sa ho ba kholo haholo ashift ho hang ha ho na kotlo. Ha ho na ts'ebetso ea 'nete e otlang, mme keketseho ea sebaka se sa sebelisoeng e nyane (kapa zero haeba compression e nolofalitsoe). Ka hona, re khothaletsa ka matla hore le li-drive tse sebelisang likarolo tsa 512-byte li kenye ashift=12 kapa esita le ashift=13ho sheba kamoso ka botshepehi.

Thepa ashift e kentsoe bakeng sa sesebelisoa se seng le se seng sa vdev, le eseng bakeng sa letamo, joalo ka ha batho ba bangata ba nahana ka phoso - mme ha e fetohe ka mor'a ho kenya. Haeba u otla ka phoso ashift Ha o kenya vdev e ncha letamong, o silafalitse letamo leo ka mokhoa o ke keng oa fetoloa ka sesebelisoa se sa sebetseng hantle, 'me ka molao, ha ho na khetho e 'ngoe ho feta ho senya letamo le ho qala bocha. Esita le ho hlakola vdev ho ke ke ha u pholosa ho tloha boemong bo robehileng ashift!

Mokhoa oa ho kopitsa-ho-ngola

Lintlha tsa motheo tsa ZFS: Polokelo le Ts'ebetso
Haeba sistimi e tloaelehileng ea faele e hloka ho ngola data bocha, e fetola sebaka se seng le se seng moo e leng teng

Lintlha tsa motheo tsa ZFS: Polokelo le Ts'ebetso
Sistimi ea faele ea kopi-on-write e ngola mofuta o mocha oa block ebe e notlolla mofuta oa khale

Lintlha tsa motheo tsa ZFS: Polokelo le Ts'ebetso
Ka kutloisiso, haeba re hlokomoloha tlhophiso ea 'mele ea li-block, "data comet" ea rona e nolofatsa "data worm" e tlohang ho le letšehali ho ea ho le letona ho pholletsa le' mapa oa sebaka se fumanehang.

Lintlha tsa motheo tsa ZFS: Polokelo le Ts'ebetso
Joale re ka fumana mohopolo o motle oa hore na likopi-on-write linepe li sebetsa joang - block e 'ngoe le e' ngoe e ka ba ea linepe tse ngata, 'me e tla tsoela pele ho fihlela linepe tsohle tse amanang le tsona li senngoa.

Mochine oa Copy on Write (CoW) ke motheo oa mantlha oa se etsang hore ZFS e be sistimi e makatsang joalo. Mohopolo oa mantlha o bonolo - ha o kopa sistimi ea setso ho fetola faele, e tla etsa hantle seo u se kopileng. Haeba o kopa sistimi ea faele ea kopi-on-write ho etsa ntho e ts'oanang, e tla re "ho lokile" -empa e tla bua leshano ho uena.

Ho e-na le hoo, mokhoa oa ho kopitsa-ho-ngola o ngola mofuta o mocha oa block e fetotsoeng, ebe o nchafatsa metadata ea faele ho tlosa sehokelo sa khale ebe o se amahanya le block e ncha eo u sa tsoa e ngola.

Ho hlakola block ea khale le ho hokahanya e ncha ho etsoa ts'ebetsong e le 'ngoe, kahoo e ke ke ea sitisoa - haeba u tsosolosa matla ka mor'a hore sena se etsahale, u na le phetolelo e ncha ea faele,' me haeba u tsosolosa matla pele, joale u na le phetolelo ea khale. Leha ho le joalo, ho ke ke ha e-ba le likhohlano tsamaisong ea lifaele.

Copy-on-write ho ZFS ha e hlahe feela boemong ba tsamaiso ea faele, empa hape le boemong ba tsamaiso ea disk. Sena se bolela hore ZFS ha e na monyetla oa ho ba le makhooa rekotong (lesoba ho RAID) - ketsahalo ha sekhahla se ne se tlalehiloe hanyane pele sisteme e soahlamana, ka tšenyo ea sehlopha kamora ho qala bocha. Mona mola o ngotsoe ka atomically, vdev kamehla sequential, le Bob ke malome wa hao.

ZIL: Lenane la sepheo sa ZFS

Lintlha tsa motheo tsa ZFS: Polokelo le Ts'ebetso
ZFS e sebetsana le ho ngola ka mokhoa o ikhethileng - e li boloka ka nakoana empa hang-hang ho ZIL pele e li ngola ka ho sa feleng hammoho le li-asynchronous.

Lintlha tsa motheo tsa ZFS: Polokelo le Ts'ebetso
Ka tloaelo, lintlha tse ngotsoeng ho ZIL ha li sa baloa hape. Empa sena se ka etsahala ka mor'a ho hlōleha ha tsamaiso

Lintlha tsa motheo tsa ZFS: Polokelo le Ts'ebetso
SLOG, kapa sesebelisoa sa bobeli sa LOG, ke ntho e ikhethileng - 'me ka ho khetheha e potlakile haholo - vdev moo ZIL e ka bolokoang ka thoko ho polokelo ea mantlha.

Lintlha tsa motheo tsa ZFS: Polokelo le Ts'ebetso
Kamora ho oa, data eohle e litšila ho ZIL e bapaloa hape - ntlheng ena, ZIL e ho SLOG, ke hona moo e bapaloang hape.

Ho na le mekhahlelo e 'meli e meholo ea ho ngola: synchronous (sync) le asynchronous (async). Bakeng sa meroalo e mengata ea mosebetsi, boholo ba lingoloa ha bo lumellane - sistimi ea faele e li lumella ho kopanngoa le ho ntšoa ka lihlopha, ho fokotsa ho arohana le ho eketseha haholo.

Lirekoto tsa synchronous ke taba e fapaneng ka ho felletseng. Ha kopo e kopa ho ngoloa ka mokhoa o lumellanang, e bolella tsamaiso ea faele: "U hloka ho kenya sena mohopolong o sa fetoheng. hona joale, ’me ho fihlela ka nako eo ha ho letho leo nka le etsang.” Ka hona, ho ngola synchronous ho tlameha ho ikemisetsoa ho disk hang-hang - mme haeba sena se eketsa karohano kapa se fokotsa phallo, ho be joalo.

ZFS e sebetsana le ho ngola ka mokhoa o fapaneng ka mokhoa o fapaneng le lits'ebetso tse tloaelehileng tsa lifaele-ho e-na le ho li sutumelletsa hang-hang polokelong ea kamehla, ZFS e li kenya sebakeng se khethehileng sa polokelo se bitsoang ZFS Intent Log, kapa ZIL. Leqheka ke hore litlaleho tsena hape lula mohopolong, o kopantsoe hammoho le likopo tse tloaelehileng tsa ho ngola tse sa lumellaneng, hore hamorao li kenngoe polokelong e le li-TXG tse tloaelehileng ka ho felletseng (Transaction Groups).

Nakong ea ts'ebetso e tloaelehileng, ZIL e ngotsoe 'me ha e sa hlola e bala. Ha, ka mor'a metsotsoana e seng mekae, litlaleho tse tsoang ho ZIL li ikemiseditse ho boloka ka sehloohong ho TXGs e tloaelehileng ho tloha ho RAM, li tlosoa ho ZIL. Nako feela eo ntho e baloang ho tsoa ho ZIL ke ha o kenya letamo.

Haeba ho hlōleha ha ZFS ho etsahala-ho senyeha ha tsamaiso ea ts'ebetso kapa ho tima motlakase-ha ho ntse ho e-na le data ho ZIL, data eo e tla baloa nakong ea ho kenya letamo le latelang (mohlala, ha tsamaiso ea failover e qala hape). Eng kapa eng e ka ho ZIL e tla baloa, e hlophisoe ka li-TXG, e ikemisetse lebenkeleng le leholo, ebe e tlosoa ho ZIL nakong ea ts'ebetso ea ho reka kantle ho naha.

E 'ngoe ea lihlopha tsa bathusi ba vdev e bitsoa LOG kapa SLOG, sesebelisoa sa bobeli sa LOG. E na le mosebetsi o le mong - ho fana ka letamo le arohaneng 'me, ka ho khetheha, ka potlako haholo, ka khanyetso e phahameng haholo ea ho ngola, sesebelisoa sa vdev bakeng sa ho boloka ZIL, ho e-na le ho boloka ZIL ho polokelo e kholo ea vdev. ZIL ka boeona e itšoara ka tsela e ts'oanang ho sa tsotellehe sebaka sa polokelo, empa haeba vdev e nang le LOG e na le ts'ebetso e phahameng haholo ea ho ngola, joale synchronous e ngola e tla ba kapele.

Ho eketsa vdev ka LOG ho letamo ha ho sebetse ke ke ntlafatsa tshebetso ya ho ngola e sa tshwaneng - leha o ka qobella tsohle ho ngolla ZIL ka zfs set sync=always, li ntse li tla amahanngoa le polokelo e kholo ea TXG ka tsela e ts'oanang le ka lebelo le ts'oanang le ntle le log. Ntlafatso e le 'ngoe feela ea ts'ebetso e tobileng ke latency ea ho ngola ea synchronous (kaha lebelo le phahameng la log le etsa hore ts'ebetso e potlake sync).

Leha ho le joalo, tikolohong e seng e hloka ho ngola ka mokhoa o ts'oanang, vdev LOG e ka potlakisa ka mokhoa o sa tobang ho ngola le ho bala ho sa ngolisoang. Ho theola lirekoto tsa ZIL ho LOG e arohaneng ea vdev ho bolela likhohlano tse fokolang bakeng sa IOPS polokelong ea mantlha, e leng ho ntlafatsang ts'ebetso ea tsohle tse baloang le ho ngola ho isa bohōleng bo itseng.

Lits'oants'o

Mochine oa ho kopitsa-ho-ngola hape ke motheo o hlokahalang bakeng sa linepe tsa athomo tsa ZFS le phetiso e ntseng e eketseha ea asynchronous. Sistimi e sebetsang ea faele e na le sefate sa pointer se tšoaeang likenyo tsohle tse nang le data ea hajoale - ha o nka senepe, o etsa kopi ea sefate sena sa pointer.

Ha rekoto e ngotsoe holim'a sistimi e sebetsang ea faele, ZFS e qala ho ngola mofuta o mocha oa block sebakeng se sa sebelisoeng. Ebe o hlakola mofuta oa khale oa block ho sistimi ea hajoale ea faele. Empa haeba litšupiso tse ling tsa snapshot block ea khale, e ntse e sa fetohe. Sebaka sa khale se ke ke sa khutlisoa e le sebaka sa mahala ho fihlela linepe tsohle tse buang ka block eo li senyehile!

Replication

Lintlha tsa motheo tsa ZFS: Polokelo le Ts'ebetso
Laeborari ea ka ea Steam ka 2015 e ne e le 158 GiB mme e kenyelletsa lifaele tse 126. Sena se haufi haholo le boemo bo nepahetseng ba rsync - phetisetso ea ZFS holim'a marang-rang e ne e le "feela" 927% ka potlako.

Lintlha tsa motheo tsa ZFS: Polokelo le Ts'ebetso
Ho marang-rang a tšoanang, ho pheta 40GB e le 'ngoe Windows 7 faele ea setšoantšo sa mochini ke pale e fapaneng ka ho felletseng. Phetoho ea ZFS e potlakile ka makhetlo a 289 ho feta rsync — kapa "feela" makhetlo a 161 ka potlako haeba u le bohlale ho lekana ho letsetsa rsync ka --inplace switch.

Lintlha tsa motheo tsa ZFS: Polokelo le Ts'ebetso
Ha setšoantšo sa VM se lekanya, litaba tsa rsync li lekana le eona. Boholo ba 1,9 TiB ha bo boholo joalo bakeng sa setšoantšo sa VM sa sejoale-joale-empa se seholo hoo phetiso ea ZFS e potlakile ka makhetlo a 1148 ho feta rsync, leha e na le khang ea rsync --inplace.

Ha u se u utloisisa hore na linepe li sebetsa joang, ho tla ba bonolo ho utloisisa moelelo oa ho pheta-pheta. Kaha senepe e mpa e le sefate sa lintlha tsa rekoto, ho latela hore haeba re etsa joalo zfs send snapshot, ebe re romela sefate sena le litlaleho tsohle tse amanang le sona. Ha re feta mona zfs send в zfs receive ka ntho e lebisitsoeng, e ngola ka bobeli litaba tsa sebele tsa thibela le sefate sa litsupa tse hlalosang li-blocks ho sete ea data e lebisitsoeng.

Lintho li ba monate le ho feta nakong ea bobeli zfs send. Hona joale re na le litsamaiso tse peli, e 'ngoe le e' ngoe e na le poolname/datasetname@1, 'me u nka senepe se secha poolname/datasetname@2. Ka hona, ka letamong la mohloli oo u nang le oona datasetname@1 и datasetname@2, 'me ka letamong la sepheo ho na le setšoantšo sa pele feela datasetname@1.

Hobane pakeng tsa mohloli le sepheo re na le setšoantšo se tloaelehileng datasetname@1, re ka e etsa keketso zfs send holim'a eona. Ha re bolella tsamaiso zfs send -i poolname/datasetname@1 poolname/datasetname@2, e bapisa lifate tse peli tsa pointer. Lisupa leha e le life tse teng feela ho @2, ho hlakile hore e bua ka li-blocks tse ncha - kahoo re tla hloka likahare tsa li-blocks tseo.

Sistimi e hole, ts'ebetso e ntse e eketseha send e bonolo feela. Taba ea pele, re ngola lintlha tsohle tse ncha tse kenyellelitsoeng molatsoaneng send, ebe o kenya litsupa libolokong tsena. Voila, re na le eona @2 tsamaisong e ncha!

ZFS asynchronous incremental replication ke ntlafatso e kholo ho feta mekhoa ea pejana e sa ipapisang le snapshot joalo ka rsync. Maemong ana ka bobeli, ke data e fetotsoeng feela e fetisetsoang - empa rsync e tlameha ho qala bala ho tswa ho disk ya data tsohle mahlakoreng ka bobeli ho hlahloba kakaretso le ho e bapisa. Ka lehlakoreng le leng, phetisetso ea ZFS ha e bale letho ntle le lifate tsa pointer — le li-blocks tse sa emetsoeng setšoantšong se akaretsang.

Khatello e hahiloeng ka hare

Mochine oa ho kopitsa-on-write o boetse o nolofatsa mokhoa oa ho hatella o hahelletsoeng ka hare. Sistimi ea faele ea setso, khatello e na le bothata - mofuta oa khale le mofuta o mocha oa data e fetotsoeng li sebakeng se le seng.

Haeba u nahana ka sengoathoana sa data bohareng ba faele e qalang bophelo ba eona e le megabyte ea zero ho tloha 0x00000000 joalo-joalo - ho bonolo haholo ho e hatella hore e be karolo e le 'ngoe ho disk. Empa ho etsahalang haeba re ka nkela megabyte ena ea zero sebaka ka megabyte ea data e ke keng ea qojoa, joalo ka JPEG kapa lerata la pseudo-random? Ka tšohanyetso, megabyte eo ea data e ne e ke ke ea hloka e le 'ngoe, empa likarolo tsa 256 4 KB, mme karolo e le' ngoe feela e ne e bolokiloe sebakeng seo sa disk.

ZFS ha e na bothata bona, kaha lirekoto tse fetotsoeng li lula li ngolloa sebakeng se sa sebelisoeng - sekhechana sa mantlha se nka karolo e le 'ngoe feela ea 4 KB, mme mongolo o mocha o tla nka 256, empa sena ha se bothata - sekhechana se sa tsoa fetoloa. "bohareng" ba faele bo ne bo tla ngolloa sebakeng se sa sebelisoeng ho sa tsotellehe hore na boholo ba eona bo fetohile kapa che, kahoo ena ke boemo bo tloaelehileng ka ho feletseng bakeng sa ZFS.

Khatello ea ZFS e hahelletsoeng e koaletsoe ka mokhoa o ikhethileng, 'me sistimi e fana ka li-algorithms tse plugable - hajoale ho kenyeletsoa LZ4, gzip (1-9), LZJB le ZLE.

  • LZ4 ke algorithm ea ho phallela e fanang ka khatello e potlakileng haholo le ts'epo le melemo ea ts'ebetso maemong a mangata a ts'ebeliso - leha e le ho li-CPU tse tsamaeang butle.
  • GZIP ke algorithm e hlomphehang eo basebelisi bohle ba Unix ba e tsebang le ho e rata. E ka kenngoa ts'ebetsong ka maemo a khatello ea 1-9, ka tekanyo e ntseng e eketseha ea compression le ts'ebeliso ea CPU ha u ntse u atamela boemo ba 9. Algorithm e loketse hantle bakeng sa linyeoe tsohle tsa tšebeliso ea mongolo (kapa tse ling tse thata haholo), empa hangata e baka mathata a CPU ho seng joalo - e sebelise. ka hloko, haholo maemong a holimo.
  • LZJB - algorithm ea mantlha ho ZFS. Ha e sa sebetsa 'me ha ea lokela ho sebelisoa, LZ4 e phahame ka litsela tsohle.
  • SEBELE - khouto ea boemo ba zero, Khouto ea Boemo ba Zero. Ha e ame data e tloaelehileng ho hang, empa e hatella tatellano e kholo ea zero. E na le thuso bakeng sa lisebelisoa tsa data tse sa tsitsang ka botlalo (joalo ka JPEG, MP4 kapa liforomo tse ling tse seng li hatelitsoe) kaha e iphapanyetsa data e ke keng ea qojoa empa e hatella sebaka se sa sebelisoeng litlalehong tse hlahisitsoeng.

Re khothaletsa khatello ea LZ4 bakeng sa hoo e batlang e le linyeoe tsohle tsa tšebeliso; kotlo ea ts'ebetso ha u sebetsana le data e sa tsitsang e nyane haholo, le kgolo ts'ebetso ea data e tloaelehileng e bohlokoa. Ho kopitsa setšoantšo sa mochini bakeng sa ho kenya sistimi e ncha ea Windows (OS e sa tsoa kenngoa, ha ho na data ka hare) ka compression=lz4 e fetile 27% kapele ho feta ka compression=none, ho teko ena ho tloha 2015.

ARC - cache e ncha e feto-fetohang

ZFS ke eona feela sistimi ea sejoale-joale ea faele eo re e tsebang e sebelisang mochini oa eona oa ho bala, ho fapana le ho itšetleha ka cache ea leqephe la sistimi e sebetsang ho boloka likopi tsa li-block tse sa tsoa baloa ho RAM.

Leha cache ea tlhaho e se na mathata a eona - ZFS ha e khone ho araba likopo tse ncha tsa kabo ea memori kapele joalo ka kernel, kahoo mohala o mocha. malloc() kabo ea memori e kanna ea hloleha haeba e hloka RAM eo hajoale e leng teng ke ARC. Empa ho na le mabaka a utloahalang a ho sebelisa cache ea hau, bonyane hajoale.

Litsamaiso tsohle tse tsebahalang tsa sejoale-joale, ho kenyeletsoa MacOS, Windows, Linux le BSD, li sebelisa algorithm ea LRU (e sa tsoa sebelisoa) ho kenya tšebetsong cache ea leqephe. Ena ke algorithm ea khale e sutumelletsang "cache" block "kaholimo ho queue" ka mor'a hore e 'ngoe le e' ngoe e bale le ho sutumelletsa li-blocks "ka tlase ho queue" ha ho hlokahala ho kenya liphoso tse ncha tsa "cache" (li-blocks tse neng li lokela ho baloa ho tsoa ho disk ho fapana le. from the cache) ho ea holimo.

Hangata algorithm e sebetsa hantle, empa lits'ebetsong tse nang le li-data tse kholo tse sebetsang, LRU e lebisa habonolo ho senya-ho leleka li-blocks tse hlokahalang khafetsa ho etsa sebaka sa li-blocks tse ke keng tsa hlola li baloa ho tsoa ho cache hape.

ARC ke algorithm e fokolang haholo e ka nkoang e le "boima" ba polokelo. Nako le nako ha "cached block" e baloa, e ba boima le ho feta ho leleka - mme le kamora hore block e lelekoe. lateloa ka nako e itseng. Sebaka se seng se lelekiloe empa se hloka ho baloa ka har'a cache le sona se tla ba boima le ho feta.

Sephetho sa ho qetela sa tsena tsohle ke cache e nang le tekanyo e phahameng haholo ea ho otla-karo-karolelano pakeng tsa li-cache hits (e balang ho tsoa ho cache) le ho fosa (e bala ho tloha disk). Ena ke lipalo-palo tsa bohlokoa haholo - ha se feela hore li-cache li otla ka botsona ka litaelo tsa boholo bo potlakileng, liphoso tsa cache le tsona li ka sebetsoa kapele, kaha li-cache li otla haholo, likopo tse fokolang tsa nako e le 'ngoe tsa disk le ho theola latency bakeng sa tse setseng. e tlameha ho sebetsoa ka disk.

fihlela qeto e

Kaha joale re se re akarelitse li-semantics tsa ZFS-kamoo ho ngola-ho ngola ho sebetsang joang, hammoho le likamano lipakeng tsa matamo a polokelo, lisebelisoa tsa sebele, li-block, likarolo le lifaele-re ikemiselitse ho buisana le ts'ebetso ea lefats'e ea nnete. linomoro tsa sebele.

Karolong e latelang, re tla sheba ts'ebetso ea 'nete ea matamo a seiponeng a vdev le RAIDz, ha a bapisoa, hape a bapisoa le li-topology tsa setso tsa Linux kernel RAID tseo re li hlahlobileng. pejana.

Qalong re ne re batla ho bua ka metheo feela - li-topology tsa ZFS ka botsona - empa kamora moo joalo ka Re tla be re itokiselitse ho bua ka tlhophiso le tokiso e tsoetseng pele ea ZFS, ho kenyelletsa le ts'ebeliso ea mefuta e thusang ea vdev joalo ka L2ARC, SLOG le Kabo e Khethehileng.

Source: www.habr.com

Eketsa ka tlhaloso