Thursday, January 29, 2009

RAID5 Failure

Yak.. itu adalah problem mengerikan yang terjadi kemarin. Sebuah server yang kuinstall Centos 4.7 dan berharddisk empat buah, dipasangi RAID5, dan sudah beberapa bulan melayani kami sebagai Server Linux SAP satu-satunya yang diinstall from scratch. Di situ cuma diinstall aplikasi SAP GRC (Governance, Risk & Compliance) dan SAP Netweaver (+Oracle) sebagai pondasinya.
Kemarin aku mulai menghandle masalah ini, karena penasaran (RAID5 kok bisa fail).
Konsep RAID5 yang kupasang adalah begini: dari 4 buah hard disk, data disebar ke 4 hard disk dengan informasi pelengkap (sejenis CRC mungkin), sehingga sistem tetap berfungsi meskipun salah satu hard disk fail. Ternyata, Software RAID5 di Linux memiliki beberapa karakter:
- ketika sedang beroperasi, dan satu dari 4 hard disk mati, sistem berubah mode operasional, dari normal mode ke degraded mode. Transisi ini terjadi otomatis, dan mungkin kita bisa lihat di log file.
- tetapi, ketika proses booting, salah satu dari 4 hard disk tidak bisa digunakan, sistem menolak melanjutkan booting. Mungkin idenya adalah supaya system admin mengganti dulu hard disk yang rusak sebelum melanjutkan operasional server.
Nah sebenarnya tidak ada satupun hard disk yang mati, tetapi sistem menolak melanjutkan booting. Aku masukkan CD Centos, masuk ke rescue mode.. Lihat log kernel pakai dmesg, ternyata ada sesuatu yang tidak konsisten dengan salah satu hard disknya. Browsing di internet, orang lain menyarankan untuk memaksa RAID hidup hanya dengan 3 hard disk yang ada dan kemudian meng-add lagi hard disk ke-4 (sda2) ke dalam sistem RAID yg ada. (OK, sebetulnya komponen Software RADI bukanlah hard disk tetapi partisi, software raid yg ini dibangun dari 4 partisi di 4 hard disk berbeda).
Langkah-langkah mdadm --assemble --run /dev/md2 /dev/sda2 /dev/sdb1 /dev/sdc1 /dev/sdd1 telah kujalankan, tetapi tetap saja si RAID tidak mau hidup. Gejalanya ialah isi /proc/mdstat yang menyatakan si-md2 ini inactive.
Akhirnya sistem mau berfungsi setelah ditambah parameter --force. Dan ternyata, bukan hanya si sda2 yang tidak konsisten, sdb1 juga, dan --force tadi memaksa sistem mengganggap dia baik-baik saja. Setelah itu, restart, dan biarkan dia rekonstruksi..
Sebetulnya, ini semua gara-gara kernel panic yang muncul sesekali. Dan setelah kernel panic, mungkin ada data yang belum terkirim ke harddisk-harddisk itu. Sebenernya sih ga terlalu parah kan, cuma beberapa sektor tidak sync, apalagi aku pakai ext3 yang secara default pakai journalling, tetapi metoda failsafe si RAID ini yang mencegah sistem berfungsi sampai semuanya beres (atau dianggap beres :) )

No comments: