nfs:网络文件系统,主要功能是通过网络让不同主机之间可以共享文件或目录。数据重要,需要inotify+rsync实时备份。
NFS在传输数据时,使用的端口会随机选择。那么NFS客户端如何知道NFS服务端使用哪个端口呢?就是通过RPC(远程过程调用)协议来实现。
工作原理:
1、先启动RPC服务(rpcbind):rpc服务一定要在nfs服务之前启动
2、启动NFS服务
3、客户请求NFS服务
4、RPC返回端口到客户
5、客户拿着地址端口请求传输服务
1、查看nfs和rpc的软件包是否安装
2、启动rpc
3、启动nfs(主端口:2049) id nfsnobody
4、设置开机自启动
5、查看一下进程
服务的作用:
1、rpc.statd –检查文件一致性
2、rpc.rquotad –磁盘配额进程
3、rpc.mountd –权限管理验证等
4、nfsd –nfs主进程,管理登入、ID身份判别
5、rpc.idmapd –名称映射
NFS服务端配置文件: /etc/exports (可通过man查看配置文件参数)
NFS共享的目录:为NFS服务端要共享的实际目录,要用绝对路径。注意共享目录的本地权限,如果需要读写共享,一定要让本地目录可以被NFS客户端的用户(nfsnobody)读写。
NFS客户端地址:这里所谓的客户端一般是前端的业务服务器,例如web服务。
权限参数集:对授权的NFS客户端的访问权限设置。
/etc/exports配置说明:
检查系统版本:cat /etc/redhat-relese (uname -r)
1、首先安装服务
2、启动rpc,加入开机自启动
3、showmount -e 172.16.1.31
排错:
a、ping 172.16.1.31
b、telnet 172.16.1.31 111 –防火墙是否阻挡
4、挂载
5、放入rc.local,开机自启动
1、确保所有客户端服务器对NFS共享目录具备相同的用户访问权限
(客户端服务器用户uid相同,与服务端一致)
a、all_squash把所有客户端都压缩成固定的匿名用户(uid相同)
b、就是anonuid,anongid指定的uid和gid的用户
2、所有客户端和服务端都需要有一个相同的uid和gid的用户,即nfsnobody(uid必须相同)
了解–netfs服务开启后,可把它挂载到fstab文件里,正常挂载,否则不会成功
在NFS服务端通过cat /var/lib/nfs/etab查看NFS服务端配置参数的细节
在NFS客户端可以通过cat /proc/mounts 查看mount的挂载参数细节
4、对NFS服务的所有服务器内核进行优化
执行sysctl -p生效
5、如果卸载的时候提示”umount:/mnt:device is busy“,需要退出挂载目录再进行卸载。如果是NFS Server宕机了,则需要强制卸载,可执行umount -lf /mnt
6、大型网站NFS网络文件系统的替代软件为分布式文件系统Moosefs(mfs)、GlusterFS(大片之类的大文件)、FastDFS
应用建议:
大中小型网站(访问量2000万/日pv以下)线上应用,都可以。门户网站也有应用,生产场景应该多把数据的访问往前推,即尽量把静态存储里的资源通过CDN或缓存服务器提供服务,如果没有缓存或者架构不好,存储服务器数量再多也扛不住,且用户体验很差。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/159934.html