windows10でvagrant-winnfsdを使ってNFSフォルダ同期
開発環境としてWindows + Vagrant + VirtualBoxで開発しているんですがとにかく遅い。調べてみたらvagrantのデフォルトのファイル共有が原因のようです。
そこでvagrant-winnfsdを使用して、NFSフォルダ同期を試してみました。
NFSとは、主にUNIX系OSで利用される分散ファイルシステム、および、そのための通信規約(プロトコル)。 ネットワークを介して別のコンピュータの外部記憶装置(ストレージ)をマウントすることができ、そこに保存されているディレクトリやファイルをあたかも手元にあるかのように扱うことができます。Windows環境では使用できない為、vagrant-winnfsdを使用します。
1.インストール
$ vagrant plugin install vagrant-winnfsd
2.Vagrantfileを編集してnfsを有効にする
config.vm.synced_folder "src", "/var/www/project", :mount_options => ["dmode=777","fmode=777"], type: "nfs"
3.Vagrantfileを編集してuidとgidを設定する
パラメタを介してconfig.winnfsd.uidparamとgidを介してuidを設定することができます。
Vagrant.configure('2') do |config|
config.winnfsd.uid = 1
config.winnfsd.gid = 1
end
4.vagrant upコマンド実行
vagrant up
すると
==> default: Mounting NFS shared folders...
The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!
mount -o vers=3,udp,nolock,vers=3,udp 192.168.33.1:/C/Users/e2info/Documents/NetBeansProjects/nice-web/src /var/www/project
Stdout from the command:
Stderr from the command:
mount.nfs: Connection timed out
Done.
SSHコマンドがゼロ以外の終了ステータスで応答しましたとエラーになったので、
5.アドレスマッピングを無効にし、再起動vagrant reload
$ vagrant ssh
vagrant at localhost in ~
$ sudo ln -s -f /dev/null /etc/udev/rules.d/70-persistent-net.rules
$ exit
$ vagrant reload
同じエラーが出てうまくいかなかったので、
vagrant 削除後にvagrant up
vagrant box remove CentOS7
vagrant up
これで無事起動できました。
体感速度、2倍です!!