Towards High-availability for Virtio-fs
summary
Implements crash recovery, live upgrade, and live migration for virtio‑fs by adding a supervisor restart path, QEMU reconnection of the virtio-user socket, persistent in-memory state via a new fluid_map, and persistent file handles saved/restored with name_to_handle_at/open_by_handle_at. In-flight FUSE IO uses the existing in-flight tracking log plus per-request adaptations (relaxed error paths or lightweight journaling). FIO tests with 100 and 1000 open files cut recovery from ~101s to <1s and then to <100ms.
AI-written summary · about
chapters (15)
- 0:00Intro
- 1:34Virtio-fs Use Cases
- 3:00Why High-availability for Virtio-fs - High-availability features
- 4:17Restarting on Crash
- 6:28Resubmitting Inflight Requests
- 8:22Saving & Restoring Internal States
- 9:22Crash Recovery Procedures
- 10:25Saving In-memory States to Flat-map
- 11:11Saving File Descriptors as File Handles
- 11:37Idempotent of Resubmitted Requests
- 13:18Idempotent: Case Study (Cont.)
- 16:04Downtime Optimizations
- 17:26Virtio-fs Live Upgrade
- 18:51Virtio-fs Live Migration
- 20:03Status & Future Work
related talks
21mVirtio hardware accelerators and other news
24mFuse mounts recovery and Checkpoint/Restore
20mvFPIO: A Virtual I/O Abstraction for FPGA-accelerated I/O Devices
30mQEMU-Storage-Daemon and libblkio: Exploring New Shores for the QE...
28mVirtio on Type-1 hypervisors
32mBringing up FUSE mounts C/R support
36mShared Virtual Addressing for High Performance Arm Infrastructure Platforms
26mImprove FUSE Filesystem Performance and Reliability
