NFS小结

NFS

1、依赖关系

需要内核编译了NFS模块
portmap 软件包,nfs服务启动依赖rpc服务,该服务通过portmap安装

2、安装nfs-utils软件包

# yum install nfs-utils

3、启动nfs服务

nfs服务启动依赖于RPC服务,因此在启动nfs服务前必须启动portmap

# service portmap start
# service nfs start

nfs服务会生成以下三个进程:
nfsd:nfs服务守护进程,监听2049/tcp和2049/udp
rpc.mountd:处理客户端的挂载请求并初始化,基于IP认证是否允许挂载,监听端口半随机由RPC服务分配
rpc.quotad:nfs配额相关,监听端口半随机由RPC服务分配

另外还有两个进程由nfslock脚本控制:
rpc.statd:通知客户端持有锁文件
lockd:处理客户端的锁请求

4、编辑配置文件

nfs服务有两个配置文件:
/etc/sysconfig/nfs  //定义各个服务监听的端口,这里可以指定rpc.mountd等监听半随机端口的进程监听指定的固定端口

/etc/exports //定义共享目录,其格式如下:
    共享目录  客户端(共享选项)
共享目录:为本机目录的绝对路径,如果路径中包含空格用“”引起来
客户端:有以下几种表示方法:
   FQND:完全合格域名
   *.example.com:某个域
   net:某个网段,例如:172.16.0.0/16
   host:某单个主机,例如:172.16.100.1
共享选项:有以下几种选项:
   ro:只读共享,默认选项
   rw:读写共享
   async:异步写入,默认选项
   sync:同步写入
   root_squash:当客户端使用root访问时映射为匿名用户,默认选项
   no_root_squash:与上相反,非常不安全,不建议启用
   all_squash:客户端的所有用户访问时都映射为匿名用户

5、相关命令

exportfs命令:
    exportfs -rav   //重新导出所有共享文件
    exportfs -uav   //取消导出所有共享文件
showmount命令:
    -a :在服务端使用,查看本地主机目录被谁挂载了
    -d :在服务器端使用,仅显示哪个目录被挂载了
    -e :在客户端使用跟上server IP,查看共享内容
客户端挂载命令:
    mount -t nfs 172.16.100.1:/data /mnt

6、实例演示

1>在服务端192.168.56.102使用NFS共享/mysql/data目录,只有192.168.56.103才能访问,且只有student用户(uid为500)才能对该目录进行写操作。

服务端操作:
# vim /etc/exports  //编辑该文件添加如下行

/mysql/data 192.168.56.103(rw)

# chmod 755 /mysql/data  //设置该目录权限为只有属主可以写
# chown 500 /mysql/data  //设置uid为500的用户为该目录属主
# exportfs -rav //导出共享文件

客户端操作:
# mount -t nfs 192.168.56.102:/mysql/data /mnt //挂载至/mnt

2>在服务端192.168.56.102使用NFS共享/mysql/data目录,只有192.168.56.0/24网段可以访问权限为只读,只有192.168.56.103可以写。

服务端操作:
# vim /etc/exports   //编译该文件添加如下行

/mysql/data 192.168.56.103(rw)
/mysql/data 192.168.56.0/24(ro)

# chmod o+w /mysql/data   //设置其他用户可写
# exportfs -rav  //重新导出共享文件

客户端操作:
# mount -t nfs 192.168.0.102:/mysql/data /mnt //挂载至/mnt

你可能感兴趣的:(nfs)