当系统要求高可靠、高性能时,一般采用分布式部署方案。应用服务器分布式部署比较成熟,应用中用到的文件(如文件、图片等上传下载)系统有如下几种方案:
1、存储在文件目录:传统处理方式。
2、存储到存储云上:按相关存储云的api开发即可,不涉及物理部署。
3、存储到数据库:该种方式让数据大小增长很快,通常不建议采用。
本文主要针对第一种方式,在应用服务器采用分布式部署时,采用本方案构建高可用的文件系统。方案图示如下:

本图非完整系统部署图,仅仅只是关注文件系统部分。方案高可靠性体现在当主文件服务器down了后,系统自动使用从文件服务器,而不需做任何变化。
NFS:主要作用是使应用服务器访问文件服务器的文件就如访问本地文件一样。
Rsync+Sersync:Rsync用于两台文件服务器同步,Sersync监听变化的文件;两者配合才能高效同步
Keepalived:虚拟ip供应用服务器使用。正常状况下映射的主文件服务器,当主文件服务器异常时,自动切换到从文件服务器。
下面是详细安装步骤(centos7.x),对照每个服务器需安装软件按步骤安装即可。
rsync安装
检查是否安装
rpm -qa|grep rsync
没有安装执行如下命令:
yum install -y rsync xinetd
配置rsync.conf
vi /etc/rsyncd.conf,插入如下内容:
uid = nobody #设置rsync运行权限为root
gid = nobody #设置rsync运行权限为root
UID = 0
GID = 0
use chroot = no
max connections = 100
timeout = 600
strict modes=yes
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsyncd.lock
log file = /var/log/rsyncd.log
read only = no
list = no
hosts allow = 192.168.1.0/24 #允许进行数据同步的客户端IP地址,可以设置多个,用英文状态下逗号隔开
hosts deny = 0.0.0.0/32 #禁止数据同步的客户端IP地址,可以设置多个,用英文状态下逗号隔开
[files]
path = /data/files/
auth users = rsync_u
secrets file = /etc/rsyncd.pas
配置密码文件:
vi /etc/rsyncd.pas,插入如下内容:
rsync_u:201211222
改变密码文件属性:
chmod 600 /etc/rsyncd.pas
改变文件目录uid.gid属性:
chown root.root/data/files
授权nfs目录权限:
chmod 777 /data/files
防火墙设置
firewall-cmd --zone=public --add-port=873/tcp --permanent # 开放873端口
firewall-cmd --reload # 配置立即生效
启动
/usr/bin/rsync --daemon
验证
两台机子装好后,在目录/data/files下建立文件,用下面命令验证是否正确。
rsync -avzP /data/files/ rsync_u@192.168.1.222::files
注意:不要添加开机启动,通过keepalived启动
sersync安装
安装
把文件sersync2.5.4_64bit_binary_stable_final.tar.gz复制到tmp,执行如下命令:
tar xvf sersync2.5.4_64bit_binary_stable_final.tar.gz
mv GNU-Linux-x86/ /usr/local/sersync

本文介绍了在应用服务器采用分布式部署时,如何构建高可用的文件系统。主要通过NFS实现应用服务器访问文件服务器的本地化操作,利用Rsync+SerSync进行高效文件同步,以及借助Keepalived实现主从文件服务器的故障切换。详细步骤包括安装配置NFS、Rsync、Sersync以及Keepalived,确保在主文件服务器出现问题时,系统能自动切换到从服务器,保持服务连续性。
最低0.47元/天 解锁文章
4834





