构建 NFS 远程共享存储

一、NFS 介绍

        NFS(Network File System)是一种分布式文件系统协议,用于在网络上共享文件。它最初由 Sun Microsystems 开发,现在已成为许多操作系统的标准功能。 NFS允许多个计算机之间共享文件系统,使得文件在多个计算机之间移动和共享变得更加容易。通过NFS,一个计算机可以将其文件系统中的目录和文件共享给其他计算机,这些计算机可以像本地文件一样访问这些目录和文件。 NFS的工作原理是,将文件系统挂载到客户端计算机上,使得客户端计算机可以像访问本地文件系统一样访问远程文件系统。NFS客户端将文件访问请求发送到NFS服务器,NFS服务器将请求处理后将数据返回给客户端。 NFS的优点包括易于安装和使用,支持多种操作系统和文件系统类型,以及可扩展性和可靠性。它的缺点包括安全性问题和性能问题,尤其是在高负载环境中。

        存储的种类三种存储方式:DAS(Direct Attach STorage)、SAN(Storage Area Network)、NAS(Network Attach Storage)三种存储类型:块存储、文件存储、对象存储

二、NFS 工作流程

NFS服务包含的内容:

1、NFS服务(有很多进程和端口),把自己的端口告诉RPC。

2、RPC服务(对外固定端口111)

  1. 启动RPC服务,这是NFS依赖的服务,必须先启动。
  2. 启动NFS服务。启动后会告诉RPC服务自己有哪些端口号可用。

  3. 客户端发起NFS服务请求。由于NFS服务的端口号不确定,所以NFS客户端需要先请求RPC服务(固定端口号111),RPC服务收到请求以后,会查询可用的端口号。

  4. RPC查询到可用端口以后,会返回客户端一个可用的端口号。

  5. 客户端拿到端口号以后,就拿着这个端口号去请求NFS服务,实现数据读写。

三、搭建部署

1.实验环境

服务端:nfs-server 192.168.246.160
客户端:web1 192.168.246.161
# 永久关闭防火墙和SELinux
systemctl stop firewalld
systemctl disable firewalld
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
setenforce 0

2. nfs-server 操作

[root@nfs-server ~]# yum -y install rpcbind
[root@nfs-server ~]# yum -y install nfs-utils
[root@nfs-server ~]# systemctl start nfs
[root@nfs-server ~]# systemctl start rpcbind
[root@nfs-server ~]# mkdir /opt/nfs_dir
[root@nfs-server ~]# echo "test" >> /opt/nfs_dir/test.txt
[root@nfs-server ~]# vim /etc/exports
/opt/nfs_dir        192.168.188.0/24(rw,no_root_squash,sync)
ro:共享目录只读;
rw:共享目录可读可写;
all_squash:所有访问用户都映射为匿名用户或用户组;
no_all_squash(默认):访问用户先与本机用户匹配,匹配失败后再映射为匿名用户或用户组;
root_squash(默认):将来访的root用户映射为匿名用户或用户组;
no_root_squash:来访的root用户保持root帐号权限;
anonuid=:指定匿名访问用户的本地用户UID,默认为nfsnobody(65534);
anongid=:指定匿名访问用户的本地用户组GID,默认为nfsnobody(65534);
secure(默认):限制客户端只能从小于1024的tcp/ip端口连接服务器;
insecure:允许客户端从大于1024的tcp/ip端口连接服务器;
sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性;
async:将数据先保存在内存缓冲区中,必要时才写入磁盘;
wdelay(默认):检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率;
no_wdelay:若有写操作则立即执行,应与sync配合使用;
subtree_check(默认) :若输出目录是一个子目录,则nfs服务器将检查其父目录的权限;
no_subtree_check :即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率
[root@nfs-server ~]# systemctl restart nfs-server
[root@nfs-server ~]# systemctl enable nfs-server

3.web1 客户端操作

[root@web1 ~]# yum -y install rpcbind
[root@web1 ~]# yum -y install nfs-utils
[root@web1 ~]# mkdir /opt/nfs_dir
[root@web1 ~]# mount -t nfs 192.168.188.145:/opt/nfs_dir /opt/nfs_dir
[root@web1 ~]# ls /opt/nfs_dir/
test.txt
制作开机挂载
[root@web1 ~]# vim /etc/fstab
192.168.188.145:/opt/nfs_dir    /opt/nfs_dir         nfs     defaults        0 0
[root@web1 ~]# mount -a
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值