文档首页 > > 移植指南> 移植ZFS> 移植指导

移植指导

分享
更新时间:2020/07/14 GMT+08:00

介绍

简要介绍

ZFS是一个拥有逻辑卷管理功能的文件系统,最早源自于SUN为Solaris操作系统开发的文件系统。ZFS是一个具有高存储容量、文件系统与卷管理概念集成、崭新的磁盘逻辑结构的轻量级文件系统,同时也是一个便捷的存储池管理系统。ZFS是一个使用CDDL许可证授权的开源项目。

语言:C/C++

一句话描述:文件系统

建议的版本

建议使用版本为“zfs-0.8.1”

环境要求

云服务器要求

本文以云服务器KC1实例测试,云服务器配置如表1所示。

表1 云服务器配置

项目

说明

规格

kc1.xlarge.2 | 4vCPUs | 8GB

磁盘

  • 系统盘:高IO(40GB)
  • 数据盘:高IO(40GB)

操作系统要求

操作系统要求如表2所示。

表2 操作系统要求

项目

版本

下载地址

CentOS

7.5

在公共镜像中已提供。

Kernel

4.14.0

在公共镜像中已提供。

配置编译环境

通过华为云发放的弹性云服务器默认已将GCC安装,无需单独安装配置。

  1. 参考ZFS安装指导,安装依赖包。

    yum install autoconf automake libtool rpm-build ksh -y

    yum install zlib-devel libuuid-devel libattr-devel libblkid-devel libselinux-devel libgudev1-devel -y

    yum install libacl-devel libaio-devel device-mapper-devel openssl-devel libtirpc-devel elfutils-libelf-devel -y

    yum install kernel-devel -y

    yum install epel-release -y

    yum install python36 python36-devel python36-setuptools python36-cffi -y

  2. 检查OS版本与kernel-devel是否一致。

    uname -a

    rpm -qa |grep kernel-devel

    回显内容示例如下,关注加粗的内容。

    [root@ecs-0001 ~]# uname -a
    Linux ecs-0001 4.14.0-115.5.1.el7a.aarch64 #1 SMP Mon Feb 4 16:38:08 UTC 2019 aarch64 aarch64 aarch64 GNU/Linux
    [root@ecs-0001 ~]# rpm -qa |grep kernel-devel
    kernel-devel-4.14.0-115.8.1.el7a.aarch64

  3. 如果检查发现kernel-devel版本高于当前OS版本,则需要升级操作系统内核。

    yum upgrade kernel -y

    reboot

  4. 重新检查版本是否一致。

    uname -a

    rpm -qa |grep kernel-devel

    回显内容示例如下,关注加粗的内容。
    [root@ecs-0001 ~]# uname -a
    Linux ecs-0001 4.14.0-115.8.1.el7a.aarch64 #1 SMP Wed Jun 5 15:01:21 UTC 2019 aarch64 aarch64 aarch64 GNU/Linux
    [root@ecs-0001 ~]# rpm -qa |grep kernel-devel
    kernel-devel-4.14.0-115.8.1.el7a.aarch64

获取源码

ZFS源码下载。

wget https://github.com/zfsonlinux/zfs/releases/download/zfs-0.8.1/zfs-0.8.1.tar.gz

编译和安装

tar -zxvf zfs-0.8.1.tar.gz

cd zfs-0.8.1

./configure --build=arm-linux

make -s -j$(nproc)

make install

运行和验证

  1. 加载ZFS内核模块。

    1. 加载ZFS内核模块。

      cd /usr/local/share/zfs/

      ./zfs.sh

    2. 检查ZFS相关内核模块是否加载成功。

      lsmod |grep zfs

      回显内容如下:

      [root@ecs-0001 zfs]# lsmod |grep zfs
      zfs                  3932160  20489422 
      icp                   393216  16532263 zfs
      zlua                  327680  15447843 zfs
      zcommon             262144  14838387 zfs
      zunicode              524288  14039163 zfs
      znvpair               262144  13535480 zcommon,zfs
      zavl                  262144  12979271 zfs
      spl                   262144  11258883 znvpair,zcommon,zfs,icp,zavl

  2. 创建ZFS文件系统。

    1. 创建ZFS存储池。

      “/dev/vdb”必须为未使用过的磁盘,以避免破坏该盘中的原有数据。

      zpool create tank /dev/vdb

    2. 创建ZFS文件系统。

      zfs create tank/test-zfs-01

    3. 通过"mount |grep test-zfs-01" 或 "df -h"查看文件系统是否挂载。
      回显内容如下所示,关注加粗的内容。
      [root@ecs-0001 zfs]# mount |grep test-zfs-01
      tank/test-zfs-01 on /tank/test-zfs-01 type zfs (rw,xattr,noacl)
      [root@ecs-0001 zfs]# df -h
      Filesystem                 Size  Used Avail Use% Mounted on
      devtmpfs                   6.7G     0  6.7G   0% /dev
      tmpfs                      6.7G     0  6.7G   0% /dev/shm
      tmpfs                      6.7G   21M  6.7G   1% /run
      tmpfs                      6.7G     0  6.7G   0% /sys/fs/cgroup
      /dev/vda2                   39G   20G   17G  56% /
      /dev/vda1                 1022M  7.7M 1015M   1% /boot/efi
      //192.168.1.244/FileShare  3.2G   76K  3.2G   1% /tmp/smb
      tmpfs                      1.4G     0  1.4G   0% /run/user/0
      tank                       9.3G  128K  9.3G   1% /tank
      tank/test-zfs-01           9.3G  128K  9.3G   1% /tank/test-zfs-01
    4. 卸载ZFS文件系统。

      zfs umount tank/test-zfs-01

    5. 通过"mount |grep test-zfs-01" 或 "df -h"查看文件系统是否卸载成功。
      回显内容如下所示。
      [root@ecs-0001 zfs]# df -h
      Filesystem                 Size  Used Avail Use% Mounted on
      devtmpfs                   6.7G     0  6.7G   0% /dev
      tmpfs                      6.7G     0  6.7G   0% /dev/shm
      tmpfs                      6.7G   21M  6.7G   1% /run
      tmpfs                      6.7G     0  6.7G   0% /sys/fs/cgroup
      /dev/vda2                   39G   20G   17G  56% /
      /dev/vda1                 1022M  7.7M 1015M   1% /boot/efi
      //192.168.1.244/FileShare  3.2G   76K  3.2G   1% /tmp/smb
      tmpfs                      1.4G     0  1.4G   0% /run/user/0
      tank                       9.3G  128K  9.3G   1% /tank

    6. 挂载ZFS文件系统。

      zfs mount tank/test-zfs-01

    7. 通过"mount |grep test-zfs-01" 或 "df -h"查看文件系统是否挂载成功。

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!非常感谢您的反馈,我们会继续努力做到更好!
反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问