NFS资源共享服务
前情提要
FTP服务
- 支持文件传输
- 可跨平台
- 是集中式服务(FTP服务中心化)
NFS服务(不向外暴露端口)
- 支持文件共享(即在客户端像操作本地文件一样操作服务端文件)
- 方式:通过挂载来实现
- 是一个轻量级的Linux共享文件
- 类似于分布式存储
数据库级别(从小到大):Mysql,SQLserver,oracle
网络存储:将共享资源存储在网络,满足客户需求【NAS——文件级(NFS),SAN(块级)】
NFS简介
- NFS:网络文件系统
- 作用:将NFS服务器的数据共享到不同的客户端,分布式存储
1.NFS原理
在文件传输和信息传送过程中依赖RPC协议(远程过程调用)
- 远程调用:两个进程不在一台机器上
- 本地调用:两个进程在一台机器上
结果:
- nfs:是NFS服务的守护进程,管理客户机连接上服务器
- rpcbind:进行端口映射
2.过程
- 服务端启动RPC,开启111端口
- 启动NFS,向RPC中注册端口信息
- 客户端启动RPC,向服务端RPC请求NFS端口
- 服务端PRC反馈NFS端口给客户端
- 客户端通过获取到的NFS端口,和服务端NFS建立连接,并进行数据传输
注:查看映射信息的命令:rpcinfo -p
3.NFS服务参数
- 软件名:nfs-utils(包括NFS命令和监控程序),rpcbind(支持安全NFS,RPC服务的连接)
- 服务名:nfs-server
- 端口号:111(RPC)
- 配置文件:/etc/exports
- 日志文件:/var/log/messages
NFS基本功能
1.NFS配置参数
vim /etc/exports——共享目录 客户端(访问权限、用户映射、其他)
选项:
- 共享目录:nfs服务端共享给客户机的数据目录(showmount -e serviceIP——展示可共享目录)
- 指定客户端:192.168.77.77或192.168.77.0/24或www.xxhf.com或*(指代所有主机)
权限类型:
注:在no_root_squash映射下,普通用户访问,如果服务器端有相同用户名,则映射该用户(即指向对应uid的用户),否者客户端用户在共享目录创建文件,所有者和所属组都是当前uid和gid
在all_squash映射下,root用户和普通用户都会被映射成nobody用户,除非用anonuid指定
2.配置生效
- 方法一:重启nfs服务
- 方法二:使用exportfs命令(-au:全部取消/etc/exports里的内容;-ra:重新加载/etc/exports)
3.NFS客户端配置
- 查看服务器共享点:showmount -e 服务器端IP
- 挂载到客户端:mount -t nfs serverIP:分享目录 挂载点(也可以永久挂载)
- 查看客户端挂载:df -h 或mount
NFS基本功能搭建
1.服务端
$ dnf -y install rpcbind nfs-utils
#/etc/exports可以写多行,每行当做一个客户端挂载设置
#每行的网段和后面括号的权限要紧挨着、不能有空格;否则挂载后是只读文件系统
$ vim /etc/exports
#设置只读权限
共享目录1 192.168.66.0/24(ro,async,root_squash)
#可写、将客户端登录的用户在服务器映射为匿名用户
共享目录2 192.168.66.0/24(rw,async,root_squash)
#可写、将客户端登录的用户在服务器保留root身份
共享目录3 192.168.66.0/24(rw,async,no_root_squash)
#可写、将客户端登录的用户在服务器映射为指定的用户
共享目录4 192.168.66.0/24(rw,async,all_squash,anonuid=xx,anongid=xx)
$ mkdir -p 共享目录n
$ echo "123" >>共享目录n/index.html
$ systemctl restart rpcbind #不用每次引导、第一次启动重启、慢时重启
$ systemctl restart nfs-server
2.客户端
#客户端不安装、直接挂载,报错:
#mount: /beifen: 选项错误;对某些文件系统(如 nfs、cifs)您可能需要一款 /sbin/mount.<类
型> 的帮助程序.
$ dnf -y install rpcbind nfs-utils
#查看服务器端的分享目录
$ showmount -e 服务器端ip
#挂载一个分享目录
$ mkdir 挂载点
$ mount -t nfs nfs服务器IP:共享目录 挂载点
#查看挂载情况
$ df -h
#进入挂载点,查看分享数据
$ cd 挂载点
$ cat index.html
#可以在该挂载点里创建目录或文件,并写入数据。该数据会在多个客户端即服务器端共享。
搭建共享网站资源
1.准备工作
服务端(77.77):搭建NFS共享资源平台,存放网页文件
服务端(77.78):搭建web服务,使用共享资源平台存放的网页文件
服务端(77.79):搭建web服务,使用共享资源平台存放的网页文件
2.准备共享目录和网页文件
$ dnf -y install rpcbind nfs-utils
$ vim /etc/exports
/shares 192.168.77.0/24 (rw,async,no_root_squash)
$ mkdir /shares
$ echo "hello world" >> /shares/index.html
$ systemctl restart rpcbind
$ systemctl restart nfs-server
3.挂载共享目录
77.78和77.79
[root@localhost ~]# mount -t nfs 192.168.77.77:/shares /var/www/html/
[root@localhost ~]# cd /var/www/html/
[root@localhost html]# ls
index.html
4.测试网页