如何解决如何为包含虚拟内存的 Linux 文件系统拍摄快照?
我想拍摄 Linux 内核中文件系统的快照(例如,最简单的 ramfs)。快照需要检查文件系统的一个特定点,包括所有文件系统信息——磁盘状态:文件内容、元数据、目录结构等和内核/内存状态:页面缓存、内核内存等。稍后,快照需要恢复到检查点时的文件系统状态。这就像一个 VM(虚拟机)快照,也可以恢复虚拟内存和内核状态。但是我不能使用 VM 来检查点/恢复文件系统,因为 VM 快照需要很多时间并且我的文件系统快照需要很快。我知道一些快照技术,如 LVM 快照,但它只检查点/恢复磁盘文件系统状态,不包括文件系统的内核/内存组件。我尝试了进程快照 CRIU
,但它适用于进程,不适用于文件系统。
为了解决这个问题,我尝试通过 ioctl
为 Linux VFS 实现我自己的检查点/恢复 API,这会复制 VFS 中的重要数据结构,例如 struct super_block
、struct inode
、 struct dentry
、struct file
。然后它在恢复阶段用复制的数据结构替换这些数据结构。然而,这是非常具有挑战性的,因为它们需要复制的指针太多,因此深度复制很困难。有没有可行的方法来制作包含所有内核/内存信息的文件系统快照?谢谢。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。