如何在Ubuntu上安装和使用ZFS(以及为什么要这样做)

官方对ZFS文件系统的支持是Ubuntu16.04的一大特性。它没有默认安装和启用,但在Ubuntu的软件存储库中得到了官方支持和提供。

当您可能想要使用ZFS时

相关:Linux的Z文件系统(ZFS)简介

ZFS是一种高级文件系统,最初由Sun Microsystems为Solaris操作系统创建。虽然ZFS是开源的,但遗憾的是,由于许可的原因,大多数Linux发行版都没有使用它。在ZFS的CDDL许可下获得许可的代码是否与Linux内核的GPL许可兼容,这是一个有争议的问题。不管是哪种情况,都可以从zfsonlinux.org下载到其他不选择包含它的Linux发行版。

组织通常将此文件系统用于较大的服务器,而不是台式PC。它旨在通过防止数据损坏来保护数据完整性。每个文件都有一个校验和,用于验证文件并确保文件没有损坏。它还能够管理ZB级的数据,因此您可以拥有非常大的存储设备--这就是名称中的“Z”最初的来源。ZFS还允许您轻松地将多个驱动器合并到一个更大的单个存储池中,并且可以使用软件RAID处理多个磁盘,因此它不需要特殊的硬件就可以使用标准磁盘执行高级操作。

虽然您可能不想在台式计算机上为此而烦恼,但ZFS对于家庭服务器或网络连接存储(NAS)设备可能很有用。如果您有多个驱动器,并且特别关心服务器上的数据完整性,则ZFS可能是适合您的文件系统。即使在工作站上,也可以使用ZFS将磁盘汇集到单个大型存储池中,而不是将它们分开或依赖LVM。

如何在Ubuntu 16.04上安装ZFS

虽然缺省情况下没有安装ZFS,但安装起来很简单。它得到了Ubuntu的官方支持,因此应该可以正常工作,没有任何问题。然而,它只在64位版本的Ubuntu上得到官方支持,而不是32位版本。

要安装ZFS,请转到终端并运行以下命令:

sudo apt install zfs

就像任何其他应用程序一样,它应该立即安装。

如何创建ZFS池

相关:如何智能使用多个磁盘:RAID简介

ZFS使用“池”的概念。可以从一个或多个物理存储设备创建ZFS池。例如,假设您有三个物理硬盘驱动器。您可以使用以下命令之一将它们合并到单个ZFS存储池中。

下面的命令将创建RAID 0配置,其中数据存储在所有三个磁盘上,没有冗余存储。如果所有物理磁盘中的任何一个出现故障,您的文件系统都将损坏。(因此,很少建议这样做-如果您确实使用它,请确保定期备份池。)

sudo zpool create pool-name /dev/sdb /dev/sdc /dev/sdd

下一个命令创建RAID 1配置,在该配置中,每个磁盘上都存储有数据的完整副本。即使三个磁盘中的两个出现故障,您仍然可以访问所有数据。

sudo zpool create pool-name mirror /dev/sdb /dev/sdc /dev/sdd

无论您选择哪个命令,都可以将pool-name替换为您想要为存储池命名的任何名称。将/dev/sdb/dev/sdc/dev/sdd替换为要合并到池中的磁盘名称列表。

您可以使用sudo fdisk-l命令查找设备名称,该命令将列出您安装的存储设备。

创建一个或多个池后,可以使用以下命令检查ZFS池的状态:

sudo zpool status

默认情况下,该池将挂载在根目录下。因此,如果您创建了一个名为pool-name的池,您将在/pool-name处访问它。

要将另一个磁盘添加到zpool,您可以使用以下命令,提供设备的路径。

sudo zpool add pool-name /dev/sdx

而且,如果要销毁池,可以使用以下命令:

sudo zpool destroy pool-name

这才刚刚开始使用ZFS。从这里开始,您应该了解更高级的文档和命令行选项是怎么回事。要获得更详细的信息,请参考更大的命令参考,如Ubuntu自己的ZFS参考文档和Linux上的ZFS项目文档。

相关文章