さて、ここまでは、イベントのレポートなのだが、少しNetAppのストレージ製品について解説しておかないと、同社の提唱する「Data Fabric」の理解が困難だと思われる。

ネットワークの一番の「アプリケーション」は「ファイル共有」だ。一般にアプリケーションは、ファイルを利用して処理を行うため、ファイルシステムを持たないコンピューターシステムは存在しないといっても過言ではなく、外部記憶は、重要なコンポーネントであり、さまざまな分野で「ストレージ」は重要な役割を果たす。

ただ、ファイルサーバーと言ってしまうと、汎用のオペレーティングシステムの「片手間仕事」という印象もある。しかし、かつては、Netwareのようにファイル共有専用のシステムが使われていた時代もある。逆に言うと、汎用のオペレーティングシステムがファイルサーバーを兼用できるようになったのは、UnixワークステーションやWindows NTが使われはじめてからのことだ。

現在では、大規模なシステムでは、SAN(Storage Area Network)などを介して、論理的にファイルシステムを分離する方向がある。処理対象となるファイルを計算処理するシステムから分離することで、フォールトトレラントや柔軟なシステム構成を実現することができるからだ。

さて、NetAppが、ここまで成長してきた理由は、単にファイル共有用の専用機(アプライアンス)を作っていたからだけではなく、同社の専用機には、「Data ONTAP」と呼ばれる専用オペレーティングシステムが搭載されており、このOSが持つ、特殊なファイルシステムとストレージの仮想化などの機能のため、システム構築の柔軟性が高く、また、バックアップやスナップショットが高速に行えるというメリットを持つ。専用機であるがゆえに汎用OSのファイルサーバーにはない特徴と、高い性能を持っているわけだ。

Data ONTAPが持つファイルシステムは、WAFL(Write-Anywhere-File-Layout)と呼ばれる。これは、NetAppの3人の創業者であるデイブ・ヒッツ、ジェームス・ラウ、マイケル・マルコムの3人が1990年代に開発したものだ。WAFLでは、UnixのFFS(Fast File System)をベースに、さまざまな改良がくわえてある。まず、ファイルのメタデータ(ファイルのサイズや所有者、モードなど)を格納しているiノードをストレージの固定した領域ではなく、ファイル上に格納するようにしてある。ファイルの一部が書き換わった場合、ファイルを構成するブロックのうち、変更のあったものだけを新規に割り当てる「Copy On Write」が使われている。さらに「ログファイルシステム」の概念が導入されており、書き込みは、いったん不揮発性メモリに記録(ログ)され、その後、実際のブロックの配置(書き込み)が行われる。

ファイル上にiノードを持つ「iノードファイル」を使うことで、ストレージの容量拡大が簡単に行えるようになる。また、Copy On Writeが使われているため、ストレージの現在の状態を記録する「スナップショット」は、iノードファイルをコピーするだけで済む。スナップショットは、ファイルの内容を記録しているブロックをコピーしないため、容量の増加はわずかで済む。スナップショットがあることで、不意のシャットダウンなどの場合に、直前の正常だった状態に簡単に戻すことが可能になり、再起動後にストレージをスキャンして一貫性を確認する必要がなくなり、サービス再開までの時間を大幅に短縮できる。

WAFLでは、ファイル/ディレクトリのメタデータや内容を記録したブロック位置を記録したiノードを「iノードファイル」に記録することによりストレージ容量などの変化に対応しやすくしている。高速化のため、ブロックマップファイルが空きブロック位置を、iノードマップファイルが空きiノード位置を記録している

ストレージのスナップショットを作成するには、iノードファイルのコピーを作るだけで済む。また、Copy On Writeにより、ファイルが書き換わっても、該当ブロックだけリンクが変化するだけだ

不揮発性メモリを使うログにより、外部からみた書き込み速度が大幅に向上する。ネットワークからの書き込みリクエストは不揮発性メモリに記録するだけで完了するからだ。このログは一定時間ごとにまとめてストレージに書き込みを行う。このとき、ストレージシステムへの最適化(たとえばRAID構成の場合など)や重複排除(ファイルにかかわらず同じ内容を持つブロックを1つに集約すること)が可能になる。

なお、以上の解説は、あくまでも最初のWAFLの実装に関する論文をベースにしたもので、現在では、さらに改良が加えられていると考えられる。また,NetAppは、複数の独立したストレージシステムで動作するData ONTAPをクラスター化する「Clasterd Data ONTAP」や、アマゾンのAWS(Amazon Web Services)上で動くソフトウェア「Cloud ONTAP for AWS」を提供している。

ストレージサービスを前提に作られた専用オペレーティングシステムを使うことで、NetAppのストレージアプライアンスは、汎用オペレーティングシステムのファイル共有サービスよりも高い性能や可用性を引き出すことが可能になっているようだ。

Data Fabricでは、クラウド、ローカル、サービスプロバイダー上のファイルへのアクセスを自由に行えるようにしているが、こうした構成もData ONTAPによって可能になっている。Data ONTAPではブロックレベルで重複排除が行われているため、ファイルのサイズを合計した見かけ上の容量よりも、実際に使われている容量は小さくなる。このため、システム間のデータ移動に要する時間も短縮が可能だ。また、Copy-On-Writeにより、ファイルが書き換えられても変更のあったブロックのみを転送すればよい。AWSの上で動作するCloud ONTAPにより、クラウドストレージもローカルのNetAppストレージアプライアンスと連携して動作できるようになる。

Data Fabricやハイブリッドクラウドは、このようにData ONTAPという専用オペレーティングシステムによって可能になるコンセプトといえるだろう。