NFS高可用方案(NFS+keepalived+Sersync)

NFS⾼可⽤⽅案(NFS+keepalived+Sersync)
NFS ⾼可⽤⽅案(NFS+keepalived+Sersync)
1. 简述
1.1 介绍
本⽅案 NFS 的⾼可⽤⽅案,应⽤服务器为 Client ,两台⽂件服务器分别Master和 Slave,使⽤ keepalived ⽣成⼀个虚拟 IP,使⽤Sersync 进⾏ Master 与 Slave 之间⽂件相互同步,确保⾼可⽤。
ng)]
2.安装前准备
服务器信息:
⾓⾊系统版本ip
虚拟 ip(Vip)⽆192.168.50.143
Client centos 7.5192.168.51.246
Master centos 7.5192.168.50.8
Slave centos 7.5192.168.50.71
服务器环境准备:
在 Master 和 Slave 上创建共享⽬录
mkdir /data
在 Client 上创建挂载⽬录
mkdir /qiyuesuodata
关闭 Client 、Master 和 Slave 服务器上的防⽕墙
# 关闭防⽕墙
systemctl stop firewalld
# 关闭开机⾃启
systemctl disable firewalld
3. 安装 NFS 并配置
在 Client 、Master 和 Slave 服务器上安装 NFS 服务
yum -y install nfs-utils rpcbind
配置 NFS 共享⽬录
在 Master 上执⾏
# 其中/data 为共享的⽬录,192.168.51.246 为 Client ip,如有多个私有云服务集可⽤空格分隔
# 如 echo '/data 192.168.51.246(rw,sync,all_squash) 192.168.51.247(rw,sync,all_squash)' >> /etc/exports
echo'/data 192.168.51.246(rw,sync,all_squash)'>> /etc/exports
# 开启服务
systemctl start rpcbind && systemctl start nfs
# 设置开机⾃启
systemctl enable rpcbind && systemctl enable nfs
# 出现:Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.即成功
# 其中/data 为共享的⽬录,192.168.51.246 为 Client ip,如有多个私有云服务集可⽤空格分隔
# 如 echo '/data 192.168.51.246(rw,sync,all_squash) 192.168.51.247(rw,sync,all_squash)' >> /etc/exports
echo'/data 192.168.51.246(rw,sync,all_squash)'>> /etc/exports
# 开启服务
systemctl start rpcbind && systemctl start nfs
# 设置开机⾃启oah
systemctl enable rpcbind && systemctl enable nfs
# # 出现:Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.即成功测试挂载是否成功
在 Client 上执⾏挂载测试
# 测试 Master
# 其中 ip 为 Master 的 ip,/data为 Master 共享的⽬录,/qiyuesuodata 为需要挂载⾄ Client 的⽬录
mount -t nfs 192.168.50.8:/data /qiyuesuodata
# 检查
df -Th
# 出现  192.168.50.8:/data      nfs4      29G  7.6G  22G  27% /qiyuesuodata 即为成功
# 去除挂载
umount /qiyuesuodata
# 测试 Slave
# 其中 ip 为 Master 的 ip,/data为 Master 共享的⽬录,/qiyuesuodata 为需要挂载⾄ Client 的⽬录
mount -t nfs 192.168.50.71:/data /qiyuesuodata
# 检查
df -Th
# 出现  192.168.50.71:/data      nfs4      29G  7.6G  22G  27% /qiyuesuodata 即为成功
# 去除挂载
umount /qiyuesuodata
4. 配置⽂件同步
在 Slave 进⾏同步 Master 数据
# 安装 rsync
yum -y install rsync.x86_64
# 修改 /f 如下,其中 hosts allow 填写 master ip
uid = nfsnobody
gid = nfsnobody
port = 873
pid file= /var/rsyncd.pid
log file= /var/log/rsyncd.log
use chroot= no
max connections = 200
read only =false
list =false
fake super =yes
ignore errors
[data]
path = /data
auth users= qiyuesuo
secrets file= /etc/rsync_salve.pass
hosts allow = 192.168.50.8
# ⽣成认证⽂件
echo'qiyuesuo:qiyuesuo123'> /etc/rsync_salve.pass
chmod 600 /etc/rsync_salve.pass
# 修改⽂件夹权限
chown -R nfsnobody:nfsnobody /data/
# 启动服务
rsync --daemon --config=/f
yum -y install rsync.x86_64
chown -R nfsnobody:nfsnobody /data/
echo"qiyuesuo123"> /etc/rsync.pass
chmod 600 /etc/rsync.pass
#创建测试⽂件,测试推送
cd /data/
echo"This is test file">
rsync -arv /data/ qiyuesuo@192.168.50.71::data --password-file=/etc/rsync.pass
#在 slave 上测试
ls /data
# 出现 即可
在 Master 上配置⾃动同步
cd /usr/local/
wget dl.qiyuesuo/private/nfs/sersync2.5.4_64bit_binary_stable_
tar xvf sersync2.5.4_64bit_binary_stable_
mv GNU-Linux-x86/ sersync
cd sersync/
# 修改配置⽂件
sed -ri 's#<delete start="true"/>#<delete start="false"/>#g' l
sed -ri '24s#<localpath watch="/opt/tongbu">#<localpath watch="/data">#g' l
sed -ri '25s#<remote ip="127.0.0.1" name="tongbu1"/>#<remote ip="192.168.50.71" name="data"/>#g' l
sed -ri '30s#<commonParams params="-artuz"/>#<commonParams params="-az"/>#g' l
sed -ri '31s#<auth start="false" users="root" passwordfile="/etc/rsync.pas"/>#<auth start="true" users="qiyuesuo" passwordfile="/etc/rsync.pass"/>#g' l
sed -ri '33s#<timeout start="false" time="100"/><!-- timeout=100 -->#<timeout start="true" time="100"/><!-- timeout=100 -->#g' l
#启动Sersync
/usr/local/sersync/sersync2 -dro /usr/local/l
测试
# 在 master 中的/data ⽬录创建⽂件
touch test
# 查看 salve 中的 /data 是否有该⽂件
以上就做完了 salve 同步 master 的⽂件,但是当 master 宕机后恢复,master ⽆法同步 salve ⽂件,所以要配置 master 同步 salve ⽂件
在 Master 进⾏同步 slave 数据
# 修改 /f 如下,其中 hosts allow 填写 slave ip
uid = nfsnobody
gid = nfsnobody
port = 873
pid file= /var/rsyncd.pid
log file= /var/log/rsyncd.log
use chroot= no
max connections = 200
read only =false
list =false
fake super =yes
ignore errors
[data]
单相轴流风机
path = /data
auth users= qiyuesuo
secrets file= /etc/rsync_master.pass
hosts allow = 192.168.50.71
# ⽣成认证⽂件
大圆针织机echo'qiyuesuo:qiyuesuo123'> /etc/rsync_master.pass
chmod 600 /etc/rsync_master.pass
# 修改⽂件夹权限
chown -R nfsnobody:nfsnobody /data/
# 启动服务
气模rsync --daemon --config=/f
在 Slave 上测试
chown -R nfsnobody:nfsnobody /data/
echo"qiyuesuo123"> /etc/rsync.pass
chmod 600 /etc/rsync.pass
#创建测试⽂件,测试推送
cd /data/
echo"This is test file">
rsync -arv /data/ qiyuesuo@192.168.50.8::data --password-file=/etc/rsync.pass
#在 slave 上测试
ls /data
# 出现 即可
在 Slave 上配置⾃动同步
cd /usr/local/
wget dl.qiyuesuo/private/nfs/sersync2.5.4_64bit_binary_stable_
tar xvf sersync2.5.4_64bit_binary_stable_
mv GNU-Linux-x86/ sersync
汽车香水座cd sersync/
# 修改配置⽂件
sed -ri 's#<delete start="true"/>#<delete start="false"/>#g' l
sed -ri '24s#<localpath watch="/opt/tongbu">#<localpath watch="/data">#g' l
sed -ri '25s#<remote ip="127.0.0.1" name="tongbu1"/>#<remote ip="192.168.50.8" name="data"/>#g' l
sed -ri '30s#<commonParams params="-artuz"/>#<commonParams params="-az"/>#g' l
sed -ri '31s#<auth start="false" users="root" passwordfile="/etc/rsync.pas"/>#<auth start="true" users="qiyuesuo" passwordfile="/etc/rsync.pass"/>#g' l
sed -ri '33s#<timeout start="false" time="100"/><!-- timeout=100 -->#<timeout start="true" time="100"/><!-- timeout=100 -->#g' l
#启动Sersync
/usr/local/sersync/sersync2 -dro /usr/local/l
⾄此我们已经做好了主从相互同步的操作
##5. 安装 Keepalived
在 Master 上执⾏
yum -y install keepalived.x86_64
# 修改 /etc/f
# 其中 enp0s3 为绑定⽹卡名称,可以使⽤ ip addr 命令查看
# 其中 192.168.50.143  为虚拟 ip ,注意不要和其它 ip 冲突
! Configuration File for keepalived
global_defs {
router_id NFS-Master
}
vrrp_instance VI_1 {
state MASTER
interface enp0s3
virtual_router_id 51
priority 150
advert_int 1
authentication {
auth_type PASS
auth_pass qiyuesuo123
}
virtual_ipaddress {
192.168.50.143
}
}
# 启动服务
systemctl start  keepalived.service && systemctl enable keepalived.service 在 Slave 上执⾏
yum -y install keepalived.x86_64
# 修改 /etc/f
# 其中 enp0s3 为绑定⽹卡名称,可以使⽤ ip addr 命令查看
# 其中 192.168.50.143  为虚拟 ip ,注意不要和其它 ip 冲突
! Configuration File for keepalived
global_defs {
router_id NFS-Slave
}
vrrp_instance VI_1 {
state MASTER
喉管interface enp0s3
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass qiyuesuo123
}
virtual_ipaddress {
192.168.50.143
}
}
# 启动服务
systemctl start  keepalived.service && systemctl enable keepalived.service 查看虚拟IP是否存在
在 Master 上执⾏:
ip a |grep  192.168.50.143
# 出现
# inet 192.168.50.143/32 scope global enp0s3
# 即成功

本文发布于:2024-09-23 17:10:45,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/129112.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:测试   服务   挂载   开机   主从
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议