Chapter 20. Microsoft 分散ファイルシステムツリーのホスティング

Shirish Kalele

Samba Team & Veritas Software

John H. Terpstra

Samba Team

12 Jul 2000

Table of Contents

特徴と利点
よくあるエラー
MSDFSのUNIXパスは大文字小文字を識別する

特徴と利点

分散ファイルシステム (DFS) はネットワーク上にある資源について実際の物理的な配置 から、ユーザーが見ているファイルとディレクトリの論理的ビューを切り離す手 段を提供する。 高い可用性と円滑なストレージ拡張、負荷分散などを可能にする。

DFS の情報について、Microsoft documentationを参照のこと。 この文書は、 Samba を利用している UNIX で (DFS対応クライアントがブラウズするため) DFS ツリーを どのようにホスティングするか説明する。

Samba サーバーは、smb.conf ファイルのグローバル Boolean パラメーター host msdfsを設定することで DFS サーバーにできる。 共有レベルの論理値パラメーターmsdfs rootによっ て共有を DFS ルートとして指定できる。 Samba 上の DFS ルートディレクトリはシンボリックリンクの形式で DFS リンクを提供 できる。例えば、共有ディレクトリ内のシンボリックリンク junction->msdfs:storage1\share1 は DFS ジャン クション (接点) として機能する。 DFS 対応クライアントがジャンクションリ ンクにアクセスしようとするとき、それらは実際のストレージ ( この場合 は \\storage1\share1 ) にリダイレクトされる。

Samba 上の DFS ツリーは、 Windows 95 から Windows 200x までの DFS 対応クライア ントをサポートしている。 以下の設定例は、 Samba サーバーでどのよう に DFS ツリーを設定するかを示す。 ディレクトリ/export/dfsroot 内で、他のネットワーク上のサー バへの DFS リンクを設定する。

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

Example 20.1. DFS が設定された smb.conf

[global]
netbios name = GANDALF
host msdfs = yes
[dfs]
path = /export/dfsroot
msdfs root = yes

DFS ルートとして使用しているディレクトリのパーミションと所有者の設定を行い、 特定のユーザーだけが msdfs リンクを作成、削除、変更できるように設定すべきであ る。 シンボリックリンク名は、すべて小文字にすべきことに留意すること。この制約は、 Samba が、リンク名を取得するために、すべての大文字、小文字の組み合わせを試 すことを避けるために設けられている。 最後に、ネットワーク上の共有したいところへシンボリックリンクを張り、Sambaを起動する。

これで DFS 対応クライアントは、 \\samba\dfs にある Samba サーバー上の DFS ツリーをブラウズすることができる. リンクa,リンクb(クライアントからはディレクトリとしてみることができる) に アクセスすると、ユーザーは直接ネットワーク上の共有資源にアクセスす ることになる。

よくあるエラー

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

  • 現状では制約事項として、msdfs シンボリックリン ク名はすべて小文字で記述される必要がある。

  • セキュリティのために、DFS ツリーのルートとな るディレクトリは、特定のユーザーのみがそのディレクトリ内でシンボ リックリンクを変更できるように所有者とパーミッションを設定する 必要がある。

MSDFSのUNIXパスは大文字小文字を識別する

あるネットワーク管理者は何故 DFS が機能しなかったかを究明しようとした長い会議 の後に Samba メーリングリストにアドバイスを送った。 彼のアドバイスには注意する価値がある。

私の特定の DFS ルートが機能しない理由を解明するためにいくらかの時間を費やした。 私はシンボリックリンクはすべて小文字で記述するべきであると文書に書かれているこ とに気がついた。シンボリックリンクへのフルパスをも小文字で書き直すことにした。

設定例: 以下のように定義された共有がある

[pub]
path = /export/home/Shares/public_share
msdfs root = yes

そして (DFS クライアントがインストールされた) Windows で、以下のシンボリックリンクをたどることができなかった。

		damage1 -> msdfs:damage\test-share
		

デバッグレベルを10にして実行して明らかになったこと

		[2003/08/20 11:40:33, 5] msdfs/msdfs.c:is_msdfs_link(176)
		  is_msdfs_link: /export/home/shares/public_share/* does not exist.
		

気になる。 私はディレクトリ名 を .../Shares/... から .../shares/... に変更した。 (サービス定義 に伴って) そして、機能するようになった!