Transparent Mirroring via the Yoke Device
Peter T. Breuer, Universidad Carlos III de Madrid
Track: Linux Systems
Date: Thursday, July 20
The problem with mirrors is that there is never one around when you need it. But production machines can't put up a mirror just like that. The Linux kernel's RAID facilities require the mirror to present itself as a separate device, which means turfing out all local and remote processes on a vulnerable partition in order to remount it under the umbrella of a mirror. Changes in the mirror composition also require profound configuration changes. The yoke device makes mirroring easier by making it transparent. A mirrored partition controlled by yoke is accessible in the same way as it was before--except that all writes to it are now mirrored silently to all the other current facets of the mirror. Mirror facets can be added and removed while the mirror is running. The yoke driver runs a "union block device," composed of a shifting group of participant devices. The current device is the hub in a star topology of local and remote mirror parts, forming a distributed network device. We'll talk about the devices principle of operation. It cuckoos for its facets in a generic manner in-kernel, intercepting calls and substituting and passing on its own. Different mechanisms are required for different major kernel versions.