ルータの冗長化っすか
はてなが8/26の早朝にメンテっすか。その日は早出なので、起きるころだから微妙だな。
以下駄文御免。
ルータの冗長化は大切だけど、フェイルオーバーってちゃんと働くか微妙だからちょっと心配←偉そうだけど、自分はハマってばかりだったから。。。。
- isle.jpのi-clustaでも以前一回やらかしたように記憶している(←間違ってたらごめんなさい)けど(あれはルータじゃなかったかもだけど)、要は障害の検知がどこまでできるかってことなのだった。2台あるルータのうち、運用中のルータそのものがコケている場合はわかるだろうけれど、死活監視を行っていない経路(ケーブルとか)に問題が発生したりすると、単純に「俺ヒマだなー」ってなもんで、フェイルオーバーが起きなかったりする。
- 異常な高負荷のせいでダウンした場合、フェイルオーバーした先もすぐダウンして、最初にダウンしたやつが復活して、またフェイルオーバーが起きて、、、その間、フェイルオーバーの実行のプロセスが長かったりすると、単純に、「性能の限界に近づいたらルータ再起動かけまり」の場合よりもトータルのスループットが落ちる可能性があったり、、、(ロードバランサではよくあること)
- 死活監視の方法によっては、監視対象機器はまだ死んで(meltdown)はいないのに、ちょびっと取りこぼしがあっただけでフェイルオーバーが起きてしまうこともある。load balancerでportの接続性をチェックしてたりする場合、サーバが最高に働いているときに、load balancerから接続を切られてしまうことになる。だから、死活監視の基準は緩めることになる、、すると、本当にフェイルオーバーするまでのタイムラグが長くなって、、、、
以下、あくまで自戒の意味でtodoリストをメモしておく
- フェイルオーバーで対処できなくなるような超絶大量高速peaky不規則なアクセスでもって、期待通りの故障モードが発生するかどうかを確認する
- フェイルオーバーしまくる状況でのスループットを把握しておく
- 冗長化を切ることが(緊急時に)簡単にできるようにしておく
- 死活監視を無視することが(緊急時に)簡単にできるようにしておく
- 障害が発生した際のトラフィックの「特徴」を再現できるようにデータを残しておく←すべてをログするのは無駄だし不可能。突発的かつ1回限りの事象なら、解析にはあらゆるデータが必要だけど、そういうのは「しょうがないね」とユーザの方々は大抵生暖かく見守ってくれる。何度も起きる障害について、経験を蓄積して、効率よくデータを取るなどして対処できないときに、馬鹿にされる。