ZFS是一个组合文件系统,也是一个逻辑卷管理器,提供了类似于RAID的功能,并具有数据完整性和简化的存储管理。它允许您存储和管理大量数据。它最初是在Sun Microsystems上创建的,现在是OpenZFS项目的一部分。现在,它已被移植到其他操作系统,包括FreeBSD,Linux和Mac OSX。 ZFS存储池可以处理大量数据,可为您扩展on-site云解决方案。
在本文中,我们将向您展示如何安装ZFS以及如何设置ZFS存储池。但是,在执行此过程之前,让我们看一下它的功能:
ZFS的功能
ZFS的一些功能如下:
- 集中存储
- 开源的
- Copy-on-write
- 加密
- 快照
- 持续完整性检查
- 高效的数据压缩
- 数据完整性验证和自动修复
我们将使用Ubuntu 18.04 LTS来描述本文提到的过程。
在Ubuntu上安装ZFS
要在Ubuntu 18.04 LTS上安装ZFS,请按以下步骤启动终端Ctrl + Alt + T然后在其中键入以下命令:
$ sudo apt install zfsutils-linux
等待一段时间,直到安装完成。
要验证安装,请在终端中运行以下命令:
$ whereis zfs
您将看到类似于以下的输出。
创建ZFS存储池
安装后,我们将创建一个驱动器池。创建ZFS存储池的第一步是知道要创建哪种类型的池。然后决定将哪些驱动器放入存储池。
1.选择ZFS池类型
您可以创建两种类型的池:
条纹泳池
在条带化池中,数据副本存储在所有驱动器上。您可以获得合并的存储空间和更快的读写速度。但是,如果一个驱动器发生故障,您将丢失所有数据。
镜像池
在镜像池中,单个完整的数据副本存储在所有驱动器上。如果一个驱动器发生故障,您仍然可以访问您的数据。
2.选择要合并的驱动器
现在,我们必须确定系统上可用的驱动器池。要查找驱动器,请在终端中运行以下命令:
$ sudo fdisk –l
从fdisk命令的输出中,记下驱动器的名称,这些名称应类似于sda,sdb,sdc。
在我们的方案中,我们有两个可用的驱动器,分别是sdb和sdc。我将使用这两个驱动器创建一个存储池。
3.创建池
确定了池类型和需要池的驱动器后,下一步就是使用Linux中可用的zpool命令从上述驱动器集中创建一个池,该命令用于在ZFS中配置存储池。
要创建条带化池,请在终端中运行以下命令:
$ sudo zpool create <pool_name> <drive1> <drive2>
要创建镜像池,请在终端中运行以下命令:
$ sudo zpool <pool_name> mirror <drive1> <drive2>
您可以根据存储要求创建任何池。我们将使用上面的命令创建一个镜像池:
创建池之后,可以使用以下命令验证zpool的详细状态:
# zpool status
要查看池运行状况和空间使用情况,请在终端中使用以下命令。此命令还显示为存储池选择的磁盘。以后可以添加更多驱动器以进一步增加冗余。
$ zpool list
现在运行df –h,您会注意到新创建的池将自动安装在安装点。
您刚创建的池的大小为1.9 G,并且已在默认安装点安装/new-pool。如果需要,可以使用以下语法更改安装点:
$ sudo zfs set mountpoint=<path> <pool_name>
例如,我们要设置/usr /share /pool作为新的挂载点。为此,我们将使用以下命令:
$ sudo zfs set mountpoint=/usr/share/pool new-pool
要验证安装点是否已成功更改,请使用df -h命令
从以上结果中,您可以看到安装点已成功更改为新的安装点/usr /share /pool..
现在已经创建了存储池,我们现在将创建数据集并将所有内容保留在这些数据集中。这些数据集就像目录一样,并且具有安装点。
要创建数据集,请在终端中运行以下命令:
$ sudo zfs create <pool_name>/directory_name
例如,我要创建名为docs在我的存储池下。我将使用以下命令:
$ sudo zfs create new-pool/docs
我们刚刚创建的数据集将自动以名称挂载/new-pool /docs在安装点/usr /share /pool我们可以通过使用df -h命令。
$ df -h
删除ZFS池
如果要删除池,则可以使用zpool destroy命令,如下所示:
# zpool destroy pool_name
这就是我们在Ubuntu 18.04 LTS中设置ZFS存储池所需的全部。现在,您可以开始将文件存储在新创建的池中。这是一个功能强大的文件系统,您可以在处理存储负载时使用。