So entfernen Sie defekte ZIL-Festplatten aus dem ZFS-Pool


7

Ich habe einen ZFS-Pool, der zwei gespiegelte Festplatten und eine Ramdisk für Protokolle enthält. In meinem Szenario ist diese Protokolldiskette gestorben:

# zpool status -x tank
  pool: tank
 state: FAULTED
status: An intent log record could not be read.
    Waiting for adminstrator intervention to fix the faulted pool.
action: Either restore the affected device(s) and run 'zpool online',
    or ignore the intent log records by running 'zpool clear'.
   see: http://illumos.org/msg/ZFS-8000-K4
  scan: none requested
config:

    NAME                    STATE     READ WRITE CKSUM
    tank                    FAULTED      0     0     0
      mirror-0              ONLINE       0     0     0
        ada0                ONLINE       0     0     0
        ada1                ONLINE       0     0     0
    logs
      6324139563861643487   UNAVAIL      0     0     0  was /dev/md1

Jetzt möchte ich verlorene Protokolle verwerfen und das tote Gerät aus dem Pool entfernen, aber das kann ich nicht:

# zpool clear -F tank 6324139563861643487
cannot clear errors for 6324139563861643487: one or more devices is currently unavailable

Ich kann den Pool auch nicht online bringen:

# zpool remove tank 6324139563861643487 
cannot open 'tank': pool is unavailable

Wie ignoriere ich die Absichtsprotokolldatensätze?

Antworten:


3

Es gibt eine Option, mit der Pools mit einem defekten Gerät importiert werden können. Auf diese Weise habe ich den Pool wiederhergestellt:

# zpool export tank
# zpool import -m tank
# zpool status tank
  pool: tank
 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://illumos.org/msg/ZFS-8000-2Q
  scan: none requested
config:

NAME                    STATE     READ WRITE CKSUM
tank                    DEGRADED     0     0     0
 mirror-0              ONLINE       0     0     0
   gpt/disk1           ONLINE       0     0     0
   gpt/disk2           ONLINE       0     0     0
logs
 6324139563861643487   UNAVAIL      0     0     0  was /dev/md1
cache
 gpt/disk3             ONLINE       0     0     0

errors: No known data errors
# zpool clear tank
# zpool remove tank 6324139563861643487
# zpool status tank
  pool: tank
 state: ONLINE
  scan: none requested
config:

NAME                    STATE     READ WRITE CKSUM
tank                    ONLINE       0     0     0
 mirror-0              ONLINE       0     0     0
   gpt/disk1           ONLINE       0     0     0
   gpt/disk2           ONLINE       0     0     0
cache
 gpt/disk3             ONLINE       0     0     0

errors: No known data errors

-1

Ich denke, Sie sollten ein fehlerhaftes Gerät ersetzen, bevor Sie den Pool online schalten können.

Anschließend können Sie die Protokolldiskette verwerfen.


Proof Link? ....
Anthony Ananich
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.