一、VDEVs简介
首先,我们需要了解虚拟设备或VDEV的概念。如果你已经熟悉RAID,那么这个概念对你来说并不陌生,尽管你可能没有将其称为“VDEVs”。基本上,我们有一个代表一个或多个物理设备的元设备。在Linux软件RAID中,您可能有一个“/dev/md0”设备,它代表一个包含4个磁盘的RAID-5阵列。在这种情况下,“/dev/md0”将是您的“VDEV”。
ZFS中有七种类型的VDEV:
disk(default) - 系统中的物理硬盘驱动器。
file - 预分配文件/镜像的绝对路径。
mirror - 标准软件RAID-1镜像。
raidz1/2/3 - 非标准分布式基于奇偶校验的软件RAID级别。
备用硬盘标记为ZFS软件RAID的“热备件”
cache - 用于2级自适应读缓存(L2ARC)的设备。
log - 一个单独的日志(SLOG),称为“ZFS Intent Log”或ZIL。
值得注意的是,VDEV始终是动态条带化的。但是,假设ZFS条带中有4个磁盘,条带大小由磁盘数量和阵列中磁盘的大小计算得出。如果添加了更多磁盘,则可以根据需要调整其他磁盘的条带大小。
二、zfs池
2.1 创建raidz1池
# zpool create storage raidz1 sda sdb sdc
RAIDZ-1类似于RAID-5,因为在阵列中的所有磁盘上都有一个奇偶校验位。 条带宽度是可变的,可以覆盖阵列中磁盘的精确宽度,更少的磁盘或更多的磁盘。 RAIDZ-1只允许一个磁盘