Acties:
  • 0 Henk 'm!

  • meraki
  • Registratie: Augustus 2007
  • Laatst online: 15-05 23:19
Dat is niet erg. Daarom doe je na deze scrub weer hetzelfde nog een keer om te checken of het inderdaad niet tijdelijk is.
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?

Acties:
  • 0 Henk 'm!
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?
Smart al gechecked?

Sinds de 2 dagen regel reageer ik hier niet meer


Acties:
  • 0 Henk 'm!

  • meraki
  • Registratie: Augustus 2007
  • Laatst online: 15-05 23:19
Smart al gechecked?
Ik ging ervan uit dat freenas me daarvan op de hoogte ging houden maar mogelijk heb ik een te oude versie (9.3)

Acties:
  • 0 Henk 'm!

  • Giesber
  • Registratie: Juni 2005
  • Laatst online: 13-06 17:51
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)
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.

Acties:
  • 0 Henk 'm!

  • meraki
  • Registratie: Augustus 2007
  • Laatst online: 15-05 23:19
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.
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 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.

Acties:
  • 0 Henk 'm!

  • d3vlin
  • Registratie: September 2000
  • Laatst online: 08:24
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!

[ Voor 7% gewijzigd door d3vlin op 19-12-2020 19:43 ]

Leaping Lab Rats!


Acties:
  • +1 Henk 'm!
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:
  • 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?
Tweede vraag

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.
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.

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 ]


Acties:
  • +1 Henk 'm!

  • Mr.Sun
  • Registratie: Juli 2015
  • Laatst online: 11-03 16:41
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)

Acties:
  • 0 Henk 'm!

  • Mr.Sun
  • Registratie: Juli 2015
  • Laatst online: 11-03 16:41
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.

Acties:
  • 0 Henk 'm!
d3vlin schreef op zaterdag 19 december 2020 @ 16:21:
Eventuele aanbevelingen zeer welkom!
De meest prangende vraag. Gewenste prestaties. Ik heb hier een dedup pool nét niet werkend gekregen op een SBC met 1GB geheugen :p Probleem 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.

Sinds de 2 dagen regel reageer ik hier niet meer


Acties:
  • 0 Henk 'm!

  • Borromini
  • Registratie: Januari 2003
  • Niet online

Borromini

Mislukt misantroop

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?
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

Got Leenucks? | Debian Bookworm x86_64 / ARM | OpenWrt: Empower your router | Blogje


Acties:
  • 0 Henk 'm!
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? :)
Kwam dit nog tegen:
https://www.amazon.co.uk/...ure-SATA3-0/dp/B07449Q74W

Acties:
  • 0 Henk 'm!

  • GioStyle
  • Registratie: Januari 2010
  • Laatst online: 10:01

Acties:
  • 0 Henk 'm!

  • d3vlin
  • Registratie: September 2000
  • Laatst online: 08:24
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 geheugen :p Probleem 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 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.

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!


Acties:
  • 0 Henk 'm!

  • d3vlin
  • Registratie: September 2000
  • Laatst online: 08:24
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
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.

Leaping Lab Rats!


Acties:
  • 0 Henk 'm!
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?
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).

Bestel eens en post eens wat output van lsusb enzo? oOo

Acties:
  • 0 Henk 'm!
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?
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.

Sinds de 2 dagen regel reageer ik hier niet meer


Acties:
  • 0 Henk 'm!
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?
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.
@FireDrunk weet jij daar wat zinnigs over te zeggen?

[ Voor 3% gewijzigd door HyperBart op 20-12-2020 14:13 ]


Acties:
  • 0 Henk 'm!
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.

Even niets...


Acties:
  • 0 Henk 'm!
@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.

Acties:
  • 0 Henk 'm!

  • meraki
  • Registratie: Augustus 2007
  • Laatst online: 15-05 23:19
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.
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.
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.

Acties:
  • 0 Henk 'm!
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.
Neen, dat is voor ZFS geen probleem.

Acties:
  • 0 Henk 'm!
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!
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.

Acties:
  • 0 Henk 'm!

  • d3vlin
  • Registratie: September 2000
  • Laatst online: 08:24
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.
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.

Leaping Lab Rats!


Acties:
  • 0 Henk 'm!
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.

Even niets...


Acties:
  • 0 Henk 'm!
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.
Wat veranderen films en fotos aan het nut van dedup? Als hij twee keer dezelfde set opslaat is het toch nuttig?

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.

Acties:
  • 0 Henk 'm!

  • d3vlin
  • Registratie: September 2000
  • Laatst online: 08:24
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.
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.

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. :) Mocht het blijken dat er echt veel RAM nodig is voor dedup dan kan dat uitgebreid worden en kan de swap size weer naar beneden. Lang leve LVM. ;)

[ Voor 60% gewijzigd door d3vlin op 20-12-2020 19:49 ]

Leaping Lab Rats!


Acties:
  • 0 Henk 'm!
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.
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.

Acties:
  • 0 Henk 'm!

  • d3vlin
  • Registratie: September 2000
  • Laatst online: 08:24
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.
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).

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!


Acties:
  • 0 Henk 'm!

  • Thralas
  • Registratie: December 2002
  • Laatst online: 10:41
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.
Ik heb de indruk dat de file system test suites van zfs vrij robuust zijn als ik door de issue tracker blader.

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.
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.
Dat duidt op bad sectors, ofwel tenminste ééntje die nu in ieder geval pending is. Even naar de output van smartctl -a kijken.

Acties:
  • 0 Henk 'm!
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...

Even niets...


Acties:
  • 0 Henk 'm!

  • d3vlin
  • Registratie: September 2000
  • Laatst online: 08:24
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.

[ Voor 7% gewijzigd door d3vlin op 20-12-2020 20:34 ]

Leaping Lab Rats!


Acties:
  • 0 Henk 'm!

  • Thralas
  • Registratie: December 2002
  • Laatst online: 10:41
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.
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).

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.
Wat heeft de voorkeur en wat is in het eerste geval een verstandige keuze qua verhouding ARC en evt. L2ARC?
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.

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 ]


Acties:
  • 0 Henk 'm!
@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.

[ Voor 5% gewijzigd door FireDrunk op 21-12-2020 08:10 ]

Even niets...


Acties:
  • 0 Henk 'm!

  • ocaj
  • Registratie: Juli 2011
  • Niet online
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.

Acties:
  • 0 Henk 'm!
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.
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.

Acties:
  • 0 Henk 'm!
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!
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.

Sinds de 2 dagen regel reageer ik hier niet meer


Acties:
  • 0 Henk 'm!
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.
De vraag is wat je tijdens je replace commando bij oud en nieuw hebt ingevuld. Daar zal het ongetwijfeld mee te maken hebben.

Usb dock? Welke?

En sowieso is je disks benaderen met die sdX labels niet handig. Pool exporten en importen zoals @CurlyMo zegt.

Acties:
  • 0 Henk 'm!
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.
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.
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...


Acties:
  • 0 Henk 'm!

  • d3vlin
  • Registratie: September 2000
  • Laatst online: 08:24
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.
Dank voor het uitgebreide antwoord op de vroege ochtend! Much appreciated :) Als het puur om kosten en weinig gedoe gaat is een 'reguliere' hardware/software RAID5 oplossing de makkelijke en vertrouwde route. Sterker nog, de server had al een hardware RAID controller die ik speciaal verwisseld heb voor een LBA controller om met ZFS aan de slag te kunnen.

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!


Acties:
  • 0 Henk 'm!
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.

Even niets...


Acties:
  • +1 Henk 'm!
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.
Om precies te zijn. De LSI 9201-16e. Die gaan voor ~ $ 50,- rond op ebay.

Sinds de 2 dagen regel reageer ik hier niet meer


Acties:
  • 0 Henk 'm!
CurlyMo schreef op maandag 21 december 2020 @ 10:10:
[...]

Om precies te zijn. De LSI 9201-16e. Die gaan voor ~ $ 50,- rond op ebay.
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 ;)

Even niets...


Acties:
  • 0 Henk 'm!
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 ;)
Dan koop je hem nieuw.

Sinds de 2 dagen regel reageer ik hier niet meer


Acties:
  • 0 Henk 'm!
@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.

Acties:
  • 0 Henk 'm!
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. :+

Even niets...


Acties:
  • 0 Henk 'm!

  • ocaj
  • Registratie: Juli 2011
  • Niet online
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.
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.
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.
Dat was simpelweg "zpool replace data sdc sde", waarbij sdc het sata-slot met de oude schijf en sde de nieuwe usb-schijf is.
Usb dock? Welke?
Een Logilink QP0026. Volgens mij zit daar niet heel veel intelligentie in, anders dan de usb-sata-omzetting?
En sowieso is je disks benaderen met die sdX labels niet handig. Pool exporten en importen zoals @CurlyMo zegt.
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)

Acties:
  • 0 Henk 'm!
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.
Waarschijnlijk heeft je OS de disks na de volgende reboot dus een andere letter gegeven met dit als gevolg.
Een Logilink QP0026. Volgens mij zit daar niet heel veel intelligentie in, anders dan de usb-sata-omzetting?
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.
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)
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 :P)

Acties:
  • 0 Henk 'm!
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 :P)
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.

Even niets...


Acties:
  • 0 Henk 'm!
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.
Waarom houden wij dan zo vast aan partities? Want dan boeien die letters toch niet?

Acties:
  • 0 Henk 'm!
Omdat je partities netjes GPT Labels kan geven, en disks niet (zomaar) ;)

Even niets...


Acties:
  • 0 Henk 'm!

  • Free2be
  • Registratie: Januari 2020
  • Laatst online: 24-01 14:08
WD RED smr vs cmr, een wereld van verschil!

https://www.servethehome....cmr-tested-avoid-red-smr/

Acties:
  • 0 Henk 'm!

  • Thralas
  • Registratie: December 2002
  • Laatst online: 10:41
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.
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.

# cat /sys/module/zfs/parameters/zfs_arc_meta_limit_percent 
75
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.
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).
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
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.

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.

Acties:
  • +1 Henk 'm!
@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.

Even niets...


Acties:
  • 0 Henk 'm!

  • ocaj
  • Registratie: Juli 2011
  • Niet online
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.
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?
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 :P)
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....
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.
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.
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.)

Acties:
  • 0 Henk 'm!
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?
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.
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.
Verwar je dit niet met dat ZFS vooral ruwe toegang tot je schijven wil en niet gevirtualiseerd? Partities zijn voor ZFS echt geen probleem.
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.
Ook hier weer. Direct met ID's werken. Dan heb je dat probleem niet.

Sinds de 2 dagen regel reageer ik hier niet meer


Acties:
  • 0 Henk 'm!
@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:
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 :+ Jup:

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...


Acties:
  • 0 Henk 'm!
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


Acties:
  • 0 Henk 'm!

  • ocaj
  • Registratie: Juli 2011
  • Niet online
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.
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.

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?

Acties:
  • 0 Henk 'm!
ocaj schreef op maandag 21 december 2020 @ 13:54:
[...]
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.

Sinds de 2 dagen regel reageer ik hier niet meer


Acties:
  • +1 Henk 'm!
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 :+

[ Voor 44% gewijzigd door FireDrunk op 21-12-2020 14:29 ]

Even niets...


Acties:
  • 0 Henk 'm!

  • ocaj
  • Registratie: Juli 2011
  • Niet online
@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 O-)

Bedankt in ieder geval voor de uitleg _/-\o_

Acties:
  • 0 Henk 'm!

  • meraki
  • Registratie: Augustus 2007
  • Laatst online: 15-05 23:19
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.
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:
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
Ik vermoed dat ik geen mirrored vdev's heb. Enkel een raidz1-0 en een raidz1-1 van telkens 4 schijven. Vandaar de vraag.

[ Voor 4% gewijzigd door meraki op 22-12-2020 15:02 ]


Acties:
  • 0 Henk 'm!
@meraki Ik zou het advies van @HyperBart opvolgen.

Sinds de 2 dagen regel reageer ik hier niet meer


Acties:
  • 0 Henk 'm!

  • meraki
  • Registratie: Augustus 2007
  • Laatst online: 15-05 23:19
Heb jij ook een idee van enige snelheidswinst van de ZFS-versie uit 2012 t.o.v. de ZFS-versie uit 2020?

Acties:
  • 0 Henk 'm!

  • Thralas
  • Registratie: December 2002
  • Laatst online: 10:41
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?
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).

Acties:
  • 0 Henk 'm!

  • meraki
  • Registratie: Augustus 2007
  • Laatst online: 15-05 23:19
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).
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?

Acties:
  • 0 Henk 'm!

  • Thralas
  • Registratie: December 2002
  • Laatst online: 10:41
Nee, die staan er los van zover ik kan zien.

Acties:
  • 0 Henk 'm!
HyperBart schreef op zaterdag 28 november 2020 @ 13:44:
Met black friday een paar WD 12TB op de kop kunnen tikken oOo .
Binnenkort shucken maar eerst eens kijken hoe ze werken icm ZFS en USB3.1.
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.

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 :) . Nu nog maar eens een paar keer flink scrubben, alles down brengen, nog eens een snapshot nemen, incremental verzenden _/-\o_ , configs nog wat omgooien en klaar.

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:
  1. zo min mogelijk buiten ZFS om
  2. 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)
Ik heb een /pool met daaronder meerdere file systems. Een van deze file systems op deze pool, genaamd "/pool/A" bevat 2 submappen ("/pool/A/1" en "/pool/A/2"), geen filesystems dus.

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.
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.
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.

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 ]


Acties:
  • 0 Henk 'm!

  • ocaj
  • Registratie: Juli 2011
  • Niet online
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 O-)
Nou, ik heb het geprobeerd met partition-labels, maar gaat nog steeds niet erg lekker.
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?

Acties:
  • 0 Henk 'm!
ocaj schreef op zondag 27 december 2020 @ 13:02:
[...]
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.

[ Voor 7% gewijzigd door CurlyMo op 27-12-2020 13:06 ]

Sinds de 2 dagen regel reageer ik hier niet meer


Acties:
  • 0 Henk 'm!

  • ocaj
  • Registratie: Juli 2011
  • Niet online
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.

Acties:
  • 0 Henk 'm!
Tja, die errors komen ergens vandaan... Wat zeggen 'dmesg' en smart logs?

Even niets...


Acties:
  • 0 Henk 'm!

  • ocaj
  • Registratie: Juli 2011
  • Niet online
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 O-)

[ Voor 78% gewijzigd door ocaj op 27-12-2020 15:48 ]


Acties:
  • 0 Henk 'm!

  • Thralas
  • Registratie: December 2002
  • Laatst online: 10:41
Mosterd na de maaltijd zie ik, maar ik had al wat getikt, dus toch bij deze:
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?
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.
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.
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. Illustratie

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.
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.
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.

Relevant stukje uit de man page:
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.
Jouw disk was niet failed, maar gewoon online (enkel degraded door de cksum failures).

[ Voor 9% gewijzigd door Thralas op 27-12-2020 18:57 ]


Acties:
  • 0 Henk 'm!

  • ocaj
  • Registratie: Juli 2011
  • Niet online
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:
Toch heel fijn, ik wil altijd graag dingen begrijpen!
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.
Via SATA meldt mijn (512e-schijf) volgens verwachting een sector size logical/physical van 512/4096 bytes.

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.
Zou in ieder geval een andere USB-to-SATA unit gebruiken bij voorkeur.
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 beschikbaar :) )
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).
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.

Acties:
  • 0 Henk 'm!

  • Thralas
  • Registratie: December 2002
  • Laatst online: 10:41
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.
Nee, dat gaat juist vanzelf goed. 2048*512=1048576, en 256*4096=1048576. Maar de GPT moet je daarna sowieso herschrijven.
Heb je advies voor een goede? Ik vind zo'n docking-station waar je de sata-schijf rechtop in kunt zetten eigenlijk wel handig.
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).

Acties:
  • 0 Henk 'm!

  • michelvdriel
  • Registratie: Juli 2011
  • Laatst online: 30-05 18:06
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.

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?

Acties:
  • 0 Henk 'm!

  • Giesber
  • Registratie: Juni 2005
  • Laatst online: 13-06 17:51
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?
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.

Acties:
  • 0 Henk 'm!
Probeer de pool eens te importeren via de /dev/disk/by-id/ map.

zpool import -d /dev/disk/by-id

Even niets...


Acties:
  • 0 Henk 'm!

  • michelvdriel
  • Registratie: Juli 2011
  • Laatst online: 30-05 18:06
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.
Alle SMART waardes zijn in orde (geen fails, alle drives PASSED). Ook de MEM-test geeft geen fouten terug.
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.

Acties:
  • 0 Henk 'm!

  • michelvdriel
  • Registratie: Juli 2011
  • Laatst online: 30-05 18:06
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
Die had ik niet vermeld, maar ook geprobeerd. Geeft hetzelfde resultaat terug.

Acties:
  • 0 Henk 'm!
michelvdriel schreef op dinsdag 29 december 2020 @ 10:20:
[...]


Die had ik niet vermeld, maar ook geprobeerd. Geeft hetzelfde resultaat terug.
En?
# zpool import -Fn -d /dev/disk/by-id

Sinds de 2 dagen regel reageer ik hier niet meer


Acties:
  • 0 Henk 'm!

  • michelvdriel
  • Registratie: Juli 2011
  • Laatst online: 30-05 18:06
Dat geeft het volgende terug:
# 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.

Acties:
  • 0 Henk 'm!
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 :(

Even niets...


Acties:
  • 0 Henk 'm!

  • michelvdriel
  • Registratie: Juli 2011
  • Laatst online: 30-05 18:06
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.

Acties:
  • 0 Henk 'm!
Heb je geprobeerd meerdere transacties terug te gaan met die -F[#]n optie?

Even niets...


Acties:
  • 0 Henk 'm!
FireDrunk 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 :(
Veel te moeilijk :) Die opties staan gewoon in de man pages.

Sinds de 2 dagen regel reageer ik hier niet meer


Acties:
  • 0 Henk 'm!
Moet je natuurlijk wel snappen dat het een optie is :+

Even niets...


Acties:
  • 0 Henk 'm!

  • michelvdriel
  • Registratie: Juli 2011
  • Laatst online: 30-05 18:06
FireDrunk schreef op dinsdag 29 december 2020 @ 15:45:
Heb je geprobeerd meerdere transacties terug te gaan met die -F[#]n optie?
Oudste txg opgezocht
#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

Acties:
  • 0 Henk 'm!
Welke versie van Proxmox draai je? of beter gezegd, welke versie van ZFS?
Je kan het eens met een nieuwere versie proberen.

Even niets...


Acties:
  • 0 Henk 'm!

  • michelvdriel
  • Registratie: Juli 2011
  • Laatst online: 30-05 18:06
#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.

Acties:
  • 0 Henk 'm!
Je kan deze ook eens proberen: https://www.reddit.com/r/..._pool_internal_error_and/
I 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.
ymmv

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...


Acties:
  • 0 Henk 'm!

  • michelvdriel
  • Registratie: Juli 2011
  • Laatst online: 30-05 18:06
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.

Acties:
  • 0 Henk 'm!
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...

Even niets...


Acties:
  • 0 Henk 'm!
En eens een livecd van bijv. FreeBSD proberen.

Sinds de 2 dagen regel reageer ik hier niet meer


Acties:
  • 0 Henk 'm!

  • michelvdriel
  • Registratie: Juli 2011
  • Laatst online: 30-05 18:06
@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!

Acties:
  • 0 Henk 'm!

  • ocaj
  • Registratie: Juli 2011
  • Niet online
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.
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.

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.
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).
In mijn geval was het (volgens lsusb -v) deze:
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

Acties:
  • 0 Henk 'm!

  • Thralas
  • Registratie: December 2002
  • Laatst online: 10:41
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
Ik doelde met het opzoeken van de chipset vooral op UAS support. Linux heeft een aantal blacklists die roet in het eten kunnen gooien.

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.

Acties:
  • +1 Henk 'm!

  • ocaj
  • Registratie: Juli 2011
  • Niet online
@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.
Pagina: 1 ... 201 ... 214 Laatste

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.