Betriebssysteme > Solaris/x86 und OpenSolaris
OpenSolaris 2008.11 Raidz - Problem beim Platten ersetzen
denyonator:
Hallo,
folgendes Szenario:
Solaris 2008.11 als Nas
4 x HDD
- 1 x 80 GB Rootplatte (worauf Solaris auch installiert ist)
- 3 x 320 GB Datenplatten (Im Raidz bzw. Raid 5 Verbund)
Bin totaler Solaris Einsteiger und gerade noch am testen der Funktionen sag ich mal.
Ich wollte einen Ausfall einer HDD aus dem Datenpool simulieren. Gesagt - getan.
Reboot, Platte ausgeschaltet, hochgefahren und siehe da, Solaris erkennt dies und stuft den Array auf Degraded.
(Screen1)
http://img513.imageshack.us/my.php?image=degraded.jpg
Soweit so gut, noch ein reboot, Ersatz-HDD eingehangen und wieder hochgefahren...
"zpool status" und dann schon das blanke Entsetzen...
Unavail ... insufficient replicas ... corrupted data ...
(Screen2)
http://img264.imageshack.us/my.php?image=fehlert.jpg
Nun denn, wollte trotzdem versuchen die HDD zu ersetzen..
laut http://docs.sun.com/app/docs/doc/820-2313/gazgd?a=view reicht ja ein
zpool replace videopool c5d1
allerdings kam dabei folgendes raus:
cannot open 'videopool': pool is unavailable
Hab schon einiges durchforstet, aber warum mir dieses Vorhaben nicht möglich ist, ist mir ein Rätsel.
Wenn ich die alte Platte wieder reintue, reboote usw. wird mir alles wie beim ersten Screenshot angezigt,
also alles in Butter keine Fehler etc.
Nur wie kann ich denn nun eine Platte ersetzen ohne wilde Fehlermeldungen zu bekommen?!
Ein ratloser Solaris Einsteiger bittet um Hilfe. :)
Mfg
linus83:
Hallo ich habe versucht es nachzuvollziehen
--- Code: ---root@trantor ~ $ zpool create test raidz /tmp/platte1 /tmp/platte2 /tmp/platte3 // Pool erzeugen
einige Dateien in den Pool kopieren
root@trantor ~ $ rm /tmp/platte3 // Ausfall einer Platte simulieren
root@trantor ~ $ zpool status
pool: rpool
state: ONLINE
scrub: none requested
config:
NAME STATE READ WRITE CKSUM
rpool ONLINE 0 0 0
c3d0s0 ONLINE 0 0 0
errors: No known data errors
pool: test
state: DEGRADED
status: One or more devices could not be opened. Sufficient replicas exist for
the pool to continue functioning in a degraded state.
action: Attach the missing device and online it using 'zpool online'.
see: http://www.sun.com/msg/ZFS-8000-2Q
scrub: scrub completed after 0h0m with 0 errors on Mon Mar 23 18:12:08 2009
config:
NAME STATE READ WRITE CKSUM
test DEGRADED 0 0 0
raidz1 DEGRADED 0 0 0
/tmp/platte1 ONLINE 0 0 0
/tmp/platte2 ONLINE 0 0 0
/tmp/platte3 UNAVAIL 0 110 0 cannot open // zfs bemerkt die fehlende Platte
errors: No known data errors
root@trantor ~ $ mkfile 100m /tmp/platte3 // neue Platte einhängen
root@trantor ~ $ zpool scrub test // nachsehen was zfs mit der Platte macht
root@trantor ~ $ zpool status
pool: rpool
state: ONLINE
scrub: none requested
config:
NAME STATE READ WRITE CKSUM
rpool ONLINE 0 0 0
c3d0s0 ONLINE 0 0 0
errors: No known data errors
pool: test
state: ONLINE
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://www.sun.com/msg/ZFS-8000-4J
scrub: scrub completed after 0h0m with 0 errors on Mon Mar 23 18:06:14 2009
config:
NAME STATE READ WRITE CKSUM
test ONLINE 0 0 0
raidz1 ONLINE 0 0 0
/tmp/platte1 ONLINE 0 0 0
/tmp/platte2 ONLINE 0 0 0
/tmp/platte3 UNAVAIL 0 586 0 corrupted data // Fehler von Platte 3
errors: No known data errors
root@trantor ~ $ zpool replace /tmp/platte3 /tmp/platte3 // Platte3 mit sich selber erstetzen
cannot open '/tmp/platte3': invalid character '/' in pool name
root@trantor ~ $ zpool replace test /tmp/platte3 /tmp/platte3
root@trantor ~ $ zpool status
pool: rpool
state: ONLINE
scrub: none requested
config:
NAME STATE READ WRITE CKSUM
rpool ONLINE 0 0 0
c3d0s0 ONLINE 0 0 0
errors: No known data errors
pool: test
state: ONLINE
scrub: resilver completed after 0h0m with 0 errors on Mon Mar 23 18:07:06 2009
config:
NAME STATE READ WRITE CKSUM
test ONLINE 0 0 0
raidz1 ONLINE 0 0 0
/tmp/platte1 ONLINE 0 0 0
/tmp/platte2 ONLINE 0 0 0
/tmp/platte3 ONLINE 0 0 0 424K resilvered // alles wieder heile, oder zfs macht es ganz
errors: No known data errors
root@trantor ~ $
--- Ende Code ---
Ich habe alle online gemacht und so sollte es auch gehen wenn man neu bootet. Ich bin nur zu faul meinen Rechner zu booten und das ganze mit usb-Sticks zu machen :P
Es könnte sein, das irgendwelche Checksummen/Zeitstempel auf der Platte nicht stimmen, die Du heraus genommen hast. Du steckst ja keine neue Platte rein, sondern den Pool zu einen anderen Zeitpunkt. Für zfs ist es dann sicher unentscheidbar welche
metadaten stimmen, die auf Deine "neuen" Platte oder die Metadaten auf den anderen Platten. Für zfs ist das die selbe Platte. Du musst die Platte einfach partionieren/formatieren/mit dd beschreiben damit Du eine "neue" Platte hast, die keine Metadaten über den zpool enthält.
Gruß
Hexxer:
Hi,
ich kann leider von hier aus nichts prüfen. Habe allerdings die Erfahrung gemacht das ZFS in seltenen Fällen echt mies auf Changes am Pool reagiert. Das ging bis dahin das man alles platt machen musste - obwohl eigentlich nichts besonders passierte.
Ich lege Dir mal das wiki ans Herz, vielleicht findest Du dort das richtige:
http://www.solarisinternals.com/wiki/index.php/ZFS_Best_Practices_Guide
linus83:
Hi,
ich habe noch einmal versucht alles so zu machen, wie ich dachte, dass ich den Fehler provozieren kann. ABer ich habe es nicht geschafft. Ich habe Build 109 un mein Pool ist in der Verion 14.
--- Code: ---root@trantor ~ $ mkfile 100m /tmp/platte{1,2,3}
root@trantor ~ $ zpool create test raidz /tmp/platte{1,2,3}
root@trantor ~ $ cp -r DTraceScripts /test
root@trantor ~ $ zpool list
NAME SIZE USED AVAIL CAP HEALTH ALTROOT
rpool 62G 30,4G 31,6G 48% ONLINE -
test 286M 8,21M 278M 2% ONLINE -
root@trantor ~ $ zpool status test
pool: test
state: ONLINE
scrub: none requested
config:
NAME STATE READ WRITE CKSUM
test ONLINE 0 0 0
raidz1 ONLINE 0 0 0
/tmp/platte1 ONLINE 0 0 0
/tmp/platte2 ONLINE 0 0 0
/tmp/platte3 ONLINE 0 0 0
errors: No known data errors
root@trantor ~ $ mv /tmp/platte1{,.org}
root@trantor ~ $ zpool scrub test
root@trantor ~ $ cp DTraceScripts.zip /test
root@trantor ~ $ zpool status test
pool: test
state: DEGRADED
status: One or more devices could not be opened. Sufficient replicas exist for
the pool to continue functioning in a degraded state.
action: Attach the missing device and online it using 'zpool online'.
see: http://www.sun.com/msg/ZFS-8000-2Q
scrub: scrub completed after 0h0m with 0 errors on Tue Mar 24 07:35:49 2009
config:
NAME STATE READ WRITE CKSUM
test DEGRADED 0 0 0
raidz1 DEGRADED 0 0 0
/tmp/platte1 UNAVAIL 0 173 0 cannot open
/tmp/platte2 ONLINE 0 0 0
/tmp/platte3 ONLINE 0 0 0
errors: No known data errors
root@trantor ~ $ mv /tmp/platte1{.org,}
root@trantor ~ $ zpool scrub test
root@trantor ~ $ zpool status test
pool: test
state: ONLINE
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://www.sun.com/msg/ZFS-8000-9P
scrub: resilver completed after 0h0m with 0 errors on Tue Mar 24 07:37:39 2009
config:
NAME STATE READ WRITE CKSUM
test ONLINE 0 0 0
raidz1 ONLINE 0 0 0
/tmp/platte1 ONLINE 0 268 0 755K resilvered
/tmp/platte2 ONLINE 0 0 0
/tmp/platte3 ONLINE 0 0 0
errors: No known data errors
--- Ende Code ---
Die Erfahrung von Hexxer habe ich noch nicht gemacht. Bei mir lief immer alles glatt, auch auf echten Platten. Ich bin echt etwas ratlos. Es wär schön, wenn Du es hinbekommst, dass Du schreibst mit welcher Methode es geklappt hat. Das würde mich schon interessieren.
Hexxer:
Hi,
ich kann das auch nicht "nachstellen" um einen Bug oder so zu finden. Hab nur ne V880 die ich zweimal bei Tests wasmit dem Rootpool so passiert komplett geschrottet habe obwohl nichts anderes gemacht wurde als sonst. Sprich ein bishcne installieren, rootpool, Platte ziehen, Platte stecken. Was weiß ich, von 10x ging das zweimal komplett daneben und war nicht mehr behebbar, da es nur Tests waren wurde kein Case aufgemacht. Es hat ja meistens auf funktioniert. Weiß auch nicht.
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln