[images/intermezzo.gif image]
Links
Home
News
Diary
Roadmap
Project
License
Documentation
Downloads
Mailing Lists
Team / support
Cluster File Systems
Project Summary
Components.

InterMezzo は三つの部分より成り立っています。 カーネルモジュール (これがInterMezzo)は Linuxカーネルに対しファイルシステムを認識させます。 intersync はユーザ権限で動くファイル同期デーモンです。 そして、クライアント側デーモンと協調動作する ファイルサーバも必要です。ファイルサーバは現在 Apacheを つかっています。 実は、サーバとクライアントは同じファイル同期デーモンを使っていますが、 当然、設定は若干違います。

InterMezzo Kernel Code
What is it?
この部分は、Linuxのカーネルのドライバであって、 Linuxカーネルに対しこの特殊なファイルシステムを認識させています。 さらに、 レプリケーションログの管理、その内容のサーバへの同期などを 行っています。
Where is it?
InterMezzo は Linux公式ソースツリーに すでに入ってます。具体的には、2.4.15 kernel に入っています。 ただし、CVSから取得したほうがより最新のバージョンが得られます。 また、現在のInterMezzoはモジュールにすることも問題なく可能です。
Status
モジュールにしたInterMezzoの動作は非常に安定しており、 性能も問題ありません。 モジュール化の作業はすでに成功したといえるでしょう。 中長期的な目標としては 新しいファイルロック方式の導入とグローバルな名前空間の導入があります。 また、ネットワーク機能をカーネルに入れることも考えています。
Next steps
リアルタイムのデータ更新、それらを含めたInterMezzoのNFSへの適用、 コードの清書、InterSyncとの絡みのいくつかの改良、そしていくつかの バグ取り。これらが完了すれば InterMezzo 2.0 へのメドがたつでしょう。 より重要な課題としては、 これらの問題よりは、切断状態におけるファイル書き換えからの 同期処理を改良することでしょう。
InterSync
What is it?
InterSync は 次世代のキャッシュ管理ソフトとよべるでしょう。 InterMezzoを採用したコンピュータシステムはすべて、ウェブサーバと InterSyncを走らせます。 InterSyncはカーネルの中のInterMezzoドライバの反応をインターネットに送ります。 送られてきたデータを受け取るのはいまのところWebサーバです。 基本的には、このWebサーバはTUXにするつもりですが、いまのところは Apacheですし、特に問題なくうまく動いています。
Where is it?
CVS リポジトリをご覧ください。
Status
InterSync将来計画[PDF] があります。この計画の実装はすでに開始されてますし、 進み具合も良好です。
Next steps
スケーラビリティの拡充です。 大規模システムおよび小規模システムへの対応を現在より改良します。 モバイル通信対応をすすめ、切断時のファイル更新からの復帰における 矛盾解決を実装する予定です。 また、その際、「使いやすさ」「わかりやすさ」を最も重要視して 実装します。 Cでかかれた管理ツールも開発します。
Lento
What is it?
Lento は Perlで書かれたファイルサーバでありキャッシュマネージャであります。 もともとはLentoがInterMezzoのサーバでした。 ファイルサーバ機能をInterSyncに実装する気はないので、 Webサーバとの協調動作というInterSyncの実装に問題がある場合はLentoを 使用することとなります。
Where is it?
CVSリポジトリをご覧ください。
Status
使いづらく遅いですが、動作は安定しており、利用価値はあります。
Next steps
まず、コードをより読みやすく清書したり、 細かなバグを取ったりすることは必要でしょう。 それ以外の大きな改良としては、切断状態からの復帰に関する プロトコルの改良があります。 また、KLM(訳注:Kernel Modification Log。同期処理のためのログ) に関し、伸び続けないようにする 改良を考えています。 Data on Demand、つまりファイルオープンしたときにデータを取ってくる方式も考えています。 また、これらの改良に伴い、パケットのフォーマットも変更されるでしょう。

Functionality
InterMezzo プロジェクトはこのような 機能の達成を目標にしています。

  • (たとえば ディレクトリツリーや論理ボリュームのような)ファイルセットを 複数の replicators 間で同期させます。 そのうちのひとつが server であり、 それ以外は clientsです。 (訳注:通常の文脈におけるファイルサーバとファイルクライアントとは定義が異なる。 たとえば、レッドハットのサイトを自分のローカルHDDや自分の職場の共有ファイルサーバにミラーしているとして、ミラーされたデータが入っているディレクトリとレッドハットのサーバのような関係。InterMezzoは、NFSのようなトランスペアレントなネットワークファイルシステムというよりは、ミラー機能がついたローカルファイルシステムとしての側面がある。 )
  • 増設されたクライアントマシンのデータをサーバと同期する。
  • もし、いずれかのリプリケータ内のデータが変更されたら、ほかのリプリケータを同期させる。
  • 設定にもよりますが、 ファイルデータは書き込みにリアルタイムで追従して WANへ送り出すこともできますし、 コマンド操作により跡で一括して行うこともできます。 キャッシングされたファイルはサーバにあるファイルの 完全なコピーとすることもできますし、 sparse ファイルを使って完全ではないコピーとすることもできます。
  • 同期処理の際に矛盾が発見された場合は、そのあとでユーティリティなどで処理します。
  • バージョニングとスナップショットもできるようにします。

Recovery
InterMezzo は キャッシュサーバやファイルサーバとして、 通常のジャーナリングファイルシステム( Ext3など)を 使用します。 これは、リカバリの際にジャーナリング機能を使うためです。 InterMezzo はファイルシステムの外部からのマウントを許可します。 これは NFSとおなじような考え方です。 InterMezzoは外見的な実装としては 単にサーバからクライアント、そしてその逆とファイルデータの 移動を可能にできることを除けば、単なるローカルファイルシステムとして 実装されています。 (訳注:インターメッゾのイメージとしては、ネットワークファイルシステムというよりは、 ミラー機能つきのローカルファイルシステムというほうが、 正しいかどうかはともかくわかりやすいと思う) 通常の場合、InterMezzoファイルシステムに対するアクセス の速度は、 普通のファイルシステム(訳注:ext3など)とほぼ同じです。 しかし、スケーラビリティと可用性は、 多くの場合において 大幅に向上しています。

この方針は、メタデータの取り扱いも含めすべて特殊なプロトコルで 実装する Coda と AFS にくらべ、機能上の制約を生じるの事実です。 しかし、その制約は 単純さ、スケーラビリティ、性能、管理、それらの 要因と比較したとき、わずかな問題だと思われます。

Project History
このプロジェクトは Peter J. Braam がリーダーとなって進めています。 InterMezzo は 1998年秋に CMU (カーネギーメロン大学)で Peter Braam により開始されました。 また、Michael Callahan からは Codaの成果をよりシンプルなファイルシステムに 応用するにはどうすればよいか、といった事に関する アドバイスを頂きました。

.
Acknowledgements
Stelias Computing は InterMezzoの開発に関し 多大な貢献をしました。また、 商標権の問題の解決にも貢献しました。 現在は、InterMezzoの開発は主に
  • Cluster File Systems よって行われています。

    そのほか、これらの会社の貢献も大きな意味がありました。

  • Tacit Networks
  • Los Alamos National Laboratory
  • Red Hat, Inc.
  • TurboLinux, Inc. また、ここにはない多数の組織、人々の貢献もInterMezzoの開発に 意義がありました。


  • 翻訳: 有限会社デジタルインフラ. 免責事項等 Last update : 15 Dec 2002.
    translation by Digital Infra Inc. 2002. copyrights(c) 2002 all rights reserved.
    連絡先: info@digitalinfra.co.jp

    >> back