NFSでマウントしてみた。 [Linux]
誤解を恐れずに簡単に言うと、NFSというのはWindowsのファイル共有と似たようなもので、SambaとかCIFSと言われているものと似たようなものである。サーバ同士のファイルシステムをつなげるもので、ファイルのやり取りが継続的に使える。
クライアント側でマウントポイントにファイルがある場合、NFSをマウントした時にファイルをNFSサーバ側へ送ってくれるのかどうか、という話。
結果から言うと、マウントするとNFSサーバ側のディレクトリで置き換えられて、一時的にクライアントのマウントポイントにあったファイルが消える。NFSのマウントを切ると、見えなくなっていたクライアントのファイルが復活する、といった具合。
例えば
nfs-server
nfs-client
という名前まんまのマシンがあったとします(DNSがないところはIPアドレスとかなのかな?)。
大体ここを見ればつなげはするかな?
https://www.server-world.info/query?os=CentOS_8&p=nfs&f=1
https://www.server-world.info/query?os=CentOS_8&p=nfs&f=2
つなぐところまでは余興なので端折るけどだいたいこんな感じ。
●サーバ側
まずサーバ(nfs-server)にnfs-serverデーモンを上げる
・これは必要かどうかわからない
vim /etc/idmapd.conf
・エクスポートするサーバディレクトリと、マウント先のIPアドレスを指定
vim /etc/exports
no_root_squashはセキュリティ的にまずいと言う話もあるが、UIDの整合性をわざわざ取ると面倒臭いのでこれでいいじゃんと思う。そこまで気にするのしんどいでしょ。セキュリティを高めたい人は気にするといいと思う。
・ファイアウォールを開ける
●クライアント側
・見えるかどうかまずは確かめる
・nfsをマウントする
ここで/home/myaccount/mntにファイルが入っていた場合、一時的に見えなくなってしまう。そして/mnt/server-exportにすでにファイルがあった場合それが見えるようになる。
umount /home/myaccount/mntすると一時的に見えなくなっていたファイルが復活して見えるようになる。
見えなくなるけど消えはしないという仕様らしい。まぁ適切な仕様だな。
なので/mnt/server-export に /home/myaccount/mntの中身をぶち込みたい場合は、
/home/myaccount/mnt のフォルダをリネームして/home/myaccount/mnt を再度作ってからNFSマウントして、それからファイルをコピーしてマウントポイントに入れてあげないと移行できないと思う。
良きに計らって移行してくれたりはしないので、自分でやらないといけないみたい。
クライアント側でマウントポイントにファイルがある場合、NFSをマウントした時にファイルをNFSサーバ側へ送ってくれるのかどうか、という話。
結果から言うと、マウントするとNFSサーバ側のディレクトリで置き換えられて、一時的にクライアントのマウントポイントにあったファイルが消える。NFSのマウントを切ると、見えなくなっていたクライアントのファイルが復活する、といった具合。
例えば
nfs-server
nfs-client
という名前まんまのマシンがあったとします(DNSがないところはIPアドレスとかなのかな?)。
大体ここを見ればつなげはするかな?
https://www.server-world.info/query?os=CentOS_8&p=nfs&f=1
https://www.server-world.info/query?os=CentOS_8&p=nfs&f=2
つなぐところまでは余興なので端折るけどだいたいこんな感じ。
●サーバ側
まずサーバ(nfs-server)にnfs-serverデーモンを上げる
dnf install nfs-utils systemctl start nfs-server.service systemctl enable nfs-server.service systemctl status nfs-server.service
・これは必要かどうかわからない
vim /etc/idmapd.conf
Domain = nfs-server
・エクスポートするサーバディレクトリと、マウント先のIPアドレスを指定
vim /etc/exports
/mnt/server-export 10.0.0.2/32(rw,no_root_squash)
no_root_squashはセキュリティ的にまずいと言う話もあるが、UIDの整合性をわざわざ取ると面倒臭いのでこれでいいじゃんと思う。そこまで気にするのしんどいでしょ。セキュリティを高めたい人は気にするといいと思う。
mkdir /mnt/server-export chmod 777 /mnt/server-export systemctl restart nfs-server
・ファイアウォールを開ける
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="10.0.0.2" service name="nfs" accept" firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="10.0.0.2" service name="rpc-bind" accept" firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="10.0.0.2" service name="mountd" accept" firewall-cmd --reload
●クライアント側
dnf install nfs-utils
・見えるかどうかまずは確かめる
showmount --exports nfs-serverExport list for nfs-server:/mnt/server-export 10.0.0.1/32
・nfsをマウントする
mount -t nfs nfs-server:/mnt/server-export /home/myaccount/mnt
ここで/home/myaccount/mntにファイルが入っていた場合、一時的に見えなくなってしまう。そして/mnt/server-exportにすでにファイルがあった場合それが見えるようになる。
umount /home/myaccount/mntすると一時的に見えなくなっていたファイルが復活して見えるようになる。
見えなくなるけど消えはしないという仕様らしい。まぁ適切な仕様だな。
なので/mnt/server-export に /home/myaccount/mntの中身をぶち込みたい場合は、
/home/myaccount/mnt のフォルダをリネームして/home/myaccount/mnt を再度作ってからNFSマウントして、それからファイルをコピーしてマウントポイントに入れてあげないと移行できないと思う。
良きに計らって移行してくれたりはしないので、自分でやらないといけないみたい。
コメント 0