良许Linux教程网 干货合集 在 Linux 上运行 ZFS

在 Linux 上运行 ZFS

在 Linux 上运行 ZFS

尽管 ZFS 所属的操作系统未来有一定的风险,但是不妨碍它成为最先进、功能最丰富的文件系统之一,下面良许教程网为大家分享一下在 Linux 上运行 ZFS的教程。

ZFS简介:

  • ZFS是一款128bit文件系统,总容量是现有64bit文件系统的1.84×1019倍,其支持的单个存储卷容量达到16EiB(264byte,即 16x1024x1024TB);

  • 一个zpool存储池可以拥有264个卷,总容量最大256ZiB(278byte);整个系统又可以拥有2^64个存储 池。

  • 可以说在相当长的未来时间内,ZFS几乎不太可能出现存储空间不足的问题。

系统信息

 cat /etc/os-release

登录后复制

 NAME="Ubuntu"
 VERSION="18.04.2 LTS (Bionic Beaver)"
 ID=ubuntu
 ID_LIKE=debian
 PRETTY_NAME="Ubuntu 18.04.2 LTS"
 VERSION_ID="18.04"

磁盘信息

本文中使用三块1T的ssd固态盘进行操作,磁盘信息如下:

登录后复制

 Disk /dev/sdb: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors
 Disk /dev/sdc: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors
 Disk /dev/sdd: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors

说明⚠️:本文着重对 ZFS 部署和基本使用进行详细说明,关于ZFS的相关概念,请详见本文最后的参考文档链接~

安装 ZFS 服务

 apt install zfsutils-linux -y
 apt install nfs-kernel-server

创建pool池

在 ZFS 中,pool池相当于 RAID 。pool池的创建和使用非常的简单和灵活,ZFS提供了很多的参数可供我们去选择。

创建不同使用场景的pool池

  • (1) ZFS 实现 RAID0,只需创建一个普通的池:sudo zpool create your-pool /dev/sdb /dev/sdc /dev/sdd

  • (2) ZFS 中使用 mirror 关键字来实现 RAID1 功能:sudo zpool create your-pool mirror /dev/sdb /dev/sdc

  • (3) ZFS 将 RAID5 功能实现为 RAIDZ1:sudo zpool create your-pool raidz1 /dev/sdb /dev/sdc /dev/sdd

  • (4) ZFS 将 RAID6 功能实现为 RAIDZ2:sudo zpool create your-pool raidz2 /dev/sdb /dev/sdc /dev/sdd /dev/sde

  • (5) ZFS 将 RAID6 功能实现为双 mirror 关键字:sudo zpool create your-pool mirror /dev/sdc /dev/sdd mirror /dev/sde /dev/sdf

说明⚠️:

  • (1)本文着重讲解 ZFS 部署和基本使用,关于 RAID 相关概念和知识点,请详见本文最后的参考文档链接~

  • (2)使用 RAID1,磁盘的使用率只用50%;

  • (3)使用 RAID5 要求磁盘至少是 3 块;

  • (4)RAID6 与 RAID5 几乎完全相同,但它至少需要四块盘;

  • (5)RAID10 至少需要四块盘,但只能使用一半的空间,即磁盘使用率为50%;

实战创建 RAIDZ1 类的pool

主要步骤如下:

(1)查看裸盘 ID 号:ll /dev/disk/by-id/,详细信息如下示例:

登录后复制

 wwn-0x5002498e20d23d09 -> ../../sdb
 
 wwn-0x5002498e29d76d78 -> ../../sdc
 
 wwn-0x5002498e27d45d91 -> ../../sdd

(2)创建 RAIDZ1 类的pool池

 sudo zpool create -f data_ssd raidz wwn-0x5002498e20d23d09 wwn-0x5002498e29d76d78 wwn-0x5002498e27d45d91

说明⚠️:我们可以通过df -h命令查看到 data_pool 池已经创建并挂载,截取关键信息如下:

 data_ssd 1.8T 128K 1.8T 1% /data_ssd

有几点信息需要注意下:

  • 原裸盘数量是3块,总共大小为3T,磁盘的可使用空间为2T左右。这是因为我们采用的是 RAIDZ1 (相当于RAID5);

  • 挂载路径 /data_ssd 无需提前创建;

(3)查看 pool 池状态

sudo zpool status,详细信息如下:

pool: data_ssd
 state: ONLINE
  scan: none requested
config:

    NAME                        STATE     READ WRITE CKSUM
    data_ssd                    ONLINE       0     0     0
      raidz1-0                  ONLINE       0     0     0
        wwn-0x5002498e20d23d09  ONLINE       0     0     0
        wwn-0x5002498e29d76d78  ONLINE       0     0     0
        wwn-0x5002498e27d45d91  ONLINE       0     0     0

errors: No known data errors

(4)启用 pool 池压缩功能

zfs set compression=on data_ssd

(5)启用 pool 池共享功能

zfs set sharenfs=on data_ssd

启用共享功能后,ZFS 文件系统可以像 NFS 和SMB 那样共享给远程主机使用~

(6)查看存储池的属性

sudo zfs get all data_ssd,简单列出几行以供参考:

NAME      PROPERTY              VALUE                  SOURCE
data_ssd  type                  filesystem             -
data_ssd  creation              Thu Aug 15  7:07 2019  -
data_ssd  used                  21.5G                  -
data_ssd  available             1.73T                  -
data_ssd  referenced            30.6K                  -
data_ssd  compre***atio         1.00x                  -
data_ssd  mounted               yes                    -
data_ssd  quota                 none                   default
data_ssd  reservation           none                   default
data_ssd  recordsize            128K                   default
data_ssd  mountpoint            /data_ssd              default
data_ssd  sharenfs              on                     local
data_ssd  checksum              on                     default
data_ssd  compression           on                     local

说明⚠️:我们可以看到compre***atiosharenfs均是可用状态~

(7)创建 ZFS 文件系统

zfs create data_ssd/test

说明⚠️:挂载路径 /data_ssd/test 无需提前创建

(8)查看 ZFS 文件系统信息

zfs get all data_ssd/test

(9)关闭 ZFS 文件系统压缩功能

zfs set compression=off data_ssd/test

(10)查看 ZFS 池和文件系统空间使用信息

zfs list`或`zfs list data_ssd/test

(11)删除 ZFS 文件系统

zfs destroy data_ssd/test

(12)删除 ZFS 池

zpool destroy data_ssd

扩展

  • 查看系统上某块盘的SN码,如 sdc 这块盘:hdparm -i /dev/sdc

  • 测试关闭/启用 ZSF 压缩功能,磁盘读写速度:

time dd if=/dev/zero bs=1024000 count=100000 of=100GB.file

至此关于在 Linux 上运行 ZFS的教程分享结束,大家有任何问题都可以通过评论区将问题提加给我们。

以上就是良许教程网为各位朋友分享的Linux系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你!

137e00002230ad9f26e78-265x300

本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

电子邮件地址不会被公开。 必填项已用*标注

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部