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

参考资料:

-双机热备

Linux上的heartbeat双机热备服务架设

一 安装前环境设定

两台主机硬件环境(不必完全一致):

CPU: Xeon 3G 2 (EM64T)

MEM: 2G

NIC: Intel 1G 2

eth0: 对外IP

eth1: 对内IP(HA专用)

两台主机的eth1使用双机对联线直接连接。

分区方式:

Filesystem 容量 挂载点

/dev/sda2 97G /

/dev/sda6 45G /Datas

/dev/sda1 99M /boot

none20G /dev/shm

/dev/sda3 97G /opt

另外每台主机应预留500M的raw空间或者更多来作为共用空间被HA使用。

操作系统:

RedHat Enterprise 4 Update2 (269-22 EL)

预安装软件:

@ X Window System

@ GNOME Desktop Environment

@ KDE Desktop Environment

@ Editors

@ Engineering and Scientific

@ Graphical Internet

@ Text-based Internet

@ Authoring and Publishing

@ Server Configuration Tools

@ Development Tools

@ Kernel Development

@ X Software Development

@ GNOME Software Development

@ KDE Software Development

@ Administration Tools

@ System Tools

二安装前网络环境设定:

node1: 主机名:servers201 ( HA01 )

eth0: 19216810201 //对外IP地址

eth1: 1000201 //HA心跳使用地址

node2: 主机名:servers202 ( HA02 )

eth0: 19216810202 //对外IP地址

eth1: 1000202 //HA心跳使用地址

特别注意要检查以下几个文件:

/etc/hosts

/etc/hostconf

/etc/resolvconf

/etc/sysconfig/network

/etc/sysconfig/network-scripts/ifcfg-eth0

/etc/sysconfig/network-scripts/ifcfg-eth1

/etc/nsswitchconf

#vi /etc/hosts

node1的hosts内容如下:

127001 localhostlocaldomain localhost

19216810201 servers201 HA01

1000201 HA01

1000202 HA02

19216810202 server202

node2的hosts内容如下:

127001 localhostlocaldomain localhost

19216810202 servers202 HA02

1000202 HA02

1000201 HA01

19216810201 server201

#cat /etc/hostconf

order hosts,bind

#cat /etc/resolvconf

nameserver 61139269 //DNS地址

#cat /etc/sysconfig/network

NETWORKING=yes

HOSTNAME=servers201 //主机名

GATEWAY="192168101" //网关

GATEWAY="eth0" //网关使用网卡

ONBOOT=YES //启动时加载

FORWARD_IPV4="yes" //只允许IPV4

#cat /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

ONBOOT=yes

BOOTPROTO=static

IPADDR=19216810201

NETMASK=2552552550

GATEWAY=192168101

TYPE=Ethernet

IPV6INIT=no

#cat /etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=eth1

ONBOOT=yes

BOOTPROTO=none

IPADDR=1000201

NETMASK=2552552550

TYPE=Ethernet

[node1] 与 [node2] 在上面的配置中,除了

/etc/hosts

/etc/sysconfig/network

/etc/sysconfig/network-scripts/ifcfg-eth0

/etc/sysconfig/network-scripts/ifcfg-eth1

要各自修改外,其他一致。

配置完成后,试试在各自主机上ping对方的主机名,应该可以ping通:

/root#ping HA02

PING HA02 (1000202) 56(84) bytes of data

64 bytes from HA02 (1000202): icmp_seq=0 ttl=64 time=0198 ms

64 bytes from HA02 (1000202): icmp_seq=1 ttl=64 time=0266 ms

64 bytes from HA02 (1000202): icmp_seq=2 ttl=64 time=0148 ms

--- HA02 ping statistics ---

3 packets transmitted, 3 received, 0% packet loss, time 2002ms

rtt min/avg/max/mdev = 0148/0204/0266/0048 ms, pipe 2

三安装HA 与HA依赖包

rpm -Uvh libnet-1121-1rhelum1i386rpm //可以不装

rpm -Uvh heartbeat-pils-204-1el4i386rpm

rpm -Uvh heartbeat-stonith-204-1el4i386rpm

rpm -Uvh heartbeat-204-1el4i386rpm

rpm -Uvh ipvsadm-124-5i386rpm

四 配置 HA的各配置文件

配置心跳的加密方式:authkeys

#vi /etc/had/authkeys

如果使用双机对联线(双绞线),可以配置如下:

#vi /etc/hcd/authkeys

auth 1

1 crc

存盘退出,然后

#chmod 600 authkeys

配置心跳的监控:haresources

#vi /etc/had/haresources

各主机这部分应完全相同。

server201 IPaddr::19216810200 ipvsadm httpd

指定 server201调用ipvsadm启动http服务,系统附加一个虚拟IP 19216810200 给eth0:0

这里如果server201宕机后,server202可以自动启动http服务,并新分配IP 19216810200给server202的eth0:0

配置心跳的配置文件:hacf

#vi /etc/had/hacf

logfile /var/log/ha_log/ha-loglog ## ha的日志文件记录位置。如没有该目录,则需要手动添加

bcast eth1 ##使用eth1做心跳监测

keepalive 2 ##设定心跳(监测)时间时间为2秒

warntime 10

deadtime 30

initdead 120

hopfudge 1

udpport 694 ##使用udp端口694 进行心跳监测

auto_failback on

node server201 ##节点1,必须要与 uname -n 指令得到的结果一致。

node server202 ##节点2

ping 192168101 ##通过ping 网关来监测心跳是否正常。

respawn hacluster /usr/lib64/heartbeat/ipfail

apiauth ipfail gid=root uid=root

debugfile /Datas/logs/ha_log/ha-debuglog

设置ipvsadm的巡回监测

ipvsadm -A -t 19216810200:80 -s rr

ipvsadm -a -t 19216810200:80 -r 19216810201:80 -m

ipvsadm -a -t 19216810200:80 -r 19216810202:80 -m

执行后进行监测:

#ipvsadm --list

如果返回结果与下相同,则设置正确。

IP Virtual Server version 120 (size=4096)

Prot LocalAddress:Port Scheduler Flags

-> RemoteAddress:Port Forward Weight ActiveConn InActConn

TCP 19216810200:http rr

-> server202:http Local 1 0 0

-> server201:http Masq 1 0 0

五 HA服务的启动、关闭以及测试

启动HA: service heartbeat start

关闭HA; service heartbeat stop

系统在启动时已经自动把heartbeat 加载了。

使用http服务测试 heartbeat

首先启动httpd服务

#service httpd start

编辑各自主机的测试用html文件,放到/var/www/html/目录下。

启动node1的heartbeat,并执行这个指令进行监控: heartbeat status

六 防火墙设置

heartbeat 默认使用udp 694端口进行心跳监测。如果系统有使用iptables 做防火墙,应记住把这个端口打开。

#vi /etc/sysconfig/iptables

加入以下内容

-A RH-Firewall-1-INPUT -p udp -m udp --dport 694 -d 1000201 -j ACCEPT

意思是udp 694端口对 对方的心跳网卡地址 1000201 开放。

#service iptables restart

重新加载iptables。

您还需要了解如何存取适当的备份媒体 ; 虽然在 Unix 的世界中对待所有的装置就像处理档案一样,如果您写入到一个字元设备像是磁带,“档案”的名称就是设备本身的名称 (亦即 ``/dev/nst0'' 是一个SCSI介面的磁带机)。

下面的指令会将您的整个 Linux 系统备份於 ``/archive/'' 档案系统,除了 ``/proc/'' 伪装档案系统,``/mnt/'', ``/archive/'' 档案系统 (没必要备份我们的备份档 !),还有 Squid 很大的快取资料档 (是的,依我之见,浪费备份媒体而且不需要去备份)之外的任何已挂载的档案系统 :

tar -zcvpf /archive/full-backup-`date '+%d-%B-%Y'`targz

--directory / --exclude=mnt --exclude=proc --exclude=var/spool/squid

不要被上面的指令吓到 ! 当我们将其分为两部分,您将会发现这个强力工具之美。

上列的指令指定了选项 ``z'' (压缩; 备份资料经由 ``gzip''压缩), ``c'' (建立; 一个 archive 档开始被建立),``v'' (verbose; 显示出已经备份好的档案), ``p'' (允许保存;保护的资料将会被 “记忆” ,可以被回复)。``f'' (档案) 选项後面接的是的要写入的 archive 档 (或装置)名称,注意包含资料的档名是如何得到的,只要用两个後引号将``date'' 指令圈起来。 一般的命名惯例是在未压缩过的档案後面加上 `` tar'' ,压缩的档案加上 ``targz'' ``--directory'' 选项告知 tar 在开始备份前首先跳到以下的档案路径 ( 在本例中是``/''目录 )。 ``--exclude'' 选项告知 tar 不要备份所指定的档案或目录。最後, ``'' 符号告知 tar 要备份目前目录中的所有东西。

注意: 有一点很重要必须了解的就是 tar 的选项是大小写不同的 ! 此外,大部分的选项可以用助记符号加以简化(亦即 ``f''), 或者使用较易记忆的选项全名 (亦即 ``file'')。 助记符号前用一个``-'' 字元作为字首作为辨识,在全名的前面有两个这种符号的字首。参考 “man”页以得到更多有关使用 tar 的资讯。

另一个例子,这一次只有写入指定的档案系统 (和上一个除了例外全部写入的例子相反) 到一台 SCSI 的磁带机 :tar -cvpf /dev/nst0 --label="Backup set created on `date '+%d-%B-%Y'`" --directory / --exclude=var/spool/ etc home usr/local var/spool

在上面一行的选项,注意没有用到 ``z'' (压缩) 选项。我强烈建议反对写入压缩资料到磁带上,因为如果磁带上资料有一部份损坏,您会失去整个备份 ! 然而,未压缩的储存的 archive 档具有很高的可恢复性,即使磁带上的档案有一部份损毁。

因为磁带机是一个字元设备,没有办法指定一个确实的档名。因此,指定给 tar 的档名可简化为装置名称,``/dev/nst0'',是在 SCSI 排汇上的第一个磁带设备。

注意: ``/dev/nst0'' 设备在备份做好後不会回带 ; 因此有可能将好几组备份写到同一磁带。(您也可以选择``/dev/st0''这个装置,在这种情形磁带在备份完後会自动回带)

既然我们无法对一套备份指定档名, ``--label'' 选项可以来写进档案本身一些有关这一套备份的资讯。

最後,只有包含在 ``/etc/'', ``/home/'', ``/usr/local'', 及 ``/var/spool/'' (除了 Squid 的 快取资料档)会写进磁带。

当使用磁带时,可以使用下列命令回带,以及退出磁带:

mt -f /dev/nst0 rewind

mt -f /dev/nst0 offline

小技巧: 您将会发现到当 archive 档建立时,前面的``/'' (斜线) 符号会被 tar 去除。这是 tar 的预设操作模式, 这是故意用来保护您避免覆写这些重要档案的原先版本,以防万一您不慎在重建过程中覆写了不正确的档案。

如果您真的不喜欢这个特性 (记住,这是特性!) 您可以指定 tar ``--absolute-paths'' 选项,这样会保留前面的斜线。然而,我不建议这样做,因为很危险 !

使用``KDat''备份: 如果您使用 KDE 桌面环境,我相信您会发现``KDat'' 公用程式不但强大而且对使用者很友善。此外,另一个好处是KDat 利用``tar'' 作为其备份 engine。因此,用 KDat 写入的备份组不但可以用 KDat 读取,也可以用 tar ! 这使得 KDat 成为在使用者友善及备份可携性中很好的选择。

小技巧: 即使您决定不使用也不安装完整的 KDE 套件,如果您安装了 Qt 函式馆就仍然可以使用KDE。

要建立备份 profile,可以选择从选单栏中“File”选项选择“Create Backup Profile” (或在“Backup Profiles”文件夹上按滑鼠右键,然後选择 “Create Backup Profile”)。在右手边的是 KDat 视窗,您可以改变各种设定,像是profile 名称,archive 名称, tar 选项, 以及其他的。单击 “Help” 选单有关於这些设定的用途说明。

要指定哪些档案应该包含在您的 backup profile, 在 ``/'' 目录文件夹旁的核对图示上敲一下左键。这会确定所有的档案及这个目录下所有东西都会备份。然後,在文件夹旁的小 ``+''符号上敲一下左键,资料夹会展开,显示档案及以下的目录。您可以排除掉所不想备份的档案;只要在您想排除的每一个档案或目录旁的核对符号上敲一下左键。

写个脚本不得了 在crontab定时一下

tar zcvf /文件存放路径/webpagetargz / 页面路径/

mysqldump -uroot -p(p后紧跟密码) 库名字 >/备份存放路径/datasql

chmod 777 你的脚本

然后crontab -e 每天 凌晨一点备份 里面就写

1 /你的脚本路径/backupsh

够详细了 也够入门了 命令够少的了 效果实现了 很简单吧 给分吧

以小鸟云为例:

1启动"开始→设置→控制面板→添加/删除程序",之后出现"添加/删除程序"对话框;

2单击"添加/删除 Windows 组件→组件",出现"windows组件向导→下一步"出现" Windows 组件"对话框从列表中选择"网络服务";

3单击"详细内容",从列表中选取"Windows Internet 命名访问(WINS)" 如图:上图 单击"确定"4单击"下一步",输入到 Windows2000 Server 的安装源文件的路径,单击"确定"开始安装 WINS 服务;

5步骤5 单击"完成",当回到"添加/删除程序"对话框后,单击"关闭"按钮;

6 安装完毕后在管理工具中多了一个 "WINS" 控制台;

7 如果不知道服务器有关问题,请咨询小鸟云!

1、你可以在数据库A做计划任务,用exp或者expdp导出,然后scp或者rsync到服务器B

例如计划任务0 0 /data1/backup/expdp_db_baksh;

expdp_db_baksh内容:

#!/bin/sh

~/bash_profile

dst=/data1/backup/db_bak

today=`date +%F`

bakfile=expdp_db_${today}dmp

logfile=expdp_db_${today}log

expdp 'user01/778899' DIRECTORY=expdp_dir1 parallel=2 \

dumpfile=$bakfile SCHEMAS=user01 logfile=$logfile COMPRESSION=all

scp -P22 $bakfile oracle@1721615:/data1/backup/db_bak

exit 0;

2、也可以在服务器B用exp直接导出数据

exp 'user01/778899@DB01' file=$bakfile FULL=Y log=baklog

3、开启归档模式,在服务器A用rman 做全备或增量备份,然后将备份同步到服务器B

指定路径

CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/data1/rman/full_%d_%U';

全备份,默认Format

backup incremental level 0 database;

增量备份

backup incremental level 1 database;

将备份rsync 到服务器B

/usr/bin/rsync -av '-e ssh -p 22' oracle@1721611:/data1/rman /data1

4、开启归档模式,在服务器AB间配置DATAGURAD,同步数据

若系统之前安装过lvm ,可以使用lvm备份,

我个人建议 ,是需要重复安装的程序,直接tar包后,自己做个脚本,在测试机上面测试几次,没问题了,就在测试机上面开启一个web网站,把tar包和 shell脚本,放到上面去,以后需要重新安装时候,直接在远程机上 wget ,下载,然后执行脚本,这样虽然开始麻烦一下,但是之后比较方便;我公司的业务程序,都是这样操作的;

你的意思 是直接备份整个系统,打成ios镜像,这跟 win系统下的ghost相似,我也期待他人的回答

,建议你看一下 lvm操作;

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » Linux服务器双机热备详细过程

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情