00:00
欢迎大家继续收看上硅谷的云创视频。我是汪洋老师。这节课呢,我们去给大家讲解我们的headb加N,怎么去实现我们的高可用。那在实现之前呢,我们先看一下什么是handbag。B是Linux ha项目的一个组件。其实Linux ha项目有很多组件,比如哈去实现我们的负载均衡的。那B呢,就是实现我们高可用的。在行业内,很多应用都在采用BT去构建我们的高可用环境。那B呢,比较主流的版本有V2V32个版本,我们这里采用的是V3版,给大家去构建。那接下来呢?因为handb使用的是一组脚本的方式进行,我们的检测已经切换了,所以它的原理不像我们的live这么复杂,采用的是VP。那在这里呢,我们以实际构建为主。那我们可以看一下我等会要构建的我们的一个集群的模样。
01:00
那这里呢,我采用的就是一个NX服务器。两台不同的服务器怎么去做所谓的新脏检测以及切换?那这里我采用了一个虚拟IP是100,也就意味着对于外网客户端来说,240来说,100就是他要访问的web服务器。那100这个IP呢,又会在两台服务器中间进行切换。切换的方式就是通过脚本的方式检测他们对方的存活。比较简单。原理。那我们就先把我们的环境给准备一下。首先在这个环境中呢,我们需要两台服务器。我们先还原。我们需要两台服务器,两台他们之间任何一台死亡不会造成我们公司网站的瘫痪,那这个可以用在一些中小型的门户网站中,对吧?访问量比较非常小,那用过多的集群化比较麻烦,那在这种情况下,我们可以采用两台去做这么一个高可用的切换,对吧?
02:10
我们稍等一下机器的启动。机器已经启动成功了,我们在这里呢,直接去连接我们的两台服务器。对于他俩来说呢,我们其实在生态环境中应该还加一个共享存储,对吧?他们两个的页面都应该保持一致,还是那句话,在负载均衡集群里,这肯定是必须的。但是为了给大家演示它的负载均衡的效果,我一定不能一致,不然的话你怎么知道它到底有没有切换呢?能理解我的意思吧,所以这是实验环境跟我们的真实环境的一个区别,大家一定要很好的把它给区分开来,对吧,别一蹴而就。
03:01
好,那接下来呢,我们先要去构建一下我们的N,因为N是不是还是它的基础服务啊,对吧,我们先把N软件包拉进来。当然前提是你要先安装LRZZ的这么一个软件包,对吧?已经给大家强调过很多次了,好,我们先解压我们的NX。我们去安装一下,它最基础的依赖有PC re。PC re-DV智能表达式的对吧,以及z lab库压缩库。因为我们不需要构建DPS的这么一个协议,所以我就没有按照open s。好,然后。CD到软件中。我们先创建一个用户,UID-ssb no login杠大M。这代表的含义是指定它的启动权为no long,不允许。远程用户登录对吧,以及杠大M不创建加目录。
04:00
用户。然后点杠con,杠杠prex,安装在u logo下的ending目录中,指定运营身份为ending用户,指定运营组为N组即可。当然前提是你的GCC环境要安装成功对吧。好,然后make。Make in stock。这里是不是也是一致的,我就现在直接做了。
05:00
然后我们到N点杠卡菲,跟刚才步骤还是保持一致,杠杠prex u local下的。Alex,杠杠,有热。等于用户杠刚group等于X组。好,然后make make install。我们就不等他了,装完以后我们就可以到your logo下的N下。找到他的网页目录,在HM目录下,对吧,然后打开主页文件,或者是我们把当前的页面都给删了,我们自己写一个。内容为A。保存退出,简单写一个即可对吧,然后接着启用我们的nu服务,以下的nu。即可。那我现在就可以访问我们的幺幺了,这肯定是没有问题的,这是在我们的网络服务中去做的,对吧,好。然后我现在在这台服务器。
06:02
我们接着去。编译成功了对吧,然后我们接着去写一个网站。删除它的默认页面以及错误页面,打开我们的vm indexma,打开一个新文件,我们写一个BBBB做区分,对吧,不然的话切换是不是看不出来啊。好,那这个最基础的环境就已经构建成功了,那接下来呢,我们就需要去构建headb了。那headb呢,默认默默认的原理是没有的,所以我们需要去安装第三方的一破源去实现我们的headb的安装,那这里呢,我已经把它的软件包都给拿下来了,就是在圣透安的六版本中的可以去用的,那如果你在圣徒安七中去构建的话,可以去安装一个一破源即可。那我们到headb目录下,这里有一堆的软件包,我们进行下杠one install新安装即可。好,做这个实验之前呢,我们需要做一些基础的准备步骤。比如。
07:02
第一步,配置时间同步服务。在我们的集训课中,其实很多主机或者是基本上你可以这样理解,所有的疾病服务,时间同步服务是必须要去配置的。节点时间非常之重要,没有之一。第二个配置主机名的解析,也就意味着等会他们两者之间是通过U-N。进行检测的,这个检测的值与你的配置文件中填写的值一定要保证一致,并且能够被解析,才能正常配置。所以呢,我们在这里先配置我们的时间同步服务好,要么杠y in到NDP安装时间同步服务默认已经有了,对吧,那到NDP时间同步服务器中。找到serve,把它的默认都给注释掉,不采用官方的对吧,我们自己去写。啊,127.127.1.0。UGE127.127.1.0模式的级别,十级别,这个我们在之前的网络服务课程中已经详细讲解了,这里我就不再啰嗦了,那这个写的是我们当前的网段。
08:12
好保存,退出swa n t pd start,切砍FNTPD2。那在客户端这里呢,我就可以去实现同步了,对吧,安装一下我们的客户端工具叫NTB。N DB data安装成功以后,N dp data-U10.10.10.1时间就要保证一致了,对吧。那接下来呢,我们再去配置我们的主机名的解析,这里两台主机名解析我们可以通过U,刚刚我们去看一下,这叫升y1.com。那这个应该是snow啊。啊,没有写是吗?那我们就临时配一下house name。3w.r.com。然后为了它永久生效的话,C斯卡菲侠有个network。我们把这里也给改一下,这样重启才能永久生效啊,已经生效了,对吧?好诺sr.com,那我们house name就已经有了,那接下来呢,需要去构建一个DNS,那因为比较费事,所以我在这里就直接写host文件了。
09:17
10.10.10.13W点诺1.comyyp。幺二是3W3S r.com保存退出。那这样的话,基础环境也装完了,Headb也装完了,对吧,我刚才已经在这个节点装完了,那我们需要到URL下下的doc下的head3.04目录中去拷贝出来它的配置文件。那这个目录应该不陌生了,对吧,相当于它的一些默认配置文件都是在这个目录中拷贝出来的,比如我们这些学习到过的,呃,什么所谓的概率CP也在这个目录,对吧?比如线下的doc。Be。然后拷贝这么几个配置文件,一个叫哈CF主配置文件,一个叫also cases认证文件。
10:06
还有一个就是我们的ho source叫源文件。就这三个。拷贝到我们的ETC下的哈,点D目录下,这是我们的。Head的默认,默认存放目录,好,然后我们到这个目录下。一个一去修改对吧,我们今天修改第一个,也就是认证文件,认证文件需要去写上MD5码,那我们可以用第的方式去让他随机生成一串MMD5码,那这样的话是不是就是比咱们人自己写的话,那是不是。更不容易被找出来规律,对吧?好,然后打开also source的这么一个配置文件。往下翻,这里有个选择,选择是第一个CRC认证方式,还是下一认证方式,还是MD5认证方式,我们选的是第三个。第三个MD5的认证方式,后面写的是MD5值对吧,那我这里写的刚才我们随机生成的这么一个MD5值即可,我退出好,还有就是这里的千积的。
11:11
权限also case的权限必须是600,如果不是600的话,他认为不安全,会不让你启动,所以这个是必须选项,设置回撤手成功。那接下来打开我们的。哈里CF的主配送件。那我们直接找到B。CST。选项。当然这里还有其他的一些选项,比如我们的什么debug日志啊,日志文件传那里啊,日志级别啊等等,相信大家都能看得懂,Live检测时间对吧?相信大家都能看得懂了,那我们这里直接去修改它的比较重要的一些参数。Bit,好,那这里设置的是什么呢?设置的就是用哪块网卡去进行所谓的心跳检测,就是Linux系统怎么配,多块网卡怎么配,以及L怎么配,对吧。
12:00
好,那接着我们去搜索node。Node这里也写了,对吧,Node no name,那must much your name杠也就是必须寻找,通过you name能寻找到your number,刚刚我们刚才已经看过了,就是每个主机的主机名,对吧?所以我们这里写的是神一点。com第二台的3w.s.com。这就已经OK了。好保证对数。然后我们再打开har s的原配置文件,我们到最后一行,前面已经写了很多的一些案例了,对吧?那比如哪个节点啊,哪个是主节点啊,IP地址多少啊,使用了什么,使用了什么,呃,配置的命令啊,以及后面配置的参数,对吧?哎,你说这什么意思啊。那我们再打开一个子接口,我们看一下在ETC下的哈,点D目录下。有一个叫做resource d,你会发现,你会发现里面有很多的一些文件,这就是官方给我们写好了一个切换脚本。
13:07
那有兴趣的话可以查看一下官方的文档,因为有比较多嘛,我们就不一一去查看了,没什么意义,只要知道怎么配置即可,好那。在这里呢,我们使用的格式就是我们要采用的是I pidd的这么一个官方提供的脚本,这个脚本的主要命令呢,就是切换IP地址。前一个指定我们的指定我们的主服务器叫什么,然后采用的是ipd的脚本,然后配置的地址是124位Z烟ma启动的网卡名称为e tg0孟浩林。等同于等同于。一服卡ET0,冒号零,然后101010100NE mask255。点255.255.0,这就是这个脚本的含义,希望大家能够理解好,那保存退出。
14:04
这样的话,我们的配置就已经写完了。那接着呢,我们去把这个handbag给传到远程。因为幺二这台机器是不是也需要啊。穿过来以后呢,我们先去解压headb。然后C到下yam-one in store新我们去安装。那同理,我们是不是还需要去拷贝配置文件,然后去修改?所以在这里我们就偷个懒,直接SAP。我们到ETC下的哈点滴目录下。直接ICP,我们把哈S。以及我们的autocas以及我们的Harry直接拷贝过去。
15:06
过来我们看一下。没问题对吧,那这时候我们就可以启动服务了。或叫ETC地下的。T start启动。这边也一样,ETC下英地下的head start启动。我们衣服我们看一下。稍等一下,第一次启动有点慢。我们可以在这里P10.10.10.100-T。已经通了对吧。好,已经有了,这是自己配置上的,对吧,那我们去访问一百幺零点幺零点幺零点一百。肯定是没有问题的,看到了吗?好,有一天同理对吧。这家伙的网卡。又断掉了。
16:04
我们会发现这里拼拼不通了,对吧,我们再稍等一下。切换是需要有一定的时间的。那有些同学可能会问,哎,这里切换时间是不是这不就停止了吗?那还是那句话,我们只能尽可能的保障,没有任何一个高可用方案可以。怎么说呢,可以无损的进行我们的切换。当。也是能实现的,但是但是消耗的资金太过于昂贵,所以一般来说像这种比较快的切换,我们就能够理解为是高可用了,能理解我意思吧。那这里已经通了,对吧,我们一刷新发现。幺零点幺零点幺零点一百。有缓存是吧。还是有缓存,那我要换一个浏览器。IE。
17:05
幺零点幺零点幺零点一百回车。我这台ND是没有启动是吗。好吧,应该是我这台没有启动。这肯定是要提前启动的,对吧?好,那这样的话你会发现,诶这个机器已经切换过来了,对吧?那这样的话,如果是正常情况下,是不是证明这两台机器已经没有问题了。好,那。我们现在把它给A机器给救活。我们只需要在这边。稍等一下,他需要一定的RP的广播时间。我们只需要service。Head,我们查看一下当前的状态。
18:02
我们直接AR让他重新发送,告诉他一下,诶,我回来了。稍微有点慢对吧。你会发现这里又活了,对吧,我们再去访问一下100发现变为AA了,那同理,那如果有一天这台机器又死了,那是不是就会自动切换到幺二,所以还是那句话,它可以进行我们自动切换,但是从原理角度考虑的话,其实keep alive。VIP更好一点,毕竟这个协议是非常之成熟的。那这个呢,就是我们的handbag。但是现在还有一个问题,就是VR有个叫资源控制器的东西,它可以自动调整对应的服务的状态监控。
19:03
以及对应的服务的启用。那在这里V3版本它已经被它剥离出去了,被剥离出去了,所以如果是我们的网断了。关了服务器宕机了。那这种情况下都可以进行我们对应的服务的切换,但是如果有一天我们的服务,比如NX,我这里直接就P了,不建议大家在生产环境中直接PK,直接用我们的help quit,像这种方式的K信号去让它关闭。那我这里因为。我们是测试环境嘛,对吧,我就直接PLN了,好,你会发现如果是PLNS的话,这里的服务并不会自动切换,比如幺零点,幺零点幺零点。100。放不了。也就意味着我们现在的BT,它检测的是它本身的网络通讯能力,而不是服务的是否存活,这个非常重要,跟刚才的LVS还不太一样,Los是内核,内核如果到了的话,那机器肯定是通不了的。
20:07
那这里是NN,这如果down的话,跟内核是无关的,因为它是在用户空间工作的,还记得这个概念吗?所以我们可以加个脚本,什么脚本呢?这个脚本写的也比较粗糙,只是给大家讲一下它的含义即可,好。我们看一下叫80SH。打开八零我们看一下。这里是不是?做了一个监控对吧?监控的是什么码,监控的是网站的返回码,返回码我们都知道网站是不是会有一定的返回码,这个在我们之前呢,网络服务中也给大家讲解过了,对吧?200代表正常,如果不是200的话,我们就把哈给关了,好,我们把这个脚本给放了,放到我们的u local下的script目录下。好,我们过来看一下有没有是不是正常在SC目录下,不在监控下对吧。
21:06
好,那这样的话,我们运行一下八零脚本,我们看看有没有效果。是不是直接把我们的headb关了,Headb关的结果就是我访问100的时候跳到B了。你会发现这个速度非常快,原因是什么?如果我不是关闭的话。比如我直接把这个机器给当了,或者像咱们刚才那样重启它,其实相当于是这边在根据它的循环时间检测得到的。那现在呢,现在是我主动关闭的,主动关闭我就会告诉我的重叠点,说诶我要退了,你上,那这样肯定是更快的,非常容易理解对吧?好,那我们现在再把我们先把NG给救活。然后呢,我们再把这个脚本给配上。千金帽呢,我们给他一个执行权限,对吧,I加X,然后我们直接是by your local下的。呃,下的八零我们。
22:01
直接把它复制一下。放在哪里啊?放在我们的循环里。分时日月收。加脚本。每隔一分钟检测。那。Restart,我们重启一下我们的。定时计划任务。On,随时开机日期。那这样的话,它是不是就根据周期性的去检测八零服务到底正常,如果不正常的话,是不是会把我们的PA给关了,关了的话是不是就会切换到这台机器啊。那现在我把。给开启。那这样的话,我们应该会切换到A。稍等一下A对吧,好,那现在是属于一个正常的状态。那现在不正常了,就是恩尼斯死了。
23:01
我们看下效果。但这需要等一会对吧。那这个巡视计划任务我就不等了,因为我在录视频,他需要有一分钟对吧,我们就直接执行八零。放在c table里肯定是没问题的,对吧,好,你会发现切换到BB了。那这样的话,不管是我们的服务的死亡,还是我们的呃,整个网络的中断,还是我们的系统崩溃,那都可以自动切换过去了,这是完全没有问题的。那这节课呢,给大家演示了我们怎么拿开B去实现我们的服务的高可用,那这节课我们就先讲到这里。下节课再见。
我来说两句