GNU/Linux >> Linux の 問題 >  >> Ubuntu

Ubuntu14.04でNFSサーバーを構成してNFS共有をマウントする方法

1.1NFS-概要

ネットワークファイルシステム(NFS)は、ユーザーがサーバーにリモートディレクトリをマウントできるようにする一般的な分散ファイルシステムプロトコルです。このシステムでは、別の場所にあるストレージスペースを活用し、複数のサーバーから同じスペースに簡単に書き込むことができます。したがって、ユーザーが頻繁にアクセスする必要のあるディレクトリに対してはかなりうまく機能します。このチュートリアルでは、Ubuntu14.04サーバーにNFS共有をマウントするプロセスについて説明します。 シンプルでわかりやすい手順で。

1.2予備情報

1.このチュートリアルの目的のために、2つのUbuntu 14.04サーバー間でディレクトリ共有構成があり、任意のサイズにすることができます。ただし、これらのサーバーごとに、 sudoで設定されたアカウントが必要になります。 特権。 2.このチュートリアルでは、ディレクトリを共有するサーバーをホストと呼びます。 、これらのディレクトリをマウントするサーバーはクライアントと呼ばれます。 3.統一性と単純化のために、チュートリアル全体でホストとサーバーの値を参照するために、次のIPアドレスを使用する必要があります。

  • ホスト:5.6.7.8
  • クライアント:333。333. 333. 333

ユーザーは、前述の値をそれぞれのホストとクライアントの値に置き換える必要があります。これで、Ubuntu14.04にNFS共有をマウントする手順を学習する準備が整いました。

1.3コンポーネントのダウンロードとインストール

最初に、ホストサーバーとクライアントサーバーの両方に必要なコンポーネントをインストールすることが不可欠です。明示的にホストサーバーに、 nfs-kernel-serverをインストールする必要があります パッケージ。ディレクトリを共有できるようになります。これは、このセッションでaptを使用して実行する最初のステップであるため、インストール前にローカルパッケージインデックスを更新することから始める必要があります(以下を参照)。

sudo apt-get update
sudo apt-get install nfs-kernel-server

これらのパッケージをインストールすると、クライアントコンピューターに切り替えることができます。クライアントコンピューターでは、 nfs-commonというパッケージをインストールする必要があります。 、サーバーコンポーネントを含める必要なしにNFS機能を提供します。ここでも、インストール前にローカルパッケージインデックスを更新して、情報が更新されていることを確認する必要があります(以下を参照)。

sudo apt-get update
sudo apt-get install nfs-common

これでこのステップは終了です。次のステップに進むことができます。

1.4ホストサーバーでの共有ディレクトリの作成

このチュートリアルの目的のために、2つの異なるディレクトリを共有することを含む実験があります。共有する最初のディレクトリは、たまたま/ホームディレクトリです。 ユーザーデータが含まれています。 2つ目は、適切な設定とプロセスを示すために、特にNFS用に作成される汎用ディレクトリです。同じものが/var / nfsにあります /ホームディレクトリとして すでに存在しているので、先に進んで / var / nfsdirectoryを作成することから始めましょう。 、次のコマンドを使用します:

sudo mkdir /var/nfs

これで、リモートホストと共有するために明示的に指定された新しいディレクトリができました。ただし、このディレクトリの所有権はまだ理想的ではありません。 nooneという名前のシステム上のユーザーにユーザー所有権を割り当てる必要があります 。また、グループの所有権を anygroupという名前のシステム上のグループに割り当てる必要があります。 。これは、次のコマンドを入力することで実行できます。

sudo chown noone:anygroup /var/nfs

ここで重要なのは、特に共有に使用されるディレクトリのみの所有権を慎重に変更する必要があるということです。たとえば、ホームディレクトリ(/ homeディレクトリ)の所有権は変更しないでください。ホストサーバーに存在するユーザーに多くの問題が発生する可能性があります。

1.5ホストサーバーでのNFSエクスポートの構成

ディレクトリを作成して割り当てたら、これらのリソースの共有を設定するために、NFS構成ファイルに飛び込むことができます。そのためには、 / etc / exportsを開く必要があります 次のコマンドを使用して、root権限を持つテキストエディタでファイルを作成します。

sudo nano /etc/exports

表示されるファイルには、各構成行の一般的な構造を知らせるいくつかのコメントが含まれています。基本的に、構文は次のようになります::

directory_to_share client (share_option2,...,share_optionM)

ここでの目的は、共有する必要のあるディレクトリごとに1行を作成できるようにすることです。選択した例では、IPはたまたま333.333.333.333であるため、行は次のようになります。/ home 333.333.333.333(rw、sync、no_root_squash、no_subtree_check)/ var / nfs 333.333.333.333(rw、sync 、no_subtree_check)ここで、上記の行に示されているオプションを理解するために少し時間がかかります。

  • rw :このオプションを使用すると、クライアントコンピューターでボリュームへの読み取りおよび書き込みアクセスが可能になります。
  • 同期 :応答する前にNFSにディスクへの変更の書き込みを強制するため、より安定した一貫性のある環境が得られます。これは主に、応答がリモートボリュームの実際の状態を複製するためです。
  • nosubtreecheck :このオプションは、サブツリーチェックを回避します。これは、リクエストごとに、エクスポートされたツリーでファイルが実際にまだ利用可能かどうかをホストにチェックさせるプロセスです。クライアントがファイルを開いているときにファイルの名前が変更されると、問題が発生する可能性があります。同じ理由で、ほぼすべての場合、サブツリーチェックを無効にすることをお勧めします。
  • norootsquash :デフォルトでは、NFSはrootユーザーからの要求をサーバー上の非特権要求にリモートで変換します。これは、クライアントのrootアカウントがホストのファイルシステムをrootとして使用できないようにするセキュリティ機能を目的としています。この種のディレクティブは、特定のロットの共有に対してこれを無効にします。

必要な変更をすべて行ったら、予想どおり、ファイルを閉じる前に変更を加えて保存する必要があります。続いて、次のコマンドを使用して、共有のエクスポートを保持するNFSテーブルを作成する必要があります。

sudo exportfs -a

ただし、NFSサービスはまだ実行されていません。次のコマンドを入力して、同じように開始できます。

sudo service nfs-kernel-server start

上記のコマンドは、構成したクライアントが共有を利用できるようにします。これで、次のステップに進む準備ができました。

1.6クライアントサーバーでのマウントポイントの作成とリモート共有のマウント

ホストサーバーを構成し、そのディレクトリ共有を利用できるようにしたら、クライアントを準備する必要があります。ここでは、リモート共有をマウントする必要があるため、いくつかのマウントポイントを作成する必要があります。従来の/mntを使用します まず、 NFSというディレクトリを作成します。 その下で株式を統合します。ここで、実際のディレクトリは、ホストサーバー上のそれらの場所に対応している必要があります。ユーザーは、次のコマンドを使用して、各ディレクトリと必要な親ディレクトリを作成できます。

sudo mkdir -p /mnt/nfs/home
sudo mkdir -p /mnt/nfs/var/nfs

リモート共有を収容するための適切な場所を作成したので、ホストサーバーをアドレス指定することにより、リモート共有をマウントすることができます。このチュートリアルの目的では、以下に示すように5.6.7.8です。

sudo mount 5.6.7.8:/home /mnt/nfs/home
sudo mount 5.6.7.8:/var/nfs /mnt/nfs/var/nfs

これらにより、ホストコンピューターからクライアントマシンに共有をマウントできるようになります。クライアントサーバーで使用可能なディスク容量を確認することで、これを再確認できます(以下を参照)。

df -h

Filesystem Size Used Avail Use% Mounted on /dev/vda 59G 1.3G 55G 3% / none 4.0K 0 4.0K 0% /sys/fs/cgroup udev 2.0G 12K 2.0G 1% /dev tmpfs 396M 324K 396M 1% /run none 5.0M 0 5.0M 0% /run/lock none 2.0G 0 2.0G 0% /run/shm none 100M 0 100M 0% /run/user 5.6.7.8:/home 59G 1.3G 55G 3% /mnt/nfs/home

下部に示されているように、エクスポートされた両方の共有がリモートサーバー上の同じファイルシステムに存在するため、目的の共有の1つだけが表示されます。つまり、同じストレージプールを共有します。 アベイルズの場合 および%を使用 正確には、列の1つだけを計算に追加できます。それでも、マウントしたすべてのNFS共有を表示する場合は、次のコマンドを入力できます。

mount -t nfs

5.6.7.8:/home on /mnt/nfs/home type nfs (rw,vers=4,addr=5.6.7.8,clientaddr=333.333.333.333) 5.6.7.8:/var/nfs on /mnt/nfs/var/nfs type nfs (rw,vers=4,addr=5.6.7.8,clientaddr=333.333.333.333)

上記のコマンドは、クライアントマシンで現在アクセス可能なNFSマウントのすべてをスローします。これにより、このステップは終了し、次のステップに進むことができます。

1.7NFSアクセスのテスト

共有に何かを書き込むことで、共有へのアクセスをテストできます。たとえば、共有の1つにテストファイルを書き込みます(以下を参照)。

sudo touch /mnt/nfs/home/test_home

ここでは、重要な違いを示すために、他の共有にもテストファイルを書き込みます。

sudo touch /mnt/nfs/var/nfs/test_var_nfs

違いを理解するには、マウントされたホームディレクトリ(以下に示す)内のファイルの所有権を注意深く確認してください。

ls -l /mnt/nfs/home/test_home
-rw-r--r-- 1 root   root      0 Apr 27 12:58 test_home

明らかなように、ファイルはrootによって所有されています。その理由は、 root_squashを非アクティブ化したためです。 このマウントのオプション。これにより、ファイルは不明な非rootユーザーとして書き込まれます。 root_squashを有効にしてマウントされた他のテストファイルでは、まったく異なるものに気付くでしょう(以下で説明します):

ls -l /mnt/nfs/var/nfs/test_var_nfs
-rw-r--r-- 1 noone anybody 0 Apr 27 12:58 test_var_nfs

明らかに、このファイルは誰もに割り当てられていません ユーザーと誰でも グループ。したがって、これはプリセット構成に準拠しています。次のステップに進みましょう。

1.8リモートNFSディレクトリのマウントを自動化する

fstabfile に追加することで、リモートNFS共有を自動的にマウントするオプションをお楽しみいただけます。 クライアントで。次のコマンドを使用して、テキストエディタでroot権限でこのファイルを開く必要があります。

sudo nano /etc/fstab

ファイルの一番下に、共有ごとに1行追加する必要があります。これは、以下のようになります。

5.6.7.8:/home      /mnt/nfs/home   nfs auto,noatime,nolock,bg,nfsvers=4,intr,tcp,actimeo=1800 0 0
5.6.7.8:/var/nfs /mnt/nfs/var/nfs nfs auto,noatime,nolock,bg,nfsvers=4,sec=krb5p,intr,tcp,actimeo=1800 0 0

ここで指定されているオプションは、 fstabでのNFSマウントについて説明しているマニュアルページにあります。 次のコマンドを使用してファイルを作成します:

man nfs

これにより、起動時にリモートパーティションを自動的にマウントできるようになります。接続が確立され、共有が利用可能になるまでに時間がかかる場合があります(ここでは忍耐が美徳になります!!)

1.9NFSリモート共有のアンマウント

リモートディレクトリをシステムにマウントする必要がなくなった場合は、次のコマンドを使用して、共有のディレクトリ構造から移動してアンマウントすることで、リモートディレクトリを簡単にアンマウントできます。

cd ~
sudo umount /mnt/nfs/home
sudo umount /mnt/nfs/var/nfs

これにより、リモート共有を削除して、ローカルストレージのみにアクセスできるようになります。

df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda         59G  1.3G   55G   3% /	
none            4.0K     0  4.0K   0% /sys/fs/cgroup
udev            2.0G   12K  2.0G   1% /dev
tmpfs           396M  320K  396M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            2.0G     0  2.0G   0% /run/shm
none            100M     0  100M   0% /run/user

明らかなように、NFS共有は現在ストレージスペースとして使用できません。これでチュートリアルは終了です。

1.10まとめ

NFSは、ネットワークを介してリモートシステムにアクセスするためのシンプルで迅速なメカニズムを提供します。ただし、プロトコルは暗号化されていません。これを実稼働環境で使用する場合は、はるかに安全なエクスペリエンスを作成するために、SSHまたはVPN接続を介してNFSをルーティングすることを検討することをお勧めします。


Ubuntu
  1. Ubuntu18.04でNFSサーバーを構成してNFS共有をマウントする方法

  2. Ubuntu20.04にDHCPサーバーをインストールして構成する方法

  3. Ubuntu20.04にNFSクライアントとサーバーをインストールする方法

  1. Ubuntu14.10でNFSサーバーを構成してNFS共有をマウントする方法

  2. Ubuntu20.04にAlgoVPNServerをインストールして構成する方法

  3. UbuntuにRedisサーバーをインストールして構成する方法

  1. Ubuntu20.04にNFSサーバーをインストールして構成する方法

  2. Ubuntu20.04にVNCをインストールして構成する方法

  3. Ubuntu20.04でNFSサーバーとクライアントをセットアップする方法