特別企画:「DAFS」技術解説


高速ファイル・アクセス技術「DAFS」とは?
〜クラスタなどの大規模用途にマッチした新技術の概要を紹介〜


小田逸郎
富士通プライムソフトテクノロジ
2002/6/29


なぜ高速ファイル・アクセス技術が必要なのか?

 クラスタの導入例が増えてきている。高信頼のための高可用性(HA)クラスタ構成ばかりではない。最近は、多数の処理を複数のサーバに分散するタイプや、巨大な計算を複数のサーバに分割、並列計算するタイプのクラスタも増えてきている。今後も、処理量の増大とハード価格の下落から、こうしたクラスタの導入件数増加および構成台数増加が予想される。ブレード・サーバの出現も、その傾向の表れだといえるだろう。

●ノード間通信の高速化
 処理を複数のサーバに分割するケースでは、サーバ間の通信速度がスケーラビリティを保持する大きなポイントとなる。高速通信のための手段は、すでにいくつか提案されている。その1つが「VIアーキテクチャ*1」である。VIアーキテクチャの特長は、下記の2点にある。

  • アプリケーション間でOSを介さずに通信が行える
  • RDMA(Remote DMA)転送と呼ばれる、ほかのノードのメモリを直接アクセスできる機能をサポート

 通常のTCP/IPによる通信で行われている、OSへのコンテキスト・スイッチ、OSのソフト処理や中間バッファへのコピー操作が不要となり、高速、低遅延な通信が実現できる。

図1 VIの通信模式図

*1VIアーキテクチャ(Virtual Interface Architecture:VIA)
1996年、Intel、Compaq、Microsoftが提唱。ソフト、ハード込みの高速通信のためのアーキテクチャを規定。順序性の保証などはハード(ネットワーク・インターフェイス・カード)が行う


●クラスタの課題〜ファイル共有

 クラスタの台数が増えるにつれ、データへのアクセスが新たな課題となる。処理の分散や分割を想定すると、複数のサーバから共通のデータにアクセスしたり、任意のサーバから任意のデータがアクセスできたりする必要がある。ファイル・サーバを導入し、ファイルを共有するのが最も簡単ではあるが、NFSなど従来のプロトコルでは、性能に問題がある。効率のよいファイル共用方式が求められている。


DAFSとは?〜その登場背景と仕組み

 そこで登場するのがDAFS(Direct Access FileSystem)である。DAFSは、iDCやクラスタ環境に最適化したファイル共用プロトコルだ。その特長は下記の2点にある。

  • 高速、低遅延なファイル・アクセス
  • ローカル・ファイル・システムと同様のセマンティクス(使用感)

 すなわち、多数のサーバから構成された環境において、1つのローカル・ファイル・システムとして見えることを狙っている。

 DAFSプロトコルは、DAFS Collaborativeにより仕様が策定された。DAFS Collaborativeは、2000年5月にNetwork Appliance、Intelが中心となって設立され、2001年8月時点で85を超える企業がメンバとなっている。2000年8月より開発者会議を開催し、仕様の策定を進め、2001年9月に仕様書の第1版を完成させた。現在、IETFで標準化プロセスを進めるため、仕様書第1版がInternet Draftとして公開されている。

DAFS Collaborative
  http://www.dafscollaborative.org/


●DAFSの高速性の秘密

 DAFSの基本アイデアは、通信層としてVIを使用することにある。正確には、VIでなくても、OSのソフト処理バイパスやRDMA転送などの要件を満たせばよい。このような要件を満たす通信層を、DAT(Direct Access Transfer)と呼んでいる。DAFSでは、DATの採用により、低遅延、高スループットのファイル・アクセスを実現している。

 DAFSの処理の流れを図2に示した。比較のため、NFSの処理の流れも図示した。細い線がファイル操作の流れである。DAFSでは、ファイル・システムのシステム・コール処理のためOS経由にこそなっているものの、通信層がDATである関係上、CPUのオーバー・ヘッドは非常に少ない。また、データの転送にはRDMAを使用するため、メモリ・コピーが入らない。対してNFSは、アプリケーションのバッファからファイル・システムのキャッシュとネットワーク層のバッファへの、2回のコピーが発生している。

図2 DAFS(fDAFS)の処理の流れとNFSの処理の流れの比較

 参考のため、DAFSとNFSv3の性能比較結果を示す。DAFSはcLAN、NFSv3はギガビット・イーサネットを使用している。cLANの物理性能は1.25Gbit/sであり、ギガビット・イーサネットとほぼ同等である。NFSと比べて、DAFSが非常に軽いことが分かる。DAT採用の効果がよく表れているのが、理解いただけるだろう。

スペック
CPU
PentiumIII-933MHz
メモリ
640Mbytes
OS
Red Hat Linux 7.2(カーネルver. 2.4.9)
測定条件
I/O長
32kbytes
MTU
1500(ギガビット・イーサネット)
 サーバ側はメモリにデータが載っている状態
 クライアント側はデータがキャッシュに載っていない状態
補足
 上記の転送性能は、同期型で計測している。すなわち、前のread/write要求の完了を待って次の要求を出している。NFSの性能が悪いことに驚かれたかもしれない。実運用では、先読みや非同期型の転送を行っているため、チューニングすれば、ギガビット・イーサネットの場合、50〜100Mbytes/sの性能を出すことも可能である。しかし、CPU使用量に関しては変わらないことに注意されたい。また、DAFSに関しても実運用では同様のチューニングが可能である
図3 DAFSとNFSの性能比較


●複数存在するDAFSの実装方式
 クライアント側の実装方式は1種類だけではない。上記では、NFSとの比較のために、カーネル内にファイル・システムとして実装した方式(fDAFS)を紹介した。ほかにも、2つの方式が存在する。

 以下に示すのが、ファイルの操作をユーザー・ライブラリとして実装した方式(uDAFS)である。アプリケーションは、DAFS-APIと呼ばれるインターフェイスを使用してファイル・システムにアクセスする。DAFS-APIも、DAFS Collaborativeによって仕様が策定されている。ファイル操作もOSを介さないため、fDAFSよりもさらに高速である。アプリケーションにDAFS-APIを使用する修正が必要であるが、専用システムでの採用が考えられる。

図4 uDAFSの処理の流れ

 以下に示すのが、ファイル・サーバ上のファイルをアプリケーションに対してロー・ディスクに見せかける実装方式(dDAFS)である。OSの中に仮想的なブロック特殊ドライバを実装し、このドライバがDAFSプロトコルを使用してサーバ側とのやりとりを行う。DBMSなど、ロー・ディスクを前提としたアプリケーションを想定している。クライアントにディスクを接続し、直接アクセスするのに比べ、下記のメリットがある。

  • ディスクのI/O処理によるCPUコスト削減
  • バックアップなどの管理コストをファイル・サーバ側にオフロード

図5 dDAFSの処理の流れ

 参考までに、クライアントが直接ディスクにアクセスする場合の処理の流れを示す。dDAFSだけでなく、fDAFS、uDAFSにおいても、クライアントのCPU使用量はローカル・ディスク・アクセスする場合よりも少ない。DAFSの想定しているクライアントは、DBサーバやアプリケーション・サーバなどであり、本来の業務にCPUパワーを振り向けられるメリットは大きい。

図6 ローカル・ディスク・アクセスの流れ


●クラスタ向けファイル・システムとしての機能

 DAFSは、ステートフルなプロトコルである*2。すなわち、サーバがクライアントのオープンやロックの情報を管理する。これにより、整合性の取れたファイル共有が可能となっている。また、クラスタ環境での運用を考慮した機能がサポートされている。そのいくつかを下記に示す。

  • クライアントの要求のただ1回だけの実行を保証
  • サーバ・ダウンをまたいだロック情報保持(パーマネント・ロック)
  • サーバ・フェイル・オーバーのサポート
  • クラスタ内のノード単位のアクセス・コントロール

*2NFSも、NFSv4ではステートフルな構造になっている。DAFSは、このNFSv4の仕様をベースにしている。ベースといっても、ワイヤ・プロトコルは異なるので互換性はない。NFSv4はWAN環境を指向しており、DAFSとは補完する関係にある。通常のファイル操作のセマンティクスを同一とすることで、ユーザーの操作性をできるだけ同じにしている


●DAFSの適用分野

 DAFSの効果は、クラスタをスケーラブルに拡張できることにある。例えば、適用分野として下記のものが考えられる。

  • Webサーバ
  • DBサーバ
  • HPC(ハイ・パフォーマンス・コンピューティング)
    並列計算でのデータ共用、遺伝子データなどの巨大データの共用

関連テクノロジと比較しての「DAFS」
 ここで、DAFSとそれに関連した各種テクノロジとを簡単に比較する。

●NAS
 DAFSは形態としては、NASに当たる。従って、異なるプラットフォーム間でのファイル共用や管理の容易さといったNASの利点をそのまま引き継ぎながら、NFSの弱点である性能の悪さや整合性の弱さを解消している。

●SAN
 SANはブロック・レベルでのアクセスのため、ファイルの共用はできない。ファイルを共用するためのソフトもいくつか提供されているが、排他や制御のための通信をLAN上で行うなど、スケーラビリティに問題がある。サーバが直接ディスクにアクセスするため、ディスクI/O処理にCPUコストが掛かる問題もある。

●iSCSI
 iSCSIは、イーサネットを使用したSANである。ファイバ・チャネルに比べて安価であり、距離の制限がないのが利点である。しかしながら、TCP/IP上の通信のため、性能に問題がある。ファイル共用に関しては、SANと同様である。

●SRP
 SCSIプロトコルをRDMA上に流すプロトコルである。DAT要件を満たしたネットワークで、高速なディスクアクセスが可能となる。しかしながら、これもブロック・レベルのアクセスであり、ファイル共用の要件は満たさない。こうした高速なブロック・レベルのアクセスは、ファイル・サーバとディスク・サブシステムの間で使用されるものと考えられる。


DAFSの今後の動向

●ネットワーク
 DAT要件を満たすネットワークとして、cLANやVI/IP、Myrinetなどが使用可能である。しかし、これらはプロプライエタリなネットワーク技術であり、高価でかつ専用ネットワークの構築しかできない。

 そこで、今後最も期待できるのがInfiniBandである。InfiniBandはオープンな規格であり、各メーカーでの相互接続性がある。そして上記のものよりも安価である。InfiniBandはノード間高速通信だけでなく、I/O装置の接続や通常のTCP/IP通信にも使用でき、クラスタ環境内のネットワークを統一することができる。性能は、最大3Gbytes/sec.と高性能である。2003年前半に出荷が開始され、それ以降に普及が進むと考えられる。

 また、イーサネットでRDMAをサポートするiWARPと呼ばれるアーキテクチャの標準化が進められており、候補の1つである。DATの有効性がここにも表れている。現在、標準化が始まったばかりなので、立ち上がりはInfiniBandの方が早い。

InfiniBand Trade Association
  http://www.infinibandta.org/home


●DATの標準化

 現在、DATのAPIの標準化も進められている。DAFS Collaborativeから派生したDAT Collaborativeと、OpengroupのWGで、高速インターコネクト向けのAPIの標準化を行っているICSCの2つの団体が、相互に協調しながら仕様を策定している。

DAT Collaborative
  http://www.datcollaborative.org/

ICSC
  http://www.opengroup.org/icsc/


●DAFSの普及活動

 DAFSの普及活動は、現在、SNIAの中のDAFS Implementers' Forumで行われている。相互接続性の検証も重要な活動の1つである。

SNIA
  http://www.snia.org/


●DAFS製品

 DAFSプロトコルをサポートした製品もすでに出始めている。1つは、Network Applianceの「Filer」。もう1つが、富士通プライムソフトテクノロジの「PSTorage InfiniFS」である。それぞれ、現在はVI準拠のネットワークのサポートにとどまるが、InifniBandでの動作のデモも実施している。DAFSは、すでに使用可能なテクノロジなのである。

Network Appliance
  http://www.netapp.com/

富士通プライムソフトテクノロジ
  http://www.pst.fujitsu.com/


「Master of IP Network総合インデックス」

 



Master of IP Network フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Master of IP Network 記事ランキング

本日 月間