Kutulutsidwa kwa ZFS pa Linux 0.8.0, kukhazikitsidwa kwa ZFS kwa Linux kernel

Pambuyo pa zaka ziwiri za chitukuko zoperekedwa kumasula ZFS pa Linux 0.8.0, kukhazikitsidwa kwa fayilo ya ZFS yosungidwa ngati gawo la Linux kernel. Gawoli layesedwa ndi ma kernels a Linux kuyambira 2.6.32 mpaka 5.1. Maphukusi okonzekera okonzeka akubwera posachedwa zidzakonzedwa kwa magawo akuluakulu a Linux kuphatikiza Debian, Ubuntu, Fedora, RHEL/CentOS. Magawo a ZFS pa Linux aphatikizidwa kale mu magawo a Debian, Ubuntu, Gentoo, Sabayon Linux ndi ALT Linux.

Monga gawo la ZFS pa Linux, kukhazikitsidwa kwa magawo a ZFS okhudzana ndi magwiridwe antchito a fayilo komanso magwiridwe antchito a voliyumu kwakonzedwa. Makamaka, zigawo zotsatirazi zikugwiritsidwa ntchito: SPA (Storage Pool Allocator), DMU (Data Management Unit), ZVOL (ZFS Emulated Volume) ndi ZPL (ZFS POSIX Layer). Kuphatikiza apo, polojekitiyi imapereka mwayi wogwiritsa ntchito ZFS ngati kumbuyo kwa fayilo ya Luster cluster. Ntchito ya pulojekitiyi idakhazikitsidwa ndi code yoyambirira ya ZFS yomwe idatumizidwa kuchokera ku projekiti ya OpenSolaris ndikuwongoleredwa ndi kukonza ndi kukonza kuchokera kugulu la Illumos. Ntchitoyi ikukonzedwa ndi ogwira ntchito ku Livermore National Laboratory pansi pa mgwirizano ndi Dipatimenti ya Zamagetsi ku US.

Khodiyo imagawidwa pansi pa chilolezo cha CDDL chaulere, chomwe sichigwirizana ndi GPLv2, chomwe sichilola ZFS pa Linux kuphatikizidwa munthambi yaikulu ya Linux kernel, popeza kusakaniza code pansi pa GPLv2 ndi CDDL sikuloledwa. Kuti tipewe kusagwirizana kwa laisensi iyi, zidaganiza zogawira katunduyo pansi pa laisensi ya CDDL ngati gawo loyimitsa padera, lomwe limaperekedwa mosiyana ndi pachimake. Kukhazikika kwa ZFS pa Linux codebase kumavotera ngati kufananiza ndi mafayilo ena a Linux.

Zosintha zazikulu:

  • Thandizo lowonjezera lothandizira kubisa kwa data yosungidwa pamlingo wa fayilo ndi magawo. Algorithm yosasinthika ya encryption ndi aes-256-ccm. Lamulo la "zfs load-key" laperekedwa kuti likhazikitse makiyi achinsinsi;
  • Yakhazikitsa luso losamutsa deta yosungidwa mukamatsatira malamulo a 'zfs send' ndi 'zfs kulandira'. Mukatchula njira ya "-w", deta yomwe yasungidwa kale mu dziwe imasamutsidwa ku dziwe lina monga momwe zilili, popanda kutsekedwa kwapakatikati. Ndi kukopera koteroko, deta imakhalabe yotetezedwa ndi fungulo la wotumiza, lomwe limalola kugwiritsa ntchito njira iyi kuti musunge zosunga zobwezeretsera ku machitidwe osadalirika (ngati kusagwirizana ndi wolandira, wotsutsayo sangathe kupeza deta popanda fungulo);
  • Thandizo lowonjezera pochotsa ma drive oyambira ku dziwe losungira, olumikizidwa payekhapayekha komanso ngati gawo la galasi. Kuchotsa kumachitika ndi lamulo la "zpool kuchotsa". Njira yochotsera imakopera deta kuchokera pagalimoto yosaphatikizidwa kupita ku ma drive oyambirira otsala mu dziwe;
  • Anawonjezera lamulo la "zpool checkpoint" kuti mupulumutse momwe dziwe lilili panopa ndikutha kubweza kusintha kwina kumalo osungidwa panthawi (chithunzi cha dziwe lonse chimapangidwa). Izi zitha kukhala zothandiza pogwira ntchito yoyang'anira yomwe ingakhale yowopsa, yomwe nthawi zonse imabweretsa kusintha kosasinthika (mwachitsanzo, kuyambitsa mbendera za magwiridwe antchito atsopano a ZFS kapena kuchotsa deta);
  • Lamulo la "zpool trim" lawonjezedwa kuti lidziwitse ma drive omwe amagwiritsidwa ntchito padziwe za magawo omwe sagwiritsidwanso ntchito. Kugwiritsa ntchito ntchito ya TRIM kumapangitsa kuti ma SSD azigwira bwino ntchito ndikupewa kuwonongeka kwa magwiridwe antchito awo. Katundu watsopano wa "autotrim" waperekedwa kuti athandizire njira yopitilira yakumbuyo yotumizira malamulo a TRIM;
  • Anawonjezera "zpool yambitsani" lamulo loyambitsa danga la disk lomwe silinagawidwe, lomwe limalola kuti likhale lokonzeka kugwiritsidwa ntchito nthawi yomweyo, popanda kuwonongeka kwa ntchito pakupeza koyamba (mwachitsanzo, posungira zosungirako monga VMware VMDK);
  • Thandizo lowonjezera la ma accounting ndi ma quotas amtundu wa projekiti, kuphatikiza pa zomwe zidalipo kale za ogwiritsa ntchito ndi magulu amagulu. M'malo mwake, mapulojekiti ndi malo osiyana azinthu okhudzana ndi chizindikiritso chapadera (ID ya polojekiti). Kumangirira kumatanthauzidwa kudzera mu ntchito ya 'chattr -p' kapena kudzera pa cholowa. Kwa kayendetsedwe ka polojekiti, malamulo a "zfs project" ndi "zfs projectspace" amaperekedwa, omwe amakulolani kuyang'anira kupanga mapulojekiti ndikuyika malire a disk space kwa iwo;
  • Adawonjezera kuthekera kopanga zolemba za Lua kuti azisintha ntchito zosiyanasiyana ndi ZFS. Zolemba zimayendetsedwa m'malo apadera apadera pogwiritsa ntchito lamulo la "zpool program";
  • Laibulale yatsopano yakhazikitsidwa pyzfs, yomwe imapereka API yokhazikika yoyendetsera ZFS kuchokera ku mapulogalamu a Python. Laibulaleyi ndi chomangira mozungulira libzfs_core ndipo imapereka ntchito zofanana, koma imagwiritsa ntchito mitundu ya Python yapafupi;
  • Zida za arcstat, arcsummary, ndi dbufstat zapangidwa kuti zigwirizane ndi Python 3. Zida za arcstat.py, arc_summary.py, ndi dbufstat.py zasinthidwa kukhala zomasulira popanda ".py" yowonjezera;
  • Thandizo lowonjezera la Linux Direct IO (O_DIRECT) mawonekedwe a kernel, omwe amalola kupeza deta popanda kubisa ndi kudutsa posungira;
  • Kukhathamiritsa kwa magwiridwe antchito adayambitsidwa:
    • Ntchito ya malamulo a "scrub" ndi "resilver" yafulumizitsidwa chifukwa chakugawanika m'magawo awiri (gawo losiyana laperekedwa kuti lifufuze metadata ndikudziwitsa malo a midadada ndi deta pa disk, zomwe zimathandiza kutsimikiziranso pogwiritsa ntchito deta yotsatizana. kuwerenga);
    • Thandizo lowonjezera pamakalasi a Allocation,
      kulola kuti ma SSD ang'onoang'ono asonkhanitsidwe ndikugwiritsidwa ntchito kusunga mitundu ina ya midadada yomwe imagwiritsidwa ntchito kwambiri, monga metadata, data ya DDT, ndi midadada yaing'ono yamafayilo;

    • Kuchita bwino kwa malamulo a admin monga
      "zfs list" ndi "zfs get", posunga metadata yofunikira kuti agwire ntchito;

    • Thandizo lowonjezera pakufanana kwa ntchito zogawira block poyendetsa njira zosiyana zogawa gulu lililonse la metaslab. Pa machitidwe ochiritsira, pali kuwonjezeka kwa ntchito kwa 5-10%, koma pazikuluzikulu (8 128 GB SSD, 24 core NUMA, 256 GB ya RAM), kuwonjezeka kwa ntchito zogawira chipika kumatha kufika 25%;
    • Anawonjezera kuthekera kwa kuchedwetsedwa kwa lamulo la "resilver" (kumanganso kugawa kwa data poganizira kusintha kwa kasinthidwe ka ma drive) - ngati yapitayo isanamalize poyambitsa ntchito yatsopano, ndiye kuti wogwirizira watsopanoyo angoyamba kuchita pambuyo pake. mapeto a yapitayo;
    • Zowonjezera zawonjezeredwa ku ZIL (ZFS Intent Log) kulola kupanga ndi kukonza midadada pamaso pa midadada yomwe ikukonzedwabe ndi yosungirako;
    • Kuchepetsa nthawi yolembetsa ya magawo (zvol) mudongosolo. Pamene dziwe lili ndi magawo ambiri, tsopano likupezeka mwamsanga mutatha kuchita "zpool import";
    • Thandizo lowonjezera pakuwerengera kwachangu kwa ma SHA256 hashes ndi ma encryption a AES-GSM pogwiritsa ntchito tchipisi ta Intel QAT (Quick Assist Technology). Thandizo lowonjezera la hardware mathamangitsidwe a Intel C62x chipset ndi CPU Atom C3000.

Source: opennet.ru

Kuwonjezera ndemanga