NFS
一、简介
NFS是Network File System的缩写及网络文件系统。NFS主要功能是通过局域网络让不同的主机系统之间可以共享文件或目录。
NFS系统和Windows网络共享、网络驱动器类似, 只不过windows用于局域网, NFS用于企业集群架构中, 如果是大型网站, 会用到更复杂的分布式文件系统FastDFS,glusterfs,HDFS,ceph
二、应用
1、用户访问NFS客户端,将请求转化为函数
2、NFS通过TCP/IP连接服务端
3、NFS服务端接受请求,会先调用portmap进程进行端口映射
4、Rpc.nfsd进程用于判断客户端是否连接服务端
5、Rpc.mount进程用于判断客户端对服务端的操作权限
6、如果通过权限验证,可以对服务端进行操作,修改或读取
三、实践
----------------------1、搭建服务端-----------------------
1、安装NFS和rpcbind
[root@nfs ~]# yum remove nfs-utils rpcbind
2、创建挂载点
[root@nfs ~]# mkdir /web/nfs{1,2}
3、配置挂载文件
格式:[挂载点] [可以访问的ip]([权限])-->此处括号和前面的ip是没有空格的
4、关闭防火墙和selinux
5、启动nfs和rpcbind
[root@nfs ~]# systemctl start rpcbind
[root@nfs ~]# systemctl start nfs-server
6、检查服务端是否正常
[root@nfs ~]# showmount -e
格式:showmount -e [服务端的地址,默认是本机地址]
7、查看挂载是否成功
[root@nfs ~]# cat /var/lib/nfs/etab
/web/nfs1 172.16.1.0/20(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)
8、给磁盘授权
[root@nfs ~]# chown -R nfsnobody.nfsnobody /web
---------------------2、搭建客户端------------------------
1、安装NFS
[root@web02 /opt]# yum install nfs-utils
2、创建目录
[root@web02 /opt]# mkdir /opt/nfs
3、挂载NFS
[root@web02 /opt]# mount -t nfs 172.16.1.31:/web/nfs1 /opt/nfs
4、测试NFS同步功能
-----------------------3、搭建统一用户--------------------
1、在服务器上创建www用户
[root@nfs ~]# groupadd www -g 666
[root@nfs ~]# useradd www -u 666 -g 666 -M -r -s /sbin/nologin
2、修改挂载点权限
[root@nfs ~]# chown -R www.www /web
3、修改挂载配置文件
[root@nfs ~]# vim /etc/exports
4、在客户端也创建www用户
5、结果
四、搭建web服务
1、安装web软件
[root@web02 /opt]# yum install httpd php-devel -y
2、上传代码至网站的跟目录
[root@web02 /var/www/html]# cd /var/www/html
3、解压该文件
[root@web02 /var/www/html]# unzip kaoshi\(1\).zip
4、授权
[root@web02 /var/www/html]# chown -R www.www /var/www/html
5、关闭防火墙和selinux
6、修改web软件的用户
[root@web02 /var/www/html]# vim /etc/httpd/conf/httpd.conf
7、启动web软件
[root@web02 /var/www/html]# systemctl start httpd
8、测试
测试之前在该目录下创建upload目录
打开网页输入web02的ip,按照要求上传文件,检查上传成功与否
-------------------利用NFS实现共享------------------------
1、修改配置文件增加新的挂载点
[root@nfs /web]# vim /etc/exports
2、创建挂载点
[root@nfs /web]# mkdir /web/upload
3、授权
[root@nfs /web]# chown www.www /web/upload
4、重启
[root@nfs /web]# systemctl restart rpcbind
[root@nfs /web]# systemctl restart nfs-server
5、客户端安装NFS软件
6、客户端挂载
[root@web02 /var/www/html]# mount -t nfs 172.16.1.31:/web/upload /var/www/html/upload
[root@web03 /var/www/html]# mount -t nfs 172.16.1.31:/web/upload /var/www/html/upload
<重新上传文件,这样就实现了文件的共享啦,web02上传,web03查看>