通常对HA技术分类会分成热备(failover)和集群(cluster)。
双机互备和双机热备都是热备,没本质区别。可以认为双机互备只是在两套应用之间互相做了双机热备,提高了服务器的利用率。
热备最大的问题在于主备切换的间隙会暂停对外提供服务,而且在故障恢复后,通常也不会自动由备机切回主机,需要人工干预,这个过程中可能也会暂停服务。所以关键系统上用热备已经满足不了7*24不间断运行的要求了。
集群是一堆服务器同时对外提供一样的服务,只要不同时都垮掉,服务就不会中断。故障节点会自动从集群中被隔离出来,虽然故障恢复后重新加入集群的过程通常也是手动的,但整个过程中服务不会中断。
关于存储,不特别说明的情况下应该都是指的数据库的物理存储(貌似现在也没什么应用完全不涉及数据库了)。不管是热备还是集群,通常都是共用存储的——如果存储也是独立的,那么或者在故障时从主机的存储同步到备机存储,这将延长服务中断时间;或者在主机和备机存储之间进行实时的数据同步,这又将增加主机负担和网络开销,对正常的服务效率有一定影响。
在Oracle的RAC出现之前,一块物理存储同时只能由一个数据库服务器连接上,当数据库服务器出现问题时,后备数据库服务器才能接管这个连接,所以以前的集群多半是应用服务器层的集群,如果是数据库服务器出现问题,还是会在切换时中断服务。Oracle的RAC技术允许多个数据库服务器同时连接同一块物理存储,这样就允许在数据库服务器上也实现集群,从而实现整个应用系统的不间断服务。
更底层的存储自身的备份就是各种已经很成熟的RAID技术了。
此外,虽然各种操作系统、数据库、中间件都提供了集群,并且号称独立于应用系统(不需要应用系统改造),但如果要尽可能减少故障时的影响、减少人工干预,通常应用系统还是需要有针对性地做少量改造。
本文介绍了高可用系统中的热备与集群技术的区别。热备存在主备切换时服务暂停的问题,而集群能够实现服务的不间断提供。文中还讨论了存储方案以及Oracle RAC技术如何提升数据库层面的高可用性。
491

被折叠的 条评论
为什么被折叠?



