Windows ServerのNFS 共有をVMware ESXからマウントする
isoのDVDイメージとかほとんどがWindowsマシン上にあるのでVMware ESX/ESXiからWindowsマシンのディスクにアクセス出来ると超便利なのだけど、ふと思い立ってWindows Server 2008 R2のNFSサービスを有効にしてアクセスしたら思いのほか簡単に出来た。
ちなみに他を試してみたところ、
・WindowsクライアントOS(Vista/7)
→ダメ。NFSサービスというの名前のOS機能は有るのだけど、NfsServerサービスが無いらしい。
→cygwinのnfs server(nfsd)が使えねーかと頑張ってみたがダメ。こいつは多分NFS v2しか話せないんじゃないかと思う。
・Windows Server 2008 の NFSサービス
→ダメ。というか諦めた。WS2008の場合はユーザー名マッピングの構成をすることがどうも必須で、それをやっておけばこちらはNFS v3対応なのでVMware ESXからの接続はいけるような気がするのだけど、そこまでやる気は無い。
(追記:ユーザー名マッピング正しく構成すればいける。ただ、SUAが必要無いのは救いだけどクソ面倒くさいのは間違いない)
Windows Server 2008 R2でNFS共有の設定項目に「マップされていないユーザー アクセスを有効にする」というチェックボックスが増えていて、VMware ESXから接続する上ではどうもこいつが気を利かせてくれているらしい。
設定する手順を簡単にまとめると以下の様。
1.WS08R2マシンで、「役割」の追加ウィザードから「ファイル サービス」を選択し、その中の「NFS用サービス」を追加する。
※「機能」→「Unix ベース アプリケーション用サブシステム」内のコンポーネントでは無いところがミソ
※WS2008以降徹底的にやる気が無い日本語翻訳の間違っているマニュアルは以下
http://technet.microsoft.com/ja-jp/library/cc753302(WS.10).aspx
プログラムの追加と削除とか無いでしょ、という。URLの「ja-jp」を「en-us」に置き換えると若干マシな英語のマニュアルに行きつく。
2.役割の追加が終わると、エクスプローラのフォルダのプロパティに「NFS 共有」というタブが増えているので、「NFS 共有の管理」のボタンをクリックしてNFS 共有を有効にする。
※ここで「マップされていないユーザーの UNIX アクセス (UID/GID) を許可する」を有効に出来るのがWS08R2とWS2008の違いで、どうやらそれが重要らしい?
3.「アクセス許可」のボタンをクリックして「ルート アクセスを許可する」にチェックを付ける。
※VMware ESXから接続するためには必要。この領域に仮想HDD作って仮想マシン立てるなら読み取り専用を読み書き可に変える必要があるだろうけど、まあ今回そこまではしない。
4.WS08R2マシン側設定が終わったら、VMware ESXにVMware Clientで接続して、構成→ストレージでストレージの追加→ネットワーク ファイル システムでWS08R2サーバーのIPアドレスとexport名指定する。
5.VMware ESXのデータストアとして新しくWS08R2のNFS共有が追加されればOK。
※上の画面で言えば「export(読み取り専用)」がそれ。