OpenZFS 2.4 разширява съвместимостта с Linux 4.18–6.18 и FreeBSD 13.3+, осигурявайки дългосрочна стабилност.

  • Той въвежда ключови подобрения в производителността: AVX2 криптиране, оптимизиран кеширан входно-изходен трафик и нов унифициран алгоритъм за разпределение.
  • Нови инструменти като zfs rewrite -P, квоти по подразбиране и scrub, базиран на диапазон, улесняват разширеното администриране.
  • Това повишава надеждността с корекции в групови блокове, подобрения в превключването на превключването и управлението на специални и бавни видеоустройства.

OpenZFS 2.4

Когато се пусне нова версия на OpenZFS, много администратори се чудят дали си струва да се актуализира сега или да се изчака прахът да се уталожи. OpenZFS 2.4 Въпросът е още по-интересен, защото Това идва с дълбоки промени в производителността, новите инструменти за управление и някои дебати в общността относно използването на кандидати за издаване в производствени системи.

Общи характеристики на OpenZFS 2.4

OpenZFS 2.4 е представен като версия на стабилен и доста амбициозен характер Проектиран както за Linux, така и за FreeBSD среди, проектът, към момента на окончателното си етикетиране, вече подчертаваше, че целта е да се продължи насърчаването на зрялостта на файловата система и мениджъра на томове, като същевременно се поддържа съвместимост с последните ядра и се гарантира сигурността на данните.

Тази версия обединява много функции, които са били в процес на разработка от клон 2.3 и неговите междинни редакции: подобрения в производителността в слой за криптираненови инструменти за управление, като например пренаписване на zfsПо-гъвкави възможности за квоти и вътрешни промени, предназначени да намалят фрагментацията, да оптимизират дедупликацията и да усъвършенстват сложни аспекти, като например управление на групови блокове или поведение при проблемни дискове.

Общността е обърнала специално внимание и на интеграция със съвременни ядраВ Linux е декларирана поддръжка от версия 4.18 до последните LTS клонове (включително ядрото 6.18 към момента на стабилното издание на версия 2.4), докато във FreeBSD са обхванати версии от 13.3 нататък, включително 14.0 и по-нови клонове, които са в процес на подготовка, като например 15.0.

Поддръжка на платформа и съвместимост на ядрото с OpenZFS 2.4

Един от стълбовете на OpenZFS 2.4 е неговият широка съвместимост с платформиЗа много администратори това е ключово, защото им позволява да надграждат версиите на операционната система, без да губят очакваните функции на ZFS.

От страна на Linux, OpenZFS 2.4 показва съвместимост с ядра, вариращи от версия 4.18 до серията... 6.18 стабиленТова обхваща всичко - от консервативни корпоративни дистрибуции до високоактуални среди, които са в крак с най-новото ядро. Между тях се намира целият спектър от често срещани издания: LTS версии, използвани на сървъри, персонализирани ядра и версии, приети от проекти като CentOS Stream или подобни.

Във FreeBSD, новата версия поддържа от FreeBSD 13.3 Отсега нататък, включително 14.0 и по-нови версии, които вече са на хоризонта, като например предстоящата 15.0. Този широк диапазон гарантира, че както системите, които вече са в производство, така и внедряванията от следващо поколение, могат да продължат да използват OpenZFS без необходимост от странни пачове или персонализирани решения.

Зад тази съвместимост се крие непрекъснато усилие, което вече беше очевидно в поредицата. OpenZFS 2.3.xПредишни актуализации, като например 2.3.4, разшириха поддръжката на ядрото до 6.16 и консолидираха корекции, които бяха започнали да се появяват в по-ранни RC-та. OpenZFS 2.4 продължава оттам, откъдето е спрял, и отива една крачка напред, като се привежда в съответствие с последните ядра и подобрява изживяването за тези, които актуализират базовия си стек сравнително често.

Квоти и нови възможности за управление на пространството

Сред най-практичните нови функции за администратора са подобренията в системата на предварително определени квотиOpenZFS 2.4 въвежда възможността за дефиниране на квоти по подразбиране за потребители, групи и проекти, така че потреблението на пространство да може да се контролира по-равномерно, без да се налага ръчно конфигуриране на всеки случай.

Тази функция позволява например задаването на базова такса за всички потребители които се създават в конкретен набор от данни или за задаване на ограничения на проекти, които се прилагат автоматично при разпределяне на нови ресурси. Това е много полезен инструмент в многопотребителски среди, хостинг, лаборатории и всеки сценарий, където искате да предотвратите пропуск от запълване на целия пул.

Поддръжката на квоти по подразбиране не замества съществуващите специфични квоти, а по-скоро ги допълва. Администраторът може да дефинира глобална политика и след това да го прецизирате с изключения за конкретни потребители или групи, които се нуждаят от повече (или по-малко) пространство. Всичко това се управлява със стандартните инструменти на ZFS, като се поддържа същият модел на свойства, който вече е познат.

Директен вход/изход, вход/изход без кеширане и неправилно подравнено поведение при запис

По отношение на производителността, OpenZFS 2.4 носи много интересна промяна в управлението на директен вход/изходДосега използването на директен вход/изход в някои ситуации можеше да противоречи на подравняването на записа и да доведе до неоптимални пътища на кода. Новата версия въвежда механизъм, така че когато директният вход/изход не може да бъде имплементиран идеално, да се използва алтернативен режим. лек безкеширан входно-изходен процес специално проектиран за този тип сценарий.

Какво означава това на практика? Че писанията, които не се вписват добре в очакваните подредби, престават да бъдат патологичен случай и вместо това се управляват с... оптимизиран маршрут в ZFS. Намалява се натоварването, избягват се някои пречки и се постига по-предсказуемо поведение, особено в среди, където приложения, които използват директен вход/изход, съществуват едновременно с други, които не го използват.

Тази промяна е особено полезна при взискателни натоварвания, където целта е да изстискайте представянето съхранение, без да се жертват гаранциите за целостност, предлагани от ZFS. Със специално проектиран резервен вариант, OpenZFS е по-подходящ за реалностите на много приложения, които не винаги се придържат към идеалното подреждане на операциите.

Унифицирано ограничаване на разпределението и намаляване на фрагментацията в OpenZFS 2.4

Друга голяма промяна, която идва с OpenZFS 2.4, е въвеждането на нов алгоритъм за унифицирано регулиране на разпределениетоЗад това име се крие механизъм, насочен към намаляване на фрагментацията на виртуалните устройства (vdevs) и подобряване на разпределението на записите, когато системата е под напрежение.

Досега разпределението на блокове в ситуации на високо натоварване можеше да доведе до генериране на модели на разпределение, които с течение на времето благоприятстваха фрагментация на vdevУнифицираният алгоритъм има за цел да хармонизира скоростта на разпределение, така че пулът да поддържа по-подредена структура и да намалява негативните последици за производителността, когато пространството започне да изчерпва или когато комбинацията от размери на блоковете е много разнообразна.

Тези видове промени са по-малко забележими от нова команда, но са много ценни при дългосрочни внедрявания, където пулът расте, ребалансира се, добавят се нови виртуални среди за разработка (vdevs) и се извършват операции по поддръжка в продължение на години. Чрез подобряване на контрола на разпределението, OpenZFS 2.4 помага за поддържането по-стабилно поведение във времетодори когато системата се използва интензивно.

Подобрения в криптирането с AVX2 и AES-GCM

По отношение на сигурността и производителността, OpenZFS 2.4 включва серия от оптимизации в използването на AVX2 за AES-GCMКазано по-просто: имплементацията на криптиране е усъвършенствана, за да се възползва по-добре от възможностите на съвременните процесори, които имат тези усъвършенствани векторни инструкции.

Резултатът е по-бързо криптиране без компромис с криптографските гаранции, което е особено забележимо в системи, обработващи големи обеми криптирани данни или в среди, където се извършват много едновременни операции върху защитени набори от данни. намаляване на натоварването на процесора свързани с криптиране, могат да се обработват повече заявки или да се отделят повече ресурси за други системни задачи.

На практика администраторите могат да продължат да разчитат на функциите на ZFS вградено криптиране за защита на чувствителни данни без значителното въздействие върху производителността, характерно за предишните поколения. Криптирането не става „безплатно“, но става по-лесно за управление при натоварвания, където преди това е било ясна пречка.

ZIL в специални vdevs и подобрения в special_small_blocks

OpenZFS 2.4 също така носи нови функции по отношение на специални видеоразработчици, устройства, предназначени за съхраняване на определени типове данни (като метаданни, малки блокове или таблици за дедупликация) на по-бързи носители, обикновено SSD или NVMe.

От една страна, сега е възможно да се позволи ZIL (ZFS Intent Log) Разположение на специални vdev устройства, когато са налични. Това улеснява концентрирането на синхронните записи върху устройства с ниска латентност, подобрявайки времето за реакция на приложения, които разчитат на интензивни синхронизиращи операции, като например бази данни или системи за съобщения със силна персистентност.

От друга страна, поведението на свойството се разширява special_small_blocks така че Съчинения на ZVOL Те могат да попаднат и в специални vdevs, не само в определени обикновени файлови блокове. Освен това, ограничението стойността да е степен на две е облекчено, така че администраторът може да избира по-фини размери, съобразени с действителното му натоварване, вместо да бъде ограничен до твърди опции.

В комбинация, тези подобрения позволяват проектирането на архитектури за съхранение, където най-важните данни (Метаданни, малки блокове, ZIL файлове, таблици за дедупликация и др.) се съхраняват на по-бързи носители, докато по-голямата част от данните остават на по-евтини дискове. Всичко това е съпроводено с много по-голяма гъвкавост при определянето на това, което се счита за „малко“ и какво не.

zfs rewrite и zfs rewrite -P: ефективно преместване на данни

Серията 2.3 вече донесе една от най-забележителните характеристики на последно време: подкомандата пренаписване на zfsOpenZFS 2.4 отвежда този инструмент още една крачка напред, като включва варианта zfs rewrite -Pкоето добавя нови възможности при преместване на данни в рамките на пул.

Командата zfs rewrite позволява „да пренапиша„Съдържанието на файл или набор от данни се копира, без да се променя логическото му значение, но физически се премества в други области с различни вътрешни свойства. Това позволява модификации като алгоритъма за компресия, типа на контролната сума, дали се прилага дедупликация, броя на копията или дори предпочитаното устройство, без да е необходимо данните да се копират в потребителското пространство и да се презаписват.“

Това има няколко ясни предимства: намалява I/O трафика в сравнение с класическия метод „копиране и преименуване“, минимизира въздействието върху кеша и избягва дълги периоди от време, през които данните се преместват чрез външни инструменти. Освен това, тъй като няма логическа промяна в съдържанието, Времето не се променя нито други свойства, видими от гледна точка на потребителя, което означава, че много приложения дори не са наясно с операцията.

Опцията zfs rewrite -P добавя възможността за запазете логичното време на раждане на блоковете, когато е възможно, което помага да се минимизира размерът на инкременталните потоци на репликация. Чрез поддържане на стабилност на тази информация, последващите операции по изпращане/получаване могат по-добре да идентифицират какво всъщност се е променило и какво не, намалявайки количеството данни, които трябва да се преместят между системите.

Друго важно предимство е, че процесът на презаписване е защитен с брави за обхват нормално, така че може да работи паралелно с реални натоварвания, без да блокира прекомерно системата. В набори от данни с sync=always Ползата е още по-голяма, защото тъй като няма логическа модификация на данните, не се налагат допълнителни записи в ZIL, което избягва допълнителни разходи при синхронни операции.

Нови опции за управление в OpenZFS 2.4: -a|–all, range scrub и BRT prefetch

OpenZFS 2.4 също така усъвършенства и разширява арсенала от инструменти за управление с няколко много полезни опции за ежедневна употреба. Една от тях е добавянето на опцията -a|–всички в команди, които изпълняват задачи по поддръжка на пулове, като например почистване, подрязване или инициализация.

Тази опция дава възможност за стартиране на операция, която засяга всички импортирани басейни всички наведнъж, вместо да се налага ръчно да се преминава през всеки един от тях. Това значително опростява нещата на сървъри, които управляват множество пулове, намалявайки човешките грешки и улеснявайки по-лесната автоматизация.

Освен това, възможността за стартиране на zpool scrub ограничено до специфични времеви диапазони чрез опциите -S -EТази функционалност е високо ценена, когато искате да прегледате само период от време, в който има съмнения за проблеми, или когато искате да разпределите разходите за почистване върху няколко частични изпълнения, за да не повлияете твърде много на цялостната производителност.

Друга важна нова функция е добавянето на zpool prefetch -t brt за предварително зареждане в паметта Таблица за препратки към блокове (таблица за клониране на блокове)Това позволява по-добро използване на функционалността за клониране на блокове, въведена в предишни версии, намалявайки латентността при достъп до вътрешни структури, участващи в тази функция.

Разрешения, преименувани инструменти и подобрения в премахването на дубликати и блокирането на клониране

Сред малките, но значителни подобрения, които подобряват потребителското изживяване, OpenZFS 2.4 добавя ново разрешение. изпрати:криптираноПроектиран да осигури по-прецизен контрол върху това кой може да изпраща криптирани данни, това работи добре с екипи, които имат разделение на отговорностите между тези, които управляват моментните снимки, тези, които обработват репликацията, и тези, които имат достъп до ключове за криптиране.

Традиционните комунални услуги също бяха преименувани, като например arc_summary y arcstat, които след това стават известни zarcsummary y zarcstatТази промяна помага да се избегнат конфликти на имена и прави по-ясно, че това са инструменти, свързани със ZFS, което е полезно в системи с множество компоненти, които предоставят подобни команди.

Вътрешно, серията 2.4 се натрупва Нови оптимизации и корекции Това се отнася както за дедупликацията, така и за клонирането на блокове. Структурите от данни се усъвършенстват, граничните случаи се коригират и се търсят по-добри модели на достъп, за да се направи въздействието върху паметта и процесора по-лесно управляемо. Тези промени не са директно видими за потребителя, но водят до по-стабилно поведение и по-малко изненади при сложни натоварвания.

Групови блокове, ashift, бавни дъщерни vdevs и специални топологии

OpenZFS 2.4 включва и редица подобрения и корекции в сравнение с банда блоковеТова е вътрешна системна функция, предназначена да обработва блокове, които не могат да бъдат поставени по конвенционален начин. Въпреки че повечето потребители не взаимодействат директно с тях, всяка грешка в тази част от кода може да има сериозни последици, така че многобройните корекции и оптимизации, включени в системата, са добра новина за цялостната стабилност на системата.

Успоредно с това, обработката на изместванеПараметърът, който определя минималната единица за разпределение, съобразена с физическия размер на секторите на устройството. По-доброто управление на изместванията намалява възможността за записване на повече данни от необходимото на дискове с големи сектори и помага за поддържане на приемливи нива на производителност през целия жизнен цикъл на пула.

Друга интересна нова функция е възможността да се накарат детските vdev-та да се държат по необичайно бавно Те могат да бъдат временно „прекъснати“. Вместо да намаляват производителността на цялата система, те могат да бъдат временно „изключени“, което е много полезно, когато дисковете започват да се повреждат, устройствата изпитват периодични проблеми или среди имат нестабилен хардуер.

Накрая, те имат ограничения на облекчената топология В специални и дедупликационни VDEV, това позволява по-голяма гъвкавост при проектирането на пулове с разширени конфигурации. Това позволява по-добра интеграция на бързи устройства за метаданни, дедупликирани таблици, ZIL-ове и други чувствителни елементи, без да се натъкват на прекалено строги ограничения в дефиницията на оформлението.

OpenZFS 2.3.4: Поддръжка, първоначално пренаписване и консолидиране на zfs

За да разберем напълно скока, който представлява 2.4, си струва да хвърлим бърз поглед върху OpenZFS 2.3.4, версия за поддръжка, която се появи малко преди това и положи някои от основите за това, което по-късно беше консолидирано в новия основен клон.

Версия 2.3.4 пристигна два месеца след 2.3.3 с много силен фокус върху здравина и съвместимостТой разшири поддръжката на ядрото на Linux до версия 6.16, запазвайки минимума на 4.18, и потвърди съвместимостта с FreeBSD от версия 13.3 нататък, включително предстоящата 15.0. С други думи, той вече подготвяше основите за съвместно съществуване със съвременни базови системи, без да се жертва стабилността.

Този конкретен преглед видя дебюта на първоначалната версия на командата zfs rewriteпроектирани точно за преместване на данни без промяна на логическото им съдържание и без да се прибягва до по-тромави стратегии като копиране/преименуване или изпращане/получаване с преименуване на набор от данни. Целта беше да се предложи инструмент, способен да ребалансира пул след добавяне на vdevs, да намали фрагментацията на произволно записани файлове или да приложи нови свойства за съхранение към съществуващи данни.

В сравнение с традиционните алтернативи, zfs rewrite По-бързо е, защото избягва данните да пътуват до потребителското пространство. В набори от данни с sync=alwaysОсвен това, това подобрява производителността, защото тъй като данните не се променят логически, не се задействат допълнителни записи в ZIL. Всичко това, без да се докосва нищо. mtime или други метаданни видим за приложенията, което минимизира въздействието върху софтуера, работещ върху него.

Версия 2.3.4 също така предоставя различни Специфични за FreeBSD настройкиТя включваше подобрения в опаковката и набор от малки корекции, които изгладиха някои аспекти на кода. Това не беше версия, предназначена да въведе разрушителни промени, а по-скоро да подобри стабилността, преди да се премине към клон 2.4 с по-голям пакет от нови функции.

OpenZFS 2.4 RC1, RC2, RC4: тестване, обратна връзка и дискусия в общността

Преди серията 2.4 да бъде обявена за стабилна, проектът пусна няколко освобождаване на кандидатите (RC1, RC2, RC4) с цел да се позволи на напредналите потребители и разработчици да ги тестват и да докладват за проблеми. Тези кандидат-версии вече включваха почти всички функции, които обсъдихме: квоти по подразбиране, безкеширан вход/изход като резервен вариант, унифицирано регулиране на разпределението, подобрения в криптирането, ZIL в специални vdevs, разширения special_small_blocks, нови разрешения, преименуване на инструменти и много други.

Бележките RC1 и RC2 подчертават важността на общността ще тествам компилациите и да изпращате обратна връзка чрез GitHub, включително команди за лесно изброяване на промените спрямо референтния клон (с комбинации от git cherry сравняване на zfs-2.3-release с различните RC-та). Посланието беше ясно: целта беше кодът да се тества в реални среди, преди да се обозначи като „стабилен“.

Въпреки това, появата на специфичен RC (например, 2.4.0-RC4Включването на .NET Framework (RF) във версия на FreeBSD, обозначена като RELEASE, като например 15.0, предизвика недоумение. Някои потребители се чудеха защо е било решено да се включи такъв. Кандидат за издаване на OpenZFS във версия на операционната система, считана за стабилна, вместо да се прибегне до предишен, вече установен клон. Този избор предизвика известно недоволство сред онези, които предпочитат файловата система, върху която се съхраняват техните данни, да се базира стриктно на финалните версии.

Съмненията се въртяха около трайността на това решение: ако някой инсталира FreeBSD 15.0 с OpenZFS 2.4.0-RC4 и след това не следва клона -CURRENT, съществува опасение, че ще бъде „заседнал“ в продължение на няколко месеца с кандидат за издаване, докато не се появи малка ревизия или нова точка в поредицата. Имаше и опасение, че бъдещи издания като 15.1 би интегрирал друг RC (например хипотетична 2.4.1-RC3) вместо окончателна версия.

Зад този дебат стоят различни начини за разбиране на това какво „Release Candidate„В толкова чувствителен контекст, колкото файловата система. За някои хора, Release Candidate (RC) е практически стабилна версия, нуждаеща се само от малки промени. За други обаче това е код, който не трябва да се използва като основа на система, обозначена като RELEASE, и трябва да бъде запазен за тези, които следят отблизо развойните клонове.“

Във всеки случай, РК са изпълнили мисията си полигонТези подобрения позволиха откриването на грешки, корекции на детайлите и много по-уверено пристигане на стабилната версия „2.4“. Тези, които поставят сигурността над всичко останало, все още имат възможност да останат на предишни версии като 2.3.x, докато не преценят, че 2.4 е достатъчно зряла в производство.

Всичко, което OpenZFS 2.4 предлага, се основава на стабилността, която проектът е придобил със серията 2.3 и нейните актуализации за поддръжка, комбинирайки подобрения в съвместимостта на ядрото, нови инструменти като... пренаписване на zfsВерсията включва корекции в дедупликацията и клонирането на блокове, оптимизации на криптирането, вътрешни промени в груповите блокове и ashift, както и редица нови опции за управление. Въпреки че възникнаха някои противоречия относно използването на кандидати за издаване на определени операционни системи, стабилната версия 2.4 предлага значителен скок напред за тези, които искат да извлекат повече от ZFS на Linux и FreeBSD, без да жертват установените гаранции за цялостност и устойчивост.

openZFS
Свързана статия:
OpenZFS 2.2 вече е пуснат и това са неговите нови функции