Ubuntu 19.10 的主要新特性之一就是 ZFS。如今你能够很容易的无需额外努力就能够在 Ubuntu 系统上安装 ZFS了。linux
通常状况下,安装 Linux 都会选择 Ext4 文件系统。可是若是是全新安装 Ubuntu 19.10,在安装的启动阶段能够看到 ZFS 选项。git
让咱们看看 ZFS 为什么重要,以及如何在已经安装了 ZFS 的 Ubuntu 上使用它。github
ZFS 的设计初衷是:处理海量存储和避免数据损坏。ZFS 能够处理 256 千万亿的 ZB 数据。(这就是 ZFS 的 Z)且它能够处理最大 16 EB 的文件。ubuntu
若是你仅有一个单磁盘的笔记本电脑,你能够体验 ZFS 的数据保护特性。写时复制(COW)特性确保正在使用的数据不会被覆盖,相反,新的数据会被写到一个新的块中,同时文件系统的元数据会被更新到新块中。ZFS 可容易的建立文件系统的快照。这个快照可追踪文件系统的更改,并共享数据块确保节省数据空间。安全
ZFS 为磁盘上的每一个文件分配一个校验和。它会不断的校验文件的状态和校验和。若是发现文件被损坏了,它就会尝试修复文件。bash
我写过一个文章详细介绍 什么是 ZFS以及它有哪些特性。若是你感兴趣能够去阅读下。工具
注:请谨记 ZFS 的数据保护特性会致使性能降低。性能
一旦你在你的主磁盘上全新安装了带有 ZFS 的 Ubuntu,你就能够开始体验它的特性。this
请注意全部的 ZFS 设置过程都须要命令行。我不知道它有任何 GUI 工具。spa
这段仅针对拥有多个磁盘的系统。若是你只有一个磁盘,Ubuntu 会在安装的时候自动建立池。
在建立池以前,你须要为池找到磁盘的 id。你能够用命令 lsblk
查询出这个信息。
为三个磁盘建立一个基础池,用如下命令:
sudo zpool create pool-test /dev/sdb /dev/sdc /dev/sdd
复制代码
请记得替换 pool-test
为你选择的的命名。
这个命令将会设置“无冗余 RAID-0 池”。这意味着若是一个磁盘被破坏或有故障,你将会丢失数据。若是你执行以上命令,仍是建议作一个常规备份。
你能够用下面命令将另外一个磁盘增长到池中:
sudo zpool add pool-name /dev/sdx
复制代码
你能够用这个命令查询新建池的状态:
sudo zpool status pool-test
复制代码
为确保数据的安全性,你能够建立镜像。镜像意味着每一个磁盘包含一样的数据。使用镜像设置,你可能会丢失三个磁盘中的两个,而且仍然拥有全部信息。
要建立镜像你能够用下面命令:
sudo zpool create pool-test mirror /dev/sdb /dev/sdc /dev/sdd
复制代码
快照容许你建立一个后备,以防某个文件被删除或被覆盖。好比,咱们建立一个快照,当在用户主目录下删除一些目录后,而后把它恢复。
首先,你须要找到你想要的快照数据集。你能够这样作:
zfs list
复制代码
你能够看到个人家目录位于 rpool/USERDATA/johnblood_uwcjk7
。
咱们用下面命令建立一个名叫 1910
的快照:
sudo zfs snapshot rpool/USERDATA/johnblood_uwcjk7@1019
复制代码
快照很快建立完成。如今你能够删除 Downloads
和 Documents
目录。
如今你用如下命令恢复快照:
sudo zfs rollback rpool/USERDATA/johnblood_uwcjk7@1019
复制代码
回滚的时间长短取决于有多少信息改变。如今你能够查看家目录,被删除的目录(和它的内容)将会被恢复过来。
这篇文章仅简单介绍的 Ubuntu下 ZFS 的用法。更多的信息请参考 Ubuntu 的 ZFS Wiki页面。我也推荐阅读 ArsTechnica 的精彩文章。
这个是试验性的功能。若是你还不了解 ZFS,你想用一个简单稳定的系统,请安装标准文件系统 EXT4。若是你想用闲置的机器体验,能够参照上面了解 ZFS。若是你是一个“专家”,而且知道本身在作什么,则能够随时随地随意尝试ZFS。
你以前用过 ZFS 吗?请在下面留言。
做者:John Paul 选题:lujun9972 译者:guevaraya 校对:wxy
know in the comments below. If you found this article interesting, please take a minute to share it on social media, Hacker News or Reddit.