CentOS下NFS配置
安装软件
- RPC 主程序:rpcbind
- NFS 主程序:nfs-utils
配置文件
主要配置文件:/etc/exports
NFS 文件系统维护指令:/usr/sbin/exportfs
分享资源的登录档:/var/lib/nfs/*tab
客户端查询服务器分享资源的指令:/usr/sbin/showmount
安装
查看系统是否已安装nfs与rpcbind
$ rpm -qa | grep nfs
nfs-utils-1.3.0-0.21.el7.x86_64
$ rpm -qa | grep rpcbind
rpcbind-0.2.0-32.el7.x86_64
如果未安装,则需要安装nfs-utils与rpcbind
配置
nfs服务器上创建共享目录/data1/apps/nfs_server/并设置权限
$ mkdir -p nfs_server
$ sudo chmod 666 /data1/apps/nfs_server/
编辑export文件
$ sudo vim /etc/exports
/data1/apps/nfs_server $(server_ip)/24(rw,no_root_squash,no_all_squash,sync)
参数说明
rw ro :该目录分享的权限是可擦写 (read-write) 或只读 (read-only),但最终能不能读写,还是与文件系统的 rwx 及身份有关。
sync async :sync 代表数据会同步写入到内存与硬盘中,async 则代表数据会先暂存于内存当中,而非直接写入硬盘!
no_root_squash root_squash :预设的情况下,客户端 root 的身份会由 root_squash 的设定压缩成 nfsnobody, 如此对服务器的系统会较有保障。但如果你想要开放客户端使用 root 身份来操作服务器的文件系统,那么这里就得要开 no_root_squash 才行!
all_squash :不论登入 NFS 的使用者身份为何,他的身份都会被压缩成为匿名用户,通常也就是 nobody(nfsnobody) 啦!
anonuid anongid :anon意指 anonymous (匿名者) 前面关于 *_squash 提到的匿名用户的 UID 设定值,通常为 nobody(nfsnobody),但是你可以自行设定这个 UID 的值!当然,这个 UID 必需要存在于你的 /etc/passwd 当中! anonuid 指的是 UID 而 anongid 则是群组的 GID 啰。
配置生效
$ sudo exportfs -r
启动rpcbind、nfs服务
$ sudo service rpcbind start
Redirecting to /bin/systemctl start rpcbind.service
$ sudo service nfs start
Redirecting to /bin/systemctl start nfs.service
客户端配置
查看客户端是否安装了nfs
$ rpm -qa | grep nfs
nfs-utils-1.3.0-0.21.el7.x86_64
创建挂载目录
$ mkdir -p nfs_client
查看服务器抛出的共享目录信息
$ showmount -e $(server_ip)
Export list for $(server_ip):
/data1/apps/nfs_server $(server_ip)/24
为了提高NFS的稳定性,使用TCP协议挂载,NFS默认用UDP协议
$ sudo mount -t nfs $(server_ip):/data1/apps/nfs_server /data1/apps/nfs_client -o proto=tcp -o nolock
连接查看
查看挂载结果(其他的在此省略)
[apps@bssmysql028 ~]$ df -h
Filesystem Size Used Avail Use% Mounted on
$(server_ip):/data1/apps/nfs_server 2.2T 1.3T 785G 63% /data1/apps/nfs_client
卸载已挂载的NFS
[apps@bssmysql028 ~]$ sudo umount /data1/apps/nfs_client
[apps@bssmysql028 ~]$ df -h
Filesystem Size Used Avail Use% Mounted on