网络连接选择 NAT模式 ,启动后使用 ip add 发现没有自动分配ip地址,是因为CentOS 7默认是不启动网卡的,解决方法如下:
打开配置文件,把 ONBOOT=no 这一项改为 ONBOOT=yes ,然后 :wq 保存退出,然后重启网络服务:
这时候再输入 ip add 会发现ip地址有了。
本文Master ip为 192.168.56.131 ,Bcakup ip为 192.168.56.132 。
虚拟ip(vip)定义为 192.168.56.188 。
安装gcc
进入nginx-1.6.2并执行configure文件
成功后会在/usr/local/nginx目录下看到 conf、html、logs、sbin 四个目录。
启动命令:
停止命令:
重启命令:
使用如下命令查看相关端口是否已启动Nginx
浏览器输入Master的ip地址: http://192.168.56.131 ,出现Nginx的欢迎页面即成功启用Nginx。
同理,Backup浏览器输入: http://192.168.56.132 ,同样出现Nginx的欢迎页面。
注意这个地方,html中最后一行 "Thank you for using nginx." 本文针对Master和Backup分别进行了修改便于热备时更好的区分服务是否切换成功,修改的文件在
如果启动成功,但进入不了欢迎页面,则可能需要关闭firewalld防火墙:
进入keepalived-1.2.18并执行configure文件
在 /etc/ 目录下创建keepalived文件夹
将keepalived配置文件复制到/etc/keepalived下
将keepalived脚本文件复制到/etc/相关目录下
创建keepalived软链接
设置开机启动
安装完毕。
进入/etc/keepalived/目录下打开keepalived.conf文件进行修改
在/etc/keepalived/目录下创建sh脚本文件
1、安装nano
2、使用nano创建nginx_check.sh脚本
3、打开nginx_check.sh并编辑如下内容
(注意`符号,非'符号)
4、脚本授权
安装并配置完毕后,可以分别启动两台虚拟机上的Nginx和Keepalived进行热备的验证了。
启动Nginx:
启动Keepalived:
关闭Keepalived:
查看nginx进程:
查看keepalived进程:
分别启动Nginx和Keepalived后,Master输入 ip add 查看ip多了一个 192.168.56.188
打开浏览器输入ip地址: http://192.168.56.188 看到Nginx的欢迎页面
此时nginx131说明为主节点。
然后我们将Keepalived关闭
或kill掉Nginx进程,因为有nginx_check.sh脚本会检测如果没有Nginx进程运行也会自动将Keepalived关闭
会发现,节点由Master切换到了Backup:
热备成功。
主从复制作用:数据备份、读写分离双机热备份:部署两个节点的MongoDB服务,配置一主一从,主节点添加数据,将自动备份到从节点上面,保证主机宕机后数据不丢失,同时可以继续提供数据读取服务(主服务挂掉,从服务将无法在进行写入数据,只能提供数据读取服务)
一主多从:部署多个节点的MongoDB服务,配置一主多从,数据也会自动备份到所有从节点上面,保证主机宕机后数据不丢失,同时可以根据从节点的优先级进行选取新的主节点,继续提供读写服务(主从关系跟服务设置的优先级有直接关系 优先级参数:priority 数字越大优先级越高)
使用上面的方式,在不同服务器上安装并启动MongoDB服务
将启动时使用的配置文件mongodb.conf中添加下面的副文本集名称配置,将权限控制参数改为false(auth=false),然后将服务进行重新启动即可(testrs是自定义的副本集名称)
#使用此设置来配置复制副本集。指定一个副本集名称作为参数,所有主机都必须有相同的名称作为同一个副本集
replSet=testrs
然后启动每个服务的客户端查看当前节点为主节点还是从节点;
1). 如果服务部署在不同服务器上,直接启动/bin目录下的mongo即可 命令:./ mongo
2). 如果服务部署在同一台服务器上,使用不同端口及配置文件进行启动的,启动客户端使用该命令 命令:./mongo 127.0.0.1:27018/
经过上面的一系列 *** 作后,主从配置就完成了,接下来可以进行数据同步测试
第一步:在主库上面切换到admin,然后进行添加数据(命令:db.testdb1.insert([{"name":"zs"}]))
在从库上查询该数据(命令:db.testdb1.find({name:"zs"})),会出现下面如图的错误,因为从库没有查询数据权限,所以需要设置查询权限
设置从库查询权限,使用命令:rs.secondaryOk()
然后在使用查询命令进行查询(命令:db.testdb1.find({name:"zs"}))就会看到如下图的查询结果:
如上图所示,数据已经同步到从库上面了,这样双机热备份就已经实现了,上面的情况不包含权限控制
上面的情况已经完成了MongoDB的主从复制功能,但是我们把权限没有开放,启动时使用的配置中auth配置的值为false,说明没有添加权限,接下来就开放一下权限配置;
首先需要主从之间通信的一个keyFile文件,根据官网提供的说明,这个keyfile是可以任意内容的,只要保证所有集群中的机器都拥有同样的文件即可。
我这里将keyFile文件放到了MongoDB的bin目录下了,使用openssl rand -base64 1024 >/usr/local/mongodb-master/bin/mongodb.key 命令生成;
然后将mongodb.key文件复制到每台从服务上面,在每台服务的启动文件上添加 keyFile=/usr/local/mongodb-master/keyfile/mongodb.key 配置项 ,然后将auth属性值改为true,这样就完成了权限配置
重启主从两个节点,这样主机添加的数据,就会同步到从机上面了!!!
添加或删除从节点参考文章:
https://blog.csdn.net/weixin_44839444/article/details/105666163
Linux上的heartbeat双机热备服务架设【一】 安装前环境设定
两台主机硬件环境(不必完全一致):
CPU: Xeon 3G *2 (EM64T)
MEM: 2G
NIC: Intel 1G *2
eth0: 对外IP
eth1: 对内IP(HA专用)
两台主机的eth1使用双机对联线直接连接。
分区方式:
Filesystem 容量 挂载点
/dev/sda2 9.7G /
/dev/sda6 45G /Datas
/dev/sda1 99M /boot
none2.0G /dev/shm
/dev/sda3 9.7G /opt
另外每台主机应预留500M的raw空间或者更多来作为共用空间被HA使用。
*** 作系统:
RedHat Enterprise 4 Update2 (2.6.9-22 EL)
预安装软件:
@ X Window System
@ GNOME Desktop Environment
@ KDE Desktop Environment
@ Editors
@ Engineering and Scientific
@ Graphical Internet
@ Text-based Internet
@ Authoring and Publishing
@ Server Configuration Tools
@ Development Tools
@ Kernel Development
@ X Software Development
@ GNOME Software Development
@ KDE Software Development
@ Administration Tools
@ System Tools
【二】安装前网络环境设定:
node1: 主机名:servers201 ( HA01 )
eth0: 192.168.10.201 //对外IP地址
eth1: 10.0.0.201 //HA心跳使用地址
node2: 主机名:servers202 ( HA02 )
eth0: 192.168.10.202 //对外IP地址
eth1: 10.0.0.202 //HA心跳使用地址
特别注意要检查以下几个文件:
/etc/hosts
/etc/host.conf
/etc/resolv.conf
/etc/sysconfig/network
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-eth1
/etc/nsswitch.conf
#vi /etc/hosts
node1的hosts内容如下:
127.0.0.1 localhost.localdomain localhost
192.168.10.201 servers201 HA01
10.0.0.201 HA01
10.0.0.202 HA02
192.168.10.202 server202
node2的hosts内容如下:
127.0.0.1 localhost.localdomain localhost
192.168.10.202 servers202 HA02
10.0.0.202 HA02
10.0.0.201 HA01
192.168.10.201 server201
#cat /etc/host.conf
order hosts,bind
#cat /etc/resolv.conf
nameserver 61.139.2.69 //DNS地址
#cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=servers201 //主机名
GATEWAY="192.168.10.1" //网关
GATEWAY="eth0" //网关使用网卡
ONBOOT=YES //启动时加载
FORWARD_IPV4="yes" //只允许IPV4
#cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.10.201
NETMASK=255.255.255.0
GATEWAY=192.168.10.1
TYPE=Ethernet
IPV6INIT=no
#cat /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
ONBOOT=yes
BOOTPROTO=none
IPADDR=10.0.0.201
NETMASK=255.255.255.0
TYPE=Ethernet
[node1] 与 [node2] 在上面的配置中,除了
/etc/hosts
/etc/sysconfig/network
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-eth1
要各自修改外,其他一致。
配置完成后,试试在各自主机上ping对方的主机名,应该可以ping通:
/root#ping HA02
PING HA02 (10.0.0.202) 56(84) bytes of data.
64 bytes from HA02 (10.0.0.202): icmp_seq=0 ttl=64 time=0.198 ms
64 bytes from HA02 (10.0.0.202): icmp_seq=1 ttl=64 time=0.266 ms
64 bytes from HA02 (10.0.0.202): icmp_seq=2 ttl=64 time=0.148 ms
--- HA02 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 0.148/0.204/0.266/0.048 ms, pipe 2
【三】安装HA 与HA依赖包
rpm -Uvh libnet-1.1.2.1-1.rh.el.um.1.i386.rpm //可以不装
rpm -Uvh heartbeat-pils-2.0.4-1.el4.i386.rpm
rpm -Uvh heartbeat-stonith-2.0.4-1.el4.i386.rpm
rpm -Uvh heartbeat-2.0.4-1.el4.i386.rpm
rpm -Uvh ipvsadm-1.24-5.i386.rpm
【四】 配置 HA的各配置文件
配置心跳的加密方式:authkeys
#vi /etc/ha.d/authkeys
如果使用双机对联线(双绞线),可以配置如下:
#vi /etc/hc.d/authkeys
auth 1
1 crc
存盘退出,然后
#chmod 600 authkeys
配置心跳的监控:haresources
#vi /etc/ha.d/haresources
各主机这部分应完全相同。
server201 IPaddr::192.168.10.200 ipvsadm httpd
指定 server201调用ipvsadm启动http服务,系统附加一个虚拟IP 192.168.10.200 给eth0:0
这里如果server201宕机后,server202可以自动启动http服务,并新分配IP 192.168.10.200给server202的eth0:0
配置心跳的配置文件:ha.cf
#vi /etc/ha.d/ha.cf
logfile /var/log/ha_log/ha-log.log ## ha的日志文件记录位置。如没有该目录,则需要手动添加
bcast eth1 ##使用eth1做心跳监测
keepalive 2 ##设定心跳(监测)时间时间为2秒
warntime 10
deadtime 30
initdead 120
hopfudge 1
udpport 694 ##使用udp端口694 进行心跳监测
auto_failback on
node server201 ##节点1,必须要与 uname -n 指令得到的结果一致。
node server202 ##节点2
ping 192.168.10.1 ##通过ping 网关来监测心跳是否正常。
respawn hacluster /usr/lib64/heartbeat/ipfail
apiauth ipfail gid=root uid=root
debugfile /Datas/logs/ha_log/ha-debug.log
设置ipvsadm的巡回监测
ipvsadm -A -t 192.168.10.200:80 -s rr
ipvsadm -a -t 192.168.10.200:80 -r 192.168.10.201:80 -m
ipvsadm -a -t 192.168.10.200:80 -r 192.168.10.202:80 -m
执行后进行监测:
#ipvsadm --list
如果返回结果与下相同,则设置正确。
IP Virtual Server version 1.2.0 (size=4096)
Prot LocalAddress:Port Scheduler Flags
->RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.10.200:http rr
->server202:http Local 1 0 0
->server201:http Masq 1 0 0
【五】 HA服务的启动、关闭以及测试
启动HA: service heartbeat start
关闭HAservice heartbeat stop
系统在启动时已经自动把heartbeat 加载了。
使用http服务测试 heartbeat
首先启动httpd服务
#service httpd start
编辑各自主机的测试用html文件,放到/var/www/html/目录下。
启动node1的heartbeat,并执行这个指令进行监控: heartbeat status
【六】 防火墙设置
heartbeat 默认使用udp 694端口进行心跳监测。如果系统有使用iptables 做防火墙,应记住把这个端口打开。
#vi /etc/sysconfig/iptables
加入以下内容
-A RH-Firewall-1-INPUT -p udp -m udp --dport 694 -d 10.0.0.201 -j ACCEPT
意思是udp 694端口对 对方的心跳网卡地址 10.0.0.201 开放。
#service iptables restart
重新加载iptables。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)