Centos7.5部署NFS网络存储
NFS应用场景
NFS(Network File System网络文件系统),有些类似有C/S的方式,场景中最少包含两台服务器。应用场景中通常是存储。例如我们有一个集群环境假定为Tomcat集群环境。环境中出现一个用户上传附件的需求,如果每一个Tomcat都将附件存储到自身不仅占用了大部分磁盘空间,且为保证文件一致性需要使用类似于Rsync+notify机制推送文件,较为麻烦。此时我们就可以单独拿出一个Server将他的磁盘空间共享出来供后端Tomcat服务调用。这种方法大大减小了Tomcat Server的磁盘压力及CPU压力更减小了磁盘的损耗

这时候有的同学可能会问了,NFS没有缺点吗?结果是当然有了,NFS中N代表Network,就代表了这时一个依赖网络的文件存储,且NFS文件传输过程中是不加密的。建议大家在生产环境中尽量在内网环境下使用。这样既可以减小公网压力,又提高了文件传输的安全性。内网使用通过nginx配置静态资源目录转发出去,就可以避开内网达到访问的目的。

1.首先认定一台机器作为你的文件服务器进行共享目录配置

nfs 服务器部署命令

首先在服务器上安装必要的工具

yum  search nfs
yum search rpcbind
yum install nfs-utils.x86_64     //使用yum安装nfs 和rpcbind 当然看你需要安装哪个版本
rpm -qa rpcbind nfs-utils       //安装完后查看效果
cat /etc/passwd | grep nfs   //安装完成后会产生两个系统用户

创建共享目录并暴露到外部

mkdir -p /yourNfsDir         //创建你要共享的目录
vim /etc/exports				//编辑nfs 配置文件  
/yourNfsDir    172.16.201.*/24              (rw,sync,no_root_squash)
     ↑		    ↑								    ↑
   你的目录	  可以挂载这个文件夹的网段				权限相关 

权限参数详解.

systemctl stop firewalld            //关闭防火墙
systemctl disable firewalld		//禁用防火墙

systemctl restart rpcbind         	// 先重启这个
systemctl restart nfs		//后重启这个	

systemctl enable rpcbind    
systemctl enable nfs
systemctl status rpcbind
systemctl status nfs
showmount -e localhost  //查看本地可共享文件夹

如果出现
Export list for localhost:
/yourNfsDir (everyone)
说明服务已经开启成功了 接下来在你需要使用共享文件夹的服务器去挂载就行了

2.将共享目录挂载到你的服务器上作为上传使用

#挂载命令
cd ~
mkdir -p  /yourNfsDir  
mount -t nfs 文件服务器ip:/yourNfsDir    /yourNfsDir 
mount | grep /yourNfsDir  
#开机自启动挂载
vi /etc/fstab
文件服务器ip/24:/yourNfsDir    /yourNfsDir  nfs rw,noac,suid,dev,exec,auto,nouser,async 0 0 

#取消挂载
umount  /Users/xuetao
umount -vl /Users/xuetao     #执行延迟卸载
lsof | grep mymount        #查找mymount分区里打开的文件

3.将共享目录挂载到nginx所处的服务器下并配置

进入你nginx所在的服务器
如2挂载共享目录 (此处略过)注意nginx所在服务器在 ~下新建目录为 /home/uploadFiles
然后配置路径给外部访问

cd /etc/nginx/conf.d
vim  你的nginx配置文件
	 location  ^~ /uploadFiles{
        root   /home;
         autoindex on;
    }

这个时候访问你配置的路径就可以看到文件和目录了

4.SpringBoot中的上传

详情请参考 这里不再赘述Spring Boot实现文件上传与下载

5. 配置宿主主机持久卷到你的服务器集群中

进入docker镜像内部

docker run -v /yourNfsDir:这里写你镜像里面的上传文件的路径
挂载成功后上传文件验证即可
/

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐