加入收藏 | 设为首页 | 会员中心 | 我要投稿 阜新站长网 (https://www.0418zz.com.cn/)- 管理运维、AI硬件、数据集成、云备份、负载均衡!
当前位置: 首页 > 站长资讯 > 动态 > 正文

我们这一课讨论主从复制

发布时间:2021-03-27 13:10:51 所属栏目:动态 来源:互联网
导读:复制的方式 在集群中实现复制主要通过两种方式: 状态转移(State Transfer):主机(Primary)将自己所有的状态,拷贝并发送给备机(Backup),一般是增量备份; 复制状态机(Replicated State Machine):将备机视为一个确定的状态机client 发送操作到主机,主机按

复制的方式

在集群中实现复制主要通过两种方式:

  • 状态转移(State Transfer):主机(Primary)将自己所有的状态,拷贝并发送给备机(Backup),一般是增量备份;
  • 复制状态机(Replicated State Machine):将备机视为一个确定的状态机——client 发送操作到主机,主机按顺序发送到备机,所有备机执行所有的操作,如果从同一起始状态,以相同的顺序输入相同的操作,它们的输出将是相同的。

VMware FT 使用了复制状态机的方法。

状态转移传输的可能是内存,而复制状态机传输来自客户端的操作或者其他外部事件,人们倾向于使用复制状态机的原因是,外部操作或事件通常比服务的内存状态要小。例如,如果是一个数据库,它的内存状态可能达到 GB 级别。

复制的挑战

要考虑的几个 Big Question:

  • 我们要复制哪些状态?
  • 主机必须等待备机备份完吗?
  • 什么时候切换到备机?
  • 切换时能否看到异常情况?
  • 如果有个副本故障了,我们需要重新添加一个新的副本,这可能是一个代价很高的行为,因为副本可能非常大,如何提升添加新副本的速度?

让我们看看虚拟化巨头 VMware 是怎么做的。

VMware FT 论文总结


 

T 需要两台物理服务器,主机与备机保持同步,虚拟机的虚拟磁盘在共享存储上。

所有的输入(如网络、鼠标、键盘等)都会输入到主机,然后通过 Logging channel 转发到备机,对于非确定性的操作,还将发送额外的信息,确保备机以确定性的方式执行这些操作。

两台虚拟机都会执行输入操作,但只有主机的输出会返回客户端,备机的输出会被管理程序丢弃。

确定性重放(Deterministic replay)

不确定性(Non-Deterministic)事件比如虚拟中断,不确定性操作比如从处理器读取时钟周期计数器,可能会让主机和备机的运行结果不一样。

这带来三个挑战:

  • 正确捕获所有输入和必要的不确定性输入来保证备机确定性执行;
  • 正确在备机执行不确定性输入;
  • 不降低系统的性能;

VMware 确定性重放(deterministic replay)能够捕获所有输入和可能的不确定性输入,并写到日志文件记录下来。通过读取日志文件,可以准确重放虚拟机的执行。

对于不确定性输入,必须记录足够的信

(编辑:阜新站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读