Förslag på NVME SSD för write through cache i ZFS pool?

Permalänk
Medlem

Förslag på NVME SSD för write through cache i ZFS pool?

Hej!

Jag tänkte bygga en server primärt för back-up lagringar (blir säkertt några virtuella maskiner också.
Min tanke är att ha 2 st 20TB mekaniska diskar i en ZFS pool med en write through cache.

Har ni något förslag på en SSD som inte slits ut i första taget? CPUn i servern har inte stöd för optane.

Min tanke med write through cache är för att säkra att filerna inte blir korrupta vid skrivning under ett eventuellt strömavbrott. Tänker jag fel här? Återkom jättegärna med synpunkter

Mvh
Anders

Permalänk

Rätt säker på att cache i te förhindrar korrupta filer vid ett strömavbrott iom att datan som finns kvar i cachen kommer försvinna om datorn stängs av zfs cache är ju i princip bara en mellanlagring i ramminnet där datan först sparas i x sekunder innan de börjar skrivas till disken.

Men bryts strömen medans den skriver till disken från cachen så kommer ju ändå det den höll på att skriva inte garanterat skrivas klart till disken.

Men visst kan ju ev reducera risken lite kanske. Eller iaf antalet filer som inte hinner skrivas klart.

Visa signatur

ASUS B550-f-Gaming, R9 5800X3D, HyperX 3200Mhz cl16 128Gb ram, rtx 3070ti.
[Lista] De bästa gratisprogrammen för Windows
[Diskussion] De bästa gratisprogrammen för Windows

Permalänk
Medlem

Du blandar ihop lite begrepp vilket gör att din frågeställning inte är riktigt rimlig.

Det du kallar cache är för skrivningar ZFS intent log, och kör du mirror (RAID1) på datan vill du ha mirror för ZIL devicen också, annars blir du av med mycket av redundansen. ZIL finns alltid, har du inte en eller flera separata devices för den så ligger den på data diskarna. Data skrivs först till ZIL och sen flushas från ZIL till datadiskarna.
Write through innebär att du skriver direkt till datadisken och inte via ZFS intent log (ZIL), detta vill du sällan göra.

Cache i ZFS används bara för läsning, och där räcker det bra med en device.

ZFS är ett CoW (copy on write)-filsystem vilket innebär att data aldrig skrivs över, ändrar du en fil så kommer den data som ändrats skrivas på ett nytt record (zfs underliggande "lagringslådor", en låda är default 128KB). När all data skrivits till ett nytt record så kommer bara pekaren skrivas om, du har därför ingen risk för korrupt data vid t.ex ett strömavbrott.

Om du får strömavbrott när data skrivs till ZIL så kastas bara den nya datan vid uppstart och filen är som att ingen skrivning påbörjades.
Om strömavbrottet istället sker när datan flushas från ZIL till datadiskarna så kommer den bara läsa om det från ZIL och skriva igen till datadiskarna. Detta är varför du vill har mirror även på ZIL så du inte tappar all data ifall en disk går sönder.

Permalänk
Medlem

Är det inte smart att skaffa sig en liten UPS om det är risk för strömavbrott? Det löser ju problemet närmare källan tänker jag.

Visa signatur

Nybörjare på Linux? Se hit! #15665841

Permalänk
Medlem

Är det inte en SLOG som du efterfrågar? Den används lite som en write cache för ZFS.
Den måste du ha i raid 1 för om den dör så dör hela poolen. Den är persistent och fylls snabbt av RAM:en och skriver sen ned till slödiskarna.

ZFS skriver vad jag har förstått alltid till RAM > ev SLOG > poolens storage vdevs

Men jag tror du ska satsa på:
1. UPS
2. RAM
3. SLOG

Du kan läsa på lite mer här och dubbelkolla så jag fattat det rätt
https://www.servethehome.com/what-is-the-zfs-zil-slog-and-wha...

Visa signatur

...excellent

Permalänk
Medlem
Skrivet av NodCommander:

Är det inte smart att skaffa sig en liten UPS om det är risk för strömavbrott? Det löser ju problemet närmare källan tänker jag.

Jag tänkte precis säga det. Det vore nog bättre att satsa på en UPS så att maskinen kan stänga ner säkert

Visa signatur

AMD Athlon XP 2000+(Palomino) | 512MiB DDR333 | Gigabyte GA-7VRXP | Point of View GeForce 4 Ti4200 XP | 2x IBM Deskstar 80GB i Raid 0 | Chieftec Dragon | Win2k |

AMD Ryzen R7 5700X | 16GiB DDR4 3200 CL14 | MSI B450 Tomahawk II | Sapphire RX5700 Pulse | Intel 660p 1TiB | Nanoxia Deep Silence | AOC CQ32G1 144Hz 1440p | Win 10 |

Permalänk
Medlem

Tack alla för informationen! Då om jag förstått det rätt så är en SLOG i detta fallet overkill då som jag fattat det inte bidrar till att säkra datan i sig utan mer att tillfälligt snabba upp skrivning mot underliggande diskar i poolen så länge inte SLOGen är full.

Då hastigheten i detta fallet inte kommer vara begränsade av diskarnas hastighet så tror jag att hoppar över en SLOG.

Mvh
Anders

Permalänk
Medlem

Nä precis, men du kan ju hamna i ett läge kanske där SLOG:en har fått all data från RAM och ska skriva det till slödiskar och strömmen går, då ligger ju skrivningen kvar i SLOG:en eftersom den är persistent så den kommer fortsätta när strömmen är tillbaka.

Men då är ju en UPS bättre om du inte behöver en snabb write cache.

Visa signatur

...excellent