How to repair ZIL log


How to repair ZIL log

Arrggghhh Gara-gara listrik lagi, akibatnya terdapat error di Drive ZIL log dari server storage SAN Nexenta.

#zpool status
pool: foofoo
<strong>state: FAULTED</strong>
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://www.sun.com/msg/ZFS-8000-K4
scan: none requested
config:

NAME                       STATE     READ WRITE CKSUM
<strong>foofoo                     FAULTED      0     0     0  bad intent log</strong>
raidz2-0                 ONLINE       0     0     0
c0t50014EE0029FD10Ed0  ONLINE       0     0     0
c0t50014EE002AA9DD4d0  ONLINE       0     0     0
c0t50014EE057FFD25Dd0  ONLINE       0     0     0
c0t50014EE0AD516B68d0  ONLINE       0     0     0
logs
<strong>c11t0d0                  UNAVAIL      0     0     0  cannot open</strong>

pool: syspool
state: ONLINE
scan: scrub repaired 0 in 0h1m with 0 errors on Sun Feb  5 03:01:50 2012
config:

NAME                         STATE     READ WRITE CKSUM
syspool                      ONLINE       0     0     0
mirror-0                   ONLINE       0     0     0
c1t5000C5000A60A125d0s0  ONLINE       0     0     0
c2t5000C5000A60A54Dd0s0  ONLINE       0     0     0

errors: No known data errors

Hadeuh…ribet dah kalo kayak gini, yang jelas dengan kondisi seperti ini SAN nexenta gak bisa di pakai karena error di drive ZIL log, volume yang ada menjadi kacau. Hal yang bisa kita lakukan adalah dengan melakukan “resilvering” disk, ini seperti di sistem operasi DOS/Windows adalah “chkdsk” atau jika di linux “fsck”.

Yang perlu kita catat dalam hal ini adalah “nama pool” yang ada dan “nama atau ID device” yang mengalami error.

masuk ke low level shell dari nexenta

foo-san$option expert_mode =1
foo-san$!bash
foo-san/volumes#

Lalu lakukan resilvering dengan perintah “zpool clear <nama pool> <nama atau ID device>”

foo-san/volumes#zpool clear foofoo c11t0d0

maka proses resilvering akan berlangsung beberapa waktu tergantung size data yang sudah ada. Untuk melihat sampai sejauh mana proses resilvering berlangsung bisa di cek dengan perintah “zpool status | less”

foo-san/volumes#zpool status | less

setelah proses resilvering selesai, reboot nexenta sebelum di gunakan.