humangas's blog

自分用のメモなので雑です。

2014-01-16_RedHatセミナー:RedHat Enterprise Linux だけで構築する高可用性クラスタシステムに行って来た。

HAクラスタの仕組みとRedHatのHAアドオンの解説だった。 HAクラスタて? てなる場合は、ざーと流して説明してあるのでポイントを掴む上では良いかもしれない。


三行まとめ

  • RHELにHAアドオン(High Availability アドオン)を入れたら出来るよ。
  • 3台構成以上のHAクラスタなら、共有ディスク要らずで出来ますよ(※ただし、2台構成の場合はいる)。
  • クラスタ基盤上にリソース基盤構築することで実現できるよ。ハード・ネットワーク要件あるので気を付けて。

基本情報

  • 2014/01/16 15:00-17:00(※実際は1時間10分ぐらい:残りQA)
  • 講師:ソリューションアーキテクト 森若 和雄氏
  • 参加者:約30名
  • 資料:SlideShareにあった。


ポイント

  • 高可用性クラスタを構築するために必要なアドオン製品の概要
  • 構築時の注意点(ハードウェア・ネットワーク要件)
  • 技術用語とその役割など
  • HAクラスタ導入プロジェクト導入の一般的な流れ
  • RedHat社のプロジェクト支援サービス
  • RedHat社の設計支援サービスが必要な理由と背景

RHELクラスタリング技術詳細

高可用性システムとは?(HA=High Availability)

  • 一言で言うと:
    • サービス停止の頻度が低い:ハードウェアの二重化、LBによるサーバ並列化
    • サービス停止時間が短い:HAクラスタの構築、クラスタファイルシステム・クラスタボリュームマネージャ、レプリケーション

クラスタ基盤

  • クラスタノード間の通信経路を確保
  • 障害ノードの検知および隔離
  • クォーラム管理(多数決)によるクラスタの有効性判断
  • 最新構成情報の共有

リソース管理

  • リソース管理=フェールオーバークラスタ
  • クラスタ基盤の上にリソース管理がある

High-Availability アドオン概要

  • =RHELクラスタリング
  • corosync(OpenAIS)=クラスタ基盤
  • rgmanager=リソース管理
  • Conga=GUI(ブラウザ)でのインスコ・運用管理も出来る

RHELのHAアドオン紹介

HAアドオンの特徴

  • ☆ 共有ディスクが無くても構築可能(普通いるけど)← Point
  • → クラスタを構成する上では共有ディスク不要
  • 標準で多くのリソースに対応
    • IP、LVM、NFS、FileSystem、Apache、Oracle、SAP など
  • 非対応でもScriptリソースがあるのでカスタム出来る
  • クラスタノードは2〜16
    • 3台以上で組むのがオススメ(2台だとクォーラムの過半数判定が普通に出来ないので工夫いるため)
    • → この場合、クォーラムディスク(共有ディスク)を使って共有ディスクに1票を持たせる

ハードウェア要件

  • HCLに記載があるサーバ(RHELのOSと当然同じ要件ある)
  • フェンス(柵=遮断)操作をするためのフェンスデバイスが必須
    • フェンス=クラスタの健全性を守るための柵
    • リモートマネジメントカード(iLO,DRACとか各社で違うけど)を利用する場合が多い

ネットワーク要件

  • マルチキャスト通信が可能なこと
  • → スイッチ側で意図的にフィルタしてないこと
  • クロスケーブル直結=NG
  • 複数セグメント利用=NG
  • bonding(Active-Passive)による通信二重化を強く推奨

HAクラスタで一番大事なこと

  • データ等の不整合を起こさないこと

クォーラム=定足数(多数決)

  • どこまで参加者(クラスタノード)が入れば、正常かを管理・判断する
  • 1ノード1票が原則。過半数で有効とする(Quorate)

クォーラムディスク

  • 全ノードが定期的にクォーラムディスク(共有)に定期的にWrite
  • 一番IDの小さなノードがクォーラムディスクオーナーとなる
  • 一定期間Writeしてないノードは異常と見做す
  • → ノード数2台の時はこの方式でやる。
  • → ネットワークだけで組むクラスタよりはやっぱ遅い

フェンスとフェンスデバイス

  • フェンス=何するか分からんノードをシステムから確実に切り離すこと(ソフトウェア的にフラグ立てるとかいうレベルではなくて、電源切るとかほぼ物理的にと思ったほうがいい)、フェンスデバイスで行う
  • 電源切る(iLO,DRACとかリモートで)
  • FCスイッチのポート無効化
  • SCSKアクセスの無効化
  • → これらを組合せてもOK
  • フェンスが完了するまで、クラスタは身動きしない
  • 仮想マシン用のフェンスエージェント(Guest Cluster)もある

2-nodeモードのコツ(苦肉の策)

  • 定足数を1とする(※本来なら過半数は2÷2+1→2になる)
  • スプリットブレイン問題はフェンスで予防
  • スプリットブレイン=脳みそがパカっと別々になってそれぞれが考えている状態の感じになること
  • 早い者勝ち=先に検知したほうが相手をフェンスする
  • 注意:同タイミングだと両方落ちるということもある=フェンス・デス
  • フェンス・ループ=ずっと復旧してこない(NWが未だ復旧せず再起動の掛け合いみたいな→ だからbondingはやっておいたほうがいい)

フェールオーバードメインとリソースグループ

  • フェールオーバー単位:リソースグループ
  • クラスタノードの一部を「フェールオーバードメイン」として定義
  • → フェールオーバードメインでノードを括って、そのドメインのどっちで動くかを決める定義
  • リソースグループはいくつでも作れる
  • デフォルトはフェイルバックしない

Conga=GUI(Webブラウザ)でクラスタ管理出来る

  • 管理エージェント=ricci:クラスタノード側で動作・RHEL6以降は導入必須
  • 管理サーバ=luci:管理ノード上で動作(場所はどこでもOK)

設定ノウハウ情報

  • ドキュメント日本語化されてる
    • High Avaliability アドオンの概要
    • クラスタの管理
    • フェンス設定ガイド
  • manページ
    • 詳細な説明がのっている
  • ナレッジベース(※要RHNアカウント)
  • 事例的な資料:Reference Architecture Series

コンサルティングサービスの紹介

  • 導入するには専門知識がいる。後で判明すると大変なので、RHELコンサルティングサービスがある
  • 設計・レビュー・導入作業・動作確認など、クラスタ周りをなんでもやってくれるサービス

トレーニングの紹介

  • RHCT
  • RHCE
  • → HAクラスタ構築:RedHatエンタープライズクラスタリングおよびストレージ管理