Linux 用户必看:通过文件压缩轻松创建高效 ZFS 文件系统的方法
【摘要】 ZFS 文件系统在 Linux 上得到了更广泛的认可。在 ZFS 中,您可以在文件系统级别启用压缩。这将以压缩格式存储数据,这将节省大量磁盘空间。在本文中,我们将解释如何从 ZFS 存储池创建文件系统并在 ZFS 上启用压缩。
ZFS 文件系统在 Linux 上得到了更广泛的认可。
在 ZFS 中,您可以在文件系统级别启用压缩。这将以压缩格式存储数据,这将节省大量磁盘空间。
在本文中,我们将解释如何从 ZFS 存储池创建文件系统并在 ZFS 上启用压缩。
在本系列的第一部分,我们解释了ZFS 的基础知识,以及如何在 linux 上安装 ZFS。我们还创建了一个 ZFS 池。
创建 ZFS 文件系统
首先,使用 zfs list 命令查看当前所有的 ZFS 文件系统,如下所示。在此示例中,我们当前有一个 ZFS 文件系统。
# zfs list
NAME USED AVAIL REFER MOUNTPOINT
mypool 170K 5.84G 30K /mypool
mypool/fs1 30K 5.84G 30K /mypool/fs1
现在,使用 zfs create 命令创建一个新的 ZFS 文件系统。
# zfs set quota=1G mypool/fs1
如下所示,新的 ZFS 文件系统现已成功创建。
# zfs 列表
使用的名称 AVAIL REFER MOUNTPOINT
mypool 170K 5.84G 30K /mypool
mypool/fs1 30K 5.84G 30K /mypool/fs1
设置 ZFS 报价和预订
创建 ZFS 文件系统时,默认情况下它会占用池中的所有空间。因此,您必须为文件系统指定配额和预留。
要设置报价,请使用 zfs set 命令,如下所示。在这里,我们将此文件系统的配额指定为 1GB。
# zfs 设置配额=1G mypool/fs1
接下来,设置文件系统的预留。在这个例子中,fs1 在 5.59G 中保留了 256M,这样没有人可以使用这个空间,如果有可用空间,它也可以根据我们设置的配额扩展到 1G。
# zfs set reservation=256M mypool/fs1
# zfs list
NAME USED AVAIL REFER MOUNTPOINT
mypool 256M 5.59G 32.5K /mypool
mypool/fs1 30K 1024M 30K /mypool/fs1
创建 ZFS 备用挂载点
除了使用“mypool/fs1”名称来安装它,您还可以使用您希望文件系统的任何名称设置替代安装点。
例如,以下命令会将挂载点设置为“/testmnt”,而不是“mypool/fs1”。
# zfs set mountpoint=/testmnt mypool/fs1
正如我们从以下输出中看到的,第一列 NAME 表示 ZFS 文件系统的真实名称。最后一列 MOUNTPOINT 表示我们在上面创建的替代挂载点。
# zfs list
NAME USED AVAIL REFER MOUNTPOINT
mypool 256M 5.59G 32.5K /mypool
mypool/fs1 30K 1024M 30K /testmnt
当您执行 df 命令时,您将看到如下所示的替代挂载点。
# df -h
Filesystem Size Used Avail Use% Mounted on
..
mypool 5.6G 128K 5.6G 1% /mypool
mypool/fs1 1.0G 128K 1.0G 1% /testmnt
在 ZFS 文件系统上启用压缩
要在 ZFS 数据集上设置压缩,您可以设置压缩属性,如下所示。设置此属性后,将压缩存储在此 ZFS 文件系统上的所有大文件。
# zfs set compression=lzjb mypool/fs1
以下是有效的压缩属性:
on
off
lzjb
gzip
gzip[1-9]
zle
您也可以在现有文件系统上启用压缩。在这种情况下,压缩将仅应用于新的和修改的数据;并且任何现有数据都将保持未压缩状态。
验证 ZFS 压缩
在以下示例中,我们已将 61M 的 tar 文件复制到安装在 /testmnt 下的 ZFS 文件系统 mypool/fs1。
# ls -lh /testmnt/test.tar
-rw-r--r--. 1 root root 61M Nov 11 09:44 /testmnt/test.tar
如果您从 zfs list 命令查看 USED 空间的总大小,您将看到仅消耗了 20.9M 空间,这表明压缩已打开并正在工作。
# zfs list
NAME USED AVAIL REFER MOUNTPOINT
mypool 256M 5.59G 32.5K /mypool
mypool/fs1 20.9M 1003M 20.9M /testmnt
您还可以使用以下命令获取压缩比。
# zfs get compressratio mypool/fs1
NAME PROPERTY VALUE SOURCE
mypool/fs1 compressratio 2.90x -
除了压缩之外,ZFS 文件系统还有几个高级特性。在 ZFS 系列的下一篇文章中,我们将讨论如何获取 ZFS 克隆和快照。
链接:https://bbs.huaweicloud.com/blogs/379559
(版权归华为云社区原作者所有,侵删)
微信扫码关注该文公众号作者