首页 > 其他分享 >nfs

nfs

时间:2023-12-22 18:24:45浏览次数:23  
标签:rpcbind 服务 nfs NFS root 客户端

nfs服务的搭建

步骤

安装nfs服务
启动nfs服务
创建nfs共享文件
配置nfs服务
测试nfs服务

搭建nfs服务不仅需要安装nfs自己的软件包,还要安装rpcbind软件包,以便nfs服务能够监听到111端口。

安装NFS时需要安装rpcbind的原因是因为NFS(Network File System,网络文件系统)使用RPC(Remote Procedure Call,远程过程调用)来进行客户端和服务端之间的通信。在NFS中,客户端需要知道服务端提供的NFS服务的端口号才能进行连接和数据传输。

而rpcbind服务负责管理和维护RPC服务的端口号映射关系,将服务名称映射到对应的端口号。因此,在安装NFS时,需要同时安装rpcbind服务,以便客户端能够通过rpcbind查询NFS服务的端口号,从而成功连接到NFS服务。

另外,rpcbind还负责处理RPC请求的路由和转发,确保客户端的请求能够正确地路由到对应的服务端。因此,安装rpcbind是确保NFS服务正常运行和客户端能够成功连接的必要条件之一。

如果不安装rpcbind,会导致NFS服务无法正常工作。

因为NFS使用RPC进行通信,而RPC需要使用固定的端口号进行通信。如果没有安装rpcbind,就无法建立正确的端口号映射关系,客户端无法知道NFS服务的端口号,也就无法成功连接到NFS服务。此外,rpcbind还负责处理RPC请求的路由和转发,如果缺少这个服务,客户端发送的RPC请求可能无法正确到达对应的服务端,导致通信失败或出现其他错误。

因此,为了确保NFS服务的正常运行和客户端的正确连接,必须安装rpcbind服务。

安装nfs服务和rpcbind服务

[root@localhost opt]# yum -y install nfs-utils rpcbind
Loaded plugins: langpacks, product-id, search-disabled-repos,
              : subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Package 1:nfs-utils-1.3.0-0.33.el7.x86_64 already installed and latest version
Package rpcbind-0.2.0-38.el7.x86_64 already installed and latest version
Nothing to do

默认情况下,是安装了nfs和rpcbind的。

启动nfs服务和rpcbind服务

systemctl start nfs-server rpcbind

创建共享文件

mkdir nfs

配置nfs服务

/etc/exports是NFS服务器配置文件,用于定义哪些文件系统目录可以被NFS客户端访问,以及访问权限。

在/etc/exports文件中,每一行定义一个共享目录及其访问权限。格式如下:

<directory> <client list> <options>

<directory>:要共享的目录的绝对路径。
<client list>:允许访问该目录的客户端列表。可以使用通配符,例如*表示所有客户端。
<options>:访问权限选项,可以包括以下选项:
rw:允许读写访问。
ro:只允许只读访问。
sync:同步写入,数据写入到磁盘后再返回响应。
async:异步写入,数据写入到缓存中即返回响应。
no_root_squash:允许客户端上的root用户以服务端上的root用户权限进行访问。
其他选项根据需要设置。
例如,以下是一个示例配置:

/usr/sys/src host2(rw,sync,no_root_squash) host3(ro,sync) * (rw,sync)

这个配置将/usr/sys/src目录共享给host2主机,允许读写访问,并且客户端上的root用户以服务端上的root用户权限进行访问。同时,也将该目录共享给host3主机,只允许只读访问。最后,允许所有客户端读写访问该目录。

请注意,修改/etc/exports文件后,需要重新启动NFS服务或使用exportfs -ra命令重新加载配置才能生效。

/home/nfs 192.168.1.0/24(rw,sync,no_root_squash,no_subtree_check)
[root@localhost nfs]# vim /etc/exports

/opt/nfs 192.168.10.10(rw,sync)
/opt/nfs 192.168.10.20(ro,sync)

重启服务

[root@localhost nfs]# systemctl restart nfs-server rpcbind

tips:

重启nfs-server和nfs的主要区别在于它们的作用和范围。

重启nfs-server是指重启NFS服务器服务。NFS(Network File System,网络文件系统)是一种用于在计算机系统之间共享文件和目录的协议。NFS服务器负责提供文件共享服务,允许远程计算机像访问本地文件一样访问和操作远程文件。重启nfs-server会重新启动NFS服务,恢复或解决任何与NFS服务相关的问题。

而nfs则通常是指网络文件系统(Network File System)的简称,它是一种分布式文件系统,可以在不同计算机之间共享文件和目录。nfs不是一项服务或命令,而是一种文件系统类型,它依赖于NFS服务器和客户端之间的通信来实现文件共享。

因此,重启nfs-server和nfs的主要区别在于前者是重启NFS服务器服务,而后者是分布式文件系统类型。

查看

[root@localhost nfs]#  exportfs -v
/opt/nfs      	192.168.10.10(rw,wdelay,root_squash,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash)
/opt/nfs      	192.168.10.20(ro,wdelay,root_squash,no_subtree_check,sec=sys,ro,secure,root_squash,no_all_squash)

tips:

exportfs -v命令用于显示NFS服务器上已挂载的共享文件系统信息。这个命令可以帮助你查看哪些目录已经被导出(共享)给其他客户端,以及相关的访问权限和选项。

执行exportfs -v命令后,通常会列出所有已挂载的共享目录及其详细信息,包括客户端列表、访问权限、挂载选项等。

请注意,exportfs命令是NFS服务器端的管理工具,通常在NFS服务器上执行。如果你想查看客户端上的挂载情况,可以使用showmount -e命令。

防火墙的放行

[root@localhost nfs]# firewall-cmd --permanent --add-service=nfs
success
[root@localhost nfs]# firewall-cmd --permanent --add-service=rpc-bind
success
[root@localhost nfs]# firewall-cmd --permanent --add-service=mountd
success
[root@localhost nfs]# firewall-cmd --reload 
success

也可以尝试用富规则放行

[root@localhost nfs]# firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=192.168.10.10/24 service name=nfs accept'
success
[root@localhost nfs]# firewall-cmd  --reload 
success
[root@localhost nfs]# firewall-cmd --permanent --remove-service=nfs
success
[root@localhost nfs]# firewall-cmd  --reload 
success
[root@localhost nfs]# firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=192.168.10.10/24 service name=rpc-bind accept'
success
[root@localhost nfs]# firewall-cmd  --reload 
success
[root@localhost nfs]# 
[root@localhost nfs]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens32
  sources: 
  services: dhcpv6-client ftp http mountd mysql ssh
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  sourceports: 
  icmp-blocks: 
  rich rules: 
	rule family="ipv4" source address="192.168.10.10/24" service name="nfs" accept
	rule family="ipv4" source address="192.168.10.10/24" service name="rpc-bind" accept

tips:

mountd服务是NFS服务器的重要组成部分,它负责管理NFS共享目录的挂载和卸载。当客户端请求挂载共享目录时,mountd服务会与客户端建立连接,验证客户端的访问权限,然后执行相应的挂载操作。同时,当客户端请求卸载共享目录时,mountd服务也会执行相应的卸载操作。

在NFS服务器中,mountd服务与rpcbind服务协同工作,共同完成NFS服务的启动和停止。当NFS服务器启动时,rpcbind服务会启动并监听相应的端口号,而mountd服务则会通过rpcbind服务提供的端口号与客户端建立连接。

总之,mountd服务是NFS服务器中负责管理共享目录挂载和卸载的重要服务。

测试nfs

[root@client opt]# cd share_nfs/
[root@client share_nfs]# ls
[root@client share_nfs]# touch old
[root@client share_nfs]# ls
old
[root@client share_nfs]# cd ..
[root@client opt]# mount -t nfs 192.168.10.10:/opt/nfs ./share_nfs/
[root@client opt]# df -hT
Filesystem             Type      Size  Used Avail Use% Mounted on
/dev/mapper/rhel-root  xfs        16G  3.4G   13G  22% /
devtmpfs               devtmpfs  977M     0  977M   0% /dev
tmpfs                  tmpfs     993M   84K  993M   1% /dev/shm
tmpfs                  tmpfs     993M  8.9M  984M   1% /run
tmpfs                  tmpfs     993M     0  993M   0% /sys/fs/cgroup
/dev/sda1              xfs       497M  148M  350M  30% /boot
tmpfs                  tmpfs     199M   16K  199M   1% /run/user/42
tmpfs                  tmpfs     199M     0  199M   0% /run/user/0
/dev/sr0               iso9660   3.6G  3.6G     0 100% /media
192.168.10.10:/opt/nfs nfs4       16G  4.1G   12G  27% /opt/share_nfs
[root@client opt]# 
[root@client opt]# cd share_nfs/
[root@client share_nfs]# ls
flag  share
[root@client share_nfs]# cd ..
[root@client opt]# umount /opt/share_nfs/
[root@client opt]# cd share_nfs/
[root@client share_nfs]# ls
old

标签:rpcbind,服务,nfs,NFS,root,客户端
From: https://www.cnblogs.com/humlogs/p/17922003.html

相关文章

  • nfs挂载
    ​ NFS(networkfilesystem)NFS是一种基于TCP/IP传输的网络文件系统协议。通过使用NFS协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源。也就是说NFS服务端提供共享目录文件挂载在客户端某一个目录文件下,以供客户端去访问和使用​编辑思路:在虚拟机下创建根文......
  • NFS服务
    NFS服务和自动挂载搭建的流程1:安装nfs服务的包,创建共享文件2:编写服务的配置文件3:防火墙的放行4:客户端测试5:安装autofs包6:编写配置文件7:客户端测试 1:安装nfs服务的包默认是已经安装好了的,但是为了确保还是需要安装一下[root@controller/]#yum-yinstallnfs-utils......
  • k8s基于NFS部署storageclass实现pv并标记为一个默认的StorageClass
    架构:一.搭建storageclass1、master和node节点安装nfs服务yum-yinstallnfs-utilsrpcbind2、启动nfs并设为开机自启:systemctlstartnfs&&systemctlenablenfssystemctlstartrpcbind&&systemctlenablerpcbind3、master节点创建共享挂载目录(客户端不需要创建共享目录......
  • k8s1.26部署etcd集群挂载nfs failed to save Raft hard state and entries","error":"
    背景:使用helm部署apisix时会把etcd也一起部署了,etcd数据需要持久化的,这边因为测试环境使用nfs,挂载nfs时发现只有一个etcd节点启动正常其他两个均报错如下:failedtosaveRafthardstateandentries","error":"input/outputerror截图:排错过程:1查看节点是否都可以挂载nfs  ---......
  • 共享存储NFS
    什么是共享存储networkfilesystem网络文件系统NFS主要使用在局域网下,让不同的主机之间可以共享文件、或者目录数据主要用于linux系统上实现文件共享的一种协议,其客户端主要是Linux没有用户认证机制,且数据在网络上传送的时候是明文传送,一般只能在局域网中使用不需要输......
  • NFS服务及RPC协议
    NFS服务及RPC协议FTP和NFS的区别文件系统类型FTP是一种基于客户端-服务器的协议,用于文件传输。NFS则是一种分布式文件系统协议,作为本地操作系统和远程文件系统之间的桥梁,可以实现跨平台文件共享。传输速度和效率由于FTP是基于客户端-服务器的协议,所以需要进行连接的建立和关......
  • Kubernetes 部署 NFS server
    环境要求kubernetes:1.21+部署NFSserver下载nfsserver部署清单#wgethttps://raw.githubusercontent.com/kubernetes-csi/csi-driver-nfs/master/deploy/example/nfs-provisioner/nfs-server.yaml添加nsnfsapiVersion:v1kind:Namespacemetadata:name:nfs---......
  • day06 基于NFS的存储解决方案 2.1
    一、基于NFS的存储解决方案NFS在K8S中的应用及配置1、前言NFS是基于网络共享文件的存储解决方案,及网络文件系统。NFS运行在一个系统网络上与他人共享目录和文件。通过使用NFS,用户和程序可像访问本地文件一样访问远端系统上的文件。nfs:是我们最终的存储nfs-client:用来动态......
  • Ubuntu 安装nfs 实现共享目录
    多台服务器之间共享目录,实现每个服务器进入目录看到的内容都一样1、服务器A安装   nfs-kernel-server#aptinstallnfs-kernel-server2、服务器A,编辑配置文件:/etc/exports/共享的目录 服务器B的IP(rw,sync,no_subtree_check,no_root_squash) 例如:/da......
  • Docker容器基于NFS实现跨主机跨容器的文件共享
    涉及两方面知识:1.NFS在CentOS如何搭建;2.在docker容器内如何有效挂载到远程的文件服务器。下面我们先完成第一个任务,构建NFS网络文件系统,实现两个服务器之间文件互联互通。NFSNFS(NetworkFileSystem)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间共......