hopechenwen 发表于 2014-10-16 16:50:04

双机热备中如何处理脑裂

大家都知道在双机热备集群环境中(数据镜像集群)都会碰到脑裂的问题;
一,何为脑裂。
脑裂是双机同步镜像磁盘不可避免的一个状态,脑裂就是两边数据不一致。一个产生脑裂的场景(对于镜像磁盘资源):A服务器开机的情况,B机关机,这时镜像磁盘资源在A服务器带起,进行写入操作,写入了新数据。这时A关机,B开机,镜像磁盘资源在B服务器带起,进行写入操作,写入了新数据。由于A,B服务器都有各自的新数据写入,因此就是脑裂的情况。二,经典的出现脑裂的动作1. 就是上个例子中的不同时开机可造成脑裂。2. 同时拔掉所有心跳线也可进入脑裂状态,原因为:心跳线为知道互相状态的唯一途径,如果心跳线全部被拔掉,则无法获知对方的状态,各个服务器都会试图把镜像资源带起,两边一旦同时带起,就会出现数据不一致(加载盘符系统是需要往磁盘上写入数据的)。三,如何处理脑裂因为双机集群软件第三方的比较多,但在镜像集群中出现脑裂的情况大致就是以上几种,但在处理脑裂的方案选择上各家还是有自己的机制,下面是一款国产双机软件易腾在处理脑裂时采用的策略:
脑裂处理需要舍弃一边的数据,因此出现脑裂默认需要人工介入处理,以确保数据的安全。 脑裂处理前需要对两边数据进行备份,因为脑裂处理是以一边数据为准的,另一边的数据会丢失,放置处理脑裂同步数据时同步方向错误而造成的数据毁坏,必须做备份。 问题1:脑裂是磁盘盘符都不可见如何进行备份?关掉一台机器(一台服务器启动就不存在数据不一致),即可把资源组带起来。这样也可以检查数据是否是自己想要的。需要分别打开两台服务器(关闭另一台),进行数据的备份。 问题2:如果用的数据库,在服务启动是,库文件是不可复制的如何办?双机管理服务后,服务是无法手动停止的(停止也会被双机带起),如何停止服务,进行数据备份?可以利用资源属性的“忽略资源”操作,在资源组联机时,右键点击相应服务资源,比如mssqlserver,点击“忽略资源”,然后会弹出一个对话框,告知你如何让资源再受双机的监控就是需要脱机,再次联机资源组即可。这样就可以手动的停止相应的资源,并进行数据的备份了。 问题3:如何判断数据有效?这个需要具体情况具体分析了,比如是数据库,需要验证是否能正常的进入数据库,如果有一台服务器不能正常进入数据库的话,就要以可正常进入数据库的数据为主了。两边都可进入数据库的话,需要知道最近写入了什么有效的数据没,查看数据库那边有有效数据则以哪边为主。如果都可进入数据库,并且也没啥最新的数据写入的话,可以任选一个为主。 下面解决脑裂:
鼠标右键点击“镜像磁盘资源”,本例为S: 选择”镜像数据快速同步” 出现:
需要选择一个为同步的源,这意味着另一台目标的数据被舍弃(事先必须要做好备份,以免出现选择源错误而数据丢失)。一般选择之前的主机即可。(即以主机的数据为主覆盖备机) 点击确定 出现
直到实时信息栏,两个磁盘为“健康”即可, 如果不一致数据量较大,则会有同步的状态,等做完同步即可。 这时右键单击 资源组group
点击联机资源组,联机到主机即可。 如何防止脑裂的发生?1.      避免拔掉服务器端所有的网线。2.      要保证两台服务器同时开机,5分钟内两台服务器分别打开就可看作是同时开机。3.      需要关机维护时,先关备机,然后关主机。











hopechenwen 发表于 2014-10-16 16:51:25

大家有对其他产品熟悉的可以分享一下

hopechenwen 发表于 2014-10-16 16:51:46

大家有对其他产品熟悉的可以分享一下

powibamred 发表于 2015-3-31 10:14:16

软文,鉴定完毕:)

皎月9492 发表于 2015-7-25 13:04:47

脑列这词还真首次听说,见识了
页: [1]
查看完整版本: 双机热备中如何处理脑裂