Kutolewa kwa ZFS kwenye Linux 0.8.0, utekelezaji wa ZFS kwa kinu cha Linux

Baada ya karibu miaka miwili ya maendeleo imewasilishwa kutolewa ZFS kwenye Linux 0.8.0, utekelezaji wa mfumo wa faili wa ZFS uliowekwa kama moduli ya kinu cha Linux. Moduli imejaribiwa na kokwa za Linux kutoka 2.6.32 hadi 5.1. Vifurushi vilivyo tayari vya usakinishaji vinakuja hivi karibuni itatayarishwa kwa usambazaji mkubwa wa Linux ikiwa ni pamoja na Debian, Ubuntu, Fedora, RHEL/CentOS. Moduli ya ZFS kwenye Linux tayari imejumuishwa katika usambazaji wa Debian, Ubuntu, Gentoo, Sabayon Linux na ALT Linux.

Kama sehemu ya ZFS kwenye Linux, utekelezaji wa vipengele vya ZFS vinavyohusiana na uendeshaji wa mfumo wa faili na utendaji wa meneja wa kiasi umeandaliwa. Hasa, vipengele vifuatavyo vinatekelezwa: SPA (Hifadhi Pool Allocator), DMU (Kitengo cha Usimamizi wa Data), ZVOL (ZFS Emulated Volume) na ZPL (ZFS POSIX Layer). Zaidi ya hayo, mradi hutoa uwezo wa kutumia ZFS kama sehemu ya nyuma ya mfumo wa faili wa nguzo ya Luster. Kazi ya mradi inatokana na msimbo asilia wa ZFS ulioletwa kutoka kwa mradi wa OpenSolaris na kuimarishwa kwa maboresho na marekebisho kutoka kwa jumuiya ya Illumos. Mradi huo unaendelezwa kwa kushirikisha wafanyakazi wa Maabara ya Kitaifa ya Livermore chini ya mkataba na Idara ya Nishati ya Marekani.

Nambari hiyo inasambazwa chini ya leseni ya bure ya CDDL, ambayo haioani na GPLv2, ambayo hairuhusu ZFS kwenye Linux kuunganishwa kwenye tawi kuu la kernel ya Linux, kwani kuchanganya msimbo chini ya leseni ya GPLv2 na CDDL hairuhusiwi. Ili kukwepa kutopatana kwa leseni hii, iliamuliwa kusambaza bidhaa nzima chini ya leseni ya CDDL kama moduli inayoweza kupakiwa tofauti, ambayo hutolewa kando na msingi. Uthabiti wa ZFS kwenye Linux codebase imekadiriwa kulinganishwa na mifumo mingine ya faili ya Linux.

Mabadiliko kuu:

  • Imeongeza usaidizi wa ndani wa usimbuaji wa data iliyohifadhiwa katika kiwango cha mfumo wa faili na sehemu. Kanuni ya msingi ya usimbaji fiche ni aes-256-ccm. Amri ya "zfs load-key" imependekezwa kupakia vitufe vya usimbuaji;
  • Imetekeleza uwezo wa kuhamisha data iliyosimbwa wakati wa kutekeleza amri za 'zfs send' na 'zfs receive'. Wakati wa kubainisha chaguo la "-w", data ambayo tayari imesimbwa kwenye dimbwi huhamishiwa kwenye dimbwi lingine kama ilivyo, bila usimbuaji wa kati. Kwa kunakili vile, data inabaki kulindwa na ufunguo wa mtumaji, ambayo inaruhusu kutumia hali hii kwa chelezo kwa mifumo isiyoaminika (ikiwa mpokeaji ameathirika, mshambuliaji hataweza kufikia data bila ufunguo);
  • Usaidizi ulioongezwa wa kuondoa anatoa msingi kutoka kwa hifadhi, iliyounganishwa kibinafsi na kama sehemu ya kioo. Uondoaji unafanywa kwa amri ya "zpool kuondoa". Mchakato wa kufuta unakili data kutoka kwa kiendeshi kilichotengwa hadi anatoa msingi zilizobaki kwenye bwawa;
  • Imeongeza amri ya "zpool checkpoint" ili kuokoa hali ya sasa ya bwawa na uwezo wa kurudisha nyuma mabadiliko zaidi kwa sehemu iliyohifadhiwa kwa wakati (picha ya bwawa zima imeundwa). Kipengele hiki kinaweza kuwa na manufaa katika mchakato wa kufanya kazi ya usimamizi inayoweza kuwa hatari, ambayo chini ya hali ya kawaida husababisha mabadiliko yasiyoweza kutenduliwa (kwa mfano, kuwezesha bendera kwa utendakazi mpya wa ZFS au kufuta data);
  • Amri ya "zpool trim" imeongezwa ili kufahamisha viendeshi vinavyotumika kwenye bwawa kuhusu sekta ambazo hazitumiki tena. Matumizi ya operesheni ya TRIM inafanya uwezekano wa kuongeza ufanisi wa SSD na kuzuia uharibifu wa utendaji wao. Sifa mpya ya "autotrim" imependekezwa ili kuwezesha mchakato wa usuli unaoendelea wa kutuma amri za TRIM;
  • Imeongeza amri ya "zpool kuanzisha" ili kuanzisha nafasi yote ya diski ambayo haijatengwa, ambayo inaruhusu kuwa tayari kutumika mara moja, bila uharibifu wa utendaji kwenye ufikiaji wa kwanza (kwa mfano, wakati wa kupangisha hifadhi zilizoboreshwa kama vile VMware VMDK);
  • Umeongeza usaidizi wa uhasibu na viwango vya kiwango cha mradi, pamoja na upendeleo uliopatikana hapo awali wa watumiaji na wa kikundi. Kwa asili, miradi ni nafasi tofauti ya vitu vinavyohusishwa na kitambulisho tofauti (Kitambulisho cha mradi). Ufungaji unafafanuliwa kupitia operesheni ya 'chattr -p' au kupitia urithi wa sifa. Kwa usimamizi wa mradi, amri za "zfs project" na "zfs projectspace" zinawasilishwa, ambayo inakuwezesha kusimamia uundaji wa miradi na kuweka mipaka ya nafasi ya disk kwao;
  • Imeongeza uwezo wa kuunda maandishi ya Lua ili kugeuza kazi anuwai na ZFS. Maandishi yanaendeshwa katika mazingira maalum yaliyotengwa kwa kutumia amri ya "zpool program";
  • Maktaba mpya imetekelezwa pyzfs, ambayo hutoa API thabiti ya kusimamia ZFS kutoka kwa programu za Python. Maktaba ni safu karibu na libzfs_core na hutoa seti sawa ya kazi, lakini hutumia aina za karibu za Python;
  • Huduma za arcstat, arcsummary, na dbufstat zimefanywa kuendana na Python 3. Huduma za arcstat.py, arc_summary.py, na dbufstat.py zimebadilishwa jina hadi matoleo bila kiendelezi cha ".py";
  • Usaidizi ulioongezwa kwa kiolesura cha kerneli cha Linux Direct IO (O_DIRECT), ambacho huruhusu kufikia data bila kuakibisha na kupitisha kache;
  • Uboreshaji wa utendakazi umeanzishwa:
    • Kazi ya amri za "scrub" na "resilver" imeharakishwa kwa sababu ya kugawanyika katika awamu mbili (awamu tofauti imetengwa kwa ajili ya skanning metadata na kuamua eneo la vitalu na data kwenye diski, ambayo inaruhusu uthibitishaji zaidi kwa kutumia data ya mlolongo. kusoma);
    • Msaada ulioongezwa kwa madarasa ya Ugawaji,
      kuruhusu SSD ndogo kuunganishwa na kutumika kuhifadhi aina fulani tu za vizuizi vinavyotumika sana, kama vile metadata, data ya DDT na vizuizi vidogo vya faili;

    • Utendaji ulioboreshwa wa amri za msimamizi kama vile
      "zfs orodha" na "zfs kupata", kwa caching metadata muhimu kwa ajili ya uendeshaji wao;

    • Usaidizi ulioongezwa wa ulinganishaji wa shughuli za ugawaji vitalu kwa kuendesha michakato tofauti ya kigawanyaji kwa kila kikundi cha metaslab. Juu ya mifumo ya kawaida, kuna ongezeko la utendaji wa 5-10%, lakini kwa kubwa (8 128 GB SSD, 24 msingi NUMA, 256 GB ya RAM), ongezeko la shughuli za ugawaji wa block inaweza kufikia 25%;
    • Imeongeza uwezekano wa kuchelewesha utekelezaji wa amri ya "resili" (kuunda tena usambazaji wa data kwa kuzingatia mabadiliko katika usanidi wa anatoa) - ikiwa ya awali bado haijakamilika wakati wa kuanza operesheni mpya, basi mtoaji mpya ataanza kutekeleza tu baada ya. iliyotangulia imemaliza;
    • Uboreshaji umeongezwa kwenye ZIL (ZFS Intent Log) ili kuruhusu kuunda na kuchakata vitalu kukiwa na vitalu ambavyo bado vinachakatwa na hifadhi;
    • Kupunguza muda wa usajili kwa partitions (zvol) katika mfumo. Wakati bwawa lina idadi kubwa ya partitions, sasa zinapatikana mara moja baada ya kufanya "zpool import";
    • Usaidizi umeongezwa kwa hesabu ya kasi ya maunzi ya heshi SHA256 na utendakazi wa usimbaji fiche wa AES-GSM kwa kutumia chipsi za Intel QAT (Teknolojia ya Usaidizi wa Haraka). Usaidizi ulioongezwa wa kuongeza kasi ya maunzi ya chipset ya Intel C62x na CPU Atom C3000.

Chanzo: opennet.ru

Kuongeza maoni