OpenVZでGlusterFS(Fuse)は鬼門なのか、インストール時と同様にバックアップでもハマった。
単純にvzdumpでdumpすると、fuse領域を頑張ってdumpしようとするらしくて、
必ずエラーが発生して異常終了する。
エラーを回避するには、fuseプロセスを停止させるしかないようだった。
とはいえ、バックアッププロセスの前後で停止・起動させていては、数分間もサービスが停止状態してしまう。
そこで、hook-script.plを利用することにした。
実装したい動作は、dump処理中に発生するVEサスペンド・レジュームに連動してfuseプロセスを操作する。
しかし、スクリプトで扱えるイベントが微妙でキャッチしたいレジューム時の処理は提供されていなかった。
仕方ないので、パッチを作成した。
vzdump-1.2-4.noarch.rpm
/usr/share/perl5/5.8.8/PVE/VZDump.pm
----------------------
893a894
> $self->run_hook_script ('post-restart', $task, $logfd);
918a920
> $self->run_hook_script ('post-restart', $task, $logfd);
994a997
> $self->run_hook_script ('post-restart', $task, $logfd);
997a1001
> $self->run_hook_script ('post-restart', $task, $logfd);
パッチ適用後は、適宜hook-script.plを編集する。
21c21,22
< $phase eq 'pre-restart') { --- > $phase eq 'pre-restart' ||
> $phase eq 'post-restart') {
後は、好きなように記述すればいい。
以上
2010/10/02
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿