はじめに
開発の際にcentosにsambaいれてmacからつないでたんですが、nfsで繋いだほうが早そうとのことでやってみることに。
こんな感じの場合ですね
プロジェクト内のファイルやらソースが多いと今のところsamba激重です。。。
※ ネットワークやsambaの設定やらで解決するのかもしれませんが
ながれ
1. CentOS側でnfsをexport(共有したいディレクトリの公開的な)
centos側では主にこんな感じの作業が必要です
nfs設定に必要なヤツの確認 or インストール
まずは必要なものをインストール。
たいがい入っている場合が多いので確認して入っていればinstallはスルー
※ インストールされているか確認 # sudo yum list installed | grep nfs-utils # sudo yum list installed | grep rpcbind ※ されてなければインストール # sudo yum install rpcbind # sudo yum install nfs-utils
nfsの設定
nfsの設定ファイル/etc/exports
に追記。
設定に書くフォーマットはこんな感じで
/path/to/dir 接続許可するip/サブネットマスク(読み書き設定,)
/etc/exports
に設定するipは、centosに接続許可するipなので今回の場合はmacのip。
mac側でifconfig
で確認しても良いし、そもそもこの設定でmacからcentosにsshしてるはずなので
w
コマンドとかで確認しましょう。
※ シンボリックリンクを作成 # sudo ln -l /home/hoge/ /mnt/hoge/ ※ 設定ファイルに追記 # sudo vi /etc/exports ---- vi追記 ---- /mnt/hoge 172.23.83.0/24(rw,insecure,no_root_squash,sync) --------------- ※ いろいろ起動 # sudo /etc/init.d/rpcbind start # sudo /etc/init.d/nfslock start # sudo /etc/init.d/nfs start ※ reloadして設定を反映(既に起動してた場合のみ) # sudo /etc/init.d/nfs reload
括弧の中はこんな感じで
- rw : 読み取りと書き込みを許可
- insecure : ※1下に追記
- no_root_squash : エクスポートされたディレクトリに対して、root 権限でアクセスできるようにする
- sync : 同期
※1
insecureについては参考サイトのまんまですがこんな意味らしいです
このオプションを指定すると、IPPORT_RESERVED (1024) より
小さなinternet ポートから発したリクエストしか受けつけない。
このオプションはデフォルトで有効になっている。
無効にするには insecure と指定する。
→ NFS で Mac にマウント
2. mac側でマウント
マウント操作
ってことでマック側で先ほどexportしたnfsに対してマウントします。
※ マウントするディレクトリを作成 ※ 当然ながらmount_nfsコマンドでは作成されない # cd /Volumes # sudo mkdir nfs01 ※ 設定したcentosのipとディレクトリを指定してマウント # sudo mount_nfs -P 10.33.87.216:/mnt/hoge /Volumes/nfs01
mount_nfsコマンドのオプションですが-Pは古いらしく必要無さそうです。
また、一部こまったことがあったのでこちらもご参考に
コマンドで確認
確認してみます。
# pwd /Volumes # cd nfs01 -bash: cd: nfs01/: Permission denied # ls -al drwx------ 19 1105 1105 4096 12 12 17:45 nfs01 # sudo chmod 775 nfs01 # cd nfs01 # pwd /Volumes/nfs01 # ls -al ※ リモートの/mnt/hogeの中身が見える
mac側とcentos側でユーザ名やらが違うので確認すると1105
とかになっちゃってますが
そのままでも大丈夫でした。
そのままファイルを変更/保存するとクライアントのmacのほうのユーザになってしまうかと思ったんですが、それも大丈夫でしたね。。。本当に大丈夫なのか?
finderから直接確認
また、command + k
でサーバへ接続を開いて
nfs://10.33.87.216/mnt/hoge
と打って接続を押してもfinderから接続できました。
一応アンマウントしておく
macだとdiskutil unmount
でアンマウントするらいしです
# diskutil unmount nfs01 Unmount successful for nfs01
unmountすると作成したディレクトリは消えてしまうので、
unmount後に再度行う場合はmkdirからやり直しが必要です。
3. マウントで困ったこと
マウントで困ったことの内容と対応を別記事で書いたので関連としてリンクります
- Mac OS XでCentOSに入れたsamba経由でのアクセスが遅いのでNFSにしてみるメモ(exports, mount_nfs, diskutil unmount)
- macからnfsマウントしてlinux(centos)のファイルをsublime textで保存/編集したときに困ったことメモ① - 激重い
- macからnfsマウントしてlinux(centos)のファイルをsublime textで保存/編集したときに困ったことメモ② - 一定時間経つと毎回パスワードを聞かれる(exportsのall_squash,anonuid,anongidで対応してみる)
- macからnfsマウントしてlinux(centos)のファイルをsublime textで保存/編集したときに困ったことメモ③ - 保存するたびに'Has changed on disk. Do you want to reload it?'と言われる
その他
/Volumes/nfs01と適当な名前をつけてしまったけどなんか消すのがコワい・・・・
アンマウントすればいいんだろうけど、今のまま消すのも試してみたい気も。。。汗
また、今回はcentos側がvmware的なヤツなためネットワーク周りの設定は適当だが、
ちゃんとやりたい場合はこのあたりが参考になりそう。
→tray penguin - NFS
参考
まとめ
sambaのときと比較して、finderでの表示なんかは結構早くなった気がします。
ただ、ものすごいファイル量のプロジェクトを開くとやっぱり時間かかっちゃいますね。。。
とはいえやっぱりsambaよりは早い!気がしますw