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. ArcMap基于Oracle出现sde.instances_util.check_instance_table_conflicts:: ORA-00942:表或视图不存在/table or view doesnot exist解决思路

    SDE环境:Oracle12C+ArcMap10.7+WinServer2012 出现问题情况: 1.SDE可以连接正常打开,但就是无法新建要素.导入要素等: 1)在根目录新建或导入要素,弹出提示: ...

  2. 第四周总结和实验二Java简单类与对象

    实验目的 掌握类的定义,熟悉属性.构造函数.方法的使用,掌握用类作为类型声明变量和方法返回值: 理解类和对象的区别,掌握构造函数的使用,熟悉通过对象名引用实列的方法和属性: 理解static修饰对类. ...

  3. ZABBIX 忘记登录密码

    ZABBIX 忘记登录密码 摘要 有些童鞋会忘记zabbix的登陆密码,今天给大家写一篇找回登陆密码~       ZABBIX 忘记登录密码 zabbix 刚刚在群里吹牛逼,由于账号比较多,脑子容易 ...

  4. spark复习总结03

    1.DataFrame的创建方式 1.1 通过加载外部文件创建 //通过sqlContext读取json文件创建DataFrame DataFrame dataFrame=sqlContext.rea ...

  5. Python之Tab键自动补全

    首先备份一下Tab键自动补全代码: # python start file import sys import readline import rlcompleter import atexit im ...

  6. CSS中的块级元素和行内元素

    根据CSS规范的规定,每一个网页元素都有一个display属性,用于确定该元素的类型,每一个元素都有默认的display属性值,比如div元素,它的默认display属性值为“block”,成为“块级 ...

  7. redis Sorted set 相关命令

  8. k8s容器-运维管理篇

    二. 运维和管理 维护参考网址 https://jimmysong.io/kubernetes-handbook/practice/install-kubernetes-on-centos.html ...

  9. Linux服务器上创建日志服务器和FTP服务器

    参考地址: http://www.111cn.net/sys/CentOS/81133.htm https://www.cnblogs.com/laoxiajiadeyun/p/9943742.htm ...

  10. spring+springmvc+mybatis框架搭建

    一.开发前准备 1)ecplise4.11.0 百度网盘:https://pan.baidu.com/s/1wO9_I52lp0mYNeNTdnj80w 提取码:booa 2)jdk1.6.0_45  ...