详解centos7系统安装部署NFS服务教程

2019-10-20     波波说运维

概述

最近有个项目需求:对于视频、文档类的文件几个服务器共用一个目录,计划用NFS服务实现。

系统环境:CentOS Linux release 7.3

软件版本:nfs-utils-1.3.0-0.33.el7.x86_64


一、安装

# yum -y install nfs-utils

nfs客户端和服务端都安装nfs-utils包,同时自动安装rpcbind。安装后会创建nfsnobody用户和组,uid和gid都是65534。


二、修改配置

1、配置端口

nfs除了主程序端口2049和rpcbind的端口111是固定以外,还会使用一些随机端口,以下配置将定义这些端口,以便配置防火墙

# vim /etc/sysconfig/nfs
# 追加端口配置
MOUNTD_PORT=4001  
STATD_PORT=4002
LOCKD_TCPPORT=4003
LOCKD_UDPPORT=4003
RQUOTAD_PORT=4004

2、配置NFS权限和目录

# vim /etc/exports  
/attachments 172.xx/24(rw,wdelay,root_squash,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash)

选项说明

ro:共享目录只读
rw:共享目录可读可写
all_squash:所有访问用户都映射为匿名用户或用户组
no_all_squash(默认):访问用户先与本机用户匹配,匹配失败后再映射为匿名用户或用户组
root_squash(默认):将来访的root用户映射为匿名用户或用户组
no_root_squash:来访的root用户保持root帐号权限
anonuid=:指定匿名访问用户的本地用户UID,默认为nfsnobody(65534)
anongid=:指定匿名访问用户的本地用户组GID,默认为nfsnobody(65534)
secure(默认):限制客户端只能从小于1024的tcp/ip端口连接服务器
insecure:允许客户端从大于1024的tcp/ip端口连接服务器
sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性
async:将数据先保存在内存缓冲区中,必要时才写入磁盘
wdelay(默认):检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率
no_wdelay:若有写操作则立即执行,应与sync配合使用
subtree_check(默认) :若输出目录是一个子目录,则nfs服务器将检查其父目录的权限
no_subtree_check :即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率

三、防火墙

# iptables -I INPUT 5 -p tcp -m tcp --dport 111 -j ACCEPT
# iptables -I INPUT 5 -p udp -m udp --dport 111 -j ACCEPT
# iptables -I INPUT 5 -p tcp -m tcp --dport 2049 -j ACCEPT
# iptables -I INPUT 5 -p udp -m udp --dport 2049 -j ACCEPT
# iptables -I INPUT 5 -p tcp -m tcp --dport 4001:4004 -j ACCEPT
# iptables -I INPUT 5 -p udp -m udp --dport 4001:4004 -j ACCEPT
# iptables-save >/etc/sysconfig/iptables

四、启动服务

启动顺序注意是rpcbind->nfs

# systemctl start rpcbind.service
# systemctl enable rpcbind.service
# systemctl start nfs.service
# systemctl enable nfs.service


五、客户端挂载

1、直接挂载

# mount -t nfs NFS服务器IP:共享目录 本地挂载点目录

2、开机自动挂载

# vi /etc/fstab
17xxxx:/attachments /u01/document nfs defaults 0 0

3、autofs挂载(挂载需慎重)

autofs自动挂载服务是一种Linux系统守护进程,当检测到用户视图访问一个尚未挂载的文件系统时,会自动挂载该文件系统。简单来说,将挂载信息写入/etc/fstab文件中,系统在每次开机时都会自动挂载,而autofs服务则是在用户需要使用该文件系统时才去动态挂载,从而节约了网络资源和服务器硬件资源的开销。

3.1、安装autofs服务

# yum -y install autofs 

3.2、修改配置

# vi /etc/auto.master
#添加一行
/- /etc/auto.mount

# vi /etc/auto.mount
#添加一行
/u01/document -fstype=nfs,rw nfs.st.local:/attachments

3.3、启动服务

# systemctl start autofs 
# systemctl enable autofs

觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~


文章来源: https://twgreatdaily.com/zh-hans/N77Z5m0BMH2_cNUgMM5y.html