KLabさんの勉強会に参加してきた

内容としては、DSAS開発者の部屋で書かれていた事の集大成。

コンセプト

「夜中に故障がおこっても緊急対応を要しないシステム」

徹底した冗長構成

  • NIC Linuxのbonding機能
  • L2SW 802.1w RSTP
  • Webサーバ LVS+keeplived
  • LVS keeplivedによるVRRP

その他の工夫など

  • 均質なハードウェア
  • ホストの個性を決定する単一の設定ファイル
  • LVSのネットワーク的な場所などはVLANを使ってL2的に分離。LVSの入っているノードをL3境界にする。

質疑

taggedとuntaggedを混ぜて使っているのは何故?

通常のノードとLVSの入ったノードでオペレーションの感覚を一致させるため。bond0が通常のセグメントへの足で、bond0.2が外と繋っている足というような区別。普段はbond0は常に内側を向いていると信じられる*1

LVSとDR(Direct Return)

戻りトラフィックをNATさせないだけで負荷は大幅に下がる。今の構成ではDRのときもL3でのルーティングをすることになるが、そのことによる負荷は問題にならない程度。

今後の課題とか

永続的なデータストアをやっているノードが若干ネック。lustreとかiSCSIを研究しているのはそこを改善していくため。

障害検出

nagiosとかはあんまり使っていなくて、ほとんどが自作のperlスクリプトによる監視機構

*1:こういう細い部分は事故防止の最後の砦になることがあると思うので、結構重要だと思う