您现在的位置是:首页 >要闻 > 2021-09-09 03:58:45 来源:
探索OpenZFS之后Linux迁移的新特性
5月23日发布时,Linux 0.8(ZoL)上的ZFS带来了许多新功能和性能提升。这是在德尔福宣布将于2018年3月将其产品迁移到Linux之后完成的。今天最激动人心的五月特辑(如ZFS本地加密)。
有关完整列表(包括此处未涵盖的新功能和性能改进),您可以访问Github上的ZOL 0 . 8 . 0版本。(请注意,ZoL 0.8.1是上周发布的,但是因为Linux上的ZFS遵循语义版本控制,所以它只是一个错误修复版本。)
不幸的是,对于Ubuntu爱好者来说,这些新功能在Canonical的存储库中不会出现很长时间——将于2019年10月发布的临时版本Eoan Ermine在其存储库中仍显示0.7.12。我们可以希望Ubuntu 20.04 LTS(尚未命名)会与0.8.x分支合并,但目前还没有正式的词汇。如果你正在运行Ubuntu 18.04(或更高版本)并且迫不及待,广泛使用的黄邦贤F PPA有一个0.8.1的功能。Debian的实验版是0.8.0,Arch Linux的zfs-dkms AUR包是0.8.1,Gentoo在sys-fs/zfs中的测试是0.8.1。其他Linux发行版的用户可以直接从https://zfsonlinux.org/.的master上找到构建软件包的说明。
前面提到的Linux迁移已经将德尔福令人印象深刻的OpenZFS开发人员阵容增加到一个庞大的团队,该团队已经在Linux上完成了ZFS的工作。11月,FreeBSD宣布承认Linux为OpenZFS的旗舰开发平台。FreeBSD通过在Linux中重建自己的基于ZFS的OpenZFS代码库而不是Illumos来做到这一点。对于BSD爱好者来说,更好的消息是,必要的移植工作将包含在Linux本身的ZFS主代码库中。随着工作的进行,PR将从FreeBSD的新ZoL fork中合并。
最近几个月,Linux上的ZFS和整个OpenZFS项目都非常忙碌。历史上,OpenZFS的大部分新开发工作都是由Delphix的员工完成的,他们将Illumos作为自己的首选平台。从那里,新代码相对较快地移植到FreeBSD,而移植到Linux相对较慢。
但是多年来,它已经为ZFS在Linux项目上积累了力量。而改进和纠错的过程反了方向——0.8中几乎所有真正令人兴奋的新功能都源于Linux,而不是从其他地方移植过来的。
ZFS向云的复制就在这里,而且速度很快。
让我们深入研究最重要的内容。
ZFS本地加密。
原生ZFS加密是0.8中最重要的新功能之一。到目前为止,ZFS用户一直依赖OS提供的ZFS以上或以下的加密文件系统层。这种方法虽然有效,但也带来了困难——ZFS层下的加密(GELI或LUKS)降低了ZFS本地确保数据安全的能力。同时,ZFS层之上的加密(在ZVOL上创建的GELI或LUKS卷)使得ZFS本地压缩(启用后通常会提高性能和可用存储空间)变得不可能。
然而,本地加密的实用性不仅会随着加密文件系统的更好集成和易用性而停止。该功能还附带原始加密ZFS副本。当您在本地加密ZFS文件系统时,您可以将文件系统完全复制到远程ZFS池,而无需解密(或解压缩)数据或要求远程系统拥有密钥来解密数据。
反过来,此功能意味着ZFS复制可用于保持不受信任的远程备份系统最新。这使得对远程系统具有根和/或物理访问权限的攻击者不可能窃取那里备份的数据。
ZFS装置拆除。
ZFS爱好者最常见的抱怨是,如果您对向现有ZFS池添加新磁盘的命令不满意,则无法撤消该命令。您被困在一个只有一个磁盘vdev且没有奇偶校验或冗余的池中。
过去,唯一的缓解措施是将更多磁盘连接到新的单磁盘vdev,并将其升级为镜像。如果先用一堆镜子,可能还不错。但是,如果您的池基于RAIDz(条带化)vdev,或者如果您碰巧没有钱和/或没有新磁盘,它将太冷。
从0.8.0开始,新的zpool删除命令可以在有限的情况下用于设备删除。然而,明智的做法是,移除设备并不容易,也不应该轻易删除。删除设备池最终会导致丢失相当于CNAME的内存块;最初引用存储在已删除磁盘上的数据块的文件系统调用最终将首先找到原始数据块,然后重定向到该数据块的新位置。这对错误添加和立即删除的设备影响应该相对较小,但如果用于删除具有数千个已用数据块的设备,可能会对性能产生严重影响。
ZFS的TRIM支持。
对Linux上的ZFS的长期抱怨之一是它缺乏对固态硬盘的TRIM支持。如果没有TRIM,固态硬盘的性能会随着时间的推移而显著下降——在未经TRIM使用几年后,固态硬盘可能会很容易降低到其原始性能的1/3或更多。
小。如果您的比较点是传统硬盘,则没关系。一个好的固态硬盘通常具有的吞吐量是非常快的防锈磁盘的五到六倍,IOPS是一万倍。那么,朋友中可怜的67%罚款是多少?但是,如果您要依靠系统的预配置性能,则会遇到麻烦。
幸运的是,0.8为ZFS带来了对手动和自动TRIM的支持。大多数用户和管理员将希望使用 autotrim池属性来启用自动实时TRIM支持。具有较少存储使用窗口的对性能非常敏感的系统,可以选择使用zpool trim在非工作时间安排常规的TRIM任务 。
ZFS池检查点
检查点不如我们已经提到的功能那么迷人,但是它们肯定可以节省您的培根。将检查点想像为池范围的快照。但是,当快照保留单个数据集或ZVOL的状态时,检查点将保留整个池的状态。
如果要启用更改磁盘格式(通常是不可逆的)的新功能标志,则可以首先 zpool检查点池,使您可以将其回滚到升级前的状态。检查点还可以用于回滚原本不可逆的数据集或zvol级别的操作,例如destroy。当您仅打算销毁其快照之一时,zfs偶然 销毁了整个数据集?如果您有检查点,则可以将该操作回滚。