{"id":83582,"date":"2020-06-01T19:42:21","date_gmt":"2020-06-01T17:42:21","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/osnovy-zfs-sistema-hraneniya-i-proizvoditelnost"},"modified":"2020-06-01T19:42:21","modified_gmt":"2020-06-01T17:42:21","slug":"osnovy-zfs-sistema-hraneniya-i-proizvoditelnost","status":"publish","type":"post","link":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/osnovy-zfs-sistema-hraneniya-i-proizvoditelnost","title":{"rendered":"ZFS p\u00f5hialused: salvestuss\u00fcsteem ja j\u00f5udlus","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"ZFS p\u00f5hialused: salvestuss\u00fcsteem ja j\u00f5udlus\" src=\"\/wp-content\/uploads\/2020\/06\/70d75786f36a92a0407107fb79bee721.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSel kevadel oleme juba arutanud mitmeid algteemasid, nagu n\u00e4iteks <noindex><a rel=\"nofollow\" href=\"https:\/\/arstechnica.com\/gadgets\/2020\/02\/how-fast-are-your-disks-find-out-the-open-source-way-with-fio\/\">kuidas kontrollida oma k\u00f5vakettaste kiirus<\/a><\/noindex> ja <noindex><a rel=\"nofollow\" href=\"https:\/\/arstechnica.com\/information-technology\/2020\/04\/understanding-raid-how-performance-scales-from-one-disk-to-eight\/\">mis on RAID<\/a><\/noindex>. Teises osas lubasime j\u00e4tkata arutelusid ZFS erinevate mitme ketta topoloogiate j\u00f5udluse \u00fcle. See on j\u00e4rgmise p\u00f5lvkonna failis\u00fcsteem, mida rakendatakse praegu igal pool: alates <noindex><a rel=\"nofollow\" href=\"https:\/\/arstechnica.com\/gadgets\/2016\/06\/a-zfs-developers-analysis-of-the-good-and-bad-in-apples-new-apfs-file-system\/\">Apple<\/a><\/noindex> kuni <noindex><a rel=\"nofollow\" href=\"https:\/\/arstechnica.com\/information-technology\/2020\/05\/ubuntu-20-04-welcome-to-the-future-linux-lts-disciples\/\">Ubuntu<\/a><\/noindex>.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nNoh, t\u00e4na on meeste ja naiste \u00f5ige p\u00e4ev ZFS-iga tutvumiseks, uudishimu tekitavad lugejad. Lihtsalt teadke, et OpenZFS arendaja Matt Ahrens'i tagasihoidlikul hinnangul \"see on t\u00f5eliselt keeruline\".<\/p>\n<p>Enne kui j\u00f5uame numbriteni - ja need tulevad, luban - k\u00f5ikide ZFS kaheksa ketta konfigureerimise v\u00f5imaluste osas, peame r\u00e4\u00e4kima sellest, <i>kuidas<\/i> ZFS \u00fcldiselt andmeid kettal salvestab.<\/p>\n<h1>Zpool, vdev ja seade<\/h1>\n<p>\n<img decoding=\"async\" alt=\"ZFS p\u00f5hialused: salvestuss\u00fcsteem ja j\u00f5udlus\" src=\"\/wp-content\/uploads\/2020\/06\/d881cb44e935480a6f2c30795d6afaf1.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>See diagramm igavik t\u00e4ielik bassein h\u00f5lmab kolme abivahendit vdev&#8217;ist, \u00fcks igast klassist, ja nelja RAIDz2 jaoks.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"ZFS p\u00f5hialused: salvestuss\u00fcsteem ja j\u00f5udlus\" src=\"\/wp-content\/uploads\/2020\/06\/fa52fcf700cc72105a90e4ddc4724d9a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Tavaliselt pole p\u00f5hjust luua kogumit erinevat t\u00fc\u00fcpi ja suurusega vdevidest - kuid kui soovite, ei takista teid see kindlasti.<\/i><\/p>\n<p>ZFS failis\u00fcsteemi t\u00f5eliseks m\u00f5istmiseks tuleb t\u00e4helepanelikult vaadata selle tegelikku struktuuri. Esiteks \u00fchendab ZFS traditsioonilise mahuhalduse ja failis\u00fcsteemide tasemed. Teiseks kasutab see kirjutamise ajal koopia loomise tehingu mehhanismi. Need omadused t\u00e4hendavad, et s\u00fcsteem on struktuuri poolest v\u00e4ga erinev tavalistest failis\u00fcsteemidest ja RAID-massiividest. Esimene m\u00f5istmise p\u00f5hielement on salvestuspank (zpool), virtuaalne seade (vdev) ja reaalne seade (device).<\/p>\n<h3>zpool<\/h3>\n<p>\nSalvestuspank zpool on ZFS k\u00f5ige \u00fclemine struktuur. Iga pank sisaldab \u00fchte v\u00f5i mitut virtuaalset seadet. Omakorda sisaldab iga\u00fcks neist \u00fchte v\u00f5i mitut reaalset seadet (device). Virtuaalsed pangad on iseseisvad plokid. \u00dcks f\u00fc\u00fcsiline arvuti v\u00f5ib sisaldada kahte v\u00f5i enamat eraldi panka, kuid iga\u00fchel on t\u00e4ielik s\u00f5ltumatus teistest. Pangad ei saa jagada virtuaalseid seadmeid.<\/p>\n<p>ZFS-i \u00fclekandmine toimub virtuaalsete seadmete tasandil, mitte reservuaaride tasandil. Reservuaaride tasandil ei ole mingit \u00fclekands\u00fcsteemi - kui m\u00f5ni vdev v\u00f5i erivdev kaob, kaob koos sellega kogu reservuaar.<\/p>\n<p>Kaasaegsed salvestusreservuaarid suudavad taluda virtuaalse seadme vahem\u00e4lu v\u00f5i \u017eurnali kaotust - kuigi nad v\u00f5ivad kaotada v\u00e4ikese hulga rikutud andmeid, kui nad kaotavad vdevi \u017eurnali voolukatkestuse v\u00f5i s\u00fcsteemi rikke ajal.<\/p>\n<p>On levinud v\u00e4\u00e4rarusaam, et ZFS-i \"andmeriidud\" (stripe'id) salvestatakse kogu reservuaari ulatuses. See ei ole t\u00f5si. Zpool ei ole sugugi naljakas RAID0, vaid pigem naljakas <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Non-RAID_drive_architectures#JBOD\">JBOD<\/a><\/noindex> keerulise ja muutuva jaotamismechanismiga.<\/p>\n<p>Peamiselt jaotatakse salvestused saadavalolevate virtuaalsete seadmete vahel olemasoleva vaba ruumi alusel, nii et seeoretiseeritult t\u00e4idavad need k\u00f5ik korraga. Uuemates ZFS versioonides arvestatakse praegust kasutust (utiliseerimist) vdev'i puhul \u2014 kui \u00fcks virtuaalne seade on oluliselt koormatum kui teine (n\u00e4iteks lugemise koormuse t\u00f5ttu), j\u00e4etakse selle kirjutamiseks vahepeal k\u00f5rvale, hoolimata k\u00f5rgeimast vabade ruumide osakaalust.<\/p>\n<p>Utiliseerimise m\u00e4\u00e4ramise mehhanism, mis on integreeritud kaasaegsetesse ZFS salvestusmeetoditesse, v\u00f5ib v\u00e4hendada viivitust ja suurendada l\u00e4bilaskev\u00f5imet ebatavaliselt k\u00f5rgete koormuste perioodidel \u2014 kuid see ei <i>blankett<\/i> kui juhuslik segu aeglastest HDD-dest ja kiiretest SSD-dest \u00fches soos. Selline eba\u00fchtlane soe t\u00f6\u00f6tab siiski aeglaseima seadme kiirusel, nagu oleks see t\u00e4ielikult koos sellistest seadmetest.<\/p>\n<h3>vdev<\/h3>\n<p>\nIga salvestuspools koosneb \u00fchest v\u00f5i mitmest virtuaalsest seadmest (virtual device, vdev). Iga vdev omakorda sisaldab \u00fchte v\u00f5i mitut f\u00fc\u00fcsilist seadet. Enamik virtuaalseid seadmeid kasutatakse andmete lihtsaks salvestamiseks, kuid on olemas ka mitmeid abiklasse vdev, sealhulgas CACHE, LOG ja SPECIAL. Igal neist vdev-i t\u00fc\u00fcpide puhul v\u00f5ib olla \u00fcks viiest topoloogiast: \u00fches seadmest (single-device), RAIDz1, RAIDz2, RAIDz3 v\u00f5i peegel (mirror).<\/p>\n<p>RAIDz1, RAIDz2 ja RAIDz3 on erilised variandid, mida vanad inimesed nimetasid RAID kahekordseks (diagonaalseks) pariteediks. 1, 2 ja 3 viitavad sellele, kui palju pariteediblokeerimist on eraldatud iga andmevoo jaoks. Selle asemel, et kasutada eraldi kettaid pariteedi tagamiseks, jaotavad RAIDz virtuaalsed seadmed selle pariteedi \u00fchtlaselt diskide vahel. RAIDz-massiiv v\u00f5ib kaotada sama arvu kettaid, kui tal on pariteediblokeerimisi; kui see kaotab veel \u00fche, siis see lakkab t\u00f6\u00f6tamast ja viib kaasa salvestuspooli.<\/p>\n<p>Peegeldavad virtuaalsed seadmed (mirror vdev) salvestavad iga ploki igas seadmes vdev'is. Kuigi k\u00f5ige levinumad on topeltpeeglid (two-wide), v\u00f5ib peeglis olla meelevaldne arv seadmeid \u2014 suuremates seadmetes kasutatakse sageli kolmikuid lugemisv\u00f5imekuse ja t\u00f5rke taluvuse parandamiseks. Vdev peegel suudab \u00fcle elada mis tahes t\u00f5rke, kui vdev'is t\u00f6\u00f6tab v\u00e4hemalt \u00fcks seade.<\/p>\n<p>\u00dcksikud vdev'id on oma olemuselt ohtlikud. Selline virtuaalne seade ei talleta t\u00f5rget \u2014 ja kui seda kasutatakse salvestusena v\u00f5i spetsiaalse vdev'ina, toob selle t\u00f5rge kaasa kogu basseini h\u00e4vimise. Olge siin v\u00e4ga ettevaatlik.<\/p>\n<p>Virtuaalsed seadmed CACHE, LOG ja SPECIAL v\u00f5ivad olla loodud mis tahes eespool mainitud topoloogiate p\u00f5hjal \u2014 kuid pidage meeles, et virtuaalse seadme SPECIAL kaotus t\u00e4hendab basseini kadumist, seet\u00f5ttu on soovitatav \u00fcleliigne topoloogia.<\/p>\n<h3>device<\/h3>\n<p>\nT\u00f5en\u00e4oliselt on see ZFS-i kontekstis k\u00f5ige arusaadavam termin \u2013 see viitab tegelikult juhusliku ligip\u00e4\u00e4su blokiseadmestikule. Pea meeles, et virtuaalsed seadmed koosnevad eraldi seadmetest ning bassein koosneb virtuaalsetest seadmetest.<\/p>\n<p>Kettad \u2013 kas magnetilised v\u00f5i SSD-d \u2013 on k\u00f5ige levinumad blokeeringuseadmestikud, mida kasutatakse vdev-i ehitusplokkidena. Kuid sobib iga seade, millel on kirjeldus \/dev-s \u2013 seega v\u00f5ivad eraldi seadmetena kasutada isegi terveid riistvaralisi RAID-massiive.<\/p>\n<p>Lihtne raw-fail on \u00fcks t\u00e4htsamaid alternatiivseid blokeeringuseadmestikke, mille baasil v\u00f5ib vdev-i luua. Testbasseinid, mis on <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Sparse_file\">t\u00fchjad failid<\/a><\/noindex>\u00a0\u2013 on v\u00e4ga mugav viis k\u00e4skude testimiseks ja j\u00e4lgimiseks, kui palju ruumi on basses v\u00f5i antud topoloogias virtuaalses seadmes saadaval.<\/p>\n<p><img decoding=\"async\" alt=\"ZFS p\u00f5hialused: salvestuss\u00fcsteem ja j\u00f5udlus\" src=\"\/wp-content\/uploads\/2020\/06\/d9bea0e4a6842742a7dbac2f9b1ba394.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Sa saad luua testbasseini t\u00fchjadest failidest vaid m\u00f5ne sekundiga \u2013 aga \u00e4ra unusta seej\u00e4rel kogu basseini ja selle komponente kustutada.<\/i> <\/p>\n<p>Oletame, et soovite seadistada serverit kaheksa k\u00f5vakettaga ja kavatsete kasutada 10 TB (~9300 GiB) kettaid \u2014 kuid te ei ole kindel, milline topoloogia vastab k\u00f5ige paremini teie vajadustele. \u00dclaltoodud n\u00e4ites loome m\u00f5ne sekundi jooksul katsepilu hajutatud failideks \u2014 ja n\u00fc\u00fcd teame, et kaheksast 10 TB ketast koosnev RAIDz2 vdev pakub 50 TiB kasulikku mahutavust.<\/p>\n<p>Veel \u00fcks eriline seadmete klass on SPARE (varu). Kuumalt vahetatavad seadmed erinevad tavap\u00e4rastest seadmetest, kuna need kuuluvad kogu pilvele, mitte ainult \u00fchele virtuaalseadmele. Kui m\u00f5ni vdev pilves eba\u00f5nnestub ja reserveeritud seade on pilvega \u00fchendatud ja saadaval, liitub see automaatselt kahjustatud vdev-iga.<\/p>\n<p>P\u00e4rast kahjustatud vdev-iga \u00fchendamist hakkab reserveeritud seade saama koopiaid v\u00f5i \u00fcmber ehitusi andmetest, mis peaksid olema puuduvatel seadmetel. Traditsioonilises RAID-is nimetatakse seda taastamiseks (rebuilding), ZFS-is aga \u201e\u00fclej\u00e4\u00e4gi taastamiseks\u201c (resilvering).<\/p>\n<p>Oluline on m\u00e4rkida, et varuteenused ei asenda riknenud seadmeid igaveseks. Need on vaid ajutised asendused, et v\u00e4hendada vdev-degrdeerimise ajal kadumisaega. Kui administraator asendab riknenud seadme vdev-is, toimub \u00fcleliigsuse taastamine sellele p\u00fcsivale seadmele, SPARE \u00fchendus katkestatakse vdev-ist ja naaseb varuna kogu basseini jaoks.<\/p>\n<h1>Andmekogud, blokk ja sektorid<\/h1>\n<p>\nJ\u00e4rgmine ehitusplokkide kogum, mida on vajalik meie ZFS-i teekonna jooksul m\u00f5ista, ei puuduta niiv\u00f5rd riistvara, vaid seda, kuidas andmed on organiseeritud ja salvestatud. Me j\u00e4tame siit vahele m\u00f5ned tasemed, nagu metaslab, et mitte detailidega \u00fcle koormata, s\u00e4ilitades samas \u00fcldise struktuuri m\u00f5istmise.<\/p>\n<h3>Andmekogud (dataset)<\/h3>\n<p>\n<img decoding=\"async\" alt=\"ZFS p\u00f5hialused: salvestuss\u00fcsteem ja j\u00f5udlus\" src=\"\/wp-content\/uploads\/2020\/06\/6a4dc218bd1c57989739d5072f13804c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Kui loome andmekogu esmakordselt, n\u00e4itab see kogu basseini saadaval olevat ruumi. Siis seadistame kvoodi ja muudame mount-punkti. V\u00f5lu!<\/i> <\/p>\n<p><img decoding=\"async\" alt=\"ZFS p\u00f5hialused: salvestuss\u00fcsteem ja j\u00f5udlus\" src=\"\/wp-content\/uploads\/2020\/06\/aeb6763d6e78e3cc7ee8b1d39ee98b46.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Zvol on suuresti lihtsalt andmekogu, millel puudub oma failis\u00fcsteemi kiht, mida asendame siin t\u00e4iesti normaalse failis\u00fcsteemiga ext4.<\/i> <\/p>\n<p>ZFSi andmekogum sarnaneb standardse monteeritud failis\u00fcsteemiga. Nagu tavaline failis\u00fcsteem, n\u00e4ib see esmapilgul \"lihtsalt veel \u00fche kausta\". Kuid nagu tavalistel monteeritud failis\u00fcsteemidel, on igal ZFSi andmekogumil oma p\u00f5hiv\u00e4\u00e4rtuste kogum.<\/p>\n<p>Esiteks v\u00f5ib andmekogumile olla m\u00e4\u00e4ratud kvoot. Kui seadistada <code>zfs set quota=100G poolname\/datasetname<\/code>, siis ei saa te monteeritud kausta <code>\/poolname\/datasetname<\/code> kirjutada rohkem kui 100 GiB.<\/p>\n<p>Kas olete m\u00e4rganud, et iga rea alguses on olemas - ja puuduvad - kaldkriipsud? Igal andmekogumil on oma koht nii ZFSi hierarhias kui ka s\u00fcsteemi monteerimise hierarhias. ZFSi hierarhias ei ole algset kaldkriipsu - alustate puu nimest ja seej\u00e4rel tee j\u00e4rgmisest andmekogumist j\u00e4rgmisse. N\u00e4iteks, <code>pool\/vanem\/laps<\/code> andmekogumi nimega <code>laps<\/code> vanema andmekogumi <code>vanem<\/code> loomingulise nimega <code>pool<\/code>.<\/p>\n<p>Vaikimisi on andmekogumi monteerimispunkt v\u00f5rreldav selle nimega ZFSi hierarhias, algse kaldkriipsuga - puu nimega <code>pool<\/code> monteeritakse kui <code>\/pool<\/code>, andmekogum <code>vanem<\/code> monteeritakse <code>\/pool\/parent<\/code>, ja alandmikuna andmekogum <code>laps<\/code> monteeritakse <code>\/pool\/parent\/child<\/code>. Siiski saab s\u00fcsteemi andmestiku mount-punkti muuta.<\/p>\n<p>Kui m\u00e4\u00e4rame <code>zfs set mountpoint=\/lol pool\/parent\/child<\/code>, siis andmestik <code>pool\/vanem\/laps<\/code> mountitakse s\u00fcsteemi kui <code>\/lol<\/code>.<\/p>\n<p>Lisaks andmestikele peame mainima ka mahtu (zvols). Maht on ligikaudu sarnane andmestikule, v\u00e4lja arvatud see, et tal ei ole tegelikult failis\u00fcsteemi \u2014 see on lihtsalt plokkseade. N\u00e4iteks v\u00f5ite luua <code>zvol<\/code> nimega <code>mypool\/myzvol<\/code>, seej\u00e4rel vormindada selle failis\u00fcsteemiga ext4 ja seej\u00e4rel mountida selle failis\u00fcsteemi \u2014 n\u00fc\u00fcd on teil ext4 failis\u00fcsteem, kuid ZFS-i terviklikkuse funktsioonidega! See v\u00f5ib tunduda rumal \u00fche arvuti puhul, kuid on palju m\u00f5istlikum iSCSI seadme eksportimise tagasiside osana.<\/p>\n<h3>Plokid<\/h3>\n<p>\n<img decoding=\"async\" alt=\"ZFS p\u00f5hialused: salvestuss\u00fcsteem ja j\u00f5udlus\" src=\"\/wp-content\/uploads\/2020\/06\/ce96416cd2fa08ff615f13ccec72e838.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Fail esindab \u00fchte v\u00f5i mitut plokki. Iga plokk salvestatakse \u00fchel virtuaalsel seadmel. Ploki suurus on tavaliselt seadistuse <b>recordsize<\/b>, kuid v\u00f5ib olla v\u00e4hendatud <b>2^ashift<\/b>, kui see sisaldab metaandmeid v\u00f5i v\u00e4ikest faili.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"ZFS p\u00f5hialused: salvestuss\u00fcsteem ja j\u00f5udlus\" src=\"\/wp-content\/uploads\/2020\/06\/f31c25e34af12a9a96b60a46c2924053.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Me t\u00f5esti, <b>t\u00f5esti<\/b> ei nalja tohutu j\u00f5udluse kaotuse osas, kui seadistate liiga v\u00e4ikese ashift'i<\/i><\/p>\n<p>ZFS-i kontekstis salvestatakse k\u00f5ik andmed, sealhulgas metainformatsioon, plokkides. Iga andmehulgaga seotud ploki maksimaalne suurus m\u00e4\u00e4ratakse atributi kaudu <code>recordsize<\/code> (sisalduse suurus). Andme\u00fcksuse suurus v\u00f5ib varieeruda, kuid see ei muuda juba salvestatud plokkide suurust ega asukohta \u2014 see kehtib ainult uute plokkide jaoks nende salvestamisel.<\/p>\n<p>Kui ei ole m\u00e4\u00e4ratud teisiti, on vaikimisi andmesalvestuse suurus 128 KiB. See on omamoodi keeruline kompromiss, kus j\u00f5udlus on enamasti k\u00fcllaltki hea, kuid mitte ideaalne. <code>Sisalduse suurus<\/code> v\u00f5ib seada vahemikku 4K kuni 1M (t\u00e4iendavate seadistustega <code>recordsize<\/code> v\u00f5ib seadistada isegi suuremaks, kuid see ei ole sageli hea idee).<\/p>\n<p>Iga plokk viitab ainult \u00fche faili andmetele \u2014 teist faili ei saa sama plokki mahutada. Iga fail koosneb \u00fchest v\u00f5i mitmest plokist, olenevalt suurusest. Kui faili suurus on v\u00e4iksem kui andmesalvestuse suurus, salvestatakse see v\u00e4iksemas plokis \u2014 n\u00e4iteks 2 KiB faili sisaldav plokk v\u00f5tab kettal \u00e4ra vaid \u00fche 4 KiB sektori.<\/p>\n<p>Kui fail on piisavalt suur ja vajab mitut plokki, siis k\u00f5ik selle failiga seotud kirjed on suurusega <code>recordsize<\/code>\u00a0\u2014 sealhulgas viimane rekord, mille peamine osa v\u00f5ib olla <noindex><a rel=\"nofollow\" href=\"https:\/\/whatis.techtarget.com\/definition\/slack-space-file-slack-space\">kasutamata ruum<\/a><\/noindex>.<\/p>\n<p>Zvol volumentidel ei ole omadust <code>recordsize<\/code>\u00a0\u2014 selle asemel on neil v\u00f5rdne omadus <code>volblocksize<\/code>.<\/p>\n<h3>Sektsioonid<\/h3>\n<p>\nViimane ja k\u00f5ige elementaarsem ehitusplokk on sektsioon. See on v\u00e4ikseim f\u00fc\u00fcsiline \u00fchik, mida saab salvestada v\u00f5i lugeda algsest seadmest. Aastak\u00fcmnete jooksul on enamik diskidest kasutanud 512-baidiseid sektsioone. Viimasel ajal on enamik diskidest seadistatud 4 KiB sektsioonide peale, samas kui m\u00f5ned \u2014 eriti SSD-d \u2014 kasutavad sektsioone, mis on 8 KiB v\u00f5i isegi rohkem.<\/p>\n<p>ZFS s\u00fcsteemis on omadus, mis v\u00f5imaldab manuaalselt seadistada sektsiooni suuruse. See omadus <code>ashift<\/code>. Veidi segane on see, et ashift on kahe astme. N\u00e4iteks, <code>ashift=9<\/code> t\u00e4hendab sektsiooni suurust 2^9 ehk 512 bahti.<\/p>\n<p>ZFS k\u00fcsib operatsioonis\u00fcsteemilt igasugust teavet iga plokiseadmest, kui see lisatakse uut t\u00fc\u00fcpi vdev-ile, ning teoreetiliselt seab see automaatselt ashifti \u00f5igeks, tuginedes sellele teabele. Kahjuks valevad paljud kettad oma sektorite suuruses, et s\u00e4ilitada \u00fchilduvus Windows XP-ga (mis ei suutnud m\u00f5ista kettaid, millel on erinevad sektorite suurused).<\/p>\n<p>See t\u00e4hendab, et ZFS administraator peab kindlasti teadma oma seadmete tegelikku sektorite suurust ja seadma selle k\u00e4sitsi <code>ashift<\/code>. Kui ashift on seatud liiga v\u00e4ikeseks, siis suureneb lugemise\/kirjutamise operatsioonide arv astronoomiliselt. N\u00e4iteks 512-aatomiliste \"sektorite\" kirjutamine tegelikku 4 KiB-sektorisse t\u00e4hendab, et tuleb kirjutada esimene \"sektor\", seej\u00e4rel lugeda 4 KiB sektorit, muuta seda teise 512-aatomilise \"sektoriga\", kirjutada see tagasi uude 4 KiB sektorisse ja nii edasi iga kirjutise jaoks.<\/p>\n<p>Tegelikus maailmas tabab selline trahv Samsung EVO tahkiskettaid, mille puhul peaks kehtima <code>ashift=13<\/code>, kuid need SSD-d valetavad oma sektorite suuruse kohta, seet\u00f5ttu on see vaikimisi seatud <code>ashift=9<\/code>. Kui kogenud s\u00fcsteemiadministraator seda parameetrit ei muuda, t\u00f6\u00f6tab see SSD <i>aeglasemalt<\/i> tavalise magnetse HDD-ga.<\/p>\n<p>V\u00f5rdluseks, liiga suure suuruse eest <code>ashift<\/code> praktiliselt ei tule mingeid karistusi. Tegelikku j\u00f5udluse langust ei esine ja kasutamata ruumi suurenemine on \u00e4\u00e4rmiselt v\u00e4ike (v\u00f5i null, kui on sisse l\u00fclitatud tihendamine). Seet\u00f5ttu soovitame tungivalt isegi neile ketastele, mis t\u00f5eliselt kasutavad 512-baidiseid sektoreid, seadistada <code>ashift=12<\/code> v\u00f5i isegi <code>ashift=13<\/code>, et kindlalt tulevikku vaadata.<\/p>\n<p>Omadus <code>ashift<\/code> seatakse iga virtuaalse seadme vdev jaoks, mitte <i>pala<\/i>, nagu paljud ekslikult arvavad \u2014 ja seda ei muudeta p\u00e4rast seadistamist. Kui te juhuslikult rikkusite <code>ashift<\/code> uue vdev-i lisamisega pala, siis olete j\u00e4\u00e4davalt saastanud selle pala madala j\u00f5udlusega seadmega ja tavaliselt pole teisi v\u00f5imalusi, v\u00e4lja arvatud pale h\u00e4vitamine ja uuesti alustamine. Isegi vdev-i eemaldamine ei p\u00e4\u00e4sta vale seadistuse eest <code>ashift<\/code>!<\/p>\n<h3>Kirjutamise ajal kopeerimise mehhanism<\/h3>\n<p>\n<img decoding=\"async\" alt=\"ZFS p\u00f5hialused: salvestuss\u00fcsteem ja j\u00f5udlus\" src=\"\/wp-content\/uploads\/2020\/06\/eb222dbcc3de428ff2b1c2c72b145db0.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Kui tavaline failis\u00fcsteem peab andmeid \u00fcle kirjutama \u2014 muudab see iga ploki seal, kus see asub<\/i><\/p>\n<p><img decoding=\"async\" alt=\"ZFS p\u00f5hialused: salvestuss\u00fcsteem ja j\u00f5udlus\" src=\"\/wp-content\/uploads\/2020\/06\/ba2474808b32667902966e4c9e69081a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Failos\u00fcsteem kopeerimise kirjutamisel salvestab uue ploki versiooni ja seej\u00e4rel vabastab vana versiooni.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"ZFS p\u00f5hialused: salvestuss\u00fcsteem ja j\u00f5udlus\" src=\"\/wp-content\/uploads\/2020\/06\/3b00dad44eb588ed793d2d5df7852892.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Abstraktselt \u00f6eldes, kui ignoreerida plokkide tegelikku f\u00fc\u00fcsilist asukohta, lihtsustub meie 'andmete komeet' 'andmete ussiks', mis liigub vasakult paremale saadaval oleva ruumi kaardil.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"ZFS p\u00f5hialused: salvestuss\u00fcsteem ja j\u00f5udlus\" src=\"\/wp-content\/uploads\/2020\/06\/8c2c38dbc8a5e633c466d5c7f230951f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>N\u00fc\u00fcd saame h\u00e4sti aru, kuidas kopeerimise kirjutamise sn\u00e4pp\u0161otid t\u00f6\u00f6tavad \u2014 iga plokk v\u00f5ib kuuluda mitmesse sn\u00e4pp\u0161otti ning p\u00fcsib, kuni k\u00f5ik seotud sn\u00e4pp\u0161otid on h\u00e4vitatud.<\/i><\/p>\n<p>Kopeerimise kirjutamise mehhanism (Copy on Write, CoW) on fundamentaalne alus, mis teeb ZFSi nii uskumatuks s\u00fcsteemiks. Peamine kontseptsioon on lihtne \u2014 kui palute traditsioonilisel failis\u00fcsteemil faili muuta, teeb ta just seda, mida palusite. Kui palute kopeerimise kirjutamise failis\u00fcsteemil sama teha, \u00fctleb ta 'hea k\u00fcll' \u2014 aga valetab teile.<\/p>\n<p>Selle asemel kirjutab failis\u00fcsteem kirjutamise kopeerimisega uue versiooni muudetud blokkist ning seej\u00e4rel uuendab faili metaandmed, et katkestada seos vana blokiga ja siduda see uue blotiga, mille just kirjutasite.<\/p>\n<p>Vana bloki lahti\u00fchendamine ja uue sidumine toimub \u00fche operatsiooni k\u00e4igus, mist\u00f5ttu ei saa seda katkestada \u2014 kui l\u00fclitate toite v\u00e4lja p\u00e4rast seda, kui see on toimunud, on teil uus failiversioon, ja kui l\u00fclitate toite v\u00e4lja enne seda, on teil vana versioon. Igatahes ei teki failis\u00fcsteemis konflikte.<\/p>\n<p>Kirjutamise kopeerimine ZFS-is toimub mitte ainult failis\u00fcsteemi tasandil, vaid ka ketaste haldamise tasandil. See t\u00e4hendab, et ZFS ei ole tundlik kirjutamispuuduste suhtes (<noindex><a rel=\"nofollow\" href=\"http:\/\/www.raid-recovery-guide.com\/raid5-write-hole.aspx\">RAID-i augu<\/a><\/noindex>) \u2014 fenomen, kus riba \u00f5nnestus osaliselt kirjutada enne s\u00fcsteemi t\u00f5rget, kahjustades massiivi p\u00e4rast taask\u00e4ivitamist. Siin kirjutatakse riba aatomaariselt, vdev on alati j\u00e4rjekindel, ja <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Bob%27s_your_uncle\">Bob on sinu onu<\/a><\/noindex>.<\/p>\n<h3>ZIL: ZFS-i kavatsuste ajakiri<\/h3>\n<p>\n<img decoding=\"async\" alt=\"ZFS p\u00f5hialused: salvestuss\u00fcsteem ja j\u00f5udlus\" src=\"\/wp-content\/uploads\/2020\/06\/8d08b7bce60a1e3698fd0ec02494e6fe.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>ZFS s\u00fcsteem t\u00f6\u00f6tleb s\u00fcnkroonne kirjutisi eriliselt \u2013 see salvestab need ajutiselt, kuid kohe ZIL-i, enne kui kirjutab need hiljem p\u00fcsivalt koos as\u00fcnkroonsete kirjutistega.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"ZFS p\u00f5hialused: salvestuss\u00fcsteem ja j\u00f5udlus\" src=\"\/wp-content\/uploads\/2020\/06\/2119ef409a7d8c9599ee63292452d80d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Tavaliselt ei loeta ZIL-is salvestatud andmeid enam kunagi v\u00e4lja. Kuid see on v\u00f5imalik p\u00e4rast s\u00fcsteemi riket.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"ZFS p\u00f5hialused: salvestuss\u00fcsteem ja j\u00f5udlus\" src=\"\/wp-content\/uploads\/2020\/06\/88a62163b0fb9f14a41102821dfabb5f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>SLOG ehk sekundaarne LOG-seade on lihtsalt eriline \u2013 ja eelistatavalt v\u00e4ga kiire \u2013 vdev, kus ZIL-i saab salvestada eraldi peamisest salvestusruumist.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"ZFS p\u00f5hialused: salvestuss\u00fcsteem ja j\u00f5udlus\" src=\"\/wp-content\/uploads\/2020\/06\/819f7c21714adafe226028e95990f1df.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>P\u00e4rast riket loetakse k\u00f5ik m\u00e4\u00e4rdunud andmed ZIL-ist taastatavaks \u2013 antud juhul asub ZIL SLOG-is, nii et need loetakse sealt.<\/i><\/p>\n<p>On olemas kaks peamist kirjutamise operatsiooni kategooriat \u2013 s\u00fcnkroonsed (sync) ja as\u00fcnkroonsed (async). Enamikus t\u00f6\u00f6koormustes on enamus kirjutamistegevusi as\u00fcnkroonsed \u2013 failis\u00fcsteem v\u00f5imaldab neid koguda ja v\u00e4lja anda pakettidena, v\u00e4hendades fragmenteerimist ja oluliselt suurendades l\u00e4bilaskev\u00f5imet.<\/p>\n<p>S\u00fcnkroonsed kirjutised on hoopis midagi muud. Kui rakendus n\u00f5uab s\u00fcnkrooni kirjutamist, \u00fctleb see failis\u00fcsteemile: \u201ePeate selle kohe salvestama energiakindlasse m\u00e4llu. <i>just praegu<\/i>, ja kuni siis ei saa ma midagi muud teha.\u201d Seet\u00f5ttu peavad s\u00fcnkroonsed kirjed koheselt ketta peale salvestuma \u2013 ja kui see suurendab fragmenteerimist v\u00f5i v\u00e4hendab l\u00e4bilaskev\u00f5imet, siis nii peabki olema.<\/p>\n<p>ZFS k\u00e4sitleb s\u00fcnkroone kirjeid teisiti kui tavalised failis\u00fcsteemid \u2013 selle asemel, et need kohe tavalisse salvestusse laadida, salvestab ZFS need spetsiaalsesse salvestuspiirkonda, mida nimetatakse ZFS-i kavatsuste ajaks (ZFS Intent Log, v\u00f5i ZIL). Trikk on selles, et need kirjed <i>ka<\/i> j\u00e4\u00e4vad m\u00e4llu, olles kogutud koos tavaliste as\u00fcnkroonsete kirjutamisotsega, et hiljem salvestada need salvestusse t\u00e4iesti normaalses TXG (tehingugrupid, Transaction Groups) vormis.<\/p>\n<p>Tavaliselt salvestatakse ZIL ja seda ei loeta enam kunagi. Kui p\u00e4rast m\u00f5nda hetke ZIL-st salvestatud kirjed kinnitatakse peamisse salvestusse tavap\u00e4rases TXG-s m\u00e4lust, eraldatakse need ZIL-ist. Ainsad korrad, kui ZIL-ist midagi loetakse, on siis, kui tehakse basseini import.<\/p>\n<p>Kui ZFS-i s\u00fcsteem v\u00f5i toitekatkestus p\u00f5hjustab vea, kui ZIL-is on andmeid, loetakse need andmed j\u00e4rgmise basseini impordi ajal (n\u00e4iteks p\u00e4rast avariilise s\u00fcsteemi taask\u00e4ivitamist). K\u00f5ik, mis on ZIL-is, loetakse, kogutakse TXG gruppidesse, salvestatakse p\u00f5hiahendisse ja seej\u00e4rel eemaldatakse ZIL-ist impordi k\u00e4igus.<\/p>\n<p>\u00dcks vdev-i abikliendi kategooriaid on LOG v\u00f5i SLOG, teisej\u00e4rguline LOG seade. Selle ainus \u00fclesanne on anda basseini eraldi ja, eelistatavalt, palju kiiream vdev, mille kirjutamisvastupidavus on v\u00e4ga k\u00f5rge, ZIL-i salvestamiseks, mitte peahoidlas vdev-s. Isegi kui ZIL k\u00e4itub s\u00f5ltumatult salvestuskohtadest, siis kui LOG-vdev-il on kirjutamise osas v\u00e4ga k\u00f5rge j\u00f5udlus, toimuvad s\u00fcnkroonsed kirjutised kiiremini.<\/p>\n<p>LOG vdev-i lisamine basseini ei <b>saa<\/b> parandada as\u00fcnkroonsete kirjutiste sooritust \u2014 isegi kui sunnite k\u00f5ik kirjutised ZIL-i tegema <code>zfs set sync=always<\/code>, nad siiski on nad endiselt seotud peamise salvestusega TXG samamoodi ja samas tempos nagu ilma p\u00e4evikuta. Ainus otsene j\u00f5udluse parendamine on s\u00fcnkroonselte kirjutuste viivitus (kuna p\u00e4eva suurem kiirus kiirendab toimingute t\u00e4itmist <code>sync<\/code>).<\/p>\n<p>Kuid keskkonnas, kus on juba vaja suurt hulka s\u00fcnkroonseid kirjeid, v\u00f5ib vdev LOG kaudselt kiirendada as\u00fcnkroonset kirjutamist ja vahem\u00e4luta lugemist. ZIL-i kirjeid eraldi vdev LOG-i laadides on v\u00e4hem konkurentsi IOPS-i p\u00e4rast p\u00f5hilises salvestuses, mis t\u00f5stab teatud m\u00e4\u00e4ral k\u00f5igi lugemis- ja kirjutamistoimingute j\u00f5udlust.<\/p>\n<h3>Snaipid<\/h3>\n<p>\nKirjutamisel kopeerimise mehhanism on samuti vajalik alus ZFS-i aatomiliste hetkepiltide ja inkrementaalse as\u00fcnkroonse replikatsiooni jaoks. Aktiivses failis\u00fcsteemis on olemas viidete puu, mis t\u00e4histab k\u00f5iki kirjeid koos praeguste andmetega \u2014 kui teete snaipi, teete lihtsalt koopia sellest viidete puust.<\/p>\n<p>Aktive failis\u00fcsteemi kirje uuendamisel kirjutab ZFS esmalt uue ploki versiooni kasutamata ruumi. Seej\u00e4rel eraldab see vana ploki versiooni praegusest failis\u00fcsteemist. Kuid kui m\u00f5ni snapshot viitab vanale plokile, j\u00e4\u00e4b see siiski muutumatuks. Vana plokk ei muutu tegelikult vabaks ruumiks, kuni k\u00f5ik snapshotid, mis viitavad sellele plokile, on kustutatud!<\/p>\n<h3>Replikatsioon<\/h3>\n<p>\n<img decoding=\"async\" alt=\"ZFS p\u00f5hialused: salvestuss\u00fcsteem ja j\u00f5udlus\" src=\"\/wp-content\/uploads\/2020\/06\/647fe6cc348861b653b004640244cf88.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Minu Steam'i raamatukogu 2015. aastal oli 158 GiB ja sisaldas 126 927 faili. See on \u00fcsna l\u00e4hedal optimaalsele olukorrale rsync'i jaoks \u2014 ZFS replikatsioon v\u00f5rgu kaudu oli \"ainult\" 750% kiiremini.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"ZFS p\u00f5hialused: salvestuss\u00fcsteem ja j\u00f5udlus\" src=\"\/wp-content\/uploads\/2020\/06\/2849be8d2dc5c9f30f23c3bbc20e9022.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Samal v\u00f5rgul on Windows 7 virtuaalse masina pildi \u00fche 40-gigabyte faili replikatsioon t\u00e4iesti erinev lugu. ZFS replikatsioon toimub 289 korda kiiremini kui rsync - v\u00f5i 'vaid' 161 korda kiiremini, kui olete piisavalt vilunud, et k\u00e4ivitada rsync &#8212;inplace.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"ZFS p\u00f5hialused: salvestuss\u00fcsteem ja j\u00f5udlus\" src=\"\/wp-content\/uploads\/2020\/06\/9a57e4faa0eaf0f687ae24b965a1bf81.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Kui virtuaalse masina pilt skaleerub, siis probleemid rsynciga skaleeruvad koos sellega. 1,9 TiB pole t\u00e4nap\u00e4eva virtuaalse masina pildi jaoks nii suur - kuid see on piisavalt suur, et ZFS replikatsioon osutub 1148 korda kiiremini kui rsync, isegi rsync &#8212;inplace argumendiga.<\/i><\/p>\n<p>Kui olete aru saanud, kuidas snapshots t\u00f6\u00f6tavad, on replikatsiooni olemuse m\u00f5istmine lihtne. Kuna snapshot on lihtsalt salvestuste teedepuu, tuleneb sellest, et kui teeme <code>zfs send<\/code> snapshot'i, saatme selle puu ja k\u00f5ik sellega seotud salvestused. Kui edastame selle <code>zfs send<\/code> \u00fches <code>zfs receive<\/code> sihtobjekti, salvestab see nii tegeliku ploki sisu kui ka puu, mis osutab plokkidele, sihtkoha andmekogusse.<\/p>\n<p>Asjad muutuvad veelgi huvitavamaks teises <code>zfs send<\/code>. N\u00fc\u00fcd on meil kaks s\u00fcsteemi, igal neist on <code>poolname\/datasetname@1<\/code>, ja te teete uue snapshot'i <code>poolname\/datasetname@2<\/code>. Seega on algses puus <code>datasetname@1<\/code> ja <code>datasetname@2<\/code>, samas kui sihtpuus on ainult esimene snapshot. <code>datasetname@1<\/code>.<\/p>\n<p>Kuna meil on allika ja sihtkoha vahel \u00fchine snapshot <code>datasetname@1<\/code>, saame luua <i>inkrementaalse<\/i> <code>zfs send<\/code> selle peale. Kui me r\u00e4\u00e4gime s\u00fcsteemist <code>zfs send -i poolname\/datasetname@1 poolname\/datasetname@2<\/code>, see v\u00f5rreldakse kahte n\u00e4idiku puud. K\u00f5ik n\u00e4idikud, mis eksisteerivad ainult <code>@2<\/code>, viitavad selgelt uutele plokkidele \u2014 seega vajame nende plokkide sisu.<\/p>\n<p>Kaugs\u00fcsteemis inkrementaalse t\u00f6\u00f6tlemine <code>send<\/code> on samuti lihtne. Esiteks kirjutame k\u00f5ik uued kirjed, mis on voos <code>send<\/code>, ja seej\u00e4rel lisame viidatud need plokid. Voil\u00e0, meil on <code>@2<\/code> uus s\u00fcsteem!<\/p>\n<p>ZFS as\u00fcnkroonne inkrementaalne replikatsioon on suur edasiminek v\u00f5rreldes varasemate meetoditega, mis ei p\u00f5hine sn\u00e4p\u0161ottidel, n\u00e4iteks rsync. M\u00f5lemal juhul edastatakse ainult muudetud andmed \u2014 kuid rsync peab k\u00f5igepealt <i>lugema<\/i> k\u00f5ik andmed m\u00f5lemast k\u00fcljest kettalt, et kontrollida kokkuv\u00f5tte ja v\u00f5rrelda seda. Erinevalt sellest ei loe ZFS replikatsioon midagi muud kui n\u00e4idiku puid \u2014 ja mis tahes plokke, mis ei ole esitatud \u00fcldises sn\u00e4p\u0161otis.<\/p>\n<h3>Sisseehitatud pakkimine<\/h3>\n<p>\nKopeerimise mehhanism salvestamise ajal lihtsustab ka sisseehitatud t\u00f5hukeskkonna s\u00fcsteemi. Traditsioonilisest failis\u00fcsteemist on tihendamine probleemne \u2014 nii vana kui ka uus muudetud andmete versioon asub samas ruumis.<\/p>\n<p>Kui vaatame andmefraktsiooni faili keskel, mis alustab oma elu megabaidi nullidest alates 0x00000000 ja nii edasi \u2014 on seda v\u00e4ga lihtne tihendada \u00fche ketta sektorini. Kuid mis juhtub, kui asendame selle megabaidi nullid mittetihendatavate andmetega, nagu JPEG v\u00f5i pseudojuhuslik m\u00fcra? \u00dcht\u00e4kki n\u00f5uab see megabait andmeid mitte \u00fchte, vaid 256 sektorit, iga\u00fcks 4 KiB, samas kui sellel kohal kettal on reserveeritud ainult \u00fcks sektor.<\/p>\n<p>ZFS-il pole sellist probleemi, kuna muudetud kirjed kirjutatakse alati kasutamata ruumi \u2014 algne plokk v\u00f5tab ainult \u00fche 4 KiB sektori, samas kui uus kirje v\u00f5tab 256, kuid see pole probleem \u2014 hiljuti muudetud fraktsioon failist 'keskel' kirjutataks alati kasutamata ruumi s\u00f5ltumata selle suuruse muutumisest, seega on see ZFS-i jaoks t\u00e4iesti normaalne olukord.<\/p>\n<p>ZFS-i sisseehitatud tihendamine on vaikimisi v\u00e4lja l\u00fclitatud ning s\u00fcsteem pakub lahtiselt \u00fchendatavaid algoritme \u2014 nende seas on n\u00fc\u00fcd LZ4, gzip (1-9), LZJB ja ZLE.<\/p>\n<ul>\n<li><b>LZ4<\/b> on voolualgoritm, mis pakub \u00e4\u00e4rmiselt kiiret tihendamist ja dekompressiooni ning parendust enamike kasutusjuhtude jaoks \u2014 isegi \u00fcsna aeglastel CPU-del.\n<\/li>\n<li><b>GZIP<\/b> on austatud algoritm, mida tunnevad ja armastavad k\u00f5ik Unix-s\u00fcsteemide kasutajad. Seda saab rakendada tihendustasemetes 1-9, kus tihendustase ja CPU kasutamine suurenevad, kui l\u00e4heneda tasemele 9. Algoritm sobib h\u00e4sti k\u00f5igile tekstilistele (v\u00f5i muudele \u00fclih\u00e4sti tihendatavatele) kasutusviisidele, kuid muidu sageli tekitab probleeme CPU-ga \u2014 kasutage seda ettevaatlikult, eriti k\u00f5rgematel tasemetel.\n<\/li>\n<li><b>LZJB<\/b> on ZFS-i originaalalgoritm. See on vananenud ja seda ei tohiks enam kasutada, LZ4 \u00fcletab selle k\u00f5igis n\u00e4itajates.\n<\/li>\n<li><b>ZLE<\/b> \u2014 nulltaseme kodeering, Zero Level Encoding. See ei m\u00f5juta tavap\u00e4raseid andmeid, kuid tihendab suuri nullide j\u00e4rjestusi. See on kasulik t\u00e4iesti tihendamatute andmekogumite jaoks (nt JPEG, MP4 v\u00f5i teiste juba tihendatud formaatide puhul), kuna see ignoreerib tihendamatuid andmeid, kuid tihendab kasutamata ruumi l\u00f5ppsalvestistes.<\/li>\n<\/ul>\n<p>\nSoovitame LZ4 tihendust praktiliselt k\u00f5igi kasutusv\u00f5imaluste jaoks; performantsi karistus tihendamatute andmete korral on v\u00e4ga v\u00e4ike, samas kui <i>kasv<\/i> tavap\u00e4raste andmete jaoks on see m\u00e4rkimisv\u00e4\u00e4rne. Virtuaalmasina pildi kopeerimine uue Windows operatsioonis\u00fcsteemi installatsiooni jaoks (v\u00e4rskelt installitud OS, sees pole veel andmeid) koos <code>compression=lz4<\/code> toimus 27% kiiremini kui <code>compression=none<\/code>, in <noindex><a rel=\"nofollow\" href=\"https:\/\/jrs-s.net\/2015\/02\/24\/zfs-compression-yes-you-want-this\/\">selles 2015. aasta testis<\/a><\/noindex>.<\/p>\n<h1>ARC \u2014 kohandatud asendusk\u00fchvelduse vahem\u00e4lu<\/h1>\n<p>\nZFS on ainus kaasaegne failis\u00fcsteem, millest me teame, mis kasutab oma lugemise vahem\u00e4lumehhanismi, mitte ei toetunud operatsioonis\u00fcsteemi lehe vahem\u00e4lule, et salvestada hiljuti loetud blokke m\u00e4llu.<\/p>\n<p>Kuigi enda vahem\u00e4lu ei ole probleemideta\u00a0\u2014 ZFS ei saa uusi m\u00e4lukasutuse soove sama kiiresti t\u00f6\u00f6delda kui tuum, mist\u00f5ttu uus kutse <code>malloc()<\/code> m\u00e4luekspressioon v\u00f5ib eba\u00f5nnestuda, kui see vajab hetkel ARC-is h\u00f5ivatud t\u00f6\u00f6m\u00e4lu. Siiski on tungiv vajadus kasutada enda vahem\u00e4lu, v\u00e4hemalt praegu.<\/p>\n<p>K\u00f5ik tuntud kaasaegsed operatsioonis\u00fcsteemid, sealhulgas MacOS, Windows, Linux ja BSD, kasutavad lehek\u00fclgede vahem\u00e4lu rakendamiseks LRU (Least Recently Used) algoritmi. See on primitiivne algoritm, mis t\u00f5stab p\u00e4rast iga lugemist vahem\u00e4lustatud ploki \u201ej\u00e4rjekorras \u00fcles\u201d ja asendab plokke \u201ej\u00e4rjekorras alla\u201d vastavalt vajadusele, et lisada uusi vahem\u00e4lu puudeid (plokid, mida oleks pidanud lugema diskilt, mitte vahem\u00e4lust) k\u00f5rgemasse.<\/p>\n<p>Tavaliselt t\u00f6\u00f6tab algoritm korralikult, kuid suurte andmekogumite s\u00fcsteemides toob LRU kergesti kaasa thrashing'i \u2014 sageli vajalike plokkide asendamine, et vabastada ruumi plokkidele, mida enam vahem\u00e4lust ei loeta.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Adaptive_replacement_cache\">ARC<\/a><\/noindex>\u00a0\u2014 tunduvalt v\u00e4hem naiivne algoritm, mida saab vaadelda kui 'kaalutud' vahem\u00e4lu. P\u00e4rast iga vahem\u00e4lublooki lugemist muutub see veidi 'raskemaks' ja on raskem k\u00f5rvaldada \u2014 isegi p\u00e4rast k\u00f5rvaldamist muutub plokk <i>j\u00e4lgitud<\/i> teatud aja jooksul. Plokk, mis on k\u00f5rvaldada, kuid peab seej\u00e4rel uuesti vahem\u00e4llu lugema, muutub samuti 'raskemaks'.<\/p>\n<p>K\u00f5ikide nende tulemusena on vahem\u00e4lu palju suurema tabamussuhtega (hit ratio) \u2014 suhe vahem\u00e4lu tabamiste (lugemine, mis toimub vahem\u00e4lust) ja vahelej\u00e4tmiste (lugemine kettalt). See on \u00e4\u00e4rmiselt oluline statistika \u2014 mitte ainult, et vahem\u00e4lu tabamised teenindatakse j\u00e4rsult kiiremini, vaid ka vahelej\u00e4tmised v\u00f5ivad saada kiiremini teenindatud, kuna mida rohkem vahem\u00e4lu tabamisi \u2014 seda v\u00e4hem on paralleelseid p\u00e4ringuid kettale ja seda v\u00e4iksem on viivitus nende j\u00e4\u00e4kide vahelej\u00e4tmiste jaoks, mis tuleb teenindada kettalt.<\/p>\n<h1>Kokkuv\u00f5te<\/h1>\n<p>\nP\u00e4rast ZFS p\u00f5hisemantika uurimist \u2014 kuidas toimub kirjutamise k\u00e4igus kopeerimine ning suhetest salvestuspaikade, virtuaalsete seadmete, plokkide, sektorite ja failidega \u2014 oleme valmis arutama tegelikku j\u00f5udlust ja reaalseid numbreid.<\/p>\n<p>J\u00e4rgmisest osast vaatame, kuidas toimivad peegeldava vdev ja RAIDz salvestuspaigad \u00fcksteisega v\u00f5rreldes, samuti v\u00f5rreldes traditsiooniliste Linuxi RAID-topoloogiatega, mida me oleme uurinud. <noindex><a rel=\"nofollow\" href=\"https:\/\/arstechnica.com\/information-technology\/2020\/04\/understanding-raid-how-performance-scales-from-one-disk-to-eight\/\">oleme teada saanud<\/a><\/noindex>.<\/p>\n<p>Alguses soovisime arutada ainult p\u00f5hit\u00f5desid \u2014 ZFS enda topoloogiaid \u2014 kuid p\u00e4rast <i>sellist<\/i> oleme valmis r\u00e4\u00e4kima edasise ZFS seadistamise ja h\u00e4\u00e4lestamise \u00fcle, sealhulgas abiseadmete vdev-t\u00fc\u00fcpide kasutamisest, nagu L2ARC, SLOG ja Special Allocation.<br \/>\n<br \/>Allikas: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/504692\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u042d\u0442\u043e\u0439 \u0432\u0435\u0441\u043d\u043e\u0439 \u043c\u044b \u0443\u0436\u0435 \u043e\u0431\u0441\u0443\u0434\u0438\u043b\u0438 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u0432\u043e\u0434\u043d\u044b\u0435 \u0442\u0435\u043c\u044b, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u0430\u043a \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0432\u0430\u0448\u0438\u0445 \u0434\u0438\u0441\u043a\u043e\u0432 \u0438 \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 RAID. \u0412\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u0438\u0437 \u043d\u0438\u0445 \u043c\u044b \u0434\u0430\u0436\u0435 \u043f\u043e\u043e\u0431\u0435\u0449\u0430\u043b\u0438 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043c\u043d\u043e\u0433\u043e\u0434\u0438\u0441\u043a\u043e\u0432\u044b\u0445 \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u0439 \u0432 ZFS. \u042d\u0442\u043e \u0444\u0430\u0439\u043b\u043e\u0432\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u043f\u043e\u043a\u043e\u043b\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u0435\u0439\u0447\u0430\u0441 \u0432\u043d\u0435\u0434\u0440\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0432\u0441\u044e\u0434\u0443: \u043e\u0442 Apple \u0434\u043e Ubuntu. \u041d\u0443 \u0447\u0442\u043e \u0436, \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u0441\u0430\u043c\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0434\u0435\u043d\u044c \u0434\u043b\u044f \u0437\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u0430 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":83583,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-83582","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u042d\u0442\u043e\u0439 \u0432\u0435\u0441\u043d\u043e\u0439 \u043c\u044b \u0443\u0436\u0435 \u043e\u0431\u0441\u0443\u0434\u0438\u043b\u0438 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u0432\u043e\u0434\u043d\u044b\u0435 \u0442\u0435\u043c\u044b, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u0430\u043a \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0432\u0430\u0448\u0438\u0445 \u0434\u0438\u0441\u043a\u043e\u0432 \u0438 \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 RAID. \u0412\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u0438\u0437 \u043d\u0438\u0445 \u043c\u044b \u0434\u0430\u0436\u0435 \u043f\u043e\u043e\u0431\u0435\u0449\u0430\u043b\u0438 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043c\u043d\u043e\u0433\u043e\u0434\u0438\u0441\u043a\u043e\u0432\u044b\u0445 \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u0439 \u0432 ZFS. \u042d\u0442\u043e \u0444\u0430\u0439\u043b\u043e\u0432\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u043f\u043e\u043a\u043e\u043b\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u0435\u0439\u0447\u0430\u0441 \u0432\u043d\u0435\u0434\u0440\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0432\u0441\u044e\u0434\u0443: \u043e\u0442 Apple \u0434\u043e Ubuntu. \u041d\u0443 \u0447\u0442\u043e \u0436, \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u0441\u0430\u043c\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0434\u0435\u043d\u044c \u0434\u043b\u044f \u0437\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u0430\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/osnovy-zfs-sistema-hraneniya-i-proizvoditelnost\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041e\u0441\u043d\u043e\u0432\u044b ZFS: \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u042d\u0442\u043e\u0439 \u0432\u0435\u0441\u043d\u043e\u0439 \u043c\u044b \u0443\u0436\u0435 \u043e\u0431\u0441\u0443\u0434\u0438\u043b\u0438 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u0432\u043e\u0434\u043d\u044b\u0435 \u0442\u0435\u043c\u044b, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u0430\u043a \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0432\u0430\u0448\u0438\u0445 \u0434\u0438\u0441\u043a\u043e\u0432 \u0438 \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 RAID. \u0412\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u0438\u0437 \u043d\u0438\u0445 \u043c\u044b \u0434\u0430\u0436\u0435 \u043f\u043e\u043e\u0431\u0435\u0449\u0430\u043b\u0438 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043c\u043d\u043e\u0433\u043e\u0434\u0438\u0441\u043a\u043e\u0432\u044b\u0445 \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u0439 \u0432 ZFS. \u042d\u0442\u043e \u0444\u0430\u0439\u043b\u043e\u0432\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u043f\u043e\u043a\u043e\u043b\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u0435\u0439\u0447\u0430\u0441 \u0432\u043d\u0435\u0434\u0440\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0432\u0441\u044e\u0434\u0443: \u043e\u0442 Apple \u0434\u043e Ubuntu. \u041d\u0443 \u0447\u0442\u043e \u0436, \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u0441\u0430\u043c\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0434\u0435\u043d\u044c \u0434\u043b\u044f \u0437\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u0430\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/osnovy-zfs-sistema-hraneniya-i-proizvoditelnost\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-06-01T17:42:21+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-06-01T17:42:21+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47ZFS p\u00f5hialused: salvestuss\u00fcsteem ja j\u00f5udlus | ProHoster","description":"Sel springil arutasime juba m\u00f5ningaid p\u00f5him\u00f5tteid, n\u00e4iteks kuidas kontrollida oma kettaste kiirus ja mis on RAID. Teises teemasse lubasime j\u00e4tkata mitme ketta topoloogiate j\u00f5udluse uurimist ZFS-is. See on j\u00e4rgmise p\u00f5lvkonna failis\u00fcsteem, mis on n\u00fc\u00fcdseks levinud igal pool: Apple'ist kuni Ubuntu-ni. Noh, t\u00e4na on k\u00f5ige \u00f5igem p\u00e4ev selle s\u00fcsteemiga tutvumiseks.","canonical_url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/osnovy-zfs-sistema-hraneniya-i-proizvoditelnost","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041e\u0441\u043d\u043e\u0432\u044b ZFS: \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c | ProHoster","og:description":"\u042d\u0442\u043e\u0439 \u0432\u0435\u0441\u043d\u043e\u0439 \u043c\u044b \u0443\u0436\u0435 \u043e\u0431\u0441\u0443\u0434\u0438\u043b\u0438 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u0432\u043e\u0434\u043d\u044b\u0435 \u0442\u0435\u043c\u044b, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u0430\u043a \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0432\u0430\u0448\u0438\u0445 \u0434\u0438\u0441\u043a\u043e\u0432 \u0438 \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 RAID. \u0412\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u0438\u0437 \u043d\u0438\u0445 \u043c\u044b \u0434\u0430\u0436\u0435 \u043f\u043e\u043e\u0431\u0435\u0449\u0430\u043b\u0438 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043c\u043d\u043e\u0433\u043e\u0434\u0438\u0441\u043a\u043e\u0432\u044b\u0445 \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u0439 \u0432 ZFS. \u042d\u0442\u043e \u0444\u0430\u0439\u043b\u043e\u0432\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u043f\u043e\u043a\u043e\u043b\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u0435\u0439\u0447\u0430\u0441 \u0432\u043d\u0435\u0434\u0440\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0432\u0441\u044e\u0434\u0443: \u043e\u0442 Apple \u0434\u043e Ubuntu. \u041d\u0443 \u0447\u0442\u043e \u0436, \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u0441\u0430\u043c\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0434\u0435\u043d\u044c \u0434\u043b\u044f \u0437\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u0430","og:url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/osnovy-zfs-sistema-hraneniya-i-proizvoditelnost","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-06-01T17:42:21+00:00","article:modified_time":"2020-06-01T17:42:21+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"83582","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 15:14:37","updated":"2022-09-28 10:00:57"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/83582","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=83582"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/83582\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/83583"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=83582"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=83582"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=83582"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}