还原卡还原了数据能恢复吗_主动还原:我们可以更快地恢复吗? 快多了?

article/2025/9/16 17:54:07

还原卡还原了数据能恢复吗

image

Hi! My name is Daulet Tymbayev, and today I want to share my experience of developing a system that (theoretically) is able to recover a disk much faster than traditional recovery. Let’s start from the beginning to cover all the project stages.

嗨! 我的名字叫Daulet Tymbayev,今天我想分享一下我的经验,即开发一个理论上能够比传统恢复快得多的磁盘的系统。 让我们从头开始介绍所有项目阶段。

Before joining Acronis I pursued my master's degree at Innopolis University (MSIT-SE program). Innopolis is a relatively new university and the MSIT-SE program is even newer. Nevertheless, it is built upon Carnegie Mellon University programs, and therefore it includes such things as industrial projects.

在加入Acronis之前,我在Innopolis大学(MSIT-SE计划)攻读了硕士学位。 Innopolis是一所相对较新的大学,MSIT-SE计划甚至更新。 尽管如此,它是建立在卡内基梅隆大学计划的基础上的,因此它包括诸如工业项目之类的东西。

The ultimate goal of an industrial project is involving students in the real software development process and putting into practice their newly acquired theoretical knowledge. To do so, the university partners with companies such as Yandex, Acronis, MTS and dozens of others (as of 2018, the university had 144 partners). In terms of collaboration, companies purpose their projects to the university, and students choose one of them, according to their interests and technical skills level.

工业项目的最终目标是让学生参与真正的软件开发过程,并将他们新获得的理论知识付诸实践。 为此,该大学与Yandex,Acronis,MTS和其他数十家公司合作(截至2018年,该大学有144个合作伙伴)。 在合作方面,公司将其项目定向到大学,学生根据他们的兴趣和技术水平选择其中一个。

Two years ago, I was on “the other side”. I was a student, working on another Acronis project, and last year I was appointed as a technical consultant of a new team of students. I have presented the Active Restore project to the university. The idea behind Active Restore was invented by the Kernel team in Acronis, but the development process started together with Innopolis University.

两年前,我在“另一边”。 我是一名学生,正在从事另一个Acronis项目,去年,我被任命为一个新的学生团队的技术顾问。 我已经向大学介绍了Active Restore项目。 Active Restore背后的想法是由Acronis的内核团队发明的,但是开发过程是与Innopolis大学一起开始的。

为什么我们需要主动还原? (Why do we need the Active Restore? )

The traditional recovery process goes as follows: after a problem that compromises your computer, the user opens the available backup system interface and clicks on «the emergency button» to restore to a saved state. Then, after N minutes your system is ready to resume working.

传统的恢复过程如下:在计算机出现问题后,用户打开可用的备份系统界面,然后单击“紧急按钮”以恢复到保存状态。 然后,在N分钟后,您的系统就可以恢复工作了。

image

As you can see, N has an impact on our business. This value represents the recovery time objective (from now on, RTO) and it depends on several factors, such as the connection speed (if the selected solution implements cloud recovery), hard drive bandwidth, size of the recovery files and many others.

如您所见,N对我们的业务有影响。 该值表示恢复时间目标(从现在开始,称为RTO),它取决于几个因素,例如连接速度(如果所选解决方案实现了云恢复),硬盘驱动器带宽,恢复文件的大小以及许多其他因素。

But this traditional approach treats the whole process without prioritizing the files. If we do prioritize our system, initially we restore it with the necessary files to boot, and later on, bring back other things such as picture and video files.

但是,这种传统方法会在不对文件进行优先级处理的情况下处理整个过程。 如果我们确定了系统的优先级,则首先我们将其与启动所需的文件一起还原,然后再带回其他内容,例如图片和视频文件。

需要驱动程序... (Driver needed...)

The operating system is expected to start up with a fully-ready drive, hence the need for performing a series of check-ups to ensure drive consistency. If one or more system files are absent or corrupted, it simply won't boot up. To solve this problem we decided to put file-redirectors on the disk, which replaces absent or corrupted files. These file-redirectors are empty and that’s why it will not take much time to create them.

预计操作系统将以完全就绪的驱动器启动,因此需要执行一系列检查以确保驱动器一致性。 如果一个或多个系统文件不存在或损坏,则它将无法启动。 为了解决此问题,我们决定将文件重定向器放在磁盘上,以替换不存在或损坏的文件。 这些文件重定向器为空,这就是为什么创建它们不需要花费很多时间的原因。

The recovery continues in the background. While the operating system works, “empty” files are filled with data. The background process considers the disk load and does not exceed preset limits. But the user or the OS can request some not-yet-recovered file. In this case, we launch the second recovery mode. The priority of the requested file is raised to the maximum and the recovery system transfers it to the disk as fast as possible. This way the OS gets the needed file, but with latency.

恢复将在后台继续。 在操作系统运行时,“空”文件中充满了数据。 后台进程将考虑磁盘负载,并且不会超过预设的限制。 但是用户或操作系统可以请求一些尚未恢复的文件。 在这种情况下,我们将启动第二种恢复模式。 所请求文件的优先级最高,恢复系统将尽快将其传输到磁盘。 这样,操作系统就可以获取所需的文件,但是会有延迟。

That’s the ideal situation. In the real world, there are a lot of problems and potential deadlocks. Together with Innopolis undergraduate students, we decided to research this recovery scenario, evaluate RTO advantages and clarify if such approach is possible in general. For that moment there were no such solutions on the market.

那是理想的情况。 在现实世界中,存在许多问题和潜在的僵局。 我们决定与Innopolis本科生一起研究这种恢复方案,评估RTO的优势,并弄清这种方法是否普遍可行。 当时,市场上还没有这样的解决方案。

I decided to leave service development to Innopolis students. At Acronis, we started mini-filter FS driver development. Windows Kernel team was responsible for that. We had a plan:

我决定将服务开发留给Innopolis学生。 在Acronis,我们开始了微型过滤器FS驱动程序的开发。 Windows内核团队对此负责。 我们有一个计划:

  1. Launch a driver at the early OS startup stage,

    在OS的早期启动阶段启动驱动程序,
  2. Launch a service when userspace is ready;

    用户空间就绪后启动服务;
  3. The service processes driver requests and coordinates the further recovery operation.

    该服务处理驱动程序请求并协调进一步的恢复操作。
image

驱动程序构造细节 (Driver construction details)

My colleagues will describe in detail the service in the next post. In this post, we will disclose some details about our driver development. Our mini-filter driver has 2 operation modes – when the system is started up in a normal state, and when there were a fault and a recovery is launched. Before user-space libraries and applications (and our service) are loaded, our driver acts the same way in any situation because the driver is not sure, in which state the system is. That’s why every create, read and write operation is logged with all the metadata. When the service goes online, the driver will provide these logs for further analysis.

我的同事将在下一篇文章中详细描述该服务。 在这篇文章中,我们将披露有关驱动程序开发的一些详细信息。 我们的微型过滤器驱动程序有2种操作模式-系统在正常状态下启动时,以及在发生故障并启动恢复时。 在加载用户空间库和应用程序(以及我们的服务)之前,我们的驱动程序在任何情况下都以相同的方式运行,因为该驱动程序不确定系统处于哪种状态。 这就是为什么所有创建,读取和写入操作都会记录所有元数据的原因。 当该服务联机时,驱动程序将提供这些日志以供进一步分析。

image

In the case of normal operation, the service will tell the driver to work «on relax mode», which stops it from logging all metadata. Then the driver logs only disk changes and provides the service with these updates. The backup is maintained in the most actual state on the user-defined media by other Acronis tools. It can be cloud, remote, incremental or night-only backup but it is another story.

在正常运行的情况下,该服务将告知驾驶员“在放松模式下”工作,这将阻止其记录所有元数据。 然后,驱动程序仅记录磁盘更改并为服务提供这些更新。 其他Acronis工具将备份以最实际的状态维护在用户定义的介质上。 它可以是云备份,远程备份,增量备份或仅夜间备份,但这是另一回事了。

image

In the case of the recovery mode, the service tells the driver to work in the “Recovery” mode. During the recovery process, the driver intercepts the requests of partially recovered files checking whether those files are on disk and if they are readable.

在恢复模式下,服务会告知驱动程序以“恢复”模式工作。 在恢复过程中,驱动程序将拦截部分恢复的文件的请求,以检查这些文件是否在磁盘上以及是否可读。

If the file is absent, the mini-filter sends this information to the service, which raises the recovery priority for that file (because the recovery process is also performing in the background). So, the file jumps to the beginning of the queue. The service recovers the file (by itself or using other Acronis tools) and reports “OK” to the driver. The operating system can access the data, and the driver “releases” the original request to the disk.

如果文件不存在,则微型过滤器将此信息发送到服务,这将提高该文件的恢复优先级(因为恢复过程也在后台执行)。 因此,文件跳到队列的开头。 该服务(单独或使用其他Acronis工具)恢复文件,并向驱动程序报告“确定”。 操作系统可以访问数据,驱动程序将原始请求“释放”到磁盘。

If the recovery is not possible, and there’s no such file in the backup, the service reports to the driver. Our mini-filter driver ignores the system request and releases it. Then the OS or application receives the “file not found” error. But it’s ok if the file is really absent on the disk or in the backup, the user just asked for a non existing file by mistake.

如果无法恢复,并且备份中没有此类文件,则该服务会向驱动程序报告。 我们的微型过滤器驱动程序会忽略系统请求并释放它。 然后,操作系统或应用程序会收到“找不到文件”错误。 但是,如果磁盘上或备份中确实不存在该文件是可以的,则用户只是错误地要求了一个不存在的文件。

image

Of course, the OS will work much slower, because the reading of any file or library takes several steps, possibly with remote data access. That is the price that we pay to be able to start working earlier, despite the ongoing restoration process.

当然,操作系统的运行速度会慢得多,因为读取任何文件或库都需要执行多个步骤,可能需要进行远程数据访问。 这是我们需要付出的代价,尽管恢复过程正在进行中,但能够早日开始工作。

我们需要更深,更深... (We need to move deeper, much deeper...)

The prototype proved the concept but we discovered we needed to dive deeper to avoid deadlocks. This appeared, for example, when OS requested different libraries in several threads, and the service looped back.

原型证明了这一概念,但我们发现我们需要更深入地研究以避免死锁。 例如,当OS在多个线程中请求不同的库,并且服务循环返回时,就会出现这种情况。

I’m currently working on finding a way to raise the Active Restore speed and enhancing system security. In the case that the system requests only part of the file, we developed an additional driver — a storage filter driver operating on the block level. The principle of the operation is the same. In the standard mode, the driver just logs block changes on the disk. However, while on restore mode, it tries to read blocks and request reprioritization from the service in case of failure. All the other parts of the system remain the same. The OS-level service doesn’t even know that there is another driver. Our main goal is to provide the OS with the necessary data, but there’s a field for further development because the service is still not able to operate on the block level.

我目前正在寻找提高Active Restore速度和增强系统安全性的方法。 在系统仅请求文件一部分的情况下,我们开发了一个附加驱动程序-在块级别运行的存储筛选器驱动程序。 操作原理是相同的。 在标准模式下,驱动程序仅将块更改记录在磁盘上。 但是,在还原模式下,它会尝试读取块并在出现故障的情况下向服务请求重新排序。 系统的所有其他部分保持不变。 操作系统级别的服务甚至不知道还有另一个驱动程序。 我们的主要目标是为OS提供必要的数据,但是还有一个需要进一步开发的领域,因为该服务仍无法在块级别上运行。

The next phase is diving to the UEFI level with driver and Native Windows applications with service to start even faster. For that reason, we have developed the UEFI boot driver (DXE driver), which is started and killed even before the OS start-up. Stories about UEFI drivers, their construction, and installation will be discussed in the following posts. Subscribe for our blog and I will be happy to see your comments!

下一阶段是使用驱动程序和带有服务的Native Windows应用程序跳入UEFI级别,以使其启动更快。 因此,我们开发了UEFI引导驱动程序(DXE驱动程序),该驱动程序甚至在操作系统启动之前就已启动并被杀死。 以下帖子将讨论关于UEFI驱动程序,其构造和安装的故事。 订阅我们的博客,我很高兴看到您的评论!

翻译自: https://habr.com/en/company/acronis/blog/496584/

还原卡还原了数据能恢复吗


http://chatgpt.dhexx.cn/article/srkw46oA.shtml

相关文章

纯html 404页面,一款纯css3实现的漂亮的404页面_html/css_WEB-ITnose

一款纯css3实现的漂亮的404页面_html/css_WEB-ITnose 之前为大家分享了那些创意有趣的404页面, html5和css3打造一款创意404页面, HTML5可爱的404页面动画很逗的机器人。今天再给大家分享一款纯css3实现的漂亮的404页面。效果图如下: 在线预…

VUE 404页面的实现

效果图&#xff1a; 实现方式&#xff1a; 创建一个404的vue页面 <template><div class"wscn-http404-container"><div class"wscn-http404"><div class"pic-404"><imgclass"pic-404__parent"src"/…

Django配置404页面

目录 一.settings配置二.url设置三.views中设置四.最后附一个404页面的模板。 一.settings配置 1.首先需要在settings中将DEBUG由原来的True改为False DEBUG False2.需要设置 ALLOWED_OSTS ["*"]二.url设置 三.views中设置 def page_not_found(request,**kwarg…

收集的几个自定义的404页面的模板

文章目录 404pages : HTTP Status 404 – Not Found介绍&#xff1a;404页面分类&#xff1a;补充内容&#xff1a;致谢&#xff1a;声明 404pages : HTTP Status 404 – Not Found 介绍&#xff1a; 注&#xff1a;项目已上传到github&#xff1a;https://github.com/yanshen…

网站怎么自定义404页面

404页面是客户端在浏览网页时&#xff0c;服务器无法正常提供信息&#xff0c;或是服务器无法回应&#xff0c;且不知道原因所返回的页面&#xff0c;简单的说就是当别人访问你网站的某一个已经删除或不存在的网页的时候&#xff0c;服务器自动显示的页面。404页面对seo是有一定…

vue 中编写404页面

前言 今日给自己项目添加404页面时&#xff0c;踩了一点坑&#xff0c;分享给大家。 正文 <div class"_404"><h2 class"m-0">抱歉&#xff0c;页面未找到&#xff0c;<span>{{countDown}}</span>s后自动跳转到<a href"j…

hexo自定义404页面

1.找到你中意的404页面 推荐一款&#xff1a;https://404.life 预览保存&#xff0c;如果你看到其他喜欢的页面如何F12扒页面我就不教咯~ 2.hexo配置 2.1 把css和js放在博客下 我是放在这儿的&#xff0c;你也可以放在github&#xff0c;用jsd加速。 2.2 新建404.html 路…

缤纷多彩的404页面(404.html)

文章来源&#xff1a;https://www.skyqian.com/archives/404-Pages.html 一般而言&#xff0c;第一时间会在博客更新&#xff0c;CSDN随缘更新。 引言 别离滋味浓于酒。著人瘦。此情不及墙东柳。春色年年如旧。 ——勿埋我心 404是个很常见的页面&#xff0c;当该网站的内容搬迁…

html404页面怎么添加,网站要如何设置自定义404页面?

之前我们讲述过网站设置404页面对于优化或是用户体验的重要意义&#xff0c;大家可移步到《网站为什么要设置404页面》查看&#xff0c;今天我们讲解的是网站要如何设置自己的404页面。 现在大多数空间商都有了404设置的功能&#xff0c;我们可将404页面上传至空间里面&#xf…

phpstudy 404页面设置 也就是Apache404页面的设置

1&#xff0c;让apache支持.htaccess 我们要找到apache安装目录下的httpd.conf文件,在里面找到 <Directory /> Options FollowSymLinks AllowOverride none </Directory> 我们只要把蓝色字的none改all就重起apache就好了 如图&#xff1a; 2、找到httpd.conf文件…

个性404页面模板php,25个创意404页面,支持模板下载

对于SEOer来讲,一个好的404页面是很有必要的,既要让蜘蛛能识别出不需要的网页,也要让用户在访问到错误页面时感觉舒服,所以,在选择404页面时SEOer就纠结了,到底什么样的一款404页面是好的呢?或者说是合适的呢? 今天Kane就在这里整理了26款404页面,分别是五个类别,大部…

vue 页面跳转404_出现404页面怎么办?应该如何处理404页面?

当出现404页面怎么办?应该如何处理404页面?我们都知道404页面是用户在输入错误的链接时,显示的返回页面,但是作为SEOer来说,一切与用户有关的事,我们都不能忽略, 当用户已经点击进来,难道要因为出现的404页面而失去众多用户吗?不!这不是一个优秀的SEOer该做的事,下面…

html5 小游戏 404页面,原来404页面可以这样做

404页面是网站必备的一个页面,它承载着用户体验与SEO优化的重任。404页面通常为用户访问了网站上不存在或已删除的页面,服务器返回的404错误。如果站长没有设置404页面,会出现死链接,蜘蛛爬行这类网址时,不利于搜索引擎收录。 设置404页面的两大好处 1:引导用户不要关闭网…

SpringBoot 配置404页面

SpringBoot 配置404页面 项目环境&#xff1a; 服务器&#xff1a;centos 前端&#xff1a;Vue 后端&#xff1a;SpringBoot 出现的问题 访问一个不存在的页面时&#xff0c;会出现tomcat自带的404界面&#xff0c;这个界面对于用户不太友好 解决方案 1、自己写好404页面…

vue 404页面

一、概述 如果用户输入错误的网址没有提示&#xff0c;界面也不会有任何变化&#xff0c;用户体验非常不友好&#xff0c;所以需要设置错误提示 二、设置 设置404页面需要在配置路由文件index.js中设置&#xff0c;其中 * 代表的就是404页面 // 404 page must be placed at the…

自适应404页面

404.CSS *{ padding:0;margin:0;box-sizing:border-box;font-family:"微软雅黑";} body,html{width:100%;height:100%;} .container{max-width:90%;margin:0 auto;padding:80px 0px; } img{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;us…

什么是404页面,404有什么做用,网站做404有什么好处?

什么是404页面&#xff1f; 404页面是客户端在浏览网页时&#xff0c;服务器无法正常提供信息&#xff0c;又不知情况&#xff0c;所返回的页面。很多用户访问错误网页时就会经常出现这个404页面。 所谓404页面主要指的是在运营网站的过程中&#xff0c;当用户点击了某个网页…

网页报错404原因及解决方法

网页报错404&#xff1a;即找不到该资源 未开启服务 若使用的是tomcat服务器&#xff0c;先检查服务器有没有正常启动&#xff0c;网络连接是否正常。 服务器未正确部署 使用开发工具为idea&#xff0c;检查tomcat在idea是否部署正确。 服务器配置出错 tomcat在idea中的配置出错…

404是什么意思,404错误页面有什么用?

在我们浏览网页时&#xff0c;时常会出现一些404页面&#xff0c;导致无法正常浏览网页&#xff0c;那么什么是404呢&#xff0c;为什么会产生404页面呢&#xff1f;下面我们一起来看看。 404介绍 404其实是一种http状态码&#xff0c;代表用户在浏览网页时&#xff0c;服务器…

自制整人电脑小程序

自制整人电脑小程序&#xff0c;有趣的.vbs文件 今天看到一个有意思小程序&#xff0c;可以用来整蛊好朋友&#xff0c;让他们以为电脑收到攻击或者重要文件丢失。制作这个小程序只需要用到电脑最普通的文本文档&#xff0c;只是保存格式不是常用的.txt&#xff0c;而是.vbs。…