Dank je wel! Moest 'ie na deze scrub terug een het repairen slaan op deze schijf, dan is er dus iets structureels aan de hand en moet ik verder onderzoeken of er iets mis is met de schijf zelf. Hoe pak ik dat dan juist aan?Dat is niet erg. Daarom doe je na deze scrub weer hetzelfde nog een keer om te checken of het inderdaad niet tijdelijk is.
Smart al gechecked?meraki schreef op vrijdag 18 december 2020 @ 20:46:
[...]
Dank je wel! Moest 'ie na deze scrub terug een het repairen slaan op deze schijf, dan is er dus iets structureels aan de hand en moet ik verder onderzoeken of er iets mis is met de schijf zelf. Hoe pak ik dat dan juist aan?
Sinds de 2 dagen regel reageer ik hier niet meer
Ik ging ervan uit dat freenas me daarvan op de hoogte ging houden maar mogelijk heb ik een te oude versie (9.3)Smart al gechecked?
De 9.3 kon dat ook al. Moest je zien dat je SMART tests falen zou ik toch maar eens naar de e-mail instellingen kijken.meraki schreef op vrijdag 18 december 2020 @ 20:51:
[...]
Ik ging ervan uit dat freenas me daarvan op de hoogte ging houden maar mogelijk heb ik een te oude versie (9.3)
Of beter nog: eerst upgraden (in stapjes, is wel ergens terug te vinden in de officiële documentatie dacht ik) en dan instellen.
Moesten Smart en de memtest in orde zijn zou ik overigens proberen de kabel te vervangen.
Het blijkt zo te zijn dat ik hier nooit een taak voor heb ingesteld. De SMART-tests hebben tot vandaag dus nooit gelopen. Bedankt! Ik zal al eens beginnen met de disk die ogenschijnlijk problemen geeft, te testen via de command line.De 9.3 kon dat ook al. Moest je zien dat je SMART tests falen zou ik toch maar eens naar de e-mail instellingen kijken.
Of beter nog: eerst upgraden (in stapjes, is wel ergens terug te vinden in de officiële documentatie dacht ik) en dan instellen.
Moesten Smart en de memtest in orde zijn zou ik overigens proberen de kabel te vervangen.
De kabel zou me vreemd lijken want de HDD's zitten in een hot swappable 3U rackserver ingeklikt op een SAS HBA met dus van die dikke kabels voor meerdere schijven IIRC.
Ik ben bezig met een storage server op basis van ZFS die gebruikt gaat worden voor het opslaan van veel dezelfde data. Al een hoop uitgezocht, maar ik hoor graag jullie eventuele bevindingen over de intenties.
- OS komt op een aparte SSD, waarschijnlijk Debian omdat ik daar erg mee vertrouwd ben.
- 8X10TB dedicated beschikbaar voor storage.
- Ik denk aan RAIDZ2 (~55TB bruikbaar) met dedup en compressie.
- Snapshots om terug te kunnen naar een eerdere staat van de backups.
- Server heeft nu 128GB REG RAM. Op basis van de vuistregel 5GB per TB storage voor dedup zal dat waarschijnlijk naar 275+ GB moeten.
- Aparte SSDs voor L2ARC en ZIL/SLOG hebben voor deze use case (backups gededupliceerd wegschrijven en later evt. weer ophalen) volgens mij weinig toegevoegde waarde, correct me if I'm wrong?
- Debian biedt nu OpenZFS 0.8.5 of 0.8.6 via backports, maar OpenZFS 2.0 is net uit. Het wordt een productieomgeving, dus waarschijnlijk beter om nog even bij 0.8.6 te blijven? Is 2.0 uberhaupt al beschikbaar voor Debian?
Eventuele aanbevelingen zeer welkom!
- OS komt op een aparte SSD, waarschijnlijk Debian omdat ik daar erg mee vertrouwd ben.
- 8X10TB dedicated beschikbaar voor storage.
- Ik denk aan RAIDZ2 (~55TB bruikbaar) met dedup en compressie.
- Snapshots om terug te kunnen naar een eerdere staat van de backups.
- Server heeft nu 128GB REG RAM. Op basis van de vuistregel 5GB per TB storage voor dedup zal dat waarschijnlijk naar 275+ GB moeten.
- Aparte SSDs voor L2ARC en ZIL/SLOG hebben voor deze use case (backups gededupliceerd wegschrijven en later evt. weer ophalen) volgens mij weinig toegevoegde waarde, correct me if I'm wrong?
- Debian biedt nu OpenZFS 0.8.5 of 0.8.6 via backports, maar OpenZFS 2.0 is net uit. Het wordt een productieomgeving, dus waarschijnlijk beter om nog even bij 0.8.6 te blijven? Is 2.0 uberhaupt al beschikbaar voor Debian?
Eventuele aanbevelingen zeer welkom!
[ Voor 7% gewijzigd door d3vlin op 19-12-2020 19:43 ]
Leaping Lab Rats!
Vervangende schijf BIJplaatsen (!) en dan replace commando altijd het meest betrouwbare want de falende schijf doet dan ook nog mee in het herbouwen. Gebeurt er dan iets op nog een andere schijf ben je niet zo snel het haasje.meraki schreef op vrijdag 18 december 2020 @ 20:13:
Twee vragen:
Eerste vraag
Deze zomer gaf een bepaalde schijf problemen in mijn RAIDZ-1 opstelling.
[Afbeelding]
Op dit moment is de status van de schijf echter als volgt:
[Afbeelding]
Ik vermoed dat ik deze maar eens moet gaan vervangen ondanks dat de status nu terug op ONLINE i.p.v. DEGRADED staat. Indien ik dat doe, wat doe ik dan het best:Tweede vraag
- Een backup maken van alle data naar een externe HDD-schijf alvorens ik de schijf vervang om zo een onfortuinlijke resilver te vermijden?
- Of is dit onzinnig in mijn geval aangezien de vdev die voorheen op degraded stond nu terug online staat en kan de resilver aldus veilig verlopen?
Ik heb de mogelijkheid om te upgraden naar OpenZFS 2.0. Doe ik dit best eerst alvorens de schijf te vervangen? Het zou dan gaan om een simpele zpool export en zpool import en nadien de laatste nieuwe feature flags aanzetten. Ik las namelijk dat het resilveren hiermee sneller verloopt.
Alvast bedankt voor jullie advies.
Maar eerst:
Dikke kabels? Kunnen ook niet goed aangesloten zijn hoor 😊. Best ook een memtest doen en dat dan ook minstens 24h. Minder dan 24h dan doe je het beter gewoon niet.
Niet upgraden voor je pool terug in orde is. Eerst zorgen voor een stabiele en gezonde omgeving.
[ Voor 4% gewijzigd door HyperBart op 19-12-2020 18:54 ]
Ff korte update:
Kan helaas niet non-stop aan dit mooie projekt werken.... ook nog zoiets als werk en family...
Ben ondertussen nog op 2'sporen' aan het werken om dus de handling van de tagdata goed (stukken sneller) laten te verlopen:
1) Mbv gebruik database.
Bezig met de 3 ontwikkelaars van die meest gebruikte tagbewerking programma's (MP3Tag, Similarity, FooBar), om te zien hoe we elk der 3 programma's goed kunnen laten werken met een database.
Lekker gedetailleerd werk... dus work in progress....
2) Mbv slim gebruik van de ARC (file-caching) van FreeNAS (TrueNAS) zelf.
Met een aantal andere TrueNAS-geeks uit de US bezig om te zien hoe we sec de tagdata (die dus klein onderdeel uitmaken van de hoofd/audio-files) effectief (=snel) en efficient (zonder dat de ARC-SSD 'ontploft' door extreme data-writing) in L2ARC gestored krijgen.
Lastigheden agv de pre-fetch die toch aan moet blijven ivm performance bij het effectief audio-file readen. etc.... maar wel bloedfanatiek veel (100% nutteloze) extra-reads/writes-to-ARC doet... etc etc
In de kerstvakantie nog even kiezen of ik hiermee verder ga testen of.... ga voor de gloeiwijn... ;-)
I'll be back.
(solutions hieruit probeer ik hier te delen int forum)
Kan helaas niet non-stop aan dit mooie projekt werken.... ook nog zoiets als werk en family...
Ben ondertussen nog op 2'sporen' aan het werken om dus de handling van de tagdata goed (stukken sneller) laten te verlopen:
1) Mbv gebruik database.
Bezig met de 3 ontwikkelaars van die meest gebruikte tagbewerking programma's (MP3Tag, Similarity, FooBar), om te zien hoe we elk der 3 programma's goed kunnen laten werken met een database.
Lekker gedetailleerd werk... dus work in progress....
2) Mbv slim gebruik van de ARC (file-caching) van FreeNAS (TrueNAS) zelf.
Met een aantal andere TrueNAS-geeks uit de US bezig om te zien hoe we sec de tagdata (die dus klein onderdeel uitmaken van de hoofd/audio-files) effectief (=snel) en efficient (zonder dat de ARC-SSD 'ontploft' door extreme data-writing) in L2ARC gestored krijgen.
Lastigheden agv de pre-fetch die toch aan moet blijven ivm performance bij het effectief audio-file readen. etc.... maar wel bloedfanatiek veel (100% nutteloze) extra-reads/writes-to-ARC doet... etc etc
In de kerstvakantie nog even kiezen of ik hiermee verder ga testen of.... ga voor de gloeiwijn... ;-)
I'll be back.
(solutions hieruit probeer ik hier te delen int forum)
PS:
Een ander 'spoor' en in wezen meest directe oplossing is om een straight-forward caching te doen van de tagdata.
Dus om hiermee constant een kopie van sec de tagdata te laten zetten op een SSD-pool onder TrueNAS (of gewoon op een SSD op aangesloten workstation).
Ik ben zelf niet goed thuis in scripting, maar ik vond al wel een stuk software dat mij goed passend lijkt ?:
https://doc.nette.org/en/3.0/caching
Wie is er handig in scripting? cq weet iemand die hiermee een handje kan helpen?
Alvast dank voor de reply.
Een ander 'spoor' en in wezen meest directe oplossing is om een straight-forward caching te doen van de tagdata.
Dus om hiermee constant een kopie van sec de tagdata te laten zetten op een SSD-pool onder TrueNAS (of gewoon op een SSD op aangesloten workstation).
Ik ben zelf niet goed thuis in scripting, maar ik vond al wel een stuk software dat mij goed passend lijkt ?:
https://doc.nette.org/en/3.0/caching
Wie is er handig in scripting? cq weet iemand die hiermee een handje kan helpen?
Alvast dank voor de reply.
De meest prangende vraag. Gewenste prestaties. Ik heb hier een dedup pool nét niet werkend gekregen op een SBC met 1GB geheugend3vlin schreef op zaterdag 19 december 2020 @ 16:21:
Eventuele aanbevelingen zeer welkom!
Sinds de 2 dagen regel reageer ik hier niet meer
Nee (dit is op Testing):d3vlin schreef op zaterdag 19 december 2020 @ 16:21:
- Debian biedt nu OpenZFS 0.8.5 of 0.8.6 via backports, maar OpenZFS 2.0 is net uit. Het wordt een productieomgeving, dus waarschijnlijk beter om nog even bij 0.8.6 te blijven? Is 2.0 uberhaupt al beschikbaar voor Debian?
$ apt policy zfs-dkms zfs-dkms: Geïnstalleerd: (geen) Kandidaat: 0.8.5-3 Versietabel: 0.8.6-1 50 50 http://cdn-fastly.deb.debian.org/debian sid/contrib amd64 Packages 0.8.5-3 450 450 http://cdn-fastly.deb.debian.org/debian bullseye/contrib amd64 Packages 450 http://cdn-fastly.deb.debian.org/debian testing/contrib amd64 Packages
Got Leenucks? | Debian Bookworm x86_64 / ARM | OpenWrt: Empower your router | Blogje
Kwam dit nog tegen:GioStyle schreef op maandag 7 december 2020 @ 22:37:
@HyperBart
Jij hebt dus 6 schijven in 1 grote USB enclosure zitten, begrijp ik? Kan je daar iets meer over vertellen?
https://www.amazon.co.uk/...ure-SATA3-0/dp/B07449Q74W
Ik ben fan van dit merk:HyperBart schreef op zaterdag 19 december 2020 @ 23:55:
[...]
Kwam dit nog tegen:
https://www.amazon.co.uk/...ure-SATA3-0/dp/B07449Q74W
https://www.amazon.nl/ORI...id=pla-838372205510&psc=1
Maar zoiets zou gewoon goed met ZFS moeten werken?
De dataset zal na de initiele transfer grotendeels in rust zijn. Er zal met intervallen (zeg wekelijks) naar schatting 100-250GB aan nieuwe data aangeboden worden aan de server (rsync). De gigabit ethernet verbinding is in elk geval een eerste limiet. Transfer moet klaar zijn binnen een paar uur, maar dat zou binnen die constraints prima mogelijk moeten zijn.CurlyMo schreef op zaterdag 19 december 2020 @ 22:56:
[...]
De meest prangende vraag. Gewenste prestaties. Ik heb hier een dedup pool nét niet werkend gekregen op een SBC met 1GB geheugenProbleem was dat hij de dedup tables niet in kon laden. Oftewel, alle adviezen gaan uit van enterprise gewenste prestaties. Als je die niet hebt, dan gaat het vrijwel zeker ook prima werken met meer courante geheugen hoeveelheden.
De reden om voor zfs te gaan zit eigenlijk met name in de dedup mogelijkheden op filesystem niveau. Dat het ook gelijk RAID biedt is mooi meegenomen, maar daar zijn ook goede alternatieven voor. Een ruwe estimate voor besparing schijfruimte door dedup op deze dataset is ongeveer 30-50%.
1GB RAM klinkt wel heel weinig overigens voor dedup? Hoe groot is de totale zfs pool daarbij?
[ Voor 17% gewijzigd door d3vlin op 20-12-2020 12:12 ]
Leaping Lab Rats!
Ok tnx. Debian staat natuulijk ook niet bekend om zijn bleeding edge karakter. Ik zou er ook niet voor kiezen om een backupserver uit te rusten met een kersverse versie, maar ik begreep dat 2.0 wel een behoorlijk stap is voor OpenZFS.Borromini schreef op zaterdag 19 december 2020 @ 23:44:
[...]
Nee (dit is op Testing):
$ apt policy zfs-dkms zfs-dkms: Geïnstalleerd: (geen) Kandidaat: 0.8.5-3 Versietabel: 0.8.6-1 50 50 http://cdn-fastly.deb.debian.org/debian sid/contrib amd64 Packages 0.8.5-3 450 450 http://cdn-fastly.deb.debian.org/debian bullseye/contrib amd64 Packages 450 http://cdn-fastly.deb.debian.org/debian testing/contrib amd64 Packages
Leaping Lab Rats!
Je zou te weten moeten komen welke controller er in zit. Diegene die ik postte geeft hard aan dat hij niks van RAID doet. Ik kan me prima voorstellen dat het gros van de mensen net WEL RAID wil “want ik heb nu een grote schijf, deze doos is mijn grote schijf” (zonder dan de consequenties er van in te zien).GioStyle schreef op zondag 20 december 2020 @ 00:43:
[...]
Ik ben fan van dit merk:
https://www.amazon.nl/ORI...id=pla-838372205510&psc=1
Maar zoiets zou gewoon goed met ZFS moeten werken?
Bestel eens en post eens wat output van lsusb enzo?

Dat was ongeveer 1,5TB voor een offsite backup. Ik zou gewoon een beginnen met 32GB bijv. en als dat niet performed langzaam omhoog gaan.d3vlin schreef op zondag 20 december 2020 @ 10:03:
[...]
De dataset zal na de initiele transfer grotendeels in rust zijn. Er zal met intervallen (zeg wekelijks) naar schatting 100-250GB aan nieuwe data aangeboden worden aan de server (rsync). De gigabit ethernet verbinding is in elk geval een eerste limiet. Transfer moet klaar zijn binnen een paar uur, maar dat zou binnen die constraints prima mogelijk moeten zijn.
1GB RAM klinkt wel heel weinig overigens? Hoe groot is de totale zfs pool daarbij?
Sinds de 2 dagen regel reageer ik hier niet meer
Ik had niet gezien dat in de beschrijving twee type van chips vermeld stonden. Eentje is de sata to USB en de andere is een port multiplier. Ik weet niet hoe ZFS en port multipliers samen werken maar qua bandbreedte ga je sowieso moeten delen.GioStyle schreef op zondag 20 december 2020 @ 00:43:
[...]
Ik ben fan van dit merk:
https://www.amazon.nl/ORI...id=pla-838372205510&psc=1
Maar zoiets zou gewoon goed met ZFS moeten werken?
@FireDrunk weet jij daar wat zinnigs over te zeggen?
[ Voor 3% gewijzigd door HyperBart op 20-12-2020 14:13 ]
Ligt 100% aan de controller en techniek (UAS vs USB Mass Storage vs Proprietary meuk).
Bovendien is snelheid wel een ding... 4 schijven over 1*5Gb USB poort is denk ik wat krap. USB is een serieel protocol, dus meerdere schijven tegelijk aanspreken is niet efficient. Dat geeft hoge latencies. En dat zal ZFS weer niet zo leuk vinden.
Bovendien is snelheid wel een ding... 4 schijven over 1*5Gb USB poort is denk ik wat krap. USB is een serieel protocol, dus meerdere schijven tegelijk aanspreken is niet efficient. Dat geeft hoge latencies. En dat zal ZFS weer niet zo leuk vinden.
Even niets...
@GioStyle Rosewill heeft wel een eSATA variant van dit principe. 2 x eSATA multiplied naar 8 x SATA.
@FireDrunk Maar met multipliers (buiten obvious bandwith sharing) was er geen probleem? Ik dacht dat me daar ook nog iets van bijstond maar misschien denk ik dat maar omdat ik indertijd het nooit in mijn servers gedaan heb owv van die bandbreedte die gedeeld is.
@FireDrunk Maar met multipliers (buiten obvious bandwith sharing) was er geen probleem? Ik dacht dat me daar ook nog iets van bijstond maar misschien denk ik dat maar omdat ik indertijd het nooit in mijn servers gedaan heb owv van die bandbreedte die gedeeld is.
CurlyMo schreef op vrijdag 18 december 2020 @ 20:47:
Smart al gechecked?
Giesber schreef op vrijdag 18 december 2020 @ 22:49:
Moesten Smart en de memtest in orde zijn zou ik overigens proberen de kabel te vervangen.
Bedankt voor jullie deskundig advies. Een smart test wijst het volgende uit:HyperBart schreef op zaterdag 19 december 2020 @ 18:53:
Vervangende schijf BIJplaatsen (!) en dan replace commando altijd het meest betrouwbare want de falende schijf doet dan ook nog mee in het herbouwen. Gebeurt er dan iets op nog een andere schijf ben je niet zo snel het haasje.
Niet upgraden voor je pool terug in orde is. Eerst zorgen voor een stabiele en gezonde omgeving.
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Extended offline Completed: read failure 90% 62087 257218184
Ik ben geen expert maar waarschijnlijk wil dit dus zeggen dat de schijf aan het kapot gaan is.
@HyperBart, ik zal de schijf bijplaatsen. Deze zit dan wel niet gelijk op de 'juiste' locatie in de drivebay. Maakt het voor ZFS uit op welke SAS/SATA-poort een schijf aangesloten zit? Ik wil namelijk na een succesvolle resilver de nieuwe schijf op de plaats van de oude, kapotte schijf steken.
Neen, dat is voor ZFS geen probleem.meraki schreef op zondag 20 december 2020 @ 16:36:
[...]
[...]
[...]
Bedankt voor jullie deskundig advies. Een smart test wijst het volgende uit:
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Extended offline Completed: read failure 90% 62087 257218184
Ik ben geen expert maar waarschijnlijk wil dit dus zeggen dat de schijf aan het kapot gaan is.
@HyperBart, ik zal de schijf bijplaatsen. Deze zit dan wel niet gelijk op de 'juiste' locatie in de drivebay. Maakt het voor ZFS uit op welke SAS/SATA-poort een schijf aangesloten zit? Ik wil namelijk na een succesvolle resilver de nieuwe schijf op de plaats van de oude, kapotte schijf steken.
Klinkt heel leuk 👍🏻.d3vlin schreef op zaterdag 19 december 2020 @ 16:21:
Ik ben bezig met een storage server op basis van ZFS die gebruikt gaat worden voor het opslaan van veel dezelfde data. Al een hoop uitgezocht, maar ik hoor graag jullie eventuele bevindingen over de intenties.
- OS komt op een aparte SSD, waarschijnlijk Debian omdat ik daar erg mee vertrouwd ben.
- 8X10TB dedicated beschikbaar voor storage.
- Ik denk aan RAIDZ2 (~55TB bruikbaar) met dedup en compressie.
- Snapshots om terug te kunnen naar een eerdere staat van de backups.
- Server heeft nu 128GB REG RAM. Op basis van de vuistregel 5GB per TB storage voor dedup zal dat waarschijnlijk naar 275+ GB moeten.
- Aparte SSDs voor L2ARC en ZIL/SLOG hebben voor deze use case (backups gededupliceerd wegschrijven en later evt. weer ophalen) volgens mij weinig toegevoegde waarde, correct me if I'm wrong?
- Debian biedt nu OpenZFS 0.8.5 of 0.8.6 via backports, maar OpenZFS 2.0 is net uit. Het wordt een productieomgeving, dus waarschijnlijk beter om nog even bij 0.8.6 te blijven? Is 2.0 uberhaupt al beschikbaar voor Debian?
Eventuele aanbevelingen zeer welkom!
Je zou kunnen starten met die 128GB aan RAM. Een L2ARC op SSD levert wel wat op als RAM niet voldoende is (daarom L2).
Het zou m.i dan ook wel een goede strategie zijn om met 128GB en SSD L2ARC de server aan te schaffen, goed testen met de pool zonder de SSD’s. Daarna de SSD’s toevoegen, opnieuw testen.
Dat zijn ook fijne testresultaten voor ons 😉
Zeker de machine niet in productie zetten voor je doorgedreven met real world data hebt getest.
De server is er al. :-) Voor de volledigheid:HyperBart schreef op zondag 20 december 2020 @ 17:17:
[...]
Klinkt heel leuk 👍🏻.
Je zou kunnen starten met die 128GB aan RAM. Een L2ARC op SSD levert wel wat op als RAM niet voldoende is (daarom L2).
Het zou m.i dan ook wel een goede strategie zijn om met 128GB en SSD L2ARC de server aan te schaffen, goed testen met de pool zonder de SSD’s. Daarna de SSD’s toevoegen, opnieuw testen.
Dat zijn ook fijne testresultaten voor ons 😉
Zeker de machine niet in productie zetten voor je doorgedreven met real world data hebt getest.
- 2x Xeon E5-2640
- 128GB DDR3 REG
- 8 x Exos x10 10TB SAS
Er is een 500GB SSD onderweg om Debian op te gaan installeren. Doe ik met LVM zodat ik later ook eventueel een kleine ZIL/SLOG partitie kan maken op die schijf of de swap partitie kan resizen. Initieel ga ik voor: OS: 372 GB / SWAP: 128 GB
Vanuit die installatie RAIDZ2 op de 8x10TB schijven met dedup en compressie aan. Dan eerst maar eens flink wat data naar de server gaan sturen en kijken hoe het gaat.
Mogelijkheden daarna:
- meer RAM toevoegen (op basis van 5GB RAM per TB storage voor dedup gok ik +256GB naar 384GB, server ondersteunt max 768GB)
- dedicated SSD toevoegen (nvme/mlc) voor L2ARC. (grootte t.o.v. 128GB RAM? Of t.o.v. 384 GB RAM?)
- ZIL/SLOG partitie maken op de OS SSD of als die er is de L2ARC SSD (32GB? Heeft alleen zin met sync writes?)
- SWAP partitie vergroten
Verhouding ARC (RAM) en L2ARC (SSD) schijnt ook nogal uit te maken voor de performance lees ik her en der. Al is dat volgens mij vooral als mensen met veel te weinig RAM beginnen en dan enkel een relatief grote SSD toevoegen als L2ARC.
Leaping Lab Rats!
128GB SWAP als je al 128GB RAM hebt? Wat ga je in vredesnaam doen met die machine 
Wil je alle 80TB aan storage in Dedup zetten? Dat lijkt me *erg* onverstandig.
Dedup is leuk voor plekken waar het veel helpt, maar voor films, foto's, video etc maakt het geen kont uit, en vreet het alleen maar geheugen.
Als je al 128GB RAM hebt is een L2ARC voor een thuis server overkill, gaat zo weinig opleveren. Tenzij je iets van plan bent waardoor ZFS niets van die 128GB kan gebruiken.
Verschillen tussen ZFS 0.8.x en 2.0 zijn vrij beperkt hoor, wat extra features, niet veel meer.
Wil je alle 80TB aan storage in Dedup zetten? Dat lijkt me *erg* onverstandig.
Dedup is leuk voor plekken waar het veel helpt, maar voor films, foto's, video etc maakt het geen kont uit, en vreet het alleen maar geheugen.
Als je al 128GB RAM hebt is een L2ARC voor een thuis server overkill, gaat zo weinig opleveren. Tenzij je iets van plan bent waardoor ZFS niets van die 128GB kan gebruiken.
Verschillen tussen ZFS 0.8.x en 2.0 zijn vrij beperkt hoor, wat extra features, niet veel meer.
Even niets...
Wat veranderen films en fotos aan het nut van dedup? Als hij twee keer dezelfde set opslaat is het toch nuttig?FireDrunk schreef op zondag 20 december 2020 @ 18:51:
128GB SWAP als je al 128GB RAM hebt? Wat ga je in vredesnaam doen met die machine
Wil je alle 80TB aan storage in Dedup zetten? Dat lijkt me *erg* onverstandig.
Dedup is leuk voor plekken waar het veel helpt, maar voor films, foto's, video etc maakt het geen kont uit, en vreet het alleen maar geheugen.
Daarnaast lijkt hij toch alle nodige hardware te bezitten? Heel beefy CPU’s en een sloot geheugen (waar hij geen probleem mee heeft om uit te breiden).
Ik denk ook dat het ik een kantoor omgeving is.
Als je iedere dag bijna dezelfde 100 a 150G wegschrijft dan lijkt zijn hardware en usecase toch prima om dedup te enablen? Of waar denk jij aan?
Als je al 128GB RAM hebt is een L2ARC voor een thuis server overkill, gaat zo weinig opleveren. Tenzij je iets van plan bent waardoor ZFS niets van die 128GB kan gebruiken.
Verschillen tussen ZFS 0.8.x en 2.0 zijn vrij beperkt hoor, wat extra features, niet veel meer.
Server is inderdaad niet voor thuisgebruik, het gaat om het archiveren van 3D producties die veelal dezelfde assets delen. Ik weet dat dedup op deze dataset circa 30-50% bespaart op basis van eerdere tests met borgbackup. Met RAIDZ2 blijft er effectief 55TB over voor storage met dedup. Die grootte is natuurlijk zo bedacht met het oog op de toekomst. In eerste instantie zal daarvan maar een deel gevuld worden. Het idee is dat we er vervolgens een aantal jaar mee vooruit kunnen.FireDrunk schreef op zondag 20 december 2020 @ 18:51:
128GB SWAP als je al 128GB RAM hebt? Wat ga je in vredesnaam doen met die machine
Wil je alle 80TB aan storage in Dedup zetten? Dat lijkt me *erg* onverstandig.
Dedup is leuk voor plekken waar het veel helpt, maar voor films, foto's, video etc maakt het geen kont uit, en vreet het alleen maar geheugen.
Als je al 128GB RAM hebt is een L2ARC voor een thuis server overkill, gaat zo weinig opleveren. Tenzij je iets van plan bent waardoor ZFS niets van die 128GB kan gebruiken.
Verschillen tussen ZFS 0.8.x en 2.0 zijn vrij beperkt hoor, wat extra features, niet veel meer.
128GB SWAP juist omdat ik niet weet hoeveel RAM dedup gaat vergen. Lijkt me beter dat de swap space er is dan dat het geheugen vol loopt. En voor het OS is de ruimte ook niet nodig dus what gives.
[ Voor 60% gewijzigd door d3vlin op 20-12-2020 19:49 ]
Leaping Lab Rats!
Bij sync writes is een SLOG ZIL belangrijk, anders niet zo. Ik zou dan liever een SSD als L2ARC in zetten. Net bij dedup heeft dat ook zijn zin want daar gaat hij de DDT’s naar toe schrijven als blijkt dat RAM ontoereikend is.d3vlin schreef op zondag 20 december 2020 @ 17:47:
[...]
De server is er al. :-) Voor de volledigheid:
- 2x Xeon E5-2640
- 128GB DDR3 REG
- 8 x Exos x10 10TB SAS
Er is een 500GB SSD onderweg om Debian op te gaan installeren. Doe ik met LVM zodat ik later ook eventueel een kleine ZIL/SLOG partitie kan maken op die schijf of de swap partitie kan resizen. Initieel ga ik voor: OS: 372 GB / SWAP: 128 GB
Vanuit die installatie RAIDZ2 op de 8x10TB schijven met dedup en compressie aan. Dan eerst maar eens flink wat data naar de server gaan sturen en kijken hoe het gaat.
Mogelijkheden daarna:
- meer RAM toevoegen (op basis van 5GB RAM per TB storage voor dedup gok ik +256GB naar 384GB, server ondersteunt max 768GB)
- dedicated SSD toevoegen (nvme/mlc) voor L2ARC. (grootte t.o.v. 128GB RAM? Of t.o.v. 384 GB RAM?)
- ZIL/SLOG partitie maken op de OS SSD of als die er is de L2ARC SSD (32GB? Heeft alleen zin met sync writes?)
- SWAP partitie vergroten
Verhouding ARC (RAM) en L2ARC (SSD) schijnt ook nogal uit te maken voor de performance lees ik her en der. Al is dat volgens mij vooral als mensen met veel te weinig RAM beginnen en dan enkel een relatief grote SSD toevoegen als L2ARC.
Maar ik ben vooral benieuwd wat @FireDrunk nog kan zeggen.
Schrijven zal vooral het toevoegen van data zijn. Omdat het om backup data gaat zou ik zeggen dat sync writes de voorkeur heeft. Data integriteit (ook bij onverhoopte powerloss) is het uitgangspunt. Met een gbit nic als bottleneck voor het voeden van data zal de ZIL/SLOG maar klein hoeven zijn, vandaar 32GB (en dat lijkt nog groot te zijn als ik zo her en der lees).HyperBart schreef op zondag 20 december 2020 @ 19:48:
[...]
Bij sync writes is een SLOG ZIL belangrijk, anders niet zo. Ik zou dan liever een SSD als L2ARC in zetten. Net bij dedup heeft dat ook zijn zin want daar gaat hij de DDT’s naar toe schrijven als blijkt dat RAM ontoereikend is.
Maar ik ben vooral benieuwd wat @FireDrunk nog kan zeggen.
Ik ga er vanuit dat echt geheugen de voorkeur heeft boven een ssd als L2ARC? En mocht het toch een combinatie van RAM en SSD als L2ARC worden, hoe zit het dan met de verhouding daarvan? Bijvoorbeeld:
- 128GB REG RAM (huidig) ARC + 512GB? +1TB? nvme mlc SSD als L2ARC
- 378GB REG RAM
Wat heeft de voorkeur en wat is in het eerste geval een verstandige keuze qua verhouding ARC en evt. L2ARC?
[ Voor 3% gewijzigd door d3vlin op 20-12-2020 20:32 ]
Leaping Lab Rats!
Ik heb de indruk dat de file system test suites van zfs vrij robuust zijn als ik door de issue tracker blader.d3vlin schreef op zondag 20 december 2020 @ 10:07:
Ok tnx. Debian staat natuulijk ook niet bekend om zijn bleeding edge karakter. Ik zou er ook niet voor kiezen om een backupserver uit te rusten met een kersverse versie, maar ik begreep dat 2.0 wel een behoorlijk stap is voor OpenZFS.
Enorm voordeel van 2.0 is wmb. de introductie van compression=zstd. Daarmee kun je de compressieratio van gzip halen, maar dan minimaal 4/5x zo efficient qua cpu time.
Dat duidt op bad sectors, ofwel tenminste ééntje die nu in ieder geval pending is. Even naar de output van smartctl -a kijken.meraki schreef op zondag 20 december 2020 @ 16:36:
Ik ben geen expert maar waarschijnlijk wil dit dus zeggen dat de schijf aan het kapot gaan is.
Ik zal morgen een langere reactie typen, maar voor nu: bedenk je *heel* goed wat de impact is van 80TB in dedup zetten. ZFS doet in tegenstelling tot veel andere oplossingen inline dedup ipv offline dedup. Hierdoor moet een hash van elk blok in memory staan. Die hashes moeten allemaal in memory staan. Die wil je absoluut niet op swap hebben staan.
Elke write naar disk, gaat langs die dedup tabel, en wordt daar trager van. Ook elke delete kan voor lange io waits zorgen omdat de dedup tabellen geupdate moeten worden. Hoe groter die tabellen, hoe langer en zwaarder die operaties.
Ik snap dat 30-50% dedup aantrekkelijk lijkt, maar de kosten van de ellende er omheen zijn waarschijnlijk hoger dan de capaciteit verdubbelen. Je kan dan immers met een kwart van het geheugen prima toe...
Elke write naar disk, gaat langs die dedup tabel, en wordt daar trager van. Ook elke delete kan voor lange io waits zorgen omdat de dedup tabellen geupdate moeten worden. Hoe groter die tabellen, hoe langer en zwaarder die operaties.
Ik snap dat 30-50% dedup aantrekkelijk lijkt, maar de kosten van de ellende er omheen zijn waarschijnlijk hoger dan de capaciteit verdubbelen. Je kan dan immers met een kwart van het geheugen prima toe...
Even niets...
Dat is inderdaad precies waar ik benieuwd naar ben. Ik ben op diverse plekken al 'dragons ahead, you've been warned' etc. tegen gekomen als het om dedup gaat, maar welke 'ellende er om heen' gaat het dan om?
Het gaat in deze use case echt alleen om file storage, dus geen live databases ofzo met heel veel I/O. Met max 55TB aan data kunnen de dedup tabellen inderdaag wel fors worden, maar de kosten voor de zeg 256 GB extra RAM of een extra SSD voor L2ARC schrik ik niet zo van als we daarna zeg 20-30TB aan data langer door kunnen voordat de server vol is.
Het alternatief is gewoon een server met een RAID5 oplossing (in hardware of software) en daar de files naar backuppen. Daar heb ik ruime ervaring mee en zou ook prima geimplementeerd kunnen worden. Met 60TB effectief zit daar ook nog wel headroom voor de toekomst, maar het is toch vooral dedup op filesystem niveau waardoor ik op zfs uit kwam.
Het gaat in deze use case echt alleen om file storage, dus geen live databases ofzo met heel veel I/O. Met max 55TB aan data kunnen de dedup tabellen inderdaag wel fors worden, maar de kosten voor de zeg 256 GB extra RAM of een extra SSD voor L2ARC schrik ik niet zo van als we daarna zeg 20-30TB aan data langer door kunnen voordat de server vol is.
Het alternatief is gewoon een server met een RAID5 oplossing (in hardware of software) en daar de files naar backuppen. Daar heb ik ruime ervaring mee en zou ook prima geimplementeerd kunnen worden. Met 60TB effectief zit daar ook nog wel headroom voor de toekomst, maar het is toch vooral dedup op filesystem niveau waardoor ik op zfs uit kwam.
[ Voor 7% gewijzigd door d3vlin op 20-12-2020 20:34 ]
Leaping Lab Rats!
Ik weet niet of het wel juist is om hier te spreken van voorkeur. Whatever je gebruikt voor je backups zal een hoop schrijven, dan z'n file sluiten en dát is het moment waarop je heel even zult moeten wachten omdat er een sync wordt afgedwongen. Dat heeft pas impact als je enorm veel kleine files aan het wegschrijven bent (en dat is iha. weer sowieso niet zo handig met backuppen).d3vlin schreef op zondag 20 december 2020 @ 19:57:
Schrijven zal vooral het toevoegen van data zijn. Omdat het om backup data gaat zou ik zeggen dat sync writes de voorkeur heeft.
Sync writes zijn eerder relevant voor iets als een database waarbij je afhankelijk bent van je INSERT/UPDATE-snelheid. Minimale writes, die regelmatig individueel gegarandeerd op disk moeten staan voordat het ding verder kan.
Volgens mij ben je hiermee vooral in het luchtledige aan het redeneren: niemand kan zeggen of dat in jouw geval relevant is - dat hangt helemaal af van het gebruik en de eisen.Wat heeft de voorkeur en wat is in het eerste geval een verstandige keuze qua verhouding ARC en evt. L2ARC?
Aangezien je het hebt over archiefopslag dan heb je wellicht helemaal niet zoveel read activity, en als je daarbovenop met 50 TB aan storage zit waar af en toe *iets* van wordt opgevraagd heb je helemaal niets aan caching.
Besides, wat denk je uberhaupt te winnen met caching? Na die paar ms aan read delay is je netwerk waarschijnlijk de grootste bottleneck bij sequentiële reads..
Als je gewoon een 'simpele' fileserver aan het bouwen bent dan zou ik er vooral niet teveel franje (L2ARC, ZIL) aan hangen voordat je goed hebt beredeneerd dat je er baat bij hebt omdat je tegen eoa. bottleneck aanloopt.
Van dedup weet ik niets, maar iedereen die er wat vanaf lijkt te weten stelt dat je er heel conservatief mee moet zijn. Onderbuikgevoel zegt dat 30-50% niet de marge is waarop je daarmee aan de slag wilt. Als je data goed comprimeerbaar is zou ik dáár de winst pakken.
Meten is weten. Aangezien je toch al hardware hebt: bouw er eens een simpele (!) array van, ga benchmarken en kijk waar je tegenaanloopt.
Bonus, wat aardige slides ter inspiratie van de meest recente OpenZFS summit die ik toevallig net openklikte: Performance Troubleshooting Tools
[ Voor 4% gewijzigd door Thralas op 20-12-2020 21:23 ]
@d3vlin
Als het om een backup pool gaat (die had ik even gemist) is L2ARC zoals @Thralas al zegt. L2ARC doet niets bij writes. En L2ARC moet ook gevuld worden, dus als jij 'af en toe' wat opvraagt, is de eerste 100 jaar je L2ARC nog niet gevuld. Bovendien helpt een L2ARC alleen maar als je vaak dezelfde data opvraagt. Van een Backup vraag je naar mijn idee juist unieke data op, omdat je die data weer terug zet op het originele systeem.
Je hebt dus 99.9% sequential writes, en 0.1% semi-random reads die je 1 keer doet.
Met dat patroon in het hoofd is dedup op zich niet zo'n gek idee. Het ligt vooral aan je verwachtingen.
Zie een van de issues die ik tegengekomen ben met dedup:
https://github.com/openzfs/zfs/issues/6823
Dit soort vage dingen gaan er (kunnen) gebeuren. Nou is dit issue relatief oud, en zal de dedup logica best wat verbeterd zijn, maar ook weer niet schrikbarend.
Even wat berekeningen:
Je gaat uit van een pool van 80TB. Laten we zeggen dat deze voor 70% gevuld is -> 56TB.
Dan hebben we het over 56.000.000.000 KB.
Als jouw filesystem vooral media /3D Assets bevat (waarvan ik aanneem dat ze niet heel klein zijn), zal je een mooie relatief hoge recordsize in kunnen stellen. Iets als 128K of zelfs nog groter is erg nuttig in dit geval.
Als je gemiddelde recordsize 128K wordt (wat best optimistisch is). Zit je dus voor 56.000.000.000 KB op 437.500.000 DDT entries.
Die zijn per stuk 320 bytes, dat maakt 140GB aan alleen de DDT table. Dat is gigantisch.
Bedenk je dat het een database is waar elke read iets in opgezocht moet worden. Uiteraard zijn er truukjes om dat snel te doorzoeken(onderwater is het dacht ik een red/black tree), maar bij 140GB hebben ook die hun limieten.
Als je DDT tabel op disk (swap) komt, stort je performance in tot de snelheid van een floppy drive. Je systeem moet dan zoveel wachten op IO, voordat het die acties kan doen, dat je hele systeem waarschijnlijk zal vastlopen.
Even uitrekenen: Als jij ~85 euro per uur kost, en hier al een uurtje of 5 mee bezig bent geweest om het een en ander uit te zoeken, en bij het inrichten nog eens een uur of 10 gaat spenderen (inclusief testen). En achteraf nog eens een uur of 8 gaat debuggen en troubleshooten als het mis gaat, kost dat 5+10+8*85=1955 euro
Kan je beter gewoon 5 extra schijven kopen: pricewatch: Seagate Exos X16 SATA (Standard model), 16TB (~2000 euro)
Ben je haast goedkoper uit, en scheelt je een hoop ellende...
PS: Ik heb in verhouding best dure schijven genomen, omdat je al dat kaliber schijven hebt, maar met iets goedkopere schijven, kan je ook prima toe, en dan zou je al iets sneller goedkoper uit zijn
Dit is ook wel een mooie guide: https://constantin.glez.d...-to-dedupe-or-not-dedupe/
Die gaat uit van 20GB ram per TB als dedup aan staat.
Als het om een backup pool gaat (die had ik even gemist) is L2ARC zoals @Thralas al zegt. L2ARC doet niets bij writes. En L2ARC moet ook gevuld worden, dus als jij 'af en toe' wat opvraagt, is de eerste 100 jaar je L2ARC nog niet gevuld. Bovendien helpt een L2ARC alleen maar als je vaak dezelfde data opvraagt. Van een Backup vraag je naar mijn idee juist unieke data op, omdat je die data weer terug zet op het originele systeem.
Je hebt dus 99.9% sequential writes, en 0.1% semi-random reads die je 1 keer doet.
Met dat patroon in het hoofd is dedup op zich niet zo'n gek idee. Het ligt vooral aan je verwachtingen.
Zie een van de issues die ik tegengekomen ben met dedup:
https://github.com/openzfs/zfs/issues/6823
Dit soort vage dingen gaan er (kunnen) gebeuren. Nou is dit issue relatief oud, en zal de dedup logica best wat verbeterd zijn, maar ook weer niet schrikbarend.
Even wat berekeningen:
Je gaat uit van een pool van 80TB. Laten we zeggen dat deze voor 70% gevuld is -> 56TB.
Dan hebben we het over 56.000.000.000 KB.
Als jouw filesystem vooral media /3D Assets bevat (waarvan ik aanneem dat ze niet heel klein zijn), zal je een mooie relatief hoge recordsize in kunnen stellen. Iets als 128K of zelfs nog groter is erg nuttig in dit geval.
Als je gemiddelde recordsize 128K wordt (wat best optimistisch is). Zit je dus voor 56.000.000.000 KB op 437.500.000 DDT entries.
Die zijn per stuk 320 bytes, dat maakt 140GB aan alleen de DDT table. Dat is gigantisch.
Bedenk je dat het een database is waar elke read iets in opgezocht moet worden. Uiteraard zijn er truukjes om dat snel te doorzoeken(onderwater is het dacht ik een red/black tree), maar bij 140GB hebben ook die hun limieten.
Als je DDT tabel op disk (swap) komt, stort je performance in tot de snelheid van een floppy drive. Je systeem moet dan zoveel wachten op IO, voordat het die acties kan doen, dat je hele systeem waarschijnlijk zal vastlopen.
Even uitrekenen: Als jij ~85 euro per uur kost, en hier al een uurtje of 5 mee bezig bent geweest om het een en ander uit te zoeken, en bij het inrichten nog eens een uur of 10 gaat spenderen (inclusief testen). En achteraf nog eens een uur of 8 gaat debuggen en troubleshooten als het mis gaat, kost dat 5+10+8*85=1955 euro
Kan je beter gewoon 5 extra schijven kopen: pricewatch: Seagate Exos X16 SATA (Standard model), 16TB (~2000 euro)
Ben je haast goedkoper uit, en scheelt je een hoop ellende...
PS: Ik heb in verhouding best dure schijven genomen, omdat je al dat kaliber schijven hebt, maar met iets goedkopere schijven, kan je ook prima toe, en dan zou je al iets sneller goedkoper uit zijn
Dit is ook wel een mooie guide: https://constantin.glez.d...-to-dedupe-or-not-dedupe/
Die gaat uit van 20GB ram per TB als dedup aan staat.
[ Voor 5% gewijzigd door FireDrunk op 21-12-2020 08:10 ]
Even niets...
Hmmm, ik probeerde 1 van mijn schijven in mijn RAIDZ1 vervangen, maar dat ging niet zoals ik het verwacht had. Graag tips hoe ik dat de volgende keer beter kan doen!
Wat heb ik gedaan:
- nieuwe schijf in USB-dock aangesloten op mijn HPGen10 microserver
- zpool replace data <oud> <nieuw>
- wachten tot de resilver klaar is
- nieuwe schijf in mijn server geplaatst
- opstarten
Na het opstarten was de 2e schijf van mijn raidz (degene die ik vervangen heb) "UNAVAIL".
In het verleden heb ik zo ook wel eens schijven vervangen, maar dat was nog onder openindiana. Dit is de eerste keer dat ik een schijf vervang onder proxmox.
Tot nu toe had ik het idee dat het niet uitmaakte waar schijven fysiek zitten, omdat zfs ze toch wel vind. Heb in het verleden mijn hele pool zo een keer gemigreerd via een mix van sata en externe usb en esata-schijven (omdat er intern geen sata-slot meer vrij was). Nooit eerder zo'n probleem gehad.
Ik had het juist via de USB-optie gedaan, zodat ik geen risico loop dat er iets mis gaat tijdens de resilver.
Ik heb de schijf zo nieuw uit verpakking gehaald en direct het zpool replace-commando er op losgelaten. Had ik dat anders moeten doen? Met "whole-disk" regelt zfs toch zaken als partities/labels etc. allemaal zelf?
zpool status ziet er nu zo uit:
Voor nu heb ik maar direct weer een nieuwe resilver gedaan van het "4305259155740142663"-device. Daar zal hij de komende 22 uur wel zoet mee zijn....
Aangezien ik binnenkort ook de andere 2 schijven nog wil gaan vervangen zou ik wel graag leren hoe ik het nu de volgende keer beter moet doen, zodat de schijf nadat hij via USB opgenomen is in de pool weer gewoon herkend wordt als ik hem vervolgens in een sata-aansluiting plaats.
Wat heb ik gedaan:
- nieuwe schijf in USB-dock aangesloten op mijn HPGen10 microserver
- zpool replace data <oud> <nieuw>
- wachten tot de resilver klaar is
- nieuwe schijf in mijn server geplaatst
- opstarten
Na het opstarten was de 2e schijf van mijn raidz (degene die ik vervangen heb) "UNAVAIL".
In het verleden heb ik zo ook wel eens schijven vervangen, maar dat was nog onder openindiana. Dit is de eerste keer dat ik een schijf vervang onder proxmox.
Tot nu toe had ik het idee dat het niet uitmaakte waar schijven fysiek zitten, omdat zfs ze toch wel vind. Heb in het verleden mijn hele pool zo een keer gemigreerd via een mix van sata en externe usb en esata-schijven (omdat er intern geen sata-slot meer vrij was). Nooit eerder zo'n probleem gehad.
Ik had het juist via de USB-optie gedaan, zodat ik geen risico loop dat er iets mis gaat tijdens de resilver.
Ik heb de schijf zo nieuw uit verpakking gehaald en direct het zpool replace-commando er op losgelaten. Had ik dat anders moeten doen? Met "whole-disk" regelt zfs toch zaken als partities/labels etc. allemaal zelf?
zpool status ziet er nu zo uit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| zpool status pool: data state: DEGRADED status: One or more devices could not be used because the label is missing or invalid. Sufficient replicas exist for the pool to continue functioning in a degraded state. action: Replace the device using 'zpool replace'. see: http://zfsonlinux.org/msg/ZFS-8000-4J scan: resilvered 5.09T in 0 days 21:47:17 with 0 errors on Sun Dec 20 08:56:48 2020 config: NAME STATE READ WRITE CKSUM data DEGRADED 0 0 0 raidz1-0 DEGRADED 0 0 0 sdb ONLINE 0 0 0 4305259155740142663 UNAVAIL 0 0 0 was /dev/sde1 sdd ONLINE 0 0 0 logs sda4 ONLINE 0 0 0 cache sda5 ONLINE 0 0 0 errors: No known data errors |
Voor nu heb ik maar direct weer een nieuwe resilver gedaan van het "4305259155740142663"-device. Daar zal hij de komende 22 uur wel zoet mee zijn....
Aangezien ik binnenkort ook de andere 2 schijven nog wil gaan vervangen zou ik wel graag leren hoe ik het nu de volgende keer beter moet doen, zodat de schijf nadat hij via USB opgenomen is in de pool weer gewoon herkend wordt als ik hem vervolgens in een sata-aansluiting plaats.
L2ARC doet niets bij writes maar wordt in het geval van DDT’s wel gebruikt als RAM door die 1/4 regel niet voldoende is. Dus in dit geval is dat wel van toepassing, toch?FireDrunk schreef op maandag 21 december 2020 @ 08:02:
@d3vlin
Als het om een backup pool gaat (die had ik even gemist) is L2ARC zoals @Thralas al zegt. L2ARC doet niets bij writes. En L2ARC moet ook gevuld worden, dus als jij 'af en toe' wat opvraagt, is de eerste 100 jaar je L2ARC nog niet gevuld. Bovendien helpt een L2ARC alleen maar als je vaak dezelfde data opvraagt. Van een Backup vraag je naar mijn idee juist unieke data op, omdat je die data weer terug zet op het originele systeem.
Je hebt dus 99.9% sequential writes, en 0.1% semi-random reads die je 1 keer doet.
Met dat patroon in het hoofd is dedup op zich niet zo'n gek idee. Het ligt vooral aan je verwachtingen.
Zie een van de issues die ik tegengekomen ben met dedup:
https://github.com/openzfs/zfs/issues/6823
Dit soort vage dingen gaan er (kunnen) gebeuren. Nou is dit issue relatief oud, en zal de dedup logica best wat verbeterd zijn, maar ook weer niet schrikbarend.
Even wat berekeningen:
Je gaat uit van een pool van 80TB. Laten we zeggen dat deze voor 70% gevuld is -> 56TB.
Dan hebben we het over 56.000.000.000 KB.
Als jouw filesystem vooral media /3D Assets bevat (waarvan ik aanneem dat ze niet heel klein zijn), zal je een mooie relatief hoge recordsize in kunnen stellen. Iets als 128K of zelfs nog groter is erg nuttig in dit geval.
Als je gemiddelde recordsize 128K wordt (wat best optimistisch is). Zit je dus voor 56.000.000.000 KB op 437.500.000 DDT entries.
Die zijn per stuk 320 bytes, dat maakt 140GB aan alleen de DDT table. Dat is gigantisch.
Bedenk je dat het een database is waar elke read iets in opgezocht moet worden. Uiteraard zijn er truukjes om dat snel te doorzoeken(onderwater is het dacht ik een red/black tree), maar bij 140GB hebben ook die hun limieten.
Als je DDT tabel op disk (swap) komt, stort je performance in tot de snelheid van een floppy drive. Je systeem moet dan zoveel wachten op IO, voordat het die acties kan doen, dat je hele systeem waarschijnlijk zal vastlopen.
Even uitrekenen: Als jij ~85 euro per uur kost, en hier al een uurtje of 5 mee bezig bent geweest om het een en ander uit te zoeken, en bij het inrichten nog eens een uur of 10 gaat spenderen (inclusief testen). En achteraf nog eens een uur of 8 gaat debuggen en troubleshooten als het mis gaat, kost dat 5+10+8*85=1955 euro
Kan je beter gewoon 5 extra schijven kopen: pricewatch: Seagate Exos X16 SATA (Standard model), 16TB (~2000 euro)
Ben je haast goedkoper uit, en scheelt je een hoop ellende...
PS: Ik heb in verhouding best dure schijven genomen, omdat je al dat kaliber schijven hebt, maar met iets goedkopere schijven, kan je ook prima toe, en dan zou je al iets sneller goedkoper uit zijn
Dit is ook wel een mooie guide: https://constantin.glez.d...-to-dedupe-or-not-dedupe/
Die gaat uit van 20GB ram per TB als dedup aan staat.
Tja, als je het zo in kosten uitdrukt is het heel snel plat te slaan maar ik denk dat bij @d3vlin er ook nog wel een “hobbyfactor” aanwezig is.
Hoedanook zijn de hardware eisen stevig maar van alle dedup-nieuwsgierigen gaat hij er nog wel het meest bedachtzaam mee om en met de juist hardware in het vooruitschiet lijkt mij.
I.p.v. een nieuwe resilver had ik gedaan:ocaj schreef op maandag 21 december 2020 @ 09:09:
Hmmm, ik probeerde 1 van mijn schijven in mijn RAIDZ1 vervangen, maar dat ging niet zoals ik het verwacht had. Graag tips hoe ik dat de volgende keer beter kan doen!
code:
1
2
| zpool export data zpool import data -d /dev/disk/by-id/ |
Ik had een vergelijkbaar probleem in Proxmox / Debian na een reboot. Een van mijn schijven werd niet automatisch gevonden volgens het standaard /dev/sd* pad. Een nieuwe import verhielp dat.
Sinds de 2 dagen regel reageer ik hier niet meer
De vraag is wat je tijdens je replace commando bij oud en nieuw hebt ingevuld. Daar zal het ongetwijfeld mee te maken hebben.ocaj schreef op maandag 21 december 2020 @ 09:09:
Hmmm, ik probeerde 1 van mijn schijven in mijn RAIDZ1 vervangen, maar dat ging niet zoals ik het verwacht had. Graag tips hoe ik dat de volgende keer beter kan doen!
Wat heb ik gedaan:
- nieuwe schijf in USB-dock aangesloten op mijn HPGen10 microserver
- zpool replace data <oud> <nieuw>
- wachten tot de resilver klaar is
- nieuwe schijf in mijn server geplaatst
- opstarten
Na het opstarten was de 2e schijf van mijn raidz (degene die ik vervangen heb) "UNAVAIL".
In het verleden heb ik zo ook wel eens schijven vervangen, maar dat was nog onder openindiana. Dit is de eerste keer dat ik een schijf vervang onder proxmox.
Tot nu toe had ik het idee dat het niet uitmaakte waar schijven fysiek zitten, omdat zfs ze toch wel vind. Heb in het verleden mijn hele pool zo een keer gemigreerd via een mix van sata en externe usb en esata-schijven (omdat er intern geen sata-slot meer vrij was). Nooit eerder zo'n probleem gehad.
Ik had het juist via de USB-optie gedaan, zodat ik geen risico loop dat er iets mis gaat tijdens de resilver.
Ik heb de schijf zo nieuw uit verpakking gehaald en direct het zpool replace-commando er op losgelaten. Had ik dat anders moeten doen? Met "whole-disk" regelt zfs toch zaken als partities/labels etc. allemaal zelf?
zpool status ziet er nu zo uit:
code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 zpool status pool: data state: DEGRADED status: One or more devices could not be used because the label is missing or invalid. Sufficient replicas exist for the pool to continue functioning in a degraded state. action: Replace the device using 'zpool replace'. see: http://zfsonlinux.org/msg/ZFS-8000-4J scan: resilvered 5.09T in 0 days 21:47:17 with 0 errors on Sun Dec 20 08:56:48 2020 config: NAME STATE READ WRITE CKSUM data DEGRADED 0 0 0 raidz1-0 DEGRADED 0 0 0 sdb ONLINE 0 0 0 4305259155740142663 UNAVAIL 0 0 0 was /dev/sde1 sdd ONLINE 0 0 0 logs sda4 ONLINE 0 0 0 cache sda5 ONLINE 0 0 0 errors: No known data errors
Voor nu heb ik maar direct weer een nieuwe resilver gedaan van het "4305259155740142663"-device. Daar zal hij de komende 22 uur wel zoet mee zijn....
Aangezien ik binnenkort ook de andere 2 schijven nog wil gaan vervangen zou ik wel graag leren hoe ik het nu de volgende keer beter moet doen, zodat de schijf nadat hij via USB opgenomen is in de pool weer gewoon herkend wordt als ik hem vervolgens in een sata-aansluiting plaats.
Usb dock? Welke?
En sowieso is je disks benaderen met die sdX labels niet handig. Pool exporten en importen zoals @CurlyMo zegt.
Klopt, de L2ARC zou je in kunnen zetten voor alleen het bewaren van de DDT tabellen, maar dat is dan wel een dure use-case. De DDT tabellen zijn erg write intensief (elk nieuw blok is een update), waardoor je echt stevige SSD's met een hoge DWPD moet hebben.HyperBart schreef op maandag 21 december 2020 @ 09:37:
[...]
L2ARC doet niets bij writes maar wordt in het geval van DDT’s wel gebruikt als RAM door die 1/4 regel niet voldoende is. Dus in dit geval is dat wel van toepassing, toch?
Tja, als je het zo in kosten uitdrukt is het heel snel plat te slaan maar ik denk dat bij @d3vlin er ook nog wel een “hobbyfactor” aanwezig is.
Hoedanook zijn de hardware eisen stevig maar van alle dedup-nieuwsgierigen gaat hij er nog wel het meest bedachtzaam mee om en met de juist hardware in het vooruitschiet lijkt mij.
Voor een SSD met een DWPD van 3 zit je aan zoiets: pricewatch: Intel DC D3-S4610 480GB
Maar liever nog kies je voor een SSD met een DWPD van 10. Dan zit je aan zoiets:
pricewatch: Intel Optane 900P 2,5" (met M.2 kabelkit) 280GB
Even niets...
Dank voor het uitgebreide antwoord op de vroege ochtend! Much appreciatedFireDrunk schreef op maandag 21 december 2020 @ 08:02:
@d3vlin
Als het om een backup pool gaat (die had ik even gemist) is L2ARC zoals @Thralas al zegt. L2ARC doet niets bij writes. En L2ARC moet ook gevuld worden, dus als jij 'af en toe' wat opvraagt, is de eerste 100 jaar je L2ARC nog niet gevuld. Bovendien helpt een L2ARC alleen maar als je vaak dezelfde data opvraagt. Van een Backup vraag je naar mijn idee juist unieke data op, omdat je die data weer terug zet op het originele systeem.
Je hebt dus 99.9% sequential writes, en 0.1% semi-random reads die je 1 keer doet.
Met dat patroon in het hoofd is dedup op zich niet zo'n gek idee. Het ligt vooral aan je verwachtingen.
Zie een van de issues die ik tegengekomen ben met dedup:
https://github.com/openzfs/zfs/issues/6823
Dit soort vage dingen gaan er (kunnen) gebeuren. Nou is dit issue relatief oud, en zal de dedup logica best wat verbeterd zijn, maar ook weer niet schrikbarend.
Even wat berekeningen:
Je gaat uit van een pool van 80TB. Laten we zeggen dat deze voor 70% gevuld is -> 56TB.
Dan hebben we het over 56.000.000.000 KB.
Als jouw filesystem vooral media /3D Assets bevat (waarvan ik aanneem dat ze niet heel klein zijn), zal je een mooie relatief hoge recordsize in kunnen stellen. Iets als 128K of zelfs nog groter is erg nuttig in dit geval.
Als je gemiddelde recordsize 128K wordt (wat best optimistisch is). Zit je dus voor 56.000.000.000 KB op 437.500.000 DDT entries.
Die zijn per stuk 320 bytes, dat maakt 140GB aan alleen de DDT table. Dat is gigantisch.
Bedenk je dat het een database is waar elke read iets in opgezocht moet worden. Uiteraard zijn er truukjes om dat snel te doorzoeken(onderwater is het dacht ik een red/black tree), maar bij 140GB hebben ook die hun limieten.
Als je DDT tabel op disk (swap) komt, stort je performance in tot de snelheid van een floppy drive. Je systeem moet dan zoveel wachten op IO, voordat het die acties kan doen, dat je hele systeem waarschijnlijk zal vastlopen.
Even uitrekenen: Als jij ~85 euro per uur kost, en hier al een uurtje of 5 mee bezig bent geweest om het een en ander uit te zoeken, en bij het inrichten nog eens een uur of 10 gaat spenderen (inclusief testen). En achteraf nog eens een uur of 8 gaat debuggen en troubleshooten als het mis gaat, kost dat 5+10+8*85=1955 euro
Kan je beter gewoon 5 extra schijven kopen: pricewatch: Seagate Exos X16 SATA (Standard model), 16TB (~2000 euro)
Ben je haast goedkoper uit, en scheelt je een hoop ellende...
PS: Ik heb in verhouding best dure schijven genomen, omdat je al dat kaliber schijven hebt, maar met iets goedkopere schijven, kan je ook prima toe, en dan zou je al iets sneller goedkoper uit zijn
Dit is ook wel een mooie guide: https://constantin.glez.d...-to-dedupe-or-not-dedupe/
Die gaat uit van 20GB ram per TB als dedup aan staat.
De storage pool wordt effectief ~55TB (na RAIDZ2) maar orde van grootte kom je dan nog steeds op een enorme DDT uit natuurlijk. Het klinkt alsof genoeg RAM de meest bepalende factor is om dedup te laten slagen. Real life tests zullen moeten uitwijzen hoeveel dat is voor deze dataset. De server kan 768GB aan dus daar zit zeker headroom en de kosten voor eventueel extra geheugen zijn geen direct probleem.
Het chassis van de server ondersteunt 8 schijven en die zijn nu dus gevuld (8X10TB). Schijven er bij zetten betekent dus over naar een ander chassis. 60TB effectief met RAID5 biedt overigens zeker ook voldoende ruimte voor de toekomst, ik zie ZFS dedup als een mogelijkheid om binnen de huidige setup nog meer opslag mogelijk te maken die ik best wil onderzoeken. Als dat resulteert in een server die niet bruikbaar is dan is dat natuurlijk een valide reden om er vanaf te zien. Probleem hierbij is dat ik weinig/geen echte verhalen tegen kom over dedup op deze schaal. Als het een aantal seconden duurt om een bestandje te lezen, schrijven of deleten dan klinkt dat als 'niet bruikbaar'.
Leaping Lab Rats!
Ja kan ook eens kijken naar een losse hotswap case met een SAS Expander, en een extra HBA met externe poorten. Die zijn best betaalbaar te vinden.
Dan heb je ook nog ruimte voor de toekomst.
Dan heb je ook nog ruimte voor de toekomst.
Even niets...
Om precies te zijn. De LSI 9201-16e. Die gaan voor ~ $ 50,- rond op ebay.FireDrunk schreef op maandag 21 december 2020 @ 10:07:
Ja kan ook eens kijken naar een losse hotswap case met een SAS Expander, en een extra HBA met externe poorten. Die zijn best betaalbaar te vinden.
Dan heb je ook nog ruimte voor de toekomst.
Sinds de 2 dagen regel reageer ik hier niet meer
Mja, ik zat ook al te denken om suggesties te geven, maar het gaat hier om semiprofessioneel / zakelijk gebruik. Misschien is iets met 'support' / 'garantie' beterCurlyMo schreef op maandag 21 december 2020 @ 10:10:
[...]
Om precies te zijn. De LSI 9201-16e. Die gaan voor ~ $ 50,- rond op ebay.
Even niets...
Dan koop je hem nieuw.FireDrunk schreef op maandag 21 december 2020 @ 10:11:
[...]
Mja, ik zat ook al te denken om suggesties te geven, maar het gaat hier om semiprofessioneel / zakelijk gebruik. Misschien is iets met 'support' / 'garantie' beter
Sinds de 2 dagen regel reageer ik hier niet meer
@FireDrunk en @CurlyMo ik snap wel heel goed dat ze aan een single chassis willen vasthouden, te meer omdat die kost al gemaakt is en opnieuw willen inzetten. Ik ben trouwens ook wel eens benieuwd hoe erg het nu is als hij er mee van start gaat.
@d3vlin hoe kijk jij er tegen aan? Wil je er niet te veel tijd aan besteden of vind je het net wel leuk? Want daar mee kan de discussie ook snel gesloten worden natuurlijk.
@d3vlin hoe kijk jij er tegen aan? Wil je er niet te veel tijd aan besteden of vind je het net wel leuk? Want daar mee kan de discussie ook snel gesloten worden natuurlijk.
Tja, een single case is leuk, maar in een zakelijke omgeving waar je nog 20U overhebt in een cabinet wat ergens in een kleine serverruimte staat, boeit het weinig om een extra JBOD chassis te plaatsen.
Maar wat je zegt, wat @d3vlin wil.
Maar wat je zegt, wat @d3vlin wil.
Even niets...
Op zich een goed idee, maar werkt dat nog nadat er data geschreven is? Mijn data-pool bevat o.a. ook de storage voor mijn mysql-server. Zodra mijn server gestart is ga ik er vanuit dat er vrij snel e.e.a. geschreven wordt (logging van kwh-meters, thermometers etc).CurlyMo schreef op maandag 21 december 2020 @ 09:51:
[...]
I.p.v. een nieuwe resilver had ik gedaan:
code:
1 2 zpool export data zpool import data -d /dev/disk/by-id/
Ik had een vergelijkbaar probleem in Proxmox / Debian na een reboot. Een van mijn schijven werd niet automatisch gevonden volgens het standaard /dev/sd* pad. Een nieuwe import verhielp dat.
Of is zfs zo slim dat hij aan de hand van het transaction-id ziet dat die nieuwe schijf een kwartiertje gemist heeft en kan hij dat dan heel veel sneller bijwerken dan een complete resilver? Ik dacht "ze zijn nu uit sync, dus ik moet toch hoe dan ook een resilver doen".
Voor een volgende keer zou dat dus betekenen: eerst alle lxc-containers stoppen die de data-pool gebruiken (anders kan ik geen zpool export doen), dan zpool export en dan weer import met de -d optie.
Dat was simpelweg "zpool replace data sdc sde", waarbij sdc het sata-slot met de oude schijf en sde de nieuwe usb-schijf is.HyperBart schreef op maandag 21 december 2020 @ 09:51:
[...]
De vraag is wat je tijdens je replace commando bij oud en nieuw hebt ingevuld. Daar zal het ongetwijfeld mee te maken hebben.
Een Logilink QP0026. Volgens mij zit daar niet heel veel intelligentie in, anders dan de usb-sata-omzetting?Usb dock? Welke?
Maar bij de disk/by-id indicatie staat toch ook vooraan "ata", ik ging er van uit dat dat bij de USB-schijf iets van "usb" zou zijn? (maar niet gechecked en ik laat de boel even een dagje met rust tijdens resilver omdat ik nu geen redundantie meer heb)En sowieso is je disks benaderen met die sdX labels niet handig. Pool exporten en importen zoals @CurlyMo zegt.
Waarschijnlijk heeft je OS de disks na de volgende reboot dus een andere letter gegeven met dit als gevolg.ocaj schreef op maandag 21 december 2020 @ 10:45:
[...]
Op zich een goed idee, maar werkt dat nog nadat er data geschreven is? Mijn data-pool bevat o.a. ook de storage voor mijn mysql-server. Zodra mijn server gestart is ga ik er vanuit dat er vrij snel e.e.a. geschreven wordt (logging van kwh-meters, thermometers etc).
Of is zfs zo slim dat hij aan de hand van het transaction-id ziet dat die nieuwe schijf een kwartiertje gemist heeft en kan hij dat dan heel veel sneller bijwerken dan een complete resilver? Ik dacht "ze zijn nu uit sync, dus ik moet toch hoe dan ook een resilver doen".
Voor een volgende keer zou dat dus betekenen: eerst alle lxc-containers stoppen die de data-pool gebruiken (anders kan ik geen zpool export doen), dan zpool export en dan weer import met de -d optie.
[...]
Dat was simpelweg "zpool replace data sdc sde", waarbij sdc het sata-slot met de oude schijf en sde de nieuwe usb-schijf is.
Dat kan kloppen, reden waarom ik het vroeg is omdat het net Black Friday geweest is en de "shuck kandidaten" vaak voorzien zijn van een USB enclosure waar een controller inzit die wel wat geks doet met partities enzo. Gewoon even afchecken dat je zoiets niet had.Een Logilink QP0026. Volgens mij zit daar niet heel veel intelligentie in, anders dan de usb-sata-omzetting?
Da's idd nog wel een goeie en correct. Daarom gebruik ik partities. Zoveel jaar na dato is deze blog van @FireDrunk toch nog altijd geldig (en die ga ik binnenkort weer gebruikenMaar bij de disk/by-id indicatie staat toch ook vooraan "ata", ik ging er van uit dat dat bij de USB-schijf iets van "usb" zou zijn? (maar niet gechecked en ik laat de boel even een dagje met rust tijdens resilver omdat ik nu geen redundantie meer heb)
Dat is geen probleem bij ZFS, dat gaat intern op metadata locaties op de disk zelf. ZFS probeert schijven te openen die in de zpool.cache file staan, en gaat daar de metadata van lezen.HyperBart schreef op maandag 21 december 2020 @ 10:53:
[...]
Waarschijnlijk heeft je OS de disks na de volgende reboot dus een andere letter gegeven met dit als gevolg.
[...]
Dat kan kloppen, reden waarom ik het vroeg is omdat het net Black Friday geweest is en de "shuck kandidaten" vaak voorzien zijn van een USB enclosure waar een controller inzit die wel wat geks doet met partities enzo. Gewoon even afchecken dat je zoiets niet had.
[...]
Da's idd nog wel een goeie en correct. Daarom gebruik ik partities. Zoveel jaar na dato is deze blog van @FireDrunk toch nog altijd geldig (en die ga ik binnenkort weer gebruiken)
Het probleem waar @CurlyMo en @ocaj waarschijnlijk last van hebben is een niet accurate zpool.cache file. Sommige operating systems cachen deze in je initramfs, waardoor als die achter loopt op de realiteit, je cache file dus niet gelijk is aan wat er 'echt' op de disk staat. Dat kan je in veel operating systems wel forceren, door je initramfs opnieuw te genereren.
Als ZFS disks die in de zpool.cache file staan niet kan vinden, skipped hij deze gewoon, maar gaat niet zomaar opnieuw zoeken naar disks die missen in de pool.
Bij een import gebeurt dat dus expliciet wel. Na een export/import wordt ook de zpool.cache file netjes opnieuw weggeschreven, wat vaak dit soort problemen verhelpt.
Even niets...
Waarom houden wij dan zo vast aan partities? Want dan boeien die letters toch niet?FireDrunk schreef op maandag 21 december 2020 @ 10:57:
[...]
Dat is geen probleem bij ZFS, dat gaat intern op metadata locaties op de disk zelf. ZFS probeert schijven te openen die in de zpool.cache file staan, en gaat daar de metadata van lezen.
Het probleem waar @CurlyMo en @ocaj waarschijnlijk last van hebben is een niet accurate zpool.cache file. Sommige operating systems cachen deze in je initramfs, waardoor als die achter loopt op de realiteit, je cache file dus niet gelijk is aan wat er 'echt' op de disk staat. Dat kan je in veel operating systems wel forceren, door je initramfs opnieuw te genereren.
Als ZFS disks die in de zpool.cache file staan niet kan vinden, skipped hij deze gewoon, maar gaat niet zomaar opnieuw zoeken naar disks die missen in de pool.
Bij een import gebeurt dat dus expliciet wel. Na een export/import wordt ook de zpool.cache file netjes opnieuw weggeschreven, wat vaak dit soort problemen verhelpt.
Omdat je partities netjes GPT Labels kan geven, en disks niet (zomaar)
Even niets...
De rekenwijze uit dat artikel is niet heel relevant. De notie dat metadata maar 25% van ARC zou mogen beslaan is een Solaris'ism en geldt niet voor OpenZFS.FireDrunk schreef op maandag 21 december 2020 @ 08:02:
Dit is ook wel een mooie guide: https://constantin.glez.d...-to-dedupe-or-not-dedupe/
Die gaat uit van 20GB ram per TB als dedup aan staat.
# cat /sys/module/zfs/parameters/zfs_arc_meta_limit_percent 75
Ook dit wordt genoemd in dat artikel, maar OpenZFS heeft daar ook modernere alternatieven voor: de dedup vdev en recenter de special vdev voor een special allocation class (metadata en/of small blocks, waaronder ook DDT).Klopt, de L2ARC zou je in kunnen zetten voor alleen het bewaren van de DDT tabellen, maar dat is dan wel een dure use-case.
Ik zou voor alles dat je 'productie' durft te noemen ook geen non-enterprise SSD gebruiken, maar ik vermoed dat als je gaat rekenen een DWPD van 3/4 (gemiddelde enterprise SSD) ook ruim volstaat.Voor een SSD met een DWPD van 3 zit je aan zoiets: pricewatch: Intel DC D3-S4610 480GB
Maar liever nog kies je voor een SSD met een DWPD van 10. Dan zit je aan zoiets:
pricewatch: Intel Optane 900P 2,5" (met M.2 kabelkit) 280GB
Als je een 50T pool hebt met 1T SSD backing voor writes, dan haal je 4 DWPD pas als je iedere 12,5 dag je hele pool herschrijft. Niet heel aannemelijk voor een fileserver, zou ik zeggen.
@Thralas goed punt, enige wat mist is dat deleten van 1 grote file, resulteert in gigantisch veel DDT updates (1 voor elk block). Het aantal writes op de pool is dus niet direct evenredig aan de writes op de SSD.
Uiteraard hangt het af van de changerate of een DWPD van 3 genoeg is. Dat is (helaas) best moeilijk uit te rekenen.
Uiteraard hangt het af van de changerate of een DWPD van 3 genoeg is. Dat is (helaas) best moeilijk uit te rekenen.
Even niets...
Maar dan kun je dus nooit eerst een schijf bijplaatsen, een zpool replace doen en hem dan pas fysiek op de oorspronkelijke plek zetten? Dan verandert immers de device-naam altijd?HyperBart schreef op maandag 21 december 2020 @ 10:53:
[...]
Waarschijnlijk heeft je OS de disks na de volgende reboot dus een andere letter gegeven met dit als gevolg.
Ik meen me te herinneren dat zfs liever hele schijven heeft dan partities, daarom heb ik tot nu toe altijd de hele schijf aan mijn pool toegekend. Belangrijkste voordeel is dus dat je je schijven dan van een label kunt voorzien.
Maar maakt zfs niet zelf een aantal partities aan als je hem een hele schijf geeft? Ik zie in mijn pool met "whole-disk = 1" (volgens zdb-output) dat het pad dat hij gebruikt niet de hele schijf is, maar bijv. /dev/sdb1. Ook zie ik bij /dev/disk/by-path dat alle schijven uit mijn data-pool een -part1 en een -part9 hebben. Die heb ik zeker zelf nooit aangemaakt....
Ok, maar hoe kan ik die zpool.cache-file dan updaten? Immers, ik plaatste nu de nieuwe schijf via een usb-poort. Dan zpool replace, dat ging allemaal prima, dus op dat moment bestaat de zpool uit 2 sata-schijven en 1 usb-schijf.FireDrunk schreef op maandag 21 december 2020 @ 10:57:
Dat is geen probleem bij ZFS, dat gaat intern op metadata locaties op de disk zelf. ZFS probeert schijven te openen die in de zpool.cache file staan, en gaat daar de metadata van lezen.
Het probleem waar @CurlyMo en @ocaj waarschijnlijk last van hebben is een niet accurate zpool.cache file. Sommige operating systems cachen deze in je initramfs, waardoor als die achter loopt op de realiteit, je cache file dus niet gelijk is aan wat er 'echt' op de disk staat. Dat kan je in veel operating systems wel forceren, door je initramfs opnieuw te genereren.
Als ZFS disks die in de zpool.cache file staan niet kan vinden, skipped hij deze gewoon, maar gaat niet zomaar opnieuw zoeken naar disks die missen in de pool.
Vervolgens zet ik de server uit en verplaats de usb-schijf naar sata. Maar op dat moment staat mijn server uit, en na een reboot is alles anders.
Waarom kijkt ZFS niet gewoon even wat verder als hij een schijf niet kan vinden?
Is dat typisch een ZFS-on-Linux ding? Kan me dit soort gedoe niet herinneren van mijn OpenIndiana-server, daar vond ZFS de schijven altijd, ook als ze na starten een andere devicenaam hadden?
Ik zou dan dus voordat ik de server een shutdown geef, eerst al mijn LXC/VM's die de data-schijf nodig hebben moeten stoppen en configureren dat ze niet meer auto-starten, dan de data-schijf moeten exporteren, schijven wisselen, pool opnieuw importeren en dan mijn LXC/VM's weer allemaal handmatig moeten starten en config weer op autostart zetten?
Klinkt als een hoop omslachtig gedoe..... (dan kan ik nog beter een in-place replace doen, ook al zit ik dan 24 uur zonder redundantie, ik dacht er juist goed aan te doen om de nieuwe schijf eerst bij te plaatsen zodat je tijdens de replace nog redundant bent.)
Daarom wil je ook met ID's werken en niet met de standaard OS nummering. Die laatste verandert teveel. Dan heb je dat probleem niet.ocaj schreef op maandag 21 december 2020 @ 12:46:
[...]
Maar dan kun je dus nooit eerst een schijf bijplaatsen, een zpool replace doen en hem dan pas fysiek op de oorspronkelijke plek zetten? Dan verandert immers de device-naam altijd?
Verwar je dit niet met dat ZFS vooral ruwe toegang tot je schijven wil en niet gevirtualiseerd? Partities zijn voor ZFS echt geen probleem.Ik meen me te herinneren dat zfs liever hele schijven heeft dan partities, daarom heb ik tot nu toe altijd de hele schijf aan mijn pool toegekend. Belangrijkste voordeel is dus dat je je schijven dan van een label kunt voorzien.
Ook hier weer. Direct met ID's werken. Dan heb je dat probleem niet.Ok, maar hoe kan ik die zpool.cache-file dan updaten? Immers, ik plaatste nu de nieuwe schijf via een usb-poort. Dan zpool replace, dat ging allemaal prima, dus op dat moment bestaat de zpool uit 2 sata-schijven en 1 usb-schijf.
Sinds de 2 dagen regel reageer ik hier niet meer
@ocaj Hele disks komt nog uit het Solaris tijdperk. Vroegah was het zo dat er in de kernel iets met locking gedaan werd met zowel de disk als met partities, en daardoor was het efficienter om hele disks te gebruiken, dat kwam de locking mechnismes ten goede. Dat is al jaren geleden gefixt (in Solaris), en niet nodig in Linux.
ZFS on Linux kan prima overweg met hele disks, maar zal zoals je zelf al noemt (tegenwoordig) zelf partities aanmaken. Dit doen ze met wat afkortingen en wat UID's. Daarna wordt de pool gemount met deze partities, maar ZFS on Linux boeit het weinig of dit via ID's of via partitie labels gebeurt.
Mijn voorkeur: Gebruik zelfgemaakte Partitie Labels, waarom? Je kan dan het serienummer van de disk in het label zetten. Voordeel is dat als een disk uitvalt, je weet welke disk je kwijt bent, en dus niet moeilijk hoeft te doen om er achter te komen welke disk het was.
Als je graag wil dat ZFS je disks netjes mount op id, kan je je huidige pool exporteren, en weer importeren door ZFS geforceerd in een bepaalde directory te laten kijken dmv:
Als je CurlyMo's advies volgt en op id wil werken:
Als je mijn guide volgt en met partitie labels wil werken:
Dit zorgt er voor dat ZFS _alleen_ in de genoemde directory kijkt, en daar zoekt naar te importeren pools.
Als je die -d optie niet meegeeft, zal ZFS in meerdere directories zoeken. Ik heb geloof ik jaren geleden een pull request ingediend, waar /by-id/ en /by-partlabel/ hoger kwamen te staan dan de root devices (/dev/sdx).
Geen idee of dat nog steeds zo is
Jup:
https://github.com/openzf...ux/zutil_import_os.c#L260
ZFS on Linux kan prima overweg met hele disks, maar zal zoals je zelf al noemt (tegenwoordig) zelf partities aanmaken. Dit doen ze met wat afkortingen en wat UID's. Daarna wordt de pool gemount met deze partities, maar ZFS on Linux boeit het weinig of dit via ID's of via partitie labels gebeurt.
Mijn voorkeur: Gebruik zelfgemaakte Partitie Labels, waarom? Je kan dan het serienummer van de disk in het label zetten. Voordeel is dat als een disk uitvalt, je weet welke disk je kwijt bent, en dus niet moeilijk hoeft te doen om er achter te komen welke disk het was.
Als je graag wil dat ZFS je disks netjes mount op id, kan je je huidige pool exporteren, en weer importeren door ZFS geforceerd in een bepaalde directory te laten kijken dmv:
Als je CurlyMo's advies volgt en op id wil werken:
zpool import -d /dev/disk/by-id/
Als je mijn guide volgt en met partitie labels wil werken:
zpool import -d /dev/disk/by-partlabel/
Dit zorgt er voor dat ZFS _alleen_ in de genoemde directory kijkt, en daar zoekt naar te importeren pools.
Als je die -d optie niet meegeeft, zal ZFS in meerdere directories zoeken. Ik heb geloof ik jaren geleden een pull request ingediend, waar /by-id/ en /by-partlabel/ hoger kwamen te staan dan de root devices (/dev/sdx).
Geen idee of dat nog steeds zo is
https://github.com/openzf...ux/zutil_import_os.c#L260
C:
1
2
3
4
5
6
7
8
9
10
11
12
| static char * zpool_default_import_path[DEFAULT_IMPORT_PATH_SIZE] = { "/dev/disk/by-vdev", /* Custom rules, use first if they exist */ "/dev/mapper", /* Use multipath devices before components */ "/dev/disk/by-partlabel", /* Single unique entry set by user */ "/dev/disk/by-partuuid", /* Generated partition uuid */ "/dev/disk/by-label", /* Custom persistent labels */ "/dev/disk/by-uuid", /* Single unique entry and persistent */ "/dev/disk/by-id", /* May be multiple entries and persistent */ "/dev/disk/by-path", /* Encodes physical location and persistent */ "/dev" /* UNSAFE device names will change */ }; |
[ Voor 23% gewijzigd door FireDrunk op 21-12-2020 13:50 ]
Even niets...
Met even de focus op de laatste commentaar regel: "/dev" /* UNSAFE device names will change */
Sinds de 2 dagen regel reageer ik hier niet meer
Aha, dat is inderdaad wat ik me herinner. Mijn ZFS-ervaring begon ergens in 2010/2011 op OpenIndiana (solaris-variant/branch). Waarschijnlijk is het uit die tijd blijven hangen, maar ik zal het (proberen te) vergeten.FireDrunk schreef op maandag 21 december 2020 @ 13:46:
@ocaj Hele disks komt nog uit het Solaris tijdperk. Vroegah was het zo dat er in de kernel iets met locking gedaan werd met zowel de disk als met partities, en daardoor was het efficienter om hele disks te gebruiken, dat kwam de locking mechnismes ten goede. Dat is al jaren geleden gefixt (in Solaris), en niet nodig in Linux.
Ga ik voor de volgende keer dus eerst een partitietabel + label maken en dat label dan in het replace-commando gebruiken. Als ik hem daarna van USB naar sata verzet gaat dat in één keer goed.
Overigens wel interessant: als ik nu kijk in /dev/disk/by-partlabel, dan zie ik daar voor de schijf die nu nieuw aan het resilveren is:
lrwxrwxrwx 1 root root 10 Dec 21 08:56 zfs-5847a468090ef1ca -> ../../sdc1
Voor de andere schijven uit de pool staan er geen entries in /dev/disk/by-partlabel.
Oftewel: Het lijkt erop dat zfs nu toch zelf een partitielabel aangemaakt heeft?
Volgens mij doet die dat om te garanderen dat hij de schijf weer kan vinden na een reboot. Ik ben benieuwd of die label beklijft nadat de resilver voltooid is. Ook denk ik dat hij dit alleen doet bij vdev's zonder label.ocaj schreef op maandag 21 december 2020 @ 13:54:
[...]
Oftewel: Het lijkt erop dat zfs nu toch zelf een partitielabel aangemaakt heeft?
Sinds de 2 dagen regel reageer ik hier niet meer
ZFS on Linux doet aan autopartitioning inclusief labels. Als je pool vroeger gemaakt is met hele disks, en je vervangt een oude disk met een nieuwe zonder partities, zal ZFS er een partitie op aanmaken, en die aan je pool toevoegen.
ZFS on Linux zal volgens mij altijd partities aanmaken, als udev aangeeft dat het om een 'disk' gaat.
De 'rules' daarvoor zijn wat complex.
Bijbehorende code:
https://github.com/openzf...d/zpool/zpool_vdev.c#L956
en labels:
https://github.com/openzf...nux/libzfs_pool_os.c#L212
Exacte label definitie:
https://github.com/openzf...nux/libzfs_pool_os.c#L204
Hmm, die laatste klopt niet helemaal, maar de functie is wel degene die de write doet, het maken van het label gebeurt ergens anders, maar goed, you get the point
ZFS on Linux zal volgens mij altijd partities aanmaken, als udev aangeeft dat het om een 'disk' gaat.
De 'rules' daarvoor zijn wat complex.
Bijbehorende code:
https://github.com/openzf...d/zpool/zpool_vdev.c#L956
en labels:
https://github.com/openzf...nux/libzfs_pool_os.c#L212
Exacte label definitie:
https://github.com/openzf...nux/libzfs_pool_os.c#L204
Hmm, die laatste klopt niet helemaal, maar de functie is wel degene die de write doet, het maken van het label gebeurt ergens anders, maar goed, you get the point
[ Voor 44% gewijzigd door FireDrunk op 21-12-2020 14:29 ]
Even niets...
@CurlyMo Inmiddels is de resilver succesvol afgelopen en het partitielabel is er nog steeds.
Label-format klopt ook met de code die @FireDrunk aangegeven had.
Binnenkort schijven bestellen om de andere 2 uit de RAID ook te vervangen, dus dan mag ik nog 2 keer oefenen met resilveren, maar dan direct met partitie-labels
Bedankt in ieder geval voor de uitleg
Label-format klopt ook met de code die @FireDrunk aangegeven had.
Binnenkort schijven bestellen om de andere 2 uit de RAID ook te vervangen, dus dan mag ik nog 2 keer oefenen met resilveren, maar dan direct met partitie-labels

Bedankt in ieder geval voor de uitleg
Inmiddels heb ik alles wat op de ZFS pool staat gebackupt naar externe schijven. Omdat snelheid geboden is, wens ik de pool uit mijn oude FreeNAS 9.3 te exporteren. Vervolgens op een ander installatiemedium TrueNAS 12.0-U1 te installeren om de pool daarin te importeren.HyperBart schreef op zaterdag 19 december 2020 @ 18:53:
Vervangende schijf BIJplaatsen (!) en dan replace commando altijd het meest betrouwbare want de falende schijf doet dan ook nog mee in het herbouwen. Gebeurt er dan iets op nog een andere schijf ben je niet zo snel het haasje.
Niet upgraden voor je pool terug in orde is. Eerst zorgen voor een stabiele en gezonde omgeving.
Vraag hierbij: zal het resilveren sneller gaan onder OpenZFS 2.0 dan onder de oude ZFS versie? Omdat al mijn data inmiddels veilig is gebackupt, is de snelheid van het resilveren namelijk mijn enige bekommernis.
In de release notes lees ik namelijk het volgende:
Ik vermoed dat ik geen mirrored vdev's heb. Enkel een raidz1-0 en een raidz1-1 van telkens 4 schijven. Vandaar de vraag.Major New Features
Sequential resilver - The sequential resilver feature can rebuild a failed mirror vdev in a fraction of the time it would take a traditional healing resilver. Full redundancy is restored as quickly as possible and then the pool is automatically scrubbed to verify all of the data checksums. #10349
[ Voor 4% gewijzigd door meraki op 22-12-2020 15:02 ]
Heb jij ook een idee van enige snelheidswinst van de ZFS-versie uit 2012 t.o.v. de ZFS-versie uit 2020?CurlyMo schreef op dinsdag 22 december 2020 @ 16:54:
@meraki Ik zou het advies van @HyperBart opvolgen.
Die is er zeker.meraki schreef op woensdag 23 december 2020 @ 00:11:
Heb jij ook een idee van enige snelheidswinst van de ZFS-versie uit 2012 t.o.v. de ZFS-versie uit 2020?
De nieuwe 2.0 feature is inderdaad enkel voor mirrored vdevs, dus niet van toepassing. Maar er zijn al eerder flinke verbeteringen geweest tav. resilvering, te weten in 0.8.0 van ZoL: Sequential Scrubs and Resilvers #6256. Tenzij BSD dat al had vóór Linux..
Ik zou de meest recente TrueNAS-versie gebruiken, dan weet je zeker dat je al die features ook hebt (want die versie shipt OpenZFS 2.0).
Hartelijk bedankt! De laatste vraag die ik hierbij heb: wanneer ik mijn pool importeer onder de laatste TrueNAS en dus in OpenZFS 2.0, dien ik dan de laatste nieuwe feature flags te activeren om ook gebruik te maken van de verbetering mbt resilvering of staan deze feature flags er los van?Thralas schreef op woensdag 23 december 2020 @ 01:03:
Die is er zeker.
De nieuwe 2.0 feature is inderdaad enkel voor mirrored vdevs, dus niet van toepassing. Maar er zijn al eerder flinke verbeteringen geweest tav. resilvering, te weten in 0.8.0 van ZoL: Sequential Scrubs and Resilvers #6256. Tenzij BSD dat al had vóór Linux..
Ik zou de meest recente TrueNAS-versie gebruiken, dan weet je zeker dat je al die features ook hebt (want die versie shipt OpenZFS 2.0).
Nee, die staan er los van zover ik kan zien.
Na een kleine 170h testen met badblocks en verifieren dat ze goed werken een paar oude bankkaartformaat kaartjes genomen en 20 minuutjes zitten prielen en prullen. Disks er uit en allemaal via forward breakout to SATA opgekoppeld aan een LSI2008 die ik nog had liggen.HyperBart schreef op zaterdag 28 november 2020 @ 13:44:
Met black friday een paar WD 12TB op de kop kunnen tikken.
Binnenkort shucken maar eerst eens kijken hoe ze werken icm ZFS en USB3.1.
Gisteren dan ook maar deze post even opgehaald:
HyperBart in "Het grote ZFS topic" en hey presto deze middag was alle data in bulk al over
Dat ZFS send + receive en gewoon *weten* dat je data goed geland is, heerlijk.
Ik heb nog wel een vraagstuk waar ik het meest efficiënte antwoord op zoek. Meest efficiënt wil zeggen:
- zo min mogelijk buiten ZFS om
- secundair zo min mogelijk bits moven (geen zin om een cp van 20TB te doen of een move van een dataset/filesystem naar een ander)
Gewenste resultaat:
pad "/pool/A/1" en "/pool/A/2" dienen ook filesystems te worden, bij voorkeur onder map A.
Ik stoeide met het idee
[list=1]
• snapshot van A nemen
• een map weg te doen
• snapshot opnieuw als filesystem te mounten
[/list]
Maar dan zit ik met de andere overblijvende map die geen FS is. Dan kan je je afvragen wat het nut is van een snapshot van te maken en zit ik met het probleem dat je een map niveau dieper moet gaan en ik een redelijk zware mv ga moeten doen, want ik zit in een andere FS.
Andere optie zou zijn:
[list=1]
• 2 clones maken van /pool/A
• niet mounten
• map 1 en 2 verwijderen
• clones 2 keer mounten onder 2 mappen in A
• move doen naar één mapje hoger (want ze zitten nu één niveau te diep) en dit twee maal
• oude "bundelende fileystem" droppen (gaat dat?)
[/list]
Stom idee, alles wat op snapshots gebaseerd is kan je niet weg doen
Dat heeft volgens mij als voordeel dat ik in hetzelfde FS de move doe, dus dat gaat zga instant en dat alles via ZFS op de achtergrond gaat.
Als ik je post meraki in "Het grote ZFS topic" er bij neem dan heb je inderdaad geen mirrors, dus die specifieke change die je aanstipt is op jou niet van toepassing.meraki schreef op dinsdag 22 december 2020 @ 14:59:
[...]
Inmiddels heb ik alles wat op de ZFS pool staat gebackupt naar externe schijven. Omdat snelheid geboden is, wens ik de pool uit mijn oude FreeNAS 9.3 te exporteren. Vervolgens op een ander installatiemedium TrueNAS 12.0-U1 te installeren om de pool daarin te importeren.
Vraag hierbij: zal het resilveren sneller gaan onder OpenZFS 2.0 dan onder de oude ZFS versie? Omdat al mijn data inmiddels veilig is gebackupt, is de snelheid van het resilveren namelijk mijn enige bekommernis.
In de release notes lees ik namelijk het volgende:
[...]
Ik vermoed dat ik geen mirrored vdev's heb. Enkel een raidz1-0 en een raidz1-1 van telkens 4 schijven. Vandaar de vraag.
Goed dat je een backup hebt maar mijn voorkeur ligt nog altijd bij "eerst gezond geraken" voor je gaat upgraden. Of vouw je ook nonchalant je eerste parachute met het idee "ah joh, kheb toch nog die tweede"
9/10 zal het wel goed gaan, maar je zal maar net zien dat er dan iets mis gaat.
[ Voor 70% gewijzigd door HyperBart op 24-12-2020 10:49 ]
Nou, ik heb het geprobeerd met partition-labels, maar gaat nog steeds niet erg lekker.ocaj schreef op dinsdag 22 december 2020 @ 07:14:
Binnenkort schijven bestellen om de andere 2 uit de RAID ook te vervangen, dus dan mag ik nog 2 keer oefenen met resilveren, maar dan direct met partitie-labels
Aanmaken volgens de blog van @FireDrunk ging prima. Vervolgens een zpool replace gedaan van de oude drive met de nieuwe op partition-label.
Resilver afgewacht (om de een of andere reden had mijn sata-dock besloten om op USB2 te connecten, dus dat duurde bijna 3 dagen ipv 22 uur).
Vanmorgen server uitgezet en de nieuwe schijf vanuit USB naar sata verplaatst, maar het hele partition-label dat ik aangemaakt had werd helemaal niet meer herkend? En dus de schijf ook niet, mijn pool zat dus weer in degraded-toestand.
Anyway, ik heb dus het partion-label opnieuw aangebracht. Daarbij viel wel op dat de first-sector nu default op 2048 stond en bij USB (meen ik) op 256. In beide gevallen heb ik de default aangehouden, kan daar het verschil in gezeten hebben?
Na een reboot herkende zfs de pool wel en begon uit zichzelf een resilver die in een halve minuut klaar was met 29 checksum errors.
Helemaal vertrouwen deed ik het niet, dus nog maar een scrub tegenaan gegooid, na een paar uur had die teveel errors en was de pool degraded.
Wat ik nu probeer - en me niet lukt - is om een complete resilver te forceren van de nieuwe schijf.
Pool ziet er nu zo uit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| zpool status data pool: data state: DEGRADED status: One or more devices has experienced an unrecoverable error. An attempt was made to correct the error. Applications are unaffected. action: Determine if the device needs to be replaced, and clear the errors using 'zpool clear' or replace the device with 'zpool replace'. see: http://zfsonlinux.org/msg/ZFS-8000-9P scan: resilvered 9.40M in 0 days 00:00:04 with 0 errors on Sun Dec 27 12:50:21 2020 config: NAME STATE READ WRITE CKSUM data DEGRADED 0 0 0 raidz1-0 DEGRADED 0 0 0 sdb ONLINE 0 0 0 sdc ONLINE 0 0 0 DATA-12TB-HGST-5PJX7Y9B DEGRADED 0 0 60 too many errors logs sda4 ONLINE 0 0 0 cache sda5 ONLINE 0 0 0 |
Ik heb gepoogd een zpool replace van de nieuwe schijf te doen, maar die klaagt dat die schijf al onderdeel is van een actieve pool. Ook als je het middels "-f" forceert:
code:
1
2
3
4
5
6
7
8
| zpool replace data DATA-12TB-HGST-5PJX7Y9B invalid vdev specification use '-f' to override the following errors: /dev/disk/by-partlabel/DATA-12TB-HGST-5PJX7Y9B is part of active pool 'data' root@pve:~# zpool replace -f data DATA-12TB-HGST-5PJX7Y9B invalid vdev specification the following errors must be manually repaired: /dev/disk/by-partlabel/DATA-12TB-HGST-5PJX7Y9B is part of active pool 'data' |
Ik heb ook nog geprobeerd eerst het device offline te maken en dan de replace te doen, maar dat maakte geen verschil.
Wat is nu de juist weg om een resilver van die nieuwe schijf te forceren?
Probeer je nu via een resilver te forceren dat er labels worden gebruikt?! Zo ja, dan is dat echt een heel slecht idee.ocaj schreef op zondag 27 december 2020 @ 13:02:
[...]
Wat is nu de juist weg om een resilver van die nieuwe schijf te forceren?
[ Voor 7% gewijzigd door CurlyMo op 27-12-2020 13:06 ]
Sinds de 2 dagen regel reageer ik hier niet meer
Nee hoor, ik heb eerst op de nieuwe schijf een partition-label aangemaakt.
Daarna een replace gedaan waarbij ik zpool replace van de oude device naam naar de nieuwe schijf met paritionlabel gedaan heb.
Maar dat werkte dus ergens niet helemaal goed.
Ik probeer eigenlijk de hele schijf opnieuw te resilveren, maar krijg dat niet voor elkaar.
Daarna een replace gedaan waarbij ik zpool replace van de oude device naam naar de nieuwe schijf met paritionlabel gedaan heb.
Maar dat werkte dus ergens niet helemaal goed.
Ik probeer eigenlijk de hele schijf opnieuw te resilveren, maar krijg dat niet voor elkaar.
Tja, die errors komen ergens vandaan... Wat zeggen 'dmesg' en smart logs?
Even niets...
dmesg en smart zeggen niks relevants.
Voor mijn gevoel komt e.e.a door net iets andere alignment via USB dan via SATA. Ik wil dus nu gewoon de zpool replace opnieuw doen, maar dan in-place.
Of is dat een kwestie van :
- schijf via zpool offline inactief maken
- via gdisk de schijf opnieuw formatteren
- schijf weer toevoegen, hetzij met hetzelfde label, of met een net iets ander label?
Update:
Bovenstaande aanpak net geprobeerd, maar dat werkt dus ook niet. Ik heb via gdisk de hele partitie weggegooid, vervolgens een nieuwe aangemaakt met een afwijkend label.
Zoals te verwachten is het device in de zpool nu "UNAVAIL" ipv "DEGRADED".
Ik had verwacht dat ik met een zpool replace deze schijf nu weer opnieuw aan mijn pool kon toevoegen, maar ZFS blijft ergens herkennen dat de schijf eerder onderdeel is geweest van een pool.
Hoe destructief moet ik een schijf wissen voordat ZFS hem niet meer herkend? Ik kan er wel 12TB aan nullen overheen schrijven met dd, dat werkt vast wel, maar dat lijkt me ook weer wat overkill.
Dat moet toch eenvoudiger kunnen?
Ik sta op het punt om weer gewoon op whole-disk over te gaan ipv partition-labels, maar uit de eerdere discussies begreep ik dat partition-labels eigenlijk de betere methode is. Tot nu toe voelt dat nog niet zo...
Update2:
ZFS blijkt nogal robuust te zijn en geen moeite te hebben met weggegooide partities of andere partitielabels. ZFS heeft zelf 4 "labels" waar de device-info in bewaard wordt. Om een device geen onderdeel meer uit te laten maken van een pool moet je dus al die 4 labels wissen. Anders blijft zpool herkennen dat deze schijf al eerder onderdeel was van een actieve pool.
Er is een commando "zpool labelclear", maar dat werkt niet zoals je zou verwachten. Uiteindelijk hier gevonden: https://github.com/openzfs/zfs/issues/2076 hoe je middels strace en zdb -l kunt achterhalen waar op je schijf die labels staan. Vervolgens met dd die plekken gewist. (maar brute-force de hele 12TB wissen had met wat ik nu weet ook gewerkt...)
Daarna wordt de schijf weer gewoon geaccepteerd in een zpool replace-commando.
PoePoe, gelukkig was het een regenachtige zondagmiddag
Voor mijn gevoel komt e.e.a door net iets andere alignment via USB dan via SATA. Ik wil dus nu gewoon de zpool replace opnieuw doen, maar dan in-place.
Of is dat een kwestie van :
- schijf via zpool offline inactief maken
- via gdisk de schijf opnieuw formatteren
- schijf weer toevoegen, hetzij met hetzelfde label, of met een net iets ander label?
Update:
Bovenstaande aanpak net geprobeerd, maar dat werkt dus ook niet. Ik heb via gdisk de hele partitie weggegooid, vervolgens een nieuwe aangemaakt met een afwijkend label.
Zoals te verwachten is het device in de zpool nu "UNAVAIL" ipv "DEGRADED".
Ik had verwacht dat ik met een zpool replace deze schijf nu weer opnieuw aan mijn pool kon toevoegen, maar ZFS blijft ergens herkennen dat de schijf eerder onderdeel is geweest van een pool.
Hoe destructief moet ik een schijf wissen voordat ZFS hem niet meer herkend? Ik kan er wel 12TB aan nullen overheen schrijven met dd, dat werkt vast wel, maar dat lijkt me ook weer wat overkill.
Dat moet toch eenvoudiger kunnen?
Ik sta op het punt om weer gewoon op whole-disk over te gaan ipv partition-labels, maar uit de eerdere discussies begreep ik dat partition-labels eigenlijk de betere methode is. Tot nu toe voelt dat nog niet zo...
Update2:
ZFS blijkt nogal robuust te zijn en geen moeite te hebben met weggegooide partities of andere partitielabels. ZFS heeft zelf 4 "labels" waar de device-info in bewaard wordt. Om een device geen onderdeel meer uit te laten maken van een pool moet je dus al die 4 labels wissen. Anders blijft zpool herkennen dat deze schijf al eerder onderdeel was van een actieve pool.
Er is een commando "zpool labelclear", maar dat werkt niet zoals je zou verwachten. Uiteindelijk hier gevonden: https://github.com/openzfs/zfs/issues/2076 hoe je middels strace en zdb -l kunt achterhalen waar op je schijf die labels staan. Vervolgens met dd die plekken gewist. (maar brute-force de hele 12TB wissen had met wat ik nu weet ook gewerkt...)
Daarna wordt de schijf weer gewoon geaccepteerd in een zpool replace-commando.
PoePoe, gelukkig was het een regenachtige zondagmiddag

[ Voor 78% gewijzigd door ocaj op 27-12-2020 15:48 ]
Mosterd na de maaltijd zie ik, maar ik had al wat getikt, dus toch bij deze:
Het feit dat je daar twee verschillende offsets te zien krijgt duidt op het aloude truukje dat USB enclosures soms toepassen ivm. legacy compatibility (Windows XP): ze rapporteren een logical sector size van 4096 ipv. 512.
Bij een logical sector size van 4096 is LBA -34 'verder terug' dan bij 512. Als je met sector size 512 een GPT met 1 volledige partitie aanmaakt, een filesystem wegschrijft en dan met sector size 4096 een nieuwe GPT wegschrijft om het te 'repareren' dan overschrijf je onbedoeld de laatste paar sectoren van je filesystem met de backup GPT.
Jij geeft aan dat je 't alleen andersom hebt gedaan, dat zou goed moeten gaan, maar bovenstaande illustreert waarom je voorzichtig moet zijn. Als je zaken wilt nalopen dan kun je de logical sector size controleren met hdparm -I - je enclosure zal 4096 rapporteren.
Zou in ieder geval een andere USB-to-SATA unit gebruiken bij voorkeur.
Je hebt hem inmiddels gewiped (althans, de labels) en replaced, maar wat je eigenlijk had moeten doen is gewoon scrubben lijkt me. Als dat zonder errors verloopt kun je de oude cksum errors clearen.
Relevant stukje uit de man page:
Nee, maar je geeft hier wel een belangrijke aanwijzing over wat er gaande is. Moderne partitietools zetten de eerste partitie altijd op een offset van 1MB van het begin van de disk.ocaj schreef op zondag 27 december 2020 @ 13:02:
Anyway, ik heb dus het partion-label opnieuw aangebracht. Daarbij viel wel op dat de first-sector nu default op 2048 stond en bij USB (meen ik) op 256. In beide gevallen heb ik de default aangehouden, kan daar het verschil in gezeten hebben?
Het feit dat je daar twee verschillende offsets te zien krijgt duidt op het aloude truukje dat USB enclosures soms toepassen ivm. legacy compatibility (Windows XP): ze rapporteren een logical sector size van 4096 ipv. 512.
Het is in ieder geval zo dat je al snel last van corruptie hebt als je van logical sector size 512 (SATA) naar die enclosure (4096) gaat en dan een GPT wegschrijft. Want de backup GPT wordt relatief ten opzichte van het einde van de disk geplaatst, waarbij er wordt gerekend met LBAs. IllustratieNa een reboot herkende zfs de pool wel en begon uit zichzelf een resilver die in een halve minuut klaar was met 29 checksum errors. Helemaal vertrouwen deed ik het niet, dus nog maar een scrub tegenaan gegooid, na een paar uur had die teveel errors en was de pool degraded.
Bij een logical sector size van 4096 is LBA -34 'verder terug' dan bij 512. Als je met sector size 512 een GPT met 1 volledige partitie aanmaakt, een filesystem wegschrijft en dan met sector size 4096 een nieuwe GPT wegschrijft om het te 'repareren' dan overschrijf je onbedoeld de laatste paar sectoren van je filesystem met de backup GPT.
Jij geeft aan dat je 't alleen andersom hebt gedaan, dat zou goed moeten gaan, maar bovenstaande illustreert waarom je voorzichtig moet zijn. Als je zaken wilt nalopen dan kun je de logical sector size controleren met hdparm -I - je enclosure zal 4096 rapporteren.
Zou in ieder geval een andere USB-to-SATA unit gebruiken bij voorkeur.
Dat klopte toch ook? Volgens zfs zat die disk nog in je pool én hij werd gebruikt. Dan kun je hem niet replacen met dezelfde disk.Ik heb gepoogd een zpool replace van de nieuwe schijf te doen, maar die klaagt dat die schijf al onderdeel is van een actieve pool.
Je hebt hem inmiddels gewiped (althans, de labels) en replaced, maar wat je eigenlijk had moeten doen is gewoon scrubben lijkt me. Als dat zonder errors verloopt kun je de oude cksum errors clearen.
Relevant stukje uit de man page:
Jouw disk was niet failed, maar gewoon online (enkel degraded door de cksum failures).If new_device is not specified, it defaults to old_device. This form of replacement is useful after an existing disk has failed and has been physically replaced. In this case, the new disk may have the same /dev path as the old device, even though it is actually a different disk. ZFS recognizes this.
[ Voor 9% gewijzigd door Thralas op 27-12-2020 18:57 ]
Toch heel fijn, ik wil altijd graag dingen begrijpen!Thralas schreef op zondag 27 december 2020 @ 18:49:
Mosterd na de maaltijd zie ik, maar ik had al wat getikt, dus toch bij deze:
Via SATA meldt mijn (512e-schijf) volgens verwachting een sector size logical/physical van 512/4096 bytes.Nee, maar je geeft hier wel een belangrijke aanwijzing over wat er gaande is. Moderne partitietools zetten de eerste partitie altijd op een offset van 1MB van het begin van de disk.
Het feit dat je daar twee verschillende offsets te zien krijgt duidt op het aloude truukje dat USB enclosures soms toepassen ivm. legacy compatibility (Windows XP): ze rapporteren een logical sector size van 4096 ipv. 512.
Ik heb hierna nog 1 schijf te vervangen (en dan is mijn hele pool van 3x6TB naar 3x12TB), dus ik laat hier van de week wel weten hoe de usb-dock de logical/physical size doorgeeft. Ik denk dat ik morgen na de resilver voor de zekerheid eerst nog een scrub doe, dus duurt nog even voor ik aan de derde schijf toe ben.
Als dat via USB 4096/4096 is, dan gaat de automatische berekening van first-sector door gdisk dus fout als ik je goed begrijp en kan ik beter handmatig first sector=2048 kiezen. Dan zou hij op dezelfde plek komen waar hij via sata terecht zou moeten komen.
Heb je advies voor een goede? Ik vind zo'n docking-station waar je de sata-schijf rechtop in kunt zetten eigenlijk wel handig. (gebruik ik ook om af en toe offsite backups van mijn pool te maken op oude schijven, heb binnenkort weer 3 stuks 6TB backup-schijven beschikbaarZou in ieder geval een andere USB-to-SATA unit gebruiken bij voorkeur.
Ja, ik denk dat je wel gelijk hebt en dat was ook hoe ik begonnen was (met een scrub). Ik denk (maar kan in mijn Terminal-venster niet meer zo ver terugscrollen) dat ik in de war was omdat de schijf tijdens de scrub de schijf van ONLINE naar DEGRADED ging en ik meen dat er iets stond van "too many errors", (60 chksum-errors). Mogelijk heb ik daardoor aangenomen dat hij gestopt was met scrubben, maar liep hij nog wel gewoon door en was hij er uiteindelijk toch wel uitgekomen. Omdat ik dacht dat hij gestopt was ben ik verdere herstelpogingen gaan doen. Volgende keer zal ik via iostat eerst goed kijken of hij nog bezig is.Dat klopte toch ook? Volgens zfs zat die disk nog in je pool én hij werd gebruikt. Dan kun je hem niet replacen met dezelfde disk.
Je hebt hem inmiddels gewiped (althans, de labels) en replaced, maar wat je eigenlijk had moeten doen is gewoon scrubben lijkt me. Als dat zonder errors verloopt kun je de oude cksum errors clearen.
Jouw disk was niet failed, maar gewoon online (enkel degraded door de cksum failures).
Nee, dat gaat juist vanzelf goed. 2048*512=1048576, en 256*4096=1048576. Maar de GPT moet je daarna sowieso herschrijven.ocaj schreef op zondag 27 december 2020 @ 23:04:
als ik je goed begrijp en kan ik beter handmatig first sector=2048 kiezen. Dan zou hij op dezelfde plek komen waar hij via sata terecht zou moeten komen.
Geen concreet advies, maar van een relatief moderne USB to SATA bridge verwacht ik dat hij de logical sector size wel normaal doorgeeft. Als je verwacht er ooit SSDs mee te benaderen dan kan UASP handig zijn om te maximale snelheid te kunnen halen. Dat is soms wel wat wispelturig onder Linux - kan nut hebben om de chipset even te Googlen (meestal van JMicron of ASMedia).Heb je advies voor een goede? Ik vind zo'n docking-station waar je de sata-schijf rechtop in kunt zetten eigenlijk wel handig.
Na een reboot van mijn proxmox server krijg ik mijn ZFS pool niet meer geimporteerd. Alle drives lijken online te zijn, maar toch gaat er iets mis.
Wat me opvalt zijn de 'degraded:1' en 'aux-state: err_exceeded' meldingen. Is deze pool nog terug te halen? Vind het erg opvallend dat na een restart (geen upgrade van het systeem) ineens alle schijven niet goed zouden zijn...
Iemand advies?
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| zpool import pool: beastpool id: 9071326892089082027 state: ONLINE status: Some supported features are not enabled on the pool. action: The pool can be imported using its name or numeric identifier, though some features will not be available without an explicit 'zpool upgrade'. config: beastpool ONLINE raidz2-0 ONLINE wwn-0x50014ee2096e763a ONLINE wwn-0x5000c500a5bbca7a ONLINE wwn-0x5000c500a5be7966 ONLINE wwn-0x5000c500a5bff727 ONLINE wwn-0x50014ee26724a07e ONLINE wwn-0x50014ee211cf6f82 ONLINE |
code:
1
2
3
| zpool import beastpool -f cannot import 'beastpool': one or more devices is currently unavailable |
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
| zdb -e -C beastpool MOS Configuration: version: 5000 name: 'beastpool' state: 0 txg: 4314931 pool_guid: 9071326892089082027 errata: 0 hostid: 2089621718 hostname: 'proxmox' com.delphix:has_per_vdev_zaps vdev_children: 1 vdev_tree: type: 'root' id: 0 guid: 9071326892089082027 create_txg: 4 children[0]: type: 'raidz' id: 0 guid: 13896697101995280390 nparity: 2 metaslab_array: 42 metaslab_shift: 37 ashift: 12 asize: 23991808425984 is_log: 0 create_txg: 4 com.delphix:vdev_zap_top: 35 children[0]: type: 'disk' id: 0 guid: 13905609868418444547 path: '/dev/disk/by-id/wwn-0x50014ee2096e763a-part1' devid: 'ata-WDC_WD40EZRX-00SPEB0_WD-WMC4E0085025-part1' phys_path: 'pci-0000:02:00.0-sas-exp0x500056b37789abff-phy8-lun-0' whole_disk: 1 DTL: 1793 create_txg: 4 com.delphix:vdev_zap_leaf: 1792 degraded: 1 aux_state: 'err_exceeded' children[1]: type: 'disk' id: 1 guid: 8744022823395031900 path: '/dev/disk/by-id/wwn-0x5000c500a5bbca7a-part1' devid: 'ata-ST4000VN008-2DR166_ZGY1DWBK-part1' phys_path: 'pci-0000:02:00.0-sas-exp0x500056b37789abff-phy13-lun-0' whole_disk: 1 DTL: 2048 create_txg: 4 com.delphix:vdev_zap_leaf: 395 degraded: 1 aux_state: 'err_exceeded' children[2]: type: 'disk' id: 2 guid: 5440320009543364023 path: '/dev/disk/by-id/wwn-0x5000c500a5be7966-part2' whole_disk: 1 DTL: 2181 create_txg: 4 com.delphix:vdev_zap_leaf: 38 degraded: 1 aux_state: 'err_exceeded' children[3]: type: 'disk' id: 3 guid: 4377670794472754383 path: '/dev/disk/by-id/wwn-0x5000c500a5bff727-part2' whole_disk: 1 DTL: 2180 create_txg: 4 com.delphix:vdev_zap_leaf: 39 degraded: 1 aux_state: 'err_exceeded' children[4]: type: 'disk' id: 4 guid: 11215307930281265809 path: '/dev/disk/by-id/wwn-0x50014ee26724a07e-part2' whole_disk: 1 DTL: 2179 create_txg: 4 com.delphix:vdev_zap_leaf: 40 degraded: 1 aux_state: 'err_exceeded' children[5]: type: 'disk' id: 5 guid: 5869953411243196312 path: '/dev/disk/by-id/wwn-0x50014ee211cf6f82-part2' whole_disk: 1 DTL: 2178 create_txg: 4 com.delphix:vdev_zap_leaf: 41 degraded: 1 aux_state: 'err_exceeded' features_for_read: com.delphix:hole_birth com.delphix:embedded_data |
Wat me opvalt zijn de 'degraded:1' en 'aux-state: err_exceeded' meldingen. Is deze pool nog terug te halen? Vind het erg opvallend dat na een restart (geen upgrade van het systeem) ineens alle schijven niet goed zouden zijn...
Iemand advies?
Niet dat ik er ervaring mee heb, maar err_exceeded klinkt toch al niet als "de boel is volledig kapot". Ook dat alle schijven het ineens na een reboot hebben suggerreert eerder een probleem wat niet bij de schijven zelf ligt (wat al goed nieuws zou zijn voor je data).michelvdriel schreef op maandag 28 december 2020 @ 23:32:
Wat me opvalt zijn de 'degraded:1' en 'aux-state: err_exceeded' meldingen. Is deze pool nog terug te halen? Vind het erg opvallend dat na een restart (geen upgrade van het systeem) ineens alle schijven niet goed zouden zijn...
Iemand advies?
Aangezien de schijven nog online zijn zou ik er van eentje de SMART eens proberen uit te lezen, en kijken of de schijf zelf ook fouten rapporteert (dan zou ik eerder op Read Error Rate of iets dergelijks letten). En eens een Memtest draaien om er zeker van te zijn dat daar geen probleem zit.
Probeer de pool eens te importeren via de /dev/disk/by-id/ map.
zpool import -d /dev/disk/by-id
Even niets...
Alle SMART waardes zijn in orde (geen fails, alle drives PASSED). Ook de MEM-test geeft geen fouten terug.Giesber schreef op maandag 28 december 2020 @ 23:54:
[...]
Niet dat ik er ervaring mee heb, maar err_exceeded klinkt toch al niet als "de boel is volledig kapot". Ook dat alle schijven het ineens na een reboot hebben suggerreert eerder een probleem wat niet bij de schijven zelf ligt (wat al goed nieuws zou zijn voor je data).
Aangezien de schijven nog online zijn zou ik er van eentje de SMART eens proberen uit te lezen, en kijken of de schijf zelf ook fouten rapporteert (dan zou ik eerder op Read Error Rate of iets dergelijks letten). En eens een Memtest draaien om er zeker van te zijn dat daar geen probleem zit.
Ik heb alle drives al verplaatst naar andere drivebays om te kijken of er een probleem in een van de aansluitingen zit, maar dit heeft ook niet geholpen.
Die had ik niet vermeld, maar ook geprobeerd. Geeft hetzelfde resultaat terug.FireDrunk schreef op dinsdag 29 december 2020 @ 06:46:
Probeer de pool eens te importeren via de /dev/disk/by-id/ map.
zpool import -d /dev/disk/by-id
En?michelvdriel schreef op dinsdag 29 december 2020 @ 10:20:
[...]
Die had ik niet vermeld, maar ook geprobeerd. Geeft hetzelfde resultaat terug.
# zpool import -Fn -d /dev/disk/by-id
Sinds de 2 dagen regel reageer ik hier niet meer
Dat geeft het volgende terug:
Vervolgens:
Geen output, dus dat ziet er goed uit. Nu geprobeerd met -F ipv -Fn
Lukt ook niet helaas.
# zpool import -Fn -d /dev/disk/by-id pool: beastpool id: 9071326892089082027 state: ONLINE status: Some supported features are not enabled on the pool. action: The pool can be imported using its name or numeric identifier, though some features will not be available without an explicit 'zpool upgrade'. config: beastpool ONLINE raidz2-0 ONLINE wwn-0x50014ee2096e763a ONLINE wwn-0x5000c500a5bbca7a ONLINE wwn-0x5000c500a5be7966 ONLINE wwn-0x5000c500a5bff727 ONLINE wwn-0x50014ee26724a07e ONLINE wwn-0x50014ee211cf6f82 ONLINE
Vervolgens:
# zpool import -Fn -d /dev/disk/by-id beastpool
Geen output, dus dat ziet er goed uit. Nu geprobeerd met -F ipv -Fn
#zpool import -F -d /dev/disk/by-id beastpool internal error: Invalid exchange
Lukt ook niet helaas.
Waar @CurlyMo die -Fn vandaan had waarschijnlijk: https://github.com/openzfs/zfs/issues/6805
Mogelijk interessant leesvoer, ziet er naar uit dat die invalid exchange iets met corruptie te maken heeft
Mogelijk interessant leesvoer, ziet er naar uit dat die invalid exchange iets met corruptie te maken heeft
Even niets...
Ik ben er ook bang voor. Enorm vervelend, bewust gekozen voor een raidz2 configuratie om toch nog enige redundancy te hebben. Dan verwacht je toch dat ZFS robuust genoeg is om problemen op te vangen. Geloof er niet in dat alle disks ineens op hetzelfde moment fouten hebben ontwikkeld, dus ben erg benieuwd wat dit veroorzaakt heeft.
De data is bijna allemaal vervangbaar, maar toch...
Hopelijk heeft er nog iemand anders een ingeving om er leven in te blazen, anders is het einde verhaal voor deze pool.
De data is bijna allemaal vervangbaar, maar toch...
Hopelijk heeft er nog iemand anders een ingeving om er leven in te blazen, anders is het einde verhaal voor deze pool.
Heb je geprobeerd meerdere transacties terug te gaan met die -F[#]n optie?
Even niets...
Veel te moeilijkFireDrunk schreef op dinsdag 29 december 2020 @ 15:02:
Waar @CurlyMo die -Fn vandaan had waarschijnlijk: https://github.com/openzfs/zfs/issues/6805
Mogelijk interessant leesvoer, ziet er naar uit dat die invalid exchange iets met corruptie te maken heeft
Sinds de 2 dagen regel reageer ik hier niet meer
Moet je natuurlijk wel snappen dat het een optie is
Even niets...
Oudste txg opgezochtFireDrunk schreef op dinsdag 29 december 2020 @ 15:45:
Heb je geprobeerd meerdere transacties terug te gaan met die -F[#]n optie?
#zdb -lu /dev/disk/by-id/wwn-0x50014ee2096e763a-part1
En vervolgens:
# zpool import -FT 4320416 -m -d /dev/disk/by-id beastpool internal error: Invalid exchange Aborted
Welke versie van Proxmox draai je? of beter gezegd, welke versie van ZFS?
Je kan het eens met een nieuwere versie proberen.
Je kan het eens met een nieuwere versie proberen.
Even niets...
#zpool --version zfs-0.8.5-pve1 zfs-kmod-0.8.5-pve1
Ik heb dit ook al geprobeerd met een live cd (uhm.. usb:) ) van debian, laatste versie. Geen idee welke versie zfs daarop draaide, maar ik kreeg dezelfde fouten.
Je kan deze ook eens proberen: https://www.reddit.com/r/..._pool_internal_error_and/
Uit de ZFS manpage:
ymmvI somehow managed to fix this. After reading all the internets I could find and nothing working, I decided to boot Proxmox back up and then boot up the FreeNAS VM that originally caused the issue. Tried the zpool import Media -f command to no avail. Different error, but still an error. I don't know what made me try this, but I literally just made up a command and was like
\zpool import -FX Media``
I was thinking 'FX' like, FIX THIS! And um, well, it worked! It said the pool was added! I tried to see it in the FreeNAS UI, but it wasn't there and I couldn't import through the GUI. So I exported it through command line and then imported through the GUI and BAM. IMPORTED!! SUCCESS!! PARTY!!!
TL;DR; I have no idea what I'm doing with zfs, but some magical warlock came down and bestowed upon me a great wisdom that I shall never understand.
permalinkembedsavegive award
[–]buck-futter 1 point 9 months ago
I *believe* the -FX and -fFX options will import a corrupted pool, and replay every recorded transaction to search for corruption, then it will roll back to the last point before unrecoverable corruption. This will almost always get your pool back online, but sometimes you might lose quite a bit of changes.
Uit de ZFS manpage:
-X
Used with the -F recovery option. Determines whether extreme measures to find a valid txg should take place. This allows the pool to be rolled back to a txg which is no longer guaranteed to be consistent. Pools imported at an inconsistent txg may contain uncorrectable checksum errors. For more details about pool recovery mode, see the -F option, above. WARNING: This option can be extremely hazardous to the health of your pool and should only be used as a last resort.
[ Voor 15% gewijzigd door FireDrunk op 29-12-2020 16:35 ]
Even niets...
de FX opties heb ik al geprobeerd, helaas zonder succes. Afhankelijk van de opdracht die ik gebruik om te importeren krijg ik cannot import 'beastpool': one or more devices is currently unavailable of internal error: Invalid exchange. Bij andere opdrachten krijg ik de melding dat de pool niet bestaat en een zpool import geeft als resultaat de pool alsof er niets aan de hand is.
Ik zou haast zeggen, open een issue op github, en vraag die jongens. Denk dat het best een interessante case kan zijn voor ze.
Moet je natuurlijk wel zin in hebben...
Moet je natuurlijk wel zin in hebben...
Even niets...
En eens een livecd van bijv. FreeBSD proberen.
Sinds de 2 dagen regel reageer ik hier niet meer
@CurlyMo Ik heb al eerder een live cd van Ubuntu geprobeerd. Na jouw post ook nog FreeBSD gemount, maar het resultaat was helaas hetzelfde.
@FireDrunk Ik ga er even over nadenken of ik een issue wil openen op github. In de systemlogs van de server zie ik veel errors voorbij komen tijdens het openen en dit lijkt op corruptie te wijzen. Ik ga er nog even een nachtje over slapen. De data is vervangbaar, dus misschien is het verstandig om de data als verloren te beschouwen en een nieuwe pool te maken... Bedankt voor de suggesties!
@FireDrunk Ik ga er even over nadenken of ik een issue wil openen op github. In de systemlogs van de server zie ik veel errors voorbij komen tijdens het openen en dit lijkt op corruptie te wijzen. Ik ga er nog even een nachtje over slapen. De data is vervangbaar, dus misschien is het verstandig om de data als verloren te beschouwen en een nieuwe pool te maken... Bedankt voor de suggesties!
Je vermoeden klopte helemaal. Als ik de schijf via USB aansluit, dan meldt de schijf zich met zowel logical als physical sector size = 4096 en via SATA is dat 512/4096.Thralas schreef op maandag 28 december 2020 @ 14:10:
[...]
Nee, dat gaat juist vanzelf goed. 2048*512=1048576, en 256*4096=1048576. Maar de GPT moet je daarna sowieso herschrijven.
Omdat ik geen zin had in gedoe heb ik er voor gekozen om de laatste schijf niet eerst via USB te resilveren, maar rechtstreeks in-place op de SATA-plek. Weliswaar en kleine 24 uur geen redundantie, maar ik heb verder een heel stabiel systeem, dus kans op een storing tijdens resilver is erg klein.
In mijn geval was het (volgens lsusb -v) deze:Geen concreet advies, maar van een relatief moderne USB to SATA bridge verwacht ik dat hij de logical sector size wel normaal doorgeeft. Als je verwacht er ooit SSDs mee te benaderen dan kan UASP handig zijn om te maximale snelheid te kunnen halen. Dat is soms wel wat wispelturig onder Linux - kan nut hebben om de chipset even te Googlen (meestal van JMicron of ASMedia).
idVendor 0x152d JMicron Technology Corp. / JMicron USA Technology Corp.
idProduct 0x0567 JMS567 SATA 6Gb/s bridge
Maar ik moet zeggen dat ik het daar niet uit had gehaald dat hij de sector-size niet correct doorgeeft:
Data sheet JMS576
Ik doelde met het opzoeken van de chipset vooral op UAS support. Linux heeft een aantal blacklists die roet in het eten kunnen gooien.ocaj schreef op woensdag 30 december 2020 @ 11:33:
Maar ik moet zeggen dat ik het daar niet uit had gehaald dat hij de sector-size niet correct doorgeeft:
Data sheet JMS576
Logical sector size is vermoedelijk een configuratieoptie van die JMicron-chipset - daarom staat het niet in die (nogal summiere) datasheet. Voor Western Digital enclosures is er een tool die dat kan aanpassen. Kans is aannemelijk dat dat in theorie ook met jouw controller kan, ik vrees alleen dat die tool je vid/pid niet kent.
@Thralas Aha ok. De chipset in mijn dock zou volgens https://linux-sunxi.org/USB/UAS wel UAS moeten ondersteunen, geen idee inderdaad of die configuratie aanpasbaar is in mijn usb-dock.
Maar voorlopig ben ik weer geholpen. Mijn pool heeft als de laatste resilver klaar is weer ruimte zat om jaren mee vooruit te kunnen. En voor schijven die ik alleen in de dock gebruik is er ook geen probleem als ik het zo inschat.
Maar voorlopig ben ik weer geholpen. Mijn pool heeft als de laatste resilver klaar is weer ruimte zat om jaren mee vooruit te kunnen. En voor schijven die ik alleen in de dock gebruik is er ook geen probleem als ik het zo inschat.
Let op:
Voor het bouwen van een ZFS NAS en andere hardwarevragen kun je beter terecht in Het grote DIY RAID NAS topic deel 3, zodat we dit topic reserveren voor ZFS-specifieke vragen en discussies.
Voor het bouwen van een ZFS NAS en andere hardwarevragen kun je beter terecht in Het grote DIY RAID NAS topic deel 3, zodat we dit topic reserveren voor ZFS-specifieke vragen en discussies.