WidnowsのNFSクライアントでNFS Serverに接続してみました
なお、Windows標準のNFSクライアントはProfessionalは使用できなくてUltimateやEnterprise editionのみになります
nfs client for Windows 7 or 8
https://www.rootlinks.net/2013/02/09/nfs-client-for-windows-7-or-8/
今回はWindows 8.1 Enterprise Edition評価版をダウンロードしてテストしました。NFSサーバは事務所のFreeNAS 9に構築したNFSになります
Windows 8.1 Enterprise 評価版のダウンロード – TechNet
http://technet.microsoft.com/ja-jp/evalcenter/hh699156.aspx
- NFSクライアント機能の追加
- NFSクライアントサービス
- NFSサーバに接続
- ドライブの切断
[コントロールパネル]-[プログラムと機能]-[Windowsの機能の有効化または無効化]から[NFS用サービス]を選択してインストールします
[管理ツール]もインストールすると[コントロールパネル]-[管理ツール]に[NFS用サービス]が追加されます
NFSクライアントはサービスとして稼働します。このサービスはNFSクライアントの共通の設定をします
この共通設定は[NFS用サービス]からもできますが、コマンドでもNFSクライアントサービスのストップ、スタートも含めて設定できます
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
C:\>nfsadmin client /? 使用法: nfsadmin client [コンピューター名] [共通オプション] start | stop | config 構成オプション 共通オプションは次のとおりです。 -u user 資格情報を使用するユーザーの ID です。 -p password ユーザーのパスワードです。 構成オプションは次のとおりです。 protocol = TCP|UDP|TCP+UDP 優先するトランスポート プロトコルを設定します。 mtype = hard|soft マウントの種類を設定します。 casesensitive = yes|no マウントされたファイル共有の既定の大文字と小文字の 区別を指定します。 retry = <数値> ソフト マウントの再試行回数を設定します。 timeout = <時間> RPC 呼び出しのタイムアウト値 (秒) を設定します。 perf = default パフォーマンス パラメーターを既定値に戻します。 UseReservedPorts = yes|no 1024 より小さいポートを使用します。 rsize = <サイズ> 読み取りバッファーのサイズ (KB) を設定します。 wsize = <サイズ> 書き込みバッファーのサイズ (KB) を設定します。 fileaccess = <モード> ファイルのアクセス権のモードを指定します。 これらは NFS サーバーで作成された新しいファイルに 使用されます。UNIX 形式で指定します。 SecFlavors = [+|-]sys [+|-]krb5 [+|-]krb5i [+|-]krb5p 許可するセキュリティの種類を指定します。 |
設定の確認です。これはデフォルト設定になります
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
C:\>nfsadmin client localhost の設定 プロトコル : TCP+UDP マウントの種類 : ソフト 大文字小文字を区別する : いいえ 再試行回数 : 1 タイムアウト : 8 秒 読み取りバッファー サイズ : 1024 KiloBytes 書き込みバッファー サイズ : 1024 KiloBytes 予約ポートを使用する : はい セキュリティの種類 : sys,krb5,krb5i,krb5p ファイルの設定 ユーザー : rwx グループ : r-x その他 : r-x |
NFSサーバの共有フォルダに接続するにはmountコマンドを使用します
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
C:\>mount /? 使用法: mount [-o オプション] [-u:ユーザー名] [-p:<パスワード | *>] <\\コンピューター名\共有名> <デバイス名 | *> -o rsize=size 読み取りバッファーのサイズ (KB) を設定します。 -o wsize=size 書き込みバッファーのサイズ (KB) を設定します。 -o timeout=time RPC 呼び出しのタイムアウト値 (秒) を設定します。 -o retry=number ソフト マウントの再試行回数を設定します。 -o mtype=soft|hard マウントの種類を設定します。 -o lang=euc-jp|euc-tw|euc-kr|shift-jis|big5|ksc5601|gb2312-80|ansi ファイル名とディレクトリ名に使用される エンコーディングを指定します。 -o fileaccess=mode ファイルのアクセス権のモードを指定します。 NFS サーバーで新しく作成されたファイルに使われます。 UNIX 形式で指定します。 -o anon 匿名ユーザーでマウントします。 -o nolock ロックを無効にします。 -o casesensitive=yes|no サーバーでファイルを参照する際に大文字と小文字を区別 するかどうかを指定します。 -o sec=sys|krb5|krb5i|krb5p |
ドライブを指定しない場合は自動で割り振られます
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
C:\>mount -o lang=shift-jis anon \\freenas9.rootlinks.net\mnt\zfs\nfsshare * Z: は \\freenas9.rootlinks.net\mnt\zfs\nfsshare に正常に接続しました コマンドは正常に終了しました。 C:\>mount Local Remote Properties ------------------------------------------------------------------------------- Z: \\freenas9.rootlinks.net\mnt\zfs\nfsshare UID=-2, GID=-2 rsize=65536, wsize=65536 mount=soft, timeout=0.8 retry=1, locking=yes fileaccess=755, lang=SHIFT-JIS casesensitive=no sec=sys |
ドライブを指定してみます
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
C:\>mount -o lang=shift-jis anon \\freenas9.rootlinks.net\mnt\zfs\nfsshare E: E: は \\freenas9.rootlinks.net\mnt\zfs\nfsshare に正常に接続しました コマンドは正常に終了しました。 C:\>mount Local Remote Properties ------------------------------------------------------------------------------- E: \freenas9.rootlinks.net\mnt\zfs\nfsshare UID=-2, GID=-2 rsize=65536, wsize=65536 mount=soft, timeout=0.8 retry=1, locking=yes fileaccess=755, lang=SHIFT-JIS casesensitive=no sec=sys |
NFSで接続したドライブを切断します。切断はunmountコマンドを指定します
1 2 3 4 5 6 |
C:\>umount /? 使用法: umount [-f] <-a | ドライブ文字 | ネットワークマウント> -a すべての NFS ネットワーク マウント ポイントを削除します。 -f 強制的に NFS ネットワーク マウント ポイントを削除します。 |
1 2 3 4 |
C:\>umount E: 切断中 E: \\freenas9.rootlinks.net\mnt\zfs\nfsshare コマンドは正常に終了しました。 |
実は最初表示されないので不思議に思っていたらこんな情報を見つけました
NFS Mount not showing in Windows Explorer
http://superuser.com/questions/599641/nfs-mount-not-showing-in-windows-explorer
あっ、なるほど(^^;;
一般ユーザでWindowsログオンを行いコマンドは”コマンドプロンプト(管理者)”から実行していたのでした。そこで”コマンドプロンプト”を起動してmountコマンドを実行するとエクスプローラに表示されました
さてこのNFS接続はコンピュータを再起動すると切断されてしまい、次回起動時には接続された状態にはなりません
起動時に接続するにはスクリプトを作成してスタートアップやタスクに設定することになります
Windows NFS client re-connect to NFS target on reboot
https://social.technet.microsoft.com/Forums/windowsserver/en-US/44445dc3-0185-407f-b8ad-711f22cd4ec6/windows-nfs-client-reconnect-to-nfs-target-on-reboot
また下記の方法も見つけました。こちらが簡単ですね
Keep NFS mounted after reboot
http://www.jobendingevent.com/2012/06/13/keep-nfs-mounted-after-reboot/
/PERSISTENTは起動時に再接続するオプションでプロファイルに保存されます
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
C:\>net use /? このコマンドの構文は次のとおりです: NET USE [devicename | *] [\\computername\sharename[\volume] [password | *]] [/USER:[domainname\]username] [/USER:[dotted domain name\]username] [/USER:[username@dotted domain name] [/SMARTCARD] [/SAVECRED] [[/DELETE] | [/PERSISTENT:{YES | NO}]] NET USE {devicename | *} [password | *] /HOME NET USE [/PERSISTENT:{YES | NO}] |
1 2 3 4 5 6 7 |
C:\>net use /persistent:yes コマンドは正常に終了しました。 C:\>mount -o lang=shift-jis anon \\freenas9.rootlinks.net\mnt\zfs\nfsshare E: E: は \\freenas9.rootlinks.net\mnt\zfs\nfsshare に正常に接続しました コマンドは正常に終了しました。 |
これで再起動してもNFS共有が接続されました。ただ、起動のタイミングで✕マークになる時もありますが、暫くするとアクセスできるようになると思います
【2014/11/21 追記】
構成オプションの変更。構成オプションの変更はサービスが停止しているとエラーになります
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
C:\>nfsadmin client config localhost の設定 プロトコル : TCP+UDP マウントの種類 : ソフト 大文字小文字を区別する : いいえ 再試行回数 : 1 タイムアウト : 8 秒 読み取りバッファー サイズ : 1024 KiloBytes 書き込みバッファー サイズ : 1024 KiloBytes 予約ポートを使用する : はい セキュリティの種類 : sys,krb5,krb5i,krb5p ファイルの設定 ユーザー : rwx グループ : r-x その他 : r-x C:\>nfsadmin client config protocol=TCP mtype=hard fileaccess=777 設定が正常に更新されました。 C:\>nfsadmin client config localhost の設定 プロトコル : TCP マウントの種類 : ハード 大文字小文字を区別する : いいえ 再試行回数 : 1 タイムアウト : 8 秒 読み取りバッファー サイズ : 1024 KiloBytes 書き込みバッファー サイズ : 1024 KiloBytes 予約ポートを使用する : はい セキュリティの種類 : sys,krb5,krb5i,krb5p ファイルの設定 ユーザー : rwx グループ : rwx その他 : rwx |
【2014/11/24 追記】
NFS ClientとNFSサーバ間で速度がでないのでバッファを増やそうとしたところ1024Kbyteが最高だったorz
1 2 3 4 5 6 7 8 9 |
C:\>nfsadmin client config rsize=4096 wsize=4096 読み取りバッファー サイズが無効です。1 2 4 8 16 32 64 128 256 512 または 1024 を指定してください。 書き込みバッファー サイズが無効です。1 2 4 8 16 32 64 128 256 512 または 1024 を指定してください。 設定を更新できませんでした。 C:\>mount -o rsize=4096 wsize=4096 lang=shift-jis anon \\freenas9.rootlinks.net\mnt\zfs\nfsshare Z: rsize の値が無効です。読み取りバッファー サイズ (KB) は 1、2、4、8、16、32、64、128、256、512、または 1024 である必要があります。 |