検索

基幹系システムに匹敵する高い可用性


ハードウェアの冗長構造によるシステムの保護

あらゆるシステムは、大規模になるほど多くのサブシステムが搭載されます。そのため、たとえ個々のサブシステムに障害が発生する頻度が低くても、合計すると高い確率で障害が発生する可能性があります。

Teradata のシステムでハードウェア障害が発生した場合、その情報は診断サブシステムを介して、SWS という Teradata のサービス・ワークステーションに通知されます。数百ノードという大規模な MPP構成でも、ハードウェアに関するあらゆる情報はリアルタイムに SWS に集約されるため、データベース管理者や技術員は SWS を監視することで、Teradata を一元的に管理できます。

Teradata のハードウェアは、I/Oコントローラ、電源、冗長ディスク(RAID)、Bynet(*1)、ファンといった、ほとんどのコンポーネントが 2重化されているため、どこか 1箇所で障害が発生しても、データベースやアプリケーションに悪影響を与えることはありません。そして、多くのハードウェア・コンポーネントは “ホットスワップ” 機能によりシステム稼働中にモジュールを交換することができるため、ほとんどのハードウェア障害は、ユーザーが気づかないうちに解決できます。

ソフトウェアによるデータの保護

Teradata には、トランザクションを障害から保護するための “一時ジャーナル” や、ハードウェア障害や操作ミスからデータを効率よく復元するための “永久ジャーナル” など、さまざまな保護機能が備わっていますが、今回は、Teradata のユニークな機能である “フォールバック” と “VPROCマイグレーション” について説明します。

フォールバック

Teradata は、ハッシュ分散機能によりテーブルのデータを行単位でそれぞれの論理ディスクに格納します。このとき、フォールバックを指定すると、基本行が格納されている論理ディスクとは別の論理ディスクにコピー行が作成されます (図1)。

そのため、フォールバックが指定されていれば、仮に基本行が格納されているディスクに障害が発生した場合でも、処理を継続することができます。フォールバックを指定しても、そのテーブルに対する SELECT文による読み込み操作のパフォーマンスは劣化しません。しかし、INSERT文や UPDATE文などの書き込み操作は 2重に発生するため、より多くのシステム・リソースを必要とします。従って、全てのテーブルに無条件に指定するのではなく、重要なテーブルを選択して設定するのが望ましい方法です。

VPROCマイグレーション

フォールバックがディスク障害からデータを保護するのに対して、VPROCマイグレーション(*2) はノード障害を救済します。VPROCマイグレーションとは、Teradata のノードに障害が発生した場合、そのノードで稼働している Teradata のプロセスが他のノードに自動的に乗り移る仕組みです(図2)。

Teradata の MPPシステムは、同じディスク・アレイにアクセスできる、クリークと呼ばれる 2つ以上のノードの集合から構成されています。VPROCマイグレーション機能により、障害が発生したノードのプロセスが同一クリーク内の他のノードへ自動的に移動するため、障害ノードを隔離して処理を続行できます。

究極の高可用性を実現する “Teradataデュアル・アクティブ・ソリューション”

これまで述べてきたように、Teradata はシングル・システムにおいて非常に高い可用性を提供しています。しかし、シングル・システムでいくら可用性を高めたとしても、災害や大規模な停電には対処できない場合があります。そこで考えられたのが、Teradataデュアル・アクティブ・ソリューション(TDAS)です(図3)。

TDAS により、2つのシステムを物理的に離れた場所に配置し、万一災害が発生した場合には直ちにフェールオーバーさせることが可能です。

通常の災害復旧用システムが、平常時は使われないケースがほとんどであるのに対して、TDAS はその名前が示すとおり、平常時も両方のシステムを活用することができます。2つのシステムを常にアクティブにすることで、大切な投資を無駄なく活用できます。さらに、システムA とシステムB はハードウェアや OS が異なっても構いませんし、データもミラー・イメージである必要はなく、重要なデータやアプリケーションだけを 2重化することができます。

このように、優れた ROI の究極の高可用性システムを柔軟に構築することができます。

まとめ

Teradata は可用性を高めるための仕組みを数多く提供していますが、それらの機能を適用するには、冗長構造を組み込むためのコストがそれなりに必要になります。従って、可用性のレベルを決定する前に、システムがダウンした場合のビジネスインパクトを慎重に検討する必要があります。保険と同じように、投資とリスクのバランスを考慮することが最も重要です。

  • *1: Bynet とは、MPPシステムの高速なノード間通信を可能にするTeradata のハードウェア・コンポーネント。

  • *2: VPROC とは、Virtual Processor(仮想プロセッサー)の略で Teradata のソフトウェア・コンポーネント。代表的なVPROC には、アプリケーションとデータベースのインターフェースを司る PE(Parsing Engine)と、ディスク上のデータを制御する AMP(Access Module Processor)がある。