Linux下NFS服务的安装与配置 | 您所在的位置:网站首页 › linux安装nginx1240 › Linux下NFS服务的安装与配置 |
目录 1. 环境 2. NFS介绍 3. 下载安装服务端 4. 客户端安装 5. 测试 6. Window上挂载NFS 1. 环境CentOS7.6 以2台机器为例,服务端:172.20.32.219 客户端:172.20.32.218 2. NFS介绍NFS(Network File System):它最大的功能就是可以通过网络,让不同的机器、不同的操作系统可以共享彼此的文件。 NFS服务器可以让PC将网络中的NFS服务器共享的目录挂载到本地端的文件系统中,而在本地端的系统中来看,那个远程主机的目录就好像是自己的一个磁盘分区一样,在使用上相当便利; NFS一般用来存储共享视频,图片等静态数据。 RPC(Remote Procedure Call)——远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。NFS 服务器在启动的时候就得要向 RPC 注册,所以 NFS 服务器也是一种 RPC server。. 3. 下载安装服务端1) 安装NFS和rpc,服务端和客户端必须软件nfs-utils # yum -y install nfs-utils 2) 启动服务端的nfs和rpcbind服务,并设置开机启动 注意:先启动rpc服务,再启动nfs服务。 # systemctl start rpcbind #先启动rpc服务 # systemctl enable rpcbind #设置开机启动 # systemctl start nfs # systemctl enable nfs # systemctl status nfs 3) 服务端创建共享目录,编辑配置文件 # mkdir /public //首先创建共享目录 # vim /etc/exports 修改服务端配置文件/etc/exports 如果有网段限制增加如下一行: /public 172.20.32.0/24(rw,no_root_squash,insecure,sync) 任意IP访问增加如下一行: /public *(rw,no_root_squash,insecure,sync) 参数值内容说明rw ro该目录分享的权限是rw可擦写 (read-write) 或ro只读 (read-only),但最终能不能读写,还是与文件系统的 rwx及身份有关sync asyncsync 代表数据会同步写入到内存与硬盘中,async 则代表数据会先暂存于内存当中,而非直接写入硬盘no_root_squash root_squash客户端使用 NFS 文件系统的账号若为 root 时,客户端 root 的身份会由 root_squash 的设定压缩成 nfsnobody,如此对服务器的系统会较有保障。但如果你想要开放客户端使用 root 身份来操作服务器的文件系统,那么这里就得要开 no_root_squash 才行all_squash不论登入 NFS 的使用者身份为何, 他的身份都会被压缩成为匿名用户,通常也就是 nobody(nfsnobody)anonuid anongidanon 意指 anonymous (匿名者) 前面关于 *_squash 提到的匿名用户的 UID 设定值,通常为 nobody(nfsnobody),但是你可以自行设定这个 UID 的值!当然,这个 UID 必需要存在于你的 /etc/passwd 当中!anonuid 指的是 UID 而 anongid 则是群组的 GID
注意 :如果在启动了NFS之后又修改了/etc/exports,可以用exportfs 命令来使改动立刻生效,该命令格式如下: # exportfs -rv //重新共享所有目录并输出详细信息 # exportfs -au //卸载所有共享目录 -a 全部挂载或卸载 /etc/exports中的内容 -r 重新读取/etc/exports 中的信息 ,并同步更新/etc/exports、/var/lib/nfs/xtab -u 卸载单一目录(和-a一起使用为卸载所有/etc/exports文件中的目录) -v 在export的时候,将详细的信息输出到屏幕上。 4) 依次重启服务端rpcbind、nfs服务 重启 # systemctl restart rpcbind # systemctl restart nfs 查看状态 # systemctl status rpcbind # systemctl status nfs 5) 配置服务端防火墙 # firewall-cmd --add-service=nfs --permanent # firewall-cmd --reload 6) 补充命令 # nfsstat 查看NFS的运行状态 # rpcinfo 查看rpc执行信息,可以用于检测rpc运行情况的工具,利用rpcinfo -p 可查看出RPC开启的端口所提供的程序 # showmount -a 显示已经于客户端连接上的目录信息 -e IP或者hostname 显示此IP地址分享出来的目录 4. 客户端安装启动客户端nfs服务(客户端可以不启动rpcbind服务),挂载服务端nfs目录 # yum install -y nfs-utils //安装nfs服务 # systemctl start nfs # mount -t nfs 172.20.32.219:/public /mnt //挂载服务端public目录 解释: -t nfs 指定要挂载的设备上的文件系统类型 /mnt 挂载到本地目录 如果客户端需要卸载共享目录,可使用 # umount /mnt 5. 测试客户端查看一下挂载情况 # df -Th 注意:在服务端及客户端分别写入数据,发现只能在服务端对/public目录进行读写,而在客户端只能读取。因为都是使用root账户进行操作的,在客户端看到的root是指服务端的root而并非客户端的root。在服务端将/nfs目录的权限设置为7(chmod 777 -R 文件夹的绝对路径),但这并不严谨,不是我们想要达到的目标。 # touch 1.txt //客户端创建文件写入内容 # echo "NFS Client wirte">/mnt/1.txt 这时, 我们就可以通过客户端操作NFS服务端的共享目录。 6. Window上挂载NFS1) 在win7控制面板下开启nfs功能 2) 挂载NFS服务端共享目录: mount \\172.20.32.219\public x: 如果挂载发生网络错误-53的解决方法: 由于NFS服务器有一个”在非安全模式工作(允许更高的端口号)“的选项。Windows NFS客户端经常使用的是大的端口号。需要在NFS服务端添加insecure选项,如: /public *(rw,no_root_squash,insecure,sync) 3) 查看 如果需要卸载共享目录: umount x:
|
CopyRight 2018-2019 实验室设备网 版权所有 |