AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 678689
Accepted
k.Cyborg
k.Cyborg
Asked: 2021-11-23 22:40:08 +0800 CST2021-11-23 22:40:08 +0800 CST 2021-11-23 22:40:08 +0800 CST

如何在 Ubuntu 20.04 上安装 vdo/kvdo?

  • 772

我想知道是否有办法在 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包的方法。

ubuntu deduplication
  • 2 2 个回答
  • 897 Views

2 个回答

  • Voted
  1. Vojtech Trefny
    2021-11-23T23:15:02+08:002021-11-23T23:15:02+08:00

    我不明白为什么会出现错误,因为我已经安装了 libblkid 包。

    您需要libblkid-dev包含blkid/blkid.h头文件的包。

    真正困扰我的是 lvmvdo 的联机帮助页(我猜是 RedHat VDO 到 Ubuntu 的“端口”),但它只说:

    不,这不是 VDO 的一个端口,这是将 VDO 集成到LVM中,它允许您创建启用重复数据删除和/或压缩的 LVM 逻辑卷。这不是对 VDO 的重新实现,LVM 使用现有的 VDO 代码——vdoformat用户空间工具和kvdo内核模块,因此您仍然需要安装两者才能使 LVM 实现工作。

    我确实在 Ubuntu 20.04 中默认安装了 lvm 包,但我找不到安装 vdoformat 或 kvdo 包的方法。

    VDO 在 Ubuntu 中不可用(wishlist bug for 20.10)所以你需要自己编译它(你已经开始了)但是你需要编译和手动安装包含用户空间工具的dm-vdo/vdo项目(包括vdoformat使用LVM)和包含内核模块的dm-vdo/kvdokvdo项目(即lvmvdo 手册页中提到的“包”)。

    • 4
  2. Best Answer
    k.Cyborg
    2021-11-27T15:41:11+08:002021-11-27T15:41:11+08:00

    经过几天的尝试和错误...我找到了在 Ubuntu 中实际使用vdo的方法(至少在 20.04 中)...

    首先,快速更新,然后安装一些必要的软件包:

    apt update -y && apt upgrade -y && \
    apt install git build-essential libdevmapper-dev libz-dev uuid-dev flex bison linux-source libblkid-dev -y
    

    现在,为了确保将内核(默认为 5.4)升级到 5.9,然后重新启动:

    wget -c https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.9/amd64/linux-headers-5.9.0-050900_5.9.0-050900.202010112230_all.deb && \
    wget -c https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.9/amd64/linux-headers-5.9.0-050900-generic_5.9.0-050900.202010112230_amd64.deb && \
    wget -c https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.9/amd64/linux-image-unsigned-5.9.0-050900-generic_5.9.0-050900.202010112230_amd64.deb && \
    wget -c https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.9/amd64/linux-modules-5.9.0-050900-generic_5.9.0-050900.202010112230_amd64.deb && \
    dpkg -i *.deb && \
    shutdown now -r
    

    您现在需要kvdo,它是能够使用 vdo 的内核实用程序,下一个命令克隆 repo 然后编译它:

    git clone https://github.com/rhawalsh/kvdo.git && \
    cd kvdo && \
    make -C /usr/src/linux-headers-5.9.0-050900-generic/ M=$('pwd') modules
    

    然后更新我们的Module.symvers,并将 kvdo 模块复制到相应的文件夹:

    cat Module.symvers >> /lib/modules/5.9.0-050900-generic/build/Module.symvers && \
    mkdir /lib/modules/5.9.0-050900-generic/extra/ && \
    cp /opt/kvdo/uds/uds.ko /lib/modules/5.9.0-050900-generic/extra/ && \
    cp /opt/kvdo/vdo/kvdo.ko /lib/modules/5.9.0-050900-generic/extra/
    

    现在我们要求内核更新所有模块,然后检查它是否已安装(如果modprobe kvdo没有显示任何内容,则说明安装正确):

    depmod -a && \
    modprobe kvdo
    

    您可以测试已安装的 kvdo 版本:

    modinfo kvdo
    
    modinfo kvdo
    filename:       /lib/modules/5.9.0-050900-generic/extra/kvdo.ko
    version:        8.1.0.316
    license:        GPL
    author:         Red Hat, Inc.
    description:    device-mapper target for transparent deduplication
    srcversion:     F021DCCB4284C7E05BCCF77
    depends:        uds
    retpoline:      Y
    name:           kvdo
    vermagic:       5.9.0-050900-generic SMP mod_unload 
    

    内核工具已安装,现在我们需要用户空间工具(vdo),下一个命令克隆 vdo 存储库并编译它:

    git clone https://github.com/rhawalsh/vdo.git && \
    cd vdo && \
    make && \
    make install
    

    您可以测试它是否正确安装:

    vdoformat --version
    

    现在您可以像在 CentOS 中一样使用 vdo....

    • 2

相关问题

  • 使 Apple 键盘设置在 ../hid_apple/parameters/ 中持久化

  • 用文件中的点绘制二维图形

  • 如何验证我使用 9.9.9.9 作为 DNS?

  • 并行安装多个 linux 发行版

  • 自编译 OpenVPN 不会从 systemd 启动

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve