はじめに
これは豊富なトピックであり、システム、ストレージ、またはバックアップ管理者になるためにストレージ領域に興味がある場合に役立つ可能性のある多くの情報が含まれています。
ファイルシステムにはさまざまな種類があり、今日の主なトピックはそのうちの1つであり、それはNFSです。
ストレージタイプ
ストレージの3つの主なタイプは次のとおりです。
– DAS
– SAN
– NAS
NAS(ネットワーク接続ストレージ)
簡単に言えば、 NAS ローカルディスクの代わりに他の人がデータを保存するためにフォルダを共有することです。これを機能させるには、サーバーとクライアントの間に接続が必要です。もちろん、サーバーに空き領域のあるディスクも必要です。 NAS はファイルレベルのストレージです。つまり、サーバー側でディスクをフォーマットし、フォーマットされたファイルシステムと共有します。
そして、ここに私たちの NFS が来ます ファイルシステム。NASをフォーマットできるファイルシステムの1つです。 LinuxOSをNFSとして使用するために、これが私たちが今やりたいことです。 サーバー。これは、実際には NASとして使用することを意味します。 サーバーですが、ディスクは NFSでフォーマットされています ファイルシステム
NFS(ネットワークファイル共有)
ネットワークを介して他のLinuxクライアントとディレクトリやファイルを共有できるようにするプロトコルです。共有ディレクトリは通常、 NFSを実行するファイルサーバー上に作成されます サーバーコンポーネント。ユーザーはファイルをファイルに追加し、そのファイルをフォルダーにアクセスできる他のユーザーと共有します。
NFS ファイル共有はクライアントマシンにマウントされ、ユーザーがローカルで作成したフォルダーと同じように利用できるようになります。 NFS ディスクの容量が不足していて、クライアントコンピューター間でパブリックデータを交換する必要がある場合に特に便利です。
NFSサーバー サイド
最初にNFSパッケージをインストールします
# yum install nfs-utils rpcbind
次に、起動時にサービスを有効にします
# systemctl enable nfs-server
# systemctl enable rpcbind
サービスを開始する
# systemctl start rpcbind
# systemctl start nfs-server
クライアントがデータを保存または読み取るための共有ディレクトリを作成しましょう
# mkdir /sharednfs
クライアントマシン上のすべてのユーザーがフォルダーにアクセスできるようにアクセス許可を設定します(実際には、フォルダーにさらに制限のある設定が必要かどうかを検討する必要があります)。
# sudo chown nobody:nogroup /sharednfs
# sudo chmod 777 /sharednfs
NFSクライアントへのアクセスを許可する
NFSクライアントへのアクセスを許可するには、エクスポートファイルを定義する必要があります。このファイルは通常、/ etc / exports
にあります。テキストエディタで/etc/ exportsファイルを編集し、次のオプションのいずれかを追加します
ro / rw :
a)ro:クライアントに共有への読み取り専用アクセスを許可します。
b)rw:クライアントに共有への読み取り/書き込みアクセスを許可します。
同期/非同期 :
a)同期:NFSサーバーは、前の要求によって行われた変更がディスクに書き込まれた後にのみ要求に応答します。
b)async:サーバーが待機する必要がないことを指定します。
wdelay / no_wdelay
a)wdelay:NFSサーバーは、別の書き込み要求が差し迫っていると思われる場合、書き込み要求のコミットを遅らせます。
b)no_wdelay:このオプションを使用して、遅延を無効にします。 no_wdelayオプションは、デフォルトの syncの場合にのみ有効にできます オプションが有効になっています。
no_all_squash / all_squash :
a)no_all_squash:リモートユーザーのマッピングを変更しません。
b)all_squash:rootを含むすべてのリモートユーザーを押しつぶします。
root_squash / no_root_squash :
a)root_squash:リモートで接続されているrootユーザーがrootにアクセスできないようにします。リモートroot権限を効果的に押しつぶします。
b)no_root_squash:ルートスカッシュを無効にします。
例1(単一のクライアント):
# vi /etc/exports
/sharednfs {clientIP}(rw,sync,no_subtree_check)
例2(複数のクライアント):
# vi /etc/exports
/sharednfs {clientIP-1}(rw,sync,no_subtree_check)
{clientIP-2}(...)
{clientIP-3}(...)
例3(サブネット):
# vi /etc/exports
/sharednfs {subnetIP}/{subnetMask}(rw,sync,no_subtree_check)
NFS共有をクライアントが利用できるようにする
共有をエクスポートして、クライアントがディレクトリを利用できるようにします
# sudo exportfs -a
-a : exports entries in /etc/exports but do not synchronize with /var/lib/nfs/etab
-i : ignore entries in /etc/exports and uses command line arguments
-u : un-export one or more directories
-o : specify client options on command line
-r : re-exports entries in /etc/exports and sync /var/lib/nfs/etab with /etc/exports
次に、サービスを再起動します
# systemctl restart nfs-server
ファイアウォール設定
Linuxでは、デフォルトでは使用されていないすべてのポートが無効になっているため、 NFSを許可する必要があります。 ファイアウォール構成のポート。
これを行うには、次のようにします
firewall-cmd --permanent --add-service mountd
firewall-cmd --permanent --add-service rpc-bind
firewall-cmd --permanent --add-service nfs
firewall-cmd --reload
クライアント側
クライアントマシンにもパッケージをインストールする必要があります
yum install -y nfs-utils
クライアントが利用できる、指定されたサーバー上の共有フォルダーを確認するには
showmount -e {serverIP}
次のように表示されます
Export list for {serverIP}:
/sharednfs {clientIP}
共有フォルダをマウントする
次に、共有フォルダをクライアント側にマウントします
まず、ポイントディレクトリを作成する必要があります
mkdir /mnt/sharednfs
マウントする時間
mount {serverIP}:/sharednfs /mnt/sharednfs
確認するには、マウントされたポイントにディレクトリまたはファイルを作成してみてください
touch /mnt/sharednfs/test
NFS共有を自動マウントするには
fstabファイルで編集
vi /etc/fstab
この行を追加
{serverIP}:/sharednfs /mnt/sharednfs nfs nosuid,rw,sync,hard,intr 0 0
NFSをアンマウントするには 共有
umount /mnt/sharednfs
最後に、クライアント側にもファイアウォールルールを追加することを忘れないでください
firewall-cmd --permanent --add-service mountd
firewall-cmd --permanent --add-service rpc-bind
firewall-cmd --permanent --add-service nfs
firewall-cmd --reload
結論
NFS は、データを各デバイスにローカルに保存するのではなく、1つの場所または1つの共有フォルダーに一元化するための優れたプロトコルです。これにより、デバイスのローカルの限られたスペースにアクセスする機会も得られます。
適切な接続と構成により、データを1か所に保存するための完璧なソリューションが得られます。