DIY NAS系列08 — ZFS 卷管理
本文最后更新于 344 天前,其中的信息可能已经有所发展或是发生改变。

ZFS 卷简介

ZFS 一个强大的文件系统,除了提供文件级别的存储服务,还能作为块设备提供存储服务,这就是我们所称的 ZFS 卷(ZFS Volume)。ZFS 卷,也被称作 ZVOL,是一种模拟块设备的数据集。ZVOL 可以被操作系统识别并视为一种物理磁盘,这使得您可以在 ZVOL 上创建文件系统,甚至可以在其上安装操作系统。

和普通的文件系统数据集一样,ZVOL 继承了父数据集的所有属性,包括压缩,预读取,以及重复数据删除等。除此之外,ZVOL 还有一些额外的特性。例如,您可以为 ZVOL 设置一个可选的块大小,这对于某些需要特定块大小的应用(如数据库)非常有用。而对于一些需要磁盘镜像或虚拟磁盘的应用,如虚拟机或 Docker 容器,ZVOL 更是一个理想的选择。

ZVOL 的创建非常简单,仅需执行一行命令。比如,我们要在存储池 mypool 中创建一个名为 myvolume 的 ZVOL,命令如下:

zfs create -V 10G mypool/myvolume

上述命令中的 -V 选项指定了 ZVOL 的大小,上例中为 10 GB。在创建 ZVOL 后,它将在/dev/zvol 路径下出现,您可以像使用其他块设备一样使用它。

通过 ZFS 提供的卷,我们能够更好地控制块存储,并利用 ZFS 的强大功能,如快照、压缩和重复数据删除等。而这些功能在传统的块设备中往往无法得到。这就是 ZFS 卷为什么如此强大且独特的原因。

在接下来的文章中,我们将深入探讨如何管理 ZFS 卷,以及它在不同场景下的应用。

ZFS 卷

在 ZFS 上创建卷主要提供给虚拟机等使用。

# 创建卷
[root@localhost SSD]# zfs create -V 1G SSD/myvolume

# 查看卷信息,这里可以看到SSD/myvolume占用了1.03G空间。
[root@localhost SSD]# zfs list 
NAME           USED  AVAIL     REFER  MOUNTPOINT
SSD           1.03G  3.52T     35.9K  /SSD
SSD/myvolume  1.03G  3.52T     19.2K  -
[root@localhost SSD]# zfs list SSD/myvolume
NAME           USED  AVAIL     REFER  MOUNTPOINT
SSD/myvolume  1.03G  3.52T     19.2K  -

# 删除卷
[root@localhost SSD]# zfs destroy SSD/myvolume
[root@localhost SSD]# zfs list 
NAME   USED  AVAIL     REFER  MOUNTPOINT
SSD    237K  3.52T     35.9K  /SSD

# 使用 ZFS 卷
# ZFS 卷是块设备,使用前需要用文件系统对其进行格式化。例如,您可以使用 ext4 文件系统格式化 ZFS 卷并将其挂载以使用此存储。
[root@localhost /]# mkfs.ext4 /dev/zvol/SSD/myvolume 
mke2fs 1.46.5 (30-Dec-2021)
Discarding device blocks: done                            
Creating filesystem with 262144 4k blocks and 65536 inodes
Filesystem UUID: b7f5c9fd-a702-422d-ae79-35f366191a39
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done

# 创建挂载点
[root@localhost /]# mkdir /mnt/myvolume

# 挂载,这样就可以正常使用了
[root@localhost /]# mount /dev/zvol/SSD/myvolume /mnt/myvolume/
[root@localhost /]# df -lh
Filesystem           Size  Used Avail Use% Mounted on
devtmpfs             4.0M     0  4.0M   0% /dev
tmpfs                7.7G     0  7.7G   0% /dev/shm
tmpfs                3.1G  8.8M  3.1G   1% /run
/dev/mapper/rl-root   70G  3.7G   67G   6% /
/dev/sdb2           1014M  303M  712M  30% /boot
/dev/sdb1            599M  7.0M  592M   2% /boot/efi
/dev/mapper/rl-home  145G  1.1G  144G   1% /home
tmpfs                1.6G  4.0K  1.6G   1% /run/user/0
SSD                  3.6T  128K  3.6T   1% /SSD
SSD/my_clone         3.6T  128K  3.6T   1% /SSD/my_clone
/dev/zd0             974M   24K  907M   1% /mnt/myvolume

[root@localhost /]# echo "1234" > /mnt/myvolume/1.txt
[root@localhost /]# ls -l /mnt/myvolume/
total 20
-rw-r--r-- 1 root root     5 Jun 15 21:22 1.txt
drwx------ 2 root root 16384 Jun 15 21:19 lost+found

写在最后

在本篇文章中,我们深入了解了 ZFS 卷(ZVOL)的概念和功能,并学习了如何创建和使用 ZVOL。ZFS 卷是一种强大的工具,它既能作为普通的块设备使用,又具有 ZFS 提供的强大特性,如压缩、预读取和重复数据删除等。对于需要特定块大小的应用,如数据库,或需要磁盘镜像的应用,如虚拟机或 Docker 容器,ZVOL 提供了一个理想的解决方案。

在下一篇文章中,我们将探讨如何使用 ZFS 配置 NFS 共享。NFS(网络文件系统)是一种分布式文件系统协议,它允许网络中的计算机共享其文件系统。通过将 ZFS 和 NFS 结合使用,我们不仅可以提供高效、可靠的存储服务,还可以在网络中共享这些服务。我们将会探讨 ZFS 如何实现这种集成,并学习如何配置和使用 ZFS 提供的 NFS 共享。

下篇预告: DIY NAS系列09 — ZFS 配置 NFS 共享

Avatar photo

关于 木子

Founder of the Rocky Linux Chinese community, MVP、VMware vExpert、TVP, advocate for cloud native technologies, with over ten years of experience in site reliability engineering (SRE) and the DevOps field. Passionate about Cloud Computing、Microservices、CI&CD、DevOps、Kubernetes, currently dedicated to promoting and implementing Rocky Linux in Chinese-speaking regions.
用一杯咖啡支持我们,我们的每一篇[文档]都经过实际操作和精心打磨,而不是简单地从网上复制粘贴。期间投入了大量心血,只为能够真正帮助到您。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇