附录一:NFS服务器的配置
### --- NFS服务器的配置
~~~ NFS服务器的配置相对比较简单,只需要在相应的配置文件中进行设置,
~~~ 然后启动NFS服务器即可。
~~~ NFS服务的配置文件为/etc/exports,这个文件是NFS的主要配置文件,
~~~ 不过系统并没有默认值,所以这个文件不一定存在,可能要使用vim手动建立,
~~~ 然后在文件里面写入配置内容。
~~~ /etc/exports 文件内容格式:
### --- 共享目录 客户端1(访问权限,用户映射,其他) 客户端2 (访问权限,用户映射,其他)
~~~ 共享目录:共享目录是指NFS服务器共享给客户机使用过的目录
~~~ 客户端:客户端时指网络中可以访问这个NFS共享目录的计算机。
### --- 客户端常用的指定方式:
~~~ 指定IP地址的主机:192.168.0.200
~~~ 指定子网中所有主机:192.168.88.0
~~~ 指定域名的主机:www.atyanqi.com
~~~ 指定域中的所有主机:*.atyanqi.com
~~~ 所有主机:*
### --- 设置输出目录的访问权限,用户映射等
~~~ 访问权限选项:
~~~ 设置输出目录只读:ro
~~~ 设置输出目录读写:rw
### --- 用户映射选项:
~~~ root_squash:将root用户的访问映射为匿名(nfsnobody)用户UID和GID:(默认生效)
~~~ no_root_squash:保留管理员权限,以服务器管理员的权限管理
~~~ all_squash:将远程访问的用户及所属组都映射为指定UID,GID的匿名用户。
~~~ anonuid=xxx:将远程访问的所有用户都映射为指定UID的匿名用户:
~~~ anongid=xxx:将远程访问的所有组都映射为指定GID匿名组账号:
### --- 其他选项:
~~~ sync:将数据同步写入内存缓冲区域磁盘中,效率低,但可以保证数据的一致性(同步)
~~~ async:将数据先保存在内存缓冲区中,必要时才写入磁盘(异步)
附录二:NFS服务器的启动与停止:
### --- 启动NFS服务器
~~~ 为了使NFS服务器能正常工作,需要启动rpcbind和nfs两个服务,
~~~ 并且rpcbing一定要先于nfs启动。
service rpcbind start
service nfs start
### --- 查询NFS服务器状态
service rpcbind status
service nfs status
### --- 停止NFS服务器
~~~ 要停止NFS运行时,需要先停止nfs服务再停止rpcbind服务,
~~~ 对于系统中有其他服务(如NIS)需要使用时,不需要停止rpcbind服务
service nfs stop
service rpcbind stop
### --- 设置NFS服务器的自动启动状态
~~~ 设置rpcbind和nfs服务在系统运行级别2345自动启动
chkconfig --level 2345 rpcbind on
chkconfig --level 2345 nfs on
### --- 查看RPC服务器开启了那些端口
rpcinfo -p localhost
附录三:实验相关实例:
### --- 将NFS服务器的/home/zhangsan共享给192.168.115.0网段,rw权限
vi /etc/exports
/home/zhangsan 192.168.115.0(rw)
### --- 重启rpcbind 和nfs服务
service recbind restart
service nfs restart
exports
### --- 服务器端查看nfs共享状态
showmount -e 本机IP
~~~ 查看自己共享的服务
### --- 客户端查看NFS共享状态
showmount -e NFS服务器IP
### --- 客户端挂载NFS服务器共享目录
~~~ 命令格式:mount NFS服务器IP:共享目录 本地挂载点目录
mount 192.168.115.10:/home/zhangsan/
mount |grep nfs
mount -o vers=3 共享本地 // 指定挂载使用nfs V3版本(避免同步延迟)
~~~ 验证客户端和nfs服务器端文件是否一致:
cd /media/zhangsan
~~~ 修改服务器端响应权限,不然客户端无法正常访问和使用
### --- nfs共享权限和访问控制
~~~ 6.1、客户端root用户
~~~ 使用客户端和root身份在nfs服务器上创建文件,文件的所有者和所属组是nfsnobody
### --- 客户端普通用户
~~~ 使用客户端的普通用户身份在nfs服务器上创建文件,所有者和所属组是nobody或普通用户。
~~~ 如果明确设定了普通用户的映射用户身份,那么此时客户端用户的身份转换为指定映射用户
~~~ 如果NFS server上面有同名用户,那么此时客户端登录账户的身份转换为NFS server上面的同名用户。
### --- 卸载和自动挂载:
~~~ 卸载:
### --- 卸载客户端的挂载目录
umount 挂载点
### --- 停止服务器端的共享
exportfs -au
~~~ 自动挂载:/etc/fstab
~~~ 格式:<server>:<remote/export></local/directory>nfs<options> 0 0
~~~ #192.168.115.10:/home/zhangsan /media/zhangsan nfs defaults 0 0
~~~ mount -a
### --- 相关命令
~~~ exportfs命令
~~~ 如果我们在启动了NFS之后又修改了/etc/exports,是不是还要重新启动nfs呢?
~~~ 这个时候我们就可以用exportfs命令来是改动立刻生效,该命令格式如下:
~~~ 格式:exportfs[-aruv]
~~~ -a:全部挂载或卸载/etc/exports中的内容
~~~ -r:重新读取/etc/exports中的信息,并同步更新/etc/exports /var/lib/nfs/xtab
~~~ -u:卸载单一目录(和-a一起使用为卸载所有/etc/exports文件中的目录
~~~ -v:在export的时候,将详细的信息输出到屏幕上。
### --- 具体例子:
~~~ exportfs -au:卸载所有共享目录
~~~ exportfs -ra:重新共享所有目录并输出详细信息
### --- rpcinfo命令
~~~ 利用rpcinfo -p 可以查看出RPC开启的端口所可提供的程序有哪些
~~~ 其中NFS开启的是2049,portmapper(rpcbind)开启的是111,其余则是rpc开启的。