Ananke:快速、透明的文件系统微内核恢复技术
ahcoder 2025-05-22 08:56 9 浏览
编者按:在数字化飞速发展的当下,文件系统崩溃致数据丢失、系统停机的困境时有发生。传统恢复方式或耗时低效,或牺牲性能,难以满足用户对快速、无感恢复的迫切需求。微软亚洲研究院研究员和合作者推出的 Ananke 文件系统微内核服务,凭借创新技术,实现了文件系统崩溃后的快速、透明恢复,为行业和用户探索出新的可行路径。相关论文在全球计算机存储领域顶会 FAST 2025 上荣获最佳论文奖。
你是否曾遇到在保存文件或玩游戏时电脑突然崩溃,重启后发现数据损坏或丢失的情况?文件系统故障比我们想象的要频繁得多,而恢复过程通常缓慢、困难且容易带来数据故障或损失。
针对此,微软亚洲研究院研究员和合作者共同设计开发了一种高性能的文件系统微内核服务 Ananke,旨在进行快速且透明的恢复。与传统需要全系统重启的恢复方法不同,Ananke 利用微内核架构的优势,仅恢复受影响的文件系统进程和状态,让应用程序能够继续运行,仿佛系统级别故障未曾发生。相关论文获得全球计算机存储领域顶会 FAST 2025 颁发的最佳论文奖。
Fast, Transparent Filesystem Microkernel Recovery with Ananke
论文链接:
https://www.usenix.org/system/files/fast25-liu-jing.pdf
微内核式崩溃恢复
在传统的宏内核操作系统如 Linux 和 Windows 中,经典文件系统在内核里运行,一旦文件系统崩溃,整个系统便会随之瘫痪,导致所有应用程序被强制终止。而现代的微内核风格文件系统则采取了不同的设计策略,它将文件系统从内核中分离出来,置于一个独立的进程中。
这一架构变革带来了多方面的显著优势。首先,它能更好地发挥现代 I/O 设备和多核 CPU 的性能潜力;其次,由于文件系统在用户空间运行,所以开发和部署过程得以加快;最后,也是最为关键的一点,它显著提升了故障隔离能力,即当文件系统发生崩溃时,操作系统和其他应用程序仍能保持正常运行,不会受到牵连。
研究员们此前的工作 uFS [1] 就是这样一个半微内核文件系统。如今,微内核架构(如鸿蒙操作系统 [2])已部署在数百万台设备中,证明了其实用性。一个关键的见解:如果文件系统只是一个进程,那么当它崩溃时,为什么要重启整个系统?相反,我们应该可以只重启文件系统进程,让应用程序不间断地继续运行。
如何精准恢复文件系统状态?
从文件系统崩溃中恢复并不容易。现代文件系统在将更改提交到磁盘之前,通常使用内存缓冲区来管理数据(图2)。崩溃发生时会出现状态差距 —— 应用程序所假设的存储内容与实际在磁盘上的内容之间的不匹配。
这种状态差距非常不规则,因为现代系统中文件操作往往是乱序处理的,崩溃发生时,有些更新可能只完成了一部分,而另一些则完全缺失。例如,在2中,操作序列 op1→op2→op3 可能只剩下 op1 的效果和 op2 的一半效果。现有的恢复方法在处理这种情况时并不理想,要么选择重启整个系统,导致不必要的停机;要么依赖应用程序来处理恢复,不仅复杂而且容易出错;要么强制频繁的磁盘刷新,会严重损害性能。Ananke 通过一种高效且对应用程序透明的方法成功解决了这个问题。
Ananke 核心机制:日志驱动的智能修复
Ananke 引入了三种关键技术。首先是进程崩溃日志(P-Log)和 AIM(Act/Ignore/Modify)算法。在正常运行时,Ananke 会在轻量级的 P-Log 中记录文件系统的关键状态,而当故障发生时,它会通过 AIM 算法精确重放必要操作,确保状态一致且避免冗余工作。其次是内核协调的预先重启。Ananke 在现有文件系统进程旁启动了新进程,故障时由操作系统协调控制权转移至新进程,以加快恢复速度。最后是使用校验和轻量级的错误检测。通过这一机制,Ananke 能检测并丢弃损坏的内存区域,且所有操作开销极小。
将这些技术结合(如图3所示的恢复过程),当文件系统崩溃,操作系统会接管并启动新文件系统进程,利用 P-Log 恢复缺失状态,应用程序可继续运行,仿佛未发生任何故障,无需重启且无数据丢失。
评估实验:高性能与透明的故障恢复
在性能与评估方面,Ananke 通过超30,000次的故障注入实验,展示出对 SQLite、LevelDB 和标准文件系统实用程序等五个流行应用程序的无损恢复能力。在正常运行期间保持快速性能的同时,其性能开销在大多数情况下低于2%,并且恢复时间通常在400毫秒以内,这意味着应用程序几乎不会经历停机。与传统的恢复解决方案相比,Ananke 在正常情况(无故障)下能够提供高性能,且在故障发生时可实现无缝恢复。
随着微内核架构在云服务、移动设备和安全关键系统中的普及,快速、透明的恢复机制变得愈发重要。Ananke 作为一种改变游戏规则的技术,显著增强了微内核文件系统的弹性,且无需牺牲性能。
对于开发人员,Ananke 降低了故障处理的复杂性;对于用户,它意味着更少的中断和更高的可靠性。这种创新的恢复机制不仅显著降低了系统的停机时间,提升了整体运行效率,还增强了数据的安全性与可靠性,为用户提供了更加稳定、流畅的使用体验,推动了文件系统恢复技术向更高效、更智能的方向发展。
参考文献
1. Jing Liu, Anthony Rebello, Yifan Dai, Chenhao Ye, Sudarsun Kannan, Andrea C. Arpaci-Dusseau, and Remzi H. Arpaci-Dusseau. “Scale and Performance in a Filesystem Semi-Microkernel”. In Proceedings of the 28th ACM Symposium on Operating Systems Principles (SOSP '21)
2. Haibo Chen, Xie Miao, Ning Jia, Nan Wang, Yu Li, Nian Liu, Yutao Liu, Fei Wang, Qiang Huang, Kun Li, Hongyang Yang, Hui Wang, Jie Yin, Yu Peng, and Fengwei Xu. Microkernel goes general: Performance and compatibility in the HongMeng production microkernel. In Proceedings of the 16th USENIX Conference on Operating Systems Design and Implementation (OSDI '24), Santa Clara, CA, July 2024.
相关推荐
- Linux抓包工具tcpdump安装和使用,监视网络接口小工具大用途
-
Tcpdump工具是一个抓包工具也是一个协议分析软件。强大的功能和灵活的截取策略,使它成为Linux统下网络分析和问题排查的首选工具。tcpdump可以将网络中传送的数据包的头截获下来做分析。它支持...
- linux安装lnmp一键安装包
-
一般企业正式服环境用的lnmp.org一键安装包,下面做下简单介绍:官网:https://lnmp.org1.安装(官网上有详细的安装步骤)screen-Slnmp是为了在安装的过程中,断线的后台...
- Linux 安装Oracle11.2.0.4 (静默安装法)
-
一、环境准备1下载安装包已上传至对象存储,一共两个包#oracle11.2.0.4_1of7.zipwgethttps://oss-cn-north-1.unicloudsrv.com/sc-...
- Ubuntu入门使用之 24.04 如何安装命令工具(或软件包)
-
如果你是初学者,在Ubuntu24.04上运行命令时遇到错误,这意味着运行该特定命令所需的软件包在你的系统中不可用。无论你是刚开始探索Linux世界,还是从旧版本升级而来,你可能会想知道如何...
- Linux 安装代理 实现Windows Proxifier 功能
-
场景:linux上的应用---------->代理服务器(socket5)--------------------目标服务实现方案通过ProxyChains+Socat这2个工具来实现,具体...
- Python保姆级安装教程(CPU+GPU)
-
以下是为您整理的2024年Python保姆级安装教程(CPU+GPU详细版),涵盖Windows、macOS和Linux系统,并详细说明GPU环境的配置(如CUDA、cuDNN等...
- linux安装oracle
-
需要安装oracledataguard,所以先要安装单台oracle11g,下面是单台oracle11g的详细安装过程。1,安装环境硬件环境:2台linux虚拟机,Centos6.4,4G,4核...
- Linux安装Nginx详细教程
-
Nginx是一款高性能的开源Web服务器软件,它被广泛应用于构建高性能的网站和应用程序。本文将向您介绍如何在Linux操作系统上安装和配置Nginx服务器。一、下载nginx1.1、手动下载进入ngi...
- 选择LINUX安装平台
-
您已经选择了Linux发行版,并准备开始安装过程,但您需要确定您的硬件选项。以下是从哪里开始。译自Linux:ChooseanInstallationPlatform,作者Damon...
- 用Linux“还原”Win11,AnduinOS创始人公布1.4/1.5版本更新计划
-
IT之家5月24日消息,据外媒Neowin今日报道,AnduinOS的唯一开发者AnduinXue近日公布了“类Windows风格”Linux系统未来的版本规划。他表示,A...
- Linux lsof命令使用小结
-
推荐理由lsof(listopenfiles)是一个列出当前系统打开文件的工具。在Linux环境下,任何事物都是以文件的形式存在,通过文件不仅可以访问常规数据,还可以访问网络连接和硬件。所以,如传...
- Linux进程管理—信号、定时器使用详解
-
信号:1.信号的作用:背景:进程之间通信比较麻烦。但进程之间又必须通信,比如父子进程之间。作用:通知其他进程响应。进程之间的一种通信机制。信号:接受信号的进程马上停止,调用信号处理函数...
- Nexus 3 本地搭建与使用实战指南(适用于 Linux 与 Win11)
-
一、背景与介绍在DevOps流程中,本地镜像仓库能显著提升镜像下载速度、增强安全性并保障离线可用性。本文将手把手教你在Linux和Win11上分别部署并使用Nexus3搭建Dock...
- 字节跳动介绍使用AI优化Linux内核成果,可减少30%内存用量
-
IT之家11月23日消息,据外媒zdnet报道,字节跳动日前在LinuxPlumbersConference上介绍了通过使用AI优化Linux内核的成果,号称可以取得“显著...
- 一文带你了解 Linux 文件权限,从基础到高级
-
在Linux中,每个文件和目录都关联了一组权限,定义了不同用户对其的访问能力。权限分为三类:读取(read,r)、写入(write,w)和执行(execute,x),分别用字母r、w、x...
- 一周热门
- 最近发表
- 标签列表
-
- linux 远程 (37)
- u盘 linux (32)
- linux 登录 (34)
- linux 路径 (33)
- linux 文件命令 (35)
- linux 是什么 (35)
- linux 界面 (34)
- 查看文件 linux (35)
- linux 语言 (33)
- linux代码 (32)
- linux 查看命令 (33)
- 关闭linux (34)
- root linux (33)
- 删除文件 linux (35)
- linux 主机 (34)
- linux与 (33)
- linux 函数 (35)
- linux .ssh (35)
- cpu linux (35)
- 查看linux 系统 (32)
- linux 防火墙 (33)
- linux 手机 (32)
- linux 镜像 (34)
- linux ip地址 (34)
- linux 用户查看 (33)