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

推薦する

JavaScriptのポイントごとのシリーズでこれは何ですか

これを理解するおそらく、他のオブジェクト指向プログラミング言語でもthis見たことがあり、これがコン...

CentOS 7 でソースコードから Openssh をインストールする方法

環境: CentOS 7.1.1503 最小インストール依存パッケージをダウンロードします: yum...

数十行のjsを使用してクールなキャンバスインタラクティブ効果を実現する方法を教えます

目次1. 円を描く2. マウスで動かした円3. マウスでドラッグした粒子4. カラーグラデーション粒...

Nginx インストール エラーの解決方法

1. nginx-1.8.1.tar.gzを解凍する2. fastdfs-nginx-module-...

Spring Boot のパッケージ化と Docker リポジトリへのアップロードの詳細な手順

重要な注意: この記事を読む前に、Docker コンテナに関する知識と、一般的な Docker 操作...

JavaScriptアップロードファイル制限パラメータケースの詳細な説明

プロジェクトシナリオ: 1. アップロードファイルの制限関数: 1. フロントエンド操作による異常な...

h1、h2、h3タグを適切に使用する

Web ページを作成する過程では、<h1>、<h2>、<h3> ...

vscode で console.log を書く 2 つの簡単な方法の詳細な説明

(I) 方法 1: 事前にスクリプト タグ内に直接定義します。この HTML ファイルにのみ適用され...

MySQL の主キーがクエリを高速化するために数値を使用するか UUID を使用するかについての簡単な分析

実際の開発では、MySQL の主キーは重複できず、主キーが自動的にインクリメントされることがあります...

HTMLを使用してシンプルなメールテンプレートを作成する

今日は、「ローテク」の問題について書きたいと思います。ちなみに、私は JavaScript Week...

Docker 自動ビルド 自動ビルド実装プロセス図

自動ビルドとは、Docker Hub を使用して、Dockerfile ファイルを含む GitHub...

ネイティブJSで様々なモーションの複合モーションを実現

この記事では、ネイティブ JS で実装された複合モーションを紹介します。複合モーションとは、異なる属...

Linux ドライバ開発でよく使われる関数 copy_from_user open read write の詳細な説明

目次Linux ドライバーの共通機能 (copy_from_user open read write...

Docker を使用して pypi プライベート リポジトリを構築する方法

1. 建設1. htpasswd.txtファイルを準備するファイルには、パッケージを倉庫にアップロー...