クラスタリング方式によるシステムの構成

勉強のきっかけになった過去問

仮想サーバの冗長化設計における可用性評価に関する記述のうち,クラスタソフトウェアを用いた評価として,適切なものはどれか。

  1. OS,アプリケーション及びハードウェアの障害に対応し,障害時に障害が発生していないサーバに自動的に処理を引き継ぐので,切替え時間の短い安定した運用が求められる場合に有効である。
  2. 仮想サーバを停止させずに物理サーバ間で仮想サーバを移動することが可能となるので,メンテナンスなど業務移行の際も含めて業務の停止が全く許容できない場合に有効である。
  3. 物理サーバに備わっている機能を利用するので,ハードウェアの障害にだけ対応し,障害時に業務停止が許容される場合に有効である。
  4. 物理サーバのリソース(CPU,メモリなど)をブロック単位に物理的に分割し,あるブロックの障害が他のブロックに影響しないようにするので,障害時に業務の停止が許容できない場合に有効である。

分野別過去問題テクノロジ系 システムの構成 No.2

クラスタリング方式の概要

複数のサーバでサービスを稼働させます。利用者にはあたかも1つサーバを利用しているかのごとく。
この方式では更に2種類の方式があります。

アクティブ・スタンバイクラスタ

スポーツの大会で選手と補欠がいて、選手が怪我しても補欠がいるからなんとかなるイメージです。

稼働(アクティブ)しているサーバと停止(スタンバイ)しているサーバを使います。

停止しているサーバはサボっているのではなく稼働しているサーバを監視しています。
稼働しているサーバで故障などので停止したら、停止しているサーバが稼働してサービスを引継ぎます。

稼働するサーバを切り替えることをフェールオーバーといいます。

故障は直してまた使えるようにします。
使えるようになったらまた稼働して、稼働していたサーバがまた停止します。
これで、故障前の状態に戻ります。

停止したサーバがまた稼働して元の状態に戻ることをフェールバックといいます。

注意ポイント : サーバを切換える時に蓄積データを移行する方法が必要であること。

データを蓄積しているメールサーバやファイルサーバ、データベースサーバでこの方式を使う時は注意する必要があります。

負荷分散クラスタ

会社で1つの作業を複数人で作業して、1人だけ残業し内容にしたり誰かがインフルエンザで休んでも作業が止まらないようにするイメージです。

複数のサーバを一緒に稼働させて処理を分散させます。

ロードバランサなどで処理を振分けていきます。

問題が発生したサーバには処理を振分けないようにします。

停止したサーバに処理を振分けてもできないものはできません。
特定のサーバのスペックが残念な場合は、処理が滞らないようにそのサーバに振分ける処理を少なくしたりもします。

注意ポイント : データをサーバ間で共有する方法が必要であること。

使っているサーバみんなで違うデータを見ていたら悲しい状態になります。

注意ポイント : 処理を振り分ける装置にはサーバを監視する機能も必要であること。

どのサーバは問題なくて、どのサーバには問題が発生しているかを監視して振分けを決められないといけません。

クラスタリング方式は、停止時間を最小限にしたいサービスに向いています。

IPアドレスとサブネットマスク

前回の勉強内容

ponsuke-tarou.hatenablog.com

勉強のきっかけになった過去問

次のIPアドレスサブネットマスクをもつPCがある。このPCのネットワークアドレスとして,適切なものはどれか。

 IPアドレス: 10.170.70.19
 サブネットマスク:255.255.255.240

ア. 10.170.70.0  イ. 10.170.70.16  ウ. 10.170.70.31  エ. 10.170.70.255
平成31年春期問34 ネットワークアドレス|応用情報技術者試験.com

サブネットマスク(subnet mask)というものがあります

サブネットマスクとは、ネットワーク部がどこからどこまでかを定義する数値です。

IPアドレスは、「ネットワーク部」と「ホスト部」からできています。
その「ネットワーク部」がどこからどこまでかを定義する32ビットの数値です。

そもそもサブネットというのは、小さく分割したネットワークです。

大きなネットワークを複数の小さなネットワークに分割して管理する際の管理単位となる小さなネットワーク。
サブネットとは - IT用語辞典 e-Words

例えば、「Cクラスを使うにはホストが多すぎる」が「Bクラスを使うにはホストが少なすぎる」
こんな場合「Bクラスを小さなネットワークに分割」してその1つを使えばちょうどいい。
この小さなネットワークがサブネットです。

サブネットにするから「ネットワーク部」がクラスとは変わります。

上記の例で考えると「Bクラスを小さなネットワークに分割」したので「Bクラスのネットワーク部」とは違う「ネットワーク部」になります。
そうなると、どこからどこまでが「ネットワーク部」かわからなくなります。

そこで、

どこからどこまでが「ネットワーク部」かわかるようにするのにサブネットマスクがある

のです。

Aクラスのサブネットマスクは2進数で、
11111111 00000000 00000000 00000000

Bクラスのサブネットマスクは2進数で、
11111111 11111111 00000000 00000000

Cクラスのサブネットマスクは2進数で、
11111111 11111111 11111111 00000000

サブネットマスクの「ネットワーク部」には見方があります。

サブネットマスクを2進数でみると先頭から途中まで「1」が連続しています。

「1」が連続している範囲が、「ネットワーク部」です。
「0」が連続している範囲が、「ホスト部」です。

「勉強のきっかけになった過去問」で考えます。
サブネットマスクは、「255.255.255.240」です。
これを2進数にすると
11111111 11111111 11111111 11110000
です。
ピンクの部分がCクラスより小さくネットワークを分割しています。
そのネットワークに繋がるIPアドレス「10.170.70.19」のホストがあります。
この「ネットワーク部」を見てみます。

① ホストのIPアドレスを2進数にします。

00001010 10101010 01000110 00010011

サブネットマスクと見比べます。

00001010 10101010 01000110 00010011
11111111 11111111 11111111 11110000

③ 2つをAND演算(論理積)すると「ネットワーク部」になります。

結果は、00001010 10101010 01000110 00010000 です。
「ネットワーク部」は、00001010 10101010 01000110 00010000 です。

④ 2つをOR演算(論理和)すると「ホスト部」になります。

結果は、11111111 11111111 11111111 11110011 です。
ホスト部」は、11111111 11111111 11111111 11110011 です。

⑤ 10進数に戻します。

「ネットワーク部」は、10.170.70.16です。
ホスト部」は、255.255.255.243です。

という感じでサブネットマスクにおける「ネットワーク部」「ホスト部」を見分けます。

対象 10進数 2進数
サブネットマスク 255.255.255.240 11111111 11111111 11111111 11110000
IPアドレス 10.170.70.19 00001010 10101010 01000110 00010011
ネットワーク部(AND演算) 10.170.70.16 00001010 10101010 01000110 00010000
ホスト部(OR演算) 255.255.255.243 11111111 11111111 11111111 11110011

サブネットマスクの10進数表記

サブネットマスクは2種類の10進数表記があります。

CIDR表記

例えば、255.255.252.0/14

フォーマット:xxx.xxx.xxx.xxx/xx
「/」の前にある「xxx.xxx.xxx.xxx」にはサブネットマスクの10進数を記載します。
「/」の後ろにある「xx」にはネットワーク部のビット数を記載します。

IPアドレスサブネットマスクを併記する表記

例えば、255.255.255.1/255.255.252.0

フォーマット : xxx.xxx.xxx.xxx/xxx.xxx.xxx.xxx
「/」の前にある「xxx.xxx.xxx.xxx」にはホストに割当てられたIPアドレスの10進数を記載します。
「/」の後ろにある「xxx.xxx.xxx.xxx」にはサブネットマスクの10進数を記載します。

IPアドレスのクラス

IPアドレスにはクラスとういう分類方法があります。

IPアドレスは32bitの数値です。

例えば、localhostIPアドレス127.0.0.1」は
2進数にすると「01111111 00000000 00000000 00000001」の32bitです。

② 先頭のbitパターンでクラス分けします。

Aクラス : 先頭が「0」

0xxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx というパターン。
なので
00000000 00000000 00000000 00000000 〜 01111111 11111111 11111111 11111111
だから「0.0.0.0 〜 127.255.255.255」が使えます。

Bクラス : 先頭が「10」

10xxxxxx xxxxxxxx xxxxxxxx xxxxxxxx というパターン。
なので
10000000 00000000 00000000 00000000 〜 10111111 11111111 11111111 11111111
だから「128.0.0.0 〜 191.255.255.255」が使えます。

Cクラス : 先頭が「110」

110xxxxx xxxxxxxx xxxxxxxx xxxxxxxx というパターン。
なので
11000000 00000000 00000000 00000000 〜 11011111 11111111 11111111 11111111
だから「192.0.0.0 〜 223.255.255.255」が使えます。

Dクラス : 先頭が「1110」

1110xxxx xxxxxxxx xxxxxxxx xxxxxxxx というパターン。
なので
11100000 00000000 00000000 00000000 〜 11101111 11111111 11111111 11111111
だから「224.0.0.0 〜 239.255.255.255」が使えます。

クラスDのIPアドレスは、特定のグループに所属する全てのホストに同時送信を行う「マルチキャスト」で使用されるアドレスです。
ビット列の割り振りは、32ビットのうち先頭4ビットがクラスDを表す「1110」で、アドレスの残りの28ビットが送信対象となるグループ番号を指定する部分として使われます。
https://www.sc-siken.com/kakomon/30_aki/img/19.gif

平成30年秋期問19 クラスDのIPアドレスに関する記述|情報処理安全確保支援士.com

Eクラス : 先頭が「1111」

1111xxxx xxxxxxxx xxxxxxxx xxxxxxxx というパターン。
なので
11110000 00000000 00000000 00000000 〜 11111111 11111111 11111111 11111111」
だから「240.0.0.0 〜 255.255.255.255」が使えます。

ただし、このクラスは「実験的」な目的のためにTCP/IPIPv4)の開発当初から予約されており、実際に使われることはない。
第8回 アドレス・クラスとさまざまなIPアドレス:基礎から学ぶWindowsネットワーク(1/3 ページ) - @IT

③ なんでクラス分けするのかです。

ネットワークを表す部分

ネットワーク内にあるホスト(パソコンとかサーバとか)を表す部分
に分けるから。
Aクラスを使えばたっくさんつながるホストを割当てられるし、
Eクラスを使えば少いホストしか割当てられない。
この
「ネットワークを表す部分」をネットワーク部
「ネットワーク内にあるホストを表す部分」をホスト部
といいます。

④ クラス内で予約済みのIPアドレスがあるのです。

予約済みのIPアドレスはホストに割り当ててはなりません。

ネットワークアドレス

ホスト部の2進数のビットが全て 0 になっているアドレスのことです。
ネットワーク自体を指すアドレスとして使われているから割当ててはならないのです。
Aクラス : 00000000 00000000 00000000 00000000 (0.0.0.0)
Bクラス : 10000000 00000000 00000000 00000000 (128.0.0.0)
Cクラス : 11000000 00000000 00000000 00000000 (192.0.0.0)
Dクラス : 11100000 00000000 00000000 00000000 (224.0.0.0)

ブロードキャストアドレス

ホスト部のビットが全て 1 になっているアドレスのことです。
セグメントに接続されている全てのホストにパケットを送信するためのアドレスとして使われているから割当ててはならないのです。
Aクラス : 01111111 11111111 11111111 11111111 (127.255.255.255)
Bクラス : 10111111 11111111 11111111 11111111 (191.255.255.255)
Cクラス : 11011111 11111111 11111111 11111111 (223.255.255.255)
Dクラス : 11101111 11111111 11111111 11111111 (239.255.255.255)

ループバックアドレス

先頭が「01111111」(127)である自分自身(localhost)を表すIPアドレスのことです。
自分自身用で自身で動作する別のソフトウェアからアクセスしたりネットワークを利用するソフトウェアのテストなどで使うので割当ててはならないのです。
IPv4ではいつも「127.0.0.1」になると思っていましたが、どうも間違っていたようです。

IPv6ではループバックアドレスは「::1」しか用いることができないと定義されているが、IPv4の「127.0.0.1」は慣習的に決められたもので、正式なものではない。このため、OSによってはこれ以外のIPアドレスループバックアドレスとして使用できる場合もある(が、通常は別のアドレスは使わない)。
ループバックアドレス(127.0.0.1)とは - IT用語辞典 e-Words