【nfsd】通过nfsd搭建nfs server

通过nfsd搭建nfs server

NFS(Network File System)是Linux系统之间(类Unix系统之间)使用最为广泛的文件共享协议,不同于ftp或http,需要将文件下载后使用,NFS方式的共享是可以直接使用而不需要下载的。

 

mout过程:

原理:

NFS本身的服务并没有提供数据传递的协议,而是通过使用RPC(远程过程调用 Remote Procedure Call)来实现。当NFS启动后,会随机的使用一些端口,NFS就会向RPC去注册这些端口。RPC就会记录下这些端口,RPC会开启111端口。通过client端和sever端端口的连接来进行数据的传输。在启动nfs之前,首先要确保rpc服务启动。

 

  • 本地用户要访问nfs服务器中文件,先向内核发起请求,内核处理调用nfs模块及rpc client
  • rpc client向rpc server发起连接
  • 在连接之前,NFS服务除了启动nfsd本身监听的端口2049/tcp和2049/udp,还会启动其它进程(如mountd,statd,rquotad等)以完成文件共享,这些进程的端口是不固定的;是每次NFS服务启动时向RPC服务注册的,RPC服务会随机分配未使用的端口
  • 完成连接,接受访问请求
  • nfs应用程序向内核发起请求
  • 内核调用文件系统

       然后client端通过获取的NFS端口来建立和server端的NFS连接并进行数据的传输。

参数 说明
ro 只读访问(默认)
rw 读写访问
async 将数据先保存在内存缓冲区,必要时才写入磁盘
secure 客户端只能使用小于1024的端口连接(默认)
insecure 允许客户端使用大于1024的端口连接
wdelay 如果NFS服务器怀疑有另一个相关的写请求正在处理或马上就要达到,NFS服务器将延迟提交写请求到磁盘,这就允许使用一个操作提交多个写请求到磁盘,可以改善性能,缺省选项
no_wdelay 若有写操作立即执行,应与sync配合使用
hide 在NFS共享目录中不共享其子目录(默认)
no_hide 共享NFS目录的子目录
subtree_check 如果共享目录是子目录,强制NFS检查父目录的权限(默认)
no_subtree_check 和上面相对,不检查目录权限
all_squash 龚爱那个文件
no_all_squash 将所有用户映射为目标计算机(NFS服务器)的匿名用户,NFS缺省选项
root_squash 当源计算机(NFS客户端)当前用户是root时,将被映射为目标计算机(NFS服务器)的匿名用户
no_root_squash 当源计算机(NFS客户端)当前用户是root时,将被映射为目标计算机(NFS服务器)的root用户
anonuid=xxx 指定NFS服务器/etc/passwd文件匿名用户的uid
anongid=xxx 指定NFS服务器/etc/passwd文件匿名用户的gid

nfsd配置文件

/etc/sysconfig/nfs

查看服务状态:

[root@centos7 ~]# systemctl status nfs-server
● nfs-server.service - NFS server and services
   Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; disabled; vendor preset: disabled)
   Active: inactive (dead)

缺省没有启动,所以要先启动服务:

# systemctl enable rpcbind && \
  systemctl enable nfs-server && \
  systemctl enable nfs-lock && \
  systemctl enable nfs-idmap && \
  systemctl start rpcbind && \
  systemctl start nfs-server && \
  systemctl start nfs-lock && \
  systemctl start nfs-idmap
重启所有服务命令
# systemctl enable rpcbind && systemctl enable nfs-server && systemctl enable nfs-lock && systemctl enable nfs-idmap && systemctl restart rpcbind && systemctl restart nfs-server && systemctl restart nfs-lock && systemctl restart nfs-idmap
无需重启NFS服务,使exports文件生效
# exportfs -ra

参考资料

1. Linux NFS文件共享

2. NFS Server 端的设定

3. nfs原理及安装配置 

4. Configuring NFS export

5. Linux中NFS服务器的配置(/etc/export)

6. Linux/centos上如何配置管理NFS服务器?

7. /etc/exports 设定档的语法与参数

8. RHEL7上配置NFS服务原文

9. NFS文件服务器

 
https://cshihong.github.io/2018/10/16/NFS%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%90%AD%E5%BB%BA%E4%B8%8E%E9%85%8D%E7%BD%AE/
posted @ 2023-07-20 16:46  苏格拉底的落泪  阅读(337)  评论(0编辑  收藏  举报