What is ZFS?ZFS on Linux is an advanced file system and volume manager which was originally developed for Solaris and is now maintained by the OpenZFS community.
本文在于记录思路历程 和所做的错误尝试 。
硬件环境为 GIGABYTE (Dual10-GigabitEthernet) 2xIntelXeonScaleableGold 10xNVIDIAGTX1080Ti 480GBSSDforboot 8x12TBEnterpriseSATAHDD
软件环境为centos1708 内核是7.4版本 zfsrpm包为el7_5.
我使用的是rpm包来安装zfs文件系统,做raidz1(等于raid1 50%做存储 50%做计算)。命令如下:
rpm -ihv zfs-release.el7_5.noarch.rpm |
yum -y install zfs |
每次moprobe zfs 会报错
发现可以通过加参数 -f 强制加载上ZFS 但是每次重启机器都会掉
解决方法1:
在/etc/sysconfig/modules加入强制加载的脚本
解决方法2:
更换更新的内核 更新的zfsrpm版本 方法和命令如下:
安装环境改成centos1804 内核为7.5版本 zfsrpm改为el7_6版本。
实验成功 重启机器成功自动加载zfs
错误尝试1:
因为dkms做为管理zfs.ko的工具 最先开始找的就是它。可见:提示编译和安装的环境不一样
这个时候用的还是centos1708 我尝试在未重装系统的情况下 升级内核 安装更新的zfs版本。zfs相关的rpm包和dkms很难卸干净,参考官网文档和论坛后得出以下结果:
dkms的情况变成了这样:
机器能够成功加载zfs 重启没有异常。
但是!!!!!
这个流程在国外的机器上能够走通。在国内的机器上就走不通了。(怀疑是因为国内有墙 yum更新没那么新)
其实这个错误的本质就是 yum的是7.5版本上编译的ko模块,但是现在要装到7.6的系统上(yum 开机的时候会自动update),虽然也升级了内核 但是epel这个repo不是centos的标准库 所以升上去的编译文件用的还是原来的7.5版本,并没有被重新编译。
所以yum install zfs的作用就显示出来了。它下载rpm,编译rpm产生的二进制module ko文件,放到该放的地方,然后顺便运行下modprobe做点额外工作,但是不保证modprobe一定能成功(zfs对centos兼容太差),所以才需要我们手动去probe和加载ko文件。
所以 通过以上思考 想要根本上解决这个问题 需要更换装机镜像 并且更换更新的zfsrpm包。
为了解决这个问题 得到了以下的人和资料的帮助 谢谢:
http://open-zfs.org/wiki/Main_Page
晓东哥(俺师傅)
CSDN的其他博文 具体的刚刚网页崩溃了 找不到了(开得窗口太多...)