Нашри ZFS дар Linux 0.8.0, татбиқи ZFS барои ядрои Linux

Пас аз тақрибан ду соли рушд пешниҳод карда мешавад релиз ZFS дар Linux 0.8.0, татбиқи системаи файлии ZFS, ки ҳамчун модул барои ядрои Linux баста шудааст. Модул бо ядроҳои Linux аз 2.6.32 то 5.1 санҷида шудааст. Бастаҳои насби омода ба зудӣ меоянд тайёр карда мешавад барои тақсимоти асосии Linux, аз ҷумла Debian, Ubuntu, Fedora, RHEL/CentOS. Модули ZFS дар Linux аллакай ба тақсимоти Debian, Ubuntu, Gentoo, Sabayon Linux ва ALT Linux дохил карда шудааст.

Ҳамчун як қисми ZFS дар Linux, татбиқи ҷузъҳои ZFS, ки ҳам ба кори системаи файлӣ ва ҳам ба кори мудири ҳаҷми ҳаҷм алоқаманданд, омода карда шудааст. Аз ҷумла, ҷузъҳои зерин амалӣ карда мешаванд: SPA (Storage Pool Allocator), DMU (Unit Management Data), ZVOL (ZFS Emulated Volume) ва ZPL (ZFS POSIX Layer). Илова бар ин, лоиҳа қобилияти истифодаи ZFS -ро ҳамчун пуштибони системаи файлии кластери Luster таъмин мекунад. Кори лоиҳа ба рамзи аслии ZFS асос ёфтааст, ки аз лоиҳаи OpenSolaris ворид карда шудааст ва бо такмилҳо ва ислоҳҳо аз ҷомеаи Illumos такмил дода шудааст. Лоиҳа бо иштироки кормандони лабораторияи миллии Ливермор тибқи шартнома бо вазорати энергетикаи ИМА таҳия карда мешавад.

Рамз зери литсензияи ройгони CDDL паҳн карда мешавад, ки бо GPLv2 номувофиқ аст, ки имкон намедиҳад, ки ZFS дар Linux ба шохаи асосии ядрои Linux ҳамгиро шавад, зеро омехта кардани код дар зери иҷозатномаҳои GPLv2 ва CDDL иҷозат дода намешавад. Барои бартараф кардани ин номувофиқатии литсензия, қарор дода шуд, ки тамоми маҳсулот дар доираи литсензияи CDDL ҳамчун модули алоҳида бор карда шавад, ки аз аслӣ ҷудо карда мешавад. Устувории ZFS дар базаи коди Linux ҳамчун муқоисаи системаҳои файлии дигар барои Linux арзёбӣ мешавад.

Тағйироти асосӣ:

  • Дастгирии дарунсохт барои рамзгузории маълумоти захирашуда дар сатҳи системаи файлӣ ва қисмҳо илова карда шудааст. Алгоритми рамзгузории пешфарз aes-256-ccm аст. Фармони "zfs load-key" барои бор кардани калидҳои рамзгузорӣ пешниҳод шудааст;
  • Имконияти интиқоли маълумоти рамзгузоришуда ҳангоми иҷрои фармонҳои "zfs send" ва "zfs receive" амалӣ карда шуд. Ҳангоми муайян кардани варианти "-w", маълумоте, ки аллакай дар ҳавз рамзгузорӣ шудааст, бидуни рамзкушоии фосилавӣ ба ҳавзи дигар интиқол дода мешавад. Ҳангоми чунин нусхабардорӣ маълумот бо калиди ирсолкунанда ҳифз карда мешавад, ки имкон медиҳад, ки ин режим барои нусхабардорӣ ба системаҳои нобовар истифода шавад (дар ҳолати созиши қабулкунанда, ҳамлакунанда бидуни калид ба маълумот дастрасӣ пайдо карда наметавонад);
  • Дастгирии иловагӣ барои хориҷ кардани дискҳои ибтидоӣ аз ҳавзи нигоҳдорӣ, ки ҳам ба таври инфиродӣ ва ҳам ҳамчун як қисми оина пайваст карда шудаанд. Хориҷкунӣ бо фармони "zpool remove" анҷом дода мешавад. Раванди несткунӣ маълумотро аз диски хориҷшуда ба дискҳои боқимондаи ибтидоии ҳавз нусхабардорӣ мекунад;
  • Фармони "zpool checkpoint" барои нигоҳ доштани ҳолати кунунии ҳавз бо қобилияти баргардонидани тағиротҳои минбаъда ба нуқтаи захирашуда дар вақт илова карда шуд (намуди акси тамоми ҳавз сохта мешавад). Ин хусусият метавонад дар раванди иҷрои корҳои эҳтимолан хатарноки мураккаби маъмурӣ муфид бошад, ки дар шароити муқаррарӣ ба тағйироти бебозгашт оварда мерасонад (масалан, фаъол кардани парчамҳо барои функсияҳои нави ZFS ё тозакунии маълумот);
  • Фармони "zpool trim" барои огоҳ кардани дискҳои дар ҳавз истифодашаванда дар бораи бахшҳое, ки дигар истифода намешаванд, илова карда шудааст. Истифодаи амалиёти TRIM имкон медиҳад, ки самаранокии SSD-ҳо афзоиш ёбад ва таназзули кори онҳо пешгирӣ карда шавад. Амволи нави "автотрим" пешниҳод шудааст, ки барои имкон додани раванди муттасили заминаи интиқоли фармонҳои TRIM;
  • Фармони "zpool initialize" илова карда шуд, то ҳама фазои диски тақсимнашударо оғоз кунад, ки он имкон медиҳад, ки бе таназзули кор дар дастрасии аввал фавран барои истифода омода шавад (масалан, ҳангоми ҷойгиркунии анборҳои виртуалӣ ба монанди VMware VMDK);
  • Илова ба квотаҳои қаблан дастраси корбар ва сатҳи гурӯҳӣ, дастгирии баҳисобгирӣ ва квотаҳои сатҳи лоиҳа. Дар асл, лоиҳаҳо фазои алоҳидаи объектҳо мебошанд, ки бо идентификатори алоҳида (ID-и лоиҳа) алоқаманданд. Пайвастшавӣ тавассути амалиёти "chattr -p" ё тавассути мероси атрибутӣ муайян карда мешавад. Барои идоракунии лоиҳа фармонҳои "zfs project" ва "zfs projectspace" пешниҳод шудаанд, ки ба шумо имкон медиҳанд, ки эҷоди лоиҳаҳоро идора кунед ва барои онҳо маҳдудияти фазои дискро муқаррар кунед;
  • Қобилияти сохтани скриптҳои Lua барои автоматикунонии корҳои гуногун бо ZFS илова карда шуд. Скриптҳо дар муҳити махсуси ҷудошуда бо истифода аз фармони "zpool program" иҷро карда мешаванд;
  • Китобхонаи нав ба кор андохта шуд pyzfs, ки API-и устуворро барои идоракунии ZFS аз замимаҳои Python таъмин мекунад. Китобхона як бастаи атрофи libzfs_core аст ва маҷмӯи якхелаи функсияҳоро таъмин мекунад, аммо намудҳои наздиктари Python-ро истифода мебарад;
  • Утилитҳои arcstat, arcsummary ва dbufstat бо Python 3 мувофиқ карда шуданд. Утилитаҳои arcstat.py, arc_summary.py ва dbufstat.py ба версияҳои бе тамдиди ".py" номгузорӣ шуданд;
  • Дастгирии иловашуда барои интерфейси ядрои Linux Direct IO (O_DIRECT), ки имкон медиҳад дастрасии маълумот бидуни буферӣ ва канорагирии кэш;
  • Оптимизатсияи иҷроиш ҷорӣ карда шуд:
    • Кори фармонҳои «скраб» ва «резилвер» аз сабаби ба ду марҳила тақсим шудан суръат гирифт (барои сканкунии метамаълумотҳо ва муайян кардани ҷойгиршавии блокҳо бо маълумот дар диск марҳилаи алоҳида ҷудо карда шудааст, ки ин имкон медиҳад санҷиши минбаъда бо истифода аз маълумоти пайдарпай хондан);
    • Дастгирии иловагӣ барои синфҳои тақсимот,
      имкон медиҳад, ки SSD-ҳои нисбатан хурд ҷамъ карда шаванд ва барои нигоҳ доштани танҳо намудҳои муайяни блокҳои маъмулан истифодашаванда, ба монанди метамаълумот, додаҳои DDT ва блокҳои хурди файл истифода шаванд;

    • Иҷрои беҳтари фармонҳои администратор ба монанди
      "zfs list" ва "zfs get" тавассути кэшкунии метамаълумоти зарурӣ барои амалиёти онҳо;

    • Дастгирии иловагӣ барои параллелизатсияи амалиёти тақсимоти блок тавассути иҷро кардани равандҳои ҷудогона барои ҳар як гурӯҳи метаслаб. Дар системаҳои муқаррарӣ, афзоиши иҷроиш 5-10% мушоҳида мешавад, аммо дар системаҳои калон (8 128 ГБ SSD, 24 ядрои NUMA, 256 ГБ RAM), афзоиши амалиёти тақсимоти блок метавонад ба 25% мерасад;
    • Имконияти ба таъхир андохтани иҷрои фармони "resilver" илова карда шуд (аз нав сохтани тақсимоти маълумот бо назардошти тағирот дар конфигуратсияи дискҳо) - агар қаблӣ ҳангоми оғози амалиёти нав ба анҷом нарасидааст, коркардкунандаи нав танҳо пас аз он оғоз мекунад. охири пештара;
    • Ба ZIL (ZFS Intent Log) оптимизатсияҳо илова карда шуданд, то имкон фароҳам оранд ва коркарди блокҳоро дар ҳузури блокҳое, ки ҳоло ҳам аз ҷониби нигаҳдорӣ коркард мешаванд;
    • Кам кардани вақти сабти ном барои қисмҳо (zvol) дар система. Вақте ки ҳавз миқдори зиёди қисмҳоро дар бар мегирад, онҳо ҳоло фавран пас аз анҷоми "импорти zpool" дастрас мешаванд;
    • Дастгирии иловашуда барои ҳисобкунии суръатбахши сахтафзори hashes SHA256 ва амалиёти рамзгузории AES-GSM бо истифода аз микросхемаҳои Intel QAT (Quick Assist Technology). Дастгирии иловашуда барои суръатбахшии сахтафзори чипсети Intel C62x ва CPU Atom C3000.

Манбаъ: opennet.ru

Илова Эзоҳ