导航菜单
首页 >  沐鸣开户测速 >  » 正文

沐鸣开户测速详细了解Ubuntu新的实验性ZFS安装程序

沐鸣开户测速


昨天带来了关于ZFS和Ubuntu前端的激动人心的消息——Ubuntu即将发布的临时版本Eoan Ermine的安装程序中实验性的ZFS根支持。这一功能出现在2021 -10-09版的eoan上,它并没有出现在正式的beta版中,事实上,当我们第一次下载它的时候,沐鸣开户Q554258它甚至没有出现在“每日更新”中。这是新的!
 
为ZFS新手
 
如果您是ZFS的新手,您可能想知道为什么OS安装程序中的新文件系统选项很重要。这里有一个简单的解释:ZFS是一个写时复制的文件系统,它可以获取整个文件系统的原子快照。如果您不习惯的话,这看起来就像魔术一样——可以立即捕获10TB文件系统的快照,而丝毫不会中断任何系统进程。一旦捕获了快照,它就是文件系统在捕获快照时的确切的、块对块的状态的不可变记录。
 
第一次捕获快照时,它不会消耗额外的磁盘空间。随着时间的推移和对文件系统的更改,保存快照所需的空间随着删除或更改的数据量的增加而增加。因此,假设您快照了一个10TB的文件系统:快照立即完成,不需要额外的空间。然后删除一个5MB的JPEG文件—现在快照将消耗5MB的磁盘空间,因为它仍然有您删除的JPEG。然后更改数据库中的5MB数据,删除的JPEG需要10MB-5MB的快照,数据库中更改的数据需要5MB的快照。
 
这只是一个很棒的ZFS特性。还可以管理本机类raid系统中的多个磁盘、使用可选算法进行内联压缩、快速异步增量复制等等。这里我们主要关注快照,因为快照还可以回滚。
 
尽管Eoan的apt包管理器还没有为自动拍快照提供任何支持,但我们可以手动演示快照-鼠标-回滚。在上面的图库中,我们首先拍一张ZFS快照。Eoan已经将我们的根文件系统分割成大量的小数据集(稍后会详细介绍),因此我们使用zfs快照的-r选项来递归地在整个树中获取快照。
 
既然我们已经确保了自己不会犯错,我们就会做一些会让自己后悔的事情。对于这个演示的目的,我们只是删除了firefox -但我们可以真正从任何东西恢复,包括rm -rf -no- preserv- root /这种方式需要一点额外的跑腿工作。在删除Firefox之后,我们需要回滚快照以将系统恢复到原来的状态。
 
由于根文件系统分散在一堆单独的数据集中,所以我们需要逐个地回滚它们。虽然对于没有额外工具的普通用户来说,这是一种痛苦,但是如果我们感觉很挑剔,就可以执行更多的粒度恢复操作,比如在不回滚/home的情况下回滚根文件系统。Ubuntu无疑最终会有工具来简化这一过程,但是现在,我们做了一点sysadmin-fu和管道zfs列表到grep到awk到xargs,天哪。
 
命令行技巧可能令人讨厌,但是回滚本身是即时的,而且Firefox已经回来了。但是,由于没有了filehandles,它仍然不能很好地工作——我们回滚了一个活的已挂载的根文件系统,这有点像牛仔做的事情。为了使事情完全正确,需要重新启动—但是在重新启动之后,一切都是以前的样子,并且不需要等待任何冗长的窗口恢复点式的文件系统。
 
对于ZFS的爱好者来说
 
在本节中,我们将详细了解Ubuntu是如何在Eoan的实验性安装程序中分割文件系统的。我们日常构建的版本是0.8.1,所以这对我们中间的ZFS爱好者来说是一个好消息,即使没有实验性的根安装程序—假设Eoan的最终版本遵循这个版本,我们将获得本地加密、修剪、设备删除和zpool检查点。从0.8开始,这些特性就出现在Linux主机上的ZFS中了,但这是它们第一次出现在Ubuntu的本地ZFS中。
 
到目前为止,请记住,这是一个日常构建的alpha软件——安装程序没有给你任何控制,当你选择一个ZFS安装时,它是如何分割磁盘的;它只是做它想做的。我创建的Eoan VM只有一个20GB的虚拟磁盘。Eoan的安装程序将其划分为一个主分区和两个逻辑分区(一个小型UEFI引导分区和两个独立的ZFS存储池的分区,分别名为bpool和rpool)。
Bpool很无聊;它只是系统的/引导目录被挂载的地方。Eoan将这个池设置为2GB,这是conservative /boot通常配置的两倍;这可能是为了允许headroom在将来维护一个相当深的快照存档。创建UEFI和bpool分区之后,rpool获得所有剩余的磁盘空间;所有有趣的东西都放在这里,包括根文件系统、主目录等等。
 
在rpool下面,您会发现一组令人眼花缭乱的小数据集,它们都对应于通常是单个根文件系统中的特定重要区域。在我们看来,这是一个继承的bsd -ism,大多数Linux发行版在二十年前就抛弃了带有多个文件系统的严重分区磁盘的概念,但是freebsd(它的安装程序中已经有根ZFS选项很多年了)对此更加顽固。
 
将根文件系统分割成这么多单独的数据集的好处是,您可以分别对它们进行快照和回滚。在某些情况下,这是非常棒的—例如,回滚整个根文件系统和回滚您自己的主目录之间有一个明显、清晰和有用的区别。但是,大多数用户(即使是非常能干的系统管理员类型)会对如何回滚/usr而不回滚/var/lib/ accountservices感到非常困惑。如果您真的想这样做,那么这样做是很好的,但是我们不确定这种功能是否会超过一种更简单方法的效用。
 
稍微深入一点看,我们可以看到Eoan并没有在所有这些单独的数据集上设置任何重要的每数据集属性。不过,它在整个池中设置了compression=lz4。这是一件好事——许多人担心压缩的文件系统是慢速文件系统,但是LZ4流压缩是如此轻量级,以至于它实际上是“免费的”。我们在多年的ZFS经验中进行了大量的测试,从来没有见过LZ4不是一个好主意的情况。即使是几年前价值50美元的tinkertoy APU,压缩和解压LZ4的速度也比一对高速ssd快,而且没有显著的CPU利用率。
 
我们在查看池和数据集时确实很快发现了一个bug。bpool本身和bpool/BOOT/ubuntu_oalrlu(我们认为这个看似随机的字符串是一个惟一的系统标识符)都将/BOOT设置为它们的挂载点。这显然没有造成任何重大的问题,现在,我们相信它会得到解决之前Eoan上线。(编辑:一个规范的核心管理员澄清这不是一个错误;bpool被设置为canmount=no。bpool不可挂载的原因是,在bpool下创建的任何新数据集都会自动挂载在/boot/newdataset上,而不是/bpool/newdataset上。)
 
虽然Eoan自动为我的实际用户帐户homedir和root创建了数据集,沐鸣开户测速但是adduser命令并没有为新的测试用户创建数据集。我们也希望能够很快地解决这个问题——即使adduser本身没有采取这些步骤,添加新用户的GUI也可能会这样做(如果它还没有这样做的话)。手动操作也很简单;在上面的例子中,如果新用户测试没有登录,我们可以像这样将测试升级到zfs数据集homedir:
 
我们寻找的下一个重要的东西是自动拍快照的机制。您无法回滚到从未拍过的快照,因此安全的ZFS系统应该定期自动拍快照。Eoan中还没有任何东西可以为您捕获快照—惟一的cron作业是每个月清理池一次的标准作业—但是有一些通用的ZFS快照编制工具可供使用;其中包括zfs-auto-snapshot和我自己的sanoid。
 
阿尔法软件就是阿尔法!
 
总之,我们想提醒读者,虽然ZFS本身非常稳定,但是Ubuntu的ZFS安装程序和使用它作为根文件系统仍然是alpha质量。我们不建议您尝试在您非常关心的系统上使用新的ZFS安装程序,直到安装程序通过了alpha版、beta版,并一直达到完整版的质量。这也意味着你应该对在meantime中发现的任何bug都要小心,这是alpha软件,bug不仅是可能的,而且是可以预料到的。
 
综上所述,我们对root上的ZFS在ubuntu上取得明显进展感到非常兴奋——我们希望这些特性以及更多的特性能够在Eoan Ermine的预期月底发布中出现。