3流プログラマのメモ書き

元開発職→社内SE→派遣で営業支援の三流プログラマのIT技術メモ書き。 このメモが忘れっぽい自分とググってきた技術者の役に立ってくれれば幸いです。(jehupc.exblog.jpから移転中)

(WindowsServer2003)分散ファイルシステム(DFS)を使ってみた

WindowsServerのファイルサーバの中に分散ファイルシステムというのがあるのは知ってましたが今まで使ったことはありませんでした。

で、今回ようやくこれを使えるように話を持っていくことができました。

まず、今回DFSにする目的は複数のファイルサーバに分かれてる現状をユーザから見た時に一元的に見えるようにすることです。

現状、実際ファイルサーバは数十台あります。

そのため、ユーザはそれぞれのデータがどこのファイルサーバをあるかを理解してないといけません。おまけにファイルサーバが壊れて別のファイルサーバに移行した時、ユーザにはそれを通知しないといけませんし、ユーザ自身が作ってるファイルサーバへのショートカットも作り直さないといけません。

DFSは一つの名前空間を作成し、複数に分散してるファイルサーバをDFSのサブディレクトリとして扱うことが可能になります。(ファイルサーバ上の共有フォルダをDFSのフォルダにマウントする感じです。)

つまりユーザはDFSルートのアクセスさえ知っていいれば、その配下のマウントしている実際のファイルサーバがどこにあるかなんて意識しなくていいわけですね。

さらにDFSにはレプリケーション機能があるため、あるDFSサブフォルダのターゲット先を複数のサーバに指定しそれらを同期させることができます。対障害性もありますし、レプリケーション先を拠点にしておけば、拠点からアクセスする際のレスポンスの高速化も狙えます。

ただ今回は種々の理由でレプリケーションの機能は使わないということになったのがで、この機能は試せませんでした。

ちょうど、ASCII.jp:DFSでファイルサーバの弱点を克服|Windows Serverで学ぶサーバOS入門にある「DFSの仕組み」という図をみると大体イメージがつかめます。

DFSサーバ自体も簡単に複数用意することができるので冗長性も保つことができます。(ドメインベースDFSの場合)

このDFSですが、ドメインベースの名前空間スタンドアロン名前空間という二つの種類があるようです。

機能をフルに使うのであればドメインベースの使用が必要です。下記にドメインベースとスタンドアロンとの比較を表にしてみました。

┌────────────────────┬────────────────────┬───────────────────┬───────────────────┐

│ │スタンドアロンドメインベース │ドメインベース │

├────────────────────┼────────────────────┼───────────────────┼───────────────────┤

│ │ │Windows2000モード │Windows2008モード │

├────────────────────┼────────────────────┼───────────────────┼───────────────────┤

名前空間へのパス │\\名前空間サーバ名\ルート名 │\\ドメイン名\ルート名 │\\ドメイン名\ルート名 │

├────────────────────┼────────────────────┼───────────────────┼───────────────────┤

名前空間の格納場所 │DFSサーバのレジストリ、メモリキャッシュ │ActiveDirectoryおよびメモリキャッシュ │ActiveDirectoryおよびメモリキャッシュ │

├────────────────────┼────────────────────┼───────────────────┼───────────────────┤

│必要なドメイン機能レベル │ActiveDirectoryは不要 │Windows2000混在以上 │WindowsServer2008 │

├────────────────────┼────────────────────┼───────────────────┼───────────────────┤

│"アクセスベースの列挙サポート │ │ │ │

│(アクセス許可を持たないユーザにファイル │ │ │ │

│フォルダを表示させない機能)" │○ │× │○ │

├────────────────────┼────────────────────┼───────────────────┼───────────────────┤

│"フォールトトレラント名前空間 │ │ │ │

│(複数のDFSサーバ持てるか?)" │× │○ │○ │

├────────────────────┼────────────────────┼───────────────────┼───────────────────┤

│DFSレプリケーション │△(ActiveDirectory環境であればさポート) │○ │○ │

└────────────────────┴────────────────────┴───────────────────┴───────────────────┘

DFSのインストール方法や構築方法は各種解説サイトにあるので割愛して、実際に使ってみた感想です。(ドメインベースでWindows2000モードで使いました。)

たしかにユーザ側からは一元的に見えるため、ユーザの負担は減りました。

しかし、運用する上でいくつかの不満や改良してほしい点が出てきました。それを下記に列挙してみました。

・ファイルサーバ自体を指定できない。

 DFSでターゲットフォルダと指定できるは共有フォルダだけで、共有フォルダを指定しているファイルサーバの指定ができません。なので、NAS等を指定するときは共有フォルダの数だけDFSでターゲット設定しないといけないため、面倒です。

・ターゲットの変更が簡単にできない。

 ターゲットフォルダの設定でターゲット先を変更する場合は一回削除して、再度追加するという方法にしないといけないようです。

名前空間が違う場合はコピーや移動ができない。

 同じ名前空間内ならDFSサブディレクトリの移動とかが簡単にできるんですが、異なる名前空間になるとそれができません。また、名前空間も一回作るとルート名の変更ができないので、要注意です。

・ターゲットを複数指定するとどっちかしか見えない。

 一つのDFSフォルダに複数のターゲットフォルダを指定できるのですが、保存しているデータが異なる二つのフォルダを指定するとどちらか片方しか見えません。まぁ当然と言えば当然ですが、複数のターゲットを指定というのは、レプリケーションしてる同士で同じデータが入っている場合にだけ使うというものなんでしょうね。

・DFSにフォルダ追加する時、アクセス権ないとパスが見つからないとエラーになり登録できない。

 ターゲットフォルダ追加時に、現在ログインしてるユーザが、ターゲットフォルダにアクセスできないとエラーになってしまいます。なので、あらかじめエクスプローラでその共有フォルダにログオンしてアクセスできるような状態にしておいてからターゲットの設定をしないといけません。

・複数の名前空間サーバ(DFSサーバ)間での同期のタイミング。

 冗長性のため複数のDFSサーバを置いてる場合、同期のタイミングがあまり速くない時があるので要注意です。つまり、追加してもう一方のサーバに反映されるのに時間がかかります。(クライアントから見るときは、DFSフォルダにアクセスしプロパティのDFSタブから参照するDFSサーバを選ぶ(アクティブに設定)ことができます。)

いろいろ不満点はありますが、ファイルサーバがたくさんあって混乱してるときには導入する価値はあると思いました。

(ちなみにドメインベースDFSを作り、ドメインに参加しているPCだけどローカルユーザでログインした場合にDFS名前空間にアクセスしたときは、ちゃんと認証ダイアログが表示されます。)

参考:

ASCII.jp:DFSでファイルサーバの弱点を克服|Windows Serverで学ぶサーバOS入門 記事中でリンクしてますがDFSの概念理解するの助かります。

第2回 DFSによるファイルサーバー可用性の向上 | Think IT ここも図が多いのでDFSの概念を理解するのは助かります。

強化された分散ファイル・システムDFS - @IT

分散ファイルシステム2つを比べてみる SawanoBlog