NFS部署安装

NFS是Network Filesystem的缩写及网络文件系统

主要功能是通过 局域网络 让不同主机 系统之间可以共享文件和目录

为什么要使用NFS服务进行数据存储

1.实现多台服务器之间的数据共享
2.实现多台数据库之间的数据一致

本地文件操作方式(本地调用)

1.当用户执行mkdir命令,该命令会通过shell解释器翻译给内核,有内核解析完成后驱动硬件,完成相应的操作,NFS实现原理(需要先了解【程序|进程|线程】)
2.用户进程访问nfs客户端,使用不同的函数对数据进行处理
3.nfs 客户端通过TCP/IP的方式传递给nfs服务端
4.nfs服务端接收到请求后,会先调用portmap进程进行端口映射
5.nfsd进程用于判断nfs客户端是否拥有权限连接nfs服务端
6.rpc.mount进程判断客户端是否有对应的权限进行验证
7.idmap进程实现用户映射和压缩
8.最后nfs服务端会将对应请求的函数 转换为本地能识别的命令,传递给内核,有内核驱动硬件

//rpc是一个远程过程调用,那么使用nfs必须有rpc服务

##################################################################################################

安装NFS

服务端配置

1.安装NFS-server
yum -y  install  nfs-utils  rpcbind
2.配置nfs
[root@nfs01 ~]# vim /etc/exports
/data 192.168.20.0/24(rw,sync,all_squash)
3.创建对应的目录
[root@nfs01 ~]# mkdir /data
4.启动服务,并加入开机自启
[root@nfs01 ~]# systemctl enable rpcbind nfs-server
[root@nfs01 ~]# systemctl start rpcbind nfs-server
5.检查端口
[root@nfs01 ~]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      11513/rpcbind       
tcp        0      0 0.0.0.0:2049            0.0.0.0:*               LISTEN      - 
6.检查共享的内容
[root@nfs01 ~]# cat /var/lib/nfs/etab 
/data	   192.168.20.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=65534,anongid=65534,sec=sys,rw,secure,root_squash,all_squash)
7.检查匿名用户对应的真实账户
[root@nfs01 ~]# grep '65534' /etc/passwd
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
8.将/data 目录的属主属组授权为nfsnobody
[root@nfs01 ~]# chown -R nfsnobody.nfsnobody /data/

######################################################################################################

客户端配置

1.安装NFS-server
yum -y  install  nfs-utils  rpcbind
2.启动服务,并加入开机自启
[root@nfs01 ~]# systemctl enable rpcbind 
[root@nfs01 ~]# systemctl start rpcbind 
2.1.验证
[root@web01 ~]# showmount -e 192.168.20.40
Export list for 192.168.20.40:
/data 192.168.20.0/24
3.配置客户端,创建挂载点,执行挂载命令
[root@web01 ~]# mkdir /data
[root@web01 ~]# mount -t nfs 192.168.20.40:/data /data/
[root@web01 ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
192.168.20.40:/data       50G  1.5G   49G   3% /data
4.测试客户端是否拥有写权限
[root@web01 ~]# echo  '123' >/data/test
[root@web01 ~]# ll /data/
total 4
-rw-r--r--. 1 nfsnobody nfsnobody 4 Jan 28 13:46 test
5.卸载本地端挂载的信息
[root@web01 ~]# umount /data 
[root@web01 ~]# ll /data/
total 0
6.检查nfs服务端是否存在数据
[root@nfs01 ~]# ll /data/
total 4
-rw-r--r--. 1 nfsnobody nfsnobody 4 Jan 28 13:46 test

###################################################################################################

永久挂载(防止服务器重启挂载失效)

[root@web01 ~]# cat /etc/fstab 
192.168.20.40:/data     /data                    nfs    defaults        0 0   

重新修改开机自启动的选项

[root@web01 ~]# cat /etc/fstab 
192.168.20.40:/data     /data                    nfs    defaults,_netdev    0 0
"_netdev" 防止无法联系nfs服务端时导致开机启动失败(无法使用mount -a 验证fstab) 

重载

[root@nfs01 ~]# exportfs -arv
exporting 192.168.20.0/24:/data

重启

[root@web02 ~]# systemctl restart nfs-server
上一篇:tkinter--listbox/scrollbar/scale用法


下一篇:559. N叉树的最大深度