커널 패닉 이후 자동으로 리붓시키기. edit

만약 원격지에 있는 서버가 갑자기 응답하지 않는다면 어떻게 해야 할까. 원격으로 컴퓨터를 조종할 수 있는 IP KVM이나 네트워크 콘솔따위가 없다면, 원격지에 있는 멍청한 서버는 기본값으로 사람이 물리적으로 리셋해줄때까지 기다린다.

설정값이 아래와 같이 설정되어 있다면 해당 시스템은 패닉 후 사람의 손길만을 기다린채 전기만 계속 우걱우걱 하신다.

[root@linux23 ~]# cat /proc/sys/kernel/panic
0
[root@linux23 ~]# sysctl -a | grep kernel.panic
kernel.panic = 0
[root@linux23 ~]# 

최근에 내 서버에도 일어난 일이었고, 인터넷으로 온갖 방법을 찾아봤지만 예방법밖에 없다. 결국 커널 패닉 이후 동작을 미리 설정하지 않은 상태에서 일어난 커널 패닉은 원격지에서 물리적인 방법으로 리셋시켜주는 방법밖에 없다.

두가지 커널 옵션이 있다.

  • kernel.panic = n : 커널 패닉이 발생했을때 n초 후에 시스템을 리부팅 한다.(0==off)
  • kernel.panic_on_oops = 0/1 : 1이면 oops를 커널 패닉으로 간주한다.

바로 적용하려면 아래와 같이 한다.

[root@linux23 ~]# echo "10" > /proc/sys/kernel/panic
0
[root@linux23 ~]# cat /proc/sys/kernel/panic
kernel.panic = 10
[root@linux23 ~]# 

영구적으로 적용하고자 /etc/sysctl.conf를 수정한다.

/etc/sysctl.conf:
kernel.panic = 10
kernel.panic_on_oops = 1

sysrq 명령을 원격으로 할 수 있게 해주는 ipt_sysrq

http://marek.terminus.sk/prog/ipt_sysrq.shtml

Sometimes a remote server hangs and only responds to icmp echo request (ping). Every administrator of such machine is very unhappy because (s)he must go there and press the reset button. It takes a long time and it's inconvenient. So here is a solution. Use the Network Magic SysRq and you will be able to do more than just pressing a reset button. You can remotely sync disks, remount them read-only, then do a reboot. And everything comfortably and only in a few seconds. ;-)

YES!!!

0 comments:

Post a Comment

Newer -> <- Older