场景
一般管理系统的业务都含有用户上传文件、图片等功能,而生产上大部分都是多机部署,最次也是有主备两台机,这时就需要在集群服务器上共享用户上传的数据文件、图片等,比较普遍的做法是增加一台文件存储服务器,专门存放这些文件、图片等,这种方案固然很好,但增加了一台服务器,架构较为复杂,成本也随之增加。
今天就给大家介绍一种比较简单办法,既可以共享文件,又不必增加服务器资源,那就是:NFS。
NFS介绍
NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。
——《百度百科》
NFS软件安装
# 查看是否安装 rpm -qa | egrep "nfs|rpcbind"# yum 安装yum install nfs-utils rpcbind
环境信息
创建共享目录,共享用户的文件资料。
使用root用户操作。
- 服务器1:192.168.1.22
# 创建共享目录mkdir -p /home/credit/shared_folder# 权限chmod 777 /home/credit/shared_folder
- 服务器2:192.168.1.23
# 创建共享目录mkdir -p /home/credit/shared_folder# 权限chmod 777 /home/credit/shared_folder
![19c6fa209919e435e5ebeaff7cf5b7ce.png](https://img-blog.csdnimg.cn/img_convert/19c6fa209919e435e5ebeaff7cf5b7ce.png)
服务器1设置
- 设置共享目录
vi /etc/exports# 写入如下配置/home/credit/shared_folder *(insecure,rw,sync,no_root_squash):wq 保存退出
/etc/exports 设置说明
格式:共享文件夹 网段(参数1,参数2,....)
可添加的参数如下:
ro:该主机对该共享目录有只读权限
rw:该主机对该共享目录有读写权限
root_squash:客户机用root用户访问该共享文件夹时,将root用户映射成匿名用户 ;
no_root_squash:NFS服务器共享目录用户的属性,客户机用root访问该共享文件夹时,不映射root用户;
all_squash 客户机上的任何用户访问该共享目录时都映射成匿名用户
anonuid 将客户机上的用户映射成指定的本地用户ID的用户
anongid 将客户机上的用户映射成属于指定的本地用户组ID
sync 资料同步写入到内存与硬盘中
async 资料会先暂存于内存中,而非直接写入硬盘
insecure 允许从这台机器过来的非授权访问
- 设置NFS自启动
systemctl start nfssystemctl enable nfs
服务器2设置
- 设置NFS自启动
systemctl start nfssystemctl enable nfs
- 挂载共享目录
mount -o nolock -t nfs 192.168.1.22:/home/credit/shared_folder /home/credit/shared_folder
- 开机自动挂载
vi /etc/rc.local# 写入以下配置mount -o nolock -t nfs 192.168.1.22:/home/credit/shared_folder /home/credit/shared_folder:wq 保存退出# 权限chmod 777 /etc/rc.local
- 查看共享目录
df -h
![8df2d09572f4e07d3c0919d36e3cb0aa.png](https://img-blog.csdnimg.cn/img_convert/8df2d09572f4e07d3c0919d36e3cb0aa.png)
验证
以上就完成了共享设置,我们来验证下,在21上创建一个文本文件:
![4fb3400034dd39aeb5ede1324bb4b67a.png](https://img-blog.csdnimg.cn/img_convert/4fb3400034dd39aeb5ede1324bb4b67a.png)
去23服务器上查看:
![507a3510b01ad2d44dd314383cbc1b0f.png](https://img-blog.csdnimg.cn/img_convert/507a3510b01ad2d44dd314383cbc1b0f.png)
23也有了test.txt文件。