ZFS verteilt Daten dynamisch mithilfe des Striping-Verfahrens über alle in der obersten Hierarchieebene befindlichen virtuellen Geräte. Die Entscheidung, wo Daten gespeichert werden, wird zur Zeit des Speichervorgangs getroffen.
Wenn neue virtuelle Geräte zu einem Pool hinzugefügt werden, weist ZFS dem neuen Gerät schrittweise Daten zu, wodurch Leistungsrichtlinien und Richtlinien für die Zuweisung von Festplattenkapazität eingehalten werden. Jedes virtuelle Gerät kann auch für die Datenspiegelung oder als RAID-Z-Gerät, das andere Datenträgergeräte bzw. Dateien enthält, eingesetzt werden. Mit dieser Konfiguration wird die Kontrolle der Fehlercharaketristika eines Pools flexibler. So können Sie beispielsweise aus vier Datenträgern die folgenden Konfigurationen bilden:
vier Datenträger mit dynamischem Striping
eine vierfache RAID-Z-Konfiguration
zwei zweifache Geräte für die Datenspiegelung, die dynamisches Striping verwenden
Obwohl ZFS die Kombination verschiedener Arten virtueller Geräte im gleichen Pool unterstützt, wird dies nicht empfohlen. Sie können beispielsweise einen Pool mit einer zweifachen Datenspiegelungs- und einer dreifachen RAID-Z-Konfiguration erstellen. Die Fehlertoleranz des Gesamtsystems ist jedoch nur so gut wie die die Geräts mit der schlechtesten Fehlertoleranz, in diesem Fall RAID-Z. Eine bewährte Verfahrensweise ist, virtuelle Geräte der obersten Hierarchieebene zu verwenden, die das gleiche Redundanzniveau besitzen.