• OpenZFS 2.4.4 stärker datasäkerheten och får stöd för Linux 7.2

    OpenZFS 2.4.4 har släppts med stöd för Linuxkärnan 7.2, ett nytt verktyg för att rädda låsta lagringspooler och flera korrigeringar som minskar risken för datafel. Uppdateringen riktar sig främst till administratörer av servrar och större lagringssystem, men förbättringarna berör alla som använder ZFS för att skydda viktiga filer.

    OpenZFS är mer än ett traditionellt filsystem. Det fungerar samtidigt som filsystem, volymhanterare och ett avancerat skydd mot dataskador. I stället för att bara lagra filer på en disk kan OpenZFS kombinera flera hårddiskar till en gemensam lagringspool, kontrollera att informationen inte har förändrats och i många fall automatiskt reparera skadade data.

    Tekniken används därför ofta i filservrar, NAS-enheter, datacenter och system där stora mängder information måste lagras säkert under lång tid.

    Den nya versionen OpenZFS 2.4.4 är framför allt en underhållsuppdatering. Den innehåller inga dramatiska förändringar av hur systemet används, men många av förbättringarna handlar om sådant som är avgörande för ett lagringssystem: att data förblir korrekta och att lagringspooler går att återställa när något oväntat inträffar.

    Stöd för Linuxkärnan 7.2

    En av de största nyheterna är kompatibilitet med Linuxkärnan 7.2. OpenZFS har en ovanlig ställning i Linuxvärlden eftersom det inte ingår direkt i den officiella Linuxkärnan. ZFS-modulerna måste därför anpassas när kärnans interna gränssnitt förändras.

    I Linux 7.2 har bland annat OpenZFS kod för superblock anpassats till kärnans sget_fc()-gränssnitt. Ett superblock kan förenklat beskrivas som filsystemets övergripande innehållsförteckning. Där finns grundläggande information som operativsystemet behöver för att kunna montera och använda filsystemet.

    Den officiellt stödda Linuxversionen sträcker sig nu från kärna 4.18 till 7.2. OpenZFS fortsätter även att stödja FreeBSD, där version 13.3 och senare samt 14.0 och senare finns med bland de angivna plattformarna.

    Ny räddningsfunktion för blockerade lagringspooler

    Den kanske mest intressanta nyheten är kommandot zhack mmp reclaim. Det är avsett för ovanliga men besvärliga situationer där en ZFS-pool har lämnats i ett låst eller övergivet tillstånd av MMP-skyddet.

    MMP skyddar en lagringspool mot att öppnas för skrivning av flera datorer samtidigt. Om två servrar skulle skriva till samma pool utan att känna till varandras ändringar kan filsystemets struktur skadas. Det kan jämföras med att två personer samtidigt redigerar samma dokument utan någon samordning – men i det här fallet kan resultatet bli en skadad lagringspool i stället för några förlorade textrader.

    Skyddet försöker därför upptäcka om poolen redan används av en annan dator och stoppar importen om den ser tecken på aktivitet.

    Problemet uppstår om skyddet felaktigt tror att en annan dator fortfarande använder poolen. Det kan exempelvis inträffa efter ett avbrott eller ett misslyckat försök att ta kontroll över poolen. Det nya kommandot ger en administratör möjlighet att återta en sådan övergiven pool.

    OpenZFS har samtidigt blivit bättre på att skilja mellan ett misslyckat försök att göra anspråk på en så kallad uberblock och verklig aktivitet från en annan dator. En uberblock fungerar ungefär som en säker kontrollpunkt som beskriver ett giltigt tillstånd för hela lagringspoolen.

    Kontrollerna hoppar nu även över virtuella enheter som inte går att skriva till. Hanteringen av degraderade speglar, där någon disk är frånvarande, har också förbättrats.

    Flera viktiga fel i dedupliceringen rättas

    OpenZFS kan använda deduplicering för att undvika att identiska datablock lagras flera gånger. Om samma block förekommer på många platser sparas bara ett exemplar, medan filsystemet håller reda på vilka filer som använder det.

    Det kan minska lagringsbehovet kraftigt, men kräver en omfattande tabell som kallas DDT, Deduplication Table. Tabellen måste vara helt korrekt. Ett felaktigt referensvärde kan annars innebära att ett block tas bort trots att det fortfarande används.

    OpenZFS 2.4.4 rättar flera problem i denna del av systemet. Bland annat åtgärdas negativa tidsvärden och andra fel som kunde uppstå när gamla poster rensades. Låsningen under kontrollen av deduplicerade block har stärkts, och felaktig märkning av referensräkningen i DDT-loggen har korrigerats.

    För system som använder deduplicering är detta några av uppdateringens viktigaste förbättringar.

    Stabilare cache och säkrare filhantering

    L2ARC är OpenZFS sekundära läscache och används ofta för att komplettera arbetsminnet med en snabb SSD. Version 2.4.4 rättar ett fel i återuppbyggnaden av denna cache. Under den första genomgången begränsas återuppbyggnaden nu av den punkt till vilken nya cachedata faktiskt har skrivits.

    Ett fel som påverkade läsning av datablock som frigjorts efter kloning har också korrigerats. Dessutom begränsas antalet verifieringshändelser från Direct I/O, så att systemet inte överbelastas av en mycket stor mängd likartade meddelanden.

    På Linux rättas en möjlig oändlig loop i zfs_write() när systemet försökte arbeta med en minnesbuffert som inte kunde göras tillgänglig. Läsning genom mmap() utanför slutet av en fil har korrigerats, och tidsstämplarna för ändring uppdateras nu korrekt när fallocate() används för att göra en fil större.

    Pooler ska inte längre exporteras medan de används

    Kommandot zpool export används när en lagringspool ska kopplas bort från ett system, exempelvis för att flyttas till en annan server.

    OpenZFS 2.4.4 kontrollerar nu bättre om poolens ZFS-volymer fortfarande används. Om en zvol-enhet är upptagen av ett program eller en virtuell maskin avbryts exporten med felkoden EBUSY. Det är säkrare än att försöka fortsätta trots att poolen inte kan kopplas bort på ett korrekt sätt.

    En kapplöpningssituation mellan borttagningen av en lagringsenhet och exporten av poolen har också rättats.

    Säkrare överföring och krypterade säkerhetskopior

    OpenZFS innehåller funktionerna zfs send och zfs receive, som används för att överföra ögonblicksbilder och säkerhetskopior mellan lagringssystem.

    Den nya versionen rättar bland annat mottagning av delade stora block med ett kort avslutande datablock. Problem med zfs receive -x, återupptagna överföringar och en möjlig nullpekarkrasch i mottagningskoden har också åtgärdats.

    För delegerad administration tillkommer behörigheten send:encrypted. Den gör det möjligt att mer exakt bestämma vilka användare som får skicka krypterade dataset. En administratör kan därmed tillåta vissa former av ZFS-hantering utan att automatiskt ge användaren rätt att överföra krypterade data.

    En underhållsuppdatering med stor betydelse

    OpenZFS 2.4.4 innehåller även säkrare hantering av strängar och minne i biblioteket libzfs, bättre kontroll av enhetsbehörigheter och förbättrad automatisk expansion av pooler när partitionerade diskar får större kapacitet. Därtill kommer ett stort antal ändringar i byggsystem, tester, kontinuerlig integration och FreeBSD-stödet.

    För vanliga användare är de flesta förändringarna osynliga. Det är samtidigt ett gott tecken. Ett lagringssystem ska helst arbeta i bakgrunden, upptäcka problem innan de blir allvarliga och framför allt inte förlora några data.

    OpenZFS 2.4.4 är därför ingen revolutionerande version. Den är snarare ett omfattande servicearbete på en redan avancerad maskin – med nya verktyg för nödsituationer, stöd för kommande Linuxsystem och flera förstärkningar på de platser där små fel annars skulle kunna få stora konsekvenser.

    https://openzfs.org/wiki/Main_Page

  • OpenZFS 2.4.1 – stabilare lagring under ytan

    Två månader efter den senaste större versionen har OpenZFS fått en viktig uppdatering. Version 2.4.1 finslipar kompatibilitet, prestanda och stabilitet i det avancerade filsystem som används i allt från hemmabyggda lagringsservrar till professionella datacenter.

    Två månader efter version 2.4 har OpenZFS släppt 2.4.1, den första underhållsuppdateringen i serien. Det handlar inte om stora nya funktioner, utan om förbättringar som gör filsystemet stabilare, snabbare och mer kompatibelt med moderna operativsystem.

    OpenZFS är ett avancerat, öppet filsystem och volymhanterare som används i allt från hemmabyggda NAS-servrar till professionella lagringsmiljöer. Det är känt för funktioner som ögonblicksbilder, dataintegritet via checksummor, självläkning och effektiv replikering mellan system.

    Bredare och säkrare kompatibilitet

    Version 2.4.1 stöder Linuxkärnor från 4.18 upp till 6.19 samt FreeBSD 13.3 och nyare, inklusive 14-serien. En stor del av arbetet har lagts på att säkerställa kompatibilitet med Linux 6.19. Det gäller bland annat förbättringar i hur systemet byggs mot kärnan, hantering av krypteringskod och mer strikt kompilering.

    Även mindre vanliga arkitekturer som PowerPC och RISC-V har fått korrigeringar för att säkerställa att OpenZFS kan byggas utan problem på dessa plattformar.

    Korrekt hantering av lagringsutrymme

    En viktig bugg som nu är åtgärdad rör hur ledigt utrymme beräknas på så kallade special- och dedupliceringsenheter. Felaktig rapportering av tillgängligt lagringsutrymme kan i värsta fall skapa planeringsproblem i större lagringsmiljöer. Med den här uppdateringen blir utrymmesredovisningen mer tillförlitlig.

    Stabilare replikering och mottagning

    Flera förbättringar gäller hur data skickas och tas emot mellan system. Rättighetshanteringen för kommandot zfs send med flaggorna -w och -I har korrigerats. Aktivering av stora block vid mottagning fungerar nu bättre och problem kring funktionen large_microzap har åtgärdats. Även historikloggningen vid skapande av pooler har rättats.

    För administratörer innebär detta färre oväntade fel i backup- och replikationsflöden.

    Prestandaförbättringar i bakgrunden

    OpenZFS använder en avancerad cachemekanism kallad ARC. I version 2.4.1 har hur cachen töms justerats för att förbättra parallell hantering. Även förhämtning av databuffertar har förbättrats.

    Tiderna för scrub och resilver, alltså kontroll och återuppbyggnad av data, har minskats. Dessutom har hanteringen av asynkron radering effektiviserats. Sammantaget ger detta bättre respons under belastning, särskilt i system med många samtidiga operationer.

    Robustare deduplicering

    Deduplicering är en kraftfull men komplex funktion som gör att identiska datablock bara lagras en gång. I denna version har låsning och interna gränssnitt förbättrats för att minska konkurrens mellan trådar. Buffertstorlekar för komprimerade poster har justerats och vissa loggsökningar har flyttats utanför kritiska lås för att minska flaskhalsar.

    Detta gör systemet mer skalbart i miljöer där deduplicering används intensivt.

    Plattformsspecifika korrigeringar

    På FreeBSD har trådosäker debugkod som kunde orsaka allvarliga fel tagits bort. Kompilering för äldre i386-system har återställts och vissa föråldrade referenser har rensats bort.

    På Linux har minnesallokering förbättrats och äldre kodvägar i det så kallade SPL-lagret har städats bort, vilket gör koden säkrare och mer modern.

    Förbättrade verktyg och testsvit

    Flera kommandoradsverktyg har fått nya funktioner. zdb kan nu ange objekt-ID med en ny flagga, zfs clone kan skapa dataset utan att montera dem och zhack har fått nya debugfunktioner. Testsviten har också uppdaterats för att återspegla de senaste förändringarna och rätta tidigare testfel.

    En uppdatering som stärker helheten

    OpenZFS 2.4.1 är ingen dramatisk nyhet med stora rubriker. I stället är det en stabiliserande uppdatering som stärker kompatibilitet, prestanda och kodkvalitet. För den som driver lagringslösningar med höga krav på tillförlitlighet är det just sådana förbättringar som gör störst skillnad i längden.

    https://github.com/openzfs/zfs/releases/tag/zfs-2.4.1

    OpenZFS 2.4.1 – teknisk faktaruta
    Typ: Första underhållsrelease i 2.4-serien
    Plattformar:
    • Linux-kärnor: 4.18–6.19
    • FreeBSD: 13.3+ (inkl. 14.x)
    Kompatibilitet & byggfixar:
    • Fokus på Linux 6.19 (in-tree builds, GCM-dubbletter, inode-state, striktare –werror)
    • Byggfixar för Linux 6.18 på PowerPC och RISC-V
    Viktiga funktionella korrigeringar:
    • Rättar fel i “available space”-beräkning för special- och dedup-vdevs
    • Korrigerar behörighetshantering för zfs send -w -I
    • Bättre hantering av “large block” vid receive och fixar kring large_microzap
    • Korrigerad historikloggning för zpool create -t
    Prestanda:
    • Ökad ARC-eviction batching för bättre parallellism
    • Förbättrad dbuf prefetch-caching
    • Kortare minimaltider för scrub/resilver
    • Förbättrad timing i async destroy-processing
    Dedup & DDT:
    • Förbättrad låsning och gränssnitt (bl.a. _by_dnode()-ZAP)
    • Fixar för buffertstorlek vid komprimerade poster
    • Loggsökningar flyttade utanför lås för minskad contention
    Verktyg:
    • zdb: ny -O till -r för att ange objekt-ID
    • zfs clone: -u för att skapa dataset utan montering
    • zhack: “action idle” + -G för dump av debug-buffer
    Underhåll:
    • Shellscript-städning (färre bashisms, bättre shellcheck, säkrare variabler)
    • Dokumentationsförtydliganden (initrd och montering)

Etikett: deduplicering

  • OpenZFS 2.4.4 stärker datasäkerheten och får stöd för Linux 7.2

    OpenZFS 2.4.4 har släppts med stöd för Linuxkärnan 7.2, ett nytt verktyg för att rädda låsta lagringspooler och flera korrigeringar som minskar risken för datafel. Uppdateringen riktar sig främst till administratörer av servrar och större lagringssystem, men förbättringarna berör alla som använder ZFS för att skydda viktiga filer. OpenZFS är mer än ett traditionellt filsystem.…

  • OpenZFS 2.4.1 – stabilare lagring under ytan

    Två månader efter den senaste större versionen har OpenZFS fått en viktig uppdatering. Version 2.4.1 finslipar kompatibilitet, prestanda och stabilitet i det avancerade filsystem som används i allt från hemmabyggda lagringsservrar till professionella datacenter. Två månader efter version 2.4 har OpenZFS släppt 2.4.1, den första underhållsuppdateringen i serien. Det handlar inte om stora nya funktioner,…