NFS

Posted tanshouke

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NFS相关的知识,希望对你有一定的参考价值。

博主本人平和谦逊,热爱学习,读者阅读过程中发现错误的地方,请帮忙指出,感激不尽


 NFS简介

NFS(网络文件系统)服务可以将远程Linux系统上的文件共享资源挂载到本地主机的目录上,从而使得本地主机(Linux客户端)基于TCP/IP协议,像使用本地主机上的资源那样读写远程Linux系统上的共享文件

用于配置NFS服务程序配置文件的参数

参数

作用

ro

只读

rw

读写

root_squash

当NFS客户端以root管理员访问时,映射为NFS服务器的匿名用户

no_root_squash

当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员

all_squash

无论NFS客户端使用什么账户访问,均映射为NFS服务器的匿名用户

sync

同时将数据写入到内存与硬盘中,保证不丢失数据

async

优先将数据保存到内存,然后再写入硬盘;这样效率更高,但可能会丢失数据

NFS客户端的配置步骤也十分简单。先使用showmount命令(以及必要的参数,见下表)查询NFS服务器的远程共享信息,其输出格式为“共享的目录名称 允许使用客户端地址”

showmount命令中可用的参数以及作用

参数

作用

-e

显示NFS服务器的共享列表

-a

显示本机挂载的文件资源的情况NFS资源的情况

-v

显示版本号

 

服务器:247.68

客户机:69

NFS端口:2049

RPC端口:111

一、NFS服务器搭建

1.服务器安装rpcbindnfs并启动服务

yum install rpcbind*  -y
yum install nfs* -y
service rpcbind restart
service nfs restart

2.服务器设置nfs“浮动”端口号

vim /etc/sysconfig/nfs
服务器设置参数为:
LOCKD_TCPPORT=4000     对应deamons:rpc.nfsd
LOCKD_UDPPORT=4000    对应deamons:rpc.nfsd
MOUNTD_PORT=4001      对应deamons:rpc.nountd
STATD_PORT=4002            对应deamons:rpc.statd

3.服务器防火墙放行规则

iptables -I INPUT 1 -p tcp --dport 2049 -j ACCEPT
iptables -I INPUT 1 -p udp --dport 2049 -j ACCEPT 
iptables -I INPUT 1 -p tcp --dport 111 -j ACCEPT 
iptables -I INPUT 1 -p udp --dport 111 -j ACCEPT    
iptables -I INPUT 1 -p tcp --dport 4000:4002 -j ACCEPT
iptables -I INPUT 1 -p udp --dport 4000:4002 -j ACCEPT   
service iptables save
service iptables restart

4.服务器设置NFS配置文件

mkdir /xx/nfstest/nfs -p
chmod o+w -R /xx  (不设置写权限客户机无法写入内容) 
exportfs 
vim /etc/exports 
输入:
/xx 192.168.247.0/24(rw,sync,no_root_squash)
exportfs -arv (为了不重启系统,二次编辑需要执行该命令)
service nfs restart
 

5.客户机访问

yum install nfs-utils  -y
showmount -e 192.168.247.68
出现:Export list for 192.168.247.68:
/xx 192.168.247.0/24   (表示共享成功)

6.客户机挂载NFS共享目录至/opt

mount -o bg  192.168.247.68:/xx /opt (后台挂载,防止前台无法使用)
cd /opt/nfstest/nfs/
pwd
出现:/opt/nfstest/nfs (表示可以使用共享目录)
umount 192.168.247.68:/xx    

7.客户机安装与设置自动挂载

无论是Samba服务还是NFS服务,都要把挂载信息写入到/etc/fstab中,这样远程共享资源就会自动随服务器开机而进行挂载。虽然这很方便,但是如果挂载的远程资源太多,则会给网络带宽和服务器的硬件资源带来很大负载。如果在资源挂载后长期不使用,也会造成服务器硬件资源的浪费。可能会有读者说,“可以在每次使用之前执行mount命令进行手动挂载”。这是一个不错的选择,但是每次都需要先挂载再使用,您不觉得麻烦吗?

autofs自动挂载服务可以帮我们解决这一问题。与mount命令不同,autofs服务程序是一种Linux系统守护进程,当检测到用户试图访问一个尚未挂载的文件系统时,将自动挂载该文件系统。换句话说,我们将挂载信息填入/etc/fstab文件后,系统在每次开机时都自动将其挂载,而autofs服务程序则是在用户需要使用该文件系统时才去动态挂载,从而节约了网络资源和服务器的硬件资源。

yum provides */auto.master 
yum install autofs-5.0.5-140.el6_10.1.x86_64 -y
vim /etc/auto.master
输入:
#(系统自动挂载到/cc目录是由auto.aa决定的)
/cc     /etc/auto.aa
cp /etc/auto.misc /etc/auto.aa
vim /etc/auto.aa
输入:
nfs             -fstype=nfs,rw                  192.168.247.68:/xx
或是:
*        -fstype=nfs,rw  172.25.0.11:/share/&  (redhat7)
service autofs stop
service autofs start

共享家目录案例:

技术图片

技术图片

技术图片

8.客户机验证

[root@TESTA ~]# cd /cc
[root@TESTA cc]# ls   (有时候这个目录不显示挂载文件的)
nfs
[root@TESTA cc]# cd nfs/   
[root@TESTA nfs]# ls 
nfstest  ss
[root@TESTA nfs]# 

 


 

转载需注明出处

 

以上是关于NFS的主要内容,如果未能解决你的问题,请参考以下文章

NFS错误代码-110的确切含义

如何在 C 代码中检查目录是不是在 NFS 文件系统上?

java保存nfs

NFS

rsync nfs 实时同步,结合实战

Linux NFS服务