相关内容:
NFS:即为网络文件系统。
主要功能:通过网络(局域网)让不同的主机系统之间可以共享文件或目录。
主要用途:NFS网络文件系统一般被用来存储共享视频,图片,附件等静态资源文件。
关于端口使用说明:
1.通过网络来进行数据传输,因此会使用一些端口来传输数据。
2.NFS在传输数据的时候使用的端口会随机选择。
问:nfs客户端如何知道nfs服务器端使用哪个端口?
答:通过RPC(远程过程调用)协议/服务来实现。
rpc工作原理:1.启动RPC服务
2.nfs启动时随机取用若干端口,并主动向rpc服务注册取用相关信息
3.客户端请求nfs服务向rpc
4.rpc返回端口给客户端
5.拿着地址与端口向nfs服务器请求传输数据
所以综上所述:nfs服务必须在rpc服务启动之后启动,客户端无需启动nfs服务,但需要启动rpc服务。
nfs部署:
需要安装的软件包:
nfs-utils:nfs服务主程序
rpcbind:rpc主程序
yum install -y nfs-utils rpcbind
启动nfs相关服务:
1.启动rpcbind
systemctl status rpcbind
systemctl start rpcbind
systemctl enable rpcbind
rpcinfo -p localhost //查看nfs服务向rpc服务注册的端口信息。此时nfs服务还没有启动因此没有太多注册的端口映射信息。
lsof -i : 111
netstat -lntup | grep rpcbind
2.启动nfs服务:
systemctl start nfs
systemctl enable nfs
systemctl status nfs
rpcinfo -p localhost //查看注册信息
[root@localhost ~]# ps -ef | egrep "rpc|nfs" root 378 2 0 02:39 ? 00:00:00 [rpciod] rpc 4873 1 0 04:08 ? 00:00:00 /sbin/rpcbind -w rpcuser 5055 1 0 04:18 ? 00:00:00 /usr/sbin/rpc.statd --no-notify //检查文件一致性 root 5056 1 0 04:18 ? 00:00:00 /usr/sbin/rpc.idmapd root 5057 1 0 04:18 ? 00:00:00 /usr/sbin/rpc.mountd //权限管理验证 root 5062 2 0 04:18 ? 00:00:00 [nfsd4_callbacks] root 5068 2 0 04:18 ? 00:00:00 [nfsd] root 5069 2 0 04:18 ? 00:00:00 [nfsd] root 5070 2 0 04:18 ? 00:00:00 [nfsd] root 5071 2 0 04:18 ? 00:00:00 [nfsd] root 5072 2 0 04:18 ? 00:00:00 [nfsd] root 5073 2 0 04:18 ? 00:00:00 [nfsd] root 5074 2 0 04:18 ? 00:00:00 [nfsd] root 5075 2 0 04:18 ? 00:00:00 [nfsd] root 5189 3406 0 04:27 pts/0 00:00:00 grep -E --color=auto rpc|nfs
NFS服务器启动的时候至少需要两个不同的进程,一个是管理nfs客户端是否可以登陆rpc。nfsd主进程,一个是管理nfs客户端是否能够登入的rpc.mountd进程。
如果需要管理磁盘配额,则还需要加载rpc.rquotad进程
nfs服务端说明:
配置nfs启动文件:
默认存放地点:/etc/exports //存在但是没有内容,默认为空
exports配置文件格式:
nfs共享目录 nfs客户端地址1(参1,参2.....) 客户端地址2(参1,参2...)
说明:
nfs共享目录:为nfs服务器要共享的实际目录,绝对目录。注意权限问题。
nfs客户端地址:为nfs服务器授权可以访问的客户端的地址,可以是单独的ip地址或主机名,域名。也可以是整个网段。
授权整个网段:eg:10.0.0.0/24
文件配置实例说明:
1. /data 10.10.10.0/24(rw,sync) //允许客户端读写,并且数据同步写到服务器端磁盘 注意:24与(之间不能有空格
2./data 10.10.10.0/24(rw,sync,all_squash,anonuid=2000,anongid=2000)//允许读写,并且数据同步到客户端磁盘,并且指定客户端的用户uid和pid
3./data 10.10.10.0/24(ro) //只读共享
rw读写权限
sync请求或写入数据时,数据同步写入到nfs server 的硬盘后才返回。
ro 只读权限
all_squash 不管是什么身份访问共享目录,权限都将被压缩成匿名用户。
1)确保所有客户端服务器对nfs共享目录具备相同的用户访问权限。
2)就是anonuid,anongid指定的uid和gid的用户。
nfs 服务端配置:
mkdir -p /data //创建数据目录
touch /data/ffy.txt //创建测试文档
chown -R nfsnobody.nfsnobody /data
//更改属组,nfsnobody.nfsnobody ls -ld /data vim /etc/exports //编辑配置文件。
/data 192.168.232.0/24(rw,sync)
exportfs -rv //加载配置文件
showmount -e localhost //nfs服务器本地查看挂载情况。 mount -t nfs 192.168.232.140:/data /mnt //本地挂载配置
df -h
nfs 客户端 配置:
yum install rpcbind nfs-utils -y //安装rpcbind与nfs
systemctl start rpcbind //启动rpcbind,不启动nfs 为了使用showmount等功能。但客户端不用nfs功能
showmount -e 192.168.232.140 //查看本地
mount -t nfs 192.168.232.140:/data /mnt //执行挂载命令挂载到本机的/mnt目录下。 前面的ip地址是客户端的ip地址
df -h //查看挂载,如果有,则挂载成功。
至此所有的安装成功。