nfs与rsync

本文介绍了如何在传统应用中使用NFS(网络文件系统)进行热备,包括配置服务器端NFS服务、设置共享路径、防火墙规则,以及客户端的挂载和文件同步策略,针对高IO场景提供了rsync同步本地磁盘的解决方案。
摘要由CSDN通过智能技术生成

对于传统的热备应用,通常采用的是两个实例共享一块磁盘,利用lvs提供的虚拟ip来对外提供服务。共享磁盘可以通过nfs来实现:
主实例上共享出nfs服务,从实例直接挂载作为数据盘(由于从实例正常情况下不提供服务,主实例使用本地磁盘并提供NFS服务给从实例的方案可以报障正常情况时应用的性能)。
对于磁盘IO特别高的应用,可以考虑将nfs挂载到从实例后,利用rsync同步至本地的磁盘,并用本地磁盘提供服务的方案。

服务端

  1. 安装
sudo yum install nfs-utils nfs-utils-lib
sudo systemctl start nfs-server
sudo systemctl enable nfs-server

# 替换client_ip(可用域名和CIDR格式IP)和shared path
echo '/share/data client_ip(rw,sync,no_root_squash)' >> /etc/exports
# 重新加载
sudo exportfs -arv
# 查看共享情况
exportfs -v
  1. 添加防火墙规则
sudo firewall-cmd --permanent --zone=public --add-service=nfs
sudo firewall-cmd --permanent --zone=public --add-service=mountd
sudo firewall-cmd --permanent --zone=public --add-service=rpc-bind
sudo firewall-cmd --reload

客户端

sudo yum install nfs-utils

# 替换 share data和server_ip
sudo mkdir -p /share/data
sudo mount -t nfs server_ip:/share/data /share/data

文件同步

sudo yum install rsync
# 将/share/data/(源必须以/结尾)同步至/mnt/data(利用文件锁同步任务堆积)
flock -xn /tmp/rsync_nfs -c 'rsync -a --delete /share/data/ /mnt/data >/tmp/rsync.log 2>&1'
# 定时执行(替换shell)
crontab -e
*/5 * * * * shell
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值