vlambda博客
学习文章列表

什么是“备份、容灾、集群、负载均衡”,今天我终于懂了

一、备份概念的理解

"备份"只是将数据COPY一份,在其他介质保存,当数据丢失了,有"备份"可以用于恢复,无论手动还是自动,而有副本就相当于完成"备份"了,至于恢复不恢复,恢复完了没有,与"备份"是没有关系的,那属于"容灾"的范畴了。我们日常将东西考到U盘,光盘,移动硬盘也都属于备份的一种。

什么是“备份、容灾、集群、负载均衡”,今天我终于懂了


那么这里就引入了两种备份方式:冷备份和热备份

冷备份:也被称为离线备份,是指在关闭系统软件运行状态进行的人工手动备份。这时候如果系统设备换了,需要人为的利用备份还原或者切换才能保障业务不停摆。

热备份:热备份是在系统运行的状态下,通过某种软件或者某种技术实现的自动备份,例如热备数据库,就可以采用archivelog mode方式备份数据库的方法,实现热备。它的优势很明显只要你提前设定好规则,就可以按照指定的周期和容量进行自动备份。

通过对备份的解释,大家应该理解了,备份的主要目的是保证数据的完整性,在系统停摆数据丢失后,可以利用备份的数据进行还原!还原的过程需要一段时间来恢复!!!

二、容灾概念的理解

"容灾"是为了通过一些技术手段的部署,达到出现"意外"的时候,业务不会中断或者中断后会自动恢复(注意要自动,而且恢复时间很短)。

例如服务器、网络、存储哪一点出现问题,都会中断服务,所以这个时候每个点都需通过技术手段做保护,这就是容灾要考虑的事情。

什么是“备份、容灾、集群、负载均衡”,今天我终于懂了


与"备份"不同的是,例如你的硬盘挂了,买一个新硬盘,你再将移动硬盘的数据拷过来就OK,但是这个过程中是要停止服务的,恢复过程是需要时间的。而"容灾"是要不中断服务的,例如说你有2台电脑,然后两边数据是实时同步的,忽然一台的硬盘坏了,不要紧,直接到另外一台办公好了,因为实时同步,坏了的那台的数据这边没坏的这台也有,这种就相当于容灾了。

容灾根据地域划分,又分为四种方式:

第1种:仅本地备份

这一级容灾备份只在本地进行数据备份,并且备份的数据只在本地保存,并没有在异地建立灾备中心,所以实际上没有灾难恢复能力。

第2种:异地热备

在异地建立一个热备份点,通过网络进行数据备份。也就是通过网络以同步或异步方式,把主站点的数据备份到备份站点,备份站点一般只备份数据,不承担业务。当出现灾难时,备份站点接替主站点的业务,从而维护业务运行的连续性。

第3种:异地互备

在不同的地理位置分别建立两个数据中心,在工作状态下进行相互数据备份。这样,当某个数据中心发生灾难时,另一个数据中心可以直接接替其工作任务。这种级别 的备份根据实际要求和投入资金的多少,又可分为两种:①两个数据中心之间只限于关键数据的相互备份;②两个数据中心之间互为镜像,即零数据丢失等。零数据 丢失是目前要求最高的一种容灾备份方式,它要求不管什么灾难发生,系统都能保证数据的安全。所以,它需要配置复杂的管理软件和专用的硬件设备,需要投资相 对而言是最大的,但恢复速度也是最快的。  

第4种:云备份

云备份,就是个人或企业把数据, 如:通讯录、短信、图片等资料通过云存储的方式备份在公有云或私有云。云备份已经成为云计算最重要的落地表现形式之一,加上在成本上的巨大优势,已经在企 业市场中获得了快速的发展。百度云盘、腾讯微云等都可以认为是云备份的一种,另一种则是以代表的SaaS应用。

容灾类常规技术如下:

1、"高可用"

及HA(High Avaliable),一般实现方式是对2台服务器上面装HA的软件,这时候就和"双机热备"的概念一样了,一般正常服务时只有主机在工作,2台服务器中间会有心跳的hello包,备机会一直发hello包检测主机是否"活着",超过一段时间主机没有应答hello包的话,备机就会认为主机死掉,然后主动接管业务了。这样子又实现了主机的容灾了。

2、"容错"

Vmware的虚拟化软件提出的一个概念,相当于1台虚拟机运行的时候,多开1台虚拟机,当一些操作在A虚机运行,会通过软件同步复制操作到B。当A虚机崩溃,B主机立刻托管业务,由于操作都是同步复制的,所以B不会丢失任何在A上的内容(包括内存里面的临时数据)。此种方式比"高可用"的更高级,"高可用"的方式B还要通过A没有应答hello才发现A崩溃了,中间还是有一段过度的时间会业务中断,但是可以实现自动的业务恢复。而"容错"这种方式业务完全不用中断,但是相应换来了成本需要增高,原来1台虚机,现在相当于要多开1台来与他同步,资源成本增高。

通过以上描述,我相信大家也理解了容灾的主要目的是保障业务的连续性,防止数据的不可用或者丢失,而导致业务的中断。

三、集群和负载均衡的理解


1、"负载均衡"

假设有5台服务器,如果有5个访问请求,没有负载均衡时,可能5个请求都访问机器A,这样可能引致访问速度慢,A机器崩溃等问题,而有了负载均衡,就会将5个任务按照策略进行分发,可能5台机器每台负责处理一个任务就OK了。

2、"集群"

多台服务器同时处理某一事务,听起来与"负载均衡"有点像,但是其实负载均衡是5个任务摊分给5台机器,而集群相当于一个任务拆分为5份,5台机器一起来处理同一个任务,分别完成自己负责的部分后汇总一起输出结果。例如有一个很复杂的计算任务,1台机要算5小时才能解决,那么5台同时计算,可能1小时就解决了,这个是"集群"的主要用途。

再举个例子,阐述集群和负载均衡的区别:

你被领导要求完成一份文档的编写工作,我们把它看做是计算机要进行处理的业务。

1、这个文档由多个人分解成多个子文档,每个人完成一部分,最后拼装成完整的文档,这就是集群的工作。

2、如果这个文档放在一个机器上,多人同时访问会导致响应速度变慢,这时候网管多放了几台机器,每个机器上都有这个文档,访问者会自动被分配到访问较少的服务器上处理该文档,这就叫负载均衡。

四、一个场景实例包含了以上所有技术


1、数据中心里的服务器的应用和后台的数据库都做了备份,把数据备份到了存储上。

2、数据库之间采用了双机热备,做到了基本的容灾

3、应用服务器之间做了集群部署,共同对业务进行并行处理,提高了业务效能

4、应用服务器的前端加了负载均衡设备,通过负载均衡设备可以把任务均衡的分配给相应服务器,进行处理。


通过以上场景和之前的概念描述,我们来做一下最后的总结:

"容灾"与"备份"与集群和负载均衡不是同一个概念, "容灾"是目的,而"备份"只是实现容灾的其中一种手段,不是唯一;备份主要考虑的是数据的完整性,不要丢失。而容灾考虑的主要目的是数据的可用性,业务的连续性,最终是要求业务一直不间断。

如果说备份和容灾技术追求的目的,可以理解为业务的稳定和连续性,那么集群和负载均衡技术追求的目的就是业务的高效性,也就是为了提升业务系统运行的性能,让用户在使用业务时候的体验效果不卡顿很顺畅!!!