master

Keepalived高可用集群

生来就可爱ヽ(ⅴ<●) 提交于 2020-01-25 14:00:03
一、服务介绍 keepalive起初是专为LVS设计的,专门用来监控LVS集群系统红各个服务节点的状态,后来又加入了VRRP的功能,因此不了配合LVS服务外,也可以作为其他服务(nginx,haproxy)的高可用软件,VRRP是virtual router redundancy protocol(虚拟路由器冗余协议)的缩写,VRRP出现的目的就是为了解决静态路由出现的单点故障问题,他能够保证网络的不间断、稳定的运行。所以,keepalive一方面具有LVS(cluster nodes healthchecks)功能,另一方面也具有LVS directors failover功能。 主要功能:实现LB Master主机和backup主机之间故障转义和自动切换。 二、keepalived故障切换转义原理介绍 2.1 切换原理 keepalived directors高可用对之间的故障切换转移,是通过VRRP协议(virtual router redundancy Protocol虚拟路由器冗余协议)来实现的。 在keepalived Directors正常工作时,主director节点会不断的向备节点广播心跳消息,用以告诉备节点自己还活着,当主节点发生故障时,备节点就无法继续检测到主节点的心跳,进而调用自身的接管程序,接管主节点的IP资源及服务。而当主节点恢复故障时

keepalived

删除回忆录丶 提交于 2020-01-25 13:58:51
一、 HA集群中的相关术语 1.节点(node) 运行 HA进程的一个独立主机,称为节点,节点是HA的核心组成部分,每个节点上运行着操作系统和高可用软件服务,在高可用集群中,节点有主次之分,分别称之为主节点/备份节点,每个节点拥有唯一的主机名,并且拥有属于自己的一组资源,例如,磁盘,文件系统,网络地址和应用服务等,主节点上一般运行着一个或多个应用服务,而备节点一般处于监控状态 2.资源(resource) 资源是一个节点可以控制的实体,并且当节点发生故障时,这些资源能够被其他节点接管, HA集群软件中,可以当做资源的实体有: ( 1)磁盘分区、文件系统 ( 2)IP地址VIP ( 3)应用程序服务 ( 4)NFS文件系统 3.事件(event) 也就是集群中可能发生的事情,例如节点系统故障,网络连通故障,网卡故障,应用程序故障等,这些事情都会发生节点资源发生转移, HA的测试也是基于这些事情来进行的 4.动作(action) 事件发生时 HA的响应方式,动作是由shell脚本控制的,例如当某个节点发生故障后,备份节点将通过事先设定好的执行脚本进行服务的关闭或启动,进而接管故障节点的资源 二、 keepalived简介 keepalived 是linux下一个轻量级的高可用解决方案,它与HACMP实现功能类似,都可以实现服务或者网络的高可用,但是又有差别:hacmp是一个专业的

Keepalived高可用

北战南征 提交于 2020-01-25 13:50:55
1、 Keepalived是一个类似于工作在 layer3, 4 & 7交换机制的软件, Keepalived软件有两种功能,分别是监控检查、 VRRP冗余协议。 1)Core,是keepalived的核心,负责主进程的启动和维护,全局配置文件的加载解析等 。 2)Check,负责healthchecker(健康检查),包括了各种健康检查方式,以及对应的配置的解析包括LVS的配置解析; 3)Vrrp,VRRPD子进程,VRRPD子进程就是来实现VRRP协议; 4)Libipfwc,iptables(ipchains)库,配置LVS会用到; 5)Libipvs,虚拟服务集群,配置LVS会使用。 Keepalived的作用是检测web服务器的状态,如果有一台web服务器、Mysql服务器宕机,或工作出现故障,Keepalived将检测到后,会将有故障的web服务器或者Mysql服务器从系统中剔除,当服务器工作正常后Keepalived自动将web、Mysql服务器加入到服务器群中。 Layer3,4&7工作在 IP/TCP协议栈的 IP层、传输层及应用层,实现原理分别如下: 1)Layer3:Keepalived使用Layer3的方式工作式时,Keepalived会定期向服务器群中的服务器发送一个ICMP的数据包(如果发现某台服务的IP地址无法ping通

《【面试突击】— Redis篇》--Redis Cluster及缓存使用和架构设计的常见问题

隐身守侯 提交于 2020-01-25 11:13:21
《【 面试 突击】— Redis篇》--Redis Cluster及缓存使用和架构设计的常见问题 在这个系列里,我会整理一些 面试题 与大家分享,帮助年后和我一样想要在金三银四准备跳槽的同学。 我们一起巩固、突击面试官常问的一些面试题,加油!! 《【面试突击】— Redis篇》--Redis数据类型?适用于哪些场景? 《【面试突击】— Redis篇》--Redis的线程模型了解吗?为啥单线程效率还这么高? 《【面试突击】— Redis篇》-- Redis的主从复制?哨兵机制? 《【面试突击】— Redis篇》-- Redis哨兵原理及持久化机制 说说Redis cluster 在redis cluster集群架构中,可以由N个redis master node组成,每个master node都可以挂载多个slave node。 可以自动将数据进行分片,每个master上放一部分数据; 还提供内置的高可用支持,部分master不可用时,还是可以继续工作的,因为每个master都有salve节点,那么如果mater挂掉,redis cluster这套机制,就会自动将某个slave切换成master; 支持读写分离:对于每个master来说,都负责写请求,写就写到master,然后读就从mater对应的slave去读; 总结:redis cluster(多master + 读写分离 +

GIT工作流程

情到浓时终转凉″ 提交于 2020-01-25 10:32:06
Git工作流程 Git 能从众多版本控制系统中脱颖而出,其’必杀技特性’是其分支模型,Git分支模型使版本的分支合并起来非常的方便。但是滥用其分支特性也会产生副作用,很可能会出现一个纷乱丛生、结构复杂的分支系统。于是 Vincent Driessen 提出了一个分支管理模型Git-Flow。它可以使版本库的更新迭代结构清晰,各分支各司其职~ Git-Flow Master – 线上分支(发布分支,长期存在) Develop – 开发分支(本地分支,长期存在) Feature – 新功能分支 Release – 预热分支(预发布分支) Hotfix – 修复分支(Bug分支) 需求是开发的起点,当我们进行功能开发时,先有需求再有功能分支(feature branch)。功能分支是从Develop分支上面分出来的,完成新功能后,该分支上的功能就被合并到Develop分支上,然后删除 Feature 分支。 当develop分支积累足够的功能(预定的发布日期临近),就可以建立一个预发布分支(release branch)。预发布分支是从Develop分支上面分出来的,预发布结束以后,再合并到 Develop 和 Master 分支,然后删除 Release 分支。 当功能正常运行后,如果遇到紧急问题需要修复,这个时候需要创建一个独立的修复分支(hotfix branch)

mysql双主双从配置

孤街醉人 提交于 2020-01-25 10:20:48
服务器: 主机1:192.168.5.169 从机1:192.168.5.182 主机2:192.168.5.171 从机2: 主机1和主机2互备 在192.168.5.169服务器D:\MySQL\MySQL Server 5.5\my.ini配置文件中添加: server_id=10 log-bin="D:/MySQL/MySQL Server 5.5/data/mysql-bin" log-error="D:/MySQL/MySQL Server 5.5/data/mysql-error" binlog-do-db=test log_slave_updates=1 在192.168.5.171服务器D:\MySQL\MySQL Server 5.5\my.ini配置文件中添加: server_id=20 log-bin="D:/MySQL/MySQL Server 5.5/data/mysql-bin" log-error="D:/MySQL/MySQL Server 5.5/data/mysql-error" binlog-do-db=test log_slave_updates=1 添加之后执行命令,重启数据库使修改生效 主机1授权主机2为从机,主机2授权主机1位从机 在192.168.5.169服务器中执行 GRANT FILE ON *.* TO 'root'@

记初学Gitee

我与影子孤独终老i 提交于 2020-01-24 23:31:59
记初学Gitee 目的:通过Git管理gitee托管项目代码 1.账户注册: 无论是GitHub还是码云(下称Gitee),要使用他们,我们都需要先注册账户,已有账户的可以跳过此步骤。 2.创建仓库: a.创建远程仓库 登入Gitee后,点击头像旁边的"+"加号–>新建仓库 这里选择单分支模型,点击创建即可。 这里记住我们的仓库地址:https://gitee.com/user.name/test b.初始化本地仓库 (1)Git Bash安装 附上软件下载地址: 链接:https://pan.baidu.com/s/1avs_omT8onCDqzhdcIlfhQ 提取码:zi3y 链接版本是 Git-2.24.1.2 64位windows系统。 安装完成后可在开始菜单找到Git文件夹,运行Git Bash 会弹出一个命令行类似的窗口,也可点击鼠标右键找到该选项。 Administrator@WQ-20170910DZUZ MINGW64 ~ 是什么意思: @前是计算机用户名, @后是计算机名, MINGW64表示正在运行的Git Bash的信息 ~表示根目录,默认情况下是C:\Users\Administrator (2)获取SSHKey 由于本地Git仓库和Gitee仓库之间的传输是通过SSH加密的,所以必须要让gitee仓库认证你SSH key,在此之前,必须要生成SSH

MHA运维

筅森魡賤 提交于 2020-01-24 20:29:56
项目地址 文档地址 Consul, ProxySQL and MySQL HA MHA Quick Start Guide 前提条件 1.复制 2.ssh 3.彼此能够通过客户端连接数据库 4.所有节点有相同的复制用户和密码 5.只有一个写节点,所有其他都配置成read_only 6.5.0或更新版本 7.candidate应该开启binlog 8.binlog filter在所有服务器上都一样 9.禁用relay-log purge,换成cron来处理,或者使用purge_relay_logs脚本 mha node包中包括save_binary_logs, filter_mysqlbinlog, purge_relay_logs, apply_diff_relay_logs manager用select命令监控master的状态, 1.--remove_dead_master_conf参数的意思是如果master挂掉的话,failover后manager必须将master的配置从配置文件中删除掉,否则,重启manager的时候就会报“there is a dead slave” error, 2.配置文件中所有的列出来的server都必须存在于复制环境中,而且状态都是健康的,即服务存在,否则manager将会罢工 自动手动failover 一切都运行正常

mha的搭建步骤(一主一从架构)

青春壹個敷衍的年華 提交于 2020-01-24 20:28:10
所需脚本文件到这里下载:http://note.youdao.com/share/web/file.html?id=ae8b11a61f7a8aa7b52aac3fcf0c4b83&type=note 环境: centos 6.5 x64 192.168.0.32 # master 192.168.0.33 #管理节点和从节点 slave VIP: 192.168.0.62 iptables打开 mysql端口 selinx关闭: shell > vim /etc/selinux/config SELINUX=disabled 1.安装 mysql 5.5.x以上的版本 (如果是 5.6以上的版本,不建议开启 GTID复制 ),并搭建好双主复制,复制用户: repl,复制用户密码: 123456 主从复制搭建好后,从库执行下面两个命令 (不要加入到 my.cnf中,因为从库随时可能被提升为 master) mysql -e 'set global read_only=1;set global relay_log_purge=0;' 如果是刚刚初始化安装完成的 mysql,建议进行安全清理: mysql > delete from mysql.user where user!='root' or host !='localhost'; mysql > truncate table

企业——MYSQL高可用之MHA

谁说我不能喝 提交于 2020-01-24 20:25:50
1.原理: --从崩溃的master报错二进制日志事件(binlog events) --识别含有最新更新的slave --应用差异的relay log到 其他的slave --应用从master保存的二进制日志事件 --提升一个slave为新的master --使其他的slave连接到新的master进行复制        MHA软件由日本DeNA公司youshimaton(现就职于Facebook公司)开发,是一套优秀的作为MySQL高可用性环境下故障切换和主从提升的高可用软件。在MySQL故障切换过程中,MHA能做到在0~30秒之内自动完成数据库的故障切换操作,并且在进行故障切换的过程中,MHA能在最大程度上保证数据的一致性,以达到真正意义上的高可用。 该软件由两部分组成:MHA Manager(管理节点)和MHA Node(数据节点)。MHA Manager可以单独部署在一台独立的机器上管理多个master-slave集群,也可以部署在一台slave节点上。MHA Node运行在每台MySQL服务器上,MHA Manager会定时探测集群中的master节点,当master出现故障时,它可以自动将最新数据的slave提升为新的master,然后将所有其他的slave重新指向新的master。整个故障转移过程对应用程序完全透明。 在MHA自动故障切换过程中