Linux NFS多主机共享

内容概要

  • NFS的简介
  • 实现NFS多主机共享

内容详细

NFS简介

NFS是Network File System的缩写及网络文件系统。NFS主要功能是通过局域网络让不同的主机系统之间可以共享文件或目录。 NFS系统和Windows网络共享、网络驱动器类似, 只不过windows用于局域网, NFS用于企业集群架构中, 如果是大型网站, 会用到更复杂的分布式文件系统FastDFS,glusterfs,HDFS,ceph

NFS应用

1.用户访问NFS客户端,将请求转化为函数 2.NFS通过TCP/IP连接服务端 3.NFS服务端接收请求,会先调用portmap进程进行端口映射 4.Rpc.nfsd进程用于判断NFS客户端能否连接服务端; 5.Rpc.mount进程用于判断客户端对服务端的操作权限 6.如果通过权限验证,可以对服务端进行操作,修改或读取

NFS实践

服务端

1、安装NFS和rpcbind [root@nfs ~]# yum install nfs-utils rpcbind -y 2、创建挂载点 [root@nfs ~]# mkdir /web/nfs{1..9} 3、配置挂载点 [root@nfs ~]# vim /etc/exports 格式: [挂载点] [可以访问的IP]([权限]) /web/nfs1 172.16.1.0/20(rw,sync,all_squash) 4、关闭selinux和防火墙 [root@nfs ~]# setenforce 0 [root@nfs ~]# systemctl disable --now firewalld 5、启动Nfs和rpcbind服务 [root@nfs ~]# systemctl start nfs-server [root@nfs ~]# systemctl start rpcbind 6、检查服务端是否正常 [root@nfs ~]# showmount -e [服务端的地址,默认是本机地址] [root@nfs ~]# showmount -e Export list for nfs: /web/nfsv1 172.16.1.0/20 [root@nfs ~]# showmount -e 172.16.1.31 Export list for 172.16.1.31: /web/nfsv1 172.16.1.0/20 [root@nfs ~]# cat /var/lib/nfs/etab 7、给挂载点授权 [root@nfs ~]# chown -R nfsnobody.nfsnobody /web

客户端

1、安装NFS [root@web01 opt]# yum install -y nfs-utils 2、创建目录 [root@web01 opt]# mkdir /opt/nfs/ 3、挂载NFS [root@web01 opt]# mount -t nfs 172.16.1.31:/web/nfs1 /opt/nfs/ 4、测试NFS文件同步功能

NFS配置详解

nfs共享参数 参数作用
rw 读写权限 (常用)
ro 只读权限 (不常用)
root_squash 当NFS客户端以root管理员访问时,映射为NFS服务器的匿名用户 (不常用)
no_root_squash 当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员 (不常用)
all_squash 无论NFS客户端使用什么账户访问,均映射为NFS服务器的匿名用户 (常用)
no_all_squash 无论NFS客户端使用什么账户访问,都不进行压缩 (不常用)
sync 同时将数据写入到内存与硬盘中,保证不丢失数据 (常用)
async 优先将数据保存到内存,然后再写入硬盘;这样效率更高,但可能会丢失数据 (不常用)
anonuid 配置all_squash使用,指定NFS的用户UID,必须存在系统 (常用)
anongid 配置all_squash使用,指定NFS的用户GID,必须存在系统 (常用)
1、控制读写 rw、ro 2、控制文件权限 root_squash no_root_squash all_squash no_all_squash 3、控制写模式 sync async 4、控制用户 anonuid anongid

搭建考试系统

统一用户

1、创建用户 [root@nfs nfs1]# groupadd www -g 666 [root@nfs nfs1]# useradd www -u 666 -g 666 -M -r -s /sbin/nologin 2、修改挂载点权限 [root@nfs nfs1]# chown -R www.www /web/

搭建WEB服务

1、安装web软件 [root@web01 opt]# yum install httpd php php-devel -y 2、将代码放置于网站的根目录 [root@web01 opt]# cd /var/www/html/ # 上传代码 3、授权 [root@web01 html]# chown -R www.www /var/www/html 4、关闭selinux和防火墙 [root@nfs ~]# setenforce 0 [root@nfs ~]# systemctl disable --now firewalld 5、修改web软件的用户 [root@web01 html]# vim /etc/httpd/conf/httpd.conf User www Group www 6、启动web软件 [root@web01 html]# systemctl start httpd 7、测试 1、上传 2、访问 http://172.16.1.7/upload/1_linux.jpg

配合NFS实现文件共享

1、修改NFS配置文件 [root@nfs nfs1]# vim /etc/exports /web/upload 172.16.1.0/20(rw,sync,all_squash,anonuid=666,anongid=666) 2、创建挂载点 [root@nfs nfs1]# mkdir /web/upload [root@nfs nfs1]# chown www.www /web/upload 3、重启NFS [root@nfs nfs1]# systemctl restart nfs-server rpcbind 4、客户端安装NFS软件 [root@web01 html]# yum install nfs-utils -y [root@web02 html]# yum install nfs-utils -y [root@web03 html]# yum install nfs-utils -y 5、挂载 [root@web01 html]# mount -t nfs 172.16.1.31:/web/upload /var/www/html/upload [root@web02 html]# mount -t nfs 172.16.1.31:/web/upload /var/www/html/upload [root@web03 html]# mount -t nfs 172.16.1.31:/web/upload /var/www/html/upload 6、测试 用web2上传,web3查看

__EOF__

本文作者向上
本文链接https://www.cnblogs.com/ydy001/p/15753683.html
关于博主:没有收拾残局的能力,就别放纵善变的情绪
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   风花雪月*  阅读(584)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
点击右上角即可分享
微信分享提示