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

参考资料:

-双机热备

不建议用telnet连接主机,这个是非加密的控制服务,容易被获取密码或者劫持对话。

如果必须用telnet的话,这里简单介绍下如何连接。

步骤一:Windows终端开启Telnet功能

1、由于在Windows Vista之后的版本默认并没有提供Telnet功能。如果需要使用Telnet就必须打开此项功能。以Windows 7为例,首先打开控制面板。

2、然后在控制面板中打开“程序和功能”。

3、再在左上角点击“打开或关闭Windows功能”。

4、在“打开或关闭Windows功能”对话框中勾选“Telnet客户端”,点击确定,系统会自动安装。到此Windows终端的工作已经完成。

步骤二:Linux服务器开启Telnet服务

1、许多Linux系统在默认情况下是不安装Telnet服务的,如果需要使用就必须安装此项服务。安装的方法有很多,小编在这里只介绍yum安装

Telnet服务,优点是能够自动检查安装包的依赖文件不用人为干预,当然前提是系统必须联网。在提示符下输入“yum install -y

telnet-server”命令安装Telnet服务。最后出现Complete,代表安装完成。

2、使用命令“vi /etc/xinetdd/telnet”编辑Telnet的配置文件,将disable的值改成no。

3、重启启动xinetd服务,使得telnet配置生效。

4、在Linux服务器上打开Telnet协议的23端口。使用命令“vi /etc/sysconfig/iptables”添加红框内的代码,保存。

5、重新启动iptables,使得防火墙策略生效。

6、在Windows上,用“telnet IP地址”命令,再输入用户名和密码,就可以完成Linux服务器的远程登录。

RS-232:用于与调制解调器、打印机及其它PC外设之间的通信。最大电缆长度为100英尺(典型值)。

RS-422:适用于单主机(驱动器)工业环境。典型应用包括:过程自动化(化工、酿造、造纸)、工厂自动化(汽车制造、金属加工)、HVAC、安防、电机控制、运动控制等。

RS-485:适用于多主机/驱动器工业环境。其典型应用与RS-422相似,包括:过程自动化(化工、酿造、造纸)、工厂自动化(汽车制造、金属加工)、HVAC、安防、电机控制、运动控制。

我们知道串口RS232有效传输距离为15米。我们播控中使用的录像机如DVCPRO、IMX控制接口有RS232、RS422多个接口供选择,如果使用pin9则为RS422接口,视频服务器编解码口控制都是RS422接口,只是插口为RJ45不是DB9的,需要转换线缆进行转换。因此我们在控制中根据以上特性可以灵活使用,我们由于主备控制切换的需要,以及距离的考虑统一选用RS422倒换开关进行倒换,控制RS422倒换开关的为RS232控制接口,这个直接由播控机本身的COM口来控制倒换开关进行倒换,其他控制录像机、切换台、视频服务器编解码卡使用MOXA卡扩展的RS422接口进入RS422倒换开关进行倒换。

嵌入式系统通常为一个资源受限的系统。直接在嵌入式系统的硬件平台上编写软件比较困难,有时甚至是不可能的。目前,一般采用的办法是,先在通用计算机上编写程序,然后,通过交叉编译,生成目标平台上可运行的二进制代码格式,最后下载到目标平台上的特定位置上运行,下面就由福州卓跃教育做具体步骤介绍。

第一步,建立嵌入式Linux应用开发环境。目前,常用的交叉开发环境主要有开放和商业两种类型。开放的交叉开发环境的典型代表是GNU工具链,目前已经能够支持x86、ARM、MIPS、PowerPC等多种处理器。商业的交叉开发环境主要有MetrowerksCodeWarrior、ARMSoftwareDevelopmentToolkit、SDSCrosscompiler、WindRiverTornado、MicrosoftEmbeddedVisualC等。交叉开发环境是指编译、链接和调试嵌入式应用软件的环境。它与运行嵌入式应用软件的环境有所不同,通常采用宿主机/目标机模式。

第二步,交叉编译和链接。在完成嵌入式软件的编码之后,就是进行编译和链接,以生成可执行代码。由于开发过程大多是在Intel公司x86系列CPU的通用计算机上进行的,而目标环境的处理器芯片却大多为ARM、MIPS、PowerPC、DragonBall等系列的微处理器,这就要求在建立好的交叉开发环境中进行交叉编译和链接。

第三步,交叉调试。

①硬件调试。如果不采用在线仿真器,可以让CPU直接在其内部实现调试功能,并通过在开发板上引出的调试端口,发送调试命令和接收调试信息,完成调试过程。目前,Motorola公司提供的开发板上使用的是DBM调试端口,而ARM公司提供的开发板上使用的则是JTAG调试端口。使用合适的软件工具与这些调试端口进行连接,可以获得与ICE类似的调试效果。

②软件调试。在嵌入式Linux应用开发系统中,Linux系统内核调试,可以先在Linux内核中设置一个调试桩(debugstub),用作调试过程中和宿主机之间的通信服务器。然后,可以在宿主机中通过调试器的串口与调试桩进行通信,并通过调试器控制目标机上Linux内核的运行。

我们用一条交叉网线把NPort5110 和PC机的网口连接起来,并把NPort上电。

首先,打开控制面板,网络连接。

在本地连接上点右键,选择属性。

双击进入 Internet协议(TCP/IP),点击“使用下面的IP地址”

写入 IP 地址和子网掩码,记住要和NPORT 的IP 地址在同一子网段内。如NPORT 默认IP

为192168127254,2552552550;就需要把PC 机的IP 地址设为192168127XXX,

2552552550,最后一个数字不同即可。

点击确定。

第二章:网络和串口参数配置

搜索 NPort

打开NPort Administrator(可以在光盘的对应位置找到这个软件,安装好),点击Search,此

时请确认网络防火墙已经关闭。

会搜索到我们的NPort5110,点击stop,停止搜索。

网络参数配置

双击右边空白处的NPort 设备,会出现以下界面,点击选择Network 选项卡,点击Modify

修改。可以看到以下界面:

我们可以在里面修改NPort的以下参数:

IPAddress:IP地址。

Netmask:子网掩码。

Gateway:网关。

IP Configuration:可以配置为静态IP(Static),或者为DHCP(动态IP)。

DNS Server1和2:DNS,域名解析服务器。

串口参数配置

点击 Serial选项卡,点击Modify修改,双击端口进去,可以看到以下界面:

我们可以在里面修改以下参数:

Baud Rate:波特率,NPort5000 系列只能支持标准波特率,如9600,115200bps 等。

Parity:校验。

None:无校验

Even:偶校验。

Odd:奇校验。

Space:空。

Mark:标志。

Data Bits:数据位。

Stop Bits:停止位。

Flow Control:流量控制。

None:无流量控制。

XON/XOFF:软件流控。

RTS/CTS:硬件流控。

FIFO:64bit先进先出,为了降低CPU负载,提高设备性能。可以选择Enable启用,或Disable

禁用。

Interface:可选择RS232,RS422,RS485 2线,或者RS485 4线。(NP5110 只能为RS232)

设置好后,点击OK,设置保存,设备重新启动。

第三章:操作模式设置

Real COM映射端口

打开 NPort Administrator(可以在光盘的对应位置找到这个软件,安装好),点击Search,此

时请确认网络防火墙已经关闭。

会搜索到我们的NPort5110,点击stop,停止搜索。

双击右边的5110,选择Operating Mode选项卡,确认为Real COM模式:

点击左边的第四项:COM MAPPING,

再点击Add

点击“OK”,

点击“Apply”保存

点击“Yes”,点击“OK”。

这样,端口就映射好了。

TCP Server模式的设置(用软件)

打开 NPort Administrator(可以在光盘的对应位置找到这个软件,安装好),点击Search,此

时请确认网络防火墙已经关闭。

会搜索到我们的NPort5110,点击stop,停止搜索。如果打开防火墙,可以使用Search IP,

在下面选项框里输入NPort的IP地址,

点击 OK,就可以搜索到NPort设备。

双击右边的NP5110,切换到OperatingMode选项卡,点击Modify,双击进去。可以把模式

修改成TCP Server 模式。

里面的名词解释:

Local TCP Port:本地数据端口,指的是NP5110 的数据端口。

Command Port:NP5110 的命令端口。

Max Connection:最大连接数,也就是说同时最大可以有几台上位机采集到下面串口设备

的数据,NPort5000 系列最大是4 个,NPort6000 和CN2600 系列是8 个。

当最大连接数为2 或以上的时候,右边的选项Allow Driver Control 和Ignore Jammed IP会开

启。

Allow Driver Control:当最大连接数为2 或以上时,且此功能打开时,上位机A 需要以

4800bps打开串口,上位机B需要以9600bps打开串口,是可以的。如果此功能关闭,则波

特率需以固件中的设置一致。

Ignore Jammed IP:当最大连接数为2 或以上时,且此功能打开时,其中一台上位机A死

机,上位机B 依然可以正常接收数据。如果此功能关闭,则上位机B 也不能收到串口的数

据了。

iperf,具体要纤细直接去看文档,简单给列条测试:(TCP和UDP知只是两种传输数据的协议)。

TCP测试:

1、客户端执行:/iperf -c host -i 1 -w 1M,其中-w表示TCP window size,host需替换成服务器地址。

2、服务器执行:/iperf -s -i 1 -w 1M '这裏是指定windows如果是 iperf -s则windwos默认大小为8kbyte/s 。

扩展资料:

优势:稳定性。

Linux系统是众所周知最具稳定性的系统;事实上,以Linux系统的美国服务器用户在出现系统崩溃的反馈上比例非常少。这对于用户来说,特别是小型和中小型企业的用户特别有价值,因为服务器系统一旦崩溃对企业的业务会造成很大的影响。

与windows相比,Linux处理不运行的进程的能力远高于windows,因为正是这些进程影响了windows的稳定性的主要因素。

-linux服务器

我按下面这个配置成功了,你可以试下:

一、安装的前提条件

1确保安装了网卡并工作正常

使用命令

#ifconfig eth0

查看网卡状态,然后关闭ifdown eth0,注意一定要关闭ifdown eth0

2在系统中不要设置默认路由(网关),让ADSL拨号后自动获得

如果已经设置了默认路由,使用以下方法删除:

在文件 /etc/sysconfig/network 中删除 GATEWAY= 这一行,然后以root执行:

#/etc/rcd/initd/network restart

3已经安装了pppd软件包

如果存在文件 /usr/sbin/pppd,则说明已经安装了pppd;

如果未安装,从RedHatLinux 62安装光盘上安装ppp-2311-

4i386rpm这个软件包

二、安装PPPOE客户端软件

Linux下的PPPOE客户端软件比较多,而且大多使用GNU License,我们推荐使用rp-pppoe 这个软件包。从http://wwwroaringpenguincom/pppoe/这个网站上,不仅可以下载

RedHat 62平台下的rp-pppoe的二进制软件包,而且可以下载源代码软件包。

1二进制软件包的安装:

A下载二进制软件包

http://wwwroaringpenguincom/pppoe/rp-pppoe-32-1i386rpm

B进行安装

以root执行:

#rpm -Uvh rp-pppoe-32-1i386rpm

2从源代码进行安装:

从源代码进行安装同样适用于其它平台的Linux,但必须在Linux系统中安装gcc编译器。

A下载源代码软件包

http://wwwroaringpenguincom/pppoe/rp-pppoe-32targz

B解压缩

#tar xvfz rp-pppoe-32targz

#cd rp-pppoe-32

C进行编译和安装

运行脚本

#/go

将自动进行编译和安装,最后,调用/usr/sbin/adsl-setup进行配置,具体解释见三。

三、配置PPPOE客户端软件

安装完软件包后,必须配置pppoe的配置文件/etc/ppp/pppoeconf,从而让ADSL拨号时使用配置文件中的用户名、密码等参数。我们不必手工改动这个文件,可以使用adsl-setup这个工具进行配置:

#/usr/sbin/adsl-setup

当出现

>>> Enter your PPPoE user name :

输入ADSL帐号的用户名

当出现

>>> Enter the Ethernet interface connected to the ADSL modem

For Solaris, this is likely to be something like /dev/hme0

For Linux, it will be ethn, where 'n' is a number

(default eth0):

输入 eth0 ,这是ADSL相连的网卡的名字

当出现

>>> Enter the demand value (default no):

输入 no

当出现

>>> Enter the DNS information here:

输入 server ,这表示使用ADSL拨号自动获得的DNS服务器IP地址

当出现

>>> Please enter your PPPoE password:

输入ADSL帐号的密码

当出现

>>> Choose a type of firewall (0-2):

输入 0 ,不使用防火墙

当出现

>>> Accept these settings and adjust configuration files (y/n)

如果输入的信息正确,输入 y ,完成配置,否则,输入 n 重新输入。

四、启动PPPOE客户端软件

使用命令

/usr/sbin/adsl-start 启动PPPOE客户端软件,进行连接,如果成功,将出现

Connected;

如果不成功,请检查网线、ADSL MODEM等物理设备,并查看 /var/log/messages中的信息

/usr/sbin/adsl-stop 关闭和ISP的连接

/usr/sbin/adsl-status 查看当前连接的状态

如果想在Linux系统启动时自动启动ADSL连接,输入以下命令

#chkconfig --add adsl

将在当前的运行级下加入ADSL的自启动脚本

五、测试

当连接成功后,使用命令

#ifconfig -a

在输出中应该含有关于 ppp0 的一堆信息,其中还绑定了 IP 地址,说明已经从拨号中获得了IP地址。

使用命令

#netstat -nr

查看路由表信息,这时的默认路由应该是上面获得的IP地址。

如果没有默认路由,我们可以手动增加:

#route add default gw 上面获得的IP地址

使用命令

#nslookup wwwsinacomcn

如果解析出新浪的IP,说明已经从拨号中正确获得了DNS服务器

最后,使用命令ping某个域名或IP,如果有响应,表示你已经大功告成了。

六、其它说明

1、RedHat Linux 71已经集成了rp-pppoe这个软件包,只不过版本有些低,如果你不在意版本高低,可以直接进行三后面的步骤。

2、以后要拔号上网时,只要:

ifdown eth0

ifup ppp0

/usr/sbin/adsl-start

如果问题能够再现,那么问题已经解决 80% 了。对于操作系统核心而言,如果有问题的再现方法,那么可以说是已经解决 99% 了。经常遇到的问题是系统可以正常运行一段时间,然后死机。如果不好再现问题,那么只有根据死机现场遗留的东西来进行分析了。

如果系统没有死干净,比如磁盘中断和文件系统是好的,那么也许能有日志信息保留在文件中,不过这样的好运气我是从来没有遇到过的。如果键盘中断还能响应 (按下Num Lock,可以看见键盘小灯亮灭),那么运气就算是足够好了,这时可以祭出 sysrq 大法,同时按下 Alt-Sysrq-T 获得进程系统堆栈信息,按下 Alt-Sysrq-M 获得内存分配信息,按下 Alt-Sysrq-W 获得当前寄存器信息。

linux/Documentation/sysrqtxt。另外,最好关闭终端的自动 blank 功能,这样系统死的时候至少能从屏幕上看到一些信息。设置方法是:

# echo 1 > /proc/sys/kernel/sysrq

# setterm -blank

这两个设置最好加到系统启动脚本中 (比如 /etc/rcd/rclocal),保证每次启动都能得到运行。

如果很不幸,键盘也死悄悄了,(更为不幸的是,这种情况很常见),那么也不是只有等死一个办法,这时可以用串口终端 (serial console)将系统信息发送

到另一台系统上,这样可以通过对这些信息分析来定位问题。设置方法如下:

准备工作

1 一台被监视的服务器,一台进行监视工作的PC。

2 一根串口直连线。

配置

1 在服务器上,加入一个新的 grub 项目,增加核心参数 "console=ttyS0 console=tty1",如:

kernel /boot/vmlinuz-2421-930AXsmp ro root=LABEL=/1 console=ttyS0

console=tty1

2 在服务器上,修改 /etc/sysconfig/syslog,加入 klogd 选项 "-c 7",保证更多内核信息得到输出。如:

KLOGD_OPTIONS="-x -c 7"

3 重新启动服务器

4 用串口直连线连接两台机器,测试:

1) 在PC上运行 "cat /dev/ttyS0",在服务器上运行 "echo hi > /dev/ttyS0",看在 PC 上是否有 "hi" 输出。

2) 在PC上运行 "cat /dev/ttyS0",在服务器上运行 "echo w > /proc/sysrq-trigger",看 PC 上是否有相应内核信息输出。

3) 在PC上运行 "cat /dev/ttyS0",在服务器上运行 "modprobe loop",看 PC 上是否有相应内核信息输出。

5 如果测试通过,那么在 PC 上运行:cat /dev/ttyS0 | tee /tmp/result

另外,也可以用 Windows 超级终端获得串口信息。

that’s it

此外,一些核心支持 LKCD, netdump 等调试功能,也可以一试。

剩下的,就只有靠经验和运气了,一般造成 Linux 系统死机的原因有:

系统硬件问题 (SCSI 卡,主板,RAID 卡,网卡,硬盘)

外围硬件问题 (终端切换器,网络)

软件问题

驱动 bug (去找更新的驱动试试)

核心系统 bug (去 LKML 上看看,或换个核心试试)

系统设置

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

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情