当前位置: 首页 > 科技观察

在Linux上使用yum设置ZFS

时间:2023-03-17 12:31:41 科技观察

使用Fedora上的yum存储库获取最新的ZFS功能。我是FedoraLinux用户,我每天都运行yumupgrade。虽然这个习惯让我可以运行所有最新的软件(“First”,Fedora的四大基础之一,它也是如此),但它也提醒我ZFS存储平台和更新内核之间的不兼容性。作为一名开发人员,有时我需要来自最新ZFS分支的新功能。例如,ZFS2.0.0包含一个令人兴奋的新功能,它大大提高了ZVOL同步性能,这对我作为KVM用户来说至关重要。但这意味着,如果我想使用2.0.0分支,我必须自己构建ZFS。起初,我只是在每次内核更新后从其Git存储库中手动编译ZFS。如果我忘记了,下次启动时将无法识别ZFS。幸运的是,我很快学会了如何为ZFS设置动态内核模块支持(DKMS)。然而,这个解决方案并不完美。首先,它没有利用强大的yum系统来帮助解决依赖关系和升级。此外,使用yum在您自己的包和上游包之间切换非常容易。在本文中,我将演示如何设置yum存储库来打包ZFS。该解决方案有两个步骤:从ZFSGit存储库创建一个RPM包。设置一个yum存储库来托管这些包。创建RPM包要创建RPM包,您需要安装RPM工具链。yum提供了一个组来捆绑安装这些工具:sudodnfgroupinstall'CDevelopmentToolsandLibraries''RPMDevelopmentTools'安装这些之后,您必须安装从ZFSGit存储库构建ZFS所需的所有包。这些包属于三个组:Autotools,用于从平台配置生成构建文件。用于构建ZFS内核和用户空间工具的库。用于构建RPM包的存储库。sudodnfinstalllibtoolautoconfautomakegettextcreaterepo\libuuid-devellibblkid-developenssl-devellibtirpc-devel\lz4-devellibzstd-develzlib-devel\kernel-develelfutils-libelf-devel\libaio-devellibattr-devellibudev\python3-devellibffi-devel现在您已准备好创建自己的包。构建OpenZFSOpenZFS提供了一个优秀的基础设施。要构建它:使用git克隆存储库,然后切换到您希望使用的分支/标签。运行Autotools以生成makefile。运行makerpm,如果一切正常,RPM文件将放在build文件夹中。$gitclone--branch=zfs-2.0.0-rc3zfs$cdzfs$./autogen.sh$./configure$makerpm构建一个yum仓库在yum中,存储库是包含元数据和RPM文件的服务器或本地路径。用户设置一个INI配置文件,yum命令会自动解析元数据并下载相应的软件包。Fedora提供了createrepo工具来设置yum存储库。首先,创建存储库并将ZFS文件夹中的所有RPM文件复制到存储库中。然后运行??createrepo--update将所有包添加到元数据中。$sudomkdir-p/var/lib/zfs.repo$sudocreaterepo/var/lib/zfs.repo$sudocp*.rpm/var/lib/zfs.repo/$sudocreaterepo--update/var/lib/zfs.repo在/etc/yum.repos.d中创建一个新的配置文件以包含存储库路径:$echo\"[zfs-local]\\nname=ZFSLocal\\nbaseurl=file:///var/lib/zfs.repo\\nenabled=1\\ngpgcheck=0"|\sudotee/etc/yum.repos.d/zfs-local.repo$sudodnf--repo=zfs-locallistavailable--refresh终于完成了!您已经有一个可用的yum存储库和ZFS包。现在你只需要安装它们。$sudodnfinstallzfs$sudo/sbin/modprobezfs运行sudozfsversion以查看您的用户空间和内核工具版本。恭喜!你在Fedora中有ZFS。