分散ファイルシステム(Dfs)は、論理的なファイルやディレクトリの存在を、 ネットワーク上に現実に存在する位置から切り離す機構のことである。これにより、 高い有効性、記憶容量のスムーズな拡張、負荷分散等が行える.Dfsに関するより詳細な 情報は、以下を参照のこと Microsoft documentation.
このドキュメントでは、どのようにしてSambaを利用してUNIXマシン上でDfsツリーを ホストするか(Dfsクライアントからどのように見せるか)を解説する.
SambaでSMB−baseのDFSを有効にするには、--with-msdfs パラメータを設定する.いったんビルドすると、Sambaサーバーはsmb.conf ファイルのグローバルパラメータ host msdfs をセットすることで、Dfsサーバーを起動するようになる. Dfsルートとしての提供の有無は、 msdfs rootパラメータで指定することができる. Samba上のDfsのルートディレクトリはシンボリックリンクの形式を使い、他のサーバーを指し示す Dfsリンクを提供できる. たとえば、共有ディレクトリ上のシンボリックリンクjunction->msdfs:storage1\share1は Dfsジャンクション(接点)として機能する.Dfsクライアントがこのジャンクションにアクセスすると、 実際のストレージ(この場合は¥¥strage1¥share1)にリダイレクトされる.
SambaのDfsツリーはWindows 95から2000までのDfsクライアントをサポートしている。
以下に、SambaサーバーでのDfsツリーの設定例を示す
# The smb.conf file: [global] netbios name = SAMBA host msdfs = yes [dfs] path = /export/dfsroot msdfs root = yes
/export/dfsrootディレクトリ上で、ネットワーク上の他のサーバーへのリンクを設定する。
root# cd /export/dfsroot
root# chown root /export/dfsroot
root# chmod 755 /export/dfsroot
root# ln -s msdfs:storageA\\shareA linka
root# ln -s msdfs:serverB\\share,serverC\\share linkb
Dfsのルートとして使用しているディレクトリのパーミションとオーナーの設定を行い、 特定のユーザーだけがリンク名をクリエート、削除、変更できるように設定すべきである. リンクで使用できる名前は、すべて小文字であることに留意すること.この制約は、Sambaが リンク名を取得するために、すべての大文字、小文字の組み合わせを試さなければいけない煩雑さを 避けるために設けられている。最後に、ネットワーク上に公開したい位置にシンボリック リンクを張り、Sambaを起動する。
これでDfsを使用するクライアントユーザーは、\\samba\dfsにあるSambaサーバーのDfsツリーを 参照することができる.linka,linkb(クライアントからはディレクトリとしてみることができる)に アクセスすると、ユーザーは直接ネットワーク上の共有資源にアクセスすることになる.
Windowsのクライアントは、以前Dfsでなくマウントされていたものが、 Dfsのルートとしてマウントされたり、その逆を行ったりすると、リブートする必要がある. よりよい解決方法は、この場合、新規の共有として公開し、Dfsのルートとすることである.
現状では制約事項として、マイクロソフトDfsのシンボリックリンク名はすべて小文字で 記述される必要がある。
セキュリティーのために、Dfsツリーのルートディレクトリは、 オーナーとパーミッションを指定し、特定のユーザーのみがディレクトリのシンボリックリンクを 変更できるように設定する必要がある.