Itusilẹ ti ZFS lori Lainos 0.8.0, awọn imuse ti ZFS fun ekuro Linux

Lẹhin ọdun meji ti idagbasoke gbekalẹ tu silẹ ZFS lori Lainos 0.8.0, imuse ti eto faili ZFS ti a ṣajọpọ bi module fun ekuro Linux. Module naa ti ni idanwo pẹlu awọn ekuro Linux lati 2.6.32 si 5.1. Awọn idii fifi sori ẹrọ ti o ṣetan nbọ laipẹ yoo wa ni pese sile fun awọn pinpin Linux pataki pẹlu Debian, Ubuntu, Fedora, RHEL/CentOS. ZFS lori module Linux ti wa tẹlẹ ninu Debian, Ubuntu, Gentoo, Sabayon Linux ati awọn pinpin ALT Linux.

Gẹgẹbi apakan ti ZFS lori Lainos, imuse ti awọn paati ZFS ti o ni ibatan si iṣẹ mejeeji ti eto faili ati iṣẹ ṣiṣe ti oluṣakoso iwọn didun ti pese. Ni pato, awọn paati wọnyi ti wa ni imuse: SPA (Storage Pool Alocator), DMU (Ẹka Management Data), ZVOL (ZFS Emulated Volume) ati ZPL (ZFS POSIX Layer). Ni afikun, iṣẹ akanṣe n pese agbara lati lo ZFS bi ẹhin fun eto faili iṣupọ Luster. Iṣẹ akanṣe naa da lori koodu ZFS atilẹba ti a ṣe wọle lati inu iṣẹ akanṣe OpenSolaris ati imudara pẹlu awọn ilọsiwaju ati awọn atunṣe lati agbegbe Illumos. Ise agbese na ni idagbasoke pẹlu ikopa ti awọn oṣiṣẹ ti Livermore National Laboratory labẹ adehun pẹlu Ẹka Agbara AMẸRIKA.

Awọn koodu ti pin labẹ iwe-aṣẹ CDDL ọfẹ, eyiti ko ni ibamu pẹlu GPLv2, eyiti ko gba laaye ZFS lori Linux lati ṣepọ si ẹka akọkọ ti ekuro Linux, nitori ko gba laaye koodu dapọ labẹ GPLv2 ati awọn iwe-aṣẹ CDDL. Lati yipo aiṣedeede iwe-aṣẹ yii, a pinnu lati pin gbogbo ọja naa labẹ iwe-aṣẹ CDDL gẹgẹbi module ti o le gbe lọtọ, eyiti o pese lọtọ lati ipilẹ. Iduroṣinṣin ti ZFS lori koodu koodu Linux jẹ iwọn bi afiwera si awọn eto faili miiran fun Lainos.

Awọn iyipada akọkọ:

  • Ṣe afikun atilẹyin ti a ṣe sinu fun fifi ẹnọ kọ nkan ti data ti o fipamọ ni ipele ti eto faili ati awọn ipin. Alugoridimu fifi ẹnọ kọ nkan jẹ aes-256-ccm. Aṣẹ “bọtini fifuye-zfs” ti ni imọran lati gbe awọn bọtini fifi ẹnọ kọ nkan;
  • Ti ṣe imuse agbara lati gbe data fifi ẹnọ kọ nkan nigbati o ba n ṣiṣẹ awọn aṣẹ 'zfs firanṣẹ' ati 'zfs gba'. Nigbati o ba n ṣalaye aṣayan “-w”, data ti paroko tẹlẹ ninu adagun naa ni a gbe lọ si adagun-odo miiran bi o ṣe jẹ, laisi idinku aarin. Pẹlu iru didaakọ, data naa wa ni aabo nipasẹ bọtini olufiranṣẹ, eyiti ngbanilaaye lilo ipo yii fun afẹyinti si awọn ọna ṣiṣe ti ko ni igbẹkẹle (ti olugba ba jẹ adehun, ikọlu kii yoo ni anfani lati wọle si data laisi bọtini);
  • Atilẹyin ti a ṣafikun fun yiyọ awọn awakọ akọkọ lati adagun ibi-itọju kan, ti sopọ mejeeji ni ẹyọkan ati gẹgẹ bi apakan ti digi kan. Yiyọ ti wa ni ti gbe jade pẹlu awọn pipaṣẹ "zpool yọ". Ilana piparẹ naa daakọ data lati inu awakọ ti a ko kuro si awọn awakọ akọkọ ti o ku ninu adagun-odo;
  • Ṣafikun aṣẹ “point checkpoint” lati ṣafipamọ ipo lọwọlọwọ ti adagun omi pẹlu agbara lati yipo awọn ayipada siwaju si aaye ti o fipamọ ni akoko (a ṣẹda aworan ti gbogbo adagun-odo naa). Ẹya yii le jẹ iwulo ninu ilana ṣiṣe iṣẹ iṣakoso eka ti o lewu, eyiti labẹ awọn ipo deede ti o yori si awọn ayipada ti ko yipada (fun apẹẹrẹ, mu awọn asia ṣiṣẹ fun iṣẹ ZFS tuntun tabi imukuro data);
  • Aṣẹ “zpool trim” ti jẹ afikun lati sọ fun awọn awakọ ti a lo ninu adagun-odo nipa awọn apa ti ko si ni lilo mọ. Lilo iṣẹ TRIM jẹ ki o ṣee ṣe lati mu iṣẹ ṣiṣe ti SSDs pọ si ati ṣe idiwọ ibajẹ iṣẹ wọn. Ohun-ini “autotrim” tuntun ti ni imọran lati jẹ ki ilana isale ti nlọ lọwọ ti gbigbe awọn aṣẹ TRIM ṣiṣẹ;
  • Ṣafikun aṣẹ “zpool initialize” lati ṣe ipilẹṣẹ gbogbo aaye disk ti a ko pin, eyiti o fun laaye laaye lati ṣetan lẹsẹkẹsẹ fun lilo, laisi ibajẹ iṣẹ ni iraye si akọkọ (fun apẹẹrẹ, nigba gbigbalejo awọn ibi ipamọ agbara bi VMware VMDK);
  • Atilẹyin ti a ṣafikun fun ṣiṣe iṣiro ati awọn ipin ipele-iṣẹ akanṣe, ni afikun si olumulo ti o wa tẹlẹ ati awọn ipin ipele-ẹgbẹ. Ni pataki, awọn iṣẹ akanṣe jẹ aaye lọtọ ti awọn nkan ti o ni nkan ṣe pẹlu idamọ lọtọ (ID iṣẹ akanṣe). Asopọmọra jẹ asọye nipasẹ iṣẹ 'chattr -p' tabi nipasẹ ogún abuda. Fun iṣakoso ise agbese, awọn aṣẹ "zfs project" ati "zfs projectspace" ti gbekalẹ, eyi ti o gba ọ laaye lati ṣakoso awọn ẹda ti awọn iṣẹ akanṣe ati ṣeto awọn ifilelẹ aaye disk fun wọn;
  • Ṣe afikun agbara lati ṣẹda awọn iwe afọwọkọ Lua lati ṣe adaṣe awọn iṣẹ lọpọlọpọ pẹlu ZFS. Awọn iwe afọwọkọ ti wa ni ṣiṣe ni awọn agbegbe ti o ya sọtọ pataki nipa lilo aṣẹ “eto zpool”;
  • Titun ìkàwé muse pyzfs, eyiti o pese API iduroṣinṣin fun iṣakoso ZFS lati awọn ohun elo Python. Awọn ìkàwé ni a wrapper ni ayika libzfs_core ati ki o pese ohun aami ṣeto ti awọn iṣẹ, ṣugbọn nlo jo Python orisi;
  • Awọn ohun elo arcstat, arcsummary, ati dbufstat ti jẹ ki o ni ibamu pẹlu Python 3. Awọn ohun elo arcstat.py, arc_summary.py, ati dbufstat.py ti jẹ lorukọmii si awọn ẹya laisi itẹsiwaju ".py";
  • Ṣe afikun atilẹyin fun Linux Direct IO (O_DIRECT) wiwo ekuro, eyiti ngbanilaaye iwọle si data laisi buffering ati fori kaṣe naa;
  • Awọn iṣapeye iṣẹ ṣiṣe ti a ṣafihan:
    • Iṣẹ ti awọn pipaṣẹ “scrub” ati “resilver” ti ni iyara nitori pipin si awọn ipele meji (a ti pin ipin lọtọ fun ọlọjẹ metadata ati ipinnu ipo ti awọn bulọọki pẹlu data lori disiki, eyiti o fun laaye ni ijerisi siwaju sii nipa lilo data lẹsẹsẹ. kika);
    • Ṣe afikun atilẹyin fun awọn kilasi Pipin,
      gbigba awọn SSD kekere ti o kere ju laaye lati ṣajọpọ ati lo lati tọju awọn oriṣi kan ti awọn bulọọki ti a lo nigbagbogbo, gẹgẹbi metadata, data DDT, ati awọn bulọọki faili kekere;

    • Imudara iṣẹ ti awọn aṣẹ abojuto bii
      "akojọ zfs" ati "zfs gba", nipa fifipamọ awọn metadata pataki fun iṣẹ wọn;

    • Atilẹyin ti a ṣafikun fun isọdọkan ti awọn iṣẹ ipin ipin Àkọsílẹ nipasẹ ṣiṣe awọn ilana alapin lọtọ fun ẹgbẹ metaslab kọọkan. Lori awọn ọna ṣiṣe deede, ilosoke iṣẹ ṣiṣe ti 5-10%, ṣugbọn lori awọn ti o tobi (8 128 GB SSD, 24 core NUMA, 256 GB ti Ramu), ilosoke ninu awọn iṣẹ ipinpin Àkọsílẹ le de ọdọ 25%;
    • Ṣe afikun iṣeeṣe ti ipaniyan idaduro ti aṣẹ “resilver” (atunṣe pinpin data ni akiyesi awọn ayipada ninu iṣeto ti awọn awakọ) - ti iṣaaju ko ba ti pari nigbati o bẹrẹ iṣẹ tuntun, lẹhinna olutọju tuntun yoo bẹrẹ ṣiṣe nikan lẹhin ti tẹlẹ ti pari;
    • Awọn iṣapeye ti ni afikun si ZIL (ZFS Intent Log) lati gba laaye ṣiṣẹda ati sisẹ awọn bulọọki ni iwaju awọn bulọọki ti o tun wa ni ilọsiwaju nipasẹ ibi ipamọ;
    • Dinku akoko iforukọsilẹ fun awọn ipin (zvol) ninu eto naa. Nigbati adagun-odo kan ni nọmba nla ti awọn ipin, wọn wa ni bayi lẹsẹkẹsẹ lẹhin ṣiṣe “igbewọle zpool”;
    • Atilẹyin ti a ṣafikun fun iṣiro isare hardware ti SHA256 hashes ati awọn iṣẹ fifi ẹnọ kọ nkan AES-GSM ni lilo awọn eerun Intel QAT (Imọ-ẹrọ Iranlọwọ Yara). Atilẹyin ti a ṣafikun fun isare hardware ti chipset Intel C62x ati Sipiyu Atomu C3000.

orisun: opennet.ru

Fi ọrọìwòye kun