3-4 ネットワークファイルシステム ネットワーク経由でファイルを共有したい場合、 “NFS”というしくみを使用しま す。 なお、Windows マシンとは、Samba(Windows からLinux へアクセス→P.109)また は smbfs(Linux から Windows へアクセス→ P.116)を使うことで、互いのディスク領 域を利用できます。 資 料 【Linux NFS-HOWTO(JF)】http://www.linux.or.jp/JF/JFdocs/NFS-HOWTO/ NFS NFS(Network File System)を使うと、ほかのLinux マシン(UNIX 系マシン)のデ ィスクをマウントすることができます。 マウントされる側、すなわち、ディスクを提供する側は NFS サーバと呼ばれます。 これに対し、マウントする側は NFS クライアントと呼ばれることがあります。 ▼NFS のしくみ NFSクライアント SV1 NFSサーバ sv1の/sharedocを /usr/shareとして マウントできます / usr share home var / usr sharedoc マウント home var export する 106 3-4 ネットワークファイルシステム E サーバ側 ● NFS を使うための準備 NFS サーバ側では、次の設定が必要です※。 (1) カーネルでNFS ファイルシステムサポートとNFS サーバサポートを有効にする設定 (2) NFS サービスデーモンを起動する設定 (3) NFS 用のポートを使用可能にする設定 関連項目 カーネルの設定: P.278 デーモンを自動起動にするには(rc スクリプト): P.54 付録 パッケージの扱い方: P.287 サービスとポート: P.218 ●/etc/exports マウントを許すディレクトリは、/etc/exports ファイルで設定します。 ▼/etc/exports の書式 ディレクトリ名 マウントを許可するホスト名(オプション) ※ホスト名は IP アドレスでも可 ほかのマシンからは書き込めないように(リードオンリーに)したい場合は、ホス ト名の後にオプションとして" ( ro ) "を付けます。たとえば、ホスト 192.168.1.92 に対 し、/sharedoc ディレクトリをリードオンリーでマウントすることを許可する場合は、 「/sharedoc 192.168.1.92 ( ro ) 」とします。 なお、スーパーユーザー(root)が NFS ディレクトリにアクセスした場合、アクセ スしたユーザーの uid は nobody などに置き換えられます。root の uid(0)のままアク セスさせたい場合は、no_root_squash を指定します。 ▼サンプル:/etc/exports /sharedoc 192.168.1.92(rw) /sharedoc host1(rw,no_root_squash) ← 192.168.1.92 に読み書き可能で許可 /sharedoc host1(rw) host2(rw) host9(ro) ←host1 と host2 に読み書き可能で、host9 に /sharedoc *(ro) ←すべてのホストにリードオンリーで許可 ←host1 に読み書き可能およびルート権限が 可能な状態で許可 リードオンリーで許可 許可するディレクトリ 【NFS サービスデーモン】Red Hat 系は nfs - utils パッケージを使用する。Debian 系は nfs - kernel - server パッケ ージ、または nfs - user - server パッケージを使用する。nfs - user - server パッケージの場合、カーネルの NFS サポ ートが不要(ただし、パフォーマンスはやや落ちる) 。 107 /etc/exports ファイルを修正したら、exportfs コマンドで再読み込みを行います。な お、exportfs コマンドでマウントを許すディレクトリを設定することも可能です。 # /usr/sbin/exportfs -ra # /usr/sbin/exportfs -o ro host1:/tmp ←/etc/exports ファイルを再読み込み $ /usr/sbin/exportfs ←現在許可しているディレクトリを一覧表示 ←host1 に対し/tmp ディレクトリをリードオン リーで許可する E クライアント側 ● NFS を使うための準備 NFS クライアント側では、カーネルで NFS ファイルシステムサポートを有効にする 設定が必要です。また Debian では、これに加えて nfs - common パッケージが必要です。 関連項目 カーネルの設定: P.278 付録 パッケージの扱い方: P.287 ● mount コマンド mount コマンドで「mount ホスト名:ディレクトリ名 マウントポイント」のように指 定することで、NFS サーバのディレクトリをマウントできます。 # mount sv1:/tmp /mnt/tmp よく使うディレクトリの場合、/etc/fstab(→ P.96)に設定するか、オートマウント の設定(→P.102)をしておくと便利です。 ●/etc/fstab /etc/fstab では、ファイルタイプに nfs を指定します。また、NFS 特有のオプション もあります(次ページ) 。なお、NFS 用のオプションは「man nfs」で確認できます。 ▼サンプル:/etc/fstab sv1:/sharedoc 108 /usr/share nfs ro,hard,intr 0 0 3-4 ネットワークファイルシステム ▼NFS 用の主なマウントオプション hard サーバが応答しない場合、エラーメッセージを出して再試行する(intr オ プションを併用することで再試行を中断できる) soft サーバが応答しない場合、ファイルアクセスを要求したプロセスにエラ ーを通知する。※処理できないプログラムのほうが多いためhard オプシ ョンの使用が推奨されている port= 数値 NFS サーバに接続するときのポート番号 rsize= 数値 NFS サーバから読み込むときのバッファサイズ wsize= 数値 NFS サーバへ書き込むときのバッファサイズ timeo= 数値 タイムアウトの後、再送を行うまでの時間(0.1 秒単位) retrans= 数値 リクエストの再送回数 Samba W i n d o w s か ら L i n u x マ シ ン 上 の フ ァ イ ル に ア ク セ ス し た い 場 合 は 、L i n u x に “Samba”を導入します※。 Samba は、TCP/IP 上で SMB(Server Message Block)プロトコルをサポートする プログラム群です。SMB プロトコルは、Windows ネットワークで使われているプロ トコルで、ファイルやプリンタの共有をする場合に必要となります。 ESamba のインストール Samba を利用するには、Linux 側に Samba パッケージをインストールします ※ 。 2.0.x 系、2.2.x 系、3.x 系などいくつかの系統がありますが、通常は、各ディストリビ ューションで採用しているものを使うのがよいでしょう。たとえば、apt(→ P.290) が使える環境であれば、「apt - get install samba」で、それぞれの環境での最新版がイ ンストールできます。 Windows から Linux への接続 Windows に NFS クライアントソフトをインストールするという手段もあります。NFS クライアントは、たとえば、SFU(Windows Services for UNIX,3.5 から無償になりま した)などに含まれているほか、市販ソフトもあります。 【SFU】 http://www.microsoft.com/japan/windows/sfu/ 【Samba パッケージ】Samba のサイトにも最新版ソースのほか、各ディストリビューション向けのパッケージ が用意されている。最新の機能が必要な場合はこちらを利用してみるとよいだろう。 日本 Samba ユーザー会 http://www.samba.gr.jp/ 109 ESamba の起動 Samba のプログラムは nmbd と smbd ※で、単体で起動する方法と、inetd/xinetd 経由 で起動する方法とがあります。バイナリパッケージからインストールした場合は起動 まで設定されていることがほとんどで、変更する必要はあまりないでしょう。 起動方法はどちらを使ってもかまいませんが、inetd/xinetd 経由の場合クライアン ト(Windows 側)から要求があったときのみ起動するので、メモリの節約になりま す。一方、単体の場合はそのような処理が不要な分、パフォーマンスが上がります。 ●単体の起動設定(rc スクリプト) 起動用のスクリプトは、通常、/etc/init.d/smb またはsamba となっています。 Red Hat 系システムは chkconfig コマンド、Debian 系システムは update - rc.d スクリ プトを使うのが簡単です。 ▼/etc/init.d/smb が起動時に自動実行されるようにする ● Red Hat 系 # chkconfig smb on ● Debian 系 # update-rc.d samba defaults ● inetd/xinetd 経由の起動 /etc/services に以下の行を追加します。さらに、inetd の場合は/etc/inetd.conf、 xinetd の場合は/etc/xinetd.d/ディレクトリ下に、netbios - ns と netbios - ssn というファ イルを作成します。なお、nmbd と smbd を起動するためのファイルがすでにあるかど うかは“grep nmbd /etc/xinetd.d/ * ”などで確認できます。 それぞれ編集できたら、「/etc/init.d/inetd restart」または「killall - HUP inetd」で inetd を再起動します(xinetd の場合も同様) 。 また、接続を許可するホストを指定・変更する必要がある場合は、/etc/hosts.allow を編集します(→ P.224) 。 ▼サンプル:/etc/services netbios-ns netbios-ssn 137/udp 139/tcp 【nmbd と smbd】smbd は SMB サーバの、nmbd は NetBIOS のネームサーバのデーモンプログラム。 110 3-4 ネットワークファイルシステム ▼サンプル:/etc/inetd.conf netbios-ns netbios-ssn dgram stream udp tcp wait nowait root root /usr/sbin/nmbd /usr/sbin/smbd nmbd smbd ▼サンプル:/etc/xinetd.d/netbios-ns service netbios-ns { disable socket_type protocol wait user server only_from = no = dgram = udp = = = = yes root /usr/sbin/nmbd 192.168.0 } ▼サンプル:/etc/xinetd.d/netbios-ssn service netbios-ssn { disable socket_type protocol wait user server only_from = = = = = = no stream tcp no root /usr/sbin/smbd = 192.168.0 } 関連項目 rc スクリプト: P.50 /etc/services : P.218 inetd : P.219 xinetd : P.221 hosts.deny/hosts.allow : P.224 111
© Copyright 2024 Paperzz