1、什么是存储服务
NFS是网络文件共享系统 它主要功能是通过网络(一般是局域网)让不同的主机系统之间可以共享文件或目录 NFS客户端(一般是应用服务器,例如web)可以通过挂载(mount)的方式将NFS服务器端共享的数据目录挂载到NFS客户端本地系统中(就是某一个挂载点下)。从客户端本地看,NFS服务器端共享的目录就好像是客户端自己的磁盘分区或者目录一样,而实际上却是远端NFS服务器的目录。 NFS属于本地文件存储服务。
2、NFS存储服务的作用:
(1)实现数据的共享存储 (2)编写数据操作管理 (3)节省购买服务器磁盘的开销
3、NFS工作流程:
(1)在NFS服务端创建共享目录 (2)通过mount挂载,将NFS服务端共享目录挂载到NFS客户端本地目录上。 (3)NFS客户端挂载目录上创建、删除、查询数据操作, 相当于在服务端操作。
4、NFS两个重要的服务
由于NFS服务启动时产生的进程服务器端口号是随机的,因此NFS的各项功能都需要向RPC服务(rpcbind服务)注册,所以只有RPC服务才能获得NFS服务的各项功能对应的端口号、pid、NFS在主机所监听的IP等信息,而NFS客户端只能通过RPC服务询问才能找到正确的端口。
5、nfs服务部署流程
rpc:远程过程调用服务程序 服务端部署 (1)下载软件
代码语言:javascript复制rpm -qa|grep -E "nfs|rpc" #检查软件是否安装,默认是不安装的
yum install -y nfs-uttls rpcbind
(2)编写nfs服务配置文件
代码语言:javascript复制vim /etc/exports
/test 172.16.1.0/24(rw,sync)
a b(c) a、设置数据的存储目录 (/test) b、设置网络白名单(允许哪些主机可以连接到存储服务器进行数据存储) c、配置存储目录的权限信息,存储目录一些功能 (3)创建一个存储目录
代码语言:javascript复制mkdir /test
chown nfsnobody.nfsnobody /test
ls -ld /test
(4)启动服务程序 先启动rpc服务
代码语言:javascript复制systemctl start rpcbind.service
systemctl enable rpcbind.service
systemctl status rpcbind.service
在启动NFS服务
代码语言:javascript复制systemctl start nfs
systemctl enable nfs
systemctl status nfs
客户端 (1)安装软件
代码语言:javascript复制yum install -y nfs-utils
(2)远程挂载目录
代码语言:javascript复制mount -t nfs 172.16.1.31:/test /mnt
实现多个网段主机进行挂载
代码语言:javascript复制(1)/test 172.16.1.0/24(rw,sync) 10.0.0.0/24(rw,sync)
(2)/test 172.16.1.0/24(rw,sync)
/test 10.0.0.0/24(rw,sync)
6、影响NFS服务存储权限的因素
(1)服务端本身目录权限exports文件里ro/rw参数 (2)服务端本身目录权限 (3)服务端共享目录权限存在继承关系。例如:/test, /test/a (4)客户端挂载参数是否为ro
7、NFS服务配置参数
代码语言:javascript复制NFS配置参数权限
rw -- 存储目录是否有读写权限
ro -- 存储目录是否时只读权限
sync -- 同步方式存储数据 直接将数据保存到磁盘(数据存储安全)
async -- 异步方式存储数据 直接将数据保存到内存(提高数据存储效率)
no_root_squash -- 不要将root用户身份进行转换
root_squash -- 将root用户身份进行转换
all_squash -- 将所有用户身份都进行转换
no_all_squash -- 不要将普通用户身份进行转换
PS:检查NFS服务进程与端口注册信息
代码语言:javascript复制rpcinfo -p 172.16.1.31