This course covers the internal implementation of the ZFS file system. It uses a combination of source code and various tools available on SmartOS to examine the topics that are covered. Tools used include:zdb, DTrace, and mdb. The course starts with a description of theZFS on-disk format. It then moves to a description of how ZFS worksin the kernel. This will include examination of mounted ZFS file systems,how reads and writes work, and how storage is managed while it is being used.The course concludes with a brief look at some problems that mayarise when using ZFS, and possible ways of dealing with these problems.
On completion of this course, students will be able to:
Explain the layout of ZFS file systems on disk.
Identify the metadata and data for a given file within a zpool.
Describe the mechanics of mounting a ZFS dataset.
Use zdb(1M) to examine the metadata for a ZFS dataset.
Explain how ARC works.
Explain the function of the DMU, transactions, and transaction groups.
Describe ZFS transaction groups.
Describe the ZIO pipeline
This course is designed for anyone who has a need to know how ZFS works.This could be a developer, system administrator, and support/maintenance personnel.
Good knowledge of SmartOS internals (could be Solaris internals), or the SmartOS Internals course.
Module 1: Introduction
Overview of ZFS Components
Module 2: ZFS On-Disk Format
Snapshots and Clones
On disk layout
Module 3: ZFS in memory
Mounted ZFS file systems
ZFS Posix Layer
Reading file data
Writing file data
Module 4: zdb
Example uses of zdb to examine ZFS on disk format
Put our containers as a service solution to the test.