去哪里系统高可用之法,搭建三个redis高可用系统

原标题:去何方系统高可用之法:搭建故障演习平台

Windows 二零一一 系统搭建高可用故障转移集群

生龙活虎、单个实例

当系统中独有朝气蓬勃台redis运营时,大器晚成旦该redis挂了,会诱致整个种类无法运维。

单个实例

1 方案设计

小编介绍

生机勃勃、故障转移集群介绍 2

二、备份

由于单台redis现身单点故障,就能够以致整个种类不可用,所以想到的措施自然正是备份(一般工业界认为比较安全的备份数应该是3份卡塔尔国。当大器晚成台redis现身难题了,另风华正茂台redis能够继续提供服务。

备份

四节点基本音信:

王鹏,前年参预去何方机票事业部,首要从事后端研发职业,近来在机票职业部担当路程单和故障演习平台以至国有服务ES、数据同步中间件等相关的研究开发职业。

1.1 系统介绍 2

三、自动故障转移

就算如此下边redis做了备份,看上去很完美。但出于redis目前只辅助主从复制备份(不支持主主复制卡塔尔国,当主redis挂了,从redis只好提供读服务,无法提供写服务。所以,还得想艺术,当主redis挂了,让从redis晋级成为主redis。

那就供给活动故障转移,redis sentinel带有那么些效果,当贰个主redis不可能提供劳动时,redis sentinel能够将三个从redis晋级为主redis,并对其它从redis实行布局,让它们选择新的主redis实行理并答复制备份。

自行故障转移

10.192.44.148

去何方网二零零六年建构现今,随着系统规模的渐渐扩大,已经有为数不菲个利用系列,这么些系统之间的耦合度和链路的复杂度不断抓好,对于我们营造布满式高可用的种类架构具备宏大挑衅。我们须要一个阳台在运维期自动注入故障,核准故障预案是不是起效——故障练习平台。

1.2 职业规律 2

四、入手推行

1.环境

此地运用三台服务器,每台服务器上张开二个redis-server和redis-sentinel服务,redis-server端口为8000,redis-sentinel的端口为6800,改革默许端口是安全的率先步_

redis-server说明

  • 192.168.56.101:8000 主
  • 192.168.56.102:8000 从
  • 192.168.56.103:8000 从

redis-sentinel说明

  • 192.168.56.101:6800
  • 192.168.56.102:6800
  • 去哪里系统高可用之法,搭建三个redis高可用系统。192.168.56.103:6800

2.搭建redis系统

首先下载安装redis

wget http://download.redis.io/releases/redis-3.2.8.tar.gz
tar zxvf redis-3.2.8.tar.gz
cd redis-3.2.8
make

cd src
#复制redis相关命令到/usr/sbin目录下,这样就可以直接执行这些命令,不用写全路径
sudo cp redis-cli  redis-server  redis-sentinel   /usr/sbin/

在redis目录下有redis.conf和sentinel.conf配置文件示例,使用sudo cp redis.conf sentinel.conf /etc/命令将七个布局文件复制到/etc目录下(当然也得以在/etc/目录新建配置文件卡塔尔,然后改良配置文件。

更正主redis-server配置文件内容如下:

port  8000           #修改端口是安全的第一步
daemonize  yes
bind  0.0.0.0
pidfile   /var/run/redis-8000.pid
logfile   /var/log/redis/redis-8000.log

校勘从redis-server配置文件内容如下:

port  8000           #修改端口是安全的第一步
daemonize  yes
bind  0.0.0.0
pidfile   /var/run/redis-8000.pid
logfile   /var/log/redis/redis-8000.log
slaveof  192.168.56.101  8000    #从redis比主redis多这一行

启动redis-server。

sudo redis-server /etc/redis.conf

多少个redis服务运维完成后,步入命令行,试行info replication查看当前主旨配置。

主节点上查看主从新闻

意识并从未从节点音讯。

3.主从间无法通讯

这里的原故是防火墙屏蔽了8000端口,要求改善防火墙设置,开放8000端口(同理redis-sentinel的6800端口卡塔 尔(英语:State of Qatar)。

# 打开防火墙配置文件,增加8000端口
sudo vim /etc/sysconfig/iptables

#修改完后,需要重启防火墙
sudo service iptables restart

增加8000端口和6800端口

下一场再次进入主节点,查看主从新闻,能够开掘三个从节点消息,评释redis-server主从曾经安顿实现。

主节点上查看主从音信

4.搭建redis-sentinel系统

redis-sentinel程序方面已经设置过了,这里只要求纠正配置文件就能够了。更改/etc/sentinel.conf,若无成立就能够。

更改sentinel.conf配置文件内容如下:

daemonize yes
port  6800
logfile  /var/log/redis/sentinel.log
pidfile  /var/run/sentinel.pid
sentinel monitor master8000 192.168.56.101 8000 2
#5秒内master6800没有响应,就认为SDOWN
sentinel down-after-milliseconds master8000 5000  
sentinel failover-timeout  master8000 15000

启动redis-sentinel。

redis-sentinel  /etc/sentinel.conf

三个redis-sentinel服务运转完结后,连接任性sentinel服务能够获知当前主redis服务音讯。

sentinel监察和控制状态

10.192.44.149

一、背景

二、实验目标 2

五、测试

1.把住redis停掉

redis-cli -h 192.168.56.101 -p 8000 shutdown

2.查看redis-sentinel的监督检查状态

sentinel监控状态

发觉102那台redis-server进步为主库。

现今,redis的高可用方案已经搭建完毕。

10.192.44.150

那是某职业部的种类拓扑图:

2.1 验证故障转移效果 2

六、顾客端程序

客商端程序(如PHP程序卡塔尔国连接redis时索要ip和port,但redis-server进行故障转移时,主redis是调换的,所以ip地址也是转换的。顾客端程序怎么着感知当前主redis的ip地址和端口呢?redis-sentinel提供了接口,央求任何三个sentinel,发送SENTINEL get-master-addr-by-name <master name>就会取妥善前主redis的ip和port。

获得当前主redis的ip和port

客商端每一遍连接redis前,先向sentinel发送需要,拿到主redis的ip和port,然后用再次来到的ip和port连接redis。

这种方法的症结是显眼的,每趟操作redis最少必要发送一次三回九转诉求,第叁遍倡议sentinel,第一遍央求redis。

php供给sentinel程序代码可参见:https://github.com/huyanping/redis-sentinel

更加好的不二等秘书诀是运用VIP,当然那对配备的情状有必然的渴求,比方redis搭建在Ali云服务器上,大概不帮衬VIP。

VIP方案是,redis系统对外始终是同豆蔻年华ip地址,当redis进行故障转移时,须要做的是将VIP从早前的redis服务器漂移到前日新的主redis服务器上。

举例:当前redis系统中主redis的ip地址是192.168.56.101,那么VIP(192.168.56.250卡塔尔国指向192.168.56.101,顾客端程序用VIP(192.168.56.250卡塔 尔(英语:State of Qatar)地址连接redis,实际上连接的便是现阶段主redis,那样就幸免了向sentinel发送诉求。

当主redis宕机,举办故障转移时,192.168.56.102那台服务器上的redis提高为主,那时候VIP(192.168.56.250卡塔尔国指向192.168.56.102,那样用户端程序没有必要修正任何代码,连接的是192.168.56.102那台主redis。

VIP指向192.168.56.101

故障转移后,VIP漂移指向192.168.56.102

10.192.44.151

MG 1

2.2 验证高可用集群的可用性,以致帮忙的服务类型 2

七、漂移VIP

那么未来的难点是,怎么着在拓宽redis故障转移时,将VIP漂移到新的主redis服务器上。

那边能够使用redis sentinel的一个参数client-reconfig-script,那个参数配置试行脚本,sentinel在做failover的时候会实行那些剧本,而且传递6个参数<master-name>、 <role>、 <state>、 <from-ip>、 <from-port>、 <to-ip> 、<to-port>,此中<to-ip>是新主redis的IP地址,能够在这几个本子里做VIP漂移操作。

sentinel client-reconfig-script master8000   /opt/notify_master6800.sh

修改八个服务器的redis-sentinel配置文件/etc/sentinel.conf,扩张地点豆蔻梢头行。然后在/opt/目录下创办notify_master6800.sh脚本文件,那几个剧本做VIP漂移操作,内容如下:

#notify_master6800.sh脚本内容
#!/bin/bash
MASTER_IP=$6  #第六个参数是新主redis的ip地址
LOCAL_IP='192.168.56.101'  #其他两个服务器上为192.168.56.102,192.168.56.103
VIP='192.168.56.250'
NETMASK='24'
INTERFACE='eth1'
if [ ${MASTER_IP} = ${LOCAL_IP} ];then   
    /sbin/ip  addr  add ${VIP}/${NETMASK}  dev ${INTERFACE}  #将VIP绑定到该服务器上
    /sbin/arping -q -c 3 -A ${VIP} -I ${INTERFACE}
    exit 0
else 
   /sbin/ip  addr del  ${VIP}/${NETMASK}  dev ${INTERFACE}   #将VIP从该服务器上删除
   exit 0
fi
exit 1  #如果返回1,sentinel会一直执行这个脚本

方今当前主redis是192.168.56.102,供给手动绑定VIP到该服务器上。

/sbin/ip  addr add 192.168.56.250/24 dev eth1
/sbin/arping -q   -c 3 -A 192.168.56.250 -I eth1 

然后,去另八个服务器上经过VIP地址连接redis-server和redis-sentinel。

通过VIP连接redis

从上面也足以看见当前主redis是192.168.56.102。

下边关闭那台redis服务,看看VIP是还是不是漂移到另生机勃勃台服务器上。

redis-cli -h 192.168.56.102 -p 8000 shutdown

经过询问sentinel发掘192.168.56.103荣升为主。

通过访谈VIP连接redis,开采VIP确实指向了192.168.56.103。

每台器具1个128G的ssd系统盘,4个2T的数据盘

系统之间的信任非常复杂、调用链路很深、服务时期从未分支。在此种复杂的依据下,系统一发布出了几起故障:

三、实验原理 3

八、总结

通过上边的操作,使用redis主从 哨兵(sentinel) 漂移VIP的方案搭建了一个redis高可用系统,但以此种类保障的是单个redis实例的高可用,所以相符业务十分的小的采取。假若事情超大,并发量相比较高,提议搭建redis集群,举个例子官方redis cluster,还会有开源的codings集群。

除此以外,漂移VIP能够应用keepalived软件来落到实处,这里就非常少介绍了。

usr:root

  • 弱注重挂掉,主流程挂掉,校正报废凭据的费用情状,下单主流程战败;
  • 核心服务调用量陡增,某服务超时引起相关联的全体服务“雪崩”;
  • 机房互联网或许有个别机器挂掉,不可能提供基本服务。

3.1 实验拓扑 3

pwd:9b648

八个故障原因:

3.2 实验景况设备 3

1.1 网络方案

  • 系统强弱注重混乱、弱重视无降级;
  • 系统流量猛增,系统容积不足,未有限流熔断机制;
  • 硬件能源互连网现身难点影响系统运作,没有高可用的网络架构。

四、配置步骤 4

眼下先使用单网卡方案,即每台道具采纳二个网卡。IP地址即利用当下之处。

二种三种的主题材料,在这里种复杂的依附结构下被加大,三个依赖贰拾三个SOA服务的系统,每一种服务99.99%可用。99.99%的三十三遍方≈99.7%。0.3%象征黄金年代亿次呼吁会有3,000,00次失败,换算成时间大要每月有2个钟头服务不平稳。随着服务信赖数量的变多,服务不牢固的概率会呈指数性进步,这么些标题最后都会转化为故障表现出来。

4.1 配置域服务器 4

世襲将管理互联网、存款和储蓄网络、存款和储蓄管理互联网、虚拟机互联网、外部网络分开。近年来利用单网卡方式。

二、系统高可用的方法论

4.2  iSCSI 虚构存款和储蓄配置 18

IP地址列表:

什么样营造叁个高可用的体系吧?首先要深入分析一下不可用的成分都有哪些:

4.3 配置故障转移集群服务 45

HostnameIP(eth0)IP1(备用IP)

MG 2

4.4  验证集群 63

隧道IP(eth0:1)openstack roleCeph mon roleCeph osd配置Vip

高可用系统特出实施

五、实验结果印证 68

node110.192.44.148(eth0)172.16.2.148(eth3)

力排众议上来讲,当图中具备的职业都做完,大家就足以以为系统是三个着实的高可用系统。但真是那样吗?

5.1  验证故障转移 68

Controller1 network1Mon0Osd0~osd34Core 16G

那正是说故障练习平台就欢腾上场了。当上述的高可用实行都做完,利用故障演习平台做三次真正的故障演习,在系统运维期动态地注入一些故障,进而来注解下系统是不是遵守故障预案去执行相应的降级或许熔断计谋。

5.2 高可用集群的验证 69

node210.192.44.149(eth0)172.16.2.149(eth1)

三、故障演习平台

 

Controller2 network2Mon1Osd4~osd74Core 16G

故障演习平台:检查故障预案是或不是真正的起作用的平台。

 

node310.192.44.150(eth0)172.16.2.150(eth1)

故障类型:主要回顾运营期异常、超时等等。通过对系统某个服务动态地流入运维期十分来达到模拟故障的目的,系统遵照预案试行相应的政策验证系统是不是是真正的高可用。

 

Compute1Mon2Osd8~osd114Core 16G

1、故障演练平台的全部框架结构

生机勃勃、故障转移集群介绍

node410.192.44.151(eth1)172.16.2.151(eth2)

故障练习平台架构首要分为四片段:

1.1 系统介绍

Compute2Mon3Osd12~osd158Core 16G

MG 3

    故障转移会集是对准富有短时间运维的内存中状态或具有大型的、频繁更新的数额状态的应用程序而规划。这几个应用程序称为状态应用程序,而且它们包括数据库应用程序和消息应用程序。故障转移会集的独领风流使用包含文件服务器、打字与印刷服务器、数据库服务器和消息服务器。

在乎,后来已调节为:

  • 前台体现系统(WEB卡塔 尔(英语:State of Qatar):来得系统里面包车型客车拓扑关系以致各类AppCode对应的集群和情势,能够筛选具体的主意进行故障的注入和清除;
  • 发表系统(Deploy卡塔 尔(英语:State of Qatar):那几个系统关键用于将故障演习平台的Agent和Binder包宣布到对象APP的机器上同一时候运转实行。前台显示系统会传送给公布平台要举行故障注入的AppCode以至指标APP的IP地址,通过那四个参数揭橥连串能够找到呼应的机器进行Jar包的下载和开发银行;
  • 劳动和下令分发系统(Server卡塔 尔(英语:State of Qatar):其生机勃勃种类主假如用来命令的分发、注入故障的情景记录、故障注入和撤消操作的逻辑、权限校验以致有关的Agent的回来消息选择效果。前台页面已经接入QSSO会对当前人能够操作的IP列表做故障注入,防备风险。后端命令分发的模块会和布局在指标应用软件上的Agent进行通讯,将下令推送到Agent上进行字节码编织,Agent试行命令后回去的内容通过Server和Agent的长连接传回Server端;
  • Agent和Binder程序:Agent负担对目的应用软件做代办而且做字节码巩固,具体代理的点子可以通过传输的吩咐来调节,代理方法后对艺术做动态的字节码加强,这种字节码巩固全部无侵入、实时生效、动态可插拔的特点。Binder程序首假若因而发布系统传递过来的AppCode和开发银行端口(ServerPort卡塔尔国找到对象应用软件的JVM进程,之后施行动态绑定,完结运转期代码加强的作用。

1.2 工作规律

因为150、151升格了libvirt,然后150老是重启后都不通

2、 Agent全体架构

    故障转移集合是基于域的处理形式布署, 以 “心跳机制” 来监视种种节点的健康处境;若是在群集中的生机勃勃台服务器发生了故障,则群聚焦的别样服务器会应声接手并世襲运营。而那么些服务器是由此心跳互联网来展开相互作用物检疫查实验的,当服务器产生故障时,别的的服务器就能够检查实验不到故障服务器的心跳随机信号,那时就能够以为此服务器发生故障,并登时接手并卫冕运转。

于是改为先安装(调整节点 互联网节点:148) (总结节点:149),前边高可用再把150、151装置上:

当下AOP的兑现成二种艺术:

二、实验目标

HostnameIP(eth0)IP1(备用IP)

  • 静态编织:静态编织发生在字节码生成时依照早晚框架的法规提前将AOP字节码插入到目的类和艺术中;
  • 动态编织:在JVM运行期对内定的法门成功AOP字节码加强。不乏先例的章程大比较多利用重命名原有艺术,再新建二个同名方法做代办的职业格局来成功。

2.1 验证故障转移职能

MG,隧道IP(eth0:1)openstack roleCeph mon roleCeph osd配置Vip

静态编织的主题素材是只要想退换字节码必得重启,那给支付和测量试验进程招致了非常大的困顿。动态的艺术就算能够在运营期注入字节码完毕动态增加,但从没统风姿洒脱的API十分轻易操作错误。基于此,大家利用动态编织的方法、标准的API来典型字节码的变动——Agent组件。

    学习搭建Windows故障转移集群,测量检验Windows高可用集群与高可用集群开展比较。

10.192.44.148(eth0)172.16.2.148(eth3)eth0:1controller1 network1Mon0Osd0~osd34Core 16G

Agent组件:经过JDK所提供的Instrumentation-API完成了选择HotSwap技巧在不重启JVM的情状下跌成对轻巧方法的加强,无论大家是做故障练习、调用链追踪(QTrace卡塔 尔(阿拉伯语:قطر‎、流量摄像平台(Ares卡塔尔以至动态增添日志输出BTrace,都急需叁个存有无侵入、实时生效、动态可插拔的字节码巩固组件。

2.2 验证高可用集群的可用性,甚至支持的服务类型

10.192.44.149(eth0)172.16.2.149(eth1)eth0:1compute1Mon1Osd4~osd74Core 16G

Agent的平地风波模型

    在故障转移集群的根基上搭建常用底蕴服务器(DTC、SQL、文件分享集群、Hyper-v卡塔尔国,来测量试验架构的主旋律。

第四个网口的IP: 172.16.2.148 149150 151

如图所示,事件模型重要可分为三类事件:

三、实验原理

[root@compute1 network-scripts]# catifcfg-eth1

MG 4

3.1 实验拓扑

DEVICE=eth1

BEFORE在艺术试行前事件、THROWS抛出特别事件、RETUEvoqueN重回事件。那三类事件能够在点子推行前、再次回到和抛出十分那三种境况做字节码编织。

MG 5

ONBOOT=yes

正如代码:

 

STARTMODE=onboot

// BEFORE

3.2 实验景况设备

MTU=1500

try {

序号

设备名称

IP规划

用途

1

iSCSI存储服务器

172.16.200.73

共享存储虚拟磁盘

2

域服务器

172.16.200.70

wangzx-noc.com域服务器

3

MSHV-1服务器

172.16.200.71

节点服务器1:  MSHV-1

4

MSHV-2服务器

172.16.200.71

节点服务器2:  MSHV-2

5

集群

172.16.200.75

集群虚IP

BOOTPROTO=static

/*

3.3 实验检查评定方法

IPADDR=172.16.2.150

* do something...

搭建遍布式事务和煦器,和hyper-v验证高可用服务的可用性。

NETMASK=255.255.255.0

*/

表明格局:

GATEWAY=10.192.44.254

foo();

1. 服务器宕机测量检验

运用多少个节点作为(调整 互连网)的复用节点

// RETURN

2. 概略网卡中断

应用几个节点作为计量节点

return;

3. 故障转移集群服务甘休

原因:

} catch (Throwable e) {

 

控制节点运维服务非常多,不符合任何用来复用为总结节点跑虚构机

// THROWS

 

算算节点须要财富多(CPU、内部存款和储蓄器),所以最大的能源的那台作为总括节点。

}

 

1.2 存款和储蓄方案

事件模型能够成功两个职能:

四、配置步骤

现阶段系统盘为SSD:128G,存储盘为SATA:2T

  • 在方法体实行在此之前一直回到自定义结果对象,原有办法代码将不会被实践;
  • 在方法体重临早先再一次协会新的结果对象,甚至足以变动为抛出特别;
  • 在方法体抛出十二分之后再一次抛出新的不胜,以致能够变动为正常再次回到。

4.1 配置域服务器

系统盘还会有空间,将多余空间作为ceph的journal空间,剩余大约有90G,设置为hda5分区。

Agent怎么着防范“类污染”

1、张开服务器微处理器,点击增多剧中人物

HostnameCeph monCeph journalCeph osd

在开荒Agent的时候,第三个使用是故障演习平台,那么这时候其实大家并无需Agent试行的进度中有自定义结果对象的回到,所以首先个版本的Agent接纳硬编码的办法开展动态织入:

MG 6

Node1Mon0/dev/hda5Osd.0~osd.3: sdb1/sdc1/sdd1/sde1

MG 7

 

Node2Mon1/dev/hda5Osd.4~osd.7: sdb1/sdc1/sdd1/sde1

故障类加载模型

 

Node3Mon2/dev/hda5Osd.8~osd.11: sdb1/sdc1/sdd1/sde1

第一介绍下多少个类加载器:

MG 8

Node4Mon3/dev/hda5Osd.12~osd.15: sdb1/sdc1/sdd1/sde1

  • BootstrapClassLoader指导类加载器加载的是JVM自个儿必要的类,这几个类加载使用C 语言达成的,是设想机本身的大器晚成局地;
  • ExtClassLoader它承受加载<JAVA_HOME>/lib/ext目录下照旧由系统变量-Djava.ext.dir钦命位路线中的类库;
  • AppClassLoader它担当加载系统类路线java-classpath或-D java.class.path钦定路径下的类库,也就是我们常常应用的classpath路线;
  • CommonClassLoader以至上面的都以汤姆cat定义的ClassLoader。

 

Rbd pools:

Agent和血脉相符的lib会放到AppClassLoader那生龙活虎层去加载,利用Javasist做字节码的织入,所以Javasist的加载器正是AppClassLoader。

 

ServiceRbd poolPg nums

然则想改良的是汤姆cat WebClassLoader所加载的com.xxx.InvocationHandler那几个类的Invoke方法,差别的ClassLoader之间的类是不能够互相造访的,做字节码的转变并无需那些类的实例,也无需再次回到结果,所以能够由此Instrument API获得这几个类加载器,况兼能够依据类名称获取到这几个类的字节码进行字节码转变。故障类Drill.class和变形后的com.xxx.InvocationHandler.class重新load到JVM中,完结了插桩操作。

MG 9

GlanceImages128

以Dubbo为例表明下怎么样注入故障和消归西障:

 

CinderVolumes128

MG 10

 

NovaVms128

Dubbo调用的流入进程

MG 11

备考:先给磁盘分区,不然安装时给sdx分区,各种磁盘全体分成sdx1,ceph-deploy 分出来的sdx1唯有5G分寸。

  • 服务A调用服务B在Client端的Proxy层做AOP;
  • 起步Agent并且生成多少个Drill类invoke方法,抛出八个运营期分外;
  • 字节码变形:在代码第生机勃勃行以前增添Drill.invoke();
  • 若是想改动万分类型,改造Drill类就可以,换来Sleep 3s ClassRedifine之后会再一次load到JVM完成故障类型的转折大概祛除。

 

1.3 运维服务

欣逢的标题

 

Openstack role

上边的措施相符很圆满的缓和了难题,不过随着平台的施用职业线要对广大接口和办法同不平时间开展故障练习,那么大家转换的Drill类里面就能有各样:

MG 12

ControllerHttpd,rabbitmq,mysql;keystone, glance, neutron-server, nova-api & scheduler, cinder-api & scheduler

if method==业务线定义方法

 

NetworkNeutron agents:l3-agent, openvswitch-agent, dhcp-agent

do xxx

 

ComputeNova-compute,neutron-openvswitch,cinder-volume

与此同一时间比较轻易拼接出错并且难以调节和测量试验,只可以把变化的类输出为文件,查看本身写的字节码编写翻译成class文件是或不是科学,简直太痛心了!

MG 13

1.4 其余备注

怎么消除?

 

(1)近日不设置ceilometer,比较耗财富,且当前不对ceilometer做高可用

新的架构需求减轻多少个难点:

 

(2)临时不设置swift对象存款和储蓄

  • 类隔开分离的题目:不要污染原生应用软件;
  • 事件的兑现是可编译的;
  • 支撑回到自定义的结果。

MG 14

(3)能源十一分有限,验证时只怕只能开2台设想机

下豆蔻梢头版本的Agent完成就发出了,把具备Agent的类和落到实处的功能抽象出来,放到贰个自定义的AgentClassLoader里面,字节码注入到指标APP后方可透过反射的艺术来调用具体的风浪实现。

 

1.5 特别注意

MG 15

 

1.每走一步,验证一下创办镜像、云硬盘、网络、虚构机成效,防止不当储存以致重装

类加载模型

2、进行域服务器配置,点击运营Active Directory 域服务安装向导

2.改变的各类配置注意保存到git上:

  • 在BootstrapClassLoader里面注入Drill类作为通信类;
  • Agent会选取命令,根据事件类型对InvocationHandler做字节码变形,注入到对象应用软件;
  • 在对象APP调用的时候,调用Drill.invoke(targetJavaClass,targetJavaMethod, targetThis, args卡塔尔传递过来几个参数(指标类、方法、实例、本身参数等卡塔 尔(阿拉伯语:قطر‎;
  • Drill类通过反射的措施调用AppClassLoader里面包车型地铁有板有眼事件完毕,举个例子BEFORE事件的实践代码,来成功注入后的逻辑推行。

MG 16

Agent的欧洲经济共同体架构

 

3.不明明的主题素材必然要以往虚构机上印证

Agent的全部架构如图所示:

安装进度基本上是暗中认可

4.Horizon要么先安装2个

MG 17

MG 18

第22中学坚条件

  • 支撑分歧的模块的步入,比方Mock、流量录制、故障演练等;
  • 支撑QSSO的权柄验证;
  • 支撑测验和虚伪情况的无资金接入;
  • 帮忙自动铺排没有须求人工参预;
  • 支持各类故障命令的昭示和实践、 超时 、非常以致数据的回到;
  • 扶持艺术级其他编织以至代码实践流程的编写制定;
  • 支撑在随机的Web容器推行Agent代理。

 

2.1yum还是rpm

四、怎么着行使

 

yum源:

行使的好处是很显然的:

MG 19

布置基本和系统不升官:

  • 零投入接入,无需申请别的能源;
  • 故障注入消逝,没有必要重启服务;
  • 能够提供全体集群的拓扑结构。

 

/etc/yum.conf:

只是怎样才具科学选用啊?如下图所示:

 

keepcache=1

MG 20

那边建议选拔新建域

exclude=kernel*

选取办法

MG 21

exclude=centos-release*

步骤一、输入AppCode;

 

删除原本的

手续二、选用故障方法;

根级域需求自定义,这里本人定义为wangzx-noc.com

# rm yum.repos.d/ -rf

步骤三、钦命机器;

MG 22

交替将来的

步骤四、注入故障。

 

下一场更新源:

五、总结

 

# yum clean all

故障演习平台最宗旨的正是Agent组件——字节码编织框架,那么些框架是纯Java的基于Instrumentation-API的AOP解决方案。它能够方便研究开发职员对此字节码插桩拆桩操作,能够相当的轻松的得以完结故障演习、流量摄像以至此外的选拔模块。

MG 23

# yum makecache

作者:王鹏

 

# yum update –y

来自:Qunar技能沙龙订阅号(ID:QunarTL卡塔尔

 

#yum upgrade –y

dbaplus社会群众体育款待广大技能职员投稿,投稿邮箱:editor@dbaplus.cn归来今日头条,查看更多

MG 24

百折不挠无法推行yum update和yum upgrade

责编:

 

后续改过:此处后续做成自动化脚本

 

安装方案:

MG 25

1.在设想机上使用yum安装二次all-in-one,把缓存的rpm包保存下去

 

2.实体机上运用rpm包安装,完毕持续集成,持续集成究竟要做rpm包来安装,不比以后二回搞好,达成脚本化

 

[root@node1 etc]# vi yum.conf

MG 26

[main]

 

cachedir=/var/cache/yum

 

keepcache=1

安装文件的门道暗中同意就可以

(1)Ceph的使用yum 安装完全没难点

MG 27

(2)Openstack使用all-in-one先安装叁个节点来检查遇到

 

2.2/etc/hostname的设置

 

[root@localhost ~]# cat /etc/hostname

MG 28

node1

 

[root@localhost ~]# cat /etc/hostname

 

node2

 

[root@localhost ~]# cat /etc/hostname

MG 29

node3

 

[root@localhost ~]# cat /etc/hostname

 

node4

MG 30

波澜起伏改过:此处集成到自动化脚本

 

2.3 /etc/hosts设置

勾选以上接纳后,在设置达成后服务器将会自动重启,重启完毕后使用域管理员账户登入。

[root@localhost ~]# vi /etc/hosts

3、将持有节点服务器以致存款和储蓄服务器均投入此域情状。(此处已大器晚成台节点服务器为例卡塔 尔(阿拉伯语:قطر‎

127.0.0.1localhost localhost.localdomain localhost4 localhost4.localdomain4

右击那台微型机--->点击属性。

::1localhost localhost.localdomain localhost6 localhost6.localdomain6

MG 31

10.1.14.235mirrors.hikvision.com.cn

 

10.192.44.148 node1

MG 32

10.192.44.149 node2

 

10.192.44.150 node3

MG 33

10.192.44.151 node4

 

波澜起伏纠正:此处集成到自动化脚本

MG 34

2.4关门防火墙

 

systemctl stop firewalld.service

校正形成后必要重启生效。重启服务器后使用域管理员账户登入。

systemctl disable firewalld.service

    注:增添域的节点服务器的DNS设置必得安装为域服务器的管制IP(172.16.200.70卡塔尔国。所以在域服务器在装置角色时记得安装DNS角色服务。

2.5 种种吩咐汇总

     

systemctl stop firewalld.service

     

systemctl disable firewalld.service

     

yum install ceph -y

     

yum install ceph-deploy -y

     

yum install yum-plugin-priorities -y

     

yum install snappy leveldb gdiskpython-argparse gperftools-libs -y

     

#ceph-deploy new lxp-node1 lxp-node2lxp-node3

     

# ceph-deploy install lxp-node1 lxp-node2lxp-node3

     

#ceph-deploy--overwrite-conf mon create-initial

     

ceph-deploy mon create lxp-node1 lxp-node2lxp-node3

     

ceph-deploy gatherkeys lxp-node1 lxp-node2lxp-node3

     

/etc/init.d/ceph-a start osd

     

systemctl enable haproxy

     

systemctl start haproxy

     

systemctl enable keepalived

     

systemctl start keepalived

4.2  iSCSI 虚构存款和储蓄配置

# systemctl enable rabbitmq-server.service

1、张开服务器管理器,点击加多角色和效应。

# systemctl start rabbitmq-server.service

MG 35

# rabbitmqctl add_user guest guest

 

chown rabbitmq:rabbitmq .erlang.cookie

 

rabbitmqctl stop_app

 

rabbitmqctljoin_cluster rabbit@lxp-node1

MG 36

rabbitmqctlstart_app

 

rabbitmqctl cluster_status

 

rabbitmqctl set_policy ha-all'^(?!amq.).*' '{"ha-mode": "all"}'

 

yuminstall MySQL-python mariadb-galera-server galera xtrabackup socat

 

# systemctl enable mariadb.service

 

# systemctl restart mariadb.service

MG 37

yuminstall openstack-keystone httpd mod_wsgi python-openstackclient memcachedpython-memcached

 

systemctlenable memcached.service

 

systemctlstart memcached.service

 

#yum install python-pip

 

#pip install eventlet

MG 38

mkdir-p /var/www/cgi-bin/

 

将node1的keystone打包过来解压

 

chown-R keystone:keystone /var/www/cgi-bin/keystone

 

chmod755 /var/www/cgi-bin/keystone/ -R

下边须要勾选须要安装的剧中人物。

重启httpd:

MG 39

# systemctlenable httpd.service

 

#systemctl start httpd.service

 

[root@lxp-node1~]# export OS_TOKEN=c5a16fa8158c4208b5764c00554bde49

效用如无别的急需,直接点击下一步。

[root@lxp-node1~]# export OS_URL=

MG 40

#systemctlenable openstack-glance-api.service openstack-glance-registry.service

 

#systemctl start openstack-glance-api.serviceopenstack-glance-registry.service

 

systemctlrestart openstack-glance-api.service openstack-glance-registry.service

 

systemctlrestart openstack-glance-api.service openstack-glance-registry.service

上面的设置进程均暗中同意。

MariaDB [(none)]> GRANT ALL PRIVILEGESON glance.* TO 'glance'@'localhost' IDENTIFIED BY '6fbbf50542084b7c';

MG 41

MariaDB [(none)]> GRANT ALL PRIVILEGESON glance.* TO 'glance'@'%' IDENTIFIED BY '6fbbf50542084b7c';

 

MariaDB [(none)]> FLUSH PRIVILEGES;

 

ceph osd tree

MG 42

/etc/init.d/ceph-a start osd

 

# ceph-deploy --overwrite-conf osd preparelxp-node1:/data/osd4.lxp-node1:/dev/sdb2lxp-node2:/data/osd5.lxp-node2:/dev/sdb2lxp-node3:/data/osd6.lxp-node3:/dev/sdb2

MG 43

# ceph-deploy --overwrite-conf osd activatelxp-node1:/data/osd4.lxp-node1:/dev/sdb2lxp-node2:/data/osd5.lxp-node2:/dev/sdb2lxp-node3:/data/osd6.lxp-node3:/dev/sdb2

 

# ceph osd lspools

至此iSCS剧中人物加多实现。

# ceph pg stat

 

ceph osd pool create image 32

 

# ceph osd lspools

2、新建虚构磁盘。

yum installopenstack-dashboardhttpd mod_wsgi memcached pythonmemcached

   点击义务找到新建iSCSI设想磁盘,必要创建两块虚构磁盘,一块磁盘做为仲裁磁盘,别的一块磁盘作为分享存款和储蓄磁盘。由于决策磁盘主要用以会集节点的仲裁,不需求太大空间。共享磁盘根据供给自动安装。

# systemctlrestarthttpd.service

MG 44

yuminstall openstack-nova-api openstack-nova-cert openstack-nova-conductor openstack-nova-consoleopenstack-nova-novncproxy penstack-nova-scheduler python-novaclient

 

# systemctl enable openstack-nova-api.service openstack-nova-cert.service openstack-nova-consoleauth.serviceopenstack-nova-scheduler.service openstack-nova-conductor.serviceopenstack-nova-novncproxy.service

    

# systemctl start openstack-nova-api.service openstack-nova-cert.serviceopenstack-nova-consoleauth.service openstack-nova-scheduler.serviceopenstack-nova-conductor.service openstack-nova-novncproxy.service

 

GRANTALL PRIVILEGES ON nova.* TO 'nova'@'localhost' IDENTIFIED BY 'b7cf13724ff948d7';

    新建虚构磁盘并采取仓库储存地方。

GRANTALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY 'b7cf13724ff948d7';

本文由mg4355娱乐mg手机版发布于MG,转载请注明出处:去哪里系统高可用之法,搭建三个redis高可用系统

Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。