Upgrade to Pro — share decks privately, control downloads, hide ads and more …

RHEL High Availability Add-On からLVMとの連携を確認する

YuYu
February 07, 2021

RHEL High Availability Add-On からLVMとの連携を確認する

RHELで使用するPacemaker+Colosyncの連携クラスタにおいて、ディスク排他制御の一つの方法としてLVM2と連携する方法がRH社の公開ドキュメントで取り上げられている。
実際にリソースエージェント内でどういう処理がなされているのか、その際の実装について調べた限りのものを記載する。

YuYu

February 07, 2021
Tweet

More Decks by YuYu

Other Decks in Technology

Transcript

  1. BLUECORE.NET 趣味で自宅にITインフラ触ってる者だ BLUECORE.NET 趣味で自宅にITインフラ触ってる者だ ここで確認したかった内容 • クラスタにおいて、ディスク切り替え制御はどのように行われているんだろ う? • LVM-Activation-Agentの動作を確認する

    • クラスタにおけるLVMディスク排他制御とDBサービス間の連携 • 現在提供されているOCF系エージェントの構成前提 • 現在私の環境で実装している内容について
  2. BLUECORE.NET 趣味で自宅にITインフラ触ってる者だ BLUECORE.NET 趣味で自宅にITインフラ触ってる者だ 要注意事項 • uname -nの出力結果とクラスタで認識するノード名は合わせよう • 私の環境では・・

    • クラスタで認識するノード名:nd001.bluecore.net と言う形式 • uname nの結果 : ND001と言う形式 ->名称不一致のため、想定通りに動作しなかった。 ->nmtuiコマンドを実行し、ホスト名をFQDN形式(小文字)にして解決した。 • VG単位で制御されることを理解しよう • VolumeGroup単位でノード間は移動する。 • 細かくLogicalVolumeを組んでる場合、まとめてまるごと移動することになる。 • ボリューム設計の際は1VG/1LV構成にしておくと構成要素が単純化して運用しやすいのかも。 • 所詮はソフトウェア排他制御 • 何も制御しない場合よりは排他制御が確実に行えそう • SystemIdが異なる場合、それは恐らくActivationが拒否られるものと考えられる • ただし、同時にvgchangeアクセスが発生したときにそれが処理しきれるかどうかは別の話 • まだStonithで最終的な制御はさせた方がクラスタの信頼性は高いのではないかと思う ->つまり、Stonithが不要だとは言い切れない構成であるという点は認識を持った方がよい。
  3. BLUECORE.NET 趣味で自宅にITインフラ触ってる者だ BLUECORE.NET 趣味で自宅にITインフラ触ってる者だ サービス制御時の留意点 • RDBMSのリソースエージェントはそれが何を前提にしているのか、確認が 必要 • Promote/DemoteをさせるエージェントはMaster/Slave構成を前提としてる。

    • Master/Slave構成を取る->大抵は「レプリケーション」を前提としている • ぶっちゃけSystemdベースのサービス監視のみでも対応出来るように思 う。 • ただし、DB上の論理障害には弱い場合がある(SQL監視はしないため) • 単純にプロセス監視を行ってsystemdによってstart/stop/restartしてるだけ なので、この関連処理をみずから組んでSystemdと連携させるようにすると尚良 いのかもしれない。 • ocf::heartbeat:mysqlなどは、定期的にSQLコマンドとして表の行数をカウントす る処理を発行して動作の妥当性を監視している。