Linux 0.8.0 боюнча ZFS чыгаруу, Linux ядросу үчүн ZFS ишке ашыруу

дээрлик эки жыл иштеп кийин сунушталды бошотуу Linux 0.8.0 боюнча ZFS, Linux ядросу үчүн модуль катары иштелип чыккан ZFS файл тутумунун ишке ашырылышы. Модуль 2.6.32ден 5.1ге чейин Linux ядролору менен сыналган. Даяр орнотуу топтомдору жакында чыгат даярдалат негизги Linux дистрибуциялары үчүн, анын ичинде Debian, Ubuntu, Fedora, RHEL/CentOS. ZFS on Linux модулу буга чейин Debian, Ubuntu, Gentoo, Sabayon Linux жана ALT Linux дистрибуцияларына киргизилген.

Linux боюнча ZFS бир бөлүгү катары, файлдык системанын иштешине да, көлөм менеджеринин иштешине да тиешелүү ZFS компоненттерин ишке ашыруу даярдалган. Атап айтканда, төмөнкү компоненттер ишке ашырылат: SPA (Сактагыч бассейн бөлүштүргүч), DMU (Data Management Unit), ZVOL (ZFS Emulated Volume) жана ZPL (ZFS POSIX катмары). Кошумчалай кетсек, долбоор ZFSди Luster кластердик файл тутумунун сервери катары колдонуу мүмкүнчүлүгүн берет. Долбоордун иши OpenSolaris долбоорунан импорттолгон жана Illumos коомчулугунун жакшыртуулары жана оңдоолору менен кеңейтилген баштапкы ZFS кодуна негизделген. Долбоор АКШнын Энергетика министрлиги менен түзүлгөн келишимдин негизинде Ливермор улуттук лабораториясынын кызматкерлеринин катышуусунда иштелип жатат.

Код акысыз CDDL лицензиясы астында таратылат, ал GPLv2 менен шайкеш келбейт, ал Linux'тагы ZFSди Linux ядросунун негизги бутагына интеграциялоого жол бербейт, анткени GPLv2 жана CDDL лицензиялары астында кодду аралаштыруу кабыл алынбайт. Бул лицензиялык шайкешсиздикти айланып өтүү үчүн, CDDL лицензиясы боюнча бүт продуктуну ядродон өзүнчө берилген өзүнчө жүктөлүп алынуучу модуль катары жайылтуу чечими кабыл алынды. Linux код базасындагы ZFS туруктуулугу 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” буйруктары берилген, алар долбоорлорду түзүүнү башкарууга жана алар үчүн диск мейкиндигин чектөөгө мүмкүндүк берет;
  • ZFS менен ар кандай иштерди автоматташтыруу үчүн Lua скрипттерин түзүү мүмкүнчүлүгү кошулду. Скрипттер “zpool program” буйругун колдонуу менен атайын обочолонгон чөйрөлөрдө ишке киргизилет;
  • Жаңы китепкана ишке киргизилди pyzfsPython тиркемелеринен ZFS башкаруу үчүн туруктуу API камсыз кылат. Китепкана libzfs_core үстүнөн оролгон жана бирдей функциялар топтомун камсыз кылат, бирок Pythonго жакыныраак типтерди колдонот;
  • arcstat, arcsummary жана dbufstat утилиталары эми Python 3 менен шайкеш келет. arcstat.py, arc_summary.py жана dbufstat.py утилиталарынын аталышы “.py” кеңейтүүсү жок версияларга өзгөртүлдү;
  • Linux Direct IO (O_DIRECT) өзөк интерфейси үчүн кошумча колдоо, буферлөөсүз берилиштерге жетүүгө жана кэшти айланып өтүүгө мүмкүндүк берет;
  • Ишти оптималдаштыруу сунушталды:
    • "Scrub" жана "resilver" командаларынын иши аны эки фазага бөлүү менен тездетилген (метаберилиштерди сканерлөө жана дисктеги маалымат блокторунун жайгашкан жерин аныктоо үчүн өзүнчө фаза бөлүнгөн, бул маалыматтарды ырааттуу окуу аркылуу андан ары текшерүүгө мүмкүндүк берет) ;
    • Бөлүштүрүү класстары үчүн кошумча колдоо,
      салыштырмалуу кичинекей SSD дисктерин бассейнге киргизүүгө жана метадайындар, DDT маалыматтары жана файлдары бар кичинекей блоктор сыяктуу көп колдонулган блоктордун айрым түрлөрүн гана сактоого мүмкүндүк берүү;

    • сыяктуу башкаруу үчүн буйруктардын аткарылышын жогорулатуу
      "zfs list" жана "zfs get", алардын иштеши үчүн зарыл болгон метаберилиштерди кэштөөдөн улам;

    • Ар бир метаслаб тобу үчүн өзүнчө "бөлүүчү" процесстерин ишке киргизүү менен блокторду бөлүштүрүү операцияларын параллелизациялоо үчүн кошумча колдоо. Кадимки системаларда 5-10% га өндүрүмдүүлүктүн өсүшү байкалат, бирок чоңдордо (8 ГБ SSD, 128 негизги NUMA, 24 ГБ оперативдүү эс тутум) блокторду бөлүштүрүү операцияларынын өсүшү 256% га жетиши мүмкүн;
    • "Resilver" буйругун кечиктирип аткаруу мүмкүнчүлүгү кошулду (дисктердин конфигурациясындагы өзгөрүүлөрдү эске алуу менен маалыматтарды бөлүштүрүүнү кайра куруу) - эгерде жаңы операцияны баштаганда мурункусу бүтө элек болсо, анда жаңы иштеткич иштей баштайт мурунку аяктагандан кийин гана аткаруу;
    • ZIL (ZFS Intent Log) журналына оптималдаштыруулар жасалды, алар сактагычта дагы эле иштетилип жаткан блокторду түзүүгө жана иштетүүгө мүмкүндүк берет;
    • Системада бөлүмдөрдү (zvol) каттоо убактысы кыскартылды. Пулда көп сандагы бөлүктөр камтылганда, алар азыр “zpool импорту” аткарылгандан кийин дароо жеткиликтүү болот;
    • Intel QAT (Quick Assist Technology) колдогон чиптерди колдонуу менен SHA256 хэш эсептөөлөрүн жана AES-GSM шифрлөө операцияларын аппараттык тездетүүгө колдоо кошулду. Intel C62x чипсети жана Atom C3000 CPU үчүн аппараттык тездетүү куралдарына колдоо кошулду.

Source: opennet.ru

Комментарий кошуу