
它是什么
ZFS 由 Sun Microsystems 为 Solaris 创建。Oracle 收购 Sun 之后,开源代码以 OpenZFS 的名义延续下来,它可以在 Linux 和 FreeBSD 上运行,并内置于 Proxmox VE 和 TrueNAS 中。由于它同时管理磁盘和文件系统,因此知道哪块磁盘保存着您数据的哪个副本,并能用好的副本修复损坏的副本。
值得了解的几个概念
- 存储池、镜像和 RAID-Z:磁盘被分组成存储池。镜像在两块或更多磁盘上保存相同的副本。RAID-Z 使用奇偶校验,根据级别不同,每组可容忍一块、两块或三块磁盘故障。
- 校验和:每个数据块都有校验和,因此当磁盘悄悄返回损坏的数据时,ZFS 会察觉并利用冗余副本修复它。定期的清理(scrub)会检查整个存储池。
- 快照:文件系统或虚拟磁盘的冻结视图,几乎瞬间创建,只有在数据变化时才占用空间。
- 发送和接收:快照可以流式传输到另一台 ZFS 机器。在第一次完整复制之后,只有变化的部分会传输。
- 压缩:数据可以在写入时压缩。常用的 LZ4 方法只增加很少的处理器负载。
- 直接访问磁盘和内存:ZFS 应当直接看到每块磁盘,而不是通过硬件 RAID 卷。它把读取内容缓存在空闲内存中,因此内存不足的服务器会感觉很慢。
ZFS 与 Ceph 的比较
ZFS 是单台服务器内部的存储。如果这台服务器停机,它的存储池也随之停止,不过第二台服务器上的副本可以接管,只是缺少最新的变更。Ceph 把存储分散在多台服务器上,因此损失一台不会让任何东西停止,代价是需要更多硬件和更多精力。我们的存储服务页面说明了各自适合什么情况。两者都不能取代备份。
KawaConnect 如何使用 ZFS
我们自己的基础设施运行在 Proxmox 和 Ceph 上,并为客户搭建 Proxmox 服务器。ZFS 是 Proxmox 内置的存储,对于单台主机或一对主机,我们的设计就从它开始。当存储必须在整台服务器丢失时仍持续运行,我们则规划 Ceph。
相关服务
了解更多
- OpenZFS 文档官方手册,包含各操作系统的设置指南和命令参考页面。
- OpenZFS 项目网站项目新闻、支持的平台,以及开发者如何协作。
- 维基百科上的 ZFS 词条从 Sun 到 OpenZFS 的中立历史,以及功能概述。
- Proxmox VE Wiki 中的 ZFS on LinuxProxmox VE 如何使用 ZFS,包括存储池布局、内存设置以及更换故障磁盘。