【nfs-ganesha】通过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

设置共享为读写

root_squash

当源计算机(NFS客户端)当前用户是root时,将被映射为目标计算机(NFS服务器)的匿名用户

no_root_squash

当源计算机(NFS客户端)当前用户是root时,将被映射为目标计算机(NFS服务器)的root用户

all_squash

将所有用户映射为目标计算机(NFS服务器)的匿名用户,NFS缺省选项

anonuid

设置匿名用户的UID

anongid

设置匿名用户的GID

sync

保持数据同步,同时将数据写入内存和硬盘,缺省选项

async

先将数据保存在内存,然后写入硬盘,效率更高,但可能造成数据丢失

secure

NFS客户端必须使用NFS保留端口(1024以下的端口),缺省选项

insecure

允许NFS客户端不使用保留端口(1024以下的端口)

wdelay

如果NFS服务器怀疑有另一个相关的写请求正在处理或马上就要达到,NFS服务器将延迟提交写请求到磁盘,这就允许使用一个操作提交多个写请求到磁盘,可以改善性能,缺省选项

nowdelay

设置了async时该选项无效,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服务原文

posted @ 2023-07-20 16:46  苏格拉底的落泪  阅读(223)  评论(0编辑  收藏  举报