RACは、Oracleデータベースの可用性を高めるための技術です。データベースサーバを1台から2台以上に冗長化することで、1台に障害が発生してもほかのサーバでサービスを継続することが可能です。
この冗長化ですが、サーバだけでなく、ほかのパーツでも実装することができます。そのうちの1つがNetwork Interface Card(以下、NIC)であり、冗長化機能を「Teaming」といいます。Teamingを実装することで、仮にネットワーク一重障害が発生した場合でも、サービスの継続が可能となります。
Teamingは、複数のNICを稼働系と待機系に使い分けることで耐障害性を提供するほか、すべてのNICを稼働系として使用することで負荷分散を行うことも可能です。どのように使用するか設定できますが、デフォルトではすべてのNICを稼働系として、順番に使用するラウンドロビン方式が採用されます。
Teamingのイメージですが、物理的なNICをいくつか束ね、仮想的なNICを構成します(図3)。OSは、この仮想NICにIPアドレスを付与し、サービスを提供します。
では、具体的な設定方法を見てみましょう。ここでは、物理NIC〔eth0〕と〔eth1〕を用いて、仮想NIC〔bond0〕を作成します。Teamingの構成には、表2のファイルを使用します。
/etc/modules.conf | モジュールを設定 (RHEL 3.0の場合) |
---|---|
/etc/modprobe.conf | モジュールを設定 (RHEL 4.0の場合)l |
/etc/sysconfig/network-scripts/ifcfg-eth0 | 物理NIC〔eth0〕の設定 |
/etc/sysconfig/network-scripts/ifcfg-eth1 | 物理NIC〔eth1〕の設定 |
/etc/sysconfig/network-scripts/ifcfg-bond0 | 仮想NIC〔bond0〕の設定 |
表2 Teamingの構成サンプル |
まず、モジュールを設定するファイルを編集します。Teamingは「bonding」というドライバにより提供されていますので、当該ドライバをカーネルに読み込ませる必要があります。その設定ファイルがRHEL 3.0と4.0とで異なるのですが、設定内容は同一です。リスト8の設定を加えます。
alias bond0 bonding |
リスト8 bondingをカーネルに読み込ませる設定 (RHEL 3.0 : /etc/modules.conf、RHEL 4.0 : /etc/modprobe.conf) |
次に、物理NICを設定します(リスト9、10)。
DEVICE=eth0 |
リスト9 /etc/sysconfig/network-scripts/ifcfg-eth0の編集 |
DEVICE=eth1 |
リスト10 /etc/sysconfig/network-scripts/ifcfg-eth1の編集 |
最後に、仮想NICを設定します(リスト11)。
DEVICE=bond0 |
リスト11 /etc/sysconfig/network-scripts/ifcfg-bond0の編集 |
上述のIPアドレスやネットマスクは設定例なので、各自の環境に読み替えてください。設定ができたらOSを再起動し、仮想NIC〔bond0〕が稼働していることを確認します(リスト12)。
# ifconfig -a |
リスト12 仮想NIC〔bond0〕の稼働を確認(RHELバージョン共通) |
Teamingが正常に稼働していれば、〔bond0〕の表示に「UP」「RUNNING」「MASTER」が含まれ、〔eth0〕と〔eth1〕の表示に「UP」「RUNNING」「SLAVE」が含まれます。含まれていなければ、設定を見直します。
今回は、RHELでRACを構築する際に注意する点や推奨される設定について記載しました。このように、RACの設定に加えOSの設定を考慮してシステムを構築することで、よりより環境を構築することが可能となります。次回は、実際にRACを構築する手順を取り上げます。
Copyright © ITmedia, Inc. All Rights Reserved.