高可用性
HA(High Availability)指的是通过尽量缩短因日常维护操作(计划)和突发的系统崩溃(非计划)所导致的停机时间,以提高系统和应用的可用性。HA系统是目前企业防止核心计算机系统因故障停机的最有效手段。
实现HA的方式,一般采用两台机器同时完成一项功能,比如数据库服务器,平常只有一台机器对外提供服务,另一台机器作为热备,当这台机器出现故障时,自动动态切换到另一台热备的机器。
怎么实现故障检测的那?
心跳,采用定时发送一个数据包,如果机器多长时间没响应,就认为是发生故障,自动切换到热备的机器上去。
怎么实现自动切换那?
虚IP。何为虚IP那,就是一个未分配给真实主机的IP,也就是说对外提供数据库服务器的主机除了有一个真实IP外还有一个虚IP,使用这两个IP中的任意一个都可以连接到这台主机,所有项目中数据库链接一项配置的都是这个虚IP,当服务器发生故障无法对外提供服务时,动态将这个虚IP切换到备用主机。
开始我也不明白这是怎么实现的,以为是软件动态改IP地址,其实不是这样,其实现原理主要是靠T
CP/IP的ARP协议。因为ip地址只是一个逻辑地址,在以太网中MAC地址才是真正用来进行数据传输的物理地址,每台主机中都有一个ARP高速缓存,存储同一个网络内的IP地址与MAC地址的对应关系,以太网中的主机发送数据时会先从这个缓存中查询目标IP对应的MAC地址,会向这个MAC地址发送数据。操作系统会自动维护这个缓存。这就是整个实现的关键。
下边就是我电脑上的arp缓存的内容。
(192.168.1.219) at 00:21:5A:DB:68:E8 [ether] on bond0
(192.168.1.217) at 00:21:5A:DB:68:E8 [ether] on bond0
(192.168.1.218) at 00:21:5A:DB:7F:C2 [ether] on bond0
192.168.1.217、192.168.1.218是两台真实的电脑,
192.168.1.217为对外提供数据库服务的主机。
192.168.1.218为热备的机器。
192.168.1.217为虚IP。
大家注意红字部分,219、217的MAC地址是相同的。
再看看那217宕机后的arp缓存
(192.168.1.219) at 00:21:5A:DB:7F:C2 [ether] on bond0
(192.168.1.217) at 00:21:5A:DB:68:E8 [ether] on bond0
(192.168.1.218) at 00:21:5A:DB:7F:C2 [ether] on bond0
这就是奥妙所在。
当218 发现217宕机后会向网络发送一个ARP数据包,告诉所有主机192.168.1.219这个IP对应的MAC地址是00:21:5A:DB:7F:C2 ,这样所有发送到219的数据包都会发送到mac地址为00:21:5A:DB:7F:C2的机器
linux配置虚拟IP地址方法?
刚才重启了一台服务器的网络,结果发现域名不能访问了,ip可以访问.后来发现重启后没了一个网卡,eth0:1.才想起来这个服务器做了负载均衡.可能有网卡是虚拟出来的,于是google下.看到下面文章,顺利解决这个问题.遂搬过来以备不妨.?
?
在日常linux管理工作中,需要为应用配置单独的IP地址,以达到主机与应用的分离,在应用切换与迁移过程中可以做到动态切换,特别是在使用HA的时候,这种方案可以保证主机与应用的隔离,对日常的运维有很大的益处.?
但在有些应用中还没有配置HA,后期需要配置HA时,我们可以先配置虚拟IP给在线的应用使用,这要后期的系统运维可以做到更好的可扩展性.?
本文主要是对IP地址如何配置做一些简单的介绍,只当是记录备忘.呵呵.??
PS:以下实例在redhat?linux实施成功!?1.?在线配置虚拟IP?
ifconfig?eth0:1?192.168.109.108?netmask?255.255.255.0??
2.查看新增加的子接口配置信息是否正确.主要是看IP与子网掩码.?ifconfig?eth0:1?#?ifconfig?eth0:1?
eth0:1????Link?encap:Ethernet??HWaddr?00:0C:29:45:62:3B?
inet?addr:192.168.109.108??Bcast:192.168.109.255??Mask:255.255.255.0?UP?BROADCAST?RUNNING?MULTICAST??MTU:1500??Metric:1?Base?address:0×2000?Memory:d8920000-d8940000??
3.?启动网卡eth0的子接口?ifconfig?eht0:1?up?
查看IP是否可以联通?ping?-c?3?192.168.109.108?#?ping?-c?3?192.168.109.108?
PING?192.168.109.108?(192.168.109.108)?56(84)?bytes?of?data.?64?bytes?from?192.168.109.108:?icmp_seq=1?ttl=64?time=0.032?ms?64?bytes?from?192.168.109.108:?icmp_seq=2?ttl=64?time=0.053?ms?64?bytes?from?192.168.109.108:?icmp_seq=3?ttl=64?time=0.036?ms?—?192.168.109.108?ping?statistics?—?
3?packets?transmitted,?3?received,?0%?packet?loss,?time?2000ms?rtt?min/avg/max/mdev?=?0.032/0.040/0.053/0.010?ms??
4.修改配置文件,使配置在主机重启后自动生效.?cd?/etc/sysconfig/network-script/?cp?ifcfg-eth0?ifcfg-eth0:1?vi?ifcfg-eth0:1?
#?Intel?Corporation?82545EM?Gigabit?Ethernet?Controller?(Copper)?DEVICE=eth0:1???—->子接口名?
HWADDR=00:0C:29:45:62:3B?
ONBOOT=yes?
BOOTPROTO=static?
IPADDR=192.168.109.108?NETMASK=255.255.255.0??
5.对于要切换主机IP与应用IP的情可以做如下处理?
如?下面的例子:主机IP是192.168.109.105?应用IP是192.168.109.108?我们要将IP做对调,?
192.168.109.108给主机使用?192.168.109.105给应用使用??
做法如下:?
配置前的信息:?#ifconfig?eth0?
eth0??????Link?encap:Ethernet??HWaddr?00:0C:29:45:62:3B?
inet?addr:192.168.109.105??Bcast:192.168.109.255??Mask:255.255.255.0?inet6?addr:?fe80::20c:29ff:fe45:623b/64?Scope:Link?
UP?BROADCAST?RUNNING?MULTICAST??MTU:1500??Metric:1?RX?packets:20340?errors:0?dropped:0?overruns:0?frame:0?TX?packets:16678?errors:0?dropped:0?overruns:0?carrier:0?collisions:0?txqueuelen:1000?
RX?bytes:1800154?(1.7?MiB)??TX?bytes:2438822?(2.3?MiB)?Base?address:0×2000?Memory:d8920000-d8940000?#?ifconfig?eth0:1?
eth0:1????Link?encap:Ethernet??HWaddr?00:0C:29:45:62:3B?
inet?addr:192.168.109.108??Bcast:192.168.109.255??Mask:255.255.255.0?UP?BROADCAST?RUNNING?MULTICAST??MTU:1500??Metric:1?Base?address:0×2000?Memory:d8920000-d8940000?修改eth0:1的网卡配置信息:?#?vi?ifcfg-eth0:1?
#?Intel?Corporation?82545EM?Gigabit?Ethernet?Controller?(Copper)?DEVICE=eth0:1???—->子接口名?HWADDR=00:0C:29:45:62:3B?ONBOOT=yes?
BOOTPROTO=static?
IPADDR=192.168.109.105?NETMASK=255.255.255.0?修改eth0的网卡配置信息:?#vi?ifcfg-eth0?
#?Intel?Corporation?82545EM?Gigabit?Ethernet?Controller?(Copper)?DEVICE=eth0?
HWADDR=00:0C:29:45:62:3B?ONBOOT=yes?
BOOTPROTO=static?
IPADDR=192.168.109.108?NETMASK=255.255.255.0??
重启网络生效:这一步很重要!!!?
nohup????service?network?restart??&?
将命令提交给后台去执行,这样子可以保证系统正常重启网络?PS:对于生产系统最好在console上操作,不然有异常就杯具了。。。??
实体?IP:?在网络的世界里,为了要辨识每一部计算机的位置,因此有了计算机IP?位址的定义。一个IP?就好似一个门牌!例如,你要去微软的网站的话,就要去『207.46.197.101?』这个IP?位置!这些可以直接在网际网络上沟通的IP?就被称为『实体IP?』了。?
?
虚拟?IP:不过,众所皆知的,IP位址仅为?xxx.xxx.xxx.xxx的资料型态,其中,?xxx为?1-255间的整数,由于近来计算机的成长速度太快,实体的IP?已经有点不足了,好在早在规划IP?时就已经预留了三个网段的IP?做为内部网域的虚拟IP?之用。这三个预留的IP?分别为:?
A级:10.0.0.0?-?10.255.255.255?B级:172.16.0.0?-?172.31.255.255?C级:192.168.0.0?-?192.168.255.255?
上述中最常用的是192.168.0.0这一组。?
不过,由于是虚拟?IP,所以当您使用这些地址的时候,当然是有所限制的,限制如下:?私有位址的路由信息不能对外散播?
使用私有位址作为来源或目的地址的封包,不能透过Internet来转送?关于私有位址的参考纪录(如DNS),只能限于内部网络使用?
由于虚拟?IP的计算机并不能直接连上?Internet,因此需要特别的功能才能上网。不过,这给我们架设IP网络做成很大的方便,比如:即使您目前的公司还没有连上Internet,但不保证将来不会啊。如?果使用公共IP的话,如果没经过注册,等到以后真正要连上网络的时候,就很可能和别人冲突了。也正如前面所分析的,到时候再重新规划IP的话,将是件非常?头痛的问题。这时候,我们可以先利用私有位址来架设网络,等到真要连上intetnet的时候,我们可以使用IP转换协定,如NAT?(Network?Addresss?Translation)等技术,配合新注册的IP就可以了。?
?
固定?IP与?动态IP:基本上,这两个?东西是由于近来网络公司大量的成长下的产物,例如,你如果向中华电信申请一个商业型态的ADSL?专线,那他会给你一个固定的实体IP?,这个实体?IP就被称为『固定?IP』了。而若你是申请计时制的?ADSL,那由于你的?IP可能是由数十人共同使用,因此你每次重新开机上网时,你这部计算机的IP?都不会是固定的!于是就被称为『动态IP』或者是『浮动式IP』。基本上,这两个都是『实体IP』,只是网络公司用来分配给用户的方法不同而产生不同的名称而已。?
?
虚拟IP技术?
虚拟IP地址(VIP)?是一个不与特定计算机或在一个计算机中的网络接口卡(NIC)相连的IP地址。引入的分组被发送到这个VIP地址,但是所有的分组旅行通过实际的网络接?口。VIPs大部分用于连接冗余;一个VIP地址可能也在一台计算机或NIC发生故障时可用,因为一个可选计算机或NIC响应连接。一个虚拟IP地址的例?子是一个Loopback(无电路IP地址)作为不与在主机或路由器中任何一个特定接口(或电路)相关的IP地址。?
IP技术的一种,增强网络管理,发挥出VLAN的优势,改变了网络结构,合理分配网络资源,均衡网络负载,有效降低网上广播信息,方便对用户的分组管理。