ロックファイル
情報をまとめてからだと、いつまでたっても更新できないようなので、小出しに更新していきます。
久々にOpenVZで気づいたことメモ。
先日vzctrlでstop/startを繰り返したところ、いつまでたってもVEが起動できないことがありあました。
調べてみると、vzctrlコマンドはVE起動の際に/vz/lock配下にVE番号のロックファイルを作成しているようで、処理がバッティングすることを防いでいるようです。
具体的には、
といった感じで、「VE番号.lck」というファイルを作成して、その内容はvzctrlコマンドのpidのようです。
[root@vz ~]# vzctrl start 117
[root@vz ~]# ls /vz/lock/117.lck
[root@vz ~]# cat /vz/lock/117.lck
10794
検証している過程で以下のような状態になって、vzctrlコマンドが滞積してしまいました。
[root@vz ~]# pgrep -lf vzctl
10794 /usr/sbin/vzctl start 117
10798 /usr/sbin/vzctl start 117
10823 /usr/sbin/vzctl start 117[root@vz ~]# /var/log/vzctl.log
2007-01-30T20:35:25+0900 vzctl : VE 117 : VE already locked
2007-01-30T20:36:29+0900 vzctl : VE 117 : VE already locked
2007-01-30T20:36:55+0900 vzctl : VE 117 : VE already locked
2007-01-31T09:18:29+0900 vzctl : VE 117 : VE already locked
2007-01-31T09:22:23+0900 vzctl : VE 117 : VE already locked
2007-01-31T09:34:47+0900 vzctl : VE 117 : VE already locked
滞積した原因はvzctrlコマンドをstraceしっ放しにしておいたので、killできないプロセスができてしまったということでした。