Rhyddhau ZFS ar Linux 0.8.0, gweithrediad ZFS ar gyfer y cnewyllyn Linux

Ar ôl bron i ddwy flynedd o ddatblygiad wedi'i gyflwyno rhyddhau ZFS ar Linux 0.8.0, gweithrediad system ffeiliau ZFS, a gynlluniwyd fel modiwl ar gyfer y cnewyllyn Linux. Mae'r modiwl wedi'i brofi gyda chnewyllyn Linux o 2.6.32 i 5.1. Pecynnau gosod parod yn dod yn fuan bydd yn cael ei baratoi ar gyfer dosbarthiadau Linux mawr gan gynnwys Debian, Ubuntu, Fedora, RHEL / CentOS. Mae'r modiwl ZFS ar Linux eisoes wedi'i gynnwys yn y dosbarthiadau Debian, Ubuntu, Gentoo, Sabayon Linux ac ALT Linux.

Fel rhan o ZFS ar Linux, paratowyd gweithrediad cydrannau ZFS sy'n ymwneud â gweithrediad y system ffeiliau a gweithrediad y rheolwr cyfaint. Yn benodol, gweithredir y cydrannau canlynol: SPA (Dyrannu Pwll Storio), DMU (Uned Rheoli Data), ZVOL (ZFS Emulated Volume) a ZPL (ZFS POSIX Layer). Yn ogystal, mae'r prosiect yn darparu'r gallu i ddefnyddio ZFS fel backend ar gyfer system ffeiliau clwstwr Luster. Mae gwaith y prosiect yn seiliedig ar y cod ZFS gwreiddiol, a fewnforiwyd o brosiect OpenSolaris a'i ehangu gyda gwelliannau ac atgyweiriadau gan gymuned Illumos. Mae'r prosiect yn cael ei ddatblygu gyda chyfranogiad gweithwyr Labordy Cenedlaethol Livermore o dan gontract gydag Adran Ynni'r UD.

Mae'r cod yn cael ei ddosbarthu o dan drwydded CDDL am ddim, sy'n anghydnaws â GPLv2, nad yw'n caniatáu i ZFS ar Linux gael ei integreiddio i brif gangen y cnewyllyn Linux, gan fod cymysgu cod o dan drwyddedau GPLv2 a CDDL yn annerbyniol. Er mwyn osgoi'r anghydnawsedd trwyddedu hwn, penderfynwyd dosbarthu'r cynnyrch cyfan o dan y drwydded CDDL fel modiwl y gellir ei lawrlwytho ar wahân, a gyflenwir ar wahân i'r cnewyllyn. Mae sefydlogrwydd y sylfaen cod ZFS ar Linux wedi'i raddio'n debyg i systemau ffeiliau eraill ar gyfer Linux.

Newidiadau mawr:

  • Ychwanegwyd cefnogaeth adeiledig ar gyfer amgryptio data sydd wedi'i storio ar y system ffeiliau a lefelau rhaniad. Yr algorithm amgryptio rhagosodedig yw aes-256-ccm. I lwytho allweddi amgryptio, cynigir y gorchymyn “zfs load-key”;
  • Mae'r gallu i drosglwyddo data wedi'i amgryptio wrth weithredu'r gorchmynion “zfs send” a “zfs receive” wedi'i weithredu. Wrth nodi'r opsiwn “-w”, mae data sydd eisoes wedi'i amgryptio yn y pwll yn cael ei drosglwyddo i bwll arall fel y mae, heb ddadgryptio canolradd. Yn ystod copïo o'r fath, mae'r data'n parhau i gael ei warchod gan allwedd y parti anfon, sy'n caniatáu i'r modd hwn gael ei ddefnyddio ar gyfer gwneud copi wrth gefn o systemau annibynadwy (os yw'r derbynnydd yn cael ei beryglu, heb yr allwedd ni fydd yr ymosodwr yn gallu cyrchu'r data);
  • Cefnogaeth ychwanegol ar gyfer tynnu gyriannau sylfaenol o bwll storio, wedi'u cysylltu naill ai'n unigol neu fel rhan o ddrych. Gwneir y tynnu gyda'r gorchymyn “zpool remove”. Yn ystod y broses ddileu, caiff data o'r gyriant sydd wedi'i dynnu ei gopïo i'r gyriannau cynradd sy'n weddill yn y pwll;
  • Ychwanegwyd y gorchymyn “zpool checkpoint” i arbed cyflwr presennol y pwll gyda'r gallu i rolio newidiadau pellach yn ôl i'r pwynt mewn amser a arbedwyd (crëir ciplun o'r pwll cyfan). Gall y nodwedd a gyflwynir fod yn ddefnyddiol yn y broses o gyflawni gwaith gweinyddol cymhleth a allai fod yn beryglus a fyddai fel arfer yn arwain at newidiadau na ellir eu gwrthdroi (er enghraifft, actifadu baneri ar gyfer ymarferoldeb ZFS newydd neu glirio data);
  • Ychwanegwyd y gorchymyn “zpool trim” i hysbysu gyriannau a ddefnyddir mewn pwll am sectorau nad ydynt yn cael eu defnyddio mwyach. Mae defnyddio gweithrediad TRIM yn ei gwneud hi'n bosibl cynyddu effeithlonrwydd gyriannau SSD ac atal diraddio eu perfformiad. Er mwyn galluogi proses gefndir barhaus ar gyfer pasio gorchmynion TRIM, mae “autotrim” eiddo newydd wedi'i gynnig;
  • Ychwanegwyd y gorchymyn "zpool initialize" i gychwyn yr holl ofod disg heb ei ddyrannu, gan sicrhau ei fod yn barod ar unwaith i'w ddefnyddio heb effeithio ar berfformiad ar fynediad cyntaf (er enghraifft, wrth gynnal storfa rithwir fel VMware VMDK);
  • Cefnogaeth ychwanegol ar gyfer cyfrifo a chwotâu ar lefel prosiect, gan ategu'r cwotâu lefel defnyddiwr a grŵp a oedd ar gael yn flaenorol. Yn y bôn, mae prosiectau yn ofod ar wahân o wrthrychau sy'n gysylltiedig â dynodwr ar wahân (ID prosiect). Pennir y rhwymiad trwy weithrediad 'chattr -p' neu trwy etifeddiaeth priodoledd. Er mwyn rheoli prosiectau, darperir y gorchmynion “zfs project” a “zfs projectspace”, sy'n eich galluogi i reoli creu prosiectau a gosod terfynau gofod disg ar eu cyfer;
  • Ychwanegwyd y gallu i greu sgriptiau Lua i awtomeiddio gwaith amrywiol gyda ZFS. Mae sgriptiau'n cael eu lansio mewn amgylcheddau ynysig arbennig gan ddefnyddio'r gorchymyn “rhaglen zpool”;
  • Llyfrgell newydd ar waith pyzfs, sy'n darparu API sefydlog ar gyfer gweinyddu ZFS o geisiadau Python. Mae'r llyfrgell yn ddeunydd lapio dros libzfs_core ac mae'n darparu set union yr un fath o swyddogaethau, ond mae'n defnyddio mathau yn nes at Python;
  • Mae'r cyfleustodau arcstat, arcsummary a dbufstat bellach yn gydnaws â Python 3. Mae'r cyfleustodau arcstat.py, arc_summary.py a dbufstat.py wedi'u hail-enwi i fersiynau heb yr estyniad “.py”;
  • Cefnogaeth ychwanegol ar gyfer rhyngwyneb cnewyllyn Linux Direct IO (O_DIRECT), sy'n eich galluogi i gyrchu data heb glustogi a osgoi'r storfa;
  • Cyflwynwyd optimeiddiadau perfformiad:
    • Mae gwaith y gorchmynion “prysgwydd” a “resilver” wedi'i gyflymu trwy ei rannu'n ddau gam (mae cam ar wahân wedi'i ddyrannu ar gyfer sganio metadata a phennu lleoliad blociau data ar y ddisg, sy'n caniatáu gwiriad pellach gan ddefnyddio darllen data dilyniannol) ;
    • Cefnogaeth ychwanegol ar gyfer dosbarthiadau Dyrannu,
      caniatáu i yriannau SSD cymharol fach gael eu cynnwys mewn cronfa a'u defnyddio i storio rhai mathau o flociau a ddefnyddir yn aml yn unig, megis metadata, data DDT a blociau bach gyda ffeiliau;

    • Perfformiad uwch o orchmynion ar gyfer gweinyddu, megis
      “rhestr zfs” a “zfs get”, oherwydd celcio’r metadata angenrheidiol ar gyfer eu gweithrediad;

    • Ychwanegwyd cefnogaeth ar gyfer cyfochrog gweithrediadau dyrannu bloc trwy lansio prosesau “dyrannu” ar wahân ar gyfer pob grŵp metaslab. Ar systemau rheolaidd, mae cynnydd perfformiad o 5-10%, ond ar rai mawr (8 GB SSD, 128 craidd NUMA, 24 GB RAM), gall y cynnydd mewn gweithrediadau dyrannu bloc gyrraedd 256%;
    • Ychwanegwyd y posibilrwydd o oedi cyn gweithredu'r gorchymyn “resilver” (ailadeiladu'r dosbarthiad data gan ystyried newidiadau yng nghyfluniad gyriannau) - os nad yw'r un blaenorol wedi'i gwblhau eto wrth ddechrau gweithrediad newydd, yna bydd y triniwr newydd yn dechrau gweithredu yn unig ar ôl i'r un blaenorol orffen;
    • Mae optimeiddiadau wedi'u gwneud i log ZIL (ZFS Intent Log) i ganiatáu creu a phrosesu blociau pan fo blociau'n dal i gael eu prosesu gan y storfa;
    • Mae'r amser ar gyfer cofrestru rhaniadau (zvol) yn y system wedi'i leihau. Pan fydd pwll yn cynnwys nifer fawr o raniadau, maent bellach ar gael yn syth ar ôl gweithredu “zpool import”;
    • Cefnogaeth ychwanegol ar gyfer cyflymiad caledwedd o gyfrifiadau hash SHA256 a gweithrediadau amgryptio AES-GSM gan ddefnyddio sglodion sy'n cefnogi Intel QAT (Technoleg Cymorth Cyflym). Cefnogaeth ychwanegol ar gyfer offer cyflymu caledwedd ar gyfer y chipset Intel C62x a CPU Atom C3000.

Ffynhonnell: opennet.ru

Ychwanegu sylw