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

推薦する

Kali に docker と portainer をインストールする方法

dockerの登場により、多くのサービスが徐々にハードウェアアーキテクチャへの依存から脱却しました。...

UTF-8 および GB2312 ウェブエンコーディング

最近、多くの学生から Web ページのエンコーディングについて質問を受けています。gb2312 と ...

Dockerコマンドの学習を1つの記事にまとめる

目次導入ミラーリポジトリログイン引く押す検索ローカル画像管理画像rmiタグ建てる歴史保存負荷輸入コン...

Alibaba Cloud MySQL スペースをクリーンアップする方法

今日、Alibaba Cloudからディスク警告通知を受け取りました。確認したところ、100Gのスペ...

Nginx での SSL 証明書のインストールと展開手順の概要

目次問題の説明:インストール手順1. 準備2. サーバーにリモート接続する3. 証明書と秘密鍵ファイ...

CentOS7 で MySQL のスケジュールされた自動バックアップを実装する方法

実稼働環境で起こる最も嬉しいことは、シナリオによっては、更新または削除時にパラメータを無視せざるを得...

MySQL 5.7.13 ソースコードのコンパイル、インストール、および構成方法のグラフィックチュートリアル

インストール環境: CentOS7 64ビットMINI版公式ソースコードのコンパイルおよびインストー...

MySQL における int の最大値の詳細な説明

導入2日前に見た問題について詳細に書きます。バイトコンピューターがバイナリに基づいていることは誰もが...

Firebug ツールを使用して iPad でページをデバッグする

iPad でページをデバッグするにはどうすればいいですか? iOS 5 をご利用の場合、iPad の...

Docker に Kong ゲートウェイをインストールする方法の例

1. Dockerネットワークを作成する docker ネットワーク作成 kong-net 2. デ...

ウェブデザインの概要

<br />1998年に最初の個人ページが誕生してから2008年の今日まで、デザイン業界...

MySQL 5.7.22 バイナリパッケージのインストールとインストール不要版 Windows 設定方法

次のコードは、MySQL 5.7.22 バイナリ パッケージのインストール方法を紹介しています。具体...

Vue ショッピングカートのケーススタディ

目次1. ショッピングカートの例2. コードの実装3. まとめ1. ショッピングカートの例一連の学習...

Zabbixを介してデータベース接続情報といくつかの拡張機能をすばやく取得します

背景アプリケーション システムの数が増え続けると、当初はアラームを発していなかったアクティブ スレッ...