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 identifies 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? If you are unsure of the answers to these questions—or have others!—you should post on your teaching-team Piazza so that you can discuss them with your instructor and peers. We will assume you know the answers to these questions going into your videochat.

As you read the paper, think about:

Question for Recitation

Below are three questions for you to reflect on as you read the paper. You will post your reflection, or respond to another student's reflection, on your Teaching Team Piazzas during the week of March 30th. You do not need to email responses to these questions to your TA. As a reminder:

Now, for the questions themselves. There are many possibile answers for each. We're expecting you to thoughtfully consider these questions, not come up with the single "best" answer. Your answers to these questions should be in your own words, not direct quotations from the paper.

  1. 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?
  2. 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?
  3. You've seen many filesystems now in 6.033. Why are there so many? What makes a filesystem a "perfect" filesystem? Is there such a thing?