1.1.8 NFS问题总结

1.问:使用showmount -e 127.0.0.1后报clnt_create: RPC: Program not registered错误

答:顺序不对,重启nfs服务 

portmap是Centos 5.X的服务    rpcbind是CentOS 6.x的服务

/etc/init.d/nfs stop

/etc/init.d/rpcbind stop

/etc/init.d/portmap stop

/etc/init.d/rpcbind start

/etc/init.d/nfs start

2.问:自启动的命令可以写入/etc/fstab中么?

答: 不能,因为/etc/fstab先启动的,而/etc/rc.local中的网络服务怎么可以早于网卡的启动 

3.问:写入不了文件?

答:1. NFS的服务器本身没给权限

      2. 文件的属组有问题

4.问:NFS客户端的排错思路

答: 1.确认NFS服务器配置是否正确    

showmount -e localhost

rpcinfo -p localhost

     2.确认服务器端是否可以自己挂载自己

mount -t nfs 192.168.125.129:/data /mnt

    3.确认客户端的showmout是否OK

showmount -e localhost   -->是否防火墙挡住了

      3-1:ping 链路是否通畅

      3-2:telnet 192.168.25.129 22   -->检查

1.1.9. NFS挂载深入学习

1.服务端 ->cat /var/lib/nfs/etab 查看NFS服务的参数细节

2.客户端 ->cat /proc/mounts 查看挂载的参数细节

soft: 系统超时后,默认不再连接服务器

hard(默认):系统超时后,会一直尝试连接服务器,期间无法执行umount,kill等命令。

intr:hard 超时后,有intr后,可以终止连接,防止锁死

rsize:读取区块的大小

wsize:写入区块的大小

proto=tcp: tcp是可靠的协议,数据没收到后会在继续发送

udp是不可靠协议,数据丢失后就不在发送

推荐使用默认

特殊情况:  mount -t nfs -o bg,hard,intr,rsize=104372,wsize=104372,proto=tcp 192.168.25.129:/data /mnt

有的参数只有在fstab中生效

    fstab默认default: rw suid,dev,exec,auto ,nouser,async

注:

   man nfs 可以查看mount的信息

3.mount -o 参数列表:sync仅适用(ext2,ext3等)

async:所涉及的文件系统的I/O操作都是异步处理,不会写的磁盘,会写进内存,提高新能,不推荐

    sync:数据同步

    default: rw suid,dev,exec,auto ,nouser,async

    rw

    nosuid:不允许设置suid

    nouser:不允许普通用户挂载文件系统   --》系统默认

    noatime:不更新文件系统上inode的访问时间,高并发开发环境

    noexec:不执行任何二进制文件

    nodiratime:不更新文件系统上directory inode的访问时间

    remount:尝试重新挂载一个已经挂载了的文件设备

     mount -o remount rw  /     -->文件系统只读的时候需要处理

注:

man nfs 可以查看mount的信息

1.1.10. NFS客户端mount挂载优化

0. man nfs  查看mount的更多参数

1.安全挂载   -->安全跟性能相悖,以业务为准

mount -t nfs -o nosuid,noexex,nodev,rw 192.168.25.129:/data /mnt

2.禁止更新目录以及文件时间戳

mount -t nfs -o noatime,nodiratime 192.168.25.129:/data /mnt

3.安全&优化的挂载方式

   mount -t nfs -o nosuid,noexec,noatime,nodev,nodiratime,intr,rsize=65535,wsize=65535 192.168.25.129:/data /mnt

4.默认挂载方式

mount -t nfs 192.168.25.129:/data /mnt

5.如果本地挂载

mount /dev/sdb1 /mnt -o default,async,noatime