zoukankan      html  css  js  c++  java
  • 高可用的恢复点目标(RPO)和恢复时间目标(RTO)

    设计一个高可用的数据库系统,首先需要明确的就是RPO和RTO

    关于RPO

    RPO是业务连续性中的一个常用术语,称为恢复点目标。

    在数据库系统中,它描述的是数据库在一次故障停机恢复后可能丢失的数据量。

    在数据库系统架构设计中,这是需要优先考虑的,假定数据库每天会做1次全量数据备份,那么在最坏情况下,用户可能会丢失24小时数据。对于某些应用来讲,这是可以接受的。当然,较多应用是不能接受数据丢失的风险的,比如金融业务,数据丢失带来的损失可能会相当的大,所以,RPO为0是才我们的目标。

    用户对于RPO的要求决定了数据库架构的技术选型,包括集群节点数量、数据同步方案以及备份技术等等。

    关于RTO

    与RPO一样,RTO是指一个通用的业务连续性术语,称为恢复

    时间目标。

    如果系统一直能不间断提供服务,我们可以说系统的可用性是100%;

    如果系统在时间单位内有1%的时间不能提供服务,我们可以说系统的可用性是99%。

    如何量化RTO

    业内通常使用MTTF和MTTR来量化一个模块的可用性。

    • 平均无故障时间(MTTF)

    MTTF(mean time to failure),指模块处在正常服务状态的平均时间。

    • 平均修复时间(MTTR)

    MTTR(mean time to repair),指模块处在服务中断状态的平均时间。

    系统可用性的定义是MTTF/(MTTF + MTTR),一个大于等于0,小于等于1的数值。且该数值越大,系统可用性越高。业界最常用的方法是用9的个数来描述系统可用性,比如3个9的可用性,指系统在99.9%的时间里可用,而5个9的可用性意味着系统在99.999%的时间里都是可用的。下表展示了基于9的个数描述系统可用性而计算得出的,不同可用性的情况下,服务的不可用时间。

    集群设计之初如何量化RTO,

    平均修复时间通常包括以下场景:

    • 小型升级--Minor Upgrade

    • 重大升级--Major Upgrade

    • 重新启动--Reboot

    • 切换--Switchover

    • 故障转移--Failover

    • 操作系统升级--OS Upgrade

    构造如下表格进行统计即可

    但行好事,莫问前程
  • 相关阅读:
    展示
    发布说明
    团队作业Week14
    Scrum Meeting NO.10
    Scrum Meeting NO.9
    Scrum Meeting NO.8
    Scrum Meeting NO.7
    Scrum Meeting NO.6
    ES6/ES2015核心内容
    用React & Webpack构建前端新闻网页
  • 原文地址:https://www.cnblogs.com/mingfan/p/15465402.html
Copyright © 2011-2022 走看看