ZFS:n evaluointia – 21. 12. 2011

Tänään laitteistosta, erityisesti koteloista ja lopuksi yllätys tiedostojen kopioinnissa. ZFS antaa mahdollisuuden yhdistää vaikka kuinka monta levyä, mutta jossain vaiheessa fyysiset rajat tulevat vastaan. Tavalliseen täysimittaiseen tornikoteloon saa mahtumaan 12 kiintolevyä ilman kikkailua, mutta suunnilleen samankokoiseen koteloon on saatu mahtumaan jopa 48 kappaletta isoja 3,5 tuuman levyjä.
Konesaleissa kiintolevyt ovat perinteisesti olleet kelkassa, joka on ulosvedettävissä laitteen etuosassa. Sen tyyppiseen 4U korkuiseen räkkikoteloon mahtuu 24 isoa levyä. Sun esitteli kuitenkin vuonna 2007 toisen tyyppisen 4U kotelon, jossa levyt ”tiputettiin” pystyssä kotelon päältä. Tietokoneen jutussa http://www.tietokone.fi/lehti/tietokone_4_2007/sun_fire_x4500_1352 väitettiin virheellisesti kotelon korkeuden olevan 2U. Siihen mahtui peräti 48 levyä. Tallennustilaa verkossa myyvä Backblaze suunnitteli saman tyyppisen kotelon ja julkisti sen piirustukset ohjeineen syksyllä 2009. Nyt siitä on julkaistu jo toinen paranneltu versio http://blog.backblaze.com/2011/07/20/petabytes-on-a-budget-v2-0revealing… . Pari vuotta sitten Sunin ”Stomper” oli saanut muitakin matkivia seuraajia. Konesaleissa tila on kallista ja mitä pienempään tilaan levyt saadaan ahdettua, sitä edullisemmaksi se tulee. Tällä hetkellä päältä ladattavat kotelot ovat kuitenkin lähes kaikki hävinneet ja niiden tilalle on tulleet kotelot, joissa levykelkat ovat sekä edessä että takana. Supermicron SuperChassis 847E26-R1400UB:n ( http://www.supermicro.nl/products/chassis/4U/847/SC847E26-R1400U.cfm ) tyyppiset kotelot, joissa takaosan pinnasta puolet on varattu levykelkoille tulivat kuitenkin ensin. Niihin mahtui 36 kiintolevyä. Uudempaan SuperChassis 847E26-RJBOD1:een ( http://www.supermicro.nl/products/chassis/4U/847/SC847E26-RJBOD1.cfm ) on taakse jätetty kolmen levykelkan verran tilaa virtalähteille, joten levymäärä kasvoi 45:een. Päältä ladattava kotelo on sen takia hankala, että sen pitää olla kiskoilla ja tukevilla sellaisilla, koska esimerkiksi täyteen ladattu Backblaze painaa lähes 70 kiloa. Kiskot taas edellyttävät, että johdoissa on liikkumavaraa.
Ensimmäinen Backblazen ohjeiden mukaan itselleen koonnut oli harrastelija, jonka ”Extreme Media Server” korvasi neljä aikaisempaa levypalvelinta. Backblazen avulla hän pystyy katsomaan 16:tta videota samaan aikaan! ( http://blog.backblaze.com/2009/10/12/user-builds-extreme-media-server-ba… ). Harrastelijoille on kuitenkin tarjolla kaikenlaista erilaista ulkoista koteloa ja kotelon lisuketta, kuten kehikkoja, joihin mahtuu lappeellaan neljä kiintolevyä ja kehikko taas mahtuu kolmeen 5 1/4″ leveään levypaikkaan. Sillä saa yhden levypaikan lisää!
Backblazessa se ongelma, että moniporttiset SATA-adapterit ovat hävyttömän hintaisia ja halvempia käytettäessä lisäkorttipaikat loppuvat kesken, on ratkaistu kayttämällä port multiplier -piirejä. Moniporttiset SATA-adaperit ovat myös usein RAID-kortteja, joka taas ZFS:ää käytettäessä on täysin turha ominaisuus. Port multiplier -piirien avulla yhteen SATA-porttiin voidaan liittää Backblazessa 5 SATA-levyä. Jos käytetään SAS-väylää, on vastaava laajennustapa SAS expander. Esimerkiksi Supermicron AOC-USAS2-L8i tukee 63:a laitetta SAS expander -piirien avulla. Suoraan AOC-USAS2-L8i:hin voidaan kytkeä 8 levyä ja koska se on niin halpa ( http://www.eco-finder.com :ssa alle 1000 Kr eli noin 100 €), kannattaa ennemmin hankkia niitä useampi niin kauan kuin pitkät PCI-e-paikat emolla riittävät. Suoraan kytkemisessä on myös se etu, että useampi levy samassa portissa tukkisi pian väylän. ZFS:n luontivaiheessa ei sentään välittömästi aleta laskea pariteettia, kuten Linuxin pariteetillisiä RAID-tasoja käytettäessä, mutta sille suositellaan viikottaiseksi huoltotoimenpiteeksi scrub-operaatiota, joka vertaa tarkistussummia tallennetuihin tiedostoihin ja tämä operaatio voi olla hyvinkin hidas tukkoisilla väylillä.
Jos olet jatkanut lukemista tänne asti, tiedät varmaan jo miten tärkeää kunnollinen jäähdytys ja riittävän iso virtalähde ovat, joten ei niistä enempää.
Tiedostojen kopionti on edelleen meneillään, 3/4 valmiina. Huomenna hän tulee..
Tuota edellistä lausetta kirjoittaessa minulla oli jo Godot mielessä, mutta sitten tuntemus vahvistui. Laskin, miten nopeasti ZFS-levy täyttyy ja sain tulokseksi vajaa 7 Mt/s. Linux-koneen levyvalo välkähteli hyvin harvoin ja lyhyesti. OpenSolaris-koneessa se taas oli melkein koko ajan päällä. Miten kauan loput reilu pari teraa veisivät? 69 tuntia. (sensuroitu) Nyt säätämään, mutta ensin dokumentointia esiin, löytyi http://www.solarisinternals.com/wiki/index.php/ZFS_Evil_Tuning_Guide#Lim… . Tosin en halua pienentää sitä, vaan suurentaa. Suurennan sitä ensin varovaisesti:
root@rk6:~# history | grep mdb
438 mdb
439 man mdb
440 man mdb
441 mdb -k | grep meta_limit
442 echo ”::arc” | mdb -k | grep meta_limit
443 man mdb
444 echo ”::arc” | mdb -k
470 echo ”arc_meta_limit/Z 0x40000000” | mdb -kw
471 echo ”::arc” | mdb -k | grep meta_limit
473 echo ”arc_meta_limit/Z 0x50000000” | mdb -kw
474 echo ”::arc” | mdb -k | grep meta_limit
475 echo ”arc_meta_limit/Z 0x70000000” | mdb -kw
476 echo ”::arc” | mdb -k | grep meta_limit
479 echo ”arc_meta_limit/Z 0x60000000” | mdb -kw
481 echo ”arc_meta_limit/Z 0x77000000” | mdb -kw
482 echo ”::arc” | mdb -k | grep meta_limit
484 echo ”arc_meta_limit/Z 0x90000000” | mdb -kw
485 echo ”::arc” | mdb -k | grep meta_limit
487 echo ”arc_meta_limit/Z 0xb0000000” | mdb -kw
488 echo ”::arc” | mdb -k | grep meta_limit
490 echo ”arc_meta_limit/Z 0xd0000000” | mdb -kw
root@rk6:~# echo ”::arc” | mdb -k | grep meta_limit
arc_meta_limit = 3328 MB
Melkein kaikki muisti on tarjolla. Nopeus kyllä kasvoi, noin 9 Mt/s. Ei silti hyvä. Tutkin, mikä voisi olla pielessä. Mitään apua ei löydy.
Sitten tapahtuu jotain ikävää, X kaatuu. Myös se Konsolen kieleke, jossa käynnistin kopioinnin, on mennyttä. Samasta syystä jouduin yllä suodattamaan historiaa. KDE käyntiin taas ja myös rsync, joka hoitaa kopioinnin. Lisään kuitenkin –progress-vivun, jotta voin helposti seurata siirtonopeutta. Se aloittaa aika tasaiseen 112 Mt/s tahtiin, mutta vajaan neljän gigan kokoisen tiedoston loppupäässä hidastelee, välimuistit täyttyivät. Keskiarvo silti 78.65MB/s. Seuraava 42.63MB/s. Sitten taas nopeammin. Pidemmän ajan keskiarvo näyttää olevan yli 50 Mt/s. Huh!
Mitä ihmettä oikein tapahtui? Välimuisti fragmentoitui tai jotain vastaavaa tiedostojärjestelmän puolella. Parempaa arvausta en keksi. Opetus taitaa kuitenkin olla: älä kopioi yli neljää teraa kerralla, pidä tauko 😉
Kommentit (0)