干货丨一文带你了解灾备系统的衡量指标

2024-02-13 04:50

本文主要是介绍干货丨一文带你了解灾备系统的衡量指标,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文转自@灾备有道,作者:Q先生。

灾备恢复的衡量指标

核心指标:RTO,RPO

RTO(Recovery Time Objective)
RTO是指灾难发生后,从IT系统崩溃导致业务停顿开始,到IT系统完全恢复,业务恢复运营为止的这段时间长度。RTO用于衡量业务从停顿到恢复的所需时间。

RPO(Recovery Point Objective)
IT系统崩溃后,可以恢复到某个历史时间点,从历史时间点到灾难发生的时间点的这段时间长度就称为RPO。RPO用于衡量业务恢复所允许丢失的数据量。

我们来举个例子,假设在业务系统正常运行的情况下,随着时间的推移,会持续产生新的业务数据。IT运维人员考虑到业务的重要性,小心又谨慎,写了个脚本对业务系统进行周期性的备份。

虽然机智的IT运维人员已经非常小心,但是还是避免不了系统出现故障。在发现系统故障后,IT运维人员迅速响应,利用最近一次的备份数据进行恢复。经过漫长的等待,IT系统最终恢复正常。

从上图可以直观看出,RPO是 “备份时间点” 到 “IT系统出现故障” 的时间长度,RTO是指 “IT系统出现故障” 到 “IT系统恢复正常” 的时间长度。

在RPO的这段时间内,存在一部分实际数据的丢失,所以一般认为RPO越小,丢失的数据量就越小。在RPO+RTO的这段时间内,本来有预期的业务数据增长,但由于IT系统故障需要时间修复,这部分的预期增长就损失掉了。可见RTO+RPO越小,对业务营收的损失也就越小。因此,越重要的业务越需要保证RPO和RTO趋近于0,当然所需要的投入也就越大。RPO和RPO也成为衡量灾难恢复的最核心指标。

其他指标

随着灾备技术的不断升级,灾备系统的建设越来越复杂,就开始出现了一些新的指标。虽然这里边部分指标实在是不怎么知名,但为了满足大家的好奇心,还是费点周折,给大家解释一下。

RRO(Recovery Reliability Objective)
恢复可靠性指标RRO,用于衡量业务恢复的可靠性。如果一个业务连续性系统在10次恢复/切换中出现了2次失败,那么这个可靠性就只有80%。虽然成功的恢复/切换可以帮助你短时间内的恢复业务,但如果恢复/切换失败了,那可能就需要花更多的时间来排查和解决问题。因此,将RRO和RTO结合起来可以更好的评估灾难恢复的时间。

基于上面的案例,假设IT运维人员写了不错的备份脚本,但是恢复脚本没有经过详细的测试,质量不咋滴。在IT系统修复过程中,总出现恢复失败的情况,需要边定位失败的原因边进行恢复。那么我们就可以认为这个脚本的RRO指标很低,会导致RTO变长。

RIO (Recovery Integrity Objective)
当灾备系统因为逻辑错误或数据丢失,就会造成实际恢复/切换的数据同样存在逻辑错误,或者数据丢失/不完整的情况。因此,单独的RPO不能保证灾备系统对数据丢失的防范能力,故引入恢复完整性指标****RIO。RIO指标可以反映出业务系统灾难恢复到某个正确完整的状态的能力。

基于上面的案例,假设IT运维人员写的备份脚本也出了问题,数据恢复是恢复出来了,但是只恢复了一部分,还有一部分数据因为脚本存在bug漏备了。那么我们就可以认为这个脚本的RIO指标也很低,RPO数据丢失的基础上再添损失。 说到这里,可怜的IT运维人员背了锅,也许你该考虑采购专业的灾备产品了。

DOO(Degraded Operations Objective)
DOO 是指灾难事件发生期间数据中心不可用时,关键业务系统在灾备中心运行的服务级别允许降低到一个可接受程度。这意味着灾难事件发生时,为了加快恢复速度,可以允许关键业务恢复到一个较低的服务级别,这个事先确定的允许降低的服务级别就是 DOO。
服务降级一般是由IT系统本身提供的能力,并不由灾备厂商来提供,当然专业的业务连续性管理也会将IT系统本身的容错、服务降级能力考虑在内。

NRO(Network Recovery Objective)
网络恢复目标NRO 是指在灾难发生后切换到灾备中心所需的时间。在这一预定时间内不仅要求将网络连接从数据中心切换到灾备中心,还要使用户的网络访问能够成功地转移到灾备中心。

灾备恢复的三个层次

在行业中,一般认为灾备分为3个等级:**数据级灾备、应用级灾备、业务级灾备。**其中数据级和应用级的灾备一般都在IT系统的范畴,可以通过专业的灾备产品做到。业务级灾备在数据级、应用级的基础上,还需要对IT系统之外的因素进行保障,比如办公地点、办公人员等等。

数据级灾备的关注点在于保证用户的数据不会丢失或者遭到破坏。高级的数据级灾备会考虑将本地的通过某些手段(人工/灾备工具)保存到异地。而应用级灾备更强调实际的IT系统可以在遇到灾难后能够直接接管。一般来讲应用级灾备需要在异地灾备中心有完整的设备、网络条件,借助专业灾备产品做到生产中心到灾备中心的数据同步。

国际标准SHARE78的七级灾备

目前,通用的灾难恢复标准采用的是 1992 年在 AnaheimM028 会议上制定的 SHARE78 标准。根据定义,灾备方案可以根据以下主要方面所达到的程度而分为七级:

Tier0 层:没有异地数据 (No off-site Data)
即没有任何异地备份或应急计划。数据仅在本地进行备份恢复,没有数据送往异地。

Tier1 层:PTAM 卡车运送访问方式 (Pickup Truck Access Method)
异地备份 , 能够备份所需要的信息并将它存储到异地。PTAM 指将本地备份的数据用交通工具送到远方。这种方案相对来说成本较低,但难于管理。

Tier2 层:PTAM 卡车运送访问方式 + 热备份中心 (PTAM + Hot Center)
相当于 Tier1 再加上热备份中心能力。热备份中心就是指在异地制定相应的灾难恢复计划,将运送到此处的数据定期的进行恢复,以确保生产中心出现灾难后热备份中心可以尽快接管。当然,热备份中心拥有足够的硬件和网络设备去支持关键应用。

Tier3 层:电子链接 (Electronic Vaulting)
在 Tier2 的基础上用网络传输取代了卡车进行数据的传送。

Tier4 层:活动状态的备份中心 (Active Secondary Center)
指两个中心同时处于活动状态并同时互相备份。在这种场景下,两中心通过备份软件系统进行周期性的备份和恢复。在灾难发生时,关键应用的恢复也可降低到小时级或分钟级。

Tier5层:两个活动的数据中心,确保数据一致性的两阶段提交(Two-Site Two-Phase Commit)
它提供了更好的数据完整性和一致性。Tier5 要求两中心的数据能够同时更新。在灾难发生时,仅是传送中的数据被丢失,恢复时间被降低到分钟级。

Tier6 层:0 数据丢失 (Zero Data Loss),自动系统故障切换
Tier6 可以实现 0 数据丢失,是灾难恢复的最高级别,在本地和远程的所有数据被更新的同时,利用了双重在线存储和网络切换能力,当发生灾难时,能够提供跨站点动态负载平衡和自动系统。

这篇关于干货丨一文带你了解灾备系统的衡量指标的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/704519

相关文章

解读GC日志中的各项指标用法

《解读GC日志中的各项指标用法》:本文主要介绍GC日志中的各项指标用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、基础 GC 日志格式(以 G1 为例)1. Minor GC 日志2. Full GC 日志二、关键指标解析1. GC 类型与触发原因2. 堆

一文详解Git中分支本地和远程删除的方法

《一文详解Git中分支本地和远程删除的方法》在使用Git进行版本控制的过程中,我们会创建多个分支来进行不同功能的开发,这就容易涉及到如何正确地删除本地分支和远程分支,下面我们就来看看相关的实现方法吧... 目录技术背景实现步骤删除本地分支删除远程www.chinasem.cn分支同步删除信息到其他机器示例步骤

一文详解Java Stream的sorted自定义排序

《一文详解JavaStream的sorted自定义排序》Javastream中的sorted方法是用于对流中的元素进行排序的方法,它可以接受一个comparator参数,用于指定排序规则,sorte... 目录一、sorted 操作的基础原理二、自定义排序的实现方式1. Comparator 接口的 Lam

linux重启命令有哪些? 7个实用的Linux系统重启命令汇总

《linux重启命令有哪些?7个实用的Linux系统重启命令汇总》Linux系统提供了多种重启命令,常用的包括shutdown-r、reboot、init6等,不同命令适用于不同场景,本文将详细... 在管理和维护 linux 服务器时,完成系统更新、故障排查或日常维护后,重启系统往往是必不可少的步骤。本文

Mac系统下卸载JAVA和JDK的步骤

《Mac系统下卸载JAVA和JDK的步骤》JDK是Java语言的软件开发工具包,它提供了开发和运行Java应用程序所需的工具、库和资源,:本文主要介绍Mac系统下卸载JAVA和JDK的相关资料,需... 目录1. 卸载系统自带的 Java 版本检查当前 Java 版本通过命令卸载系统 Java2. 卸载自定

一文深入详解Python的secrets模块

《一文深入详解Python的secrets模块》在构建涉及用户身份认证、权限管理、加密通信等系统时,开发者最不能忽视的一个问题就是“安全性”,Python在3.6版本中引入了专门面向安全用途的secr... 目录引言一、背景与动机:为什么需要 secrets 模块?二、secrets 模块的核心功能1. 基

一文详解MySQL如何设置自动备份任务

《一文详解MySQL如何设置自动备份任务》设置自动备份任务可以确保你的数据库定期备份,防止数据丢失,下面我们就来详细介绍一下如何使用Bash脚本和Cron任务在Linux系统上设置MySQL数据库的自... 目录1. 编写备份脚本1.1 创建并编辑备份脚本1.2 给予脚本执行权限2. 设置 Cron 任务2

一文详解如何在idea中快速搭建一个Spring Boot项目

《一文详解如何在idea中快速搭建一个SpringBoot项目》IntelliJIDEA作为Java开发者的‌首选IDE‌,深度集成SpringBoot支持,可一键生成项目骨架、智能配置依赖,这篇文... 目录前言1、创建项目名称2、勾选需要的依赖3、在setting中检查maven4、编写数据源5、开启热

一文全面详解Python变量作用域

《一文全面详解Python变量作用域》变量作用域是Python中非常重要的概念,它决定了在哪里可以访问变量,下面我将用通俗易懂的方式,结合代码示例和图表,带你全面了解Python变量作用域,需要的朋友... 目录一、什么是变量作用域?二、python的四种作用域作用域查找顺序图示三、各作用域详解1. 局部作

基于Python实现一个简单的题库与在线考试系统

《基于Python实现一个简单的题库与在线考试系统》在当今信息化教育时代,在线学习与考试系统已成为教育技术领域的重要组成部分,本文就来介绍一下如何使用Python和PyQt5框架开发一个名为白泽题库系... 目录概述功能特点界面展示系统架构设计类结构图Excel题库填写格式模板题库题目填写格式表核心数据结构