Adding Advanced Storage Controller Functionality Via Low-Overhead Virtualization
Historically, storage controllers have been extended by integrating new code, e.g., file serving, database processing, de-duplication, etc., into an existing base. This integration leads to complexity, co-dependency and instability of both the original and new functions. Hypervisors are a known mechanism to isolate different functions. However, to enable extending a storage controller by providing new functions in a Virtual Machine (VM), the virtualization overhead must be negligible, which is not the case in a straightforward implementation. This paper demonstrates a set of mechanisms and techniques that achieve near zero run-time performance overhead for using virtualization in the context of a storage system.