【论文阅读】The Design of a Practical System for Fault-Tolerant Virtual Machines

这篇具有很好参考价值的文章主要介绍了【论文阅读】The Design of a Practical System for Fault-Tolerant Virtual Machines。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

为了更有效的做论文阅读笔记,之后都打算将每篇论文笔记的内容控制在较少的字数范围内,毕竟原论文摆在那里,将其翻译照抄过来也没什么意思,将论文读薄才是最重要的。( •̀ ω •́ )✧

"The Design of a Practical System for Fault-Tolerant Virtual Machines"是MIT6.824推荐阅读的论文之一,它介绍了一种通过主备机制来进行单核虚拟机级别的容错方法。

相关背景

本文考虑的主要是fail-stop故障,例如电源线拔掉了,爆炸了,网络离线了等情况,而这也才能用复制的方法容错,普通的程序错误导致的故障也无法通过复制来解决。

容错一般有两种方法:

  1. **状态转移:**拷贝主虚拟机的所有状态到另一个虚拟机上
  2. **复制状态机:**将虚拟机认为是一个状态机,只拷贝具体的操作

明显复杂状态机对宽带要求更低,但是其设计更为复杂,本文采用的是复制状态机的方法。但是后面VMWare团队有推出多核虚拟机级别的容错,该方法采用的是类似状态转移的方法。

容错一般还可以分为应用层容错和主机层容错,本文是主机层,在这有容错的虚拟机上可以运行任何应用。

设计概述

【论文阅读】The Design of a Practical System for Fault-Tolerant Virtual Machines,论文阅读,分布式

设计主要解决的问题是如何保证两个VM的状态一直保持一致。两个主副VM之间会通过Logging channel进行连接,主VM会将其任何会导致两者状态不一致的命令或者非确定性事件命令都通过Logging channel发送给副VM,副VM会读取该channel来执行相同的操作,但是该执行的输出会被忽略掉。

传递指令需要特别注意的是一些非确定性事件,该事件主要有两类分别是随时到达的客户端输入和在不同时刻不同的VM上会产生不同的结果的怪异指令,例如生成随机数、获取当前时间、获取主机id等。

非确定性事件还包括CPU并发,因为指令交织的顺序难以保证,例如两个并发的线程同时向一块数据加锁,那么主副VM上哪个线程能拿到锁其实是不确定的,但是本文是针对单CPU的,没有提及这个问题

可以猜测传递的日志中主要有三样东西:

  1. 事件发生时的指令序号,即自机器启动以来指令的相对序号
  2. 日志类型
  3. 数据,如果是网络数据包日志,那么就包含对应的数据,如果是怪异指令,那么就是其在主虚拟机上执行的结果

需要注意的是为了保证副VM的执行不会超过主VM,副VM只有的channel里面有指令的时候才会继续运行,即副VM永远会落后主VM一个指令,不然就会一直停止等待,或者检测到主VM挂了,自己上台当主VM

输出控制

系统通过网络数据包来与用户进行交互,文章的目标是让用户接收到返回信息时该指令一定是在两个VM上都能执行了的,它避免的是如下的场景:

  • 主虚拟机给了用户返回,但是由于其马上crash了,没有将指令及时传给副VM,那么后面通过副VM上台时,该命令其实是没执行的,但是用户会以为其已经执行了

【论文阅读】The Design of a Practical System for Fault-Tolerant Virtual Machines,论文阅读,分布式

解决方法是:主VM输出返回必须要在发送了日志且副VM返回了确认接收之后

当然这也有可能会导致重复输出,因为主VM输出后马上奔溃,而副VM上台后还没有执行这个命令,那么后面再执行时就会导致重复输出,而文中提到由于有TCP的规则在,由于输出的是完全一致的数据包,该重复输出会被TCP的协议解决掉。

容错

主副VM之间需要知道对方有没有存活,文中使用了UDP心跳来检测服务器是否奔溃,此外也通过监控日志流量(因为定时器中断的存在,日志流量应该是有规律的)来探查,如果超过特点时间,就可能发生故障了,但是这依然会存在脑裂的问题,如果只是两个VM之间的网络出问题了,那么副VM如果这时上台就会出现两个主VM。文中采用的解决方案是通过Test-and-Set方案,它会在共享存储中执行一个原子性的测试设置操作。如果操作成功,VM就会被允许上线,如果不成功就说明另外一个还在运行。如果采用的不是共享存储,那么也会引入一个第三方的决策者来进行判断。

如果是副VM奔溃了,则会重新起一个副VM,该VM来自对主VM的完全拷贝。

同时为了保证容错的副VM上台后,不会需要太长时间才能把剩余的命令消费掉,已经为了防止channel的缓冲区被填满,副VM会和主VM保持一定的指令数间隔,文中提到执行延迟应不小于100ms,如果副VM跟不上主VM的处理速度,系统会分配给主VM更少的Cpu周期数来平衡两者的速度。文章来源地址https://www.toymoban.com/news/detail-779724.html

参考资料

  • https://pdos.csail.mit.edu/6.824/papers/vm-ft.pdf
  • https://zhuanlan.zhihu.com/p/523109983
  • https://pdos.csail.mit.edu/6.824/notes/l-vm-ft.txt
  • https://mit-public-courses-cn-translatio.gitbook.io/mit6-824/lecture-04-vmware-ft

到了这里,关于【论文阅读】The Design of a Practical System for Fault-Tolerant Virtual Machines的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [论文阅读]Coordinate Attention for Efficient Mobile Network Design

      最近关于移动网络设计的研究已经证明了通道注意力(例如, the Squeeze-and-Excitation attention)对于提高模型的性能有显著的效果,但它们通常忽略了位置信息,而位置信息对于生成空间选择性注意图非常重要。在本文中,我们提出了一种新的移动网络注意力机制,将位置信息

    2024年02月07日
    浏览(36)
  • On the Spectral Bias of Neural Networks论文阅读

    众所周知,过度参数化的深度神经网络(DNNs)是一种表达能力极强的函数,它甚至可以以100%的训练精度记忆随机数据。这就提出了一个问题,为什么他们不能轻易地对真实数据进行拟合呢。为了回答这个问题,研究人员使用傅里叶分析来研究深层网络。他们证明了具有有限权值

    2024年02月22日
    浏览(36)
  • [论文阅读]A ConvNet for the 2020s

    视觉识别的咆哮的20年代开始于ViTs的引入,它很快取代了卷积神经网络,成为最先进的图像分类模型。另一方面,一个原始的ViT在用于一般的比如目标识别和语义分割的计算机视觉任务的时候面临困难。层次Transformer(例如,Swin-Transformer),它重新引入了几个卷积神经网络先验

    2024年02月07日
    浏览(30)
  • 【论文阅读笔记】Endoscopic navigation in the absence of CT imaging

      上一篇的导航导论,是需要先验,也就是需要事先拍摄堆叠的图片(比如CT图等),在体外构建相应的3D模型,再与内窥镜图像进行实时匹配。对于很多情况来说,是无法拥有如此充足的先验的。所以,本文探索的是没有额外CT图像的一个内窥镜导航算法,应用场景是鼻腔

    2024年02月11日
    浏览(36)
  • Mantle: A Programmable Metadata Load Balancer for the Ceph File System——论文泛读

    SC 2015 Paper 元数据论文阅读汇总 优化Ceph的元数据局部性和负载平衡。 提高元数据服务性能的最常见技术是在专用的元数据服务器(MDS)节点之间平衡负载 [16, 25, 26, 21, 28]。常见的方法是鼓励独立增长并减少通信,使用诸如懒惰客户端和MDS同步 [16, 18, 29, 9, 30]、inode路径/权限

    2024年01月16日
    浏览(38)
  • [论文阅读]4DRadarSLAM: A 4D Imaging Radar SLAM System for Large-scale Environments

      目录   1.摘要和引言: 2. 系统框架: 2.1 前端: 2.2 回环检测: 2.3 后端: 3.实验和分析: 4.结论 1.摘要和引言: 这篇论文介绍了一种名为“4DRadarSLAM”的新型4D成像雷达SLAM系统,旨在提高大规模环境下的定位与地图构建性能。与传统的基于激光雷达的SLAM系统相比,该系统

    2024年01月23日
    浏览(41)
  • 【操作系统】在阅读论文:OrcFS: Orchestrated file system for flash storage时需要补充的基础知

    在阅读论文:OrcFS: Orchestrated file system for flash storage是需要补充的基础知识 这篇论文是为了解决软件层次之间的信息冗余问题 To minimize the disk traffic, the file system buffers the updates and then flushes them to the disk as a single unit, a segment (e.g.,2Mbyte), either when the buffer is full or when fsync() is ca

    2024年02月01日
    浏览(32)
  • [论文阅读&代码]DehazeNet: An End-to-End System for Single Image Haze Removal

    现有的单图像去雾方法使用很多约束和先验来获得去雾结果,去雾的关键是根据输入的雾图获得得到介质传输图(medium transmission map) 这篇文章提出了一种端到端的可训练的去雾系统—Dehaze Net,用于估计介质传输图 Dehaze Net中,输入为雾图,输出为介质传输图,随后通过大气散

    2024年02月08日
    浏览(30)
  • 论文阅读笔记A Systematic Review of the State of Cyber-Security in Water Systems

    该论文主要回顾了水系统的网络安全研究,研究重点是提高供水、废水收集和处理系统的安全性 一、 Introduction 过去的供水系统安全:通过隔离、限制对控制组件的访问来实现的。 基于IoT的供水系统:依靠连接多层网络物理系统来促进自主去中心化决策,并改善实时数据和预

    2024年02月04日
    浏览(44)
  • 论文阅读:TinySAM: Pushing the Envelope for Efficient Segment Anything Model-文章内容阅读

    论文标题: TinySAM: 极致高效的分割一切模型 论文地址:https://arxiv.org/pdf/2312.13789.pdf 代码地址(pytorch):https://github.com/xinghaochen/TinySAM 详细论文解读:TinySAM:极致高效压缩,手机就能实时跑的分割一切模型 - 知乎 (zhihu.com)  目录 文章内容解析  概括 文章的观点 技术创新解

    2024年01月17日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包