よくある質問・用語集

サーバ構築のデージーネットTOP > OSS情報 > よくある質問・用語集 > 用語集 > 冗長化とは

  • もっと調べる
  • どうやって使う?

冗長化とは

冗長化とは、システムに何らかの障害が発生した場合に備えて、障害発生後でもシステム全体の機能を維持し続けられるように予備の装置を平常時からバックアップとして配置し運用しておくことである。一瞬の停止も許されないシステムで採用され、冗長化の手法には、サーバの二重化による「サーバの冗長化」、「ストレージの冗長化」、回線経路の二重化による「ネットワークの冗長化」などの複数の手法がある。

冗長化はなぜ必要か?

一般的に、システムの障害には次のようなものがある。

  • ハードウェアの故障
  • 基本ソフトウェアの停止・誤作動
  • アプリケーションの停止・誤作動
  • ネットワークの故障や混雑
  • リソースの不足

これらの障害を完全に防止しようと思うと、非常に高価なハードウェアを準備したり、故障や誤作動が発生しないソフトウェアを製作するといった対応が必要となり、膨大なコストがかかってしまう。また、リソースの不足については、あらかじめ予測することが難しく、必要以上の能力を準備するには高いコストを払う必要がある。

冗長化のメリット

冗長化することには、様々なメリットがある。

  • 障害対応が自動的に行える

    ソフトウェアのバグ、ハードウェアの故障、災害などでシステムが停止したときに、バックアップからシステムを再構築するにはかなりの時間がかかる。また、夜間や休日に緊急の事案が発生した場合には、対応体制を整えることが難しい。しかし、冗長化されたシステムでは、障害対応は自動的に行われる。ダウンタイムが最小化できるとともに、対応コストは大幅に低下する。

  • 負荷を分散することができる

    システムに大きな負荷が掛かった時に、システムが冗長化されている場合には処理を分散することができる。

  • メンテナンスしやすい

    セキュリティの問題などでソフトウェアをバージョンアップしたり、ハードウェアの交換が必要になった時には、システムを停止したり、再起動したりする必要がある。冗長化されていないシステムでは、利用者が少ない休日や夜間に作業を行うことが多くなる。しかし、冗長化されていれば、部分的に停止してメンテナンスを行うことができる。

  • エンジニアの働き方改革につながる

    メンテナンス性の向上や障害からの自動復旧によって、夜間や休日の対応、緊急の対応が大きく減少する。そのため、エンジニアの働き方改革につながる。

冗長化のデメリット

冗長化を行なうデメリットは、なんといってもコストが掛ることである。一般的には倍以上のコストが必要になる。

冗長化と可用性

可用性とは、簡単に言えば、止まらずに動く性能のことである。コンピュータを使ってシステムを作ると、障害などのためにサービスが停止してしまう可能性がある。この停止時間が少ないシステムのことを、可用性が高いシステムという。

可用性の指標としては、稼働率を用いることが多い。稼働率は、次のように計算することができる。

MTBFとMTTR

稼働率

この式からも分かるように、可用性を高めるには、次のような対処が必要である。

  • システム障害の要因をできるだけ減らし、できるだけ停止しないようにする
  • 停止した場合のダウンタイム(修理時間)を最小限にする

システムの冗長化は、この2つの目標を達成するために用いられる手法である。

冗長化の仕組みの例

冗長化は、ネットワークやサービスなどの様々なポイントで行われる。以下は、代表的な冗長化の仕組みの例である。

STP 〜スイッチ経路の冗長化〜

STPは、スイッチなどで構成されるネットワークを冗長化するためのプロトコルである。通常、ネットワーク上に複数の到達経路を作ると、ネットワーク上でパケットがループしてしまう。STPでは、経路の重複を自動的に検知して、適切な経路のみを使うようにパケットのループをブロックする。もし、何らかの原因で経路が利用できなくなった場合には、それを検出して経路を切り替える。

VRRP 〜IPアドレスの冗長化〜

VRRPは、ルーターなどを冗長化する仕組みである。STPが経路を冗長化するのに対して、VRRPはゲートウェイなどのIPアドレスを冗長化すると言い換えることもできる。VRRPに参加する複数の機器(ノード)が協調し、サービスで利用する代表IPアドレスを割り当てるノードを決定する。もし、代表のノードが故障した場合には、自動的に検知し他のノードに切り替えが行われる。

ボンティング 〜NICの冗長化〜

ボンディングとは、1台のサーバに複数のNICを搭載し、それらのNICを一つの仮想的なNICとして扱い、冗長化、負荷分散を行う仕組みである。サーバとスイッチやネットワークの間を冗長化するのに利用する。

プロキシ・ロードバランサ 〜サーバの冗長化〜

サービスを提供するサーバを何台か用意し、ロードバランサー(負荷分散装置)を使って処理を振り分けることによって冗長化を実現する仕組みである。サービスを冗長化する。

QoS 〜サービス品質の確保〜

QoSとは、パケットの種類を判別して遅延やパケットロスが許されないものを優先的に処理することで、ネットワークの混雑を回避する仕組みである。

RAID 〜ハードディスクの冗長化〜

RAIDとは、複数のハードディスクをまとめて一台の装置として管理することで、ハードディスクの冗長化を実現する仕組みである。

アプリケーションレベルの冗長化

これらの冗長化の方法は、ネットワークや機器を冗長化する。一方で、OS上で動作するアプリケーションが停止してしまう場合も想定され、アプリケーションレベルでの冗長化も考慮する必要がある。アプリケーションレベルで冗長化を行うためには、専用のソフトウェアが必要である。代表的なソフトウェアとしては、次のようなソフトウェアが知られている。

Heartbeat 〜アプリケーションレベルの冗長化〜

Heartbeatとは、クラスタリングを実現するためのソフトウェアである。クラスタリングは、複数台のシステムを組み合わせて1つのシステムに見せることで、システムの一部の機能に障害が発生しても機能が停止しないようにする仕組みである。メールサーバやWebサーバ、データベースサーバなど、様々なサービスの冗長化に利用できる。

Pacemaker 〜アプリケーションレベルの冗長化〜

Pacemakerとは、Heartbeatの後継バージョンであり、Heartbeatからリソース制御の機能を独立させたものである。Heartbeatから独立することにより、Pacemakerは対応するサービスが増え、「crmシェル」の実装により簡単に動作するようになった。

DRBD 〜データの冗長化〜

DRBDとは、HAクラスタを構築するために設計されたブロックデバイスシステムで、ネットワークを介して2台のサーバのハードディスクをミラーリングすることができるソフトウェアである。専用のディスクやインタフェースを必要とせず、Heartbeatと連携する事で、データベース、nfs、sambaなどのHAクラスタを安価(共有ストレージ無し)に実現する事が可能である。

Keepalived 〜IPアドレスの冗長化〜

Keepalivedとは、VRRPを実装するソフトウェアである。LinuxのLVSという機能を利用してロードバランサー(負荷分散装置)として動作させることもできる。また、それをGUIで管理するソフトウェアなども公開されている。

冗長化の方法や構築の事例

冗長化の対象になるのは、重要で停止することができないシステムである。例えば、航空管制のシステムや銀行のオンラインシステムなど、重要なシステムではサーバだけでなく、ネットワーク回線、ネットワーク機器など、関係しているすべての要素を冗長化しようとする。

近年は、インターネットのシステムでの冗長化を行う場合が多くなっている。例えば、次のようなシステムが冗長化の対象となる。

WEB-DBサーバ

WEB-DBサーバの冗長化の方法

Pacemakerなどのクラスタソフトウェアとデータベースソフトウェアを効果的に組み合わせることで、 WEB-DBサーバを冗長化することができる。ここではWEB-DBサーバの冗長化について説明をする。

メールサーバ

メールサーバの冗長化の方法

メールサーバは、コミュニケーションツールとして、ビジネスではなくてはならないものになっている。クラウドサービスなど、外部のサービスを利用することもできるが、ビジネスの重要な機密情報や顧客情報などが含まれている可能性もあり、自組織内に置いた方が安全と考える組織がほとんどだ。ここではメールサーバの冗長化について説明をする。

構築事例:メールサーバ冗長化

オープンソースソフトウェアのHeartbeat/DRBDを使って、メールサーバを冗長化した事例である。MTAとしてはPostfixを採用し、OpenLDAPを使ってユーザ管理を実施した。さらに、LDAPでのユーザ管理を簡単に行えるよう、postLDAPadminを利用した。

DHCPサーバ

構築事例:DHCPサーバ冗長化(IPv6対応)

エンドユーザ向けにIPv6のIPアドレスの払い出しをしていくため、IPv6対応のDHCPサーバ構築を行った。重要なサービスのため、冗長化したDHCPサーバとして提供した事例である。

LDAPサーバ

構築事例:OpenLDAPによるLDAPサーバのマルチマスタ構成

OpenLDAPのミラーモードでLDAPサーバを二重化した事例である。認証システムの冗長構成が求められていたが、冗長化ソフトウェアの導入はコスト面で問題があった。OpenLDAPの柔軟性を活用し、OpenLDAP標準機能であるミラーモードを使う事で、特別な冗長化ソフトウェアを使わずに、認証システムを冗長化した。

データベースサーバ(PostgreSQL、MySQLなど)

MariaDB MaxScale〜OSSのデータベース向け負荷分散ソフトウェア〜

MariaDB MaxScaleとは、オープンソースのデータベース向けプロキシサーバである。特にMySQL互換のデータベースに特化している。MariaDB MaxScaleはアプリケーションとデータベースの間で処理を中継するプロキシサーバで、データの整合性を保持したまま負荷分散を行うことができる。ここではMariaDB MaxScaleについて説明をする。

構築事例:PostgreSQLサーバ冗長化

Postgres、pgpoolで冗長構成されたWEB-DBシステムを、DRBD、Heartbeatを使ったシステムに置き換えることで性能向上を実現した事例である。

監視サーバ(Zabbix、MRTGなど)

Zabbixの冗長化の方法

デージーネットでは、OSSのクラスタリングソフトウェアであるPacemaker/corosyncを利用して、ZabbixをHAクラスタ構成で導入することを提案している。Zabbixで利用するデータベースも、2台のサーバで冗長構成を取り、サーバ間でのデータ同期にはDRBDを利用している。

DNSサーバ

構築事例:マルチDNS環境の構築

マルチDNS環境を構築した事例である。マルチDNS環境とは、複数のDNSサーバソフトウェアを使ってDNSサーバを構成することで、特定のソフトウェアの脆弱性によって外部から攻撃を受けてDNSサービスが停止することがないようにするのが目的だ。

NFSサーバ

NFSサーバの冗長化の方法

NFSの仕組みは、LinuxやUnixのカーネルに完全に統合されている。そのため、オープンソースの各種クラスタソフトウェアとの相性がとても良いのが特徴だ。ここではNFSサーバの冗長化について説明をする。

構築事例:NFSサーバ冗長化

WWW上の情報検索サービスのために、複数台のサーバでコンテンツを共有し、サービスを安定稼動させたいという要望があった。デージーネットのクラスタリング技術を応用し、HAクラスタ化したNFSサーバを構築した事例である。

ファイルサーバ

Windowsファイル共有サーバの冗長化の方法

Windowsファイル共有は、一般的にはWindows Serverを使って行われる。しかし、Windows Serverのクラスタ製品は一般的ではない。inux上で動作するSambaとPacemakerなどのクラスタソフトウェアを組み合わせることで、Windowsファイル共有のサーバを冗長化することができる。ここではWindowsファイル共有サーバの冗長化について説明をする。

構築事例:SambaによるWindowsファイルサーバの冗長化

Sambaを使って、Windowsネットワーク用のファイルサーバを構築した事例である。ファイルサーバが故障し、業務が停滞することがないよう、ファイルサーバの冗長化も行った。冗長化は、OSSのクラスタソフトウェアであるPacemakerとcorosyncを使って行った。また、万一に備えてSTONITHも導入した。

仮想サーバやクラウド上のシステムの冗長化

VMWareのような仮想システムは、障害が発生すると自動的に他のノードに処理をマイグレーション(移動)する機能を持っているものがある。これも冗長化の機能の一つである。また、一般的にAWSのようなIaaSやPaaSなどのクラウドシステムも冗長性を考えて設計されていることが多い。

しかし、これらの冗長化は、あくまで仮想ハードウェアレベルでの冗長化である。つまり、アプリケーションの停止までは担保されていないし、担保することも不可能である。そのため、仮想サーバやクラウド上に重要なサービスを配置する場合には、PacemakerやDRBDなどの冗長化を行うソフトウェアを利用して、アプリケーションレベルの冗長化を担保する必要がある。実際に、AWS上でPacemakerを利用して冗長化を行っている事例も多い。

デージーネットの冗長化に対する取り組み

デージーネットでは、ISPなどのミッションクリティカルなサーバの構築をする機会が多い。そのため、冗長化については、非常に重要なテーマとして取り組んでいる。

デージーネットの冗長化の軌跡

デージーネットは創業以来、15年以上に渡ってシステムの冗長化に取り組んできた。特に、クラスタサーバの構築では、数多くの実績を持っている。

デージーネットでは、2005年までは、UnixWare Reliant HAやCompaq NonStop Clusterなどの商用製品を利用してクラスタサーバを構築してきた。しかし、こうした製品は非常に高コストで、インターネットサーバの構築には見合わなかった。しかし、2005年にオープンソースソフトウェアのHeartbeatとDRBDを使った冗長化に成功し、国内では他社に先駆けて、OSSを使ったクラスタサーバ構築サービスの提供を開始した。その後、RedHat Cluster、Pacemaker、corosyncなどのクラスタソフトウェアでもサービスを開始し、用途や予算に応じて、様々な冗長構成を提案することができる体制を築いている。現在では、年間100セット以上のクラスタサーバを構築している。また、「クラスタ.jp」というクラスタの情報を集めたサイトを運営している。

【カテゴリ】:クラスタ  システム管理  ネットワーク  

  • もっと調べる
  • どうやって使う?

関連用語

冗長化に関連するページ(事例など)


デージーネット用語集のページです。「冗長化」という用語と関連情報について説明します。「冗長化」について情報を収集する際、サービスをご検討いただく際などに用語集ページをお役立てください。

冗長化とは先頭へ