文章目录
- NFS介绍
- 特点
- 用途
- NFS版本
- NFS安装
- 0. 安装规划
- 1. 安装NFS服务
- 2. 启动并启用服务
- 3. 创建共享目录
- 4. 配置NFS共享
- 5. 应用NFS配置
- 6. 防火墙设置
- 7. 验证NFS服务
- 8. 客户端挂载
- 9. 验证挂载
- 10. 客户端卸载nfs挂载
- 11. 自动挂载
- 参考文章
NFS介绍
NFS(Network File System)是一个允许网络中的计算机之间共享文件的系统。它最初由Sun Microsystems开发,现在广泛应用于多种操作系统中。NFS允许用户像访问本地文件一样访问存储在远程服务器上的文件。NFS服务的实现依赖于RPC(Remote Procedure Call,远程过程调用)机制,以完成远程到本地的映射过程。
特点
-
跨平台支持:NFS最初是为Unix系统设计的,但现在已经扩展到支持多种操作系统,包括Linux、Windows、Mac OS等。
-
易于配置:NFS服务器的设置相对简单,只需要配置
/etc/exports
文件并启动服务即可。 -
数据一致性:NFS提供了数据一致性的保证,确保文件在远程访问时的完整性。
-
性能:NFS的性能取决于网络速度和服务器性能,通常适用于局域网内的文件共享。
-
版本多样:NFS有多个版本,包括NFSv2、NFSv3、NFSv4等,每个版本都有其特定的性能和安全特性。
-
安全性:NFSv4引入了更强的安全性,包括Kerberos认证和加密通信。
-
灵活性:NFS允许管理员通过配置文件和权限设置来控制对共享文件的访问。
-
去中心化:NFS允许多个客户端同时访问和修改文件,而不需要集中式管理。
用途
-
文件共享:NFS主要用于在不同计算机之间共享文件和目录。
-
数据备份:NFS可以用于远程备份数据,确保数据的安全性和可恢复性。
-
分布式计算:在分布式计算环境中,NFS允许应用程序访问存储在远程服务器上的数据。
-
多媒体共享:NFS可以用于共享音频、视频和其他多媒体文件。
-
开发和测试:开发人员可以使用NFS在不同的开发环境中共享代码和资源。
-
虚拟化环境:在虚拟化环境中,NFS可以用于虚拟机之间的文件共享。
-
教育和研究机构:教育机构和研究机构经常使用NFS来共享研究数据和学术资源。
-
企业内部网:企业可以使用NFS来构建内部文件共享系统,提高工作效率。
NFS是一种成熟且广泛使用的文件共享技术,适用于需要跨网络共享文件的各种场景。随着技术的发展,NFS也在不断地更新和改进,以满足现代网络环境的需求。
NFS版本
在CentOS系统中构建NFS文件共享服务需要安装nfs-utils
和 rpcbind
:
nfs-utils 是一个提供NFS服务的软件包,它包含了NFS服务器和客户端所需的工具和守护进程。nfs-utils 允许系统管理员配置和管理NFS共享,以及挂载和访问远程NFS共享。
rpcbind,也称为portmap,是一个RPC服务,它将RPC程序号映射到网络上的端口号。RPC服务需要一个监听特定端口(默认为111)的守护进程,以便客户端可以查询RPC服务的端口号。当NFS服务启动时,它会随机选择一些端口,并使用rpcbind来注册这些端口,这样客户端就可以通过查询rpcbind来找到正确的端口进行连接。
工作原理概述如下:
- NFS服务启动后,会随机选择一些端口用于文件共享服务。
- NFS服务将这些端口信息注册到rpcbind服务。
- rpcbind服务监听111端口,等待客户端的请求。
- 客户端通过rpcbind服务查询特定NFS服务的端口号。
- rpcbind服务响应客户端请求,提供NFS服务的端口信息。
- 客户端使用这些端口信息连接到NFS服务,并进行文件操作。
NFS服务的配置通常在 /etc/exports
文件中进行,定义了哪些目录可以被共享,以及共享的权限和选项。客户端可以使用 mount
命令挂载NFS共享,就像挂载本地文件系统一样。
使用 sudo yum install -y nfs-utils rpcbind
命令安装的 nfs-utils
和 rpcbind
的具体版本取决于你的CentOS系统的版本以及可用的软件包仓库。yum
包管理器会根据你的系统配置和仓库中的可用软件包来安装最新或默认版本的这些工具。
要查看已安装的 nfs-utils
和 rpcbind
的版本,你可以使用 yum
的 info
命令或者 rpm
命令。以下是如何查看这些包的版本信息的示例:
- 使用
yum
命令查看包信息:
sudo yum info nfs-utils rpcbind
这个命令将显示已安装的 nfs-utils
和 rpcbind
包的详细信息,包括版本号。
- 使用
rpm
命令查看包信息:
rpm -q nfs-utils rpcbind
这个命令将直接显示已安装的包的版本号。
请注意,如果你需要特定版本的 nfs-utils
或 rpcbind
,你可以指定版本号进行安装,例如:
sudo yum install -y nfs-utils-版本号 rpcbind-版本号
替换 版本号
为你需要的特定版本号。如果你不确定可用的版本,可以先使用 yum search
命令来查找可用的版本:
yum search nfs-utils rpcbind
这将列出所有可用的 nfs-utils
和 rpcbind
版本,然后你可以选择一个特定的版本进行安装。
NFS安装
CentOS系统中构建NFS文件共享服务主要涉及以下几个步骤:
0. 安装规划
以三台服务器为例, node1, node2, node3, 其中 node1
为NFS服务端
, node2
和 node3
分别为NFS客户端
服务器 | 角色 | 目录 |
---|---|---|
node1 | NFS服务端 | /data/server/nfsshare |
node2 | NFS客户端 | /data/client/nfsshare |
node3 | NFS客户端 | /data/client/nfsshare |
1. 安装NFS服务
首先,需要在服务器上安装NFS服务。打开终端并执行以下命令:
sudo yum install -y nfs-utils rpcbind
2. 启动并启用服务
安装完成后,启动并设置NFS服务和rpcbind服务开机自启:
sudo systemctl start rpcbind
sudo systemctl enable rpcbind
sudo systemctl start nfs-server
sudo systemctl enable nfs-server
3. 创建共享目录
创建一个目录作为NFS共享目录,所有客户端将能够访问此目录:
sudo mkdir -p /data/server/nfsshare
4. 配置NFS共享
编辑/etc/exports
文件,添加你想要共享的目录及其权限:
sudo vim /etc/exports
在文件中添加以下行(假设我们共享/nfsshare
目录):
/data/server/nfsshare *(rw,sync,no_root_squash,no_subtree_check)
这里的配置项说明:
rw
:读写权限。sync
:同步写入磁盘。no_root_squash
:允许远程root用户具有本地root用户的权限。no_subtree_check
:不检查父目录权限。
5. 应用NFS配置
保存并关闭/etc/exports
文件后,运行以下命令来应用配置:
sudo exportfs -ra
6. 防火墙设置
如果服务器上启用了防火墙,需要允许NFS服务的端口。默认情况下,NFS使用2049端口,以及111端口用于RPC服务:
sudo firewall-cmd --permanent --add-service=nfs
sudo firewall-cmd --permanent --add-service=mountd
sudo firewall-cmd --permanent --add-service=rpc-bind
sudo firewall-cmd --reload
7. 验证NFS服务
使用以下命令检查NFS服务的状态:
sudo systemctl status nfs-server
sudo systemctl status rpcbind
8. 客户端挂载
首先,需要在客户端上安装nfs-utils rpcbind
。打开终端并执行以下命令:
sudo yum install -y nfs-utils rpcbind
- nfs-utils:同样用于NFS客户端,以便挂载和访问远程NFS共享。
- rpcbind:虽然rpcbind主要用于服务端,但客户端也需要它来查询服务端的RPC服务端口号。
然后,在客户端上,你可以使用以下命令挂载NFS共享:
sudo mount -t nfs <服务器IP>:/data/server/nfsshare /data/client/nfsshare
将<服务器IP>
替换为NFS服务器的IP地址,/data/client/nfsshare
为客户端上的挂载点。
9. 验证挂载
检查挂载是否成功:
mount | grep nfs
如果一切正常,你应该能看到挂载点的信息。
10. 客户端卸载nfs挂载
umount /data/client/nfsshare
/data/client/nfsshare
为客户端上的挂载点。
11. 自动挂载
为了在系统启动时自动挂载NFS共享,你可以将挂载命令添加到/etc/fstab
文件中。
以上就是在CentOS系统上构建NFS文件共享服务的基本步骤。根据你的具体需求,可能还需要进行一些额外的配置和调整。
参考文章
文件服务器之一:nfs服务部署搭建
NFS服务搭建
快速学会k8s数据存储、数据卷、EmptyDir、HostPath、NFS、PV、PVC…
Setup a NFS Server with Docker