使用Manual Failover测试Azure IoT Hub的灾难恢复
分类: Azure物联网 ◆ 标签: #Azure #IoT Hub # ◆ 发布于: 2023-06-13 21:14:53
Azure IoT Hub
默认拥有灾难恢复(DR: Disaster Recovery)的功能。当灾难发生时,微软内置的触发器会触发DR
, 自动将主要的数据自动转移到其他区域(这些区域已经由微软规划好),这包括所有的设备Identity
, Device Twin
等数据,并恢复服务。
在DR
的概念中我们有一个重要的指标:Recovery time objective(RTO)
, 这个指标主要用于评估恢复的时长,也可以用于评估当灾害发生时,DR
过程中会有多大的业务损失。
默认的DR
必须要微软的触发器在灾害发生时自动触发,这个过程是非常少见的。在方案设计的时候如果要考虑DR
,必须要有能参考的指标。有了参考的指标,当设计应用冗余的时候,可以有针对性的做出更多设计。针对这个需求, Azure IoT Hub
提供了另外一个工具: Manual Failover
。
测试Manual Failover
我们可以快速的测试一下Manual Failover
。
开始测试之前,必须满足一些前提条件:
- 您有一个
Azure
订阅。 - 创建好一个
Azure IoT Hub
- 创建一些
Azure IoT Hub Device Identity
登录到Azure Portal
, 并找到您的IoT Hub
资源,选择左侧的菜单: Hub Setting
-> Failover
:
从图中的4
,5
可以看到当前的location
以及Failover Location
, 如果要测试Failover
, 只需点击2
处的菜单Start failover
即可以测试一次Failover
。
注意
Failover
完成之后,如果需要切换回来,只需要再次运行Failover
就可以了,但是需要注意的是一次Failover
完成之后,需要等待一个小时之后再做Failover
, 否则Azure
会报超限的错误。
根据微软的官方文档,Manual failover
测试的RTO
比起由微软触发的DR
要短一些,一个拥有100万设备的IoT Hub
, 通常情况由manual failover
触发的DR
会在10分钟到2个小时之内完成,但是如果是由微软触发,需要耗费大约2个小时-26个小时。
同时需要注意的是当发生DR
时, 会有部分的数据丢失:
Device Registry
数据:大约有0-5分钟的数据丢失Device Twin
数据:大约0-5分钟的数据丢失。C2D
消息:大约0-5分钟的数据丢失Device Job
: 大约0-5分钟的数据丢失。D2C
消息:所有未读的消息均丢失C2D Feedback
消息:所有未读的消息均丢失。
以上丢失的数据规则无论由微软触发的DR
还是手动触发的DR
都适用。