Preparation for Recitation on ZFS
Read The Zettabyte File System. It was published in the Usenix Symposium on File and Storage Technologies in 2003. This is your third file system; you have now read about the Unix Filesystem, GFS, and now ZFS.
The Introduction of the paper highlights the goals of the system and Section 2 discusses what the authors identify as their design principles. Section 3 describes their design, both the supporting elements and their approach to providing the POSIX layer. POSIX is the "Portable Operating System Interface" standardized by the IEEE for providing compatibility with various versions of Unix. Section 4 considers several use scenarios, although Section 5, in discussing design tradeoffs identities several key issues that are not considered in Section 4. The paper concludes with several brief sections on related work, future work, the current status and conclusions.
To check whether you understand the design of ZFS, you should be able to answer the following questions:
- What is the role of the Storage Pool Allocator (SPA)?
- The Data Management Unit (DMU)?
- What part of ZFS provides consistency, and how do writes work?
As you read the paper, consider the following questions:
- In terms of the design principles we have discussed in 6.033, which ones did the authors apply? How did they apply them?
- In light of the End-to-end arguments and the content of lectures on reliability and transactions, think about where the authors chose to provide those capabilities.
- What trade-offs do the authors make by providing consistency (Section 3.3)? What systems do you suspect are the ideal use-case for ZFS? Do you agree with the trade-offs the authors made?
- The ZFS paper doesn't include an evaluation section. What sorts of things might they have evaluated? What would you have liked to see in an evaluation section?
Question for Recitation
Before you come to this recitation, you'll turn in a brief answer to the following questions (really—we don't need more than a sentence or so for each question). Your TA will be in touch about exactly how to turn that in.
Your answers to these questions should be in your own words, not direct quotations from the paper.
- What aspect(s) of the Unix file system was ZFS designed to overcome?
- How is ZFS designed to overcome those issues? Why is it important for ZFS to overcome them?
- You've seen many filesystems now in 6.033. Why are there so many? Is there such a thing as a "perfect" filesystem?