集群 -上传下载文件共享 - NFS

解决方案:

1. 部署的 tomcat 都在同一个机器上,共享文件位置

2. windows 下,局域网内文件上传的文件夹设置共享文件夹

3. linux 下 NFS 文件夹共享

4. 第三方工具

 

NFS 介绍

  NFS 就是 Network FileSystem 的缩写。最大的功能就是可以透过网络,让不同的机器,不同的操作系统、可以彼此分享个别的档案。所以,可以简单的将其看做是一个文件服务器。这个 NFS 服务器可以让你的 PC 来将网络远程的  NFS 服务器分享的目录,挂载到本地的机器中,在本地的机器看起来,那个远程的主机的目录就好像是自己的一个磁盘分区槽一样。使用方便。

  因为 NFS 支持的功能相当多,而不同的功能都会使用不同的程序来启动,每启动一个功能就会启用一些端口来传输数据,因此,NFS 的功能所对应的端口才没有固定住,而是随机取用一些未被使用的小于 1024 的埠口来作传输用。但如此一来又造成客户端想要连上服务器是的困扰,因为他不知道端口。。

  这时远程过程调用(RPC)服务来了。RPC 最主要的功能就在指定每个 NFS 功能所对应的 port number,并回报给客户端,让客户端可以连接到正确的端口。那 RPC 是如何知道每个 NFS 的端口呢?这是因为当服务器在启动 NFS 时会随机取用数个端口,并主动向 RPC 注册,因此,RPC 知道每个端口对应的 NFS 功能,然后 RPC 又是固定使用 port 111 来监听客户端的需求,并回报客户端正确的端口。

  所以,NFS 启动之前,RPC 就要先启动了,否则 NFS 无法向 RPC 注册。另外, RPC 重新启动时,原本注册的数据会不见,因此,RPC 重启后,它管理的所有服务都要重新启动来向 RPC 注册。

  当客户端有 NFS 档案存取需求时,他会如何向服务端要求数据呢?

  • 客户端会向服务器端的 RPC (port 111)发出 NFS 档案存取功能的询问要求
  • 服务器端找到对应的已注册的 NFS daemon 端口后,回报给客户端
  • 客户端了解正确的端口后,就可以直接与 NFS daemon 来连接

 

  

  由于NFS 必须要有 RPC 存在时才能成功的提供服务,因此,NFS 被称为 RPC server 的一种。

 

 

NFS安装使用

  1. 看当前有没有安装过

  rpm -qa|grep nfs

  rpm -qa|grep rpcbind

  yum -y install nfs-utils rpcbind

  touch /etc/exports

  里面放这样一句: /opt/tomcat/static 192.168.101.*(rw,sync,no_root_squash,no_subtree_check)

  这里参数:


参数值
内容说明
rw  ro  
 该目录分享的权限是可擦写 (read-write) 或只读 (read-only),但最终能不能读写,还是与文件系统的 rwx 及身份有关
sync  async    sync
代表数据会同步写入到内存与硬盘中,async 则代表数据会先暂存于内存当中,而非直接写入硬盘
no_root_squash  root_squash
客户端使用 NFS 文件系统的账号若为 root 时,系统该如何判断这个账号的身份?

预设的情况下,客户端 root 的身份会由 root_squash 的设定压缩成 nfsnobody, 如此对服务器的系统会较有保障。

但如果你想要开放客户端使用 root 身份来操作服务器的文件系统,那么这里就得要开 no_root_squash 才行
all_squash
不论登入 NFS 的使用者身份为何, 他的身份都会被压缩成为匿名用户,通常也就是 nobody(nfsnobody) 
anonuid  anongid    anon
anon 意指 anonymous (匿名者) 前面关于 *_squash 提到的匿名用户的 UID 设定值,通常为 nobody(nfsnobody),
但是你可以自行设定这个 UID 的值!当然,这个 UID 必需要存在于你的 /etc/passwd 当中!
anonuid 指的是 UID 而 anongid 则是群组的 GID

 

  exportfs -r 配置生效   

  /bin/systemctl start rpcbind.service

  /bin/systemctl start nfs.service

  showmount -e localhost

 

  客户端

   yum -y install nfs-utils 

   mount -t nfs 192.168.101.32:/opt/static /opt/static -o proto=tcp -o nolock

 

posted @ 2020-03-11 15:44  停不下的时光  阅读(1136)  评论(0编辑  收藏  举报