OpenZFS 2.4 rozšiřuje kompatibilitu s Linuxem 4.18–6.18 a FreeBSD 13.3+ a poskytuje tak dlouhodobou stabilitu.

  • Zavádí klíčová vylepšení výkonu: šifrování AVX2, optimalizovaný vstup/výstup bez mezipaměti a nový sjednocený alokační algoritmus.
  • Nové nástroje, jako například zfs rewrite -P, výchozí kvóty a scrub založený na rozsahu, usnadňují pokročilou správu.
  • Posiluje spolehlivost opravami v blocích skupin, vylepšeními v řazení a správou speciálních a pomalých vdev.

OpenZFS 2.4

Když je vydána nová verze OpenZFS, mnoho administrátorů si klade otázku, zda se vyplatí aktualizovat hned, nebo počkat, až se prach usadí. OpenZFS 2.4 Otázka je o to zajímavější, protože Přichází s hlubokými změnami v oblasti výkonu, nových nástrojů pro správu a určité komunitní debaty o používání kandidátů na vydání v produkčních systémech.

Obecné vlastnosti OpenZFS 2.4

OpenZFS 2.4 je prezentován jako verze stabilní a poměrně ambiciózní povaha Projekt, navržený pro prostředí Linuxu i FreeBSD, již v době svého konečného označení zdůrazňoval, že cílem je i nadále podporovat vyspělost souborového systému a správce svazků a zároveň zachovat kompatibilitu s nejnovějšími jádry a zajistit bezpečnost dat.

Tato verze sjednocuje mnoho funkcí, které byly vyvíjeny od drama 2.3 a jeho mezilehlé revize: vylepšení výkonu v šifrovací vrstvanové nástroje pro řízení, jako např. přepsání ZFSFlexibilnější možnosti kvót a interní změny navržené ke snížení fragmentace, optimalizaci deduplikace a zdokonalení složitých aspektů, jako je správa skupinových bloků nebo chování s problematickými disky.

Komunita věnovala zvláštní pozornost také tomu, integrace s moderními jádryV Linuxu je podpora deklarována od verze 4.18 až po nejnovější LTS větve (včetně jádra 6.18 v době stabilní verze 2.4), zatímco ve FreeBSD jsou zahrnuty verze od 13.3 a výše, včetně 14.0 a novějších připravovaných větví, jako je 15.0.

Podpora platformy a kompatibilita jádra s OpenZFS 2.4

Jedním z pilířů OpenZFS 2.4 je jeho široká kompatibilita s platformamiPro mnoho administrátorů je to klíčové, protože jim to umožňuje upgradovat verze operačních systémů bez ztráty očekávaných funkcí ZFS.

Na straně Linuxu OpenZFS 2.4 indikuje kompatibilitu s jádry od verze 4.18 až po řadu 6.18 stabilníTo zahrnuje vše od konzervativních podnikových distribucí až po vysoce aktuální prostředí, která zůstávají aktuální s nejnovějším jádrem. Mezi nimi se nachází celé spektrum běžných vydání: verze LTS používané na serverech, vlastní jádra a verze přijaté projekty jako CentOS Stream nebo podobné.

Ve FreeBSD nová verze podporuje od FreeBSD 13.3 Od nynějška, včetně verze 14.0 a novějších, které jsou již na obzoru, jako například nadcházející verze 15.0. Tato široká škála zajišťuje, že jak systémy, které jsou již v produkčním prostředí, tak i nasazení nové generace, mohou i nadále používat OpenZFS bez nutnosti zvláštních záplat nebo vlastních řešení.

Za touto kompatibilitou se skrývá neustálé úsilí, které bylo patrné již v sérii. OpenZFS 2.3.xPředchozí aktualizace, jako například 2.3.4, rozšířily podporu jádra až do verze 6.16 a konsolidovaly záplaty, které se začaly objevovat v dřívějších RC verzích. OpenZFS 2.4 navazuje na předchozí verzi a jde o krok dále, je v souladu s nedávnými jádry a vylepšuje uživatelský zážitek pro ty, kteří relativně často aktualizují svůj základní stack.

Kvóty a nové možnosti správy prostoru

Mezi nejpraktičtější nové funkce pro administrátora patří vylepšení systému předem stanovené kvótyOpenZFS 2.4 zavádí možnost definovat výchozí kvóty pro uživatele, skupiny a projekty, takže spotřeba prostoru může být jednotněji řízena bez nutnosti ruční konfigurace každého případu.

Tato funkce umožňuje například nastavení základní poplatek pro všechny uživatele které jsou vytvořeny v konkrétní datové sadě nebo pro nastavení limitů projektu, které se automaticky použijí při alokaci nových zdrojů. Je to velmi užitečný nástroj ve víceuživatelských prostředích, hostingu, laboratořích a v jakémkoli scénáři, kde chcete zabránit přehlédnutí a zaplnění celého fondu.

Podpora výchozích kvót nenahrazuje stávající specifické kvóty, ale spíše je doplňuje. Administrátor může definovat globální politika a poté jej upřesnit s výjimkami pro konkrétní uživatele nebo skupiny, které potřebují více (nebo méně) prostoru. To vše je spravováno standardními nástroji ZFS, přičemž je zachován stejný model vlastností, který je již známý.

Přímý I/O, I/O bez mezipaměti a špatně zarovnané chování při zápisu

Co se týče výkonu, OpenZFS 2.4 přináší velmi zajímavou změnu ve správě... přímý vstup/výstupAž doposud mohlo použití přímého I/O v některých situacích kolidovat se zarovnáním zápisu a vést k neoptimálním cestám kódu. Nová verze zavádí mechanismus, který v případě, že nelze přímý I/O ideálně implementovat, používá alternativní režim. lehký IO bez mezipaměti speciálně navržené pro tento typ scénáře.

Co to v praxi znamená? Že texty, které neodpovídají očekávaným směrům, přestávají být patologickým případem a místo toho jsou řešeny... optimalizovaná trasa v rámci ZFS. Snižuje se režijní náklady, vyhýbá se některým úzkým hrdlům a dosahuje se předvídatelnějšího chování, zejména v prostředích, kde aplikace, které používají přímý I/O, koexistují s jinými, které jej nepoužívají.

Tato změna je obzvláště užitečná u náročných úloh, kde je cílem vymáčknout z něj výkon úložiště bez obětování záruk integrity, které nabízí ZFS. Díky speciálně navrženému záložnímu systému je OpenZFS lépe přizpůsoben realitě mnoha aplikací, které ne vždy dodržují ideální uspořádání operací.

Sjednocené omezení alokace a snížení fragmentace v OpenZFS 2.4

Další významnou změnou, která přichází s OpenZFS 2.4, je zavedení nového algoritmu pro jednotné omezení alokaceZa tímto názvem se skrývá mechanismus zaměřený na snížení fragmentace virtuálních zařízení (vdev) a zlepšení distribuce zápisů, když je systém pod zátěží.

Až doposud mohla alokace bloků v situacích s vysokým zatížením vést k vytvoření distribučních vzorců, které časem zvýhodňovaly fragmentace vdevSjednocený algoritmus si klade za cíl harmonizovat rychlost alokace tak, aby si fond udržel uspořádanější strukturu a snížily se výkonnostní penalizace, když začne docházet prostor nebo když je mix velikostí bloků velmi rozmanitý.

Tyto typy změn jsou méně znatelné než nový příkaz, ale jsou velmi cenné v dlouhodobých nasazeních, kde se fond rozrůstá, vyvažuje, přidávají se nová virtuální vývojová prostředí (vdev) a v průběhu let se provádějí údržbové operace. Zlepšením řízení alokace pomáhá OpenZFS 2.4 udržovat stabilnější chování v časei při intenzivním používání systému.

Vylepšení šifrování s AVX2 a AES-GCM

Pokud jde o bezpečnost a výkon, OpenZFS 2.4 zahrnuje řadu optimalizací v používání... AVX2 pro AES-GCMJednoduše řečeno: implementace šifrování byla vylepšena, aby lépe využila možnosti moderních procesorů, které mají tyto pokročilé vektorové instrukce.

Výsledkem je rychlejší šifrování bez obětování kryptografických záruk, což je obzvláště patrné v systémech zpracovávajících velké objemy šifrovaných dat nebo v prostředích, kde se s chráněnými datovými sadami provádí mnoho simultánních operací. snížit režii CPU Díky šifrování lze zpracovat více požadavků nebo vyhradit více zdrojů jiným systémovým úlohám.

V praxi se administrátoři mohou i nadále spoléhat na funkce Nativní šifrování ZFS chránit citlivá data bez významného dopadu na výkon, jaký měli předchozí generace. Šifrování se sice nestane „zdarma“, ale stává se lépe zvládnutelným při pracovních zátěžích, kde dříve představovalo zjevné úzké hrdlo.

ZIL ve speciálních vdev a vylepšení ve special_small_blocks

OpenZFS 2.4 také přináší nové funkce týkající se speciální vdev, tedy zařízení určená k ukládání určitých typů dat (jako jsou metadata, malé bloky nebo deduplikační tabulky) na rychlejší média, obvykle SSD nebo NVMe.

Na jedné straně je nyní možné povolit ZIL (ZFS Intent Log) Pokud jsou k dispozici, umístěte je na vyhrazené virtuální zařízení (vdev). To usnadňuje soustředění synchronních zápisů na zařízení s nízkou latencí a zlepšuje dobu odezvy aplikací, které se spoléhají na operace náročné na synchronizaci, jako jsou databáze nebo systémy zasílání zpráv se silnou perzistencí.

Na druhou stranu je chování vlastnosti rozšířeno special_small_blocks aby ZVOL spisy Mohou se také dostat do speciálních vdev, nejen do určitých běžných bloků souborů. Navíc je omezení, že hodnota musí být mocninou dvou, uvolněno, takže administrátor si může vybrat jemnější velikosti přizpůsobené svému skutečnému zatížení, místo aby byl omezen na pevné možnosti.

Tato vylepšení dohromady umožňují návrh architektur úložišť, kde nejdůležitější data (Metadata, malé bloky, ZILy, deduplikační tabulky atd.) jsou uloženy na rychlejších médiích, zatímco většina dat zůstává na levnějších discích. To vše přichází s mnohem větší flexibilitou v definování toho, co je považováno za „malé“ a co ne.

zfs rewrite a zfs rewrite -P: efektivní přemístění dat

Řada 2.3 již přinesla jednu z nejvýraznějších funkcí poslední doby: podřízený příkaz přepsání ZFSOpenZFS 2.4 posouvá tento nástroj o krok dále začleněním varianty zfs rewrite -Pcož přidává nové možnosti při přesouvání dat v rámci fondu.

Příkaz zfs rewrite umožňuje „přepsat„Obsah souboru nebo datové sady je zkopírován beze změny jeho logického významu, ale fyzicky přemístěn do jiných oblastí s odlišnými vnitřními vlastnostmi. To umožňuje úpravy, jako je kompresní algoritmus, typ kontrolního součtu, zda je použita deduplikace, počet kopií nebo dokonce preferované zařízení, aniž by bylo nutné data kopírovat do uživatelského prostoru a přepisovat je.“

To má několik jasných výhod: ve srovnání s klasickou metodou „kopírování a přejmenování“ snižuje I/O provoz, minimalizuje dopad na mezipaměť a zabraňuje dlouhým časovým úsekům, během kterých jsou data přesouvána externími nástroji. Navíc, protože nedochází k žádné logické změně obsahu, Čas m se nemění ani další vlastnosti viditelné z pohledu uživatele, což znamená, že mnoho aplikací si této operace ani neuvědomuje.

Volba zfs rewrite -P přidává možnost zachovat logický čas narození bloků, kdykoli je to možné, což pomáhá minimalizovat velikost inkrementálních replikačních toků. Díky udržení stability těchto informací mohou následné operace odesílání/přijímání lépe identifikovat, co se skutečně změnilo a co ne, a tím se snižuje množství dat, která je třeba mezi systémy přesouvat.

Další důležitou výhodou je, že proces přepisování je chráněn pomocí zámky dosahu normální, takže může běžet paralelně se skutečnými úlohami, aniž by zbytečně blokoval systém. V datových sadách s sync=always Výhoda je ještě větší, protože díky absenci logické modifikace dat nejsou v ZIL vynuceny žádné další zápisy, čímž se zabrání dodatečným nákladům v synchronních operacích.

Nové možnosti správy v OpenZFS 2.4: -a|–all, procházení rozsahu a předběžné načítání BRT

OpenZFS 2.4 také vylepšuje a rozšiřuje arzenál nástrojů pro správu o několik velmi užitečných možností pro každodenní použití. Jednou z nich je přidání možnosti -a|–všechny v příkazech, které provádějí úlohy údržby fondů, jako je například čištění, ořezávání nebo inicializace.

Tato možnost umožňuje spustit operaci, která ovlivňuje všechny importované bazény vše najednou, místo abyste museli každý z nich procházet ručně. To výrazně zjednodušuje práci na serverech, které spravují více fondů, snižuje lidské chyby a usnadňuje automatizaci.

Kromě toho je zde možnost spuštění zpool scrub omezeno na specifické časové rozsahy prostřednictvím možností -S -ETato funkce je vysoce ceněna, pokud chcete zkontrolovat pouze časové okno, ve kterém existují podezření na problémy, nebo pokud chcete rozložit náklady na čištění na několik dílčích provedení, abyste příliš neovlivnili celkový výkon.

Další důležitou novou funkcí je přidání zpool prefetch -t brt předem načíst do paměti Tabulka odkazů na bloky (tabulka klonování bloků)To umožňuje lepší využití funkce klonování bloků zavedené v předchozích verzích a snižuje latenci při přístupu k interním strukturám zapojeným do této funkce.

Oprávnění, přejmenované nástroje a vylepšení pro deduplikaci a klonování bloků

Mezi drobná, ale významná vylepšení, která vylepšují uživatelský zážitek, patří v OpenZFS 2.4 přidání nového oprávnění. odeslat:šifrovanéToto řešení je navrženo tak, aby poskytovalo podrobnější kontrolu nad tím, kdo může odesílat šifrovaná data, a funguje dobře v týmech, které mají oddělené odpovědnosti mezi těmi, kdo spravují snímky, těmi, kdo zpracovávají replikaci, a těmi, kdo mají přístup k šifrovacím klíčům.

Tradiční veřejné služby byly také přejmenovány, například arc_summary y arcstat, které se pak stanou známými zarcsummary y zarcstatTato změna pomáhá předcházet konfliktům názvů a jasněji ukazuje, že se jedná o nástroje spojené se ZFS, což je užitečné v systémech s více komponentami, které zpřístupňují podobné příkazy.

Interně se řada 2.4 hromadí Nové optimalizace a opravy To platí jak pro deduplikaci, tak pro klonování bloků. Datové struktury jsou zdokonalovány, okrajové případy jsou opravovány a hledají se lepší přístupové vzorce, aby byl dopad na paměť a CPU lépe zvládnutelný. Tyto změny nejsou pro uživatele přímo viditelné, ale vedou ke stabilnějšímu chování a menšímu počtu překvapení při složitých úlohách.

Gangové bloky, ashift, pomalé podřízené vdev a speciální topologie

OpenZFS 2.4 také obsahuje řadu vylepšení a oprav oproti předchozí verzi. bloky gangůJedná se o interní systémovou funkci navrženou pro práci s bloky, které nelze umístit konvenčním způsobem. Ačkoli většina uživatelů s nimi přímo neinteraguje, jakákoli chyba v této části kódu může mít vážné následky, takže četné opravy a optimalizace, které byly zahrnuty, jsou dobrou zprávou pro celkovou robustnost systému.

Souběžně s tím se manipuluje s posunParametr, který definuje minimální alokační jednotku v souladu s fyzickou velikostí sektorů zařízení. Lepší správa posunů snižuje možnost zápisu většího množství dat, než je nutné, na disky s velkými sektory a pomáhá udržovat přijatelnou úroveň výkonu po celou dobu životnosti fondu.

Další zajímavou novou funkcí je možnost nastavit chování podřízených vdevů abnormálně pomalý Mohou být dočasně „vyřazeny z provozu“. Místo snižování výkonu celého systému je lze na chvíli odpojit, což je velmi užitečné, když disky začínají selhávat, mechaniky mají občasné problémy nebo prostředí mají nekonzistentní hardware.

Konečně mají uvolněná topologická omezení Ve speciálních a deduplikačních VDEV to umožňuje větší flexibilitu při navrhování fondů s pokročilými konfiguracemi. To umožňuje lepší integraci rychlých zařízení pro metadata, deduplikované tabulky, ZIL a další citlivé prvky, aniž by se v definici rozvržení setkalo s příliš rigidními omezeními.

OpenZFS 2.3.4: Údržba, počáteční přepsání a konsolidace zfs

Abychom plně pochopili skok, který představuje číslo 2.4, stojí za to se krátce podívat na OpenZFS 2.3.4, údržbová verze, která se objevila krátce předtím a položila základy pro to, co bylo později konsolidováno v nové hlavní větvi.

Verze 2.3.4 dorazila dva měsíce po verzi 2.3.3 s velmi silným zaměřením na robustnost a kompatibilitaRozšířila podporu linuxového jádra až do verze 6.16, přičemž minimální verze zůstala na 4.18, a potvrdila kompatibilitu s FreeBSD od verze 13.3, včetně nadcházející 15.0. Jinými slovy, již připravovala základy pro koexistenci s moderními základními systémy bez obětování stability.

Tato konkrétní recenze byla svědkem premiéry původní verze příkazu. zfs rewritenavrženo přesně pro přemístit data bez změny jejich logického obsahu a bez použití těžkopádnějších strategií, jako je kopírování/přejmenování nebo odesílání/příjem s přejmenováním datové sady. Cílem bylo nabídnout nástroj schopný vyvážit fond po přidání vdev, snížit fragmentaci náhodně zapsaných souborů nebo aplikovat nové vlastnosti úložiště na existující data.

Ve srovnání s tradičními alternativami, zfs rewrite Je to rychlejší, protože se vyhýbá přenosu dat do uživatelského prostoru. V datových sadách s sync=alwaysNavíc to zlepšuje výkon, protože vzhledem k tomu, že data nejsou logicky upravována, nejsou v ZILu spouštěny žádné další zápisy. To vše bez nutnosti jakéhokoli zásahu. mtime nebo jiná metadata viditelný pro aplikace, což minimalizuje dopad na software běžící na něm.

Verze 2.3.4 také poskytovala různé Nastavení specifická pro FreeBSDZahrnovala vylepšení balení a sadu drobných oprav, které vyleštily některé rohy kódu. Nejednalo se o verzi, která by zaváděla rušivé změny, ale spíše o doladění stability před přechodem na větev 2.4 s větším balíčkem nových funkcí.

OpenZFS 2.4 RC1, RC2, RC4: testování, zpětná vazba a diskuse komunity

Než byla série 2.4 prohlášena za stabilní, projekt vydal několik uvolněte kandidáty (RC1, RC2, RC4) s cílem umožnit pokročilým uživatelům a vývojářům testovat je a hlásit problémy. Tito kandidáti na vydání již obsahovali prakticky všechny funkce, o kterých jsme diskutovali: výchozí kvóty, bezcacheový I/O jako záložní řešení, jednotné omezení alokace, vylepšení šifrování, ZIL ve speciálních vdevs, rozšíření special_small_blocks, nová oprávnění, přejmenování nástrojů a mnoho dalšího.

Poznámky RC1 a RC2 zdůraznily důležitost komunity Otestuji sestavy a odesílat zpětnou vazbu přes GitHub, včetně příkazů pro snadné vypsání změn vzhledem k referenční větvi (s kombinacemi git cherry porovnání zfs-2.3-release s různými RC). Sdělení bylo jasné: cílem bylo otestovat kód v reálných prostředích, než bude označen jako „stabilní“.

Nicméně, výskyt specifického RC (například 2.4.0-RC4Začlenění .NET Frameworku (RF) do verze FreeBSD označené jako RELEASE, například 15.0, vyvolalo pochybnosti. Někteří uživatelé se divili, proč bylo rozhodnuto ho zahrnout. Kandidát na vydání OpenZFS ve verzi operačního systému považované za stabilní, namísto použití předchozí, již zavedené větve. Tato volba vyvolala určitou nespokojenost mezi těmi, kteří preferují, aby souborový systém, na kterém spočívají jejich data, byl založen výhradně na finálních verzích.

Pochybnosti se točily kolem trvanlivosti tohoto rozhodnutí: pokud si někdo nainstaluje FreeBSD 15.0 s OpenZFS 2.4.0-RC4 a poté se nebude řídit větví -CURRENT, existuje obava, že se na několik měsíců „zasekne“ u kandidáta na vydání, dokud nedorazí menší revize nebo nový bod v sérii. Existovaly také obavy, že budoucí vydání, jako například 15.1 by integroval další RC (například hypotetickou 2.4.1-RC3) místo finální verze.

Za touto debatou se skrývají různé způsoby chápání toho, co „release kandidát„V kontextu tak citlivém, jako je souborový systém. Pro některé lidi je Release Candidate (RC) prakticky stabilní verzí, která potřebuje jen drobné úpravy. Pro jiné je to však kód, který by neměl být používán jako základ systému označeného jako RELEASE a měl by být vyhrazen pro ty, kteří bedlivě sledují vývojové větve.“

V každém případě RC splnili své poslání testovací plochaTato vylepšení umožnila detekci chyb, úpravy detailů a mnohem jistější doručení stabilní verze „2.4“. Ti, kteří upřednostňují bezpečnost nade vše, mají stále možnost zůstat u předchozích verzí, jako je 2.3.x, dokud neusoudí, že verze 2.4 je v produkčním prostředí dostatečně zralá.

Vše, co OpenZFS 2.4 přináší, je založeno na robustnosti, kterou projekt získal s řadou 2.3 a jejími aktualizacemi, kombinující vylepšení kompatibility jádra, nové nástroje jako například přepsání ZFSTato verze zahrnuje úpravy deduplikace a klonování bloků, optimalizaci šifrování, interní změny gangových bloků a ashift a řadu nových možností správy. I když se objevily určité kontroverze ohledně používání kandidátských verzí na některých operačních systémech, stabilní verze 2.4 nabízí významný skok vpřed pro ty, kteří chtějí ze ZFS na Linuxu a FreeBSD vytěžit více, aniž by obětovali zavedené záruky integrity a odolnosti.

openZFS
Související článek:
OpenZFS 2.2 již bylo vydáno a toto jsou jeho nové funkce