ストレージの機能

ストレージには企業活動を支える様々なデータが格納されます。つまり、ストレージ装置内に格納されているデータは企業にとってもっとも重要な資産、と考えることができます。

この観点から、ストレージ装置にはディスクなどの障害や地震や火災などから業務データを守る機能や、効率よくデータを格納する機能が備わっています。

今回はストレージ装置が有するレプリケーション、スナップショット、重複除外、圧縮といった機能について3回に分けて説明します。

レプリケーション

レプリケーションが必要な理由

ストレージには企業活動を支える重要なデータ、例えばお客様の情報、取引記録、製品を製造するために必要な設計情報などが格納されます。これらの重要なデータを格納するストレージに障害が発生し、業務データが失われたらどうなるでしょうか。企業活動はストップしてしまいます。最近では洪水により多大な被害が発生していますし、将来的には南海トラフなどの大地震の発生も懸念されます。こうした自然災害はその影響範囲が広大であることから、物理的に離れた場所にデータを退避させておくことが災害発生時にいち早く業務を再開するための有効な手段と考えられています。

遠隔地へ業務データをレプリケーションする方法は大きく以下の2つに分類されます。

・サーバの機能を利用(Windows環境のDouble Take(1)やOracle社のData Guard(2)など)
・ストレージ装置の機能を利用

サーバの機能を利用する方法は、サーバの内蔵ディスクのデータもレプリケーションできるというメリットはありますが、サーバのCPUを使用するため、業務アプリケーションの動作に影響を及ぼすことがあります。ストレージ装置の機能を使用する方法では、サーバのCPUを使用しないため、業務アプリケーションの動作に影響を与えることはありません。また、サーバのOSに依存しない、サーバごとにレプリケーションの設定をする必要がないというメリットもありますが、一方でこれはどのメーカーのストレージ装置にも言えることですが、同じ機種のストレージ装置間でしかサポートされません。

(1) Windows環境で高速にデータ複製(レプリケーション)する機能。
(
2) データ保護を目的としたデータベースの自動同期(レプリケーション)機能。

ここでは、ストレージ装置が有するレプリケーションがどのようなものなのか、について解説します。

レプリケーションの種類

レプリケーションの方式は、大きく分けて同期方式と非同期方式に分類されます。

同期方式
ストレージ上のデータが更新されると、その変更データは即、遠隔地のストレージにレプリケーションされます。この方式の場合は、業務が稼働する本番環境のストレージと遠隔地のストレージに格納されているデータを同じものにすることができますが、遠隔地のストレージへのデータのレプリケーションが完了して初めて書き込み完了とサーバに通知されるため、応答時間が長くなるということを考慮する必要があります。また、同期方式では応答時間の影響を少なくするために、業務データをレプリケーションするネットワークの帯域を大きくする必要があるため、ダークファイバ(*3)など利用する必要があることから、2台のストレージ間の距離は100km程度に制限されます。

(*3) 電気通信事業者などが敷設している光ファイファーで当該事業者が使用していな回線。主に法人向け専用線で使用される。

非同期方式
本番環境と遠隔地の環境とではデータには差分が発生しますが、遠隔地へのデータレプリケーショの完了を待つことなく、書き込み完了となるため応答時間が長くなることはありません。そのため非同期方式では、レプリケーションの完了を待つ必要がないため、TCP/IPネットワークで構成されるWANを伝送路として構成することができます。このため、2台のストレージ間の距離に制限はありません。

  同期方式 非同期方式
データの差分 発生しない 送信間隔分の差異
応答時間 長い 短い
距離 制限あり(100KM程度以内) 制限なし

表 1:レプリケーションの種類

同期方式

同期方式は、ストレージ装置に障害が発生した場合、データ差がない同じデータで即時システム継続できるようデータ複製先が同じデータセンター内など近距離間で、以下のように2台のストレージ間でデータがレプリケーションされます。証券会社や社会インフラのシステムなどデータの消失が許容できないシステムで使用される構成です。

  • 図 1 :同期方式

①サーバからプライマリストレージへのデータ書き込みが発生
②プライマリストレージがセカンダリストレージに書き込みデータをレプリケーション
③セカンダリストレージ上での書き込み完了が通知
④プライマリストレージからサーバに書き込みI/O完了が通知

④の時点でサーバからの書き込みI/Oが完了したことになります。プライマリストレージ装置とセカンダリストレージ装置間では書き込みI/O発生のたびにレプリケーションが発生し、その都度、遅延が発生しますので、結果としてサーバ上でのレスポンスタイムが低下する懸念が生じます。つまり、同期方式の場合は、①~④までにかかった時間の合計がI/Oに必要な時間ということになります。

非同期方式

非同期方式は、メインのデータセンターが被災した場合の災害対策として、被災の影響がない遠方の地でシステム継続するために主に使用されます。遠距離間でレプリケーションするため、プライマリストレージ装置への書き込みとストレージ装置間のレプリケーションはそれぞれ独立(非同期)して行われます。非同期方式はレプリケーションによる遅延をなくすことを優先し、多少のデータ消失は許容できるシステムに適用されます。

  • 図 2 :非同期方式

①サーバからプライマリストレージへのデータ書き込みが発生
②プライマリストレージからサーバに書き込みI/O完了が通知
③プライマリストレージがセカンダリストレージに書き込みデータをレプリケーション
④セカンダリストレージ上での書き込み完了が通知

②の時点でサーバからの書き込みI/Oが完了したことになるため、サーバはセカンダリストレージ装置へのレプリケーションのための遅延の影響を受けません。非同期方式の場合は、①と②の時間の合計がI/Oに必要な時間ということになります。一番時間がかかるのは③の部分なので同期方式と比較してI/Oに必要な時間が短くて済むということがわかります。ただし、プライマリストレージ装置からセカンダリストレージ装置へのレプリケーションが完了(③)する前にプライマリストレージ装置が被災した場合は、その書き込みデータはセカンダリストレージ装置には書き込まれず、消失することになります。

書き込み順

プライマリストレージ装置上で書き込まれたデータはブロックと呼ばれる単位に分割されて、セカンダリストレージ装置にレプリケーションされます。例えば、ストレージ装置のブロックサイズが8KBで、100KBの書き込みデータをレプリケーションする場合、100KB÷8KB=12.5、つまり、13個のブロックに分割されます。

同期方式の場合、書き込みデータ順番は保持されてレプリケーションされます。しかし非同期方式の場合、プライマリストレージ装置への書き込みとプライマリストレージ装置からセカンダリストレージ装置へのレプリケーションは独立して(非同期)行われるため、書き込みデータブロックの順番を保持する仕組みが必要になります。

非同期方式で書き込み順序を維持する方法はストレージ装置によりさまざまな方法がありますが、キャッシュにレプリケーション対象の書き込みデータブロックを保持し、一定時間ごとにそれを取り出しレプリケーションするという方式もあります。

  • 図 3 :書き込み順

上の図の例では、プライマリストレージ装置上のキャッシュにレプリケーション対象のデータブロックが蓄積され、一定時間が経過するとレプリケーション対象のデータ(N-1)としてセカンダリストレージにレプリケーションされます。セカンダリストレージ上ではこの書き込みデータブロックの前に受信していたデータ(N-2)をディスクに書き込みます。このサイクルを繰り返すことで、プライマリストレージ上で発生した書き込みデータ順序を保ってセカンダリストレージ装置にレプリケーションすることが可能となります。

静止点

プライマリストレージ装置とセカンダリストレージ装置間のレプリケーションは連続して行われます。したがって、書き込みデータのレプリケーション中にレプリケーション用の回線が切断されたり、プライマリストレージ装置が損傷を受けたりすると、セカンダリストレージ装置内のデータは不完全なものになることがあります。このため、この後で述べるスナップショットなどを使ったバックアップとは異なり、データの整合性は必ずしも保たれず、いわゆるクラッシュコンシステンシ(*4)の状態となります。ストレージ装置のレプリケーションによる災害対策を検討する場合は、データベースのロールバックなどアプリケーションレベルでの復旧を念頭に置いてください。

(*4)アプリケーションレベルでデータの整合性がとれていない状態。

復旧オペレーション

一般的にセカンダリストレージ装置上のLUNはサーバから書き込み禁止状態となっています。

Failoverという操作をすることでセカンダリストレージ装置上のLUNが読み書き可能な状態となります。

まとめ

今回取り扱った内容は以下の通りです。

・レプリケーション方式には同期方式と非同期方式がある。
→同期方式は常に同じデータが同期され近距離で使用。非同期方式はデータ転送が独立(非同期)しているため遠距離で災害対策として使用。
・同期方式は、レプリケーション先でデータ同期が完了してからサーバへI/O書き込み完了を通知。
・非同期方式は、プライマリストレージにデータを書き込んだらサーバへI/O書き込み完了を通知し、その後セカンダリストレージにデータをレプリケーションする。

次回予告

次回はスナップショットについて説明します。

それではまた次回、地味でディープなストレージの世界でお目にかかりましょう。

[ 著者紹介 ]
矢澤 会璃子
デル・テクノロジーズ株式会社 プロフェッショナル・サービス事業本部 ソリューションズアーキテクト

OSやエンタープライズシステムに関連するソフトウェアのサポート経験後、EMCジャパン(現デル・テクノロジーズ)でストレージやDRソリューションの設計、構築を担当