Ubuntu 20.04에 vdo/kvdo를 설치하는 방법은 무엇입니까?

Ubuntu 20.04에 vdo/kvdo를 설치하는 방법은 무엇입니까?

설치방법이 있는지 알고 싶습니다Red Hat vdo우분투 20.04에서.

지금까지 다운로드를 시도했습니다.원천그리고 컴파일했는데 다음과 같은 오류가 발생했습니다.

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패키지가 이미 설치되어 있습니다.


나를 정말 짜증나게 하는 것은 매뉴얼 페이지가 있다는 것입니다.좌심실(Red Hat VDO에서 Ubuntu로의 "포트"인 것 같아요) 그러나 다음과 같이만 말합니다.

lvm(8)과 함께 VDO를 사용하려면 표준 VDO 사용자 공간 도구 vdoformat(8)과 현재 비표준 커널 VDO 모듈 "kvdo"를 시스템에 설치해야 합니다.

Ubuntu 20.04에 기본적으로 lvm 패키지가 설치되어 있지만 설치 방법을 찾을 수 없습니다비디오 형식...도 아니다케프도가방.

답변1

libblkid 패키지가 이미 설치되어 있는데 왜 오류가 발생하는지 이해할 수 없습니다.

헤더 파일이 libblkid-dev포함된 패키지가 필요합니다 .blkid/blkid.h

나를 정말 짜증나게 하는 것은 lvmvdo에 대한 맨페이지가 있다는 것입니다(RedHat VDO에서 Ubuntu로의 "포트"인 것 같습니다). 그러나 다음과 같이만 말합니다.

아니요, 이것은 VDO의 포트가 아닙니다. 이것은 VDO의 통합입니다.좌심실 용적중복 제거 및/또는 압축이 활성화된 LVM 논리 볼륨을 생성할 수 있습니다. 이는 VDO를 다시 구현하는 것이 아니며 LVM은 기존 VDO 코드( vdoformat사용자 공간 도구 및 kvdo커널 모듈)를 사용하므로 LVM 구현이 작동하려면 두 가지를 모두 설치해야 합니다.

Ubuntu 20.04에는 기본적으로 lvm 패키지가 설치되어 있지만 vdoformat 또는 kvdo 패키지를 설치하는 방법을 찾을 수 없습니다.

Ubuntu에서는 VDO를 사용할 수 없습니다(20.10의 위시리스트 버그) 따라서 직접 컴파일해야 하지만(이미 시작했음) 수동으로 컴파일하고 설치해야 합니다.DM-VDO/VDO사용자 공간 도구( vdoformatLVM에서 사용되는 도구 포함)가 포함되어 있습니다.DM-VDO/KVDOkvdo커널 모듈( lvmvdo 매뉴얼 페이지에 언급된 "패키지")을 포함하는 프로젝트입니다 .

답변2

며칠간의 시행착오 끝에... 실제로 효과가 있는 방법을 찾았습니다.비톨우분투에서는 (적어도 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

지금 필요해케프도이것은 vdo 사용을 활성화하는 커널 유틸리티입니다. 다음 명령은 저장소를 복제한 후 컴파일합니다.

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

그런 다음 업데이트하세요.모듈.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/

이제 커널에 모든 모듈을 업데이트하도록 요청한 다음 모듈이 설치되어 있는지 확인합니다.모드프로브 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 저장소를 복제하고 컴파일합니다.

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

설치가 올바른지 테스트할 수 있습니다.

vdoformat --version

이제 CentOS에서처럼 vdo를 사용할 수 있습니다.

관련 정보