参数  说明
ro  只读访问
rw  读写访问
sync    所有数据在请求时写入共享
async   nfs在写入数据前可以响应请求
secure  nfs通过1024以下的安全TCP/IP端口发送
insecure    nfs通过1024以上的端口发送
wdelay  如果多个用户要写入nfs目录,则归组写入(默认)
no_wdelay   如果多个用户要写入nfs目录,则立即写入,当使用async时,无需此设置
hide    在nfs共享目录中不共享其子目录
no_hide 共享nfs目录的子目录
subtree_check   如果共享/usr/bin之类的子目录时,强制nfs检查父目录的权限(默认)
no_subtree_check    不检查父目录权限
all_squash  共享文件的UID和GID映射匿名用户anonymous,适合公用目录
no_all_squash   保留共享文件的UID和GID(默认)
root_squash root用户的所有请求映射成如anonymous用户一样的权限(默认)
no_root_squash  root用户具有根目录的完全管理访问权限
anonuid=xxx 指定nfs服务器/etc/passwd文件中匿名用户的UID
anongid=xxx 指定nfs服务器/etc/passwd文件中匿名用户的GID

软件包
yum install -y nfs-utils-* portmap-*

nfs-utils-1.0.9-24.el5——nfs 服务的主程序包,它提供rpc.nfsd 及rpc.mountd 这两个
daemons 以及相关的说明文件。
portmap-4.0-65.2.2.1——rpc 主程序,记录服务的端口映射信息。

NFS 的常用目录
1、/etc/exports 这个文件是NFS 的主要配置文件,默认这个文件时空的哦,需要自己手动
添加。
2、/usr/sbin/exportfs 这是维护NFS 共享资源的命令,用的不是很多,我们一般在配置文
件里面定义。
3、/usr/sbin/showmount 命令主要用在客户端,可以用来查看NFS 共享出来的目录资源。
4、/var/lib/nfs/etab(xtab)其中的etab 记录了NFS 分享出来的目录的完整权限设定值,
另一个是xtab,记录曾经连接到此NFS 主机的相关client 数据。
这个配置文件只要分为三列
第一列------写入你需要共享的目录路径
第二列------写入客户端描述,也就是哪些客户端可以使用你的服务器
第三列------是紧挨着第二列的,内容是共享的权限(rw ro sync)
exports主机表现:ip,域名,网段所有主机,域名下所有主机,所有主机(*)

1、NFS 对client 的表达方式要求不是很严格,常用的表达方式都可以识别,例如:IP 就直
接输入IP 地址192.168.0.0 网段:192.168.0.0/24 ;192.168.0.0/255.255.255.0
2、如果表示所有的IP 都能访问,就直接输入" * " .
3、sync:同步写入资料到内存与硬盘中async:资料会暂存到内存中,而非直接写入硬盘
4、这两个那个比较好?
如果你是重要的小文件,当然是sync,同步写入,避免文件丢失
如果你是很大的数据,建议不要同步写入
5、rw:可读可写
6、ro:只读,这个很简单
重启nsf 服务,由于nfs 是基于portmap 进程的,所有先启动它然后启动nfs.

showmount 指令看看是否共享成功
showmount -e ip地址
也可以使用showmount -e 这是默认查看自己共享的服务,前提是要DNS 能解析自己,不然容易报错

nfs 的端口是2049 ,但是它基于portmap,portmap 的端口是111
编辑NFS 的端口配置文件
vim /etc/sysconfig/nfs

配置nfs 固定端口
vim /etc/sysconfig/nfs
自定义以下端口,然而不能和其他端口冲突
RQUOTAD_PORT=5001
LOCKD_TCPPORT=5002
LOCKD_UDPPORT=5002
MOUNTD_PORT=5003
STATD_PORT=5004 就是这5 个参数
但是LOCKD_TCPPORT= LOCKD_UDPPORT= 可以使用一个端口号
定义好了,重新启动服务器就可以了
启动portmap 和nfs 服务
由于NFS 服务是基于portmap 服务的,所以我们需要先启动portmap 服务:service portmap
restart ,然后service nfs restart
使用rpcinfo 命令检测nfs 是否使用了固定端口
rpcinfo -p

检测nfs 的rpc 注册状态
rpcinfo -u 主机名或IP 地址进程
rpcinfo -u 192.168.0.2 nfs

查询服务器的状态
为了保证NFS 服务器能够正常工作,系统中需要运行portmap 和nfs 两个服务程序

service portmap status

service nfs status

启动服务器

service portmap start

service nfs start

停止服务器运行

service nfs stop

使用 Linux客户端访问
挂载使用mount 命令手动挂载,也可以使用autofs 挂载
如果使用fstab 挂载的话,要注意了,由于系统启动读取fstab 在启动rc.d 之前。所以那个时
候nfs 还没有启动,所以会挂在失败,可以在rc.local 里面写入mount -a 来在最后从新挂载
fstab
先手动挂载试试
挂载及卸载NFS 文件系统
mount -t nfs NFS 服务器IP 地址或主机名:共享名本地挂载点
mount -t nfs 192.168.0.2:/etc /mnt
挂载成功后没有任何提示,如果挂载失败的时候会有提示。
也可以用mount 命令来查看是否挂载成功
启动自动挂载nfs 文件系统
vim /etc/fstab

命令介绍:
重新输出共享目录
使nfs 服务器重新读取exports 文件中的设置

exportfs -rv

停止输出所有目录
停止当前主机中NFS 服务器的所有目录输出

exportfs -auv

输出(启用)所有目录
输出当前主机中NFS 服务器的所有共享目录

showmount -e

显示NFS 服务器的输出目录列表
显示当前主机中NFS 服务器的输出列表

showmount -e

显示指定NFS 服务器中的共享目录列表

showmount -e 192.168.152.131

显示NFS 服务器中被挂载的共享目录
显示当前主机NFS 服务器中已经被NFS 客户机挂载使用的共享目录

showmount -d

显示NFS 服务器的客户机与被挂载的目录
显示当前主机中NFS 服务器的客户机信息

showmount -a

显示指定主机中NFS 服务器的客户机信息

showmount -a 192.168.152.131

NFS相关安全参数
rw: 可写权限
ro: 只读取权限
no_root_squash: 如果登入共享目录的用户是 root,则对于这个共享目录而言,它具
有 root权限,不安全!
root_squash: ..........如果是 root登陆,自动变成匿名用户.
all_squash: 不论登陆的用户是谁,都自动变成匿名用户.相当于 nobody

使用 Windowss客户端访问 Linux的 NFS
Omni Lite 是比较常用的Windows 操作系统中运行的NFS 客户端软件
1、启动NFS Client 程序
2、设置NFS 服务器主机记录
3、定义NFS 驱动器的连接
4、挂载NFS 驱动器
5、使用NFS 网络驱动器
6、卸载NFS 驱动器
7、启动NFS Client 程序

5 对 “NFS配置”的想法;

  1. nfs挂载错误wrong fs type, bad option, bad superblock
    apt-get install nfs-common
    或者
    yum install nfs-utils
    请不要将nfs路径写在fstab中,以防止启动失败

  2. 报错提示:
    root@wheezy-node2:/# mount -o nfsvers=3 10.0.1.84:/home/share /mnt
    mount.nfs: Stale NFS file handle
    错误原因是客户端之前挂载的mnt目录在没有卸载的情况下,服务器侧把这个目录移除了,才会出现这样的错误提示。解决的办法就是在客户端umount一下,在重新挂载就好了。

    root@wheezy-node2:/# umount /mnt
    root@wheezy-node2:/# mount -o nfsvers=3 10.0.1.84:/home/share /mnt
    root@wheezy-node2:/# ls -l

  3. 运行fuser -mk /mnt/data 杀掉访问/mnt/data所有进程。
    /mnt/data: Stale NFS file handle

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

Captcha Code