140 likes | 311 Views
分散コンピューティング. 慶應義塾大学環境情報学部 萩野 達也 hagino@sfc.keio.ac.jp. ファイル共有システム. NFS Network File System Sun Microsystems AFS Andrew File System CMU CODA Constant Data Availability CMU Netware WebDAV ( DAV = Distributed Authoring and Versioning). NFS (Network File System). UNIX における分散ファイル共有
E N D
分散コンピューティング 慶應義塾大学環境情報学部 萩野 達也 hagino@sfc.keio.ac.jp
ファイル共有システム • NFS • Network File System • Sun Microsystems • AFS • Andrew File System • CMU • CODA • Constant Data Availability • CMU • Netware • WebDAV (DAV = Distributed Authoring and Versioning)
NFS (Network File System) • UNIXにおける分散ファイル共有 • 遠隔サーバのファイルをマウントし利用することができる • UDPあるいはTCP サーバ クライアント / / usr home usr home hagino ns hagino ns remote mount
NFSの特徴 • アクセス透過性 • 位置透過性 • 名前空間はローカル • 障害透過性 • 状態を保持しない • ほとんどの処理は再試行可能 • 性能透過性 • クライアントおよびサーバにキャッシュする
NFSの問題点 • 複製透過性がない • サーバの複製は作ることができない • 並行透過性がない • ファイルをロックすることができない • 規模透過性がない • 大規模な共有はできない
NFSの実装 (1) • 仮想ファイルシステム(VFS)によりローカルと遠隔を切り分ける VFS UFS NFS ネットワーク
NFSの実装 (2) • Sun RPCを利用 • portmap • XDR (External Data Representation)を使いメッセージを表現 NFSクライアント NFSサーバ Sun RPC Sun RPC XDR XDR
lookup(dirfh,name) → fn,attr create(dirfh,name,attr) → newfh,attr remove(dirfh,name) → status getattr(fh,attr) → attr setattr(fh,attr) → attr read(fh,offset,count) → attr,data write(fh,offset,cou,tdata) → attr rename(dirfh,name,todirfh,toname) → status link(newdirfh,newname,dirfh,name) → status symlink(newdrfh,newname,string) → status readlink(fh) → string mkdir(dirfh,name,attr) → newfh,attr readdir(dirfh,cookie,count) → entries rmdir(dirfh,name) → status statfs(fh) → fsstatus NFSプロトコル・インターフェイス
VFS • Virtual File System • 従来まではi-nodeによりファイルを識別してきた • NFSではファイルハンドルにより識別する • ファイルシステム識別子 • ファイルのi-node番号 • i-node世代番号 ファイルシステム 識別子 i-node番号 i-node世代番号
NFSで注意すること • ローカルなキャッシュの一貫性は頻繁にチェックする必要がある • サーバからは教えてくれない • 通常ファイルでは3秒ごとにチェック • ディレクトリでは30秒ごとにチェック クライアント サーバ 一貫性のチェック キャッシュ キャッシュ
AFS (Andrew File System) • CMU • 5000台以上のワークステーションによる共有を想定 • 特徴 • ファイル全体のキャッシュ(一部もOK) • kerberosによる認証 • ACLの設定 • 組織を越えた共有
AFSのシナリオ • クライアントがファイルをopen • サーバから最新の複製をコピー • 自分が最新の複製を持っていればコピーしない • ローカルに変更を行う • クライアントがclose • サーバに複製を送り返す • 複製を保持しておく プログラム 複製作成 キャッシュ サーバ クライアント
AFSの問題点 • 遅い? • NFSより効率が良いはずであるが • 特殊な操作が面倒 • 通常のUNIXにはないACLの管理
CODA • CMU • AFSから派生 • AFSからの改良… • 読み出し専用ボリューム以外の複製 • 対故障性に関する改善 • 携帯コンピュータへの対応 • ネットワーク切断状況での操作