NFS
ネットワークファイルシステム(ネットワークファイルシステム)は、ネットワークを介してリモートディレクトリを共有する分散ファイルシステムプロトコルです。 NFSを使用すると、システムにリモートディレクトリをマウントし、ローカルファイルと同じようにリモートコンピュータ上のファイルを使用できます。
デフォルトでは、NFSプロトコルは暗号化されておらず、Sambaとは異なり、ユーザー認証を提供しません。クライアントのIPアドレスまたはホスト名は、サーバーへのアクセスを制限します。
ホストリスト
HOSTNAME | IP | SYSTEM OS |
---|---|---|
nfs-server | 192.168.99.227 | CentOS Linux release 8.1.1911 |
nfs-client-linux | 192.168.99.233 | CentOS Linux release 7.6.1810 |
nfs-client-windows | 192.168.99.234 | Windows Server 2016 Datacenter |
nfs-server
**nfs **をインストールします
[ root@nfs-server ~]# dnf install nfs-utils
nfsのバージョンを確認してください
[ root@nfs-server ~]# rpm -qa | grep nfs-utils
. nfs-utils-2.3.3-26.el8.x86_64
nfsサービスを有効にする
[ root@nfs-server /]# systemctl start nfs-server
**nfs **でサポートされているバージョン情報を表示する
[ root@nfs-server /]# cat /proc/fs/nfsd/versions -2+3+4+4.1+4.2
nfs共有ディレクトリを作成します
mkdir -p /mnt/{nfs1,nfs2}
**/ etc / exportsは、nfs **のデフォルトの構成ファイルです。
nfs1の読み取りと書き込み
nfs2読み取り専用
nfs3読み取り専用
[ root@nfs-server /]# vim /etc/exports
/mnt/nfs1 192.168.99.0/255.255.255.0(rw,sync,all_squash)/mnt/nfs2 192.168.99.234(ro,sync,all_squash)/mnt/nfs3 *(ro,sync,all_squash)
/ etc / exportsパラメーターの説明
rw:読み書き
ro:読み取り専用
no_root_スカッシュ:ルートユーザーを抑制しません。クライアントがルートユーザーとして書き込む場合、サーバー上のサーバールートユーザーにマップされます。
root_スカッシュ:nfsサービス:反対のパラメーターrootがデフォルトで使用されます_スカッシュ、クライアントがユーザーrootによって操作されている場合、nobodyユーザーとして抑制されます
all_squash:nfsを使用するクライアントのユーザーが誰であっても、nobodyユーザーとして抑制されます
insecure:クライアントからの不正アクセスを許可する
sync:メモリとハードディスクに同期してデータを書き込む
async:データは、ハードディスクに直接ではなく、最初にメモリに書き込まれます
anonuid:uidの値を指定します。このuidはに存在する必要があります/etc/passwd
anongid:gidの値を指定します
現在nfs共有として構成されているディレクトリとそのステータスを表示する
exportfsパラメーター
- r: Reexport all directories:すべてのディレクトリを再エクスポートします
- v: verbose,出力の詳細
** フォルダの権限を設定する**
chown -R nobody /mnt/{nfs1,nfs2}
ファイアウォール構成
[ root@nfs-server /]# firewall-cmd --add-service=nfs --permanent
[ root@nfs-server /]# firewall-cmd --add-service=rpc-bind --permanent
[ root@nfs-server /]# firewall-cmd --add-service=mountd --permanent
[ root@nfs-server /]# firewall-cmd --reload
nfs-client-linux
showmount
showmountコマンドを使用して、NFSサーバーの出力ディレクトリステータスをテストします。showmountコマンドの基本的な形式は次のとおりです。
showmount [オプション] NFSサーバーの名前またはアドレス
a:指定されたNFSサーバーのすべてのクライアントホストとそれらに接続されたディレクトリを表示します。
d:指定されたNFSサーバーでクライアントによって接続されたすべての出力ディレクトリを表示します。
e:指定したNFSサーバー上のすべての出力共有ディレクトリを表示します。
[ root@kafka-node2 ~]# showmount -e 192.168.99.227
Export list for192.168.99.227:/mnt/nfs2 192.168.99.0/255.255.255.0/mnt/nfs1 192.168.99.0/255.255.255.0
マウントマウント
マウントサーバー名またはIPアドレス:出力ディレクトリローカルマウントディレクトリ
[ root@kafka-node2 /]# mkdir /mnt/data
[ root@kafka-node2 /]# mount -t nfs 192.168.99.227:/mnt/nfs1 /mnt/data
umountアンインストール
[ root@kafka-node2 /]# umount /mnt/data/
nfs-client-windows
NFSクライアントをインストールします
mount -hは、クライアントが正常にインストールされていることを確認します
マウント
mount \\192.168.99.227\mnt\nfs1 x:
アンインストール
umount x:
nfsディレクトリを表示
nfs1読み取りおよび書き込みnfs2読み取り専用
NFSサーバーのuid / gidマッピング
クラスター環境では、各ホストは同じユーザーアカウントを持っていますが、割り当てられたuid / gidは異なります。複数のホストのバックエンドストレージが同じ共有ストレージである場合、問題が発生します。NFSプロトコルはuidを使用してファイルの読み取りおよび書き込み権限を制御します。ホスト内のユーザーによって書き込まれたファイルuidは他のホストのファイルとは異なり、他のホストが読み取りまたは変更し、権限が間違っているという問題があります。
ユーザーを作成
useradd -u 1234-s /sbin/nologin -M nfsuser
u:指定されたユーザーuid
M:-no-create-homeはユーザーのホームディレクトリを作成しません
s:-shellはユーザーのシェルを指定します
ユーザーIDとグループIDを変更する
usermod -u 1234 nfsusergroupmod -g 1234 nfsuser
nfs共有ディレクトリを作成します
mkdir /data/nfschown -R nfsuser:nfsuser /data/nfs
nfs構成ファイルの編集
[ root@nfs-server /]# vi /etc/exports
/data/nfs 192.168.99.0/255.225.255.0(rw,sync,all_squash,anonuid=1234,anongid=1234)
Recommended Posts