File System Virtual Appliances
CARNEGIE-MELLON UNIV PITTSBURGH PA DEPT OF ELECTRICAL AND COMPUTER ENGINEERING
Pagination or Media Count:
Implementing and maintaining file systems is painful. OS functionality is notoriously difficult to develop and debug, and file systems are more so than most because of their size and interactions with other OS components. In-kernel file systems must adhere to a large number of internal OS interfaces. Though difficult during initial file system development, these dependencies particularly complicate porting a file system to different OSs or even across OS versions. This dissertation describes an architecture that addresses the file system portability problem. Virtual machines are used to decouple the OS on which a file system runs from the OS on which user applications run. The file system is distributed as a file system virtual appliance FSVA, a virtual machine running the file system developers preferred OS version. Users run their applications in a separate virtual machine, using their preferred OS version. An FSVA design and implementation is described that maintains file system semantics with few, if any, code changes. This is achieved by sending all file system operations from the user OS to the FSVA. A unified buffer cache is maintained by using shared memory between the user OS and FSVA and by letting the user OS control the FSVAs buffer cache size. Features such as resource isolation and security are maintained through a single FSVA-per-user-OS design. Virtual machine migration is supported by simultaneously migrating a user OS and FSVAs, maintaining shared memory mappings and live migrations low downtime. Several case studies demonstrate FSVAs effectiveness in providing OS-independent file system implementations. Measurements show that FSVA overheads on different workloads vary from 0-40. The main overhead source is the communication latency between the user OS and FSVA. If a processor core is dedicated to an FSVA, a power-efficient polling mechanism reduces the overheads to 0-10.
- Computer Programming and Software
- Computer Hardware
- Computer Systems Management and Standards