
Винаги, когато се пуска нова версия на OpenZFS, сред администраторите и ентусиастите възниква един и същ въпрос: Трябва ли да актуализираме възможно най-скоро или да изчакаме, докато всичко заработи по-гладко? С версия 2.4 въпросът става още по-интригуващ, защото това не е просто обикновена корекция за поддръжка, а значителен скок в производителността, управлението на пространството и разширените функции за хибридни пулове. Освен това, в общността имаше известен дебат относно кандидатите за издаване (RC), особено по отношение на тяхната интеграция със системи като FreeBSD.
В тази статия ще разгледаме спокойно Най-забележителните нови функции на OpenZFS 2.4.1Това включва специфични промени за Windows и macOS, състоянието на кандидатите за издаване и всички онези вътрешни подобрения, които, макар и да не са очевидни веднага, правят съществена разлика в производствена среда. Ако управлявате Linux, FreeBSD или TrueNAS сървъри или имате затруднения с портове за Windows или macOS, тук ще намерите всичко, което трябва да знаете, за да оцените надстройката.
OpenZFS 2.4.1 и специфични промени в Windows
Етикетът zfswin-2.4.1rc1 Това включва адаптирането на клон 2.4.1 към средата на Windows, с много ясен фокус върху хибридни пулове и специални виртуални разработчициТова е крачка напред, като прави специалните vdevs ключови компоненти на производителността.
В тази версия, a Специално vdev може да действа като SLOG (ZFS Intent Log) за синхронни записи. Това ви позволява да се възползвате от бързи SSD или NVMe устройства не само за метаданни или малки блокове, но и за централизиране на операциите по синхронизиране, което е особено полезно за работни натоварвания като бази данни или системи за съобщения, които разчитат на незабавни комити за запис.
В допълнение, хибридни басейни Те могат да бъдат проектирани да се възползват максимално от комбинацията от флаш и механични дискове, повишавайки ефективността в Windows среди с високи изисквания за IOPS.
Друга важна промяна е способността на специални метаданни за запазване на файлова система vdev, малки файлове или дори всички файлове в набора от данни, в зависимост от това как е конфигуриран размерът на малкия блок (special_small_blocksАко размерът на блока е 0, се запазват само метаданни; ако размерът е по-малък от размера на файла, малките файлове попадат в специалния vdev; и ако recsize Ако е по-малък или равен на този праг, е възможно почти всички файлове във файловата система да попаднат в бързата част на пула.
Комбиниране на тази гъвкавост с инструменти като пренаписване на zfsе възможно преместване на данни между механични устройства и флаш устройства без да се налага копиране в потребителското пространство. В Windows среди, където произволната производителност на малки записи може да бъде критична, тази комбинация от zvol в специален vdev + SLOG върху флаш памет + преместване на данни с презаписване позволява проектирането на високо прецизно настроени хибридни архитектури.
Екипът на OpenZFS за Windows настоява, че поради идиосинкразия на операционната система (монтиране, заключване на файлове, интеграция с драйвери на трети страни, антивирусна програма и др.) изискват значително повече тестове на разнообразен хардуер, отколкото на Linux или macOS. Следователно, с всеки кандидат за версия, те насърчават докладването както на нови проблеми, така и на такива, пренесени от версия 2.3, в GitHub, с цел възможно най-бързо довеждане на порта за Windows до същото ниво на зрялост като версията за macOS.
Квоти по подразбиране и нови възможности за управление на пространството
Една от най-желаните промени в ежедневието е възможността за дефиниране на предварително определени квоти за потребители, групи и проекти. Досега задаването на ограничения за използване в многопотребителски среди изискваше подход за всеки отделен случай; с OpenZFS 2.4 могат да се установят правила по подразбиране за всеки набор от данни.
Това ви позволява да зададете например базова такса за всички потребители Тези ограничения се създават в рамките на специфична файлова система или стандартна граница на проекта се прилага автоматично, когато се разпределят нови ресурси. Целта е да се предотврати създаването на проблем от един-единствен невнимателен потребител или неправилно конфигурирана услуга. напълнете целия басейн изненадващо.
Тези квоти по подразбиране не заместват съществуващите специфични правила, а по-скоро Те се допълват взаимно като глобална политикаЗапочвайки от основната конфигурация, могат да се дефинират изключения за конкретни потребители или групи, като се извършва фина настройка при необходимост. Всичко това се управлява с помощта на стандартни ZFS свойства, така че всеки, който вече е запознат с модела на свойствата, не е необходимо да изучава напълно нов интерфейс.
Директен вход/изход, вход/изход без кеширане и неправилно подравнени записи
По отношение на производителността, OpenZFS 2.4 въвежда много интересна промяна в управлението на... Директен вход/изходВ сценарии, където се използват неправилно подравнени записи, използването на O_DIRECT може да предизвика неефективни пътища на кода.
За да се реши това, сега е вграден механизъм, чрез който, когато директният вход/изход не може да се приложи идеално, резервен режим към лек безкеширан входно/изходен режимТози алтернативен път е специално проектиран да се справи с тези проблемни записи, без да наказва производителността повече от необходимото.
Какво означава това на практика? Че приложенията, които смесват подравнени и неподравнени точки за достъп Те престават да бъдат патологичен случай, който задейства затруднения в I/O стека. Поведението става по-предсказуемо и стабилно, особено в системи, които обслужват бази данни, виртуализационни двигатели или услуги с интензивен директен I/O.
Унифицирано регулиране на разпределението и намаляване на фрагментацията
Друга дълбока, макар и по-малко видима, промяна е новият алгоритъм на унифицирано регулиране на разпределениетоЦелта му е по-добро управление на разпределението на блокове, когато системата е под високо натоварване от запис, намалявайки фрагментацията на vdev и поддържайки по-организирано разпределение на пространството.
Досега, при определени натоварвания, беше сравнително лесно да се елиминират модели на запис, които оставяха vdev файловете много... фрагментиран и труден за управление В дългосрочен план, този унифициран алгоритъм хармонизира скоростта на разпределение, което води до по-стабилно поведение, когато пулът се запълни или когато се смесват много блокове с различни размери.
Тази оптимизация е особено важна в дългосрочни басейникъдето през годините vdev-тата се разширяват, пространството се ребалансира, извършват се scrub-ове, добавят се устройства и се поддържат променящи се работни натоварвания. Наличието на по-интелигентен механизъм за разпределение помага на ZFS да поддържа добри времена за реакция, дори когато пулът вече не е толкова „чист“, колкото в първия ден.
Подобрения в криптирането с AVX2 и AES-GCM
По отношение на сигурността и производителността, OpenZFS 2.4 подобрява имплементацията на криптиране до по-добре използвайте AVX2 инструкции за AES-GCMПроектът използва имплементацията на BoringSSL като ориентир за оптимизиране на този код върху съвременни процесори, особено върху архитектури като AMD Zen 3.
Резултатът е значително повишаване на производителността (В определени сценарии са докладвани подобрения до 80%), което намалява въздействието на криптирането върху процесора. Тази оптимизация е особено забележима в системи, които съхраняват големи обеми криптирани данни или извършват много едновременни операции върху криптирани набори от данни.
На практика това прави ZFS криптирането е „по-евтино“Не става безплатен, но престава да бъде толкова съществена пречка, както в предишните версии, което улеснява приемането му в среди, където досега имаше компромис между сигурност и производителност.
ZIL в специални vdevs и разширени special_small_blocks
Управлението на специални видеоразработчици Това е друга област, в която OpenZFS 2.4 прави интересен скок. Традиционно тези устройства са били използвани за метаданни, малки блокове или таблици за дедупликация, обикновено на SSD или NVMe устройства.
С тази версия системата позволява ZIL (ZFS Intent Log) Хостингът му е на специални vdevs, ако има такива. Това означава, че синхронните записи могат да се осъществяват на носители с много ниска латентност, без да е необходимо отделно устройство като SLOG, което отваря врати за по-гъвкави хибридни дизайни на пулове.
Собствеността special_small_blocks Разширен е така, че Съчинения на ZVOL Тези специални VDEV също могат да попаднат в тези специални VDEV, не само определени обикновени файлови блокове. Освен това, вече не е задължително стойността на това свойство да бъде степен на две, което позволява по-голяма гъвкавост при настройване на прага на „малък блок“ спрямо реалността на всяко зареждане.
Чрез комбиниране на ZIL в специални vdevs, ZVOL на светкавицата и регулируеми праговеМогат да бъдат проектирани архитектури, при които метаданните, малките блокове, таблиците за дедупликация, клонингите и синхронните записи са концентрирани върху най-бързите устройства, оставяйки въртящите се дискове за по-малко чувствително към латентност масово съхранение.
zfs rewrite и zfs rewrite -P: преместване на данни без нарушаване на нищо
Представена е серията 2.3 пренаписване на zfs като една от най-мощните функции напоследък, а OpenZFS 2.4 го прави още една крачка напред, като добавя опцията zfs rewrite -PТози инструмент позволява пренаписването на данни в пула, като същевременно се запазва логическото им значение непокътнато.
Con zfs rewrite можете, например, промяна на алгоритъма за компресия, контролната сума, дедупликацията или брой копия, пребалансиране на данните след добавяне на vdevs или принудително преместване на определени файлове в специални vdevs, всичко това без да се налага копирането им в потребителското пространство и без да се променят метаданни като mtime.
Вариантът -P образувано запазване на логическото време на раждане на блоковете Винаги, когато е възможно. Това има пряко въздействие върху ефективността на инкременталното изпращане/получаване, защото като поддържат тези стойности стабилни, последващите репликации могат по-добре да открият какво всъщност се е променило и да намалят обема на данните, пътуващи между системите.
Друг важен детайл е, че процесът на пренаписване е защитен с стандартни брави за гамаТова му позволява да работи паралелно с реални натоварвания, без прекомерно да блокира набора от данни. В среди с sync=alwaysПредимството е двойно, защото операцията не причинява допълнителни записи в ZIL, тъй като няма логически промени в съдържанието, което намалява въздействието върху устройствата, предназначени за синхронни записи.
Нови опции за управление: -a, range scrub и BRT prefetch
OpenZFS 2.4 също подобрява живота на администратора с малки промени в инструментите на командния редЕдно от най-практичните е добавянето на опцията -a|--all в операции като търкане, подрязване или инициализация.
Благодарение на тази опция е възможно Изпълнете scrub, trim или init на всички импортирани пулове с еднократно преминаване, без да се налага ръчно преминаване през всеки един от тях. Това намалява човешките грешки и опростява скриптовете за поддръжка на сървъри с множество пулове.
Друга нова функция е възможността за бягане zpool scrub ограничено до определени времеви диапазони чрез опциите -S y -EТози подход с времеви прозорец е идеален, когато има съмнения за проблеми в определен период или когато искате да разделите разходите за голямо почистване на няколко по-малко натрапчиви частични изпълнения.
Освен това се въвежда zpool prefetch -t brtкоето позволява предварително зареждане в паметта на Таблица с референтни блокове (BRT)Тоест, вътрешната таблица, използвана за клониране на блокове. Предварителното извличане на тази структура намалява латентността при операции, които зависят от клониране, което е от полза за работни натоварвания, които силно разчитат на клонинги.
Разрешения, преименувани инструменти, премахване на дубликати и клониране на блокове
В областта на сигурността и управлението на разрешенията, OpenZFS 2.4 въвежда ново разрешение, наречено изпрати:криптираноС него можете по-прецизно да контролирате кой е оторизиран да изпраща криптирани набори от данни, като разделяте отговорностите между тези, които управляват моментните снимки, репликацията и достъпа до ключове.
В същото време, комунални услуги, известни като arc_summary y arcstat те стават известни като zarcsummary y zarcstatТова преименуване помага да се избегнат конфликти на имена с други системни инструменти и прави по-ясно, че това са помощни програми, свързани с ZFS ARC, което е полезно в среди с много компоненти.
Вътрешно, клон 2.4 натрупва Оптимизации и корекции при дедупликация и клониране на блоковеСтруктурите от данни се усъвършенстват, граничните случаи се коригират и се полагат усилия за намаляване на въздействието върху паметта и процесора. Това не е нещо, което потребителят ще забележи веднага като нова опция, но се изразява в по-малко изненади, когато дедупликацията или клонирането на блокове се активират при големи натоварвания.
Групови блокове, ashift, бавни vdevs и специални топологии
Новата версия включва широка гама от Подобрения и корекции, свързани с групови блоковеТова са специални блокове, които ZFS използва, когато не може да съхранява данни по конвенционалния начин. Всеки недостатък в тази област на кода може да бъде сериозен, така че многобройните корекции, които са въведени, осигуряват допълнителна устойчивост.
Управлението на ashiftПараметърът, който задава минималния размер на разпределението, съобразен с размера на физическия сектор на устройството. По-интелигентното управление на `ashift` намалява ненужното презаписване на дискове с големи сектори и помага за поддържане на производителността през целия жизнен цикъл на пула.
Друг много практичен принос е възможността да „да се сложат на пейката“ деца, които се държат необичайно бавноВместо да позволи на проблемен диск да намали производителността на цялата система, системата може временно да спре да разчита на него, което е много полезно при дискове, които започват да се повреждат периодично или в конфигурации с хетерогенен хардуер.
Накрая Те облекчават ограниченията на топологията в специални vdevs и дедупликация.Това отваря повече възможности при проектирането на разширени пулове. Вече е по-лесно да се комбинират бързи устройства за метаданни, дедуплициран таблици, ZIL файлове и други чувствителни елементи, без постоянно да се натъквате на прекалено строги ограничения в дефиницията на топологията.
OpenZFS 2.3.4 като основа за прехода към версия 2.4
За да разберем напълно мащаба на скока, си струва да помним, че OpenZFS 2.3.4 Това беше ключово издание за поддръжка, което разшири поддръжката на ядрото на Linux до версия 6.16, запазвайки минимума на 4.18, и потвърди съвместимостта с FreeBSD от 13.3 до подготвяните клонове 15.0.
Този преглед доведе до издаването на първоначалната версия на zfs rewrite, предназначени точно за преместване на данни без промяна на логическото им съдържание и без да се налага да се прибягва до изпращане/получаване с преименуване на набори от данни или ръчно копиране. Идеята беше да се предложи инструмент, способен да ребалансира пуловете след добавяне на vdevs, да намали фрагментацията, причинена от случайни записи, или да приложи нови свойства за съхранение към съществуващи данни.
За разлика от класическите стратегии, zfs rewrite беше по-бърз и по-малко натрапчив защото избягва пренасянето на данните в потребителското пространство и не налага допълнителни записи в ZIL в набори от данни с sync=alwaysОсвен това, уважение mtime и други видими метаданнитака че приложенията, които работят върху файловата система, едва забелязват, че нещо се е случило.
Взети заедно, OpenZFS 2.4 и неговата еволюция 2.4.1 представляват значителен скок в производителността, гъвкавостта и инструментите за управлениеОсобено за тези, които разчитат на хибридни пулове със специални vdevs, интензивно криптиране и многопотребителски среди със строги квоти. Подобрения в криптирането с AVX2, унифицирано регулиране на разпределението, ZIL в специални vdevs и разширяването на special_small_blocks, zfs rewrite И неговите варианти, заедно с цялата работа по групови блокове, ashift, дедупликация и клониране на блокове, консолидират OpenZFS като една от най-модерните файлови системи в безплатната екосистема, готова за пълноценно използване в Linux и FreeBSD, както и в macOS и, малко по малко, и в Windows.
