Linux NFSメカニズムの動作原理と例の分析

Linux NFSメカニズムの動作原理と例の分析

NFS とは何ですか?

ネットワークファイルシステム

ネットワーク上でファイルを保存および整理するための方法またはメカニズム。

NFS を使用する理由は何ですか?

すべてのフロントエンド アプリケーション サーバーは、ユーザーがアップロードした写真、ファイル、ビデオを受信し、バックエンド ストレージに格納します。

共有ストレージの利点は、データの検索と取得が便利であることです。欠点は、ストレージ サーバーに高い負荷がかかり、障害が発生するとすべてのデータが失われることです。

NFSの仕組み

NFS 機能には多くのサービスがあり、それぞれに独自のポートがあり、頻繁に変更されます。

クライアントがこれらのポートを探す場合、仲介者として RPC サービス (デフォルトのポート番号 111) が必要になります。

ワークフロー:

1. RPCサービスを開始する

2. NFS サービスを開始します (RPC サービスに起動ポートを登録します)

3. クライアントはRPCからNFSサービスを要求する

4.クライアントへのRPCリターンポート

5. クライアントは返されたポート アドレスを使用して、NFS にデータ転送を要求します。

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

インストール: yum install nfs-utils rpcbind

表示: rpm -qa nfs-utils rpcbind

サービスを開始し、起動時に自動的に開始するように設定します: systemctl start rpcbind.service systemctl enable rpcbind.service

systemctl nfs を起動します systemctl nfs を有効にします

NFSの設定

NFS 設定ファイル /etc/exports

コマンド man exports を実行して以下を見つけます。

設定ファイルの形式は次のとおりです。

共有ディレクトリにアクセスするためのホスト(権限)

①共有するディレクトリ:データにアクセスするためのディレクトリ

②アクセスするホスト:単一ホスト:172.16.1.7 またはホスト名セグメント:172.16.1.0/24 または 172.16.1.*

③権限: rw 読み取り可能 ro 読み取り専用 sync リモートディスクへの書き込み (低速、安全) async リモートバッファへの非同期書き込み (高速、安全ではない)

root_squash anonuid=匿名ユーザーのUID anongid=匿名ユーザーのGID

all_squash クライアントがどのユーザーであっても、サーバー上ではnfsnobodyとして扱われます。

[root@nfs01 ~]# vim /etc/exports

注: 上記のテスト図に示すように、ディレクトリは複数のホストと同時に共有できます。括弧と前の文字の間にスペースがないことに注意してください。

ディレクトリを作成します: [root@nfs01 ~]# mkdir -p /data

nfs のデフォルト ユーザーは nfsnobody なので、ディレクトリを承認する必要があります: [root@nfs01 ~]# chown -R nfsnobody.nfsnobody /data

NFS を再起動します: [root@nfs01 ~]# systemctl reload nfs または exportfs -r (スムーズな再起動)

診る:

web01 仮想マシンを開き、rpc および nfs サービスをインストールします (原則として、クライアントは rpc のみをインストールする必要がありますが、ここでは showmount コマンドをテストしています)

共有ディレクトリをマウントし、ファイルテストを作成します。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Linux で USB デバイスの信号を監視するための Python の実装
  • Linux USBホストドライバの書き方の詳細説明
  • ARM LinuxはALSAドライバを使用し、USBオーディオデバイスを使用します
  • LinuxでUSBモバイルストレージを使用する方法
  • Linux環境でUSBストレージを使用する
  • 事例を通してLinux NFSの仕組みを詳細に分析
  • IntelliJ IDEA リモート デバッグ Linux Java プログラム、ログを見るだけでなく問題を見つけます (推奨)
  • Linux bzip2 コマンドの使用
  • Linux で libudev を使用して USB デバイスの VID と PID を取得する方法

<<:  一般的な JavaScript 文字列メソッド 28 個と使用方法のヒントのまとめ

>>:  MySQL テーブルをコピーする 3 つの方法 (要約)

推薦する

初心者向けウェブサイト構築チュートリアルの概要

これら 6 つの記事を書いた後、私は少し混乱し始めました。次にどこに書けばいいのか分かりません。ドメ...

WindowsでiTunesのバックアップパスを変更する方法

0. 準備: • iTunesを閉じる• タスクマネージャーでiTunesから始まるサービスを終了し...

HTML CSS の 3 つの一般的なスタイル セレクター

1: タグセレクタータグセレクターはすべてのタグに使用されます。ここでは p を例に挙げます。つまり...

Navicat Premier の MySQL へのリモート接続エラー 10038 の解決方法

MySQL へのリモート接続が失敗する場合は、次の理由が考えられます。 1. 若い男性/女性の方は、...

Web ページの HTML コードの説明: 順序付きリストと順序なしリスト

このセクションでは、HTML のリスト要素について学習します。リストは、Web サイトのデザインにお...

MySQL の count 関数の正しい使い方の詳細な説明

1. 説明MySQLでは、テーブル内の行の総数を取得する必要がある場合、通常は次の文を使用します。 ...

Web ページ WB.ExecWB 制御印刷メソッド呼び出しの説明とパラメータの紹介

WebページWB.ExecWB制御印刷方法コードをコピーコードは次のとおりです。 <テーブルの...

MySQLの暗黙的な変換問題の解決

1. 問題の説明 root@mysqldb 22:12: [xucl]> テーブル t1\G ...

ウェブサイトのコードブロックのpreタグにコピーコードボタンコードを追加します

他のよりプロフェッショナルなブログ システムを参照すると、コード ブロックにコードのコピー ボタンが...

...

WeChatアプレットはキャンバスを使用して時計を描画します

この記事では、キャンバスを使用してWeChatアプレットに時計を描く具体的なコードを参考までに共有し...

有名なブログの再設計例 28 件

1. Webデザイナーウォール 2. Veerleのブログ 3. チュートリアル9 4. UXブース...

Reactコンポーネントのライフサイクル機能についての簡単な説明

React コンポーネントのライフサイクル機能とは何ですか?ライフサイクル関数は、ES6 構文クラス...

6つの珍しいHTMLタグ

まず: <abbr> または <acronym>これら 2 つの記号は同じ意...

vite2.0+vue3 モバイルプロジェクトの詳細な説明

1. 関連する技術的なポイントバイト版ヴュー3 ts統合ルーティングvuexを統合するAxiosを統...