设为首页 收藏本站
查看: 1105|回复: 0

[经验分享] 高可用集群技术之heartbeat应用案例详解(二)

[复制链接]

尚未签到

发表于 2019-1-7 13:13:31 | 显示全部楼层 |阅读模式
  在上一节高可用集群技术之heartbeat应用详解(一),我们分析了heartbeat原理及heartbeat简单的应用,下面我们以实战生产案例应用heartbeat高可用技术:
  

  生产环境应用实例(一):基于heartbeat+nfs实现mysql高可用
  (1)nfs共享存储服务配置如下:
--建立分区
# fdisk /dev/sda
# kpartx -l /dev/sda
# kpartx -af /dev/sda
# partx -a /dev/sda
--创建LVM逻辑卷管理
# pvcreate /dev/sda3
# vgcreate myvg /dev/sda3
# lvcreate -L 10G -n mydata myvg
--格式化LVM逻辑卷并创建mysql用户及目录
# mke2fs -j /dev/myvg/mydata
# groupadd -g 3306 mysql
# useradd -u 3306 -g mysql -s /sbin/nologin -M mysql
# mkdir /mydata
# vim /etc/fstab
追加此行:
/dev/myvg/mydata    /mydata            ext4    defaults    0 0
# mount -a
# mkdir /mydata/{data,binlogs}
# chown -R mysql.mysql /mydata/{data,binlogs}
# ll /mydata/
total 24
drwxr-xr-x 2 mysql mysql  4096 Jul 25 12:11 binlogs
drwxr-xr-x 2 mysql mysql  4096 Jul 25 12:11 data
--输出nfs文件共享
# vim /etc/exports
/mydata        172.16.0.0/16(rw,no_root_squash)
# exportfs -arv
exporting 172.16.0.0/16:/mydata  (2)配置集群节点node1的mysql数据库服务:
--配置前先检查NFS共享存储是否配置成功
# groupadd -g 3306 mysql
# useradd -g 3306 -u 3306 -s /sbin/nologin -M mysql
# mkdir /mydata
# mount 172.16.100.9:/mydata /mydata/
# cd /mydata/;ls
binlogs  data  lost+found
--安装mysql数据库服务
# tar xf mariadb-10.0.10-linux-x86_64.tar.gz -C /usr/local/
# cd /usr/local/
# ln -sv mariadb-10.0.10-linux-x86_64 mysql
# cd mysql/
# chown -R root.mysql ./*
# scripts/mysql_install_db --user=mysql --datadir=/mydata/data/
# mkdir /etc/mysql
# cp support-files/my-large.cnf /etc/mysql/my.cnf
# vim /etc/mysql/my.cnf
配置以下选项:
thread_concurrency = 4
datadir = /mydata/data
innodb_file_per_table = ON
log-bin=/mydata/binlogs/master-bin
# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
# chkconfig --add mysqld
# chkconfig mysqld off
--启动mysql服务
# service mysqld start
# /usr/local/mysql/bin/mysql
--创建samleedb数据库测试
MariaDB [(none)]> CREATE DATABASE samleedb;
MariaDB [(none)]> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| samleedb           |
| test               |
+--------------------+
建立远程mysql远程用户测试:
MariaDB [(none)]>GRANT ALL ON *.* to 'root'@'%' IDENTIFIED BY 'redhat';
MariaDB [(none)]> FLUSH PRIVILEGES;
--停止mysql服务及卸载NFS目录
# service mysqld stop
# umount /mydata/  

  (3)配置集群节点node2的mysql数据库服务:
--配置前先检查NFS共享存储是否配置成功
# groupadd -r -g 3306 mysql
# useradd -g 3306 -u 3306 -s /sbin/nologin -M mysql
# mkdir /mydata
# mount 172.16.100.9:/mydata /mydata
# ll /mydata/
total 24
drwxr-xr-x. 2 nobody nobody  4096 Jul 25 13:18 binlogs
drwxr-xr-x. 6 nobody nobody  4096 Jul 25 13:18 data
drwx------. 2 root   root   16384 Jul 25 12:06 lost+found
# usermod -s /bin/bash mysql
# su - mysql
su: warning: cannot change directory to /home/mysql: No such file or directory
-bash-4.1$ cd /mydata/data/
-bash-4.1$ touch a
-bash-4.1$ rm a
-bash-4.1$ exit
logout
--安装mysql数据库服务
# tar xf mariadb-10.0.10-linux-x86_64.tar.gz -C /usr/local/
# cd /usr/local/
# ln -sv mariadb-10.0.10-linux-x86_64 mysql
# cd mysql/
# chown -R root.mysql ./*
# scripts/mysql_install_db --user=mysql --datadir=/mydata/data/
# mkdir /etc/mysql
# cp support-files/my-large.cnf /etc/mysql/my.cnf
# vim /etc/mysql/my.cnf
配置以下选项:
thread_concurrency = 4
datadir = /mydata/data
innodb_file_per_table = ON
log-bin=/mydata/binlogs/master-bin
# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
#  chmod +x /etc/rc.d/init.d/mysqld
# chkconfig --add mysqld
# chkconfig mysqld off
--启动mysql服务
# service mysqld start
# /usr/local/mysql/bin/mysql
--查询数据库及日志文件测试
MariaDB [(none)]> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| samleedb           |
| test               |
+--------------------+
MariaDB [(none)]> SHOW BINARY LOGS;
+-------------------+-----------+
| Log_name          | File_size |
+-------------------+-----------+
| master-bin.000001 |       461 |
| master-bin.000002 |       327 |
+-------------------+-----------+
--停止mysql服务及卸载NFS目录
# service mysqld stop
# umount /mydata/  (4)使用gui图形化配置heartbeat实现mysql高可用配置
  (1)添加mysqlservice组并配置资源VIP:myqlip 如下图所示:
  
  (2)添加NFS共享存储资源mysqlstore资源,共享数据库文件。配置如下图:
  

  (3)配置资源mysqlserver 如下图所示:
  
  mysql高可用测试如下所示:
  
  
  生产环境应用实例(二):基于heartbeat+ipvs实现LVS高可用(简单应用)
  1.服务器架构如下:
node1.samlee.com 172.16.100.6 为:Director1
node2.samlee.com 172.16.100.7 为:Director2
node3.samlee.com 172.16.100.11 为:RealServer1
node4.samlee.com 172.16.100.12 为:RealServer2
VIP:172.16.100.99
此时要把前四个地址和主机名同步到各主机,并且按照分配配置主机名  2.配置RealServer服务器:
--配置RealServer1服务器
# echo "Web from Node3_RS1" > /var/www/html/index.html
# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
# echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce
# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
# echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
# ifconfig lo:0 172.16.100.99 netmask 255.255.255.255 broadcast 172.16.100.99 up
# route add -host 172.16.100.99 dev lo:0
# service httpd start        
# curl http://172.16.100.99
Web from Node3_RS1
# curl http://172.16.100.11
Web from Node3_RS1
--配置RealServer2服务器
# echo "Web from Node4_RS2" > /var/www/html/index.html
# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
# echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce
# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
# echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
# ifconfig lo:0 172.16.100.99 netmask 255.255.255.255 broadcast 172.16.100.99 up
# route add -host 172.16.100.99 dev lo:0
# service httpd start        
# curl http://172.16.100.99
Web from Node4_RS2
# curl http://172.16.100.12
Web from Node4_RS2  2.配置Director服务:
--配置Director1集群节点(删除所有集群节点资源,并停止heartbeat服务)
# service heartbeat stop
# ssh node2 'service heartbeat stop'
--安装ipvsadm
# yum -y install ipvsadm
# chkconfig ipvsadm off
# ifconfig eth0:0 172.16.100.99/16 up
# route add -host 172.16.100.99 dev eth0:0
# ipvsadm -A -t 172.16.100.99:80 -s rr
# ipvsadm -a -t 172.16.100.99:80 -r 172.16.100.11 -g
# ipvsadm -a -t 172.16.100.99:80 -r 172.16.100.12 -g
# service ipvsadm save
# service ipvsadm stop
# ifconfig eth0:0 down
------------------------------------------------------------
------------------------------------------------------------
--配置Director2集群节点
# yum -y install ipvsadm
# chkconfig ipvsadm off
# scp node1:/etc/sysconfig/ipvsadm /etc/sysconfig/
# ifconfig eth0:0 172.16.100.99/16 up
# route add -host 172.16.100.99 dev eth0:0
# ipvsadm -R < /etc/sysconfig/ipvsadm
# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  172.16.100.99:80 rr
  -> 172.16.100.11:80             Route   1      0          0         
  -> 172.16.100.12:80             Route   1      0          0
# service ipvsadm stop
# ifconfig eth0:0 down
--启动heartbeat服务
# service heartbeat start
# ssh node1 'service heartbeat start'
---使用gui图形化配置LVS高可用---
配置资源如下:
组:director
----资源:vip
--------资源类型:ip:172.16.100.99
----------------:nic:eth0
----------------:ifabel:0
----------------:cidr_netmask:32
----------------:broadcast:172.16.100.99
----------------:lvs_support:true
----资源:ipvsadm
--------资源类型:ipvsadm  #使用heartbeat-gui图形化配置过程如下:
  
  ##测试heartbeat+LVS高可用:
  
  
  
  生产环境应用实例(二):基于heartbeat+ipvs实现LVS高可用(实现健康状态检测)
  

  1.服务器架构如下:
node1.samlee.com 172.16.100.6 为:Director1
node2.samlee.com 172.16.100.7 为:Director2
node3.samlee.com 172.16.100.11 为:RealServer1
node4.samlee.com 172.16.100.12 为:RealServer2
VIP:172.16.100.99
此时要把前四个地址和主机名同步到各主机,并且按照分配配置主机名  2.配置RealServer服务器:
--配置RealServer1服务器
# echo "Web from Node3_RS1" > /var/www/html/index.html
#  echo "OK" > /var/www/html/.health.html
# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
# echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce
# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
# echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
# ifconfig lo:0 172.16.100.99 netmask 255.255.255.255 broadcast 172.16.100.99 up
# route add -host 172.16.100.99 dev lo:0
# service httpd start        
# curl http://172.16.100.99
Web from Node3_RS1
# curl http://172.16.100.11
Web from Node3_RS1
--配置RealServer2服务器
# echo "Web from Node4_RS2" > /var/www/html/index.html
#  echo "OK" > /var/www/html/.health.html
# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
# echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce
# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
# echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
# ifconfig lo:0 172.16.100.99 netmask 255.255.255.255 broadcast 172.16.100.99 up
# route add -host 172.16.100.99 dev lo:0
# service httpd start        
# curl http://172.16.100.99
Web from Node4_RS2
# curl http://172.16.100.12
Web from Node4_RS2  2.配置Director服务:
--配置Director1集群节点(删除所有集群节点资源,并停止heartbeat服务)
# service heartbeat stop
# ssh node2 'service heartbeat stop'
--安装ipvsadm
# yum -y install ipvsadm
# chkconfig ipvsadm off
--安装配置ldirectord
# rm -rf /etc/sysconfig/ipvsadm    --删除ipvs规则
# yum -y install  heartbeat-ldirectord-2.1.4-12.el6.x86_64.rpm
# chkconfig ldirectord off
# cp /usr/share/doc/heartbeat-ldirectord-2.1.4/ldirectord.cf /etc/ha.d/
# vim /etc/ha.d/ldirectord.cf
checktimeout=3
checkinterval=1
autoreload=yes
logfile="/var/log/ldirectord.log"
quiescent=yes
# Sample for an http virtual service
virtual=172.16.100.99:80
        real=172.16.100.11:80 gate
        real=172.16.100.12:80 gate
        fallback=127.0.0.1:80 gate
        service=http
        request=".health.html"
        receive="OK"
        scheduler=rr
--启动http服务
# echo "Maintanance Time" > /var/www/html/index.html
# service httpd start
------------------------------------------------------------
------------------------------------------------------------
--配置Director2集群节点
# rm -rf /etc/sysconfig/ipvsadm    --删除ipvs规则
# yum -y install  heartbeat-ldirectord-2.1.4-12.el6.x86_64.rpm
# chkconfig ldirectord off
# cp /usr/share/doc/heartbeat-ldirectord-2.1.4/ldirectord.cf /etc/ha.d/
# vim /etc/ha.d/ldirectord.cf
checktimeout=3
checkinterval=1
autoreload=yes
logfile="/var/log/ldirectord.log"
quiescent=yes
# Sample for an http virtual service
virtual=172.16.100.99:80
        real=172.16.100.11:80 gate
        real=172.16.100.12:80 gate
        fallback=127.0.0.1:80 gate
        service=http
        request=".health.html"
        receive="OK"
        scheduler=rr
--启动http服务
# echo "Maintanance Time" > /var/www/html/index.html
# service httpd start
--启动heartbeat服务
# service heartbeat start
# ssh node1 'service heartbeat start'
---使用gui图形化配置LVS高可用---
配置资源如下:
组:director
----资源:vip
--------资源类型:ip:172.16.100.99
----------------:nic:eth0
----------------:ifabel:0
----------------:cidr_netmask:32
----------------:broadcast:172.16.100.99
----------------:lvs_support:true
----资源:ldirectord
--------资源类型:configfile:/etc/ha.d/ldirectord.cf  #使用heartbeat-gui图形化配置过程如下:
  
  ##在node2节点上查询ipvs规则
# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  172.16.100.99:80 rr
  -> 172.16.100.11:80             Route   1      0          0         
  -> 172.16.100.12:80             Route   1      0          0  ##停止Rs1和Rs2测试如下:

  以上关于heartbeat所有应用内容。





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-660374-1-1.html 上篇帖子: HeartBeat搭建MySQL数据库双主热备高可用环境 下篇帖子: 【HA】开源版HeartBeat + DRBD(分布式存储)+MySql
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表