NFS服务在计算机系统中的作用


  对于NFS,大家可能觉得比较陌生,不知道它所在的文件系统中到底是用来干什么的,下面我们就详细地介绍一下。

  nfs 服务是基于 rpc 来实现的一个方便的共享文件系统, linux 和 windows 之间共享的文件非常的便利。 linux 中 nfs 已经被完全整合进了内核,只要在编译内核的时候选择编译文件系统,那么默认就支持 nfs

  nfs 主服务进程使用的端口是 2049 udp 和 2049 tcp 其他进程端口都是半随机的基于 portmap 建议在 /etc/sysconfig/nf 将随机端口定义成静态端口,使端口不混乱,并且利于配置 iptables 防火墙策略  

  nfs 装置包是 nfs-utils 基于 uid 识别用户,配置文件 /etc/export 和 /etc/sysconfig/nf

  nfs 多进程的

  nfsd 主服务进程 工作于内核中的只能以 root 用户来运行

  1 rpc.mountd 基于 rpc 实现的挂载监控的进程

  2 rpc.srard 用户建立的连接若是断掉,负责通知服务器重新建立 4 连接

  3 kd 处置客户端请求文件锁,防止多用户同时对一个文件写入造成的抵触

  4 rpc.rquotad  RPC 辅助进程,默认监察随机端口

  若是想让系统在启动时自动挂载 NFS 服务器上的输出目录,就编辑 /etc/fstab  加入如下格式

  NFS 服务器名或 IP 地址:输出目录 外地挂载目录 nf default 0 0。实现 nfs 服务 只需要编译 /etc/export , 该文件默认为空的每一行表示你共享的一个文件系统。

  添加格式:

  共享文件目录  允许访问的主机(访问权限)

  注:被导出的目录为独立的文件系统,若不是则在权限中定义 subtrww_check 使更安全,如果共享文件中有空格用 “ 括起来,

  定义允许访问的主机可以是 IP 网段, IP NIS 域( @NIS 域名)并且可以通配)

  下面介绍几种常用的访问权限

  ro 可读

  rw 可读可写

  async 异步写入 先将数据保存在内存缓存区中,必要时才写入磁盘

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

  用户映射选项

  root_squash 如果是 root 用户来挂载的话,权限太大,就把 root 用户映射成来宾账号(默认设置)

  no_root_squash  root 访问时,不把 root 映射成来宾账号 该设置很危险

  all_squash  将远程访问的所有用户和所属用户组都映射成匿名用户或用户组

  no_all_squash  不将远程访问的所以用户和所属拥护组映射成匿名 默认设置)

  anonuid=xxx  将远程访问的所以用户都映射成匿名用户,并指定为本地用户( UID=xxx

  anongid=xxx  将远程访问的所以用户组都映射成匿名用户组账户,并指定为本地用户组( GID=xxx

  其他常用项

  secure    限制客户端只能从小于 1024 TCP/IP 端口连接 NFS 服务器(默认设置)

  insecur 允许客户端从大于 1024 TCP/IP 端口连接 NFS 服务器

  subtree_check 若输出目录是一个子目录,则 NFS 将检查其父目录的权限(默认设置)

  no_subtree_check 即使输出的目录是一个子目录, NFS 也不检查其父目录的权限

  每当修改了 /etc/export 文件后,不需要重启 NFS 服务,使用 exportfs 就可以使设置立即生效

  exportfs 命令就是用来维护 NFS 服务的输出目录列表的

  exportfs  -r 重新读取 /etc/export 文件设置,并使设置立即生效

  exportf – ra 重新导出全部

  exportf – v  将当前系统导出项显示在屏幕上

  exportf – au 关闭服务

  exportf – a 开启所有的全部导出

  showmount 命令检查 NFS 服务器上的共享信息

  showmount – e localhost 检查当前主机共享的文件系统 只在服务端执行

  showmount – a 检查所有被挂载信息 服务端执行)

  showmount – d 只显示被挂载目录

  showmount – e IP 检查该 IP 共享的信息(客户端)

  演示挂载过程

  1 # vim /etc/exports

  /var/ftp 192.168.0.71 rw sync  192.168.1.0/24 ro

  /var/pub        * ro

  2 #serv nf restart

  #servic portmap status    nfs 基于 portmap 所以确定 portmap 启动的

  portmap pid 3110 is running...

  #rnfo – p localhost  显示进去当前 rpc 里 portmap 默认选择的端口

  基于 rpc 提供服务

  #servic nf restart  重启 nfs 服务,或者 #exportf – r

  showmount – e localhost 检查当前主机共享的文件系统

  切换到 192.168.0.71

  #mount – t nf 192.168.0.71:/var/ftp /mnt

  #cd /mnt  l 检查  /var/ftp 下的文件是不是被挂在 /mnt 下了

  总结:

  以上的所有问题的代码还是很多的步骤都是详细的解释了关于我们大家平时会遇到的问题和所需要对策的解决方案全部都是这些了,仅供大家参考。