Pelepasan ZFS dina Linux 0.8.0, palaksanaan ZFS pikeun kernel Linux

Sanggeus ampir dua taun pangwangunan ditepikeun ngabebaskeun ZFS dina Linux 0.8.0, palaksanaan sistem file ZFS rangkep salaku modul pikeun kernel Linux Ubuntu. Modul ieu diuji sareng kernel Linux ti 2.6.32 ka 5.1. pakét instalasi siap datang pas bakal disiapkeun pikeun sebaran Linux Ubuntu utama kaasup Debian, Ubuntu, Fedora, RHEL / CentOS. Modul ZFS on Linux parantos kalebet dina distribusi Debian, Ubuntu, Gentoo, Sabayon Linux sareng ALT Linux.

Salaku bagian tina ZFS dina Linux, palaksanaan komponén ZFS anu aya hubunganana sareng operasi sistem file sareng fungsi manajer volume parantos disiapkeun. Khususna, komponén-komponén di handap ieu dilaksanakeun: SPA (Storage Pool Allocator), DMU (Data Management Unit), ZVOL (ZFS Emulated Volume) sareng ZPL (ZFS POSIX Layer). Salaku tambahan, proyék éta nyayogikeun kamampuan ngagunakeun ZFS salaku backend pikeun sistem file klaster Lustre. Karya proyék dumasar kana kode ZFS asli anu diimpor ti proyék OpenSolaris sareng ditingkatkeun kalayan perbaikan sareng perbaikan ti komunitas Illumos. Proyék ieu dikembangkeun kalayan partisipasi karyawan Laboratorium Nasional Livermore dina kontrak sareng Departemen Energi AS.

Kodeu disebarkeun dina lisénsi CDDL gratis, anu henteu cocog sareng GPLv2, anu henteu ngamungkinkeun ZFS dina Linux diintegrasikeun kana cabang utama kernel Linux, sabab campur kode dina lisensi GPLv2 sareng CDDL henteu diidinan. Pikeun ngahindarkeun sauyunan lisénsi ieu, éta diputuskeun pikeun ngadistribusikaeun sakabéh produk dina lisénsi CDDL salaku modul loadable misah, nu disadiakeun misah ti inti. Stabilitas ZFS dina basis kode Linux dipeunteun sabanding sareng sistem file séjén pikeun Linux.

Parobahan utama:

  • Ditambahkeun dukungan anu diwangun pikeun énkripsi data anu disimpen dina tingkat sistem file sareng partisi. Algoritma énkripsi standar nyaéta aes-256-ccm. Paréntah "zfs load-key" parantos diusulkeun pikeun ngamuat konci énkripsi;
  • Ngalaksanakeun kamampuan nransper data énkripsi nalika ngalaksanakeun paréntah 'zfs send' sareng 'zfs receive'. Nalika nangtukeun pilihan "-w", data geus énkripsi di kolam renang ditransferkeun ka kolam renang sejen sakumaha anu kasebut, tanpa dekripsi panengah. Kalayan nyalin sapertos kitu, data tetep ditangtayungan ku konci pangirim, anu ngamungkinkeun ngagunakeun mode ieu pikeun nyadangkeun sistem anu teu dipercaya (upami kompromi panampi, panyerang moal tiasa ngaksés data tanpa konci);
  • Ditambahkeun dukungan pikeun ngahapus drive primér tina kolam renang panyimpen, dihubungkeun sacara masing-masing sareng salaku bagian tina eunteung. Ngahapus dilaksanakeun nganggo paréntah "zpool remove". Prosés ngahapus nyalin data tina drive anu teu kaasup kana drive primér sésana di kolam renang;
  • Ditambahkeun "zpool papariksaan" paréntah pikeun ngahemat kaayaan kiwari kolam renang kalawan kamampuhan pikeun gulung deui parobahan salajengna ka titik disimpen dina jangka waktu nu (snapshot sakabéh kolam renang dijieun). Fitur ieu tiasa mangpaat dina prosés ngalaksanakeun pagawéan administrasi kompléks anu berpotensi bahaya, anu dina kaayaan normal nyababkeun parobihan anu teu tiasa dibalikkeun (contona, ngaktifkeun bandéra pikeun fungsionalitas ZFS énggal atanapi ngabersihan data);
  • Paréntah "zpool trim" geus ditambahkeun pikeun nginpokeun ka drive dipaké dina kolam renang ngeunaan séktor nu geus euweuh dipaké. Pamakéan operasi TRIM ngamungkinkeun pikeun ningkatkeun efisiensi SSD sareng nyegah degradasi kinerjana. Properti "autotrim" anyar parantos diajukeun pikeun ngaktipkeun prosés latar tukang kontinyu pikeun ngirimkeun paréntah TRIM;
  • Ditambahkeun "zpool initialize" paréntah pikeun initialize sakabéh spasi disk unallocated, anu ngamungkinkeun eta janten instan siap dipaké, tanpa degradasi kinerja dina aksés munggaran (contona, nalika hosting storages virtualized kayaning VMware VMDK);
  • Ditambahkeun dukungan pikeun akuntansi sareng kuota tingkat-proyék, salian ti kuota tingkat pangguna sareng grup anu sayogi. Intina, proyék mangrupikeun rohangan anu misah tina objék anu aya hubunganana sareng identifier anu misah (ID proyék). Beungkeutan didefinisikeun ku operasi 'chattr -p' atanapi via warisan atribut. Pikeun manajemén proyék, paréntah "proyék zfs" sareng "zfs projectspace" dipidangkeun, anu ngamungkinkeun anjeun ngatur nyiptakeun proyék sareng nyetél wates rohangan disk pikeun aranjeunna;
  • Ditambahkeun kamampuhan pikeun nyieun skrip Lua pikeun ngajadikeun otomatis rupa karya kalawan ZFS. Skrip dijalankeun dina lingkungan terasing khusus nganggo paréntah "program zpool";
  • Perpustakaan anyar dilaksanakeun pyzfs, nu nyadiakeun API stabil pikeun administering ZFS ti aplikasi Python. perpustakaan mangrupa wrapper sabudeureun libzfs_core jeung nyadiakeun hiji set idéntik fungsi, tapi ngagunakeun jenis Python ngadeukeutan;
  • Utiliti arcstat, arcsummary, sareng dbufstat parantos cocog sareng Python 3. Utiliti arcstat.py, arc_summary.py, sareng dbufstat.py parantos namina janten versi tanpa ekstensi ".py";
  • Ditambahkeun dukungan pikeun antarmuka kernel Linux Direct IO (O_DIRECT), anu ngamungkinkeun aksés data tanpa panyangga sareng ngalangkungan cache;
  • Optimasi kinerja diwanohkeun:
    • Pagawean paréntah "scrub" sareng "resilver" parantos gancangan kusabab pamisahan kana dua fase (fase anu misah parantos dialokasikeun pikeun nyeken metadata sareng nangtukeun lokasi blok sareng data dina disk, anu ngamungkinkeun verifikasi salajengna nganggo data sequential. bacaan);
    • Ditambahkeun dukungan pikeun kelas Alokasi,
      ngamungkinkeun SSDs anu kawilang leutik dihijikeun sareng dianggo pikeun ngan ukur nyimpen jinis blok anu biasa dianggo, sapertos metadata, data DDT, sareng blok file leutik;

    • Ningkatkeun kinerja paréntah admin sapertos
      "daftar zfs" jeung "zfs meunang", ku cache metadata diperlukeun pikeun operasi maranéhna;

    • Ditambahkeun rojongan pikeun parallelization operasi alokasi blok ku ngajalankeun prosés allocator misah pikeun tiap grup metaslab. Dina sistem konvensional, aya kanaékan kinerja 5-10%, tapi dina badag (8 128 GB SSD, 24 inti NUMA, 256 GB RAM), kanaékan operasi alokasi blok bisa ngahontal 25%;
    • Ditambahkeun kamungkinan palaksanaan nunggak tina paréntah "resilver" (ngawangun deui distribusi data kalayan merhatikeun parobahan dina konfigurasi drive) - upami anu sateuacana henteu acan réngsé nalika ngamimitian operasi énggal, maka pawang énggal bakal ngamimitian ngan ukur saatos. tungtung saméméhna;
    • Optimizations geus ditambahkeun kana ZIL (ZFS Intent Log) pikeun ngidinan nyieun jeung ngolah blok ku ayana blok nu masih keur diolah ku gudang;
    • Ngurangan waktu pendaptaran pikeun partitions (zvol) dina sistem. Nalika kolam renang ngandung angka nu gede ngarupakeun partitions, aranjeunna ayeuna sadia langsung saatos ngalakukeun "zpool impor";
    • Ditambahkeun dukungan pikeun itungan gancangan hardware tina hashes SHA256 sareng operasi enkripsi AES-GSM nganggo chip Intel QAT (Teknologi Bantuan Gancang). Ditambahkeun dukungan pikeun akselerasi hardware tina chipset Intel C62x sareng CPU Atom C3000.

sumber: opennet.ru

Tambahkeun komentar