NFS安装配置

安装nfs

1
yum install -y nfs-utils rpcbind

创建共享目录

将文件所有者指定为nfsnobody。nfsnobody用户在安装nfs时会自动创建。

如果不指定共享用户,则nfs系统在分配权限时会以用户uid为主,客户端如果用root账户会在服务器被自动降级至nfsnobody。

1
2
mkdir  -p /data/nfs
chown -R nfsnobody:nfsnobody /data/nfs

配置

server配置文件

格式:共享目录 指定共享对象(共享参数)

例: /data 192.168.1.0/24(rw,sync)

将 /data 共享给192.168.1.x ,客户端权限rw

其中共享对象可以用通配符,比如 * 代表所有地址。

配置参数

  • rw: 读写

  • ro :只读

  • sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性;

  • async:是大数据时使用,是先写到缓存区,必要时再写到磁盘里。

  • all_squash:所有访问用户都映射为匿名用户或用户组;
    no_all_squash(默认):访问用户先与本机用户匹配,匹配失败后再映射为匿名用户或用户组;

  • root_squash(默认):将来访的root用户映射为匿名用户或用户组;
    no_root_squash:来访的root用户保持root帐号权限;

  • wdelay(默认):检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率;
    no_wdelay:若有写操作则立即执行,应与sync配合使用;

  • subtree_check :若输出目录是一个子目录,则nfs服务器将检查其父目录的权限;
    no_subtree_check(默认):即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率;

1
2
[root@localhost ~]# cat /etc/exports
/data/nfs 10.10.16.0/22(rw)

启动服务

注意先启动rpcbind再启动nfs

1
2
service rpcbind start
service nfs start

查询nfs挂载

1
showmount  -e

查看共享目录参数

1
cat /var/lib/nfs/etab

客户端

1
2
3
4
5
6
7
8
9
10
11
[root@localhost nova]# mount -t nfs 10.10.16.182:/data/nfs /nfs
[root@localhost nova]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 59G 0 59G 0% /dev
tmpfs 59G 0 59G 0% /dev/shm
tmpfs 59G 4.1G 55G 7% /run
tmpfs 59G 0 59G 0% /sys/fs/cgroup
/dev/sda3 246G 5.9G 240G 3% /
/dev/sda1 1014M 142M 872M 15% /boot
tmpfs 12G 0 12G 0% /run/user/0
10.10.16.182:/data/nfs 1.8T 76M 1.7T 1% /nfs

客户端挂载优化参数

  • noatime 不更新文件的inode访问时间戳,文件很多时此参数可以提高效率。

  • nodiratime 不更新目录的访问时间戳,同上。

  • nosuid 关闭挂载目录的suid

  • noexec 不允许执行二进制文件。shell脚本无法直接使用,但是用sh xxx.sh依然可以调用。

  • rsize 系统每次读取的最大字节,centos6.5默认131072,此参数过小会影响系统的I/O效率.

  • wsize 系统每次写入的最大字节,同上

  • defaults 使用默认的选项。默认选项为rw、suid、dev、exec、anto nouser与async。

  • 例: mount -o nosuid noexec noatime -t nfs 192.168.1.240:/data/nfs /mnt

windows客户端配置

1575965111625

cmd里直接输入 mount 10.10.16.182:/data/nfs z:

参考:

https://www.cnblogs.com/sunny18/p/8287934.html