CurlyMo schreef op dinsdag 16 oktober 2018 @ 18:49:
[...]
Hier gaat het al mis. Zo hoort dat niet. Maar dat zal je nu ook wel door hebben. Toch verbaasd het me hoeveel mensen dingen anders doen dan ZFS het bedoeld heeft. Het vervangen van een schijf hoort nog altijd te gaan via:
zpool replace tank ~~~[old] ~~~[new]
Het verhaal is eigenlijk langer dan dit, ik heb last van rotte hardware. De een na de andere schijf valt om, en ik kom er nog niet achter wat het is, een slechte batch schijven, een slechte controller, een slechte kabel, falende voeding, een rotte schijf die de controller meeneemt, iets?
Om de data te beschermen heb ik wat extra schijven aan het systeem toegevoegd om zo iedere verdachte schijf te mirrorren. Misschien niet de beste oplossing, maar wel die oplossing die ik binnen handbereik had om m'n data zo goed mogelijk te beschermen. Bij het toevoegen van de derde spare ging het fout.
Ook hier is tegenwoordig gewoon een oplossing voor. ZFS ondersteund sinds kort namelijk het verwijderen van schijven toegevoegd als top-level vdev's. Dat is zoals @
FireDrunk al aangaf het commando:
zpool remove tank ~~~[device]
Dat heb ik gedaan en het werkte niet, het lijkt er op dat ZFSonLinux nog niet zo geavanceerd is/was.
Sinds in ieder geval FreeBSD 12 moet het verwijderen van een schijf van een RAIDZ[123] array ook ondersteund worden.
Na deze post ga ik dat proberen.
Je kan het ZFS niet kwalijk nemen dat jij je pool molt door de verkeerde commando's te gebruiken. Elk ander RAID systeem zal je net zo hard mollen op deze manier.
Ach, als die 'remove' had gewerkt dan was er niks aan de hand geweest. Ik neem het ZFS uiteraard niet kwalijk dat ik iets doms heb gedaan. Ik ben wel een beetje teleurgesteld in hoe makkelijk in een situatie kwam waar geen weg terug was. Dat zal dan wel een gebrek van ZFSonLinux zijn, maar dat maakt voor mij verder weinig uit. Ik gebruik Linux dus als ZFSonLinux niet goed genoeg is, dan zal ik daar rekening mee moeten houden.
Ik kom hier niet om over ZFS te zeiken of te zeggen dan andere systemen beter zijn. Maar dit incident heeft me wel aan het denken gezet over hoe storage hoort te werken, en daar is echt nog wel wat aan te verbeteren. Ja, ik heb wat doms gedaan, maar dat neemt niet weg dat al mijn bitjes nog op die disks staan. De primaire taak van ieder storage-systeem is mijn bitjes terughalen. Dat kan beter.
Hoe heb je dit vastgesteld? Want als dat zo is, dan werkt de pool blijkbaar nog wel voor ZFS.
Kernel messages die zeggen dat schijven offline gaan en weer terugkomen.
zpool import (dat faalt) laat zien dat schijven op 'unvail' gaan of zelfs op 'corrupted'.
Dat ligt niet aan ZFS, dat is de hardware, maar zolang ZFS niet werkt kan ik de data niet verplaatsen.
Probeer eens FreeBSD 11.2. Daarin heb ik dit afgelopen week geprobeerd met een test pool met bestandjes als vdevs. Dat gaf me jammer genoeg kernel panics, maar de schijf was wel verwijderd.
Ga ik zo doen.
Geef ons verder eens wat meer informatie. Bijv. een zpool import output.
Heel eerlijk kwam ik hier vooral om anderen te waarschuwen en heb ik zelf de hoop een beetje opgegeven, daarom gaf ik niet meer info. Niettemin ben ik blij met alle hulp en belangstelling, dus, here we go.
whisky:# zpool add tank sdl
NAME STATE READ WRITE CKSUM
tank ONLINE 0 0 0
raidz2-0 ONLINE 0 0 0
spare-0 ONLINE 0 0 4
sdd ONLINE 0 0 0
sde ONLINE 0 0 0
spare-1 ONLINE 0 0 8
sdc ONLINE 0 0 0
sdj ONLINE 0 0 0
sdb ONLINE 0 0 0
sda ONLINE 0 0 3
sdf ONLINE 0 0 0
sdg ONLINE 0 0 3
sdl
logs
ata-ADATA_SSD_S396_30GB_02328114500200000262-part2 ONLINE 0 0 0
cache
ata-ADATA_SSD_S396_30GB_02328114500200000262-part3 ONLINE 0 0 0
spares
sde INUSE currently in use
sdj INUSE currently in use
Hier begon het avontuur min of meer, sdl is de schijf die ik foutief heb toegevoegd.
De andere schijven zijn op dit (weer) online en in orde.
<intermezzo>
Ik weet dat het gebruik van namen als 'sda' en 'sdl' niet ideaal is. Dat was niet mijn keuze. Op zoek naar mijn hardware-probleem heb ik de SAS-controller vervangen en toen heeft ZFS deze namen aangenomen. Die namen vervangen door stabiele namen stond nog op de todo-lijst maar ik had eerst andere prioriteiten, achteraf gezien misschien de verkeerde.
</intermezzo>
Na het lomp verwijderen van de schijf, dacht ik de boel te kunnen redden door een nieuwe partitietabel aan te maken. ZFS zag de schijf toen weer, maar wel als corrupted:
[/pre]
(irrelevante regels weggelaten)
NAME STATE READ WRITE CKSUM
tank ONLINE 0 0 0
raidz2-0 ONLINE 0 0 0
spare-0 ONLINE 0 0 4
sdd ONLINE 0 0 0
sde ONLINE 0 0 0
spare-1 ONLINE 0 0 8
sdc ONLINE 0 0 0
sdj ONLINE 0 0 0
sdb ONLINE 0 0 0
sda ONLINE 0 0 3
sdf ONLINE 0 0 0
sdg ONLINE 0 0 3
sdl FAULTED corrupted data
[/pre]
Toen begon de hardware weer op te spelen. Inmiddels kijk ik hier naar:
tank FAULTED corrupted data
raidz2-0 UNAVAIL insufficient replicas
spare-0 DEGRADED
sdd UNAVAIL
sdb ONLINE
spare-1 DEGRADED
sdc UNAVAIL
sde ONLINE
sdb FAULTED corrupted data
sda FAULTED corrupted data
sdf UNAVAIL
sdg UNAVAIL
Had ik al gezegd dat ik het redelijk dicht bij opgeven ben?

Ik verwacht dat de UNAVAIL schijven terugkomen als ik reboot en het dan weer prima doen, maar ZFS nog steeds niet start om dat 'sdl' mist.
[
Voor 9% gewijzigd door
CAPSLOCK2000 op 16-10-2018 21:40
]
This post is warranted for the full amount you paid me for it.