Exercise 1: What the Traditional Stack Requires That zpool Doesn't — Possible Solution ==================================================================== Explanation: A traditional stack -- ext4 or Btrfs on top of LVM on top of mdadm RAID -- requires each layer to be set up and managed as a genuinely separate step, using separate tools. First mdadm would be used to combine /dev/sdb and /dev/sdc into a redundant RAID array (a distinct device, e.g. /dev/md0). Then LVM would be used to turn that array into a physical volume, group it into a volume group, and carve out one or more logical volumes from it. Only after both of those layers exist would a filesystem (ext4 or Btrfs) finally be created on top of a logical volume with mkfs. Three separate subsystems, three separate tools, three separate places something can be misconfigured or fail. Per the chapter, "zpool create tank mirror /dev/sdb /dev/sdc" collapses all of that into a single command and a single system. ZFS's own pool is built directly from the raw disks, with the mirroring (redundancy) specified right there at creation time -- there is no separate mdadm array to create first, and no separate LVM physical/volume group/ logical volume chain to set up afterward, because "a zpool is built directly from raw disks or partitions, with redundancy... configured at pool-creation time -- no separate mdadm or LVM layer needed underneath at all." The dataset created afterward with "zfs create tank/data" is immediately usable as a filesystem, with none of the intermediate layers a traditional stack would require. This is possible specifically because ZFS was designed from the start as one integrated system managing volumes, redundancy, and the filesystem together, rather than as a filesystem meant to sit on top of whatever volume-management layer already existed underneath it -- which is the traditional Linux model ext4 and (mostly) Btrfs both still follow. WHY THIS WORKS AS AN ANSWER ------------------------------ This names the specific separate tools/layers (mdadm, then LVM's own PV/VG/LV chain, then mkfs) the traditional stack genuinely requires, and explains why ZFS's own single command replaces all of them, tying back to the chapter's own explicit statement of the integrated model.