Network File System (NFS) is a file system protocol that allows client machines to access network attached filesystems. The newest version is version 4.

<A> Kernel requirements:

  NFS server support is not required for NFS clients, and NFS client support is not required for NFS servers. Dnotify support is only required for NFSv4. NFSv3 is only required for compatibility with legacy clients e.g.

File systems --->
[*
] Dnotify support
[*] Network File Systems --->
<*> NFS client support
<*> NFS client support for NFS version
<*> NFS client support for NFS version
[*] NFS client support for NFSv4.
<*> NFS server support
[*] NFS server support for NFS version
[*] NFS server support for NFS version
[*] NFSv4. server support for Parallel NFS (pNFS)

<B> Install "net-fs/nfs-utils"(Gentoo) or "nfs-utils.x86_64"(RedHat)

  After installation, set the "rpcbind" and "nfs" service start with your OS:

root # rc-update add nfs default && rc-update add rpcbind default
OR
root # systemctl enable nfs.service && systemctl enable rpcbind.service

<C> Virtual root

  The filesystems to be exported must be made available under a single directory. This directory is known as the virtual root directory, and it is required for NFSv4:

root #mkdir /export
#The dir_name "/export" can be changed it to any other.

  Create directories in the virtual root directory for the filesystems that are to be exported:

root #mkdir /export/distfiles

  Write to "/etc/fstab"

/PATH/TO/distfiles    /export/distfiles    none    bind     

<D> Exports

  The filesystems to be made accessible for clients are specified in /etc/exports. This file consists of the directories to be exported, the clients allowed to access those directories, and a list options for each client:

/export          10.1.0.0/(sync,rw,insecure,no_subtree_check,crossmnt,fsid=root)
/export/distfiles *(sync,ro,insecure,no_subtree_check)

  The following table briefly describes the client options used in the configuration above:

 insecure    The server will require that client requests originate on unprivileged ports (those above ). This option is required when mounting exported directories from OS X. The default is to use privileged ports.
rw The client will have read and write access to the exported directory. The default is to allow read-only access.
sync The server must wait until filesystem changes are committed to storage before responding to further client requests. This is the default.
no_subtree_check The server will not verify the requests from clients(wether it's in the appropriate filesystem or has the correct permissions). This is the default in NFSv4.
crossmnt The server will reveal filesystems that are mounted under the virtual root directory that would otherwise be hidden when a client mounts the virtual root directory.
fsid=root This option is required to uniquely identify the virtual root directory.

  If changes are made to /etc/exports after the NFS server has started, execute the following command:

root #exportfs -rv
OR
root #/etc/init.d/nfs reload
OR
root #systemctl reload nfs.service

<E> Daemon

  The NFS daemon is configured via /etc/conf.d/nfs:

# /etc/conf.d/nfs
# Options to pass to rpc.nfsd
OPTS_RPC_NFSD="8 -N 2 -V 3 -V 4 -p 8888"

  The option 8 is the number of NFS server threads to start.The option -N 2 disables NFS version 2, while options -V 3 and -V 4 enable NFS versions 3 and 4, The option -p 8888 change listening port from the default 2049 to 8888.

<F> Client Service

  To be able to mount exported directories, start the NFS client:

root # service rpcbind start
OR
root # systemctl start rpcbind

<G> Mount on Client

root # mount [-t nfs] 113.114.115.116:/ /mnt    #"-t nfs" argument is not necessary

<H>Troubeshooting

  The system may become unresponsive during shutdown when the NFS client attempts to unmount exported directories after udev has stopped. To prevent this, a local.d script(Gentoo) can be used to forcibly unmount the exported directories during shutdown:

#write in "/etc/local.d/NFS_umount.stop"
/bin/umount -a -f -t nfs

  Remember to add "x" permission:

chmod +x NFS_umount.stop

  Verify which NFS daemons are running:

Gentoo > rpcinfo -p
program vers proto port service
tcp portmapper
udp portmapper
udp status
tcp status
udp mountd
tcp mountd
tcp nfs
tcp nfs
udp nfs
udp nfs
udp nlockmgr

  List the exported directories from the NFS server:

Gentoo > exportfs -v
/export 10.1.7.0/(rw,wdelay,crossmnt,insecure,root_squash,no_subtree_check,fsid=,sec=sys,rw,insecure,root_squash,no_all_squash)

  List the established connections:

Gentoo > ss -tuanp | grep
udp UNCONN *: *:*
udp UNCONN ::: :::*
tcp LISTEN *: *:*
tcp LISTEN ::: :::*

专题:NFSv4 file server的更多相关文章

  1. How to setup vsftpd FTP file Server on Redhat 7 Linux

    Forward from: https://linuxconfig.org/how-to-setup-vsftpd-ftp-file-server-on-redhat-7-linux How to s ...

  2. java.lang.ClassFormatError: Illegal UTF8 string in constant pool in class file Server/Request

    Linux服务器上,将本地编译好的文件上传后,Tomcat启动时报错: Exception in thread "Thread-2" java.lang.ClassFormatEr ...

  3. Creating a simple static file server with Rewrite--reference

    Today, I’d like to take a quick moment to demonstrate how to make a simple file server using Rewrite ...

  4. Http File Server小工具

    一般情况下,在做一些测试(比如下载服务)的时候需要提供一个http文件下载服务. 下面这个轻量级的工具HFS可以在本地提供http服务: 官网地址传送门:Http File Server

  5. deno学习四 docker 运行官方的一个http file server

    github 上已经有人搞了一个deno 的docker 镜像,是基于源码编译的,挺好的 所以结合官方的http server demo 使用docker 运行 环境准备 docker-compose ...

  6. [.NET] 使用HttpClient操作HFS (HTTP File Server)

    前言 本篇文章介绍如何使用HttpClient操作HFS (HTTP File Server),为自己留个纪录也希望能帮助到有需要的开发人员.关于HTTP File Server的介绍.安装.设定,可 ...

  7. HFS ~ Http File Server

    HFS ~ Http File Server官网:https://www.rejetto.com/hfs/ 官方下载地址:https://www.rejetto.com/hfs/hfs.exe

  8. flash as3 socket安全服务网关(socket policy file server)

    关键字: SecurityErrorEvent socket as3 flash有着自己的一套安全处理模式,在socket方面,我这样的菜鸟无法理解他的好处:一句话,不怀好意的人如果想用flash写一 ...

  9. GPO - File Server Management

    Creating disk space usage quotas: File Screening Generate Storage Report, including file edit audit. ...

随机推荐

  1. Apache2.2+mod_encoding解决URL中文编码问题

    我们经常在论坛上看到这样的求救贴: 为什么我看不了网站上中文文件名的文件?这时一定会有好心的大侠告诉说,到IE6的工具,Internet选项, 高级里,把"总是以UTF-8发送URL&quo ...

  2. vue 项目配置 element 出错

    解决方法: 把main.js文件中的 import 'element-ui/lib/theme-default/index.css' 改为 import 'element-ui/lib/theme-c ...

  3. javascript拷贝创建对象

    ​ /*拷贝创建对象*/ function hightExtend() { var key = 0, i = 0, len = arguments.length; target = null; if ...

  4. 11.Jmeter 快速入门教程 -- jmeter事务控制器

    你肯定知道, jmeter是一个跨系统平台的性能测试工具, 比如他可以在linux,freebsd,windows,solaris 等等各种系统上可以运行. 我可以说, 事务 transaction ...

  5. filter 在CSS用的效果

    滤镜说明: Alpha:设置透明层次 blur:创建高速度移动效果,即模糊效果 Chroma:制作专用颜色透明 DropShadow:创建对象的固定影子 FlipH:创建水平镜像图片 FlipV:创建 ...

  6. 【Linux】- 同步网络时间

    转自:Linux同步网络时间 Linux服务器运行久时,系统时间就会存在一定的误差,一般情况下可以使用date命令进行时间设置,但在做数据库集群分片等操作时对多台机器的时间差是有要求的,此时就需要使用 ...

  7. 一步一步学Vue(六)https://www.cnblogs.com/Johnzhang/p/7242640.html

    一步一步学Vue(六):https://www.cnblogs.com/Johnzhang/p/7237065.html  路由 一步一步学Vue(七):https://www.cnblogs.com ...

  8. Kotlin 和 Flutter 对于开发者究竟意味着什么?

    更多阿里P7架构进阶学习视频:阿里P7Android架构进阶学习视频回放近些年来,编程语言流行度的变化其实不大,在 TIOBE 编程语言排行榜上,Java.C.C++ 固若金山,也就只有 Python ...

  9. Zabbix当内存剩余不足10%的时候触发报警

    zabbix默认的剩余内存报警: Average Lack of available memory on server {HOST.NAME}{Template OS Linux:vm.memory. ...

  10. ERROR 1290 (HY000): Unknown error 1290

    如有需要可以加我Q群[308742428]大家一起讨论技术,提供有偿服务. 后面会不定时为大家更新文章,敬请期待. 喜欢的朋友可以关注下. 记录一次在连接数据库报的一个错误信息: 原因是MySQL正使 ...