Linux|操作系统|最新版zfs编译后的适用于centos7的rpm安装包完全离线安装介绍

一、

前期回顾

书接上回, https://blog.csdn.net/alwaysbefine/article/details/160787794 Linux|操作系统|zfs文件系统的使用详解

发现在虚拟机内编译产出的rpm安装包在安装的过程中还是有一些问题,比如内核版本的需求,gcc的版本要求这些,因此,重新编译了zfs文件系统的rpm安装包,重新编译产出的zfs文件系统的rpm安装包去掉了对kernel内核版本的强校验,并基于原来的测试环境的yum源,同步制作的离线yum安装zfs文件系统的源。

经过几版的改进后,现在已基本可以做到一键在centos7系统下完全离线安装完成zfs文件系统,现对如何使用此rpm包做一个详细的介绍。

通过网盘分享的文件:zfs文件系统
链接: https://pan.baidu.com/s/1hBs5xTSkaxhRVORu9AiP-g 提取码: msw7
--来自百度网盘超级会员v7的分享

只需要用到上面标红的两个文件

二、

centos7内核升级

虽然z fs文件系统的rpm安装包 将安装时的kernel内核版本检测关闭了,但如果内核版本低于4.18,仍会不能正常工作,因此,建议内核编译安装4.18以上版本

本次实验使用的是5.4.69,推测其它版本的内核应该也是没有问题的,centos7版本是7.7.1908:

bash 复制代码
[root@centos1 ~]# cat /etc/redhat-release 
CentOS Linux release 7.7.1908 (Core)
[root@centos1 ~]# uname -a
Linux centos1 3.10.0-1062.el7.x86_64 #1 SMP Wed Aug 7 18:08:02 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

上面提供的zfs-2.4.1-newrpm.tar.gz这个文件解压后,就放置在root目录下,将其它的yum源移除后,配置如下离线yum源:

bash 复制代码
[dsfsdaf]
name=dsfdsfsd
baseurl=file:///root/zfs-rpm
enable=1
gpgcheck=0

yum源配置好后,yum makecache 缓存一下,以提高后面的使用效率

这一部分简略说一下内核升级步骤(将Linux内核源码解压后,进入该源码目录后,先移除旧的内核开发环境,然后,yum install 安装内核编译环境,生成内核编译文件,编译内核命令执行,执行完毕后设置默认内核后,重启服务器,应用新内核):

bash 复制代码
yum remove -y kernel-tools kernel-tools-libs
yum install libevent libevent-devel libtool gcc gcc-c++  systemd-devel  zlib-devel libuuid-devel libblkid-devel libattr-devel libtirpc-devel openssl-devel bc ncurses-devel bison elfutils-libelf-devel flex -y#内核编译的编译环境准备
cp /boot/config-$(uname -r) .config
make -j `nproc` && make modules_install && make install#编译内核命令

# 查看新内核的菜单项,内核编译后重启服务器,设置默认内核
awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg | nl
# 通常新内核(5.19.11)是第 1 项(索引 0)
grub2-set-default 0
grub2-mkconfig -o /boot/grub2/grub.cfg

等待服务器重启完毕后,查看Linux内核版本,确认内核升级完毕:

bash 复制代码
[root@centos1 ~]# uname -a
Linux centos1 5.4.69 #1 SMP Sun May 17 20:10:49 CST 2026 x86_64 x86_64 x86_64 GNU/Linux

三、

zfs文件系统的rpm安装

这个安装就非常简单了,进入zfs-rpm目录后,执行如下命令安装zfs文件系统即可:

bash 复制代码
yum install zfs* -y

其中部分日志如下:

bash 复制代码
Transaction Summary
================================================================================================
Install  6 Packages (+29 Dependent packages)

Total size: 163 M
Total download size: 32 M
Installed size: 261 M
Downloading packages:
------------------------------------------------------------------------------------------------
Total                                                           227 MB/s |  32 MB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : python3-libs-3.6.8-21.el7_9.x86_64                                          1/35 
  Installing : python3-pip-9.0.3-8.el7.noarch                                              2/35 
  Installing : python3-setuptools-39.2.0-10.el7.noarch                                     3/35 
  Installing : python3-3.6.8-21.el7_9.x86_64                                               4/35 
  Installing : libnvpair3-2.4.1-1.el7.x86_64                                               5/35 
  Installing : boost-system-1.53.0-28.el7.x86_64                                           6/35 
  Installing : boost-thread-1.53.0-28.el7.x86_64                                           7/35 
  Installing : daxctl-libs-65-6.el7_9.x86_64                                               8/35 
  Installing : boost-random-1.53.0-28.el7.x86_64                                           9/35 
  Installing : libpmem-1.5.1-2.1.el7.x86_64                                               10/35 
  Installing : libuutil3-2.4.1-1.el7.x86_64                                               11/35 
  Installing : boost-iostreams-1.53.0-28.el7.x86_64                                       12/35 
  Installing : 1:librados2-10.2.5-4.el7.x86_64                                            13/35 
  Installing : rdma-core-22.4-6.el7_9.x86_64                                              14/35 
  Installing : libibverbs-22.4-6.el7_9.x86_64                                             15/35 
  Installing : librdmacm-22.4-6.el7_9.x86_64                                              16/35 
  Installing : 1:librbd1-10.2.5-4.el7.x86_64                                              17/35 
  Installing : libzfs7-2.4.1-1.el7.x86_64                                                 18/35 
  Installing : ndctl-libs-65-6.el7_9.x86_64                                               19/35 
  Installing : libpmemblk-1.5.1-2.1.el7.x86_64                                            20/35 
  Installing : fio-3.7-2.el7.x86_64                                                       21/35 
  Installing : libzpool7-2.4.1-1.el7.x86_64                                               22/35 
  Installing : libreport-filesystem-2.1.11-53.el7.centos.x86_64                           23/35 
  Installing : mdadm-4.1-9.el7_9.x86_64                                                   24/35 
  Installing : kernel-ml-devel-5.19.11-1.el7.elrepo.x86_64                                25/35 
  Installing : dkms-3.0.12-1.el7.noarch                                                   26/35 
Running pre installation script: /var/tmp/rpm-tmp.VcS8c1. Parameters: 1
  Installing : zfs-dkms-2.4.1-1.el7.noarch                                                27/35 
Running post installation script: /var/tmp/rpm-tmp.W9ywcl. Parameters: 1
Adding zfs dkms modules version 2.4.1 to dkms.
Creating symlink /var/lib/dkms/zfs/2.4.1/source -> /usr/src/zfs-2.4.1
Installing zfs dkms modules version 2.4.1 for the current kernel.
Sign command: /lib/modules/5.4.69/build/scripts/sign-file
Signing key: /var/lib/dkms/mok.key
Public certificate (MOK): /var/lib/dkms/mok.pub
Certificate or key are missing, generating self signed certificate for MOK...

Running the pre_build script:
checking for gawk... gawk
checking metadata... META file
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking target system type... x86_64-pc-linux-gnu
checking whether to enable maintainer-specific portions of Makefiles... no
checking whether make supports nested variables... yes
checking for a BSD-compatible install... /bin/install -c
checking whether sleep supports fractional seconds... yes
checking filesystem timestamp resolution... 0.01
checking whether build environment is sane... yes

这里说的是系统自制dkms模块,最终主要生成了zfs.ko 和spl.ko 这两个关键文件

bash 复制代码
config.status: executing po-directories commands

Building module:
Cleaning build area...
make -j16 KERNELRELEASE=5.4.69..............
Signing module /var/lib/dkms/zfs/2.4.1/build/module/zfs.ko
Signing module /var/lib/dkms/zfs/2.4.1/build/module/spl.ko

Running the post_build script:
Cleaning build area...

zfs.ko:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/5.4.69/extra/

spl.ko:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/5.4.69/extra/
depmod.......
  Installing : lm_sensors-libs-3.4.0-8.20160601gitf9185e5.el7_9.1.x86_64                  28/35 
  Installing : sysstat-10.1.5-20.el7_9.x86_64                                             29/35 
  Installing : zfs-2.4.1-1.el7.x86_64                                                     30/35 
  Installing : ksh-20120801-144.el7_9.x86_64                                              31/35 
  Installing : zfs-test-2.4.1-1.el7.x86_64                                                32/35 
  Installing : zfs-dracut-2.4.1-1.el7.noarch                                              33/35 
  Installing : zfs-kmod-debuginfo-2.4.1-1.el7.x86_64                                      34/35 
  Installing : zfs-debuginfo-2.4.1-1.el7.x86_64                                           35/35 
  Verifying  : 1:librbd1-10.2.5-4.el7.x86_64                                               1/35 
  Verifying  : python3-3.6.8-21.el7_9.x86_64                                               2/35 
  Verifying  : boost-thread-1.53.0-28.el7.x86_64                                           3/35 
  Verifying  : zfs-test-2.4.1-1.el7.x86_64                                                 4/35 
  Verifying  : rdma-core-22.4-6.el7_9.x86_64                                               5/35 
  Verifying  : dkms-3.0.12-1.el7.noarch                                                    6/35 
  Verifying  : ksh-20120801-144.el7_9.x86_64                                               7/35 
  Verifying  : libibverbs-22.4-6.el7_9.x86_64                                              8/35 
  Verifying  : python3-pip-9.0.3-8.el7.noarch                                              9/35 
  Verifying  : zfs-dracut-2.4.1-1.el7.noarch                                              10/35 
  Verifying  : boost-iostreams-1.53.0-28.el7.x86_64                                       11/35 
  Verifying  : libzfs7-2.4.1-1.el7.x86_64                                                 12/35 
  Verifying  : libuutil3-2.4.1-1.el7.x86_64                                               13/35 
  Verifying  : python3-libs-3.6.8-21.el7_9.x86_64                                         14/35 
  Verifying  : sysstat-10.1.5-20.el7_9.x86_64                                             15/35 
  Verifying  : libpmem-1.5.1-2.1.el7.x86_64                                               16/35 
  Verifying  : zfs-debuginfo-2.4.1-1.el7.x86_64                                           17/35 
  Verifying  : boost-system-1.53.0-28.el7.x86_64                                          18/35 
  Verifying  : fio-3.7-2.el7.x86_64                                                       19/35 
  Verifying  : boost-random-1.53.0-28.el7.x86_64                                          20/35 
  Verifying  : zfs-dkms-2.4.1-1.el7.noarch                                                21/35 
  Verifying  : 1:librados2-10.2.5-4.el7.x86_64                                            22/35 
  Verifying  : daxctl-libs-65-6.el7_9.x86_64                                              23/35 
  Verifying  : libpmemblk-1.5.1-2.1.el7.x86_64                                            24/35 
  Verifying  : lm_sensors-libs-3.4.0-8.20160601gitf9185e5.el7_9.1.x86_64                  25/35 
  Verifying  : python3-setuptools-39.2.0-10.el7.noarch                                    26/35 
  Verifying  : zfs-2.4.1-1.el7.x86_64                                                     27/35 
  Verifying  : librdmacm-22.4-6.el7_9.x86_64                                              28/35 
  Verifying  : ndctl-libs-65-6.el7_9.x86_64                                               29/35 
  Verifying  : libzpool7-2.4.1-1.el7.x86_64                                               30/35 
  Verifying  : kernel-ml-devel-5.19.11-1.el7.elrepo.x86_64                                31/35 
  Verifying  : libreport-filesystem-2.1.11-53.el7.centos.x86_64                           32/35 
  Verifying  : zfs-kmod-debuginfo-2.4.1-1.el7.x86_64                                      33/35 
  Verifying  : mdadm-4.1-9.el7_9.x86_64                                                   34/35 
  Verifying  : libnvpair3-2.4.1-1.el7.x86_64                                              35/35 

Installed:
  zfs.x86_64 0:2.4.1-1.el7                          zfs-debuginfo.x86_64 0:2.4.1-1.el7          
  zfs-dkms.noarch 0:2.4.1-1.el7                     zfs-dracut.noarch 0:2.4.1-1.el7             
  zfs-kmod-debuginfo.x86_64 0:2.4.1-1.el7           zfs-test.x86_64 0:2.4.1-1.el7               

Dependency Installed:
  boost-iostreams.x86_64 0:1.53.0-28.el7                                                        
  boost-random.x86_64 0:1.53.0-28.el7                                                           
  boost-system.x86_64 0:1.53.0-28.el7                                                           
  boost-thread.x86_64 0:1.53.0-28.el7                                                           
  daxctl-libs.x86_64 0:65-6.el7_9                                                               
  dkms.noarch 0:3.0.12-1.el7                                                                    
  fio.x86_64 0:3.7-2.el7                                                                        
  kernel-ml-devel.x86_64 0:5.19.11-1.el7.elrepo                                                 
  ksh.x86_64 0:20120801-144.el7_9                                                               
  libibverbs.x86_64 0:22.4-6.el7_9                                                              
  libnvpair3.x86_64 0:2.4.1-1.el7                                                               
  libpmem.x86_64 0:1.5.1-2.1.el7                                                                
  libpmemblk.x86_64 0:1.5.1-2.1.el7                                                             
  librados2.x86_64 1:10.2.5-4.el7                                                               
  librbd1.x86_64 1:10.2.5-4.el7                                                                 
  librdmacm.x86_64 0:22.4-6.el7_9                                                               
  libreport-filesystem.x86_64 0:2.1.11-53.el7.centos                                            
  libuutil3.x86_64 0:2.4.1-1.el7                                                                
  libzfs7.x86_64 0:2.4.1-1.el7                                                                  
  libzpool7.x86_64 0:2.4.1-1.el7                                                                
  lm_sensors-libs.x86_64 0:3.4.0-8.20160601gitf9185e5.el7_9.1                                   
  mdadm.x86_64 0:4.1-9.el7_9                                                                    
  ndctl-libs.x86_64 0:65-6.el7_9                                                                
  python3.x86_64 0:3.6.8-21.el7_9                                                               
  python3-libs.x86_64 0:3.6.8-21.el7_9                                                          
  python3-pip.noarch 0:9.0.3-8.el7                                                              
  python3-setuptools.noarch 0:39.2.0-10.el7                                                     
  rdma-core.x86_64 0:22.4-6.el7_9                                                               
  sysstat.x86_64 0:10.1.5-20.el7_9                                                              

Complete!

此时查看zfs模块是否加载,可以看到是没有加载的,因此还需要最后一个命令
# 创建配置文件
echo zfs | tee /etc/modules-load.d/zfs.conf

该命令执行完毕后,再次重启服务器,无需手动干预,zfs模块就会自动加载好

总结:可以看到,该离线安装包完全可以独立运行,完全安装好最新版zfs文件系统,只是需要编译一个全新的Linux内核,dkms需要kernel的头文件和开发包,因此,作为依赖安装了如下软件:

bash 复制代码
[root@centos1 ~]# rpm -qa |grep kernel
kernel-3.10.0-1062.el7.x86_64
kernel-ml-devel-5.19.11-1.el7.elrepo.x86_64
kernel-headers-3.10.0-1160.118.1.el7.x86_64

比较重要的依赖还有python3,其它的没有什么太特别的了,我认为该离线rpm安装包是完全可以应用在生产环境的。

好了,zfs文件系统的rpm离线方式安装部署就介绍到这里,完结撒花~!!!!!!!!!!!!!!!!

相关推荐
KaMeidebaby1 小时前
卡梅德生物技术快报|单克隆抗体人源化 PEG 修饰质控方法体系构建与验证
服务器·前端·数据库·人工智能·算法·百度·新浪微博
wuxinyan1231 小时前
工业级大模型学习之路015:RAG零基础入门教程(第十一篇):系统重构与代码规范化
人工智能·python·学习·重构·rag
銳昊城1 小时前
项目八: 配置与管理FTP服务器(3) C3
运维·服务器
青瓦梦滋1 小时前
C++特殊类设计(设计模式)和类型转换
c++·设计模式
网络与设备以及操作系统学习使用者1 小时前
ARP报文保护触发与解决详解
运维·网络·学习·华为
humors2211 小时前
检查网址连通性的python脚本
网络·python·网站·检测网址·查询网址·网址连通性·网址可访问性
(Charon)1 小时前
【C++/Qt】Qt 网络工具中的输入校验设计:IP、端口、URL 和空内容判断
服务器·c++·tcp/ip
2401_824697661 小时前
mysql添加索引导致插入变慢怎么办_索引优化与异步处理方案
jvm·数据库·python
MXsoft6181 小时前
**监控告警优化:告别告警风暴,精准定位故障根源**
运维