我想知道是否有办法在 Ubuntu 20.04中安装Red Hat 的 vdo 。
到目前为止,我已经尝试下载源代码并进行编译,但出现以下错误:
cc -fPIC -fpic -D_GNU_SOURCE -g -O3 -fno-omit-frame-pointer -Wall -Wcast-align -Werror -Wextra -Winit-self -Wlogical-op -Wmissing-include-dirs -Wpointer-arith -Wredundant-decls -Wunused -Wwrite-strings -std=gnu99 -pedantic -Wbad-function-cast -Wcast-qual -Wfloat-equal -Wformat=2 -Wmissing-declarations -Wmissing-format-attribute -Wmissing-prototypes -Wnested-externs -Wold-style-definition -Wswitch-default -I. -I../uds -Wno-write-strings -DCURRENT_VERSION="\"8.1.0.316\"" -c -MMD -MF .deps/vdoformat.d.new -MP -MT vdoformat.o -o vdoformat.o vdoformat.c
vdoformat.c:22:10: fatal error: blkid/blkid.h: No such file or directory
22 | #include <blkid/blkid.h>
| ^~~~~~~~~~~~~~~
compilation terminated.
我不明白为什么会出现错误,因为我已经安装了libblkid包。
真正困扰我的是lvmvdo有一个联机帮助页(我猜是 Red Hat VDO 到 Ubuntu 的“端口”),但它只说:
为了使用 lvm(8) 标准 VDO 用户空间工具 vdoformat(8) 和当前非标准内核 VDO 模块“kvdo”,需要在系统上安装 VDO。
我确实在 Ubuntu 20.04 中默认安装了 lvm 包,但我找不到安装vdoformat或kvdo包的方法。
您需要
libblkid-dev
包含blkid/blkid.h
头文件的包。不,这不是 VDO 的一个端口,这是将 VDO 集成到LVM中,它允许您创建启用重复数据删除和/或压缩的 LVM 逻辑卷。这不是对 VDO 的重新实现,LVM 使用现有的 VDO 代码——
vdoformat
用户空间工具和kvdo
内核模块,因此您仍然需要安装两者才能使 LVM 实现工作。VDO 在 Ubuntu 中不可用(wishlist bug for 20.10)所以你需要自己编译它(你已经开始了)但是你需要编译和手动安装包含用户空间工具的dm-vdo/vdo项目(包括
vdoformat
使用LVM)和包含内核模块的dm-vdo/kvdokvdo
项目(即lvmvdo 手册页中提到的“包”)。经过几天的尝试和错误...我找到了在 Ubuntu 中实际使用vdo的方法(至少在 20.04 中)...
首先,快速更新,然后安装一些必要的软件包:
现在,为了确保将内核(默认为 5.4)升级到 5.9,然后重新启动:
您现在需要kvdo,它是能够使用 vdo 的内核实用程序,下一个命令克隆 repo 然后编译它:
然后更新我们的Module.symvers,并将 kvdo 模块复制到相应的文件夹:
现在我们要求内核更新所有模块,然后检查它是否已安装(如果modprobe kvdo没有显示任何内容,则说明安装正确):
您可以测试已安装的 kvdo 版本:
内核工具已安装,现在我们需要用户空间工具(vdo),下一个命令克隆 vdo 存储库并编译它:
您可以测试它是否正确安装:
现在您可以像在 CentOS 中一样使用 vdo....