双机热备需要完全一样的两台服务器么?请说明原因!

双机热备需要完全一样的两台服务器么?请说明原因!,第1张

不需要。双机热备与服务器本身配置无关,无需配置完全一样的服务器;但因为切换后需要业务系统在备机也能正常运行,所以做热备都要求 *** 作系统一致;应用系统配置方式、路径一致;服务器本地盘的大小和CPU等的配置,需要能承担对应业务即可。

通常说的双机热备是指两台机器都在运行,但并不是两台机器都同时在提供服务。

当提供服务的一台出现故障的时候,另外一台会马上自动接管并且提供服务,而且切换的时间非常短。

下面来以keepalived结合tomcat来实现一个web服务器的双机热备过程:

keepalived的工作原理是VRRP虚拟路由冗余协议。

在VRRP中有两组重要的概念:VRRP路由器和虚拟路由器,主控路由器和备份路由器。

VRRP路由器是指运行VRRP的路由器,是物理实体,虚拟路由器是指VRRP协议创建的,是逻辑概念。一组VRRP路由器协同工作,共同构成一台虚拟路由器。Vrrp中存在着一种选举机制,用以选出提供服务的路由即主控路由,其他的则成了备份路由。

当主控路由失效后,备份路由中会重新选举出一个主控路由,来继续工作,来保障不间断服务。

两台物理服务器和一个虚拟服务器(vip):master:redhat2.6.18-53.el5192.168.8.4;backup:redhat2.6.18-53.el5192.168.8.6;vip:192.168.8.100。

节点A192.168.8.4(主节点),节点B192.168.8.6(备用节点),虚拟IP(对外提供服务的IP192.168.8.100)

在这种模式下,虚拟IP在某时刻只能属于某一个节点,另一个节点作为备用节点存在。

当主节点不可用时,备用节点接管虚拟IP(即虚拟IP漂移至节点B),提供正常服务。

keepalived的原理可以这样简单理解:

keepalived安装在两台物理服务器上,并相互监控对方是否在正常运行。

当节点A正常的时候:节点A上的keepalived会将下面的信息广播出去:

192.168.8.100这个IP对应的MAC地址为节点A网卡的MAC地址

其它电脑如客户端和NodeB会更新自己的ARP表,对应192.168.8.100的MAC地址=节点A网卡的MAC地址。

当节点A发生故障的时候,节点B上的keepalived会检测到,并且将下面的信息广播出去:

192.168.8.100这个IP对应的MAC地址为节点B网卡的MAC地址

其它电脑如客户端会更新自己的ARP表,对应192.168.8.100的MAC地址=节点B网卡的MAC地址。

扩展资料:

双机热备特指基于active/standby方式的服务器热备。服务器数据包括数据库数据同时往两台或多台服务器执行写 *** 作,或者使用一个共享的存储设备。在同一时间内只有一台服务器运行。

当其中运行着的一台服务器出现故障无法启动时,另一台备份服务器会通过软件诊测(一般是通过心跳诊断)将standby机器激活,保证应用在短时间内完全恢复正常使用

Keepalived的运行原理是基于VRRP(虚拟路由冗余协议)机制,在VRRP中有两个重要的概念:VRRP路由器和虚拟路由器,主控路由器和备份路由器。

VRRP路由器是一种实体路由器设备,而虚拟路由器则是基于VRRP协议构建的虚拟路由器,是软性的虚拟概念,一组VRRP路由器协同工作,共同构造一台虚拟服务器。

VRRP协议支持一种选举机制,主要用来选出用来提供服务的路由即主控路由,其它的就是备份路由了,当主控路由失效之后,备份路由中重新选出一个主控路由(往往按照设置好的优先级别重新分配),接管主控服务,继续工作,来保证不间断的提供服务。

参考资料:

百度百科-双机热备

1mysql数据库没有增量备份的机制,当数据量太大的时候备份是一个很大的问题。还好mysql数据库提供了一种主从备份的机制,其实就是把主数据库的所有的数据同时写到备份数据库中。实现mysql数据库的热备份。
2要想实现双机的热备首先要了解主从数据库服务器的版本的需求。要实现热备mysql的版本都要高于32,还有一个基本的原则就是作为从数据库的数据库版本可以高于主服务器数据库的版本,但是不可以低于主服务器的数据库版本。
3设置主数据库服务器:
a首先查看主服务器的版本是否是支持热备的版本。然后查看mycnf(类unix)或者myini(windows)中mysqld配置块的配置有没有log-bin(记录数据库更改日志),因为mysql的复制机制是基于日志的复制机制,所以主服务器一定要支持更改日志才行。然后设置要写入日志的数据库或者不要写入日志的数据库。这样只有您感兴趣的数据库的更改才写入到数据库的日志中。
server-id=1 //数据库的id这个应该默认是1就不用改动
log-bin=log_name //日志文件的名称,这里可以制定日志到别的目录 如果没有设置则默认主机名的一个日志名称
binlog-do-db=db_name //记录日志的数据库
binlog-ignore-db=db_name //不记录日志的数据库
以上的如果有多个数据库用","分割开
然后设置同步数据库的用户帐号
mysql> GRANT REPLICATION SLAVE ON
-> TO 'repl'@'%mydomaincom' IDENTIFIED BY 'slavepass';
402以前的版本, 因为不支持REPLICATION 要使用下面的语句来实现这个功能
mysql> GRANT FILE ON
-> TO 'repl'@'%mydomaincom' IDENTIFIED BY 'slavepass';
设置好主服务器的配置文件后重新启动数据库
b锁定现有的数据库并备份现在的数据
锁定数据库
mysql> FLUSH TABLES WITH READ LOCK;
备份数据库有两种办法一种是直接进入到mysql的data目录然后打包你需要备份数据库的文件夹,第二种是使用mysqldump的方式来备份数据库但是要加上"--master-data " 这个参数,建议使用第一种方法来备份数据库
c查看主服务器的状态
mysql> show master status\G;
+---------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+---------------+----------+--------------+------------------+
| mysql-bin003 | 73 | test | manual,mysql |
+---------------+----------+--------------+------------------+
记录File 和 Position 项目的值,以后要用的。
d然后把数据库的锁定打开
mysql> UNLOCK TABLES;
4设置从服务器
a首先设置数据库的配置文件
server-id=n //设置数据库id默认主服务器是1可以随便设置但是如果有多台从服务器则不能重复。
master-host=db-mastermycompanycom //主服务器的IP地址或者域名
master-port=3306 //主数据库的端口号
master-user=pertinax //同步数据库的用户
master-password=freitag //同步数据库的密码
master-connect-retry=60 //如果从服务器发现主服务器断掉,重新连接的时间差
report-host=db-slavemycompanycom //报告错误的服务器
b把从主数据库服务器备份出来的数据库导入到从服务器中
c然后启动从数据库服务器,如果启动的时候没有加上"--skip-slave-start"这个参数则进入到mysql中
mysql> slave stop; //停止slave的服务
d设置主服务器的各种参数
mysql> CHANGE MASTER TO
-> MASTER_HOST='master_host_name', //主服务器的IP地址
-> MASTER_USER='replication_user_name', //同步数据库的用户
-> MASTER_PASSWORD='replication_password', //同步数据库的密码
-> MASTER_LOG_FILE='recorded_log_file_name', //主服务器二进制日志的文件名(前面要求记住的参数)
-> MASTER_LOG_POS=recorded_log_position; //日志文件的开始位置(前面要求记住的参数)
e启动同步数据库的线程
mysql> slave start;
查看数据库的同步情况。
查看主从服务器的状态
mysql> SHOW PROCESSLIST\G //可以查看mysql的进程看看是否有监听的进程
如果日志太大清除日志的步骤如下
1锁定主数据库
mysql> FLUSH TABLES WITH READ LOCK;
2停掉从数据库的slave
mysql> slave stop;
3查看主数据库的日志文件名和日志文件的position
show master status;
+---------------+----------+--------------+------------------+
| File | Position | Binlog_do_db | Binlog_ignore_db |
+---------------+----------+--------------+------------------+
| louis-bin001 | 79 | | mysql |
+---------------+----------+--------------+------------------+
4解开主数据库的锁
mysql> unlock tables;
5更新从数据库中主数据库的信息
mysql> CHANGE MASTER TO
-> MASTER_HOST='master_host_name', //主服务器的IP地址
-> MASTER_USER='replication_user_name', //同步数据库的用户
-> MASTER_PASSWORD='replication_password', //同步数据库的密码
-> MASTER_LOG_FILE='recorded_log_file_name', //主服务器二进制日志的文件名(前面要求记住的参数)
-> MASTER_LOG_POS=recorded_log_position; //日志文件的开始位置(前面要求记住的参数)
6启动从数据库的slave
mysql> slave start;

所谓双机热备,就是将中心服务器安装成互为备份的两台服务器,并且在同一时间内只有一台服务器运行。当其中运行着的一台服务器出现故障无法启动时,另一台备份服务器会迅速的自动启动并运行。我们来看看在WIN2000服务器版下的实现过程。
一、 硬件准备及基本安装综述
网络服务器 两台
网络服务网卡 四块
服务器硬盘 两块
SCSI磁盘阵列 一个
SCSI硬盘 三块
首先是将两台服务器都配置成双网卡,并分别安装Win2000 Advance Server(高级服务器版)。之后配置网络环境使之畅通:将两台服务器加入到域当中,成为域成员,并在每台服务器上设置管理员权限。
另外就是注意所有磁盘必须设置成基本盘并做成采用NTFS格式分区,磁盘阵列分区一定要大于2个。最后将三块SCSI硬盘做成磁盘阵列,笔者建议为RAID5(在配置阵列时,一定注意单独分一个至少1G的分区出来,用于存放配置数据库的检测点以及日志文件)。
二、 具体安装要点。
配置服务器网络环境要点
1、 在前一步中,我们将两台服务器都安装了双网卡,一个用于连接公网(internet),一个连接内部局域网。
将连接内部局域网的网卡建立点对点的通信和群集状态信号,然后每个终端的公网适配器连接该群集到公网上,并在此驻留客户。
2、 待win2000高级服务器版安装好后,开始配置每台服务器的网络参数。在网络连接将连接公网的改为“外网”,连接局域网的改为“内网”,然后将两台服务器的各自网卡分别指定IP地址为:
服务器A:外网IP为:1921680160,内网IP为:1010101,子网掩码为:2552552550 网关为:19216801(此处网关为你主域控制器的IP地址)
服务器B:外网IP为:1921680161,内网IP为:1010102,子网掩码为:2552552550 网关为:19216801
安装服务软件要点
配置服务器A
1、 所有的设备都先关闭后再开启磁盘阵列。
2、 启动服务器A,用事先设置的管理员帐号登陆到域;然后在添加/删除程序选项里添加“集群服务”组件,并注意在安装过程中将此组件设置为集群的首节点,接着创建集群名称(任取即可,比如
myserver)。
3、 由于我们只有一个共享的磁盘阵列,所以应该将此阵列中的分区都配置成群集磁盘。
4、 开始配置群集网络。外网和内网的配置相同,即群集网络的外网、内网的名称和IP地址要保持跟网络适配器一致,至外还要选中该网络可用于集群服务,外网要选中所有的通信(混合网络)选项,而内网只选中用于内部群集的通信选项。在接着出现的“使用网络顺序”对话框中,调整为表里的第一个连接是内网(解释:在正常的 *** 作中,该连接将用于群集通信。如果此连接失效,群集服务将自动切换到表里的下一个网络),继续下一步会出现集群的IP地址和掩码选项,设置集群IP地址为1921680162,子网掩码为:2552552550。单击完成即可。
配置配置服务器B
首先一定保持磁盘阵列和服务器A的开机和可用,然后才启动服务器B。接着同样安装“集群服务”组件,安装过程大致与服务器A相同,唯一注意的地方是在创建或添加群集的对话框中,在群集中选择第二个或下一个节点,并单击下一步;接着输入前面所创建的群集名称(本例为myserver),在下一步中将连接到群集设为未选中,这样群集服务配置向导会自动提供前面在安装服务器A时选定的帐号名,输入该帐号的口令后一路点击下一步并最终结束配置。
最后我们应检测以上 *** 作是否成功。依次单击“开始”—“程序”—“管理工具”,打开“群集管理器”,如果看到显示有这两个节点,表明群集已被正常配置并已开始运行。
三、 功能检测。
我们主要来看看它的容错能力,以下是笔者的一些检测:
1、 在两台服务器以及集群服务同时运行的情况下,断掉其中一台服务器的外网连接,此时运行在此服务器上的集群服务会被迫自动断开并转移到另外一个连接正常的节点上(此过程所需时间视你服务器开展的服务数量而定,一般4秒钟左右)。或是可以更改一台服务器的系统时间,经过几分钟,被改动的时间会自动调整成同另一台节点相同。
2、 在集群服务上开启web服务,并设置好下载项目。在用户端开始下载项目,接着马上断掉集群中的一个节点,结果用户端并无明显的感觉掉线!
由以上检测办法可以看出,Win2000服务器版的集群服务在容错方面具有良好的表现!一般在瞬间即可把出错的节点上的服务接管过来,而用户端并不会感觉有明显的变化!

我简单给你说一下Rose的双机热备软件吧!
基于盘阵共享的双机热备软件:RoseHA。
硬件基础:两台服务器,盘柜,每台服务器上配置2片网卡,RS-232串口(可选),网线若干。
基于数据镜像技术的双机热备软件:RoseMirrorHA。
硬件基础:两台服务器,每台服务器上配置2片网卡(最好配置3片),RS-232串口(可选),网线若干。
Rose产品可以直接无缝的结合到用户的服务器上,对服务器的硬件配置要求不高,只要可以带动用户本身的服务就可以了。主备服务器的配置是可以不同的,但是在配置环境的时候一定要注意主备服务器的软件环境要是一致的。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/12816970.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-28
下一篇 2023-05-28

发表评论

登录后才能评论

评论列表(0条)

保存