Linux 0.8.0 жүйесінде ZFS шығарылымы, Linux ядросы үшін ZFS іске асырулары

Екі жылға жуық дамудан кейін ұсынылды босату Linux 0.8.0 жүйесіндегі ZFS, Linux ядросы үшін модуль ретінде пакеттелген ZFS файлдық жүйесінің іске асырылуы. Модуль 2.6.32-ден 5.1-ге дейінгі Linux ядроларымен сынақтан өтті. Жақында дайын орнату пакеттері шығады дайындалатын болады Debian, Ubuntu, Fedora, RHEL/CentOS қоса алғанда, негізгі Linux дистрибутивтері үшін. ZFS on Linux модулі қазірдің өзінде Debian, Ubuntu, Gentoo, Sabayon Linux және ALT Linux дистрибутивтеріне енгізілген.

Linux жүйесіндегі ZFS бөлігі ретінде файлдық жүйенің жұмысына да, дыбыс реттеушісінің жұмысына да қатысты ZFS компоненттерінің іске асырылуы дайындалды. Атап айтқанда, келесі құрамдас бөліктер енгізілген: SPA (Сақтау пулының бөлгіші), DMU (Деректерді басқару блогы), ZVOL (ZFS эмуляцияланған көлемі) және ZPL (ZFS POSIX деңгейі). Бұған қоса, жоба ZFS-ті Luster кластерінің файлдық жүйесі үшін сервер ретінде пайдалану мүмкіндігін береді. Жобаның жұмысы OpenSolaris жобасынан импортталған түпнұсқа ZFS кодына негізделген және Illumos қауымдастығының жақсартулары мен түзетулерімен жақсартылған. Жоба АҚШ Энергетика министрлігімен келісім-шарт бойынша Ливермор ұлттық зертханасы қызметкерлерінің қатысуымен әзірленуде.

Код тегін 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 сияқты виртуалдандырылған қоймаларды орналастыру кезінде);
  • Бұрын қол жетімді пайдаланушы және топ деңгейіндегі квоталарға қосымша есеп және жоба деңгейіндегі квоталарға қолдау қосылды. Негізінде жобалар жеке идентификатормен (жоба идентификаторы) байланысты объектілердің жеке кеңістігі болып табылады. Байланыстыру 'chattr -p' операциясы немесе төлсипат мұрасы арқылы анықталады. Жобаларды басқару үшін «zfs project» және «zfs projectspace» командалары ұсынылған, олар жобаларды құруды басқаруға және олар үшін дискілік кеңістік шектеулерін орнатуға мүмкіндік береді;
  • ZFS-пен әртүрлі жұмыстарды автоматтандыру үшін Lua сценарийлерін жасау мүмкіндігі қосылды. Сценарийлер арнайы оқшауланған орталарда «zpool program» пәрмені арқылы іске қосылады;
  • Жаңа кітапхана енгізілді pyzfs, ол Python қолданбаларынан 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 128 ГБ SSD, 24 ядролық NUMA, 256 ГБ жедел жады) блоктарды бөлу операцияларының ұлғаюы 25% жетуі мүмкін;
    • «Resilver» пәрменін кешіктіріп орындау мүмкіндігі қосылды (дискілердің конфигурациясындағы өзгерістерді ескере отырып, деректерді таратуды қайта құру) - егер жаңа операцияны бастау кезінде алдыңғысы әлі аяқталмаса, жаңа өңдеуші тек осыдан кейін ғана орындай бастайды. алдыңғысы аяқталды;
    • Оңтайландырулар ZIL (ZFS Intent Log) жүйесіне қоймада әлі өңделіп жатқан блоктар болған кезде блоктарды жасауға және өңдеуге мүмкіндік беру үшін қосылды;
    • Жүйедегі бөлімдерді (zvol) тіркеу уақыты қысқарды. Пул бөлімдердің көп санын қамтыған кезде, олар енді "zpool импорттау" орындалғаннан кейін бірден қолжетімді болады;
    • Intel QAT (Quick Assist Technology) чиптерін пайдаланып SHA256 хэштерін және AES-GSM шифрлау операцияларын аппараттық жеделдетілген есептеуге қолдау қосылды. Intel C62x чипсетінің аппараттық жеделдетуіне және CPU Atom C3000 қолдауына қосылды.

Ақпарат көзі: opennet.ru

пікір қалдыру