安装NFS服务,需要安装两个软件,分别是:
RPC主程序:rpcbind
NFS 其实可以被视为一个 RPC 服务,因为启动任何一个 RPC 服务之前,我们都需要做好 port 的对应 (mapping) 的工作才行,这个工作其实就是『 rpcbind 』这个服务所负责的!也就是说, 在启动任何一个 RPC 服务之前,我们都需要启动 rpcbind 才行! (在 CentOS 5.x 以前这个软件称为 portmap,在 CentOS 6.x 之后才称为 rpcbind 的!)
NFS主程序:nfs-utils
就是提供 rpc.nfsd 及 rpc.mountd 这两个 NFS daemons 与其他相关 documents 与说明文件、执行文件等的软件!这个就是 NFS 服务所需要的主要软件。
NFS的相关文件:
- 主要配置文件:/etc/exports
这是 NFS 的主要配置文件了。该文件是空白的,有的系统可能不存在这个文件,主要手动建立。NFS的配置一般只在这个文件中配置即可。 - NFS 文件系统维护指令:/usr/sbin/exportfs
这个是维护 NFS 分享资源的指令,可以利用这个指令重新分享 /etc/exports 变更的目录资源、将 NFS Server 分享的目录卸除或重新分享。 - 分享资源的登录档:/var/lib/nfs/*tab 在 NFS 服务器的登录文件都放置到 /var/lib/nfs/ 目录里面,在该目录下有两个比较重要的登录档, 一个是 etab ,主要记录了 NFS 所分享出来的目录的完整权限设定值;另一个 xtab 则记录曾经链接到此 NFS 服务器的相关客户端数据。
- 客户端查询服务器分享资源的指令:/usr/sbin/showmount 这是另一个重要的 NFS 指令。exportfs 是用在 NFS Server 端,而 showmount 则主要用在 Client 端。showmount 可以用来察看 NFS 分享出来的目录资源。
服务端安装NFS服务步骤:
第一步:安装NFS和rpc
1 2 3 4 5 |
#安装nfs服务 [root@localhost ~]# yum install -y nfs-utils #安装rpc服务 [root@localhost ~]# yum install -y rpcbind #其实安装yum install -y nfs-utils就会自动把rpcbind安装上 所以不用执行第二步 |
第二步:启动服务和设置开启启动:
1 2 3 4 5 6 |
[root@localhost~]# systemctl start rpcbind [root@localhost~]# systemctl enable rpcbind [root@localhost~]# systemctl start nfs-server [root@localhost~]# systemctl start nfs-secure.service [root@localhost~]# systemctl enable nfs-server [root@localhost~]# systemctl enable nfs-secure.service |
如果你开启了防火墙,配置下放行nfs服务
1 2 |
firewall-cmd --permanent --add-service=nfs firewall-cmd --reload |
第三步:配置共享文件目录,编辑配置文件:
1 2 3 4 5 6 7 8 9 10 11 |
#创建共享目录 mkdir /public #配置文件 vim /etc/exports /public 172.17.0.2(rw,no_root_squash,no_all_squash,sync,anonuid=501,anongid=501) /public 172.17.0.3(rw,no_root_squash,no_all_squash,sync,anonuid=501,anongid=501) /public 172.17.0.4(rw,no_root_squash,no_all_squash,sync,anonuid=501,anongid=501) 或者直接写这个网络段 vim /etc/exports /public 172.17.0.2/24(rw,no_root_squash,no_all_squash,sync,anonuid=501,anongid=501) |
配置文件解析
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
格式: 共享目录的路径 允许访问的NFS客户端(共享权限参数) 如上: /public #共享目录路径 172.17.0.2 #允许访问的客户端为172.17.0.2网络用户 (rw,no_root_squash,no_all_squash,sync,anonuid=501,anongid=501) #权限 #注意,nfs客户ip地址与权限之间没有空格 ro 只读 rw 读写 root_squash 当NFS客户端以root管理员访问时,映射为NFS服务器的匿名用户 no_root_squash 当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员 all_squash 无论NFS客户端使用什么账户访问,均映射为NFS服务器的匿名用户 no_all_squash 与all_squash取反(默认设置) sync 同时将数据写入到内存与硬盘中,保证不丢失数据 async 优先将数据保存到内存,然后再写入硬盘;这样效率更高,但可能会丢失数据 anonuid 将客户机上的用户映射成指定的本地用户ID的用户 anongid 将客户机上的用户映射成属于指定的本地用户组ID |
showmount命令的用法
1 2 3 |
-e [本机ip] 显示NFS服务器的共享列表 -a [本机ip] 显示本机挂载的文件资源的情况NFS资源的情况 -v 显示版本号 |
1 2 3 4 5 6 7 8 9 10 11 12 |
#显示已经mount到本机nfs目录的客户端机器 showmount -e localhost #将配置文件中的目录全部重新export一次!无需重启服务。 exportfs -rv #查看NFS的运行状态 nfsstat #查看rpc执行信息,可以用于检测rpc运行情况 rpcinfo #查看网络端口,NFS默认是使用111端口。 netstat -tu -4 #重启nfs服务 service nfs-kernel-server restart |
如果你安装了防火墙,需要配置nfs需要开放的端口
- portmap 端口 111 udp/tcp
- nfsd 端口 2049 udp/tcp
- mountd 端口 “xxx” udp/tcp 负责客户端来源认证的进程,认证成功后接受客户端的挂载请求,工作在随机端口,即时向RPC注册。
系统 RPC服务在 nfs服务启动时默认会为 mountd动态选取一个随机端口(32768–65535)来进行通讯,我们可以通过编辑/etc/services 文件为 mountd指定一个固定端口:
1 2 3 4 5 6 7 8 9 10 |
#注意下面这个为mountd指定端口我试了下没有成功,一般情况下不需要指定,人家自己获取是多少就是多少。你可以通过 rpcinfo -p 查看当前随机指定的mountd端口是多少然后加入到你的防火墙中。 # vim /etc/services 在末尾添加 mountd 1011/udp mountd 1011/tcp 保存该文件,重启rpc.mountd rpcinfo -p Hostname 现在我们会发现 mountd已经和端口 1011绑定了。 |
服务器本机测试
1 2 3 4 5 6 7 |
rpcinfo -p #检测nfs的rpc注册状态 rpcinfo -u 10.0.2.15 nfs #查看共享目录和参数设置 cat /var/lib/nfs/etab #使用showmount命令查看共享目录发布及使用情况 showmount -e 10.0.2.15 |
二:配置客户端机器
1.安装nfs服务
yum install -y nfs-utils
如果是linux挂载windows的nfs需要安装 cifs-utils
1 |
yum install cifs-utils |
2. 查看nfs服务器共享目录
3.临时挂载
1 |
mount -t nfs -o rw 10.0.2.15:/public /home/shooter/data |
1 2 3 4 5 6 |
其他挂载: #linux挂载windows 本身共享(非nfs) mount -t cifs //192.168.1.126/linux_nfs /mnt/linux_nfs/ -o username=linux,password=123asd,rw,file_mode=0777,dir_mode=0777,setuid=509,setgid=101 #挂载权限为0777 mount -t cifs //192.168.1.126/linux_nfs /mnt/linux_nfs/ -o username=linux,password=123asd |
4. 启动自动挂载nfs文件系统
1 2 |
#vim /etc/fstab 10.0.2.15:/mysqlbak /mnt/nfs nfs defaults |
mount -a 刷新使挂载文件生效
查看挂载生效
- 本文固定链接: https://www.yoyoask.com/?p=454
- 转载请注明: shooter 于 SHOOTER 发表