简介
NFS(NetworkFileSystem)即网络文件系统,是Linux/Unix支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。
NFS 的基本原则是“容许不同的客户端及服务端通过一组RPC分享相同的文件系统”,它是独立于操作系统,容许不同硬件及操作系统的系统共同进行文件的分享。
NFS在文件传送或信息传送过程中依赖于RPC协议。RPC,远程过程调用 (Remote Procedure Call) 是能使客户端执行其他系统中程序的一种机制。NFS本身是没有提供信息传输的协议和功能的,但NFS却能让我们通过网络进行资料的分享,这是因为NFS使用了一些其它的传输协议。而这些传输协议用到这个RPC功能的。可以说NFS本身就是使用RPC的一个程序。或者说NFS也是一个RPC SERVER。所以只要用到NFS的地方都要启动RPC服务,不论是NFS SERVER或者NFS CLIENT。这样SERVER和CLIENT才能通过RPC来实现PROGRAM PORT(centos5之前,之后是rpcbind)的对应。可以这么理解RPC和NFS的关系:NFS是一个文件系统,而RPC是负责信息的传输。
NFS服务端
安装NFS
yum -y install nfs-utils rpcbind
(在安装完 nfs-utils
之后,rpcbind
默认是启动了的)
激活服务,设置开机启动 nfs
相关服务
systemctl enable rpcbind
systemctl enable nfs-server
systemctl enable nfs-lock
systemctl enable nfs-idmap
启动nfs服务
systemctl start rpcbind
systemctl start nfs-server
systemctl start nfs-lock
systemctl start nfs-idmap
创建共享目录
mkdir -p /data/web_data # -p 联级创建
chmod -R 777 /data/web_data # 更改共享文件夹权限为777
配置 /etc/exports
下
格式为:
共享文件夹路径 允许访问的ip地址(权限1,权限2.....)
此处配置为
echo "/data/web_data 192.168.157.*(rw,sync,no_root_squash)" >> /etc/exports
权限名 | 作用 |
---|---|
rw | 读/写 |
sync | 实时同步 |
no_root_squash | 登入 NFS 主机使用分享目录的使用者,如果是 root 的话,那么对于这个分享的目录来说,他就具有 root 的权限 |
检查共享目录
[root@localhost ~]# showmount -e
Export list for localhost.localdomain:
/data/web_data 192.168.157.*
[root@localhost ~]#
配置防火墙
firewall-cmd --add-service=nfs --permanent
firewall-cmd --add-service=mountd --permanent
firewall-cmd --add-service=rpc-bind --permanent
firewall-cmd --reload # 重载防火墙
客户端
安装nfs(无需安装其他服务)
yum -y install nfs-utils
检查服务端的共享
[root@localhost ~]# showmount -e 192.168.157.2
Export list for 192.168.157.2:
/data/web_data 192.168.157.*
[root@localhost ~]#
挂载服务端共享目录到本地
mkdir /home/nfs-client #创建本地挂载目录
mount -t nfs 192.168.157.2:/data/web_data /home/nfs-client #挂载服务端共享目录到本地
挂载命令格式解读:
mount -t nfs -o nolock,vers=2 10.0.0.147:/work/nfs /mnt
解释一下:
参数 | 作用 |
---|---|
mount | 挂载命令 |
nfs | 协议 |
nolock | 不阻塞 |
vers | 实用的nfs版本号 |
IP | nfs的服务端的ip地址 |
/work/nfs | 服务端的共享目录 |
/mnt | 本地挂载目录 |
取消挂载
umount 192.168.157.2:/data/web_data
或
umount /home/nfs-client
验证nfs网络文件共享是否成功
服务端[192.168.157.2在共享目录下创建一个文件
[root@localhost ~]# cd /data/web_data
[root@localhost web_data]# echo "Hello,World!" > 1.txt
客户端[192.168.157.136打开本地挂载点验证
[root@localhost /]# cd /home/nfs-client/
[root@localhost nfs-client]# ls
1.txt
[root@localhost nfs-client]# cat 1.txt
Hello,World
[root@localhost nfs-client]#
在客户端查看挂载情况
[root@localhost nfs-client]# df
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/mapper/centos-root 17811456 1007976 16803480 6% /
devtmpfs 488792 0 488792 0% /dev
tmpfs 499848 0 499848 0% /dev/shm
tmpfs 499848 6988 492860 2% /run
tmpfs 499848 0 499848 0% /sys/fs/cgroup
/dev/sda1 1038336 127448 910888 13% /boot
tmpfs 99972 0 99972 0% /run/user/0
/dev/sr0 4414592 4414592 0 100% /iso
192.168.157.2:/data/web_data 8370176 32768 8337408 1% /home/nfs-client
[root@localhost nfs-client]#
如需客户端开机自动挂载nfs
共享目录
编辑 /etc/fstab
在末尾添加一条
192.168.157.2:/data/web_data /home/nfs-client nfs default 0 0
版权属于:DeepFal
本文链接:https://blog.deepfal.cn/index.php/archives/657/
转载时须注明出处及本声明