Pagpagawas sa ZFS sa Linux 0.8.0, mga pagpatuman sa ZFS para sa Linux kernel

Human sa hapit duha ka tuig nga pag-uswag gipresentar buhian ZFS sa Linux 0.8.0, usa ka pagpatuman sa ZFS file system, gidisenyo isip module para sa Linux kernel. Ang module gisulayan sa Linux kernels gikan sa 2.6.32 ngadto sa 5.1. Andam nga mga pakete sa pag-instalar moabut sa dili madugay andamon alang sa dagkong mga distribusyon sa Linux lakip ang Debian, Ubuntu, Fedora, RHEL/CentOS. Ang ZFS sa Linux module naapil na sa Debian, Ubuntu, Gentoo, Sabayon Linux ug ALT Linux distributions.

Isip bahin sa ZFS sa Linux, ang pagpatuman sa mga sangkap sa ZFS nga may kalabutan sa operasyon sa file system ug ang paglihok sa volume manager giandam na. Sa partikular, ang mosunod nga mga sangkap gipatuman: SPA (Storage Pool Alocator), DMU (Data Management Unit), ZVOL (ZFS Emulated Volume) ug ZPL (ZFS POSIX Layer). Dugang pa, ang proyekto naghatag ug abilidad sa paggamit sa ZFS isip backend alang sa Lustre cluster file system. Ang trabaho sa proyekto gibase sa orihinal nga ZFS code, nga gi-import gikan sa OpenSolaris nga proyekto ug gipalapdan sa mga pag-ayo ug pag-ayo gikan sa komunidad sa Illumos. Ang proyekto gipalambo uban sa partisipasyon sa mga empleyado sa Livermore National Laboratory ubos sa kontrata sa US Department of Energy.

Ang code giapod-apod ubos sa usa ka libre nga lisensya sa CDDL, nga dili uyon sa GPLv2, nga wala magtugot sa ZFS sa Linux nga i-integrate ngadto sa nag-unang sanga sa Linux kernel, tungod kay ang pagsagol sa code ubos sa GPLv2 ug CDDL nga mga lisensya dili madawat. Aron malikayan kining dili pagkaangay sa paglilisensya, nakahukom nga iapud-apod ang tibuok produkto ubos sa lisensya sa CDDL isip usa ka bulag nga ma-download nga module, nga gihatag nga lahi gikan sa kernel. Ang kalig-on sa ZFS sa Linux codebase gi-rate nga ikatandi sa ubang mga file system para sa Linux.

Panguna nga mga pagbag-o:

  • Gidugang ang built-in nga suporta alang sa pag-encrypt sa gitipigan nga datos sa file system ug lebel sa partition. Ang default encryption algorithm mao ang aes-256-ccm. Aron ma-load ang mga yawe sa pag-encrypt, ang mando nga "zfs load-key" gisugyot;
  • Ang abilidad sa pagpasa sa naka-encrypt nga datos sa diha nga ipatuman ang "zfs send" ug "zfs receive" nga mga sugo gipatuman. Kung gipiho ang kapilian nga "-w", ang datos nga na-encrypt na sa pool gibalhin sa lain nga pool sama sa, nga wala’y intermediate decryption. Atol sa ingon nga pagkopya, ang datos nagpabilin nga gipanalipdan sa yawe sa nagpadala nga partido, nga nagtugot niini nga paagi nga magamit alang sa pag-backup sa dili kasaligan nga mga sistema (kung ang nakadawat makompromiso, kung wala ang yawe ang tig-atake dili maka-access sa datos);
  • Gidugang nga suporta alang sa pagtangtang sa mga nag-unang drive gikan sa usa ka storage pool, konektado sa tagsa-tagsa o ​​isip bahin sa usa ka salamin. Ang pagtangtang gihimo gamit ang "zpool remove" nga mando. Atol sa proseso sa pagtangtang, ang mga datos gikan sa gikuha nga drive gikopya ngadto sa nahabilin nga mga nag-unang drive sa pool;
  • Gidugang ang "zpool checkpoint" nga sugo aron maluwas ang kasamtangan nga kahimtang sa pool nga adunay kaarang nga ibalik ang dugang nga mga pagbag-o sa natipig nga punto sa oras (usa ka snapshot sa tibuuk nga pool ang gihimo). Ang gipresentar nga bahin mahimong mapuslanon sa proseso sa paghimo sa posibleng makuyaw nga komplikadong administratibong buluhaton nga kasagarang mosangpot sa dili mabalik nga mga kausaban (pananglitan, pagpaaktibo sa mga bandera para sa bag-ong ZFS functionality o clearing data);
  • Gidugang ang "zpool trim" nga mando aron ipahibalo ang mga drive nga gigamit sa usa ka pool bahin sa mga sektor nga wala na gigamit. Ang paggamit sa TRIM nga operasyon nagpaposible nga madugangan ang kahusayan sa mga drive sa SSD ug malikayan ang pagkadaot sa ilang pasundayag. Aron makahimo sa usa ka padayon nga proseso sa background alang sa pagpasa sa TRIM nga mga sugo, usa ka bag-ong kabtangan nga "autotrim" ang gisugyot;
  • Gidugang ang "zpool initialize" nga sugo aron masugdan ang tanan nga wala gigahin nga disk space, pagsiguro nga kini andam dayon alang sa paggamit nga dili makaapekto sa performance sa unang pag-access (pananglitan, kung nag-host sa virtualized storage sama sa VMware VMDK);
  • Gidugang nga suporta alang sa accounting sa lebel sa proyekto ug mga quota, nga nagpuno sa kaniadto nga magamit nga mga quota sa lebel sa user ug grupo. Sa tinuud, ang mga proyekto usa ka lahi nga wanang sa mga butang nga adunay kalabotan sa usa ka lahi nga identifier (project ID). Ang pagbugkos gitino pinaagi sa 'chattr -p' nga operasyon o pinaagi sa pagpanunod sa hiyas. Aron pagdumala sa mga proyekto, ang "zfs project" ug "zfs projectspace" nga mga sugo gihatag, nga nagtugot kanimo sa pagdumala sa paghimo sa mga proyekto ug pagtakda sa mga limitasyon sa disk space alang kanila;
  • Gidugang ang abilidad sa paghimo og mga script sa Lua aron ma-automate ang lainlaing trabaho sa ZFS. Ang mga script gilunsad sa espesyal nga nahilit nga mga palibot gamit ang "zpool program" nga sugo;
  • Bag-ong librarya gipatuman pyzfs, nga naghatag usa ka lig-on nga API alang sa pagdumala sa ZFS gikan sa mga aplikasyon sa Python. Ang librarya kay usa ka wrapper sa libzfs_core ug naghatag ug parehas nga set sa mga function, apan naggamit ug mga tipo nga mas duol sa Python;
  • Ang arcstat, arcsummary ug dbufstat utilities nahiuyon na karon sa Python 3. Ang arcstat.py, arc_summary.py ug dbufstat.py nga mga utilities giilisan og ngalan ngadto sa mga bersyon nga walay extension nga ".py";
  • Gidugang nga suporta alang sa Linux Direct IO (O_DIRECT) kernel interface, nga nagtugot kanimo sa pag-access sa data nga walay buffering ug pag-bypass sa cache;
  • Gipresentar ang pag-optimize sa performance:
    • Ang buhat sa "scrub" ug "resilver" nga mga sugo gipadali pinaagi sa pagbahin niini ngadto sa duha ka hugna (usa ka bulag nga bahin ang gigahin alang sa pag-scan sa metadata ug pagtino sa lokasyon sa mga bloke sa datos sa disk, nga nagtugot sa dugang nga pag-verify gamit ang sequential data reading) ;
    • Gidugang nga suporta alang sa mga klase sa Allocation,
      pagtugot sa medyo gamay nga SSD drive nga maapil sa usa ka pool ug gigamit sa pagtipig lamang sa pipila ka mga tipo sa kanunay nga gigamit nga mga bloke, sama sa metadata, DDT data ug gagmay nga mga bloke nga adunay mga file;

    • Dugang nga performance sa mga sugo alang sa administrasyon, sama sa
      "listahan sa zfs" ug "nakuha sa mga zfs", tungod sa pag-cache sa metadata nga gikinahanglan alang sa ilang operasyon;

    • Gidugang nga suporta alang sa pagparis sa mga operasyon sa alokasyon sa block pinaagi sa paglansad sa separado nga proseso sa "allocator" alang sa matag grupo sa metaslab. Sa regular nga mga sistema, adunay pagtaas sa performance sa 5-10%, apan sa dagko (8 GB SSD, 128 core NUMA, 24 GB RAM), ang pagtaas sa mga operasyon sa block alokasyon mahimong moabot sa 256%;
    • Gidugang ang posibilidad nga malangan ang pagpatuman sa "resilver" nga mando (pagtukod pag-usab sa pag-apod-apod sa datos nga gikonsiderar ang mga pagbag-o sa pag-configure sa mga drive) - kung sa pagsugod sa usa ka bag-ong operasyon ang nauna wala pa nahuman, nan ang bag-ong handler magsugod sa pagpatuman lamang human mahuman ang nauna;
    • Ang mga pag-optimize gihimo sa ZIL (ZFS Intent Log) log aron tugutan ang paghimo ug pagproseso sa mga bloke kung adunay mga bloke nga giproseso pa sa pagtipig;
    • Ang oras sa pagrehistro sa mga partisyon (zvol) sa sistema gipakubus. Kung ang usa ka pool adunay daghang gidaghanon sa mga partisyon, kini magamit na dayon pagkahuman ipatuman ang "zpool import";
    • Gidugang nga suporta alang sa hardware acceleration sa SHA256 hash calculations ug AES-GSM encryption operations gamit ang mga chips nga nagsuporta sa Intel QAT (Quick Assist Technology). Gidugang nga suporta alang sa hardware acceleration tool para sa Intel C62x chipset ug Atom C3000 CPU.

Source: opennet.ru

Idugang sa usa ka comment