nfs:
Network File System
RPC:Remote Procedure Call
NFS: sun公司研发, 协议;
NFSv1,没有走出实验室
NFSv2(不安全), NFSv3,
NIS:Network Information Service
nfsd:2049/tcp 由nfs-utils 提供监听功能
安装nfs
客户端服务端都要安装
yum install nfs-utils
辅助类的服务:rpc (portmap)
rpc.mountd:认证;
rpc.lockd:加锁
rpc.statd:状态
nfs server:
安装:内核模块nfsd
用户空间的工具程序:nfs-utils
Unit File:
/usr/lib/systemd/system/nfs.service
配置文件:
/etc/exports, /etc/exports.d/*
管理共享的nfs文件系统:配置文件每一行定义一个共享文件系统
Each line contains an export point and a whitespace-separated list of clients allowed to mount the file system at that point.
man 5 exports 查看配置格式
导出格式
/PATH/TO/SOME_DIR CLIENTS_1(export_options,…) CLIENTS_2(export_options,…)
CLIENTS:
single host(单一主机配置): IPv4, IPv6, FQDN
IP networks(网络地址):network/netmask,支持两种格式的掩码;
wildcards:在主机名字符串中使用通配符支持?和 , .magedu.com,
anonymous:*,表示所有的客户端主机;
General Options 选项
ro:只读;
rw:读写;
sync:同步
async:异步
User ID Mapping 用户映射选项:
root_squash:压缩root用户的权限, 默认行为 ;nfsnobody
no_root_squash:不压缩root用户的权限;
all_squash:压缩所有用户的权限; 映射用户默认为nobody
anonuid and anongid:将压缩的用户映射为此处指定的用户
NFS Client:客户端挂载选项
mount -t nfs NFS_SERVER:/PATH/TO/EXPORTED_DIR /MOUNT_POINT[-rvVwfnsh] [-o OPTIONS]
一般配置参考
1、改配置文件
默认用户映射权限为压缩root用户,这里不用改
2、挂载测试
3、id映射测试
–
–
showmount 客户端列出指定的nfs server 的共享信息
show mount information for an NFS server
-a :全部 在nfs服务器端显示所有的挂载会话
-d :文件 在服务器端执行,显示那个导出的文件系统被那些客户端挂载过
-e :共享,在客户端执行,探查某主机所导出的nfs文件系统,使用格式为 showmount -e Server_IP
exportfs 服务端nfs管理命令
-a:操作所有文件系统
-ra:重新导出所有文件系统
-ua:取消导出的所有文件系统
-v:显示详细信息
开机自动挂载:/etc/fstab文件中写入
nfs的辅助进程mountd等监听在固定端口上,可以通过在编辑/etc/sysconfig/nfs等参数来实现
练习:
(1) 创建一个共享mydata,路径为/mysql/data,客户端1挂载至/mydata;而后客户端1主机安装mysql或mariadb,将数据目录设定为/mydata,要确保mysql服务能正常 运行,但数据目录位于samba server上;
(2) 客户端2主机使用类似客户端1主机的方式挂载mydata共享至本地的/mydata目录,而后,直接安装mysql或mariadb server,设定其数据目录为/mydata;测试
(a) 客户端1 mysql服务运行时,客户端2的mysql服务能否启动?
(b) 客户端1 mysql服务停止时,客户端2的mysql服务能否启动?
练习:(1) samba sever共享/data/application/web,在目录中提供wordpress;
(2) 部署两台amp服务器,均挂载此共享作为某主机的文档映射路径;
(3) 验正两台主机上的wordpress是否可被同时访问;
(a) 发一个文件,验正图片上传等功能;
(b) 在任一客户端上访问此应用,多次刷新,确认下所有资源访问是否正常 ;