IT・技術研修ならCTC教育サービス

サイト内検索 企業情報 サイトマップ

研修コース検索

コラム

仮想化の歴史と機能

CTC 教育サービス

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes 

第22回 アプリケーションの可用性向上 (志茂吉建) 2013年8月

 今回は、アプリケーションの可用性を向上する方法について検討してみたいと思います。

可用性向上の分類
クラスタ構成

 アプリケーションの可用性を向上させるには、クラスタ構成をとる場合がほとんどです。多くの場合、稼動系サーバと待機系サーバに別れて、アプリケーションは稼動系で動作します。稼動系サーバに障害が発生した場合、待機系サーバがそれを検知してアプリケーションを再起動させてサービスを継続させます。待機系が稼動系に切り替わる間はサービスが止まりますが、概ね数分で再起動します。

負荷分散装置を用いる方法

 Web系のアプリケーションであれば、負荷分散装置を利用して可用性とパフォーマンスを向上させることが可能です。負荷分散装置の配下に、2台以上のWebサーバまたはアプリケーションサーバを配置して、アクセスを分散させることが可能です。Webサーバに障害が発生した場合は、負荷分散装置が障害を検知して障害が発生したWebサーバを自動的に切り離します。障害の復旧が終わると、ほとんどの場合は自動的に再接続されサービスが復旧します。

データベースの場合

 一般的なデータベースは、稼動系、待機系の形態でクラスタ化することが可能です。ただし、共有ディスクの設定が必要となります。共有ディスクは稼動系、待機系のサーバでハードディスクを共有する必要があります。ハイエンドサーバではFibreChannelを利用する方法、ローエンドではソフトウェアで共有ディスクを実現する方法などもあります。アプリケーションのパフォーマンス要件に応じてどの共有方法を利用するか検討することになると思います。

OracleRAC

 OracelRAC(RealApplicationCluster)を利用すれば、共有ディスクを利用して、アクティブ、アクティブのデータベースクラスタを構築することが可能です。2台以上のサーバを利用して、同時に更新処理を行えるデータベースを構築できます。

実装方法
稼動系、待機系クラスタの実装方法

 待機系、稼動系の実装方法としてよく用いられるのはクラスタソフトウェアです。代表的なソフトウェアとしては、MicrosoftCluster、VeritasClusterServer、LifeKeeperなどがあります。基本的な機能は、待機系のサーバやアプリケーションを監視し、稼動系に問題があれば自動的に待機系に切り替わり、待機系が稼動系としてアプリケーションの動作を継続させます。VeritasClusterServerはVMwareESXと連動して動作させることもできるので仮想化と親和性が高いのではないでしょうか。構成によっては、物理サーバを稼動系、仮想サーバを待機系とするような構成をとることも可能です。

 オープンソースの分野では、Pacemaker/Heartbeatが代表的なクラスタソフトウェアです。以前のバージョンで設定するにはXML設定ファイルを直接編集するなどの必要がありましたが、最新のバージョンではコマンドを用いて設定が可能です。個人的な感想ですが、オペレーションには慣れが必要ですが、慣れればコマンド体型はわかりやすく、使いやすソフトウェアであると思います。ただし、GUIでの操作はできませんのでやはり少し慣れは必要ではないでしょうか。

負荷分散装置の実装方法

 負荷分散装置は、負荷分散に特化したアプライアンスサーバが各社から提供されています。どの機能を負荷分散した以下によって、どの製品を選ぶかが変わってきます。Webサーバを負荷分散したいのであれば、HTTPやHTTPSを負荷分散できるアプライアンスを購入することになります。VMwareViewなどのVDI環境の接続を負荷分散したい場合は、それに応じたアプライアンスが提供されています。

 オープンソースの実装も幾つか種類がありますので、負荷分散したい機能に応じて適切なソフトウェアを選択することになります。Webサーバなどを負荷分散したい場合は、ApacheHTTPServer自体にモジュールが組み込まれているのでそちらを利用することもできます。

まとめ

 アプリケーションの可用性向上の実装方法については、特に物理、仮想を問いませんので両方に適用することが可能です。適切な可用性向上の仕組みを構築することで、システム運用や障害対応の負荷の軽減につながると思います。みなさんも、クラスタ構成にすることで一歩進んだ運用を検討してみてください。

 


 

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes