Linux服务器双机热备详细过程

Linux服务器双机热备详细过程,第1张

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

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

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

参考资料:百度百科-双机热备

FYI

/dev/mapper/mpathXX

如果使用了 多路径方案, 可以直接使用multipath 绑定设备名 不需要用到 asmlib或UDEV

请直接参考 文档:Configuring non-raw multipath devices for Oracle Clusterware 11g (11.1.0, 11.2.0) on RHEL5/OL5 [ID 605828.1]

[root@vrh1 ~]# for i in `cat /proc/partitions | awk '{print $4}' |grep sd | grep [a-z]$` do echo "### $i: `scsi_id -g -u -s /block/$i`" done

### sda: SATA_VBOX_HARDDISK_VB83d4445f-b8790695_

### sdb: SATA_VBOX_HARDDISK_VB0db2f233-269850e0_

### sdc: SATA_VBOX_HARDDISK_VBa56f2571-0dd27b33_

### sdd: SATA_VBOX_HARDDISK_VBf6b74ff7-871d1de8_

### sde: SATA_VBOX_HARDDISK_VB5a531910-25f4eb9a_

### sdf: SATA_VBOX_HARDDISK_VB4915e6e3-737b312e_

### sdg: SATA_VBOX_HARDDISK_VB512c8f75-37f4a0e9_

### sdh: SATA_VBOX_HARDDISK_VBc0115ef6-a48bc15d_

### sdi: SATA_VBOX_HARDDISK_VB3a556907-2b72391d_

### sdj: SATA_VBOX_HARDDISK_VB7ec8476c-08641bd4_

### sdk: SATA_VBOX_HARDDISK_VB743e1567-d0009678_

[root@vrh1 ~]# grep -v ^# /etc/multipath.conf

defaults {

        user_friendly_names yes

}

defaults {

        udev_dir /dev

        polling_interval  10

        selector "round-robin 0"

        path_grouping_policy failover

        getuid_callout "/sbin/scsi_id -g -u -s /block/%n"

        prio_callout /bin/true

        path_checker readsector0

        rr_min_io 100

        rr_weight priorities

        failback immediate

        #no_path_retry fail

        user_friendly_name yes

}

devnode_blacklist {

        devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"

        devnode "^hd[a-z]"

        devnode "^cciss!c[0-9]d[0-9]*"

}

multipaths {

        multipath {

                wwid    SATA_VBOX_HARDDISK_VB0db2f233-269850e0_ 

                alias   voting1

                path_grouping_policy failover

        }

        multipath {

                wwid    SATA_VBOX_HARDDISK_VBa56f2571-0dd27b33_

                alias   voting2

                path_grouping_policy failover

        }

        multipath {

                wwid    SATA_VBOX_HARDDISK_VBf6b74ff7-871d1de8_

                alias   voting3

                path_grouping_policy failover

        }

        multipath {

                wwid    SATA_VBOX_HARDDISK_VB5a531910-25f4eb9a_

                alias   ocr1

                path_grouping_policy failover

        }

        multipath {

                wwid    SATA_VBOX_HARDDISK_VB4915e6e3-737b312e_

                alias   ocr2

                path_grouping_policy failover

        }

        multipath {

                wwid    SATA_VBOX_HARDDISK_VB512c8f75-37f4a0e9_

                alias   ocr3

                path_grouping_policy failover

        }

}

[root@vrh1 ~]# multipath

[root@vrh1 ~]# multipath -ll

mpath2 (SATA_VBOX_HARDDISK_VB3a556907-2b72391d_) dm-9 ATA,VBOX HARDDISK

size=5.0G features='0' hwhandler='0' wp=rw

`-+- policy='round-robin 0' prio=1 status=active

  `- 8:0:0:0  sdi 8:128 active ready running

mpath1 (SATA_VBOX_HARDDISK_VBc0115ef6-a48bc15d_) dm-8 ATA,VBOX HARDDISK

size=5.0G features='0' hwhandler='0' wp=rw

`-+- policy='round-robin 0' prio=1 status=active

  `- 7:0:0:0  sdh 8:112 active ready running

ocr3 (SATA_VBOX_HARDDISK_VB512c8f75-37f4a0e9_) dm-7 ATA,VBOX HARDDISK

size=5.0G features='0' hwhandler='0' wp=rw

`-+- policy='round-robin 0' prio=1 status=active

  `- 6:0:0:0  sdg 8:96  active ready running

ocr2 (SATA_VBOX_HARDDISK_VB4915e6e3-737b312e_) dm-6 ATA,VBOX HARDDISK

size=5.0G features='0' hwhandler='0' wp=rw

`-+- policy='round-robin 0' prio=1 status=active

  `- 5:0:0:0  sdf 8:80  active ready running

ocr1 (SATA_VBOX_HARDDISK_VB5a531910-25f4eb9a_) dm-5 ATA,VBOX HARDDISK

size=5.0G features='0' hwhandler='0' wp=rw

`-+- policy='round-robin 0' prio=1 status=active

  `- 4:0:0:0  sde 8:64  active ready running

voting3 (SATA_VBOX_HARDDISK_VBf6b74ff7-871d1de8_) dm-4 ATA,VBOX HARDDISK

size=40G features='0' hwhandler='0' wp=rw

`-+- policy='round-robin 0' prio=1 status=active

  `- 3:0:0:0  sdd 8:48  active ready running

voting2 (SATA_VBOX_HARDDISK_VBa56f2571-0dd27b33_) dm-3 ATA,VBOX HARDDISK

size=40G features='0' hwhandler='0' wp=rw

`-+- policy='round-robin 0' prio=1 status=active

  `- 2:0:0:0  sdc 8:32  active ready running

voting1 (SATA_VBOX_HARDDISK_VB0db2f233-269850e0_) dm-2 ATA,VBOX HARDDISK

size=40G features='0' hwhandler='0' wp=rw

`-+- policy='round-robin 0' prio=1 status=active

  `- 1:0:0:0  sdb 8:16  active ready running

mpath4 (SATA_VBOX_HARDDISK_VB743e1567-d0009678_) dm-11 ATA,VBOX HARDDISK

size=5.0G features='0' hwhandler='0' wp=rw

`-+- policy='round-robin 0' prio=1 status=active

  `- 10:0:0:0 sdk 8:160 active ready running

mpath3 (SATA_VBOX_HARDDISK_VB7ec8476c-08641bd4_) dm-10 ATA,VBOX HARDDISK

size=5.0G features='0' hwhandler='0' wp=rw

`-+- policy='round-robin 0' prio=1 status=active

  `- 9:0:0:0  sdj 8:144 active ready running

[root@vrh1 ~]# dmsetup ls | sort

mpath1  (253, 8)

mpath2  (253, 9)

mpath3  (253, 10)

mpath4  (253, 11)

ocr1    (253, 5)

ocr2    (253, 6)

ocr3    (253, 7)

VolGroup00-LogVol00     (253, 0)

VolGroup00-LogVol01     (253, 1)

voting1 (253, 2)

voting2 (253, 3)

voting3 (253, 4)

[root@vrh1 ~]# ls -l /dev/mapper/*

crw------- 1 root root  10, 62 Oct 17 09:58 /dev/mapper/control

brw-rw---- 1 root disk 253,  8 Oct 19 00:11 /dev/mapper/mpath1

brw-rw---- 1 root disk 253,  9 Oct 19 00:11 /dev/mapper/mpath2

brw-rw---- 1 root disk 253, 10 Oct 19 00:11 /dev/mapper/mpath3

brw-rw---- 1 root disk 253, 11 Oct 19 00:11 /dev/mapper/mpath4

brw-rw---- 1 root disk 253,  5 Oct 19 00:11 /dev/mapper/ocr1

brw-rw---- 1 root disk 253,  6 Oct 19 00:11 /dev/mapper/ocr2

brw-rw---- 1 root disk 253,  7 Oct 19 00:11 /dev/mapper/ocr3

brw-rw---- 1 root disk 253,  0 Oct 17 09:58 /dev/mapper/VolGroup00-LogVol00

brw-rw---- 1 root disk 253,  1 Oct 17 09:58 /dev/mapper/VolGroup00-LogVol01

brw-rw---- 1 root disk 253,  2 Oct 19 00:11 /dev/mapper/voting1

brw-rw---- 1 root disk 253,  3 Oct 19 00:11 /dev/mapper/voting2

brw-rw---- 1 root disk 253,  4 Oct 19 00:11 /dev/mapper/voting3

[root@vrh1 ~]# ls -l /dev/dm*

brw-rw---- 1 root root 253,  0 Oct 17 09:58 /dev/dm-0

brw-rw---- 1 root root 253,  1 Oct 17 09:58 /dev/dm-1

brw-rw---- 1 root root 253, 10 Oct 19 00:11 /dev/dm-10

brw-rw---- 1 root root 253, 11 Oct 19 00:11 /dev/dm-11

brw-rw---- 1 root root 253,  2 Oct 19 00:11 /dev/dm-2

brw-rw---- 1 root root 253,  3 Oct 19 00:11 /dev/dm-3

brw-rw---- 1 root root 253,  4 Oct 19 00:11 /dev/dm-4

brw-rw---- 1 root root 253,  5 Oct 19 00:11 /dev/dm-5

brw-rw---- 1 root root 253,  6 Oct 19 00:11 /dev/dm-6

brw-rw---- 1 root root 253,  7 Oct 19 00:11 /dev/dm-7

brw-rw---- 1 root root 253,  8 Oct 19 00:11 /dev/dm-8

brw-rw---- 1 root root 253,  9 Oct 19 00:11 /dev/dm-9

[root@vrh1 ~]#  ls -l /dev/disk/by-id/

total 0

lrwxrwxrwx 1 root root 15 Oct 17 09:58 scsi-SATA_VBOX_HARDDISK_VB0db2f233-269850e0 -> ../../asm-diskb

lrwxrwxrwx 1 root root 15 Oct 17 09:58 scsi-SATA_VBOX_HARDDISK_VB3a556907-2b72391d -> ../../asm-diski

lrwxrwxrwx 1 root root 15 Oct 17 09:58 scsi-SATA_VBOX_HARDDISK_VB4915e6e3-737b312e -> ../../asm-diskf

lrwxrwxrwx 1 root root 15 Oct 17 09:58 scsi-SATA_VBOX_HARDDISK_VB512c8f75-37f4a0e9 -> ../../asm-diskg

lrwxrwxrwx 1 root root 15 Oct 17 09:58 scsi-SATA_VBOX_HARDDISK_VB5a531910-25f4eb9a -> ../../asm-diske

lrwxrwxrwx 1 root root 15 Oct 17 09:58 scsi-SATA_VBOX_HARDDISK_VB743e1567-d0009678 -> ../../asm-diskk

lrwxrwxrwx 1 root root 15 Oct 17 09:58 scsi-SATA_VBOX_HARDDISK_VB7ec8476c-08641bd4 -> ../../asm-diskj

lrwxrwxrwx 1 root root  9 Oct 17 09:58 scsi-SATA_VBOX_HARDDISK_VB83d4445f-b8790695 -> ../../sda

lrwxrwxrwx 1 root root 10 Oct 17 09:58 scsi-SATA_VBOX_HARDDISK_VB83d4445f-b8790695-part1 -> ../../sda1

lrwxrwxrwx 1 root root 10 Oct 17 09:58 scsi-SATA_VBOX_HARDDISK_VB83d4445f-b8790695-part2 -> ../../sda2

lrwxrwxrwx 1 root root 15 Oct 17 09:58 scsi-SATA_VBOX_HARDDISK_VBa56f2571-0dd27b33 -> ../../asm-diskc

lrwxrwxrwx 1 root root 15 Oct 17 09:58 scsi-SATA_VBOX_HARDDISK_VBc0115ef6-a48bc15d -> ../../asm-diskh

lrwxrwxrwx 1 root root 15 Oct 17 09:58 scsi-SATA_VBOX_HARDDISK_VBf6b74ff7-871d1de8 -> ../../asm-diskd

Report Abuse  Like (0)

2. Re: asm磁盘使用链路聚合设备名,IO性能只有非聚合设备的1/6!

LiuMaclean(刘相兵)

Expert

LiuMaclean(刘相兵) Jul 21, 2013 11:09 AM (in response to 13628)

step 1:

[oracle@vrh8 mapper]$ cat /etc/multipath.conf

multipaths {

        multipath {

                wwid    SATA_VBOX_HARDDISK_VBf6b74ff7-871d1de8_

                alias   asm-disk1

                mode 660

                uid 501

                gid 503

        }

                        multipath {

                wwid    SATA_VBOX_HARDDISK_VB0db2f233-269850e0_

                alias   asm-disk2

                mode 660

                uid 501

                gid 503

        }

                                        multipath {

                wwid   SATA_VBOX_HARDDISK_VBa56f2571-0dd27b33_

                alias   asm-disk3

                mode 660

                uid 501

                gid 503

        }

}

step 2:

reboot or service multipathd  restart

step 3:

[oracle@vrh8 mapper]$ ls -l /dev/mapper/asm-disk*

brw-rw---- 1 grid asmadmin 253, 4 Jul 21 07:02 /dev/mapper/asm-disk1

brw-rw---- 1 grid asmadmin 253, 2 Jul 21 07:02 /dev/mapper/asm-disk2

brw-rw---- 1 grid asmadmin 253, 3 Jul 21 07:02 /dev/mapper/asm-disk3

bridge就是用和主机一个地址段的,比如你主机是192.168.1.101,那就随便在这个段找四个没有人用的ip给它。

host-only作心跳线用,不知道你用的是什么宿主虚拟机,比如qemu的默认是192.168.122.1,如果你的宿主是win下面的vmware或者vbox,记不清楚了,可以去查看网络连接里面的对应host-only那个连接,比如192.168.33.1,你就配两个和这同一个网段的地址然后试一下能不能ping通主机和ping通对方。

如果这样说还搞不明白建议先学学网络基础知识


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

原文地址: http://outofmemory.cn/yw/7178571.html

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

发表评论

登录后才能评论

评论列表(0条)

保存