この記事環境: CentOSの7
簡単な紹介
NFS(ネットワークファイルシステム)をすることにより、歴史的な合意であるSUNの中に会社の1984年のために年間開発にUNIXライク使用して、システム間のいくつかのディレクトリを共有するためにC / Sのアーキテクチャを、NFS用サーバーは、大規模なファイルサーバで、あなたは出力ディレクトリとして設定する共有ディレクトリのいくつかは、クライアントがそのフォルダ内のさまざまな操作をした後にディレクトリに独自のファイルシステム、クライアントのディレクトリをマウントする必要がありますが(、削除、コピーなどを作成します)実際には、リモートサーバーに対応する実ディレクトリで動作します。
RPCのプロトコル
RPC(Romoteプロシージャコール)リモート・プロシージャ・コールで、合意は単に意味:プログラマがローカル呼び出しメソッド(または関数)として呼び出すことができます方法(または機能)などのリモートコンピュータに配置されており、この方法(または関数)呼び出しプロセスは、プログラマに対して完全に透過的であり、NFSは、複数の通信ポートの使用を必要とし、これらのポートが使用するRPCの協議をして選択します。
権利の問題
特定のクライアント操作の共有ディレクトリ内のユーザの身分証明書がマウントされたすべてのユーザーが圧縮されている場合は、メインの設定ファイルによって決定されます(all_squashコマンド)または唯一のルートが圧縮されている(にroot_squash)を、その後、圧縮されたユーザーがマップされます誰も共有ディレクトリの下に運営この時点で、ユーザーの身分証明書ではありません誰も。
さらに、ディレクトリサーバ内の共有ファイルが属している UID とGIDは、例えば、クライアントに対応するユーザにマッピングされ、
サーバーは、次の書類を持っています
README.TXT UID = 1000(トム)GID = 1000(トム)
install.sh UID = 1001(ボブ)GID = 1001(ボブ)
startgui.py UID = 1009(ジェリー)GID = 1009(ジェリー)
クライアントのpasswd 次のようにファイルの一部は、あります
ジャック:X:1000:1000
ナターシャ:X:1001:1001
ボブ:X:1002:1002
Simoth:X:1003:1003
だから、ケースファイルに次の共有ディレクトリをマウントするクライアントに属し、
README.TXT UID = 1000(ジャック)GID = 1000(ジャック)
install.sh UID = 1001(ナターシャ)GID = 1001(ナターシャ)
startgui.py UID = 1009 GID = 1009
あなたがアクセスしたい場合は remove.py このファイルに他の人々へのアクセスに応じてファイルを、!
コンフィギュレーション
1. サーバーインストール:
ここで使用 YUM ソースが搭載されています、
[ルート@ localhostの〜]#yumを-yのnfs-utilsのインストール
インストール時に自動的にインストールされます rpcbindのソフトウェアを、このソフトウェアは、RPC のヘルプに使用されるプロトコルの特定の実装、NFS ポートを選択しました。
2. 設定のプライマリ設定ファイル
NFS メインの設定ファイルでは/ etc /輸出その文字通りの意味として、設定するための文書NFSの出力ディレクトリを、NFS 出力が設定したパラメータに応じてサービスを起動または再起動され、自動的にこのファイルを読み込み、このファイルディレクトリに対応する、このプロファイルは、構文は次のとおりである、比較的単純な構成規則です、
内容が出力されるように 、ホスト 1(選択、1 選択2 [、...])ホスト2(選択1、選択2 [、...])[...]
一般的なオプションは、(すなわち、出力ディレクトリはディレクトリを共有し、次のされている NFS も共有ディレクトリとして知られる、出力ディレクトリにあります)
RO :読み取り専用共有ディレクトリ、デフォルトのオプション
RW :リード・ライト共有ディレクトリ
root_squash :使用してクライアントの場合は、ルートこの共有ディレクトリにアクセスするユーザーが、圧縮された誰もユーザー、他のユーザーは、デフォルトのオプションは圧縮されていません
all_squashコマンド:この共有ディレクトリにアクセスするすべてのユーザーのために圧縮され、誰も
no_root_squash :を含むすべてのユーザーのために、この共有ディレクトリにアクセスするために圧縮されていないルートは、このオプションはより危険であるので、圧縮されません
anonuidコマンド:圧縮された指定のユーザーUIDは、デフォルトは誰のUID
anongidコマンド:圧縮された指定のユーザーGID 、デフォルトは誰のGID
同期:共有ディレクトリにデータを書き込むためのクライアントが、すぐにサーバのハードディスクに書き込まれた同期更新、デフォルトのオプション
非同期:非同期の更新は、クライアントが最初のデータは、クライアントマシンにメモリに残って書き込み、再びサーバーのハードディスクに書き込まれるアイドル状態であると、共有ディレクトリにデータを書き込みます
安全でないで:クライアントは非予約ポート(より大きい使用することを可能に1024をサーバーに接続します)
ここでは、簡単な構成例は、(自分の作成してくださいです /ホーム/ NFSSHAREを、とに変更パーミッション777 )
/ホーム/ NFSSHARE 192.168.88.0/24(rw,async)
:説明 192.168.88.0/24 このセグメントを設定するためにも使用することができます* 192.168.88を。代わりに、しかし、ワイルドカードがあるため、推奨されません* ホスト名を一致させるために使用。
3. 設定を確認します。
再起動では NFSのことを確実にするために提供する前にのrpcbind サービスが実行され、2つのサービスのスタート順は次のとおりです。最初のスタートのrpcbind 、再起動NFSは、
[ルート@ localhostの〜]#systemctlの開始にrpcbind
[ルート@ localhostの〜]#systemctlの開始NFS
使用のexportfs コマンドが再起動できないNFSは、出力ディレクトリサービスを更新します
exportfs :引数なし現在のディレクトリビーイングの出力を印刷します
-aのexportfs :出力のすべての列の/ etc / exportsのディレクトリ
-rのexportfs :再輸出のすべての列での/ etc / exportsのディレクトリ
-vはexportfs :出力ディレクトリという詳細情報を印刷
4. クライアントの構成
クライアントが使用する必要がある場合 showmountはまた、あなたがインストールする必要があるコマンドをNFS-utilsののソフトウェアを、使用showmountはは、リモートサーバーによって提供される出力ディレクトリを表示することができ、クライアントとして次のコマンドを入力し、
[ルート@ localhostの〜]#showmountは-e 192.168.88.128
192.168.88.128のためにリストをエクスポートします。
/ホーム/ NFSSHARE 192.168.88.0/24
コマンドが表示された場合、次のエラー、
clnt_create:RPC:ポートマッパーの障害 - 受信することができません:エラー番号113(ホストへのNoルート)
これは、ファイアウォールが対応するポートを解放しなかったため、ファイアウォールサーバーの電源を切ることができています、
[ルート@ localhostの〜]#systemctlの停止firewalld
コマンドが表示された場合、次のエラー、
clnt_create:RPC:プログラムが登録されていません
これがためです rpcbindを再起動し、起動しなかったのNFS (再起動してからサービスをNFS 時、NFSが自動的に起動しrpcbindに、再起動がうまくいかない場合は、手動でこれらのサービスを再起動するためには、サービスを)
[ルート@ localhostの〜]#systemctlの停止NFSのrpcbind
[ルート@ localhostの〜]#systemctlの開始にrpcbind
[ルート@ localhostの〜]#systemctlの開始NFS
今、クライアントが共有ディレクトリにハングアップします、
[ルート@ localhostの〜]#は192.168.88.128:/home/nfsshare /メディアをマウント
共有ディレクトリをに装着されている /メディアディレクトリ、現在のファイルシステムを表示します
[ルート@ localhostの〜]#dfを - HT
ファイルシステムタイプサイズは%が上に取り付けられ役に立つの使用を使用します
2.4G 1.3G 1.2G 54%XFSの/ dev /マッパ/ CentOSのルート/
devtmpfs devtmpfs 223M 0 223M 0%/ devの
tmpfsのtmpfsの235M 0 235M 0%は/ dev / shmに
tmpfsのtmpfsの235M 5.6M 229M 3%/実行
tmpfsのtmpfsの235M 0 235M 0%/ SYS / FS / cgroup内
の/ dev / SR0 ISO9660 4.3G 4.3G 0 100%/ MNT / localyumrepo
505M 26M 479M 6%/ホームXFSの/ dev /マッパー/ CentOSの家庭
/ dev / sda1をXFS 125M 107M 19M 86%/ブーツ
/ dev /フォルダ/チェントはXFS 509M 207メートル303メートル41パーセントの/ varました
tmpfsのtmpfsの47M 0 47M 0%/実行/ユーザー/ 0
192.168.88.128:/home/nfsshare NFS4 505M 26M 480M 6%/メディア
私たちは、このリモートの共有ディレクトリにマウントされている中で見ることができ、ファイルシステムタイプがある NFS4 、今マウントせずにコマンド-t 、ディレクトリにぶら下がっの種類を指定するパラメータマウント自動的に最も一般的なファイルシステムの種類を区別することができますコマンドを、-t 次のようにパラメータが、使用されています
[ルート@ localhostの〜]#マウント-t nfsの192.168.88.128:/home/nfsshare /メディア
5. クライアントは、恒久的にマウント
ファイルシステムをマウントする上記の方法は一時的なものであり、そして次にシステムが再起動後にマウントされたときに、NFS 共有ディレクトリが消え、に書き込まれた情報を永続的にマウントする必要性をマウントしたいの/ etc / fstabのファイルとして文字通り、fstabのフルネームは、ファイルシステムテーブルには、すなわち、ファイルシステムテーブルには、各オペレーティングシステムを実現することができ、次のコードを入力して、自動的にこれらの文書を開いてファイルシステムをマウントするための機会提供NFSSHARE 、恒久的に共有ディレクトリをマウントします
[ルート@ localhostの〜]#エコー "192.168.88.128:/home/nfsshare /メディアNFSデフォルト値0 0" >>の/ etc / fstabに
パーマネントが、マウントクライアントの起動時にサーバーが稼働していることを確認し、通信することができ(例えば、ファイアウォールをオフまたは対応するポートを解放されたサーバなど)、またはシステムが入るように起動失敗に共有ディレクトリ結果をマウントすることができないためという注意緊急モード。
これまでのところ、 NFS 基本的な設定が完了しました!