21 Nisan 2008 Pazartesi

Günün İpuçu Mirror'ı bozuk disklerde metadb: $HOSTNAME: /dev/md/admin: No such file or directory hatasının çözümü

Solaris 9 sunucusu üzerinde, beklenmeyen ani elektrik kesintisinden sonra sunucu açılmazsa ve mirror'ı kaldırdıktan sonra yeniden mirror oluşturmak istendiginde aşağıdaki hata alınmış ise, çözüm aşağıdaki şekilde olacaktır.

metadb: $HOSTNAME: /dev/md/admin: No such file or directory

Bu hatanın giderilmesi ve mirrorların yeniden oluşturulması için aşağıdaki işlemler root kullanıcısı ile yapılmıştır.

1. sistem solaris 9 bootable bir DVD ve/veya CD ile single modda boot edilir.

ok> boot cdrom -s

2. sunucu üzerinde bulunan açılış disklerinden bir tanesi seçilerek disk "a" olarak mount edilir.

mount /dev/dsk/c1t0d0s0 /a

3. mount tamamlandıktan sonra disk üzerinde bulunan vfstab dosyası yeniden düzenlenir.

vi /a/etc/vfstab

device device mount FS fsck mount mount
to mount to fsck point type pass at boot options
fd - /dev/fd fd - no -
/proc - /proc proc - no -
/dev/dsk/c1t0d0s1 - - swap - no -
/dev/md/dsk/d10 /dev/md/rdsk/d10 / ufs 1 no logging
/dev/md/dsk/d4 /dev/md/rdsk/d4 /vol3 ufs 2 yes
logging
swap - /tmp tmpfs - yes -

bu dosya üzerinde md ile başlayan satırlar yerine disklerin adresi yazılır
/dev/md/dsk/d10 /dev/md/rdsk/d10 / ufs 1 no logging satırı yerine
/dev/dsk/c1t0d0s0 /dev/rdsk/c1t0d0s0 / ufs 1 no logging bu şekilde yeni düzenlenmiş hali yazılır.

4. sunucu üzerinde bulunan /etc/system dosyası yeniden düzenlenir
vi /a/etc/system
Begin MDD root info (do not edit)
forceload: misc/md_trans
forceload: misc/md_raid
forceload: misc/md_hotspares
forceload: misc/md_sp
forceload: misc/md_stripe
forceload: misc/md_mirror
forceload: drv/pcisch
forceload: drv/qlc
forceload: drv/fp
forceload: drv/ssd
rootdev:/pseudo/md@0:0,10,blk
End MDD root info (do not edit)

dosyasındaki md ile ilgili bu satırlar silinir.

5. sunucu reconfigure modda reboot edilir.

reboot — -r

6. Sunucu tek diskle açıldıktan sonra yine büyük ihtimalle her meta komutunda aşagıdaki hatayı verecektir
metadb
metadb: $HOSTNAME: /dev/md/admin: No such file or directory

7. Problem kernel dosyalarında bozukluktan olusabilmektedir. Bunun için /kernel/drv altında bulunan md.conf dosyasının düzgün olarak bulunup bulunmadıgına bakılır.

ls -al /kernel/drv/md.conf
-rw-rr 1 root sys 343 Mar 12 16:40 md.conf

bu dosya yok ise yedeklerden bu dosya kurtarılmalıdır. Yedek alınmadı ise benzer bir sunucudan da kopyalanabilir dosya bir satırdan oluşmaktadır.

8. md.conf dosyası yukarıdaki şekilde düzgün olarak oluşturulduktan sonra devfsadm komutu ile sistem yeniden taranır.

devfsadm -Cv

bu komutun sonunda düzgün bir şekilde md linklerinin oluştugu görülür.

Mirror yapısı yeniden meta komutları ile oluşturulur. Sunucu mirrorlu disk ile yeniden başlatılabilir.


Bu felaket durumu benim bayağı bir vaktimi aldı problemi çözmemde yardımcı olan arkadaşlarıma teşekkür ederim.