冗長化とは システムを1秒たりとも止めないための仕組み… 3つのレベルと2つの基本構成をおさえろ
こんにちは ゆずぱ です。
今回は、システムエンジニアにとって手腕が試される “冗長化” について解説したいと思います。冗長化をどうするかによって 掛かるお金がだいぶ変動する ので本当に重要ですd(^_^o)
冗長化とは ざっくり言うと… システムを止めないための仕組み のことですが、情報処理技術者試験でも 基本的な2つの構成をベース に結構深い知識が問われます。
それではさっそく解説にうつりましょう!
<今回の学習範囲>
冗長化とは…1秒たりとも止めないための仕組み
まず “冗長化” という言葉がサッパリ分からないという方のための解説をしますd(^_^o) 冒頭でお伝えした システムを止めないための仕組みをどうやって実現しているのでしょうか?
毎度の例え話で恐縮ですが…コンビニエンスストアで例えます (^_^;)
コンビニは24時間いつでも営業 していますよね。我々が作るシステムも同じです… “止まらない”という意味では我々が作るシステムと似ている んです。
ひとりで仕事をまわす… けっこう止まる!
ひとりの店員しかいないコンビニを思い浮かべてください。店員がトイレに行きたくなったら?風邪をひいてしまったら?腕を骨折して入院してしまったら?
そのコンビニは営業が止まってしまいます…d(^_^o)
骨折で入院することはめったにありませんが、トイレや風邪は…けっこうな頻度で発生します。こんなコンビニはけっこうな頻度で営業が止まってしまうことになります(-_-;)
ふたりで仕事をまわす… ほぼ止まらない!
では… 店の仕事をふたりでまわしているコンビニ はどうでしょうか?
店員がトイレに行きたくなっても…風邪をひいてしまっても…骨折して入院したとしても… かろうじてコンビニの営業は止まりません d(^_^o)
店員がひとり入院してしまったとしても、もうひとりの店員が頑張っている間に対策をうつ事ができるので コンビニの営業は…ほぼ止まらない といって良いでしょう_φ(・_・
冗長化とはピンチヒッターを立てる事
つまり、冗長化とは 代わりの人(ピンチヒッター)を立てる事…です。ピンチヒッターを立てる事で “サービスがほぼ止まらない” を実現することができますd(^_^o)
コンビニの店員で説明しましたが コンピュータでも考え方は全く同じ です。同じ仕事ができる装置をもう1台用意する…これが “冗長化” の基本中の基本 です_φ(・_・
冗長化のレベルは”3段階 “
同じ働きをする装置をもう1台用意する… この基本中の基本をレベル別に見てみましょう。システムのあらゆるところで冗長化 がされている事が分かりますよd(^_^o)
第1段階: 装置内で冗長化
まずは 装置の中の部品レベルで冗長化を行う ”装置内で冗長化” です。
多くの装置はCPUを2つ搭載していたり… メモリを2つ搭載していたり… ハードディスクを2つ搭載していたりします。1つくらい部品が壊れても動き続けるように作られています。
” 装置内で冗長化 “の代表選手はハードディスク です。記録しているデータが無くなってしまったら困るので…ハードディスクは必ずといっていいほど冗長化されていますd(^_^o)
ちなみに…ハードディスクの冗長化はRAID(レイド)と呼ばれておりビックリするくらい種類があります(-_-;) また別の記事でご紹介したいと思います。
もうひとつ…システムエンジニアとして押さえておきたいのは ” 電源の冗長化 “です。家庭ではなかなか馴染みがありませんが、システムエンジニアの世界では常識ですね d(^_^o)
第2段階:装置間で冗長化
つぎは 同じ機能の装置を複数用意する ”装置間で冗長化” です。
これが最もメジャーで、情報処理技術者試験における冗長化といえばコレ をさします。全く同じサーバを2台準備して1台が壊れても大丈夫なようにします。
情報処理技術者試験的には フォールトトレラントシステム って言います_φ(・_・
英語で書くとFault Tolerant Systemです。Fault(障害)にTolerant(耐えられる)System(システム)…そのまんまですね。SEの仕事をしててもこの言葉は全く使いませんが覚えましょう(-_-;)
冗長化といえばサーバ(コンピュータ)の冗長化がすぐにイメージされますが、それと 同じくらい重要なのがネットワーク機器の冗長化 です。通信が止まったらシステムが止まりますからね (・_・;
ネットワーク機器の代表 スイッチやルータは必ずといっていいほど冗長化 します。
第3段階:地域間で冗長化
最後は 離れた場所にシステムまるごと同じものを作ってしまう ” 地域間で冗長 “ です。
大地震発生やミサイル襲来 など…ビルや街ごと機能しなくなることを想定した壮大なる冗長化 です∑(゚Д゚) 社会インフラ系のシステムは ” 地域間の冗長化 “をするのが一般的です。
ビルを分けるだけでなく 何百キロも離れた都市に全く同じシステムを準備 します。平常時は東京のシステムが動いていて、大地震の時には大阪のシステムが動きだすといった感じです。
当然 東京にあるシステムと大阪にあるシステムは データが常に同じになっていないとすぐに動くことができません ね。レプリケーションという処理 (後述します!!) が必要となります。
以上が、冗長化のレベル”3段階” でした。次は 冗長化を実現するための構成をご紹介します。
冗長化の構成は 基本2構成+応用4構成
冗長化を実現するために同じ装置を準備するにしても… バリエーションが無数にあります(-_-;) 今回は “コレだけは押さえておけ”という6つの構成 をお伝えしますd(^_^o)
基本① デュプレックス
基本構成のひとつめは… 冗長構成の王様 “デュプレックスシステム” です
普段はアクティブとして1台が仕事をしていて、もう1台はスタンバイとして待機しています。アクティブ(働く人) と スタンバイ(待機する人)がセット になっているのが基本構成ですd(^_^o)
システムエンジニアの世界では アクトースタンバイ構成 なんて呼ばれ方もします。
基本② デュアル
基本構成のふたつめは… ちょっとマイナー” デュアルシステム “ です。
システムエンジニアをやっていて、この構成をとるシステムは結構マイナーですが、情報処理技術者試験的には頻出のシステム構成 です d(^_^o)
ポイントは2台ともアクティブで常に同じ仕事をしているという点。そして 仕事の結果をお互いチェック(整合)をしている という点です。情報処理技術者試験ではこの2点が頻出です_φ(・_・
両方ともアクティブなので アクトーアクト構成 なんて呼ばれ方もします。
応用① 2N構成
応用の1つめは “2N構成” です。
2台で構成されたデュプレックス構成がたくさんある構成 です。 例えば “地域間の冗長” では 東京にデュプレックス構成をおき、同じデュプレックス構成を大阪や福岡におく2N構成をとります。
応用② N+0構成
応用の 2つ目はN+0構成 です。
アクティブの機器がたくさんある構成 です。全ての機器が仕事をしているので1台くらい壊れて脱落してもへっちゃらな構成です。3台でも4台でも…アクティブがいっぱいの構成です。
ただし… ひとつだけ注意点 があります
さきほど紹介した デュアルシステムは2台のアクティブが常に同時に同じ仕事 をしますが、N+0構成は一般的にそれぞれが自分に割り当てられた” 別の “仕事 をしています∑(゚Д゚)
このシステム構成は 仕事を分散しているので “負荷分散システム” と呼ばれますが 同時に冗長化の役割も はたしています。詳しくは 後述するロードバランサを見てくださいd(^_^o)
応用③ N+1構成
応用の 3つ目は “N+1構成” です。
アクティブがたくさんある構成ですが1台だけスタンバイがある構成です。N+0構成で1台故障が発生すると処理能力が足りなくなることが想定される場合にこのような構成にしますd(^_^o)
応用④ N+M構成
応用の 最後は “N+M構成” です。
アクティブもスタンバイもたくさんある構成 です。スタンバイを2つ持つ時はN+2構成といった感じです。かなり豪華な構成で、当然システム構築に必要なお金も高いですd(^_^o)
冗長化に関する ” 知識5選 “
最後は冗長化に関する数ある知識の中から重要な5つの知識をピックアップしました。情報処理技術者試験では 午前の問題で正誤問題として出題 されますd(^_^o)
知識①:フェールオーバ
まずは “フェールオーバ” です。
デュプレックスシステムでは1台がアクティブでもう1台がスタンバイの状態になっていますが、アクティブが故障した場合にピンチヒッターへ交代すること を言います。
フェールオーバの後は、新アクティブがメインで仕事をします。
1)フェールオーバのあと旧アクティブはどうなる?
旧アクティブには2つの道があります…
・故障の程度が軽度ならスタンバイになる
・故障の程度が重度ならシステムから切り離される
という感じになりますd(^_^o)
2)フェールオーバ中の仕事はどうなる?
フェールオーバ中は 一般的に仕事は止まります…∑(゚Д゚) ですのでフェールオーバに掛かる時間が非常に重要な指標になります。数秒で切り替わるシステムもあれば数分止まるシステムも…。
ほんの数秒で切り替わるシステムもあります。バーチャルIPアドレスやホットスタンバイなどの知識が必要になってきます。順番に説明したいと思いますd(^_^o)
知識②:バーチャルIPアドレス
バーチャルIPアドレスとは サーバの住所を1つに見せかける技術 …。”仮想IPアドレス” や “フローティングIPアドレス” という言葉もほとんど同じ意味で使われますd(^_^o)
ちょっと分かりにくいので下の図をご覧ください…
IPアドレスとはサーバの住所の事です。システムへの仕事の依頼はネットワークを通してこのIPアドレスをめがけて飛んできます。A宛の仕事が飛んできたらどうなるでしょうか?
1号機がアクティブの時は1号機がその住所を名乗り、アクティブが2号機に切り替わったら2号機がその住所を名乗ることで、周囲にはひとつの住所で仕事を受け付けることができます。
多くのアクトースタンバイ構成では、このバーチャルIPアドレスを使って、フェールオーバ前後で仕事が止まらないようにすることを実現していますd(^_^o)
知識③:スタンバイ方式
次は “スタンバイ方式” です。
フェールオーバ中は一般的にサービスが止まってしまうため、フェールオーバにかかる時間をできるだけ短くする事が重要 だということはお分かりいただけたかと思います。
フェールオーバの時間を 可能な限り短くする方式が ” ホットスタンバイ方式 “ です。
“コールドスタンバイ方式” では障害が発生したら電源ボタンを押すイメージ です。パソコンの電源を入れた時にWindowsの画面がでるまでに数分かかりますよね。ちょっと時間がかかります。
“ホットスタンバイ方式” では電源を入れた状態であるのはもちろん、必要なソフトも起動した状態で待機しているイメージ です。すぐに切り替えることができますねd(^_^o)
バーチャルIPアドレス技術とホットスタンバイを組み合わせると、ほんの数秒でフェールオーバを実現することができちゃいます。この2つの技術をしっかり押さえましょう!
知識④:ロードバランサ
次は “ロードバランサ” です。
デュアルシステムでは、同じ仕事を同時に2台のサーバが行なっていましたが、N台構成では一般的に仕事を分担してそれぞれが各自の仕事を行います。
その仕事の振り分けをするのがロードバランサですd(^_^o)
英語で書くと Load Balancer… Load(負荷を) Balancer(平均させる)装置ですね。仮にアクティブのうち1台が故障した場合、ロードバランサはその故障した装置には仕事を割り当てません。
そのため ロードバランサを使った構成では、装置が故障してもサービスの停止時間を限界までゼロに近づけることができますd(^_^o) その結果…そこらじゅうにロードバランサがあります。
知識⑤:レプリケーション
最後は “レプリケーション” です。
レプリケーションとは、複数の装置で仕事のデータを合わせこむこと です。厳密には同じデータ(レプリカ)を作るという意味なのですが、冗長化に置いてはこのように理解できますd(^_^o)
コレを可能なできる限りリアルタイムで実施します。
そうすると…何がうれしいのか?
アクトースタンバイ構成であれば、スタンバイ側にも常に最新のデータがあるのですぐにフェールオーバができるという大きなメリット があります。
アクトーアクト構成であれば、分担した仕事の情報をお互い共有する必要があるので、常に仕事を分担するにはレプリケーションが必須 ということになりますd(^_^o)
まとめ
今回はシステムエンジニアの経験が試される “冗長化” について可能な限り分かりやすく説明をしてみましたd(^_^o)
冗長化が弱いとシステムがすぐに止まったりデータが吹っ飛んだりします。とはいえ冗長化を強くしすぎると、システムを作るのにとんでもないお金がかかってしまいます。
適切な冗長化と費用をまとめるのがシステムエンジニアの重要な仕事ですねd(^_^o)
コメント