NFS と SFU でファイル共有
みなさん季節の変わり目は体調管理に気を付けましょう。絶賛風邪っぴき中の nakamura です。げほげほ。
今日は日ごろの開発環境についてのお話しです。本番環境が Linux であればもちろん開発も Linux 上で行いたいもの。ただ、メインマシンを Linux に置き換えてしまうのはちょっと・・・、という方は多いと思います。実際に僕もその中の一人でございます。
こういった要件を満たす方法として、Samba をまず思い浮かべる人が多いのではないでしょうか。開発環境の Linux マシン(もしくは coLinux)上で Samba サーバを動かし、Windows から Samba クライアントととしてアクセスする方法です。僕もほんの少し前までこの方法で開発を行っていましたが、開発環境のスペックが低く、動作が重たくてしょうがない!Samba はユーザ毎に権限を分けたり、認証を求めたりと高機能な反面、単純にファイルの共有をしたい場合には重たいんですね。そこで代わりになる方法を探していて見つけたのが、今回ご紹介する NFS と SFU(Windows Services for UNIX) を利用する方法です。
NFS を設定
まずは Linux マシン上で NFS の設定を行います。インストール方法については、ほとんどのディストリビューションでパッケージが存在するはずなのでここでは割愛させて頂きます。
アクセスを許可する接続元、ディレクトリを指定
NFS のアクセス制限は /etc/exports というファイルで設定します。下記は記述例です。
/var 192.168.0.10(rw)
/var 172.16.0.0/16(ro)
1行目は 192.168.0.10 に対して /var 以下への読み取りと書き込みを許可する設定、2行目は 172.16.0.0/16 に所属するマシンに対して /var 以下への読み取りのみを許可する設定です。括弧内のマウントオプションに関しては mount コマンドのマニュアル等も参考にしてみてください。
NFS を起動
exports の設定が終わったら基本的には NFS の準備は OK です。下記のコマンドで NFS を起動してみましょう。
/etc/init.d/nfs start
※ディストリビューションによっては nfs → nfsd だったりするので適宜変更してください。また、iptables などでファイアーウォールを設定している場合には NFS が使用するポートを固定してアクセスを許可する必要があります。こちらも Web 上に多くの文献がありますので、ここでは省かせてもらいます。
SFU を設定
SFU(Windows Services for UNIX)とはマイクロソフトが提供する Windows と Unix の相互運用、共存を支援する為のソフトウェアパッケージです。これを使う事で Linux 上の NFS サーバに Windows マシンからアクセスする事が出来ます。
インストール
Windows Services for UNIX の画面右側にある『ダウンロード』からインストーラをダウンロードしてください。
インストーラを実行してインストールします。特殊な事は特にないのでここは割愛させて頂きます。
SFU の設定
インストールが完了するとプログラムメニューに『Windows Services for UNIX』という項目が出来ているはずです。そこから『Service For UNIXの管理』を選択しましょう。
ここで設定する必要があるのは『ユーザ名マッピング』の箇所です。これにより、 Windows 上のユーザ名と Linux 上のユーザ名を紐付ける事が出来ます。
『構成』タブでは、 Linux 上のアカウント情報をどこから参照するか設定します。特別な環境でなければ『パスワードファイルとグループファイルを使用する』で問題ないでしょう。その下の各ファイルの保存先と同期間隔は適宜設定してください。
実際のマッピングの設定は『マッピング』タブから行います。『簡易マップ』にはチェックは付けず、『詳細マップ』の『ユーザマップの表示』、『グループマップの表示』から設定してください。
それぞれ紐付けしたい Windows ユーザと Linux ユーザを選択して『追加』をクリックするだけです。
以上で準備は完了です。実際にエクスプローラ等で NFS サーバにアクセスしてみましょう!Samba よりもだいぶ早いはずです。NFS は機能もシンプルな上に、Linux カーネル組込みの機能なので Samba と比べると動作が軽快ですよ。