NFS文件系统

NFS文件系统

nfs

NFS文件系统

NFS是UNIX(Linux)系统之见进行文件共享的网络服务,NFS即网络文件系统(Network File System),是主机间通过网络进行文件共享的网络协议。NFS服务器提供的共享目录可以被NFS客户机作为文件系统挂载到目录(挂载点)中。NFS最早是由Sun公司提出的。

  • 1.NFS的用途

NFS通常在局域网环境中使用,用于多于多台主机共享同一主机上的共享文件(目录)资源。由于NFS具有共享文件访问速度快、稳定性高等特点,在实际的生产系统中得到了广泛的应用。

对于使用NFS进行系统之间文件的共享,通常可以进行一下概括:

  • NFS是系统间提供文件共享的一种网络协议,与HTTP和FTP等用于在网络中传输文件的协议不同,NFS不需要将文件从服务器下载到本地系统来访问文件。

  • 在使用NFS协议进行文件共享的系统中,可划分为服务器和客户机两部分角色:NFS服务器输出共享的目录供其他主机访问,NFS客户机读取NFS服务器中的共享目录。

  • 通过NFS网络协议,作为NFS客户端的主机可以把NFS服务器中输出的共享目录(NFS文件系统)直接挂载(mount)到本机文件系统中的挂载点(目录),并且像访问本地文件系统一样访问已经挂载NFS文件系统。

  • 在同一台主机中即可以作为NFS服务器为其他主机提供共享目录,也可以作为NFS客户机读取其他NFS服务器中的共享目录。

NFS有三个主流发行版本

  1. NFSv2

  2. NFSv3

  3. NFSv4.

CentOS6/REHEL6默认的NFS共享服务支持所有三个版本的客户端连接。

NFS协议

NFSv2、NFSv3默认需要使用rpc服务,所以计算机的rpc服务必须启动:

rpc是远程进程调用,很多服务需要通过rpc获取一些端口信息,在Linux中rpc服务我们称之为rpcbind,我们可以将它通过以下命令启动:

1
2
service rpcbind start
chkconfig rpcbind on

NFSv4不再需要rpc支持,并且是防火墙友好的。

NFSv2、NFSv3既可以使用TCP协议进行传输、也可以使用UDP协议,UDP协议效率较高,但是不保证传输可靠性,不建议使用。NFSv4使用TCP协议进行传输。

NFS服务默认是安装的,我们可以通过以下命令可以启动:

1
2
service nfs start
chkconfig nfs on

默认NFS需要使用5个端口,其中4个是动态的(nfs工作需要的端口),以及rpc服务的端口,动态端口无法通过防火墙,如果需要通过防火墙,则需要配置NFS使用指定的静态端口:

配置NFS的配置文件/etc/sysconfig/nfs,添加静态端口设置:

1
2
3
4
MOUNT_PORT="4001"		#挂载使用端口*
STATD_PORT="4002" #状态使用端口*
LOCKD_TCPPORT="4003" #TCP锁使用端口*
LOCKD_UDPPORT="4004" #UDP锁使用端口*

防火墙需要配置允许以上端口,以及NFS协议的2049端口,RPC的111端口允许通过,才能正常使用NFS。

NFS共享配置

NFS服务的共享配置文件为/etc/exports

每一共享占用一行,格式如下:

在允许的客户机处,我们可以选择一个网段,或者一个固定的主机IP地址,也可以是域名。

共享目录 允许的客户主机(选项)

如:

1
2
3
4
5
6
7
8
9
/bxy-nfs   192.168.0.0/24(ro,saync)
/bxy-nfs 192.168.0.133(rw,sync)
/bxy-nfs *.bxy.com
# 配置好共享后,可以使用以下命令启动共享:*
service nfs start
#
exportfs -r
# 可以通过以下命令查看当前共享状态
exportfs –v

NFS共享选项

默认选项如下:

1
2
3
4
5
6
7
8
9
10
-ro				# 只读共享
-sync # 所有操作返回前必须已经写入磁盘
-wdelay # 延迟写操作,等待更多的写操作一起执行
-root_squash # 防止远程root用户使用root权限对共享进行访问

# 常用选项:
-rw # 读写共享
-async # 操作可以延迟写入磁盘,立即响应,可提高速度
-no_wdelay # 关闭写延迟,需要与sync选项同时使用
-no_root_squash # 关闭root_squash

客户端挂载NFS共享

客户端可以通过mount命令挂载NFS共享,命令格式如下:

1
mount -t nfs 192.168.1.100:/bxy-nfs /mnt

注:这里的192.168.1.100就是NFS服务器所在的地址

也可以将配置信息写入到/etc/fstab中,在启动时自动挂载:

1
192.168.1.100:/bxy-nfs /mnt nfs defaults 0 0

挂载的时候可以使用-o指定挂载选项,常用选项如下:

1
2
3
4
5
-ro 		# 只读挂载
-rw # 读写挂载
-vers=4 # 指定使用NFSv4方式挂载
# 例如:
mount -t nfs 192.168.1.100:/bxy-nfs /mnt –rw

NFS文件系统
https://skynetboys.github.io/2023/02/15/NFS文件系统/
Author
Edison
Posted on
February 15, 2023
Licensed under