Lämplig SSD för ZFS special device

Permalänk
Medlem

Lämplig SSD för ZFS special device

Hej!

Jag ska uppgradera min hemmaserver med mya diskar. Har införskaffat fyra stycken 18 TB hårddiskar som jag tänkt sätta som striped mirrors (motsvarande RAID 10).

Kommer flytta över data från mina gamla diskar. Gamla poolen består av två stycken raidz2 vdev 6x3 TB och 6x4 TB. Känns bra att minska ner det till 4 stycken hårddiskar.

Hårddiskarna är inköpta. Blev två stycken WD HC550 och två stycken Toshiba MG09. Tänker att om jag parar ihop dem så att varje mirror har en Toshiba och en WD så bör risken minska att båda diskarna i samma par pajar samtidigt. Kör även backuper på det viktigaste så är ingen katastrof om det pajar.

Nu till saken. Jag har läst på lite om ZFS special device.
https://forum.level1techs.com/t/zfs-metadata-special-device-z...

Alternativ 1 är att endast spara metadata på special device. Detta snabbar upp sökningar efter filer. Vilken SSD som helst är mycket snabbare än mekaniska diskar. Men man vill ha minst samma redundans som för lagringsdiskarna. Poolen går sönder om special device havererar för då försvinner metadatan. Tänker att i mitt fall blir en mirror vdev lämplig.

Alternativ två är att dessutom spara små filer. Min pool används både för backuper och för lagring av stora videofiler. Gjorde analys och jag har knappt 900 GB med recordsize upp till 64K. Kollar jag max 32K så är det drygt 200 GB i min pool.

Tänker att om jag nöjer mig med upp till 32K records på SSD så bör det fungera med en mirror av två 1TB diskar. (Det hade nog funkat med 500 GB också men det är bra med marginaler).

Så jag vill alltså både lagra metadata och små filer på SSD och datan för större filer på hårddiskar. Jag har en äldre Kingston A2000 1 TB NVMe som jag tänker para ihop med en ny NVMe med högre livslängd. Byter senare ut min gamla NVme till en ny när livslängden börjar sina. På så sätt minskar jag risken att båda pajar samtidigt.

Har kollat på WD Red SN700 1 TB. Den har TBW på 2000 och har fått ganska bra betyg på storagereview. Jag hittar ingen bättre i förhållande till priset.

Fråga: Är SN700 ett bra val? Mitt moderkort kan ha max två stycken PCIe gen3 NVMe om jag sätter en adapter i en av 16x slotrarna för PCIe (har nara en M2 plats och resten av PCIe slottarna behövs till annat).

Ett annat alternativ är SATA SSD. Kommer ha 4 st lediga SATA portar när hårddidkarna är anslutna. Kan vara bra att ha kvar två lediga om man vill utöka poolen med en ytterligare mirror. Tänkte försöka slippa ha kontrollerkort för SATA. Vilka SATA SSD rekommenderas? Funderar även på att ha en SATA mirror som bootdisk. Typ köra btrfs då servern kommer köra debian linux. Det finns WD Red även som SATA. Men är inte säker på om det är rätt val för linux boot. Kan dock vara det om jag kör SATA som special device.

Kommer ha 10 Gbit fiber från servern.

Edit: Jag kommer nog köpa begagnade enterprise SSD istället. Offrar några SATA portar till detta. Tänker Samsung SM863 eller PM863. SM863 verkar ha bättre hållbarhet men de som köpt sådana kanske kört dem hårt? Kan ta två av vardera sorten kanske. 4 stycken 480 GB i två mirrors lär ge hyfsad prestanda. Kostar runt 500 kr styck.

Permalänk
Medlem

Bra val med begagnade datacenter SATA SSD. Jag kör själv med ett par Intel SSDSC2BB160G4 där jag med fio får ungefär ~50K IOPS för reads (4k, 8 jobs, 16 iodepth):

sagan bench $ fio fio-rand-4k-read.fio file1: (g=0): rw=randread, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=16 ... fio-3.16 Starting 8 processes file1: Laying out IO file (1 file / 10240MiB) Jobs: 8 (f=8): [r(8)][100.0%][r="223MiB/s"][r="57.2k IOPS"][eta 00m:00s]

Ingen NVMe prestanda direkt men för metadata känns det alldeles lagom, och bra pris/GB.

Visa signatur

We are the music makers, and we are the dreamers of dreams.
Youtube | Spotify Playlists | Soft | Rapp | Rytm | Kött | Kalas |

Permalänk
Snusfri

Seagate IronWolf 525.

Visa signatur

WS: i9 13900K - 128GB RAM - 6.5TB SSD - RTX 3090 24GB - LG C2 42" - W11 Pro
LAPTOP 1: Lenovo Gaming 3 - 8GB RAM - 512GB SSD - GTX 1650
LAPTOP 2: Acer Swift 3 - 8GB RAM - 512GB SSD
SERVER: i5 10400F - 64GB RAM - 44TB HDD
NALLE: Pixel 7 Pro

Permalänk
Medlem
Skrivet av THB:

Seagate IronWolf 525.

Jag har kollat på denna också. Presterar bättre än WD Red SN70O om man har PCIe4. Men 1TB varianten har på papperet sämre TBW än WD Red SN700. Om det spelar någon större roll i verkligheten är en annan sak. Om man bara skriver metadata och små filer kanske det inte blir så stort slitage.

Men det blir nog några Samsung SM863a SATA enterprise SSD. Dessa verkar vara tåliga MLC-diskar. Finns också liknande modeller från intel.

Permalänk
Medlem
Skrivet av Cloudstone:

Bra val med begagnade datacenter SATA SSD. Jag kör själv med ett par Intel SSDSC2BB160G4 där jag med fio får ungefär ~50K IOPS för reads (4k, 8 jobs, 16 iodepth):

sagan bench $ fio fio-rand-4k-read.fio file1: (g=0): rw=randread, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=16 ... fio-3.16 Starting 8 processes file1: Laying out IO file (1 file / 10240MiB) Jobs: 8 (f=8): [r(8)][100.0%][r="223MiB/s"][r="57.2k IOPS"][eta 00m:00s]

Ingen NVMe prestanda direkt men för metadata känns det alldeles lagom, och bra pris/GB.

Jag har kikat lite på intel DC S3610 som alternativ. Har en ide' om att para olika märken och modeller när jag sätter upp speglade diskar. Inte optimalt för prestanda men minskar risken att båda går sönder samtidigt.

Permalänk

Vill du utveckla varför du valde att gå för Samsung SM863a? Sökte på internet lite snabbt men den verkar ju ha magnituder sämre prestanda än WD red SSD:n du föreslog? Blir det så mycket writes till special devices? Eller var det priset? Står lite i samma sits, men tror jag lutar mer mot m.2 hållet..

Permalänk
Medlem

Behöver du verkligen använda det här? Om det bara är backuper och stora videofiler kanske det duger med en persistent L2ARC som bara innehåller metadata? Jag kör själv en sån (100 GB på en NVME SSD) och tänker att det förenklar om man t ex behöver flytta arrayen för att rädda data och kanske mindre risk för buggar osv. Man kan plocka bort L2ARC:en utan att förlora data.

Det snabbar också upp att söka på arrayen, att köra "find . | grep something" gick från ca 10 minuter till 30 sekunder efter uppstart (när man väl kört det en gång ligger det i ARC och går mycket snabbare).

Resten av utrymmet på SSDn, plus en annan SSD som speglar, använder jag för VMar etc. Då kan hårddiskarna gå ner i viloläge när jag inte använder dem, vilket kanske inte skulle hända (?) om man körde VMar och annat direkt mot arrayen även om den har en special vdev. Fast man blir ju begränsad till vad SSDerna rymmer såklart.

Permalänk
Medlem
Skrivet av Flaskhalsfritt:

Vill du utveckla varför du valde att gå för Samsung SM863a? Sökte på internet lite snabbt men den verkar ju ha magnituder sämre prestanda än WD red SSD:n du föreslog? Blir det så mycket writes till special devices? Eller var det priset? Står lite i samma sits, men tror jag lutar mer mot m.2 hållet..

Nej det blir inte jättemycket writes. Så det är nog egentligen inte så viktigt med hög TBW. Jag var ute efter power loss protection. WD Red har inte det. Problemet med SSD med cacheminne är att kan tappa data vid strömavbrott. Kan väl också vanliga hårddiskar göra men det är större risk med sådana SSD. Finns vissa SSD-diskar utan cacheminne såsom intel optane och då behövs inte PLP. Förlorar man metadata då dör poolen så för special device vill man också ha redundans. Så man skulle då vilja ha åtminstone två stycken speglade. Nu hittade jag dessa på 480 GB så jag tänkte att jag kan köra två stycken mirrors som special device så lär de bli snabbare än mina 4 stycken mekaniska diskar i samma konfiguration (två mirrors). Man kan också spara små block under en viss record size på special device så jag tänker att de blir lite som en lagringspool för den typ av data där SSD ger extra prestanda.

Har skapat min pool nu. Blev inte alls så mycket data på dessa diskar som jag trodde det skulle bli. Misstänker nästan att de där blocken på upp till 32K records inte hamnade på special device när jag gjorde zfs send | receive till nya poolen. Kanske krävs att jag skriver nya data för att de ska splittas upp? Alternativt skulle jag ha satt 64K limit.

Nu när jag skaffat diskar med över 3000 TBW så ska jag också köra dem som SLOG tänkte jag. Har ännu inte skapat log device men partitionerade dem med 8 GB partitioner för at kunna göra detta. Servern har 32 GB RAM och log device lär aldrig behöva vara större än halva RAM-minnet så jag tänkte det blir 16 GB.

Så här ser nya poolen ut nu (utan SLOG):

[root@desktop ronny]# zpool list -v NAME SIZE ALLOC FREE CKPOINT EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT lager 33.6T 20.3T 13.3T - - 0% 60% 1.00x ONLINE - mirror-0 16.4T 10.0T 6.34T - - 0% 61.2% - ONLINE ata-TOSHIBA_MG09ACA18TE_52G0A00GFJDH 16.4T - - - - - - - ONLINE ata-WDC_WUH721818ALE6L4_4BJZN9TH 16.4T - - - - - - - ONLINE mirror-1 16.4T 10.1T 6.22T - - 0% 62.0% - ONLINE ata-TOSHIBA_MG09ACA18TE_52G0A0JBFJDH 16.4T - - - - - - - ONLINE ata-WDC_WUH721818ALE6L4_4ZGM0ATV 16.4T - - - - - - - ONLINE special - - - - - - - - - mirror-2 436G 64.2G 372G - - 0% 14.7% - ONLINE ata-INTEL_SSDSC2BX480G4_BTHC632203DU480MGN-part2 439G - - - - - - - ONLINE ata-SAMSUNG_MZ7KM480HAHP-00005_S2HSNX0J406324-part2 439G - - - - - - - ONLINE mirror-3 436G 55.4G 381G - - 0% 12.7% - ONLINE ata-INTEL_SSDSC2BX480G4_BTHC632205HQ480MGN-part2 439G - - - - - - - ONLINE ata-SAMSUNG_MZ7KM480HAHP-00005_S2HSNX0J406341-part2 439G - - - - - - - ONLINE [root@desktop ronny]#

Hårddiskarna fyllda 62% men SSD-diskarna bara 14%.
Hade nog klarat mig med bara två SSD som special device.
Går ju att köpa flera och lägga till när behovet uppstår.
Ska se om det fylls på mera framöver när jag använder poolen.

Permalänk
Medlem
Skrivet av trudelutt:

Behöver du verkligen använda det här? Om det bara är backuper och stora videofiler kanske det duger med en persistent L2ARC som bara innehåller metadata? Jag kör själv en sån (100 GB på en NVME SSD) och tänker att det förenklar om man t ex behöver flytta arrayen för att rädda data och kanske mindre risk för buggar osv. Man kan plocka bort L2ARC:en utan att förlora data.

Det snabbar också upp att söka på arrayen, att köra "find . | grep something" gick från ca 10 minuter till 30 sekunder efter uppstart (när man väl kört det en gång ligger det i ARC och går mycket snabbare).

Resten av utrymmet på SSDn, plus en annan SSD som speglar, använder jag för VMar etc. Då kan hårddiskarna gå ner i viloläge när jag inte använder dem, vilket kanske inte skulle hända (?) om man körde VMar och annat direkt mot arrayen även om den har en special vdev. Fast man blir ju begränsad till vad SSDerna rymmer såklart.

Nej behöver är väl att ta i. Tycker det är skoj mestadels. Men har tidigare märkt att det kan ta lång tid att söka efter filer på servern så det är väl en bonus om detta blir bättre nu.

Aha persistent L2ARC. Fanns inte förut men verkar som det är fixat numera. Kanske blir samma sak då om du får in all metadata på cachedisken. Körde med L2ARC ett tag förut men det var länge sedan så den tappade ju innehållet vid reboot. Sedan blev det mycket skrivningar. Kanske tar lite från min M.2 bootdisk till L2ARC. Men lär inte behöva den för metadata längre. Kan man köra L2ARC utan metadata? Å andra sidan är väl M.2 snabbare än SATA så det kanske inte är någon nackdel heller.

Permalänk
Medlem
Skrivet av ronnylov:

Nej behöver är väl att ta i. Tycker det är skoj mestadels. Men har tidigare märkt att det kan ta lång tid att söka efter filer på servern så det är väl en bonus om detta blir bättre nu.

Aha persistent L2ARC. Fanns inte förut men verkar som det är fixat numera. Kanske blir samma sak då om du får in all metadata på cachedisken. Körde med L2ARC ett tag förut men det var länge sedan så den tappade ju innehållet vid reboot. Sedan blev det mycket skrivningar. Kanske tar lite från min M.2 bootdisk till L2ARC. Men lär inte behöva den för metadata längre. Kan man köra L2ARC utan metadata? Å andra sidan är väl M.2 snabbare än SATA så det kanske inte är någon nackdel heller.

Jodå, du kan köra persistent L2ARC med "alla" data också. Jag begränsar till metadata dels för att dels minska antalet skrivningar, och dels för att cachning av andra saker än metadata kan pressa ut metadata, vilket då saktar ner sökningar igen (även om jag skulle kolla på samma video flera gånger duger det gott att den strömmas från hårddiskarna, och dessutom har man ju fortfarande vanliga ARC som cachar allt i minnet).

Permalänk
Medlem
Skrivet av trudelutt:

Jodå, du kan köra persistent L2ARC med "alla" data också. Jag begränsar till metadata dels för att dels minska antalet skrivningar, och dels för att cachning av andra saker än metadata kan pressa ut metadata, vilket då saktar ner sökningar igen (även om jag skulle kolla på samma video flera gånger duger det gott att den strömmas från hårddiskarna, och dessutom har man ju fortfarande vanliga ARC som cachar allt i minnet).

Relaterat hittade jag detta: https://www.truenas.com/community/threads/zfs-arc-doesnt-seem...
Nu vet jag inte om detta är samma inställningar på Linux som jag kör men det verkar gå att finjustera hur man vill att cachen i RAM ska prioritera vad som ska sparas metadata eller användardata. Typ att man sätter en gräns att behålla åtminstone 4GB metadata i ARC. Har inte grävt vidare men borde inte vara otänkbart att man kan göra något liknande för L2ARC att förhindra att metadata kastas bort helt men ändå tillåta viss cache av filer.

Permalänk
Skrivet av ronnylov:

Relaterat hittade jag detta: https://www.truenas.com/community/threads/zfs-arc-doesnt-seem...
Nu vet jag inte om detta är samma inställningar på Linux som jag kör men det verkar gå att finjustera hur man vill att cachen i RAM ska prioritera vad som ska sparas metadata eller användardata. Typ att man sätter en gräns att behålla åtminstone 4GB metadata i ARC. Har inte grävt vidare men borde inte vara otänkbart att man kan göra något liknande för L2ARC att förhindra att metadata kastas bort helt men ändå tillåta viss cache av filer.

Riktigt bra länk!

Ja PLP är nog vettigt att sikta på, men jag tror jag tar risken att köra utan då servern har batteribackup så det som kvarstår skulle vara att min proxmox (som kommer ha zfs lagringen) skulle krasha. Dessutom så lutar jag nuvarande mot att köra sync=none så jag skulle ändå tappa de senaste ~5s eller vad det nu var mellan transition groups oavsett plp eller ej.. Prislapp/prestanda är sjukt mycket bättre om man inte fiskar efter använd (eller ny för den delen) enterprise hårdvara, och det är lite för lockande..

Hur gör du för att göra diskarna både som slog och special vdev? Ger endast partitioner till vdev:sarna?

Permalänk
Medlem
Skrivet av Flaskhalsfritt:

Riktigt bra länk!

Ja PLP är nog vettigt att sikta på, men jag tror jag tar risken att köra utan då servern har batteribackup så det som kvarstår skulle vara att min proxmox (som kommer ha zfs lagringen) skulle krasha. Dessutom så lutar jag nuvarande mot att köra sync=none så jag skulle ändå tappa de senaste ~5s eller vad det nu var mellan transition groups oavsett plp eller ej.. Prislapp/prestanda är sjukt mycket bättre om man inte fiskar efter använd (eller ny för den delen) enterprise hårdvara, och det är lite för lockande..

Hur gör du för att göra diskarna både som slog och special vdev? Ger endast partitioner till vdev:sarna?

Ja jag ger partitioner istället för diskar. Kanske inte är lika optimalt för prestandan som dedikerade diskar men det funkar. Har kört sync=none utan större problem tidigare men nu när jag ändå har tåliga SSD så får jag lite bättre tålighet med SLOG. Borde kanske skaffa en UPS också.

Jag fick ett par korrupta filer i gamla lagringspoolen i samband med migreringen. Jag hade kört scrub för någon vecka sedan utan problem. Körde det igen efter migreringen och gamla poolen hittade 5 filer som inte gick att reparera och 50-talet checksummefel på varje disk. Har hänt att gamla servern hängt sig och jag blivit tvungen att stänga av den med strömbrytaren för att starta om den. Så det var nog dags att byta ut den.

Edit: Jag brukar köra programmet ncdu ibland för att kolla vad som tar upp utrymme i filsystemen. Har ett filsystem med mer än 5 miljoner filer, ca 50 GB i total filstorlek så massor av pyttesmå filer. Det tar evigheter att köra ncdu i den mappen (timmar) på gamla ZFS-poolen. Men på nya poolen tog det nog inte mer än en minut. Känns som en jättestor förbättring som special device bidrar med här.

Permalänk
Medlem

Hittade hur man ändrar ZFS parametrar så att de stannar kvar efter reboot om man kör Linux.
Man gör det i konfigurationsfilen för modulen /etc/modprobe.d/zfs.conf

Exempel: https://knowledgebase.45drives.com/kb/setting-zfs-on-linux-ar...
Parametrar: https://openzfs.github.io/openzfs-docs/Performance%20and%20Tu...