2025年NFS共享存储

NFS共享存储目录 一 NFS 介绍 NFS 的优势 NFS 的劣势 二 NFS 在 Linux 上的工作原理 三 NFS 的两个依赖软件 nfs utils rpcbind 四 NFS 实验 4 1 下载依赖软件 创建共享文件 并给予权限 4 2 编写 nfs 配置发布共享的文件 etc exports 4 3

大家好,我是讯享网,很高兴认识大家。

目录

一、NFS介绍

NFS的优势

NFS的劣势

二、NFS在Linux上的工作原理

三、NFS的两个依赖软件:nfs-utils、rpcbind

四、NFS实验

4.1、下载依赖软件,创建共享文件,并给予权限

4.2、编写nfs配置发布共享的文件:/etc/exports

4.3、启动服务:先启动rpcbind,再启动nfs(否则会报错)

 4.4、客户端操作

4.5测试


一、NFS介绍

NFS(Network File System)是一种在网络上实现文件共享的协议,允许不同计算机之间共享文件和目录。使用NFS,用户可以像使用本地文件一样访问远程计算机上的文件。服务端把共享文件发布出来,客户端获取到共享的目录,双方之间可以进行同步。

使用场景:NFS适用于共享文档、配置文件、媒体文件等常见的文件共享场景。此外,NFS 的性能和可靠性受到网络速度、延迟和带宽等因素的影响,因此在设计和配置时需要考虑网络环境的特点。

NFS的优势

1、透明性:NFS 提供了透明的文件共享,用户可以像访问本地文件系统一样访问远程文件系统,无需关心具体的物理位置或网络细节。

2、跨平台支持:NFS 可以在不同的操作系统之间进行文件共享,包括 UNIX/Linux、Windows 和 macOS 等。不同平台也可以共享。

3、效率:NFS 通过使用缓存和异步写入等技术来提高性能和效率。它可以减少网络传输的开销,并允许客户端在本地缓存文件以减少对服务器的频繁访问。

4、安全性:NFS 支持基于主机名和 IP 地址的访问控制,可以根据需要进行配置以限制对文件系统的访问。此外,可以使用额外的安全机制如 Kerberos 或 SSL/TLS 进行加密和认证。

5、扩展性:NFS 支持在服务器端导出(共享)多个目录,并允许客户端挂载这些共享目录。这使得可以轻松地扩展文件系统的容量和访问范围。

NFS的劣势

1、安全性问题:由于 NFS 设计时考虑到了开放式网络环境的需求,因此默认情况下没有提供强大的安全保障措施。例如,NFS v3 不支持加密,而 NFS v4 的加密和认证机制比较复杂。

2、性能问题:尽管 NFS 采用了缓存等技术来提高性能,但在高负载的场景下,仍然可能出现瓶颈和延迟。特别是在跨地理位置的网络上运行 NFS 时,网络延迟会对性能产生很大影响。

3、故障恢复问题:如果 NFS 服务器发生故障或网络连接中断,则客户端可能无法访问共享文件系统。NFS 支持使用备份服务器进行故障恢复,但需要额外的管理和配置。

4、兼容性问题:不同版本的 NFS 实现之间存在一些差异和兼容性问题,这可能导致不同操作系统之间的互操作性受到限制。

5、存储管理问题:NFS 不支持对数据进行块级别的存储管理,这使得在处理大型、密集的 I/O 工作负载时,其可扩展性受到一定限制。

二、NFS在Linux上的工作原理

大体来说:服务器将指定的目录(可以是多个目录)标记为共享目录,要授权客户端具有访问的权限。客户端可以通过nfs协议发送请求到服务器,获取并且对共享的文件和目录进行操作

细致划分:

  1. 配置NFS服务器:首先需要在NFS服务器上安装NFS软件包,并在NFS服务器上创建要共享的目录。然后,在NFS服务器上配置NFS服务器以允许客户端访问共享的目录。这可以通过修改/etc/exports文件或使用exportfs命令来完成。
  2. 挂载共享目录:客户端需要挂载NFS服务器上的共享目录才能访问它。这可以通过在客户端上使用mount命令来完成。当客户端成功挂载共享目录时,它就可以像访问本地文件一样访问共享目录中的内容。
  3. 访问共享目录:一旦客户端成功挂载共享目录,它就可以像访问本地文件一样对其进行读取、写入或执行其他操作。客户端上的所有文件访问请求都将通过RPC协议发送到NFS服务器上,并在服务器上处理。
  4. 取消挂载共享目录:当不再需要访问共享目录时,客户端可以通过umount命令将其从客户端上卸载。这会中断客户端与NFS服务器之间的连接,并释放被共享目录占用的资源。

三、NFS的两个依赖软件:nfs-utils、rpcbind

1、nfs-utils:共享服务,它提供了在Linux系统上使用NFS(Network File System)所需的工具和服务。用于方便地配置、管理和操作NFS客户端和服务器。

2、rpcbind:网络服务,远程共享调用。rpcbind是一个非常重要的系统服务,它为RPC程序提供了端口映射和查询服务,使得客户端可以方便地访问远程RPC服务。在Linux系统中,rpcbind服务通常与NFS(Network File System)和其他RPC程序一起使用。


讯享网

下载依赖软件

[root@localhost ~]# yum -y install nfs-utils rpcbind

讯享网

 

四、NFS实验

4.1、下载依赖软件,创建共享文件,并给予权限

讯享网[root@localhost ~]# yum -y install nfs-utils rpcbind [root@localhost ~]# mkdir /opt/xxtg01 [root@localhost ~]# chmod 777 /opt/xxtg01 

4.2、编写nfs配置发布共享的文件:/etc/exports

[root@localhost ~]# vim /etc/exports #添加以下内容: /opt/xxtg01 172.16.80.12(rw,sync,no_root_squash)

/opt/xxtg01:发布共享目录

172.16.80.12:指定允许访问该共享目录的客户端IP地址

rw:可以进行读写操作

sync:同步写入到内存与硬盘之中

no_root_squash:表示客户机用root用户来访问共享目录,访问的root用户具有和本地root用户一样的权限。

/etc/exports 是 NFS 服务器上的导出表文件,用于配置可以共享给客户端的目录和权限。它的格式如下:

<共享目录> <允许访问的主机>(选项)

其中:

        <共享目录>:指定要共享的目录的路径。

        <允许访问的主机>:指定允许访问该共享目录的主机列表。可以是 IP 地址、主机名、IP 地址段或域名。

        选项(可选)用于进一步配置共享选项,例如权限控制、读写权限等。

举例,以下是一个示例的 /etc/exports 文件内容:

/home/shared 192.168.1.100(rw)

/data *(ro,sync,no_subtree_check)

第一行表示将 /home/shared 目录共享给 IP 地址为 192.168.1.100 的主机,允许读写权限

第二行表示将 /data 目录共享给所有主机(*),只允许读取权限(ro),同时使用同步模式(sync)和不检查子目录(no_subtree_check)。

常见选项

ro:只读权限。指定只允许客户端以只读方式访问共享目录。

rw:读写权限。指定允许客户端以读写方式访问共享目录。

sync:同步写入。指定将写入操作同步到磁盘,确保数据的持久性。这可能会降低性能,但可以提供更高的数据一致性。

async:异步写入。指定写入操作不必立即同步到磁盘,从而提高性能。但这也增加了数据丢失的风险,例如系统崩溃时可能会丢失未同步的数据。

no_root_squash:不限制 root 权限。默认情况下,对于以 root 用户身份访问共享目录的客户端,其权限会被映射为一个非特权用户。使用该选项可以取消这种限制,允许 root 用户拥有完全的权限。

root_squash:限制 root 权限。当客户端以 root 用户身份访问共享目录时,其权限会被映射为一个非特权用户。这是为了提高安全性,防止潜在的恶意操作。

all_squash:限制所有用户权限。类似于 root_squash,但适用于所有用户,不仅限于 root 用户。

no_subtree_check:不检查子目录。默认情况下,NFS 服务器会检查导出目录的子目录是否也符合导出规则。使用该选项可以禁止这种子目录检查,提高性能。

subtree_check:检查子目录。指定要对导出目录的子目录进行检查,以确保它们也符合导出规则。

insecure:不强制使用安全端口。默认情况下,NFS 服务器要求客户端使用安全的动态端口(1024 或更高)进行连接和通信。使用该选项可以放宽这种限制,允许客户端使用非安全端口(1023 或更低)。

4.3、启动服务:先启动rpcbind,再启动nfs(否则会报错)

因为rpcbind 是一个在系统上运行的守护进程,它提供了 RPC 程序号和端口映射表的服务。

讯享网[root@localhost ~]# systemctl restart rpcbind [root@localhost ~]# systemctl restart nfs #显示共享目录 [root@localhost ~]# showmount -e Export list for localhost.localdomain: /opt/xxtg01 172.16.80.12 

 4.4、客户端操作

[root@localhost ~]# yum -y install nfs-utils rpcbind [root@localhost ~]# systemctl restart rpcbind [root@localhost ~]# systemctl restart nfs [root@localhost ~]# showmount -e 172.16.80.51 Export list for 172.16.80.51: /opt/xxtg01 172.16.80.12 [root@localhost ~]# cd /opt [root@localhost opt]# mkdir share [root@localhost opt]# mount 172.16.80.51:/opt/xxtg01 /opt/share/ [root@localhost opt]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda3 18G 4.5G 14G 26% / devtmpfs 1.9G 0 1.9G 0% /dev tmpfs 1.9G 0 1.9G 0% /dev/shm tmpfs 1.9G 13M 1.9G 1% /run tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup /dev/sda1 297M 157M 140M 53% /boot tmpfs 378M 12K 378M 1% /run/user/42 tmpfs 378M 0 378M 0% /run/user/0 172.16.80.51:/opt/xxtg01 45G 6.8G 38G 16% /opt/share

4.5测试

客户端创建文件

讯享网[root@localhost opt]# cd share [root@localhost share]# touch 123 [root@localhost share]# echo 123 > 123 [root@localhost share]# cat 123 123 

服务端查看

[root@localhost ~]# cd /opt/xxtg01/ [root@localhost xxtg01]# ls 123 [root@localhost xxtg01]# cat 123 123 

 

小讯
上一篇 2025-03-09 19:00
下一篇 2025-04-09 17:42

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/51466.html