分散ファイルシステム(DFS)

提供: 雑廉堂Wiki

FRS vs DFS vs DFS-R

FRS (ファイルレプリケーションサービス)はWindows Server 2000と2003でSYSVOLを複製するために使用されています。新しいバージョンのWindowsサーバーでは、Microsoftによって少しずつDFS-R(Distributed File System Replication = 分散ファイルシステムレプリケーション)に置き換えられています。


まだ、SambaにはFRSにも、DFS-Rにも、SYSVOLレプリケーションは含まれていません。

DFS-Rはしばしば、DFS(下記参照)のサブ機能とみなされており、両方共一緒に使用されますが、完全に別々に使用することもできます: 複数のターゲットを持つDFSは、DFS-Rなしで使用することが可能(フォルダーの内容が別の方法で更新された場合でも)で、DFS-RはDFSターゲットでない共有フォルダを複製できます。

Sambaは、DFSを部分的にサポートしますが、DFS-Rはまだサポートしていません。

DFS

DFSとは何か

DFS (Distributed File System = 分散ファイルシステム) は、いくつかの機能を提供する機能です: 例えば、代替の名前空間、ロードバランシング、自動フェイルオーバーなど。

技術的には、DFSはファイルを含まない、ジャンクションのみの、必要に応じて多くのジャンクションを持つサブディレクトリの共有ディレクトリへのアクセスを提供します。 ジャンクションとは、Unixファイルシステムで知られているような、ソフトリンクに似ていますが、共有ディレクトリを指すものであり、また、他のサーバー上の共有ディレクトリを指すこともできます。クライアントはまず最初にジャンクションをDFSサーバーに問い合わせ、それからこのジャンクションが指し示すファイルサーバーにアクセスします。

これの主な用途は、基になるインフラストラクチャの詳細をユーザーから隠す代替の名前空間(ディレクトリツリービュー)を作成することです。ユーザーに表示されるパス(DFS名と呼ばれる)は、サーバーの名前が変更されたとき、または一部のディレクトリが別のサーバーに移動されたときにも変わりません。管理者は、古いDFS名を新しいターゲットに単純に置き換えることができます。

DFS名は、オプションで複数のターゲットを指すことができます(つまり、クライアントにいくつかの代替ジャンクションを異なる共有フォルダーに伝える)。この場合、クライアントはどちらのターゲットにもアクセスできます。これにより、1つのサーバーに障害が発生した場合に、負荷分散と他のサーバーへの自動フェイルオーバーが可能になります。

スタンドアローン vs ドメインベースのDFS

DFSは、スタンドアロンでもドメインベースでもかまいません。

スタンドアロン版は1つのサーバー上で実行され、DFS名にそのサーバーの名前が含まれるようにします。それらはそのサーバーによって提供される共有のように見えます。

ドメインベースのセットアップでは、DFS名にドメイン名のみが含まれ、特定のサーバーの名前は含まれません。ドメイン内のいくつかのサーバーは、並行してDFSサーバーとして機能できます。クライアントは自動的にいずれかのDFSサーバーを選択し、そのサーバーにクエリを送信します。

SambaでスタンドアロンDFSを設定する

Sambaでスタンドアロンのバリアントを設定する方法はここに記述されています:
https://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/msdfs.html

要するに、設定ファイル smb.conf の globalオプションが必要です。

 host msdfs = yes

(AD-DCではデフォルトです) そして、2つのオプションを共有の定義に追加します。

 path = /export/dfsroot
 msdfs root = yes

それから、指定したバスで、次のようなコマンドを実行し、エントリを作成します

 ln -s msdfs:storage0\\share0 linka
 ln -s msdfs:server1\\share,server2\\share linkb

最初の例は、一つのターゲットを定義しており、2番めの例は、同じ内容を共有する2つの代替ターゲットを作成しています。

Windowsクライアントは、これらをジャンクションとみなします。

SambaでメンバーサーバーDFSを構成する

上記と似ていますが、smb.confのglobalオプションにもう一つ追加のオプションが必要です。

 host msdfs = yes
 vfs object = dfs_samba4

他はちょうど上で何が起こるかに従ってください。

SambaでドメインベースのDFSを構成する

手順は、スタンドアローンのDFSとおなじですが、vfs_object dfs_samba4が必要で(AD-DC ではデフォルトですが、vfs objectオプションの落とし穴には注意してください)、DFS名は各DCで定義されている必要があります。 (DFSのエンドポイントマッパーが実装されていないため).

現在(2014年7月現在)、メーリングリストで議論されており、複数のユーザーはSamba4でのドメインベースDFS使用が大変困難であることを報告しており、それはおそらくsmbプロトコル バージョン3の実装に関連していると思われます。

制限事項

DFS共有で指定されているパスdfsroot、またはlnコマンド内の共有パスのいずれも大文字を含んではいけません。リンクは大文字を含むことが許されるかもしれません。

Samba 4.1.4ではDFSはAdministratorに対してのみ 機能し、すべてのユーザーに対して機能するためのパッチが必要です。

ドメインベースのDFSが本当に機能するかどうか、現在メーリングリストで議論が続いています。

DFS-R(レプリケーション)はまだ実装されていません。

Neither the path dfsroot specified in the DFS share, nor any of the share paths in the ln-commands must contain upper case characters. The links might be allowed to contain upper case characters.

DFS works only for Administrator in Samba 4.1.4, and requires a patch to work for all users.

There is currently an ongoing discussion in the mailing list whether or not domain-based DFS really works.

DFS-R (replication) is not yet implemented.