ZFS 文件系统与 ZFS 池

ZFS filesystem vs ZFS pool

ZFS 池可能包含数据集(文件系统、快照等)或卷。 ZFS 卷就像块设备,但我不明白池和文件系统之间的区别。当我通过 zpool create pool1 sda sdb sdczpool create pool1/fs 创建 pool1 时,我可以在 df -h 输出中看到两个新行 pool1pool1/fszfs list 输出相同。现在,我可以将文件复制到池和 fs 中。我可以在两者上设置重复数据删除或压缩。那么区别是什么呢?为什么 should/shouldn 我不在池中创建文件系统?如果可能,请包括一些用法示例。

池是磁盘的集合,您可以在其中存储文件系统和卷。当您创建一个时,您还将获得一个基本级别的文件系统,您创建的所有其他文件系统都将继承其属性(例如要使用的压缩算法等)。

文件系统是您可以写入文件的东西,它们都使用池中的存储来写入数据。通常你将逻辑上相似的数据分组到同一个文件系统中,因为这样你就可以把所有的数据都一视同仁w.r.t。压缩、快照等。您可以通过 NFS 将文件系统共享到网络上的其他计算机。

卷(也称为 zvol)是一个假磁盘,它使用池中的存储来写入其数据。它有点像一个大文件,除了您还可以直接对其进行压缩/快照等,而不是通过包含它的文件系统。通常,如果您是 运行 虚拟机,您只会创建卷。虽然我相信您可以基于一组 zvol 创建一个池(池中的池),但通常这不是一个好主意(尽管它对 ZFS 开发人员的测试很有用)。您可以通过 iSCSI 或 FibreChannel 与网络上的其他计算机共享卷。