Sambaでのマイクロソフト分散ファイルシステムのホスティング


Instructions

分散ファイルシステム(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(クライアントからはディレクトリとしてみることができる)に アクセスすると、ユーザーは直接ネットワーク上の共有資源にアクセスすることになる.


Notes

  • Windowsのクライアントは、以前Dfsでなくマウントされていたものが、 Dfsのルートとしてマウントされたり、その逆を行ったりすると、リブートする必要がある. よりよい解決方法は、この場合、新規の共有として公開し、Dfsのルートとすることである.

  • 現状では制約事項として、マイクロソフトDfsのシンボリックリンク名はすべて小文字で 記述される必要がある。

  • セキュリティーのために、Dfsツリーのルートディレクトリは、 オーナーとパーミッションを指定し、特定のユーザーのみがディレクトリのシンボリックリンクを 変更できるように設定する必要がある.