Linux-ネットワーク冗長性(Bonding)
対応バージョン
Oracle Linux 6
2014-12-26記事公開
Oracle Databaseを扱う技術者であると、ネットワークの冗長性という部分でReal Application Cluster(RAC)のVIP動作について詳しい方は多いですが、Linuxのボンディングについては比較すると詳しくない方が多いようですので、Oracleで使用する場合について紹介したいと思います。
Linux Bonding 機能概要
機能概要
2つのNIC(Network Interface Card)を1つに見せて信頼性の向上、負荷分散を行う機能。Solaris等ではチーミングにあたる機能です。OSにてNICの仮想化を行い、実際は2本あるネットワークのケーブルを1本であるかのように見せます。
1つのIPアドレス(ホスト名)に対して2本のケーブルがあることにより以下の恩恵があります。
- ・信頼性の向上(障害発生時に片方のNIC故障に耐えられる。)
- ・負荷分散(データの送受信を行う際に、データを振り分けることで、1本あたりのトラフィック負荷を軽減する。)
- ・スループットの向上(データの送受信を行う際に、データを振り分けることで、2本分のデータ通信を可能にする。)
結合モードの指定
Linuxではボンディングするにあたり、以下の7つの結合モードがあります。
結合モードにより、享受できる恩恵も変わります。
全スレーブを順繰り(ラウンドロビン)に使ってパケットを送信。送信のみ負荷分散。
1つのスレーブのみを active interfaceとしパケットを送信。
active interfaceに障害が発生した場合、他の backup slave を active interfaceに切り替え、冗長性を確保。
送信元/先 MACアドレスを元に送信スレーブを決定しパケットを送信。送信のみ負荷分散。
全スレーブに同一パケットを送信。このモードは通常の用途で使用されないので無視。
IEEE 802.3ad(LACP)に準拠したリンクアグリゲーション。
スレーブの負荷に応じて送信スレーブを決定しパケットを送信。送信のみ負荷分散。
balance-tlbの機能に加え、受信も負荷分散。
Hewlett-Packard - bondingドライバの違いについて
ボンディングの設定
実際にボンディングを行う場合、以下のファイルに対して設定を行いますが、ここではLinuxの設定については記載を省きます。Oracleでの使用について
ボンディングの機能について使用する場合、OSや接続先のSwitchに使用制限があります。
特にエンタープライズシステムでのスイッチ構成では、ボンディングされた各NICの接続先Switchが冗長化され、各ケーブルごとに異なるSwitchに接続されていることが多くなります。
その場合、ボンディングについてはactive-backup、bloadcast、balance-tlb、balance-albの選択肢がありますが、active-backup以外の構成はとらない方が安定稼働が見込まれます。
以下Enterprise ManagerからRACのノード追加を行う際のマニュアルですが、結合モードの中にbalance-tlb/balance-albの選択肢がありません。
https://docs.oracle.com/cd/E26854_01/em.121/b66837/prov_racdb.htm#BDCJECII
Oracle Enterprise Managerライフサイクル管理ガイド
12cリリース4 (12.1.0.4)
B66837-08
9 10gおよび11g用のOracle Real Application Clustersのプロビジョニング
9.5 アーカイブ・ソフトウェア・バイナリを使用したOracle Real Application Clusterのプロビジョニング
9.5.2 プロビジョニング・プロシージャ
表9-2 「構成」ページ - 「要素の説明」
サポート状況もバージョン(パッチレベル)により変わる可能性があるので、active-backup以外を使用する場合は、必ずSwitchのベンダー及びOracleサポートへの問い合わせをした方が安全です。
Real Application Clusterにて使用するインターコネクトについては、11.2.0.2より、Grid Infrastructureの機能による冗長化が可能となりました。
インターコネクトのみとなりますが、冗長化をOSレイヤで指定しない場合でも負荷分散が可能です。