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 つの方法 (要約)

推薦する

Linux ディレクトリ切り替え実装コード例

ファイルの切り替えは Linux でよく行われる操作です。Linux を初めて学ぶときに最初に触れる...

vue backtop コンポーネントを実装するための完全なコード

効果: コード: <テンプレート> <div class="back-t...

マテリアルデザインで水滴アニメーションボタンを実現するための純粋なCSS

序文こういう特殊効果ってよく見かけますよね。すごくかっこいいですよね。 これは、Google Mat...

虫眼鏡コンポーネントのネイティブ js 実装

この記事の例では、参考までに虫眼鏡コンポーネントを開発するためのjsの具体的なコードを共有しています...

js Promise同時制御メソッド

目次質問背景アイデアと実装質問次のように、同時実行 Promise の数を制御するメソッドを記述する...

Dockerイメージ構築原理の分析(Dockerをインストールしなくてもイメージを構築できる)

イメージの構築は、DevOps プロセスにおいて非常に重要なプロセスです。一般的に、イメージの構築と...

Vue 天気予報入門

この記事では、参考までに天気予報を実装するためのVueの具体的なコードを紹介します。具体的な内容は次...

Vueは、サイドナビゲーションバーをタブページに関連付けるサンプルコードを実装します。

目次テクノロジースタック効果分析するテクノロジースタックサイドバー用Antdtabは要素を使用します...

Linux での mysql8.018 のインストールと設定のプロセスの詳細な説明

Windowsでのインストールの紹介:こちらもご覧ください –》WindowsでのMySQL 8.0...

Docker を使用して Django プロジェクトをデプロイする方法の例

また、Dockerを使用してDjangoプロジェクトをデプロイするのも非常に簡単です。とても良いです...

Ubuntu 18.04 LTSでIPアドレスを設定するための完全な手順

序文Ubuntu 18.04 LTS で IP アドレスを設定する方法は、これまで使用されていた設定...

よく理解しましたかタグ 定義方法 使用方法

序文:今日、「<!DOCTYPE> タグを注意深く理解しましたか?」と尋ねられました。私...

React refsの詳細な紹介

1. 何ですかRefs 、コンピューターでは Resilient File System (ReF...

MySQLがウィンドウ関数で合計関数を実行するときに発生する可能性のあるバグ

MySql のウィンドウ関数を使用して統計データを収集する際に、小さな問題が見つかったので、それにつ...

Vue コードの読みやすさに関するいくつかの提案

目次1. コンポーネントをうまく活用してコードを整理する1. UIコンポーネントを抽出する2. モジ...