kernel –          おやじdemo_CentOSを使う
7月 082012
 

このところ鯖が不安定でちょっとした負荷がかかるとパニック状態になり落ちやすくなってきていました。現在はこの原因と思われたソフトの起動やcronなどの自動更新など止めていますが、それでもcron.dailyで動作している他の更新作業でパニックになったりしています。
前ほど頻繁ではありませんが、落ちてそのままになっている状態なのでこれが最悪で、パニックになったら自動的にrebootするようにしていても固まったままです。

現時点では追加したUMAXの2GBメモリ×2の相性問題もありますが、これは検証するにしても時間がかかるので後回しにします。

とりあえずはKernelの起動を変更します。
起動を変更といっても旧verのkernelで起動させるということです。

現在の状況は・・・・
# rpm -q kernel (rpmでインストールされているkernelをすべて表示する)
kernel-2.6.32-220.13.1.el6.i686
kernel-2.6.32-220.el6.i686
kernel-2.6.32-220.17.1.el6.i686
kernel-2.6.32-220.23.1.el6.i686 *

*印の付いている最新kernelで起動しています。
これを2世代前の13.1に戻すというか、rebootしても13.1でしか起動させないようにします。

# vi /etc/grub.conf
以下はgrub.conf本文
———————————————————————————
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/mapper/VolGroup-lv_root
# initrd /initrd-[generic-]version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
#title CentOS (2.6.32-220.23.1.el6.i686)
# root (hd0,0)
# kernel /vmlinuz-2.6.32-220.23.1.el6.i686 ro root=/dev/mapper/VolGroup-lv_root rd_NO_LUKS rd_NO_MD rd_LVM_LV=VolGroup/lv_swap quiet rhgb crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=jp106 rd_LVM_LV=VolGroup/lv_root LANG=ja_JP.UTF-8 rd_NO_DM
# initrd /initramfs-2.6.32-220.23.1.el6.i686.img

title Memtest86+ (4.10)
root (hd0,0)
kernel –type=netbsd /elf-memtest86+-4.10
#title CentOS (2.6.32-220.17.1.el6.i686)
# root (hd0,0)
# kernel /vmlinuz-2.6.32-220.17.1.el6.i686 ro root=/dev/mapper/VolGroup-lv_root rd_NO_LUKS rd_NO_MD rd_LVM_LV=VolGroup/lv_swap quiet rhgb crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=jp106 rd_LVM_LV=VolGroup/lv_root LANG=ja_JP.UTF-8 rd_NO_DM
# initrd /initramfs-2.6.32-220.17.1.el6.i686.img

title CentOS (2.6.32-220.13.1.el6.i686)
root (hd0,0)
kernel /vmlinuz-2.6.32-220.13.1.el6.i686 ro root=/dev/mapper/VolGroup-lv_root rd_NO_LUKS rd_NO_MD rd_LVM_LV=VolGroup/lv_swap quiet rhgb crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=jp106 rd_LVM_LV=VolGroup/lv_root LANG=ja_JP.UTF-8 rd_NO_DM
initrd /initramfs-2.6.32-220.13.1.el6.i686.img
#title CentOS (2.6.32-220.el6.i686)
# root (hd0,0)
# kernel /vmlinuz-2.6.32-220.el6.i686 ro root=/dev/mapper/VolGroup-lv_root rd_NO_LUKS rd_NO_MD rd_LVM_LV=VolGroup/lv_swap quiet rhgb crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=jp106 rd_LVM_LV=VolGroup/lv_root LANG=ja_JP.UTF-8 rd_NO_DM
# initrd /initramfs-2.6.32-220.el6.i686.img

———————————————————————————
title CentOSという行の黒い太字にした部分を#を先頭に付けてコメントアウトしました。コメントアウトしていないのが起動させるkernelである13.1だけ。(memtestもありますがkernelではありません。メモリテストのソフト起動用です)

これで再起動をしても13.1でしか起動しません。
最後にreboot後に確認をします。

# /bin/uname -r (現在何のkernelで起動しているか調べるコマンド)
2.6.32-220.13.1.el6.i686

ちゃんと13.1で起動しています。

これでまた様子を見ることにします。
13.1か17.1か悩みましたが古い方を選択しました。
やはり鯖の場合にはkernelを最新にするよりも安定度を優先させなくてはなりません。

また、kernelがyumによって自動的に追加させないようにyum.confも変更しておきます。
# vi /etc/yum.conf
exclude=kernel* (この行をどこかに追加する。kernelをアップデートの対象から外す)

以上でkernelも手動でupdateしない限りは13.1で使用できる環境となりました。

 

6月 252012
 

CentOSですが、kernelがアップデートされました。
細かい日にちは覚えていませんが、つい一週間前くらいの感じだったと思います。

このカーネルのアップデートがされてから、またカーネルパニックが起きています。panic前のlogを確認するとCPU1がどうのこうのと書かれていますがハード面で何か問題あるかも知れません。メモリも以前信頼できていませんし。

ファイルシステムも怪しいので起動時に自動的にfsckを実行するようにしておきました。
# sudo touch /forcefsck

このところ 調子が悪い⇒修復⇒少し元に戻る⇒パニック⇒原因究明 この悪いパターンで泣いております。

まぁ勝手にカーネルがアップデートされないようにしておかなかった私も悪い。

このところ休日も出勤があったりとゆっくり考え修復する余裕もないので静観するとします。

ただ、鯖が勝手にパニ食ってもいけないのでパニックになったら5秒後に再起動設定をしておきます。(以前はSysRqコマンド設定)

最悪なのが再起動後にもパニ食っている時です。起動途中、または起動最後に固まってしまうパターンです。本気になってやれば2週間で再インストールからバックアップ復元できると思いますが、今後のために試験運用中なのでそのままにして課題解決できるよう模索していきたいと考えております。