冗長化とは?バックアップとの違いやメリット、デメリット・構成の種類
システムやサーバーの障害は、サービスの稼働停止に直結するものです。ユーザー満足度の低下はもちろんのこと、企業体としての信頼も損なわれ、ひいては事業利益にもネガティブな影響が波及しかねません。
そのため、不具合発生時にもシステムやサーバーが止まらないよう、あらかじめの予防策を講じる必要があります。
その対策のひとつが、システムや設備の予備を用意しておく「冗長化」 です。メリット・デメリットやシステム構成要件など、冗長化の概要をわかりやすく解説していきます。
冗長化とは
冗長化(じょうちょうか)とは、簡単にいうと「コンピューターやデジタル機器、システムの故障や障害の発生に備え、予備システムや設備を用意しておくこと」です。
本来、冗長とは「無駄が多く、不必要に長い」を意味する言葉ですが、IT分野における冗長化は「アクシデントに備えて予備を用意しておくこと」になります。特に病院や金融設備、生活インフラ、企業のITインフラ、鉄道・自動車のブレーキなど、一瞬でも停止が許されない分野は、冗長化は不可欠な施策となります。
冗長化は主に、「サーバー」「ストレージ」「ネットワーク」の3つを対象に講じられます。
なお、冗長化により予備をひとつ設けた状態は「二重化」と呼ばれ、冗長化によって安全性が確保できている状態を「冗長性がある」「冗長性を持たせる」と表現されます。
次に、冗長化と類似する言葉である、「バックアップ」「ミラーリング」との違いを見ていきましょう。
冗長化とバックアップの違い
バックアップとは、1週間ごと、あるいは1ヶ月ごとのように期間を決めて定期的にデータをコピーし保存しておくことです。ウイルス感染など、何らかの理由でデータを消失してしまっても、バックアップを取った日付のデータから復元が可能になります。
一方、冗長化はシステムトラブルが発生した場合に備え、同一性能のデータを備える「予備」「代替」を用意することであり、バックアップとはまったく別のものです。
冗長化とミラーリングの違い
ミラーリングとは、データ更新時にリアルタイムで複数の場所に同一のデータを保存することです。ひとつのハードディスクが故障したとしても、ほかのハードディスクにデータが保持されているため、データ損失を防ぎ業務継続を可能にします。ハードディスクを二重化にすることから「ディスク二重化」と呼ばれることもあります。
ミラーリングは冗長化の一環ですが、その範囲が異なります。冗長化ではコンピューターやデジタル機器、システムの予備を用意しておくのに対して、ミラーリングで用意する予備はディスクやサーバーといった限定的な範囲とされることが一般的です。
冗長化のメリット
冗長化のメリットには次のようなものがあります。
- リストアの時間なしでシステムを再開できる
- サーバーの負荷分散になる
- 緊急対応が少なくなる
リストアの時間なしでシステムを再開できる
リストアとは、予備システムにバックアップされたデータを本番環境に反映することです。「バックアップを適用する」ともいわれます。
しかし、バックアップはデータ紛失を防ぐことを目的に講じられる施策であるため、データはすぐに使用できる状態にありません。そのため復旧作業には時間を要します。
一方、冗長化がなされていれば代替を起動するだけです。システムやサービスが停止した局面においても速やかに再開されます。
サーバーの負荷分散になる
サーバーを冗長化して複数配置しておくと、アクセス集中時や、DDoS攻撃などサイバー攻撃を受けた際の負荷を分散できます。サーバーを一台構成にしておくよりも、サービスの停止率は著しく低下するでしょう。
緊急対応が少なくなる
火災やテロ、地震など緊急事態発生時の対策としても冗長化は有効です。メインシステムに問題が生じた場合も、メインと同一の性能やデータを有する予備があれば、システムやサーバーの停止を回避できます。
これにより、システム障害が発生した場合の緊急対応の頻度が減少。エンジニアの負荷も軽減されます。
冗長化のデメリット
メリットの一方、冗長化において避けられない課題も懸念されています。
- 一台構成よりもコストが発生する
- 運用工数が増大する
1つ目のデメリットはコストの問題です。本番機と同じ性能の予備システムを用意することになるため、発生する費用は単純計算で倍になります。サーバーの保守・運用を外部に依頼している場合はランニングコストも倍増するなど、コスト面でのデメリットは重くのしかかります。
2つ目のデメリットは運用工数の問題です。予備機は本番機と同一の状態を維持する必要があるため、アップデートやデータの更新時には都度の同期が欠かせません。こうした工数の増加が、エンジニアの負担になることもあります。
冗長化サーバーのシステム構成
サーバーやネットワークを冗長化する、代表的な4つの構成方法を見ていきます。
メリット | デメリット | |
---|---|---|
アクティブ・アクティブ構成 | サーバーへの負荷分散ができる | 導入コスト・ランニングコストが高くなる |
アクティブ・スタンバイ構成 | アクシデント時にも即座の切り替えが可能(ホットスタンバイ)、運用コストを抑えられる(コールドスタンバイ) | 予備サーバーの待機コストがかかる |
マスター・スレーブ構成 | 運用コストを抑えられる | マスター・スレープ切り替え時にタイムラグが発生する |
マルチマスター構成 | すべてのサーバーで書き込み処理が可能 | データの同期が上手くいかなかった場合の整合性が取りにくい |
いずれも一長一短があるため、サービスや業態にあわせて構成を決定する必要があります。
アクティブ・アクティブ構成
アクティブ・アクティブ構成は、メインシステムと予備をすべて稼働させる構成です。平常時はサーバーへの負荷分散ができるうえに、予備が常に稼働している状態であるため、アクシデント発生時でも迅速な切り替えが可能です。
反面、常時システムを複数稼働することになるため、コスト面でのデメリットは避けられません。なお、アクシデント発生時には平常時に行われていた負荷分散が機能しなくなる点にも注意が必要です。
アクティブ・スタンバイ構成
アクティブ・スタンバイ構成は、複数のシステムを用意し、そのうちいくつかを稼働させておく構成です。具体的には、アクシデント発生時のために予備のシステムを待機させておく運用となり、稼働しているメインシステムに異常が発生したら、待機中のものに切り替えて稼働を継続します。
一般的に、待機させているシステムはスタンバイ状態でもコストが発生します。待機システムの数が増えるほどにコストが上昇する点がデメリットになります。
なお、アクティブ・スタンバイ構成は、待機させておくシステムの電源が入っているかどうかによって、「ホットスタンバイ」と「コールドスタンバイ」の2種類に分類されます。
ホットスタンバイ
ホットスタンバイは、平常時でも待機システムの電源が入っており、メインシステムとのデータ同期が実行されている状態です。そのためアクシデント発生時でも速やかな切り替えが可能で、平常時と変わらずシステムの稼働を継続できます。
コールドスタンバイ
コールドスタンバイは、平常時には待機システム・設備の電源が入っていない状態です。データの同期も実行されていないため、アクシデント発生時の切り替えには時間を要します。一方、待機中に電源が入っていないことから、その間のコストはホットスタンバイよりも軽減されます。
マスター・スレーブ構成
マスター・スレーブ構成は、複数用意したシステムを連携して稼働させるにあたり、そのうちのひとつに管理・制御役(マスター機)を割り当て、残りをマスター機の管理・制御下で動作する「スレーブ」に役割分担する構成です。
主にデータベースの冗長化で用いられる構成で、平常時はマスターのみを運用し、スレーブはマスターのデータ複製(バックアップ)を行います。
スレーブはデータの読み込みのみが可能で、書き込みはできません。マスターにアクシデントが発生した際は、スレーブのいずれかをマスターに昇格してシステム稼働を継続します。この切り替えにはタイムラグが生じるため、その間システムやサービスの提供が停止する点がデメリットです。
マルチマスター構成
マルチマスター構成は、前項のマスター・スレーブ構成のような役割分担はなされず、すべてのシステムをマスターとする構成です。すべてのシステムで書き込みも可能となり、切り替え時のタイムラグも発生しないため、アクシデント発生時でも停止することなく稼働できます。
ただし、どのシステムからも書き込みができるがゆえに、同期に不具合が生じるとデータの整合性がとれなくなる可能性があります。マルチマスター構成には、整合性を保つための仕組み作りも不可欠です。
冗長化のための機能・ソフトウェアサービス
冗長化を構成するための代表的な機能やサービスには次のようなものがあります。
- RAID
- DRBD
- 仮想サーバーやクラウドシステムの冗長化
RAID
RAID(Redundant Arrays of Inexpensive Disks)は、複数のハードディスクを仮想的に1つのディスクとして認識・表示させ、まとめて運用・管理・制御する技術です。
RAIDは1台で「アクティブ・スタンバイ構成」を完結できる仕組みになっており、ハードディスク故障時の復旧・処理の高速化を可能にします。
DRBD
DRBD(Distributed Replicated Block Device)は、TCP/IPネットワークを介してリアルタイムに複数サーバーをミラーリングできる、オープンソースソフトウェアです。無料で利用できるため、コストを面の大きなアドバンテージがあります。
仮想サーバーやクラウドシステムの冗長化
VMWareやGoogle Cloud(GCP)などの仮想サーバーやクラウドシステムを利用して、システムの冗長性を確保することも可能です。これらのサービスでは、物理サーバーと合わせて仮想サーバーを複数構築して冗長性を担保します。
クラウドサービスであるため、物理サーバーの購入が必要なく、DRBDと同じく導入コストを抑えられる点がメリットです。
このように、冗長化を構成するには、サーバーやクラウドに関する知見は欠かせないものです。ネットワークエンジニアとしての活躍を目指している方は、冗長化についての知識を深めておきましょう。
- 冗長化とは、コンピューターやデジタル機器、システムの故障や障害の発生に備え、予備システムや設備を用意しておくこと
- 病院や金融設備、生活インフラなど、一瞬でも停止が許されない分野においては、冗長化は不可欠な施策となる
- バックアップは、1週間ごと・1ヶ月ごとのように期間を決めて定期的にデータをコピーし保存しておくことであり、システムの「予備」「代替」を用意する冗長化とは明確に異なる
- ミラーリングは、データ更新時にリアルタイムで複数の場所に同一のデータを保存することであり、冗長化の限定的な範囲を担うもの
- 冗長化は迅速なシステム復旧のほか、サーバーの負荷分散や緊急対応の頻度減少などのメリットがある
- 一方、コストや運用工数の増大がデメリットとして懸念される
- 冗長化には複数の構成方法があり、それぞれに一長一短があるため、サービスや業態にあわせて構成を決定する必要がある
- 冗長化を構成するための代表的な機能やサービスには「RAID」「DRBD」、あるいは仮想サーバーやクラウドシステムを利用して、システムの冗長性を確保する方法がある