仮想サーバー構築

【サーバ構築:第4巻】NICチーミングを設定しよう!【NIC冗長化】

2020年3月24日

NICチーミングを設定しよう!

前回までに下記の記事で、VmWare PlayerへLinuxを導入を進めてきました。

問題なくサーバーの構築が完了していれば、下記のサーバーが構築されているはずです。

  • Webサーバー
    • wb01(冗長化なし)
  • APサーバー
    • ap01(今回の記事での設定対象)、ap02(ap01と同様に設定)
  • DBサーバー
    • db01(ap01と同様に設定)、db02(ap01と同様に設定)

今回は、APサーバー(ap01)のNICへ冗長化の設定を行っていきます。

チーミングとは

チーミングとは、 コンピュータ内の複数の物理的なネットワークアダプタ(NIC)を、ソフトウェア上で仮想的な一つのアダプタとして一体的に運用することを指します。

つまり、ネットワークを流れるパケットのサーバへの玄関 (NIC) が壊れてしまうと、それ以降は通信が出来なくなってしまう状態となります。

それを防ぐために、予め ネットワークを流れるパケットのサーバへの玄関(NIC) を2つ用意しておきます。

玄関が2つあっても、建物の住所(IPアドレス)は変わりません。

NICチーミングとは、コンピュータに装着された複数のネットワークインターフェース(NIC)を束ねて一つのアダプタとして運用し、負荷分散や帯域向上、耐障害性の向上を図る技術。

IT用語辞典

構築環境概略図

注意ポイント

本来、仮想環境(VmWare Workstation Player)に構築されたサーバーへのNIC冗長化を設定する必要はありません。何故なら、仮想環境には物理ケーブルや物理NICが存在しないからです。では、なぜ冗長化設定を行うのか?それは、物理サーバーを見据えてのことです。昨今のシステム環境は、技術の進歩に呼応して、流れるデータ量も膨大な量に増え続けています。当初は仮想環境で設計していたシステムが、そのデータ量に耐え切れず、急遽、物理環境(オンプレミス)へ変更すると言ったことが日常的になっています。

前準備

まずは、最低限必要な環境を設定をしていきます。

ap01サーバーへ設定する項目

  1. スクリプト格納ディレクトリ
  2. firewalldサービスの停止
  3. yumリポジトリの設定
  4. 「/etc/hosts」の設定

前回の「【サーバ構築:第3巻】Webサーバーを構築しよう!【設定の初歩】」を参照して設定していきます。

下記のリンクページを参照して「wb01」サーバーと同様に、上記で挙げた環境を設定していきます。

NetworkManagerの導入有無確認

RHELへチーミングを設定するために「NetworkManager」の導入有無を確認します。
 下記のリンクページの通りにインストールしていれば、「NetworkManager」はデフォルトで導入されているはずです。

「リポジトリ」が「installed」の為、「NetworkManager」モジュールは導入されています。

本記事では、上記のモジュール「NetworkManager」を使用して、NICチーミングの設定を行っていきます。

NICチーミング方式

NICチーミング構成

本環境のネットワーク構成は下記の通りです。
今後を踏まえて、dbサーバー分まで含めています。

サーバー名ipアドレスnic名categoryteam名runner
ap01192.168.109.151/24
gw:192.168.0.2
ens33public-lanteam0activebackup
ens34
ap02192.168.109.152/24
gw:192.168.0.2
ens33public-lanteam0activebackup
ens34
db01192.168.109.153/24
gw:192.168.0.2
ens33public-lanteam0activebackup
ens34
db02192.168.109.154/24
gw:192.168.0.2
ens33public-lanteam0activebackup
ens34

チーミング方式とは

冗長化の方法は、「リンクアグリゲーション」と「フォールトトレランス」の2つに分けられますが、今回は後者「フォールトトレランス」での設定を行っていきます。

  • リンクアグリゲーションとは、複数の物理リンクを束ねて、1つの論理リンクにする方法です。単純に帯域が倍になるため、アクセススピードの向上が望めます。
  • フォールトトレランスとは、1つの論理リンク内にある複数の物理リンクを、アクティブとスタンバイに分けて運用する方法です。アクティブの物理リンクがダウンすると、スタンバイ状態の物理リンクに自動で切り替えて通信を継続します。

NICチーミングの設定

本記事では、代表サーバーとして「ap01」サーバーへNICの設定を行っていきますが、他のサーバーも必要に応じてNICの設定を行います。

簡単な流れ

  • チームの追加
  • チームアドレスの設定
  • スレイブNICの追加
  • チームのリンクアップ
  • チーム「team0」の状態確認
  • 冗長化方式の設定
  • 動作確認
  • ルーティングテーブルの確認

① チームの追加

チーム名「team0」を追加します。

「team0」を追加

② チームアドレスの設定

チームアドレス「192.168.109.151/24」を追加します。

「team0」 へIPアドレスを設定

メモ

ゲートウェイの設定を行う場合は、末尾に「ipv4.gateway "<IPアドレス>"」を追加して設定します。

注意ポイント


本環境は仮想環境の為、ゲートウェイの設定は必要ありません。
実際の商用プロジェクトの場合は、セグメントが複数に分かれる為、ゲートウェイの設定を行います。
デフォルトゲートウェイは、1ノードに対し1つのみ設定します。

③ スレイブNICの追加

スレイブとなるNICを追加します。

「ens33」「ens34」を「team0」のスレイブNICとして追加します。

「ens33」を「team0」のスレイブに追加
「ens34」を「team0」のスレイブに追加

④ チームのリンクアップ

作成した「team0」を外部と疎通させるためにリンクアップします。

1行名:追加した「team0」は、作成時点でリンクアップしています。後から追加したスレイブNIC「ens33」「ens34」を認識させるため、一度 「team0」 をリンクダウンします。

2-3行目:追加したスレイブNIC「ens33」「ens34」をリンクアップ。

4行目:リンクダウンした 「team0」 を再リンクアップします。

追加した 「ens33」「ens34」 を有効化

⑤ チーム「team0」の状態確認

ここまでに作成した「team0」の状態を確認します。

追加した 「ens33」「ens34」 が「team0」のスレイブとして機能している状態

先ほど追加した「ens33」「ens34」がスレイブとして機能していることが分かります。

現在のRunnerは「roundrobin」となっていますので、このままでは「NIC」に障害が起きた際に動作が不安定になってしまいます。

⑥ 冗長化方式の設定

Runnerを「activebackup」へ変更します。

Runnerを設定した後は、設定内容を反映するために再起動(リンクダウン-リンクアップ)する必要があるため「④ チームのリンクアップ」を再度実行します。

Runnerが「activebackup」に変更された状態

⑦ 動作確認

「ens33」をリンクダウンして、activeポートは「ens34」へスイッチすることを確認します。

「ens33」のリンクダウン事項後、activeポートが「ens34」へスイッチしている

メモ

必要に応じて残りのサーバーへ(ap02、db01、db02)も同様の設定を行いチーミングを設定していきます。

⑧ ルーティングテーブル の確認

最後にルーティングの設定を確認します。

正しく設定が完了していれば、「ルーティングテーブル」は下記の様に設定されているはずです。

デフォルトゲートウェイの確認

インターフェイス「team0」が、デフォルトゲートウェイとして一番上に並んでいれば正常に設定がされています。

メモ

今回設定したチーミングの設定ファイルは「/etc/sysconfig/network-scripts/」配下へ作成されます。

以上でチーミングの設定は完了です。

お疲れさまでした。

よく読まれている記事

1

21世紀の現在、ネット上では掲示板やアンケートフォームと言った一見簡単に見えるサービス機能から、商品カタログ、eコマースなどのスケールの大きなコンテンツまで、様々なダイナミックコンテンツが普及するよう ...

2

テクノロジーの進化により今後10年で50%以上の仕事がなくなると言われています。 それは現在の仕事がプログラムに取って代わられることを意味します。 今後「プログラミング」は「文字」と同様に「一般教養」 ...

3

2019年、出生数は過去最小の86万4千人!推計より2年早く、初めての90万人割れ日本の経済成長(2019年10~12月期の実質GDP)は、年率6.3%減! コロナウィルスとは関係なく急落しています。 ...

4

ITエンジニア転職に必要な知識として一番最初に挙げられるのは「プログラミング」の知識でしょう。 20代、30代であれば確かにそれは正しいと言えます。 しかし、40代、50代を対象にした場合、果たして「 ...

5

ここ数年、メディアなどでフリーランスという言葉を耳する機会が増え、それに比例するようにフリーランスを志す人が急増しています。 テクノロジーの進歩により、個人単位でのロケーションにとらわれないスタイルで ...

6

人口知能や機械学習というキーワードは、IT業界で働く人にとっては馴染みが深くなりつつあります。 これらを駆使するAIエンジニアには高いスキルが要求され、日本だけでなく世界的に見ても不足している状況です ...

-仮想サーバー構築

Copyright© Beエンジニア , 2020 All Rights Reserved.