Kostas Magoutis, Ph.D. Thesis, Harvard University, May 2003.
In recent years network storage has emerged as an important systems research field, driven by the demand for scalable storage structures to satisfy the growing needs of Internet services. With the advent of high-speed networks, the efficiency of network storage systems is directly related to the host CPU overhead of communication protocols for a large class of applications. This thesis addresses the question of what system support is necessary to reduce the communication overhead of network file systems in common use, while interoperating with existing, widely deployed network infrastructure. It demonstrates that significant host CPU overhead reduction is possible with appropriate network interface support, and shows that two novel network mechanisms are equally effective in reducing overhead for large I/Os; one of them, however, has the additional advantage of reducing server overhead for small I/Os.
In addition to aiming for overhead reduction, an appropriately designed API is necessary to provide applications with control over I/O policy. This thesis addresses the question of whether a kernel implementation of such an API can enable high performance implementations of user-level services while retaining the benefit of protection and fault isolation provided by the user-kernel boundary. It shows that a kernel implementation of an I/O API has comparable overhead to a user-level implementation of the same API and that both enable high-performance network attached storage services.
Full Thesis (154 pages): PDF