Friday, June 1, 2012

Kernel Panic pada FreeBSD


Disaat go live SIMRS di salah satu klien Rumah Sakit di Pekanbaru, Riau. Saya menemui kendala dengan Server yang berbasis UNIX (FreeBSD). Dimana sang OS ini mengalami 'kernel panic', akibatnya sistem tidak dapat di akses dan berimbas ke aplikasi kita yang sedang digunakan oleh user. Semua orang berkumpul dan saling menyalahkan siapa dalang yang menjadi permasalahan ini terjadi. Memang kalau saya lihat, mereka tidak dewasa dalam mengambil sikap dan ada juga yang diam seribu bahasa takut disalahkan dan tentunya mencari aman. Untuk itu pada artikel ini saya akan berbagi pengetahuan jika Anda semua mengalami 'kernel panic' dari OS kesayangan kita FreeBSD dan menggunakan database MySQL sebagai database server kita.


Saya ingatkan bahwa begitu sistem mulai go live maka harus dilakukan 
harus dilakukan backup secara regular setiap hari minimal 1 kali. Ini untuk jaga-jaga jika ada sesuatu yang tidak bisa diperkirakan di depan.
Lakukan backup menggunakan Navicat -> Dump SQL File atau yang lebih disarankan otomatis menggunakan Program MySQL Autobackup yang dijalankan di salah satu komputer client diset otomatis jalan pada tengah malam (dengan demikian workstation yang dipilih tidak boleh dimatikan, ini bisa diinstall pada komputer khusus backup atau salah satu komputer client tapi dipesankan kepada mereka agar jangan mematikan komputer waktu pulang)


SHARING PENGETAHUAN

Pada hari sabtu itu di RS Syafira terjadi kondisi dimana server otomatis reset setelah waktu tertentu dengan message 'fss_blkfree: freeing free block...' lalu 'dumping memory...' dan seterusnya. 
Ini adalah salah satu dari message 'kernel panic' maksudnya sistem melakukan instruksi yang menyebabkan komputer hang dan program kernel terpaksa melakukan shutdown komputer setelah sebelumnya melakukan dumping memory agar user dapat melakukan keperluan diagnostik (mendiagnosa hal apa yang mengakibatkan kernel panic tersebut). Sistem bisa melakukan instruksi yang menyebabkan komputer hang karena ada salah satu file sistem rusak sehingga instruksi / kode yang dibaca dan dilaksanakan oleh sistem juga salah. Pada kernel panic ada tulisan 'rebooting in 15 seconds press any key to stop', pada kernel panic yang parah proses reboot tidak bisa dihentikan.


Sekedar berbagi informasi File system FreeBSD lebih kuat dan baik dibandingkan NTFS yang lebih baik dibandingkan FAT32. Anda semua pasti pernah mengalami pada Windows XP dulu (atau Windows sebelumnya) jika komputer mati mendadak pada saat menyala berikutnya sebelum masuk windows komputer menampilkan chkdsk untuk volume FAT32 (untuk NTFS kadang-kadang muncul tapi seringnya tidak muncul karena NTFS lebih kebal terhadap error mati mendadak dan dia bisa melakukan background check pada saat windows jalan). 
Demikian pula dengan FreeBSD, setelah komputer mati mendadak pada umumnya dia bisa melakukan file system check pada saat komputer berjalan. Jika komputer reboot mendadak maka pada boot berikutnya akan muncul 'mounting volume /usr NOT CLEAN' dan seterusnya. Kemudian ada lagi pesan 'running file system check in background in 60 seconds'. Ini merupakan info untuk memberitahu kita bahwa ada volume yang corrupt dan system FreeBSD akan menjalankan fsck (sama dengan chkdsk pada DOS/Windows) dalam proses background dalam waktu 60 detik lagi.


Proses background adalah proses yang dijalankan bersamaan sewaktu komputer menjalankan proses lain. Semua program di FreeBSD dapat dijalankan secara background dengan menambahkan tanda "&" pada akhir command. Program yang hendak dijalankan background seperti contoh nya MySQL Server. Apabila di Windows setara dengan jalan sebagai service. Program yang dijalankan di background, hasil prosesnya tidak akan tampil di layar dan setelah menjalankan program di background akan kembali ke prompt / shell sehingga kita bisa mengetik perintah / menjalankan program lain.

Nah proses fsck otomatis yang dilakukan oleh sistem FreeBSD setelah komputer mati mendadak adalah fsck di background. Karena jalannya proses selagi komputer juga nyala dan menjalankan proses lain maka kemampuan memperbaiki dari fsck yang ini juga terbatas. Untuk kerusakan pada file system, fsck yang jalan di background ini tidak bisa memperbaikinya.

Untuk memperbaiki kerusakan system files maka system harus masuk ke 'single user mode' dengan cara memilih opsi No 4. pada saat FreeBSD pertama kali boot. Setelah masuk ke single user mode baru kita dapat jalankan fsck -f -y.




Pada kerusakan system files yang parah ada kemungkinan opsi ini tidak bisa dipilih. Untuk itu harus dilakukan cara lain yaitu menunggu sampai FreeBSD selesai boot lalu login sebagai root dan ketikkan perintah :
# nextboot -o "-s" -k kernel
ini adalah untuk membuat FreeBSD boot sebagai single user mode pada boot berikutnya.
Setelah itu boot ulang komputer.

Setelah boot komputer akan masuk ke single user mode dengan ditandai akan muncul pertanyaan :
enter shell (pada tahap ini tekan enter saja).
Ini maksudnya memberikan pilihan pada kita untuk memasukkan program shell yang kita inginkan (ada bourne shell, c shell dsb), masukkan perintah :
# fsck -f -y
Lalu program akan otomatis melakukan perbaikan atas kerusakan file system dan menjawab YES untuk pertanyaan yang ada sehingga kita tidak perlu memasukkan yes atau no pada saat ada pertanyaan perbaikan file sistem seperti CLEAN? atau SALVAGE?

Setelah proses selesai lakukan reboot dengan perintah:
# reboot

Setelah boot ulang ini seharusnya file system sudah clean dan program akan berjalan normal.


Begitulah beberapa hal yang perlu dilakukan disaat kita menemui permasalahan kernel panik di FreeBSD. Kita jangan tegang dan menangis dahulu :D. Lakukan dengan tenang agar kita bisa berpikir jernih. Namun saran saya sebagai peringatan ulang, lakukan backup database dan data-data penting atau yang diperlukan secara periodik dan teratur. Karena ada kemungkinan fsck tidak berhasil memperbaiki sistem secara utuh sehingga kemudian data hilang harus kita antisipasi setiap saat.

Salam,

— ITRumahSakit.com

0 komentar