Betriebssysteme > Solaris/x86 und OpenSolaris

OpenSolaris 2008.11 Raidz - Problem beim Platten ersetzen

(1/2) > >>

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