每个存储池都包含一个或多个虚拟设备。虚拟设备是存储池的内部表示形式,用于描述物理存储器的布局以及存储池的故障特征。因此,虚拟设备表示用于创建存储池的磁盘设备或文件。一个池可以在配置的顶层具有任意数目的虚拟设备,称为顶层 vdev。
如果顶层虚拟设备包含两个或更多物理设备,配置将以镜像或 RAID-Z 虚拟设备的形式提供数据冗余。这些虚拟设备由磁盘、磁盘分片或文件构成。备件是一种特殊虚拟设备,用于跟踪一个池的可用热备件。
以下示例说明如何创建一个包含两个顶层虚拟设备(各虚拟设备是由两个磁盘组成的镜像)的池:
# zpool create tank mirror c1d0 c2d0 mirror c3d0 c4d0
以下示例说明如何创建包含一个顶层虚拟设备(由 4 个磁盘组成)的池。
# zpool create mypool raidz2 c1d0 c2d0 c3d0 c4d0
可以使用 zpool add 命令将另一个顶层虚拟设备添加到此池中。例如:
# zpool add mypool raidz2 c2d1 c3d1 c4d1 c5d1
非冗余池中使用的磁盘、磁盘分片或文件可用作顶层虚拟设备。存储池通常由多个顶层虚拟设备构成。ZFS 将在池内的所有顶层虚拟设备中以动态方式对数据进行条带化。
可使用 zpool status 命令显示 ZFS 存储池中包含的虚拟设备和物理设备。例如:
# zpool status tank pool: tank state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM tank ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c0t1d0 ONLINE 0 0 0 c1t1d0 ONLINE 0 0 0 mirror-1 ONLINE 0 0 0 c0t2d0 ONLINE 0 0 0 c1t2d0 ONLINE 0 0 0 mirror-2 ONLINE 0 0 0 c0t3d0 ONLINE 0 0 0 c1t3d0 ONLINE 0 0 0 errors: No known data errors