网络高可用性简介:
网络的可用性可以从故障率、可恢复性和鲁棒性三方面来衡量:故障率是指在给定的时间里,网络故障和维护事件出现的次数;可恢复性是指网络从故障状态恢复到正常状态的能力;而鲁棒性是指网络检测和处理故障的能力以及在各种故障情况下仍然具有的工作能力。由于网络是业务系统的承载体,网络的高可用性是为了保障业务系统的高可用性。所以在网络发生故障的情况下,如何迅速检测到故障并且让网络尽快恢复传递能力,使得所承载的企业业务系统具有高可用性是网络高可用性设计的首要目标。网络冗余容错技术可以保持网络在故障情况下的工作能力也即实现网络的鲁棒性,是网络高可用性的主要技术。具体的来说,可以通过网络设备、网络链路、路径控制信息的冗余容错,使得网络故障发生时,网络可以无缝地切换到冗余设备或链路,从而保持网络的传递能力。其中网络的控制平面要做到平滑的切换,尽可能减少控制信息的丢失;而网络的转发平面要做到快速切换,尽可能减低切换时延,减少包丢失。
网络高可用性的技术实现:
(1)linux下双网卡绑定:
网卡绑定技术有助于保证高可用性特性并提供其它优势以提高网络性能,双网卡绑定实现就是使用两块网卡虚拟成一块网卡。使两块网卡具有相同的ip地址而链接聚合成一个逻辑链路工作,linux下这种技术被称为bonding。
实验(双网卡绑定的实现):
操作步骤:
添加三块网卡,然后进行编辑:
编辑第一块网卡:
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
编辑第二块网卡:
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
编辑bond0网卡:
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
ONBOOT=yes
BOOTPROTO=none
IPADDR=192.168.101.178
NETMASK=255.255.255.0
修改加载模块:
[root@localhost ~]# vim /etc/modprobe.conf
alias bond0 bonding 编辑加载模块
options bond0 miimon=100 mode=1 设置加载模块条件
编辑开机脚本:
[root@localhost ~]# vim /etc/rc.d/rc.local
加入以下一行:
ifenslave bound0 eth0 eth1
重启系统:
init 6
查看网卡信息,可以看出网卡mac地址一样:
查看网卡状态:
从外网进行ping内网,然后断开内部网卡验证:
(2)高可用群集技术:
高可用性集群,英文原文为High Availability Cluster, 简称HA Cluster,是指以减少服务中断(宕机)时间为目的的服务器集群技术。
高可用群集系统中应用程序每次只能在群集中的一个服务器上运行,其它服务器可以运行其它应用程序,但每个应用程序只能运行在单一服务器上。如果主服务器发生故障,正在故障服务器上运行的应用程序进行失败切换,切换到另一台服务器上并继续运行。
高可用性集群分为两个类型:
1、主/从(Active/passive)
主/从通常也叫做双机热备份模式,这是最常用的集群模型。在正常使用的情况下,客户端访问服务器的请求是经过双机热备份软件访问主服务器,从服务器处于空闲状态。而服务器是读取磁盘阵列柜上的数据。当主服务器出现问题时,则从服务器全权接管客户端的访问请求,服务器是存取公共磁盘阵列柜上的数据。这时虽然主服务器出现问题,但是存放于磁盘整列柜中的用户数据库还是完好无损。
2、主/主(Active/Active)
主/主模式通常也叫做负载均衡模式,它提供了高可用性,并且在只有一个节点在线时提供可以接受的性能,该模型允许最大程度的利用硬件资源。在正常使用的情况下,客户端访问服务器的请求是经过双机热备份软件按照当前各个系统可使用的资源平均分配的方式同时访问两台服务器。而服务器是读取磁盘阵列柜上的数据。当其中的一台服务器出现问题时,则无问题的服务器全权接管客户端的访问请求,服务器是存取公共磁盘阵列柜上的数据。
实验(在虚拟机环境下做服务器群集):
实验拓扑如下:
实验环境:
VMware Workstation 6.0
群集中有两个节点,每个节点有两块网卡,一块为公用网络,用于客户机的访问,另一块为专用网络,用于节点的通信。两个节点共用仲裁数据
操作系统为Windows Server 2003 Enterprise Edition,并且两个节点在同一个域中,
节点1为域控:DC(专用IP:15.1.1.1;公用IP:192.168.1.2),节点2为成员服务器(专用IP:15.1.1.2;公用IP:192.168.1.3),专用网络设为VMnet 2,和公用网络设为VMnet 4,服务器群集使用IP为192.168.1.10,群集名为cluster。
实验准备:
(1).在两个节点的“网络连接”选择“高级”——“高级设置”,在“适配器和绑定”选项卡中,设置网络服务优先访问“公用网络”
(1).装虚拟机的时候选择磁盘类型的时候选择IDE硬盘
(2).在节点1上添加一块SCSI硬盘,空间大小为1G
(3).在虚拟机的系统安装目录中找到主机的配置文件(文件类型为VMware Configuration File的),用记事本打开
(4).编辑配置文件,具体为:
在文件末尾添加disk.locking=false ,避免磁盘被一台服务器锁定。
将文本scsi0.present和scsi0:0.filename修改为scsi1:0.present和scsi1:0.filename(原来的系统盘为ide0:0,新增的磁盘为scsi0:0),这样做的目的是为了使系统盘和仲裁磁盘不使用同一总线,否则创建群集时会提示无法找到仲裁设备。
(5).启动机器,使用磁盘管理器,初始化新增磁盘,注意不能使用动态磁盘,格式化为NTFS格式
(6).在节点2上添加刚刚创建的磁盘,并参照第(4)步修改配置文件
(7).启动节点2,打开磁盘管理器,不必分区格式化,只需为其指定一个盘符即可。
配置服务器群集:
1.配置第一个节点
(1).在节点1上打开“群集管理器”,创建新群集,输入群集名cluster(等下第二个节点加入到群集时输这个名)
(2).输入第一个节点的计算机名
(3).接下来系统自动分析配置
(4).输入群集的IP地址192.168.1.10
(5).输入群集服务帐户,该帐户要具有此群集中所有节点的本地管理员权限,我这里用的是管理员,而且密码为空,你也可以建一个用户,然后加入到administrator组
(6).显示建议的群集的配置,这里的“资源配置”中的磁盘F-经过管理的-仲裁,这是群集中的共享设备
(7).如果前面配置的参数配置正确,如群集的服务帐户的权限足够并且密码正确,群集IP地址正确,仲裁设备正确等,则会完成创建群集的任务
2.配置第二个节点
(1). 在节点二上打开“群集管理器”,选择”打开到群集的连接”输入cluster群集名,可以看到群集的信息
(2).在已有的群集中新建节点
(3).选择节点的计算机名
(4).系统自动分析群集配置,如满足创建节点的条件,则会显示已完成任务(图中×××的叹号不是致命错误,是因为第一个节点的主机记录多于一个,所以出现这个标识,它不会导致新建节点的失败)
(5).输入群集服务帐号、密码
(6).系统自动添加节点到群集,可以看到服务器群集中有两个节点
配置专用网络
1. 群集中有两个节点通过专用网络互相检测对方的状态,依次来决定是否在节点之间进行资源切换,专用网络之间的联线俗称”心跳线”,配置的方法如下
验证服务器群集
本实验群集的IP地址为192.168.1.10,创建群集后,192.168.1.10为第一个节点拥有
此时第二个节点只有公用IP地址和专用的IP地址
假设现在将第一个节点的网卡断开模拟出第一个节点出故障,群集IP地址会在几秒之内转移到第二个节点卡