読者です 読者をやめる 読者になる 読者になる

tweeeetyのぶろぐ的めも

アウトプットが少なかったダメな自分をアウトプット<br>\(^o^)/

Mac OS XでCentOSに入れたsamba経由でのアクセスが遅いのでNFSにしてみるメモ(exports, mount_nfs, diskutil unmount)

はじめに

開発の際にcentossambaいれてmacからつないでたんですが、nfsで繋いだほうが早そうとのことでやってみることに。
こんな感じの場合ですね

  • エディタとか使うクライアントにmac
  • ソースの場所centosで開発

プロジェクト内のファイルやらソースが多いと今のところsamba激重です。。。
※ ネットワークやsambaの設定やらで解決するのかもしれませんが

ながれ

  1. CentOS側でnfsをexport(共有したいディレクトリの公開的な)
  2. mac側でマウント
  3. マウントで困ったこと

1. CentOS側でnfsをexport(共有したいディレクトリの公開的な)

centos側では主にこんな感じの作業が必要です

  • nfs設定に必要なヤツの確認 or インストール
  • nfsの設定
  • nfsの再起動
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からcentossshしてるはずなので 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. マウントで困ったこと

マウントで困ったことの内容と対応を別記事で書いたので関連としてリンクります

その他

/Volumes/nfs01と適当な名前をつけてしまったけどなんか消すのがコワい・・・・
アンマウントすればいいんだろうけど、今のまま消すのも試してみたい気も。。。汗

また、今回はcentos側がvmware的なヤツなためネットワーク周りの設定は適当だが、
ちゃんとやりたい場合はこのあたりが参考になりそう。
tray penguin - NFS

参考

まとめ

sambaのときと比較して、finderでの表示なんかは結構早くなった気がします。
ただ、ものすごいファイル量のプロジェクトを開くとやっぱり時間かかっちゃいますね。。。
とはいえやっぱりsambaよりは早い!気がしますw