(2016年時点での内容をアーカイブとして掲載しているため、一部の掲載内容が最新情報とは異なる場合がありますので、ご了承ください。最新のIBM Cloudのアップデート情報はIBM Cloud アップデート情報 や 柔らか層本をご参照ください。)
概要
ロードバランサー配下に複数のサーバーをたてることで実現できる可用性の向上方法と、Heartbeatなどを使ったアクティブ・スタンバイ構成で二重化する方法があります。 ここでは可用性を確保するための準備や構成の概要をご紹介します。
イメージ・テンプレートで簡単にサーバーを複製
可用性を高めるには事前準備としてサーバーを複数台用意しますが、OSのイメージ・テンプレート機能を使えば、サーバーの複製が簡単に行えますので便利です。 詳しい手順は、3.2 サーバーのクローンを作るには?を参照してください。
ウェブ・サーバーの可用性を高めるには
インターネット側にロードバランサーやLinux Virtual Server(以降はLVSとします)を配置し、その配下に複数台のサーバーを並べて可用性を高める方法があります。 これは一般的にN+1構成と呼ばれる方法で、必要なサーバー台数に予備の1台分を加えた構成です。 サーバーに障害が発生しても、この予備のサーバーを通してサービスを継続する構成です。
ロードバランサーを使う方法
SoftLayerのロードバランサー機能としてNetArrayとNetScalerが提供されており、IPアドレス単位かVLAN単位でバランシングを設定できます。 NetArrayのローカル・ロード・バランシングは、カスタマーポータル上から注文や各種の設定を視覚的に行えますので、手軽に利用できる機能です。
次の図は、ロードバランサーの下にウェブ・サーバーをN+1構成で配置し、可用性を高めています。 ロードバランサーは、一定間隔でサーバーの稼働状態を監視します。 もしサーバーの1つに障害が起これば、対象サーバーを切り離します。 他のサーバーには、接続が振り分けられるため、ウェブ表示を継続することができます。
ロードバランサーには便利なオプションがあります。 ロードバランサー自身の可用性を高めるための冗長化オプションのほか、SSLオフロード機能を使えば、HTTPS通信を配下のサーバーに一斉適用することもできます。 詳細な注文方法は、3.3 ロードバランサーを導入するには?を参照してください。
LVSを使う方法
LVSはOSのディストリビューションに標準で取り組まれているバランシングの機能であり、Linuxのサーバーを注文すると無料で利用できるロードバランサーです。 全ての作業を自分で行う必要がありますが、LinuxやLVSの知識があれば、手軽にバランシングが利用できます。 仮想サーバーで使えて、時間単位で料金を支払えますので、小規模なテスト環境にも使えるので便利です。
LVSは単一障害点にならないように、下の図のようにLVSを冗長化すると可用性を高めることができます。 LVSの設定方法は、3.3 ロードバランサーを導入するには?を参照してください。
アクティブ・スタンバイで可用性を高める方法
データベースとしてMySQLを使用する場合や、NFSのようにファイル・サーバーとして使う場合、代表的な可用性を高める方法を3パターン挙げます。 これらの方法について、概要をご紹介していきます。
- サーバーをアクティブ・スタンバイで構成する
- MySQLのレプリケーション機能を使う
- DRBDでディスク・レベルのレプリケーションをする
アクティブ・スタンバイ構成は、DBサーバーを2台で冗長化しておき、データ用の領域に、エンデュランス・ストレージやパフォーマンス・ストレージなどのiSCSIディスクを共有ディスクとするとで、データベース・サーバーの停止に備えることができます。 次の図のように、データベース・サーバーの障害発生時にスタンバイ側に切り替えてサービスを継続することができます。 詳細な構成は、3.4 アクティブ・スタンバイのサーバーを構成するには?を参照してください。
MySQLのレプリケーション機能を使うには、マスタ・スレーブ構成を利用します。 次の図のように、それぞれのサーバーのローカル・ディスクにデータを保管することで、主と副の間の共有部分をなくし、より高い可用性を得ることができます。 詳細な構成は、先ほどと同じ3.4 アクティブ・スタンバイのサーバーを構成するには?を参照してください。
DRBD (Distributed Replication Block Device)は、Linuxのカーネルモジュールとして動作するソフトウェアで、ディスクのブロック・デバイス単位で常に自動的に同期します。 レプリケーション機能のないNFSサーバーでも簡単に共有部分のない二重化を実装できます。 このように、ミドルウェア・レベルの設定を行う必要がないため、適用範囲が広くなります。 次の図のように、同一データセンター内だけでなく、異なったデータセンター間とのデータ同期にも使うことができます。