1 .一种数据库容灾方法,数据库系统包括:计算节点和被配置为目标模式的云盘;所述
云盘支持的存储协议中的持有者对所述目标模式的云盘具有读写权限;所述存储协议中的
注册者对所述目标模式的云盘具有只读权限;所述计算节点包括:被注册为所述持有者的
主节点及被注册为所述注册者的备节点,所述方法包括:
所述备节点检测所述云盘存储的心跳文件中的租约信息的有效性;所述主节点通过修
改所述租约信息维持主节点状态;
在检测到所述租约信息失效的情况下,所述备节点基于所述存储协议,抢占 所述云盘
的写权限,以将所述备节点注册为新的持有者;
将所述备节点的节点状态切换为主节点状态。
2.根据权利要求1所述的方法,所述存储协议为非易失性内存主机控制器接口规范
NVMe协议,所述NVMe协议包括持久保留PR协议;所述备节点基于所述存储协议,抢占所述云
盘的写权限,以将所述备节点注册为新的持有者,包括:
所述备节点调用所述PR协议提供的优先抢占接口;
通过所述优先抢占接口,抢占 所述云盘的写权限,以将所述备节点注册为所述PR协议
中的持有者。
3 .根据权利要求1所述的方法,在所述备节点检测所述云盘存储的心跳文件中的租约
信息的有效性之前,所述方法还包括:
所述主节点基于所述存储协议,抢占 所述云盘的写权限,以将所述主节点注册为所述
存储协议中的持有者;
通过更新所述心跳文件的租约信息维持主节点状态。
4 .根据权利要求3所述的方法,所述存储协议为NVMe协议,所述NVMe协议包括PR协议;
在所述主节点基于所述存储协议,抢占所述云盘的写权限之前,所述方法还包括:
所述计算节点调用所述PR协议的注册接口,将所述计算节点注册为所述PR协议中的注
册者;
确定所述计算节点的节点状态;若所述计算节点的节点状态为主节点,执行所述主节
点基于所述存储协议,抢占 所述云盘的写权限的步骤,以将所述主节点注册为所述存储协
议中的持有者。
5 .根据权利要求4所述的方法,所述备节点为多个;所述方法还包括:
所述主节点从多个备节点中,确定继承节点;
将所述继承节点的标识写入所述心跳文件;
所述备节点在检测到所述心跳文件记录的租约信息失效的情况下,判断所述心跳文件
记录的继承节点的标识是否为所述备节点的标识;
若是,执行所述备节点基于所述存储协议,抢占 所述云盘的写权限,以将所述备节点注
册为新的持有者的步骤。
6 .根据权利要求5所述的方法,所述确定所述计算节点的节点状态,包括:
若所述云盘中不存在心跳文件或者所述心跳文件记录的云盘的标识与所述计算节点
维护的云盘的标识不同,确定所述计算节点的节点状态为主节点;
若所述云盘存在心跳文件、所述心跳文件记录的云盘的标识与所述计算节点维护的云
盘的标识相同,以及所述计算节点不是继承节点,确定所述计算节点的节点状态为备节点;
权 利 要 求 书
1/3 页
2
评论