BlackIceCoffeePhenomenon

溶け出す氷によって味が薄くなると併せ、味覚が苦味に慣れていくことで、加速度的に味覚への刺激が減衰する現象に関するブログです。

フェールオーバークラスターって仮想MACアドレスないのかよ。それをAct/Std構成とは言わないしコールドスタンバイなんじゃ

だいたい毎日適当に過ごしてます。
たまにゃー技術的な事を書こうというか、メモ書きを残そうと思います。

 

昨日今日とやった仕事であったもの

MSのフェールオーバークラスタ2台で構成されたサーバーと
FW越しに、それにアクセスするサーバーがありましてー
そのアクセス用サーバーからクラスタのVIPと通信してるときに
フェイルオーバーすると通信ができなくなるってやつ原因さぐってました。
通信できない時点でそれクラスタとしてどうなのか・・・というw

 

 

■フェールオーバークラスターについて

通称MSFCとかWSFCとか言われるもの。最初がMならマイクロソフトだし
WならWindowsだし、いつから名前ごっちゃになってるの・・・
昨日から2台で1クラスタ(Act/Std構成)組んで、フェイルオーバーさせた時の挙動を見てました。
01と02が居てそれぞれIPアドレスMACアドレスの末尾が10(19)と11(0D)で
フローティングIP(VIP)を末尾100に設定してます。

この時点で気づいたのが、MSFCって仮想MACアドレス持たないんですかね。

フェイルオーバーさせるとVIPはそのままに紐づけるMACアドレス
スタンバイ機のMACアドレス(0D)になります。

しかもフェイルオーバーしてもこいつらGARP投げてないっぽいんですよ。
だから対向のFWは、IPアドレス100に紐づくMACがフェイルオーバー前のMAC100(19)指してるんですよ

そりゃ通信できるわけないよね・・・・っていう。


■対向のFWはブロケードのvRouterです

こいつ中身Linuxだよねっていうか、VyOSですね。vYattaテヘ
しかもこのルータ、ProxyArpくらいしか機能がねぇ。
そのへんのスイッチみたく、arpテーブルの保持期間とか設定できないのか。

 

■結局どう解決したのか
ブロケードのvRouterがLinuxである事をいいことに
arpテーブルの保持時間を超短くすることで対応しました。

以下に手順

SSHでブrrrケードのvRouterにログイン

> $ configure
> run spawn nano /proc/sys/net/ipv4/neigh/[MSFCのあるセグメント]/base_reachable_time_ms

中身の30000を1000とかに変えます(30秒→1秒)

ついでに以下のファイルも編集して再起動後も安心

> run spawn nano /etc/sysctl.d/30-vyattaなんちゃら.conf

末尾に以下を追加

net.ipv4.neigh.[Segment].base_reachable_time_ms = 1000

 

 

この日記の訂正と謝り

しかもフェイルオーバーしてもこいつらGARP投げてないっぽいんですよ。

 嘘ですGARP投げてます! 対象となるセグメントがGARP破棄する設定になってました・・・
クラウドサービスの罠でしたごめんなさい。