このページの本文へ

前へ 1 2 次へ

最新エンタープライズストレージの実力を探る 第20回

重要なデータをいつでも確実に使うために

データ保護の技術 可用性を高める技術

2011年07月26日 09時00分更新

文● 渡邉利和

  • この記事をはてなブックマークに追加
  • 本文印刷

 エンタープライズストレージと言っても、所詮はでっかいハードディスク、位に認識しているユーザーも相当数いるのではないかと思われる。確かに、以前はあまり顕著な進化を見せず、せいぜいHDDの容量増に合わせて最大データ容量が大きくなる程度だった時期もあったが、最近は高度な機能を次々と実装し、IT関連製品の中でも特に進化のペースが速い製品分野となっている。ここでは、最近のエンタープライズストレージで実現されているさまざまな最新機能を概観しておこう。

データ保護の技術

 保存されたデータを確実に保護することは、ストレージの存在意義に関わる根源的な要素だといえる。ユーザーがストレージに期待するもっとも根源的な機能は、データを記録することができ、次回以降アクセスした際には記録した通りのデータがその通りに読み出せること、である。従って、記録されている間にデータの内容が勝手に変化してしまったり、読み出し不能になってしまうようなことは極力避けなくてはいけない。

 もっとも低レベルでの取り組みとしては、磁気記録を行なうHDDのための要素技術として高密度で安定的な記録を行なうための磁性体材料の改良などの物性物理学の基礎研究に近い分野からのさまざまなレベルの研究開発の積み上げが行なわれているのだが、ここではHDD単体レベルの話は除外し、ストレージシステムのレベルで行なわれている取り組みを紹介しておこう。

スナップショットとバックアップ

 データ保護を考える上では、「破損に備えてコピーを作っておく」という手法が基本となる。典型的なのはバックアップだが、バックアップ自体はストレージシステムの機能ではなく運用面での取り組みとなる。一方、最近のストレージシステムで広く採り入れられるようになった仕組みとして「スナップショット」がある。スナップショットは、「ある時点でのストレージ上のデータを保存する」という機能であり、バックアップと同じに見えるかもしれないが、実現するための技術が異なっている。

 バックアップは本質的には単純なデータコピーであり、考え方としてはシンプルだが、実現に当たってはそれなりの検討要素がある。影響が大きいのは、アプリケーションの複雑化などの影響もあってデータサイズが増大し続けている点だ。

バックアップとスナップショット

 現在のEthernetの速度を基準に考えれば、数MB程度のファイルならネットワーク経由でコピーするのも一瞬で終わるが、数GB単位ともなるとさすがに相応の時間を要する。現在のエンタープライズシステムでは、TB~PB級のデータベースを運用している例もあるだろう。こうなると、全データを読み出してコピーする、という作業も数時間がかりになる。データベースはもちろん、アプリケーションのデータをコピーする際の問題点は、運用中にコピーすることが難しいことだ。データのあちこちが時々刻々と書き換えられていってしまうので、単純に先頭から順次コピーのためにデータを読み出した場合、あとの方のデータがその後の処理で書き換えられてしまった結果、全体としては整合性の取れないデータになっている可能性がある。

 こうした問題を避けるためには、アプリケーション側で整合性を保証できる形のデータをストレージに書き出し、これを一気にコピーする必要がある。当然、コピーが完了するまでの間はデータの書き換えは禁止しなくてはいけない。これが、スナップショットの基本的な考え方になる。ただし、何の工夫もなくこれを実施しようとすれば、データのコピーが完了するまではアプリケーションの動作を停止させておかなくてはならないことになり、実運用上は問題が大きい。そこで、ストレージ側で特殊な機能を実装することで実用的なソリューションとしたのがスナップショット機能ということになる。

 スナップショットでは、データそのもののをコピーは後回しとし、データセットを構成するブロックのリストを保存する。その後、必要に応じてデータそのものをコピーをバックエンドで実行する。一方で、アプリケーションによるデータの書き換えが発生した際には、元のデータブロックはそのままキャッシュに保存しておき、新たにブロックを割り当てて更新データを記録しておく。

スナップショットのメカニズム

 スナップショット作成時点のデータを参照したい場合は保存されたリストに従ってブロックを読み出し、最新のデータにアクセスしたい場合には、その後更新された新しいブロックの方を参照する、という形だ。COW(Copy on Write)型のファイルシステムの機能そのものだともいえる。独自にジャーナリングファイルシステムやCOWファイルシステムを実装したNASの場合は容易に実装できるが、ブロックアクセスを中心とするSANの場合は、仮想化技術との組み合わせによって実現する必要がある。

 スナップショットは、データの世代管理のような用途にも使われるが、バックアップのための予備作業として使われることも多い。前述の通りバックアップには長時間を要するが、ある時点でのスナップショットを作成しておき、そのスナップショットをバックアップする形にすれば、アプリケーションの動作を止めずにバックアップする(オンラインバックアップ)が安定的に行なえるためだ。

災害対策で重要なレプリケーション

 スナップショットは、ストレージシステムの筐体内部でのデータコピーが基本だが、ハードウェアの致命的な障害や、サイト自体の運用停止に備える場合には遠隔地のストレージにデータをコピーしておきたい。こうした用途に使われるのがリモートレプリケーションとなる。DR(Disaster Recovery:災害復旧)の手段として、従来はバックアップデータを遠隔地に移動する、というやり方が行なわれていたが、データ回復のタイミングがバックアップ作成時点まで遡ってしまう。そのため現在のリモートレプリケーションでは、ネットワークを介してリアルタイムでデータコピーを行なう手法が利用可能になっている。

レプリケーションのメカニズム

 実際には、データの重要度や拠点間の距離やネットワークの回線速度などに応じて複数の実装手段があり、適宜使い分けられている。低遅延で高速なネットワークで常時接続されている拠点間では、ストレージに対して書き込みが行なわれた場合に、遠隔地のストレージに対しても同時に同じ内容を送信して書き込む、同期レプリケーションが利用可能だ。一方、充分な回線帯域が確保できない場合などには、どのブロックにどのような変更が行なわれたか、というトランザクションログを遠隔地に転送し、転送先のストレージ上でログを元にデータを復元するという手法も利用される。生データを直接転送するよりも転送するデータ量を減らせることもあるが、最大のメリットはある程度のタイムラグを許容できる点で、非同期レプリケーションとして実装されることだ。この場合、データ書き込みが集中したタイミングなどでは同期遅れが発生することもあるが、相対的に安価にDRシステムを構築する際に有用な機能となる。

 こうしたデータ保護機能は、サーバー上で稼働するソフトウェアで実装しようとすると、どうしても生データを直接扱う形になってしまい、オーバーヘッドが大きくなる。ストレージ上に実装された“ストレージソフトウェア”とすることで、高度な機能をパフォーマンス劣化なしに実現できるようになってきているのが最近のエンタープライズストレージの特徴でもある。

(次ページ、可用性を高める技術)


 

前へ 1 2 次へ

カテゴリートップへ

この連載の記事
  • 角川アスキー総合研究所
  • アスキーカード