一、NFS存储服务概念介绍
NFS是Network File System的缩写,中文意思是网络文件系统,它的主要功能是通过网络(一般是局域网)让不同的主机系统之间可以共享文件或目录 NFS服务器只支持linux服务器之间共享数据存储。 PS:windows服务器和linux服务器都存在:尽量不要使用nfs,建议使用samba ftp
二、NFS服务软件的基本作用
1)可以实现数据信息统一一致
2)可以节省磁盘硬件设备成本
三、NFS服务存储数据原理
1.什么是NFS
NFS中文名字:网络共享存储,就是通过网络共享目录,让网络上的其他服务器能够挂载访问共享目录的数据(NFS一般都是用来存放视频、附件、图片等静态数据的).
NFS是通过网络来进行服务端和客户端数据传输的,那么只要是通过网络的就一定会有端口,那NFS的端口是什么呢?很失望的是NFS的端口是随机的,每次重启服务端口都会改变.
那么客户端是怎样知道服务端的端口的呢?其实NFS服务器是通过远程过程调用(RPC)协议/服务来实现的,也就是说RPC服务会统一管理NFS的端口,客户端和服务端通过RPC来确定端口,进行数据传输.
PS:(原来RPC管理服务端的NFS端口分配,客户端要传数据,那客户端的RPC会先跟服务端的RPC去要服务器的端口,要到端口后再建立连接,然后传输数据)。
2.什么是RPC
RPC(Remote Procedure Call)—远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。
RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了 传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。
RPC采用客户机/服务器模式。请求程序就是一个客户机,而服务提供程序就是一个服务器。
3.RPC和NFS之间的关系
NFS服务端需要先启动RPC,在启动NFS,这样NFS才能到RPC注册端口信息,客户端的RPC可以通过向服务端的RPC请求获取服务端的NFS端口信息,获取到端口后,就可以以获取到的实际端口来进行数据传输了
4.RPC和NFS启动顺序
① 先启动RPC服务
② 在启动NFS服务
③ 客户端只启动RPC服务就OK
四、服务端NFS服务部署流程
🔅1.检查相应存储软件是否安装
nfs-utils rpcbind(centos6) #rpcbind服务属于nfs-utils 软件的一个依赖包
[root@nfs01 ~]rpm -qa|grep -E 'nfs|rpc'
[root@nfs01 ~]yum install nfs-utils rpcbind
[root@nfs01 ~]rpm -ql nfs-utils
/etc/rc.d/init.d/nfs
/usr/sbin/showmount
[root@nfs01 ~]rpm -ql rpcbind
/etc/rc.d/init.d/rpcbind
/sbin/rpcbind
/usr/sbin/rpcinfo --- 查看nfs服务是否已经进行了注册
🔅2.编写配置文件
[root@nfs01 ~] vim /etc/exports
/data 172.16.1.0/24(rw,sync)
① ② ③
第一列:定义nfs服务的功能项目录信息
第二列:定义哪些网段的主机可以访问共享目录
第三列:定义配置共享目录的一些权限或功能目录
🔅3.创建共享目录信息,目录授权
[root@nfs01 ~] mkdir /data -p (加p可以重复创建目录)
[root@nfs01 ~] id nfsnobody ---共享目录管理用户
uid=65534(nfsnobody) gid=65534(nfsnobody) groups=65534(nfsnobody)
[root@nfs01 ~] chown -R nfsnobody.nfsnobody /data/
🔅4.启动nfs相关服务
1.先启动rpc服务
[root@nfs01 ~] /etc/init.d/rpcbind start
[root@nfs01 ~] ps -ef|grep rpcbind
rpc 2957 1 0 13:20 ? 00:00:00 rpcbind
root 2961 2915 0 13:22 pts/3 00:00:00 grep rpcbind
[root@nfs01 ~]
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 2957/rpcbind
tcp 0 0 :::111 :::* LISTEN 2957/rpcbind
2.再启动nfs
[root@nfs01 ~] /etc/init.d/nfs start
[root@nfs01 ~] ps -ef|grep nfs
root 3021 2 0 13:28 ? 00:00:00 [nfsd4]
root 3022 2 0 13:28 ? 00:00:00 [nfsd4_callbacks]
root 3023 2 0 13:28 ? 00:00:00 [nfsd]
root 3024 2 0 13:28 ? 00:00:00 [nfsd]
root 3025 2 0 13:28 ? 00:00:00 [nfsd]
root 3026 2 0 13:28 ? 00:00:00 [nfsd]
root 3027 2 0 13:28 ? 00:00:00 [nfsd]
root 3028 2 0 13:28 ? 00:00:00 [nfsd]
root 3029 2 0 13:28 ? 00:00:00 [nfsd]
root 3030 2 0 13:28 ? 00:00:00 [nfsd]
root 3065 2915 0 13:29 pts/3 00:00:00 grep nfs
rpcinfo -p localhost --- 检查本地nfs服务是否想rpc服务进行注册
五、客户端NFS服务部署流程
🔅1.检查安装软件服务
[root@backup ~]rpm -qa|grep -E 'nfs|rpc'
检查nfs,rpc服务是否安装
[root@nfs01 ~] yum install nfs-utils rpcbind
[root@backup ~] rpm -ql nfs-utils
[root@backup ~] rpm -ql rpcbind
🔅2.进行共享目录挂载使用
[root@backup ~] mount -t nfs 172.16.1.31:/data /mnt
[root@backup ~] df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 48G 1.8G 44G 4% /
tmpfs 491M 0 491M 0% /dev/shm
/dev/sda1 190M 35M 146M 19% /boot
172.16.1.31:/data 48G 1.8G 44G 4% /mnt
可以看到172.16.1.31:/data的目录已经挂载成功
🔅3.进行存储测试
服务端 客户端都添加一些目录或文件,看是否能相互之间查看
补充:当存储服务挂载遇到问题,如何排查 rpcinfo -p nfs服务端地址信息 --查看rpc服务中是否有nfs服务注册信息 showmount -e nfs服务端地址信息 --查看nfs服务端可以使用共享目录信息
|