CentOS 7 で NFS ファイル共有ストレージ サービスを構築するための完全な手順

CentOS 7 で NFS ファイル共有ストレージ サービスを構築するための完全な手順

序文

NFS (Network File System) は、ネットワーク ファイル システムを意味します。その最大の機能は、異なるマシンや異なるオペレーティング システムがネットワークを介して互いのファイルを共有できるようにすることです。簡単に言えば、ローカルディスクを操作するのと同じように、リモートホストの共有ディレクトリをローカルコンピューターにマウントできるため、リモートファイルの操作が非常に便利になります。

この記事では、CentOS7 に NFS サーバーをインストールして構成する方法について説明します。

詳しい紹介を見てみましょう。

準備する

CentOS7 マシンが 2 台必要です。テストには仮想マシンを使用します。1 台は NFS サーバーとして、もう 1 台はクライアントとして使用します。構成は次のとおりです。

NFS サーバー IP: 192.168.11.31。

クライアント IP: 192.168.11.34。

私たちの目標は、NFS サーバー上のディレクトリを共有し、クライアント上でこの共有ディレクトリ内のファイルを直接操作することです。

NFS サーバーの構成

1. NFSサービスをインストールする

まず、yum を使用して nfs サービスをインストールします。

yum -y rpcbind nfs-utils をインストールします

2. 共有ディレクトリを作成する

サーバー上に共有ディレクトリを作成し、権限を設定します。

mkdir /data/share/
chmod 755 -R /データ/共有/

3. NFSを設定する

nfs の設定ファイルは /etc/exports です。設定ファイルに次の行を追加します。

/data/share/ 192.168.11.34(rw、ルートスカッシュなし、オールスカッシュなし、同期)

このコード行は、共有ディレクトリ /data/share/ をクライアント IP 192.168.11.34 と共有することを意味します。括弧内の内容は権限パラメータです。

rw は、ディレクトリを読み取りおよび書き込み可能に設定することを意味します。

sync は、データがメモリとハードディスクに同期して書き込まれることを意味します。一方、rsync は、データがハードディスクに直接書き込まれるのではなく、最初にメモリに一時的に保存されることを意味します。

no_root_squash NFS クライアントが root を使用してサーバーに接続する場合、サーバーによって共有されるディレクトリに対しても root 権限を持ちます。

no_all_squash NFS クライアントがサーバーに接続するためにどのユーザーを使用するかに関係なく、サーバーによって共有されるディレクトリに対する匿名ユーザー権限は付与されません。

共有ディレクトリ構成が複数ある場合は、構成ごとに 1 行ずつ、複数の行を使用します。設定ファイルを保存した後、設定をすぐに有効にするには、次のコマンドを実行する必要があります。

エクスポートfs -r

4. ファイアウォールを設定する

システムでファイアウォールが有効になっていない場合は、この手順を省略できます。

NFS ファイアウォールは、固定ポート 111 と 2049 に加えて、固定されていないポートを開く rpc.mounted などの他のサービスがあり、ファイアウォールにとってさらに厄介な問題となるため、特に対処が困難です。この問題を解決するには、NFS サービスのポート構成ファイルを設定します。

/etc/sysconfig/nfs ファイルを変更し、次の内容のコメントを削除します。存在しない場合は追加します。

RQUOTAD_PORT=1001
LOCKD_TCPポート=30001
LOCKD_UDPPORT=30002
マウントポート=1002

保存したら、ファイアウォールの許可ポリシーにポートを追加します。埋め込む:

ファイアウォール コマンド --zone=public --add-port=111/tcp --add-port=111/udp --add-port=2049/tcp --add-port=2049/udp --add-port=1001/tcp --add-port=1001/udp --add-port=1002/tcp --add-port=1002/udp --add-port=30001/tcp --add-port=30002/udp --permanent
ファイアウォール-cmd --reload

5. サービスを開始する

rpcbind および nfs サービスを次の順序で開始します。

systemctl rpcbind を起動します
systemctl スタート nfs

スタートアップに追加:

systemctl rpcbind を有効にする 
systemctl で NFS を有効にする

nfs サービスが開始された後、rpcinfo -p コマンドを使用してポートが有効かどうかを確認できます。

サーバーをインストールしたら、showmount コマンドを使用して、サーバー (このマシン) が接続可能かどうかを確認できます。

[root@localhost ~]# showmount -e localhost
ローカルホストのエクスポートリスト:
/データ/シェア 192.168.11.34

上記の結果は、NFS サーバーが適切に構成されていることを示しています。

クライアント構成

1. rpcbindサービスをインストールする

クライアントは、nfs をインストールしたり、nfs サービスを有効にしたりせずに、rpcbind サービスをインストールするだけで済みます。

yum -y rpcbindをインストールします

2. リモートNFSファイルシステムをマウントする

サーバー上の共有ディレクトリを表示します。

[root@localhost ~]# showmount -e 192.168.11.31
192.168.11.31 のエクスポート リスト:
/データ/シェア 192.168.11.34

マウント ディレクトリを作成し、マウント コマンドを実行します。

mkdir -p /mnt/share
マウント -t nfs 192.168.11.34:/data/share /mnt/share/ -o nolock,nfsvers=3,vers=3

-onolock,nfsvers=3 が追加されていない場合、マウントされたディレクトリ内のファイルの所有者とグループは両方とも nobody になります。nfsvers=3 が指定されている場合は、root が表示されます。

アンマウントしたい場合は、次のコマンドを実行します。

/mnt/share をアンマウントする

3. 起動時に自動的にマウントする

上記のように設定すれば、NFS が展開されます。しかし、クライアントシステムを再起動すると、マシンでマウントできなくなり、再度手動でマウントする必要があります。この操作は面倒なので、起動時に自動的にマウントするように設定する必要があります。起動時にローカル ディスクが最初にマウントされてからネットワークが開始され、NFS はネットワークが開始した後にのみマウントできるため、/etc/fstab ファイルにマウント項目を書き込む必要はありません。そのため、マウント コマンドを /etc/rc.d/rc.local ファイルに書き込むことができます。

[root@localhost ~]# vim /etc/rc.d/rc.local
#ファイルの末尾に行を追加します:
マウント -t nfs 192.168.11.34:/data/share /mnt/share/ -o nolock,nfsvers=3,vers=3

保存してマシンを再起動して確認してください。

テスト検証

マウント結果を表示するには、クライアントで df -h と入力します。

ファイルシステムの使用済み容量 使用可能使用率% マウントポイント /dev/mapper/centos-root 18G 5.0G 13G 29% /
devtmpfs 904M 0 904M 0% /dev
tmpfs 916M 0 916M 0% /dev/shm
tmpfs 916M 9.3M 906M 2% /実行
tmpfs 916M 0 916M 0% /sys/fs/cgroup
/dev/sda1 497M 164M 334M 33% /ブート
tmpfs 184M 0 184M 0% /run/user/0
192.168.11.31:/data/share 18G 1.7G 16G 10% /mnt/share

最後の行を見ましたか? これは正常にマウントされたことを意味します。次に、クライアント上の /mnt/share ディレクトリに移動し、ファイルを作成/削除して、サーバーの /data/share ディレクトリに効果があるかどうかを確認します。同様に、クライアント上の対応するディレクトリでサーバーを操作して、効果を確認します。

要約する

上記はこの記事の全内容です。この記事の内容が皆さんの勉強や仕事に一定の参考学習価値を持つことを願っています。ご質問があれば、メッセージを残してコミュニケーションしてください。123WORDPRESS.COM を応援していただきありがとうございます。

以下もご興味があるかもしれません:
  • Centos8 は kdc 暗号化に基づいて nfs を構築します
  • CentOS 環境で NFS リモート ディレクトリ マウントを使用する手順の紹介
  • CentOS 6.8 で NFS ファイル共有を設定する方法
  • CentOS6.9 での NFS サービスのインストールと設定に関するチュートリアル
  • Centos7 のインストールと NFS サービスの構成およびマウントのチュートリアル (推奨)
  • Centos7 で NFS を使用および設定する手順
  • Centos7 での NFS サービス構築の紹介

<<:  MySQL ページング分析の原理と効率改善

>>:  ミニプログラム録画機能の実装

推薦する

MySQL が UNION を使用して 2 つのクエリを接続できない理由の詳細な説明

概要連合接続データセットキーワードは、2つのクエリ結果セットを1つに連結し、同一のレコードを除外する...

Linuxのバージョン情報を復号化する方法

Linux バージョンに関する情報を表示および解釈するのは、見た目よりも少し複雑です。単純なバージョ...

プロジェクトにaxiosをカプセル化する実際のプロセス

目次序文axiosカプセル化の利点パッケージのアイデア設定の優先順位axiosインスタンス構成1. ...

aタグ内のテキストを非表示にして画像を表示するには?360モードレンダリングに対応

多くの場合、画像を表示する<a>タグのスタイルに遭遇しますが、タグ内にテキストがあり、そ...

Windows 10 での mysql5.5 データベース コマンドラインの中国語文字化け問題を解決する

システムをリセットした後、かなり前にインストールした MySQL データベースのコンソール クエリで...

CSS で実現される HTML 背景色のグラデーション

エフェクトのスクリーンショット:実装コード:コードをコピーコードは次のとおりです。 <!DOC...

Dockerはローカルイメージをパッケージ化し、他のマシンに復元します

1. docker imagesを使用して、このマシン上のすべてのイメージファイルを表示します。 2...

Nginx におけるサーバーとロケーションのマッチングロジックの詳細な理解

サーバーマッチングロジックNginx は、リクエストを実行するサーバー ブロックを決定するときに、サ...

要素テーブルヘッダー行の高さの問題の解決

目次序文1. 問題の原因2. 解決策VueはelementUIテーブルtr thの高さと背景色を変更...

MySQLクエリキャッシュの簡単な使い方の詳細な説明

目次1. クエリキャッシュの実装プロセス2. クエリキャッシュを構成する3. クエリキャッシュを有効...

Vue カプセル化に基づくプルダウン更新およびプルアップ読み込みコンポーネント

VueとネイティブJavaScriptカプセル化に基づいて、プルダウンリフレッシュとプルアップロード...

Mysql5.6.36 スクリプトのコンパイル、インストール、初期化のチュートリアル

概要この記事は、centos7.3 上で mysql5.3.6 を自動的にコンパイルしてインストール...

あなたのウェブサイトはIE8に適していますか?

オリンピック期間中にIE8ベータ2がリリースされ、英語版のリリースに合わせて中国語版も第一波でリリー...

JavaScript 関数をよりエレガントにする方法

目次分割代入を使用したオブジェクトパラメータコールバック関数の命名条件文を説明的にするスイッチ文をM...

MySQL 5.7.27 のダウンロード、インストール、設定に関する詳細なチュートリアル

目次1. ダウンロード手順2. 環境変数を設定する3. my.iniファイルを設定する4. MySQ...