CTC 教育サービス
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes
前回のコラムでは、OpenStackのコントローラーノードをクラスター構成でインストールするツールを紹介しました。これは、Red Hatの商用ディストリビューションRed Hat Enterpirse Linux OpenStack Platform 7(RHEL-OSP7)では、OSP directorとして提供されています(アップストリーム版のRDOでは、RDO Managerという名称)。OSP directorでインストールすると、Pacemakerによるクラスターによって、各種コンポーネントの冗長化や負荷分散が行われるようになります。
そして、RHEL-OSP7(RDOの場合は、Kiloリリース)では、さらにコンピュートノードも冗長化することが可能になっています。あるコンピュートノードが障害で停止すると、それを検知して、該当ノードで稼働していた仮想マシンインスタンスを他のコンピュートノードで自動的に起動しなおすという仕組みです。今回は、この仕組みについて解説したいと思います。なお、現在はまだ、この仕組みをOSP directorから構成することはできません。OSP directorで環境を構築した後、手作業での追加設定が必要となります(*1)。
コンピュートノードが障害で停止すると、当然ながら、そこで稼働していた仮想マシンインスタンスも障害停止状態となります。この時、OpenStackの利用者は、「nova evacuate」コマンドによって仮想マシンインスタンスを他のコンピュートノードで起動しなおすことが可能です。これは、OpenStack Novaが従来から提供していた機能です。ただし、nova evacuateコマンドの動作は、仮想マシンインスタンスの起動方法(Novaブート、もしくは、Cinderブート)によって少し異なります(図1)。
図1 nova evacuateコマンドの動作
コンピュートノードのローカルディスク上のイメージから仮想マシンインスタンスを起動する、いわゆる「Novaブート」の場合、移動先のコンピュートノードでは、新しいディスクイメージをGlanceから取得して仮想マシンインスタンスを起動します。つまり、停止する直前のディスクイメージの内容は失われます。一方、Cinderボリューム内のOSイメージを用いて、Cinderボリュームから仮想マシンインスタンスを起動する「Cinderブート」の場合、移動先のコンピュートノードでは、同じCinderボリュームを用いて、仮想マシンインスタンスを起動します。この場合は、停止直前の状態のディスクイメージから、仮想マシンインスタンスを再起動することが可能になります。つまり、Cinderボリュームからの起動と、nova evacuateコマンドを組み合わせることで、仮想マシンインスタンスの完全な復旧が可能となります。
ここからさらに、nova evacuateコマンドの実行を自動化するというのが、今回紹介する新しい仕組みになります。そのためには、コンピュートノードの障害停止を自動検知する仕組みが必要となりますが、これを実現するのがPacemaker-remoteの役割です。Pacemaker-remoteは、Pacemakerで構成されたクラスター上のノードが、クラスター外部のノードをネットワーク経由で監視/管理する仕組みです(図2)。コンピュートノード自身はクラスターに参加するわけではありませんので、コンピュートノードからコントローラーノードを監視することはありません。コントローラーノードの方から、コンピュートノードの監視やリソースの制御を行ないます。
図2 Pacemaker-remoteによるコンピュートノードの監視/管理
この構成において、コンピュートノードの障害を検知した際に、該当ノードを強制停止することに加えて、「このノード上の仮想マシンインスタンスはevacuate処理が必要である」という情報をPacemaker内部の構成データベースに記録するように設定しておきます。そして、別途、定期的にこの情報をチェックするリソースをコントローラーノードで稼働させておき、対象ノード上の仮想マシンインスタンスに対して、evacuateの処理を自動的に実行するという流れになります。Pacemaker、および、Pacemaker-remoteの詳細な構成については、筆者の公開資料も参考にしてください(*2)。
来週は、「Okinawa OpenDays 2015」というイベントの企画で、「OpenStack/Docker/Ansibleハンズオン」の講師をつとめます。OpenStackの仮想マシンに対して、Dockerコンテナでアプリケーションをデプロイする方法、さらには、それをAnsibleで自動化する方法までを解説するというハンズオンセミナーです。次回は、このセミナーからの話題をお伝えしたいと思います。
*1 「Use High Availability to Protect Instances in Red Hat Enterprise Linux OpenStack Platform 7」- RHEL-OSP7での設定手順が説明されています。
*2 「Red Hat Enterprise Linux OpenStack Platform 7 - VM Instance HA Architecture」- コンピュートノードの冗長化に関する、Pacemakerの詳細な構成図が記載されています。
++ CTC教育サービスから一言 ++
このコラムでLinuxや周辺技術の技術概要や面白さが理解できたのではないかと思います。興味と面白さを仕事に変えるには、チューニングやトラブルシューティングの方法を実機を使用して多角的に学ぶことが有効であると考えます。CTC教育サービスでは、Linuxに関する実践力を鍛えられるコースを多数提供しています。興味がある方は以下のページもご覧ください。
CTC教育サービス Linuxのページ
http://www.school.ctc-g.co.jp/linux/
筆者書籍紹介 Software Design plusシリーズ 「独習Linux専科」サーバ構築/運用/管理 ――あなたに伝えたい技と知恵と鉄則 本物の基礎を学ぶ!新定番のLinux独習書 中井悦司 著 B5変形判/384ページ 定価3,129円(本体2,980円) ISBN 978-4-7741-5937-9 詳しくはこちら(出版社WEBサイト) |
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes