CentOS 8에서 VDO 생성 문제 - 커널 모듈 kvdo가 설치되지 않았습니다.

CentOS 8에서 VDO 생성 문제 - 커널 모듈 kvdo가 설치되지 않았습니다.

vdo를 생성하려고 하면 다음 메시지가 나타납니다.

# vdo create --name=vdo1 --device=/dev/sdb2 --vdoLogicalSize=1T
Creating VDO vdo1
vdo: ERROR - Kernel module kvdo not installed
vdo: ERROR - modprobe: FATAL: Module kvdo not found in directory /lib/modules/4.18.0-240.1.1.el8_3.x86_64

오류가 발생하는 이유와 해결 방법을 아는 사람이 있나요?

추가 패키지도 설치했습니다

# dnf install *4.18.0-240.1.1.el8* -y

일부 커널 패키지를 포함하여 더 많은 패키지를 설치했지만 여전히 오류가 발생합니다.

모든 패키지도 설치되고 vdo가 활성화됩니다.

# systemctl status vdo
● vdo.service - VDO volume services
   Loaded: loaded (/usr/lib/systemd/system/vdo.service; enabled; vendor preset: enabled)
   Active: active (exited) since Fri 2020-12-11 12:44:55 UTC; 3h 49min ago
  Process: 782 ExecStart=/usr/bin/vdo start --all --confFile /etc/vdoconf.yml (code=exited, status=0/SUCCESS)
 Main PID: 782 (code=exited, status=0/SUCCESS)
    Tasks: 0 (limit: 23438)
   Memory: 0B
   CGroup: /system.slice/vdo.service

Dec 11 12:44:53 node systemd[1]: Starting VDO volume services...
Dec 11 12:44:55 node systemd[1]: Started VDO volume services.

# rpm -qa | grep -i vdo
vdo-6.2.3.114-14.el8.x86_64
alsa-plugins-vdownmix-1.1.9-1.el8.x86_64
vdo-support-6.2.3.114-14.el8.x86_64
kmod-kvdo-6.2.2.117-65.el8.x86_64
libblockdev-vdo-2.24-1.el8.x86_64

답변1

업데이트를 실행한 후 Oracle Linux 8에서 동일한 문제가 발생했습니다. 최신 kmod-kvdo 패키지에는 최신 커널용 kvdo 커널 모듈이 포함되어 있지 않은 것 같습니다. 이는 최신 kmod-kvdo 패키지를 쿼리하여 확인할 수 있습니다(먼저 find version 사용 dnf list kmod-kvdo).

rpm -ql kmod-kvdo-6.2.8.7-88.0.1.el8
/etc/depmod.d/kvdo.conf
/lib/modules/4.18.0-477.el8.x86_64
/lib/modules/4.18.0-477.el8.x86_64/extra
/lib/modules/4.18.0-477.el8.x86_64/extra/kmod-kvdo
/lib/modules/4.18.0-477.el8.x86_64/extra/kmod-kvdo/uds
/lib/modules/4.18.0-477.el8.x86_64/extra/kmod-kvdo/uds/uds.ko
/lib/modules/4.18.0-477.el8.x86_64/extra/kmod-kvdo/vdo
/lib/modules/4.18.0-477.el8.x86_64/extra/kmod-kvdo/vdo/kvdo.ko

내 활성 코어가 5.4.17-2136.320.7.1.el8uek.x86_64목록에 없습니다.

VDO를 실행하기 위해 grubby를 사용하여 활성 커널을 로 변경한 4.18.0-477.el8.x86_64다음 재부팅했습니다. 곧 kmod-kvdo를 수정할 수 있기를 바랍니다.

답변2

다른 호스트에서는 다음 오류도 발생합니다.

Creating VDO vdo1
vdo: ERROR - Found existing signature on /dev/disk/by-id/usb-iOS_devi_FLASH_DRIVE_00000000CY02-0:0-part1 at offset 0: LABEL="(null)" UUID="c5d18b8a-7512-4193-af06-3032d519e4e0" TYPE="xfs" USAGE="filesystem".

디스크에 새 파티션을 만든 후

# fdisk /dev/sdb

Welcome to fdisk (util-linux 2.32.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): n
Partition number (2-128, default 2):
First sector (10487808-262143966, default 10487808):
Last sector, +sectors or +size{K,M,G,T,P} (10487808-262143966, default 262143966): +10G

Created a new partition 2 of type 'Linux filesystem' and of size 10 GiB.
Partition #2 contains a stratis signature.

Do you want to remove the signature? [Y]es/[N]o: y

The signature will be removed by a write command.

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.


# partprobe
# lsblk
NAME          MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
....
sdb             8:16   1   125G  0 disk
....
└─sdb2          8:18   1    10G  0 part

보시다시피 이전에 Stratis를 사용하여 생성한 테스트의 일부 세부 정보가 여전히 디스크 파티션에 유지되어 있습니다. 그래서 fdisk에서도 삭제했습니다. 마침내 vdo를 생성할 수 있게 된 후:

# vdo create --name=vdo1 --device=/dev/sdb2 --vdoLogicalSize=1T
Creating VDO vdo1
      The VDO volume can address 6 GB in 3 data slabs, each 2 GB.
      It can grow to address at most 16 TB of physical storage in 8192 slabs.
      If a larger maximum size might be needed, use bigger slabs.
Starting VDO vdo1
Starting compression on VDO vdo1
VDO instance 0 volume is ready at /dev/mapper/vdo1

답변3

나는 또한 이 문제에 부딪혔고 일관되지 않은 저장소로 추적되었습니다. 작동 중인 VDO로 전체 CentOS를 업그레이드하면 충돌이 발생합니다. 오늘 다시 시도해 봤습니다. 이 문제는 몇 주 또는 몇 달 동안 발생했기 때문에 업그레이드로 인해 문제가 발생하지 않는 솔루션을 찾았습니다. 이 문제가 해결되면 제거하는 것도 쉽습니다.

영향을 받는 가상 머신의 운영 체제 세부 정보:

root@vm12 tests]# rpm -qa | grep -e vdo -e release
epel-release-8-10.el8.noarch
kmod-kvdo-6.2.2.117-65.el8.x86_64
centos-linux-release-8.3-1.2011.el8.noarch
vdo-6.2.3.114-14.el8.x86_64
[root@vm12 tests]# cat /etc/centos-release
CentOS Linux release 8.3.2011
[root@vm12 tests]# dnf upgrade
Last metadata expiration check: 0:06:25 ago on Wed 06 Jan 2021 09:49:08 AM CET.
Dependencies resolved.
Nothing to do.
Complete!

수정사항(수정된 저장소)을 설치하고 운영 체제를 복구하십시오.

curl https://raw.githubusercontent.com/joe-speedboat/ansible.vdo_nfs_appliance/main/templates/CentOS-Stream-vdo.repo.j2 > /etc/yum.repos.d/CentOS-Stream-vdo.repo
dnf makecache
dnf upgrade
reboot

제거 수정(vdo 패키지를 baseos-vdo 저장소에서 더 이상 사용할 수 없는 경우):

rm -f /etc/yum.repos.d/CentOS-Stream-vdo.repo

그런데, 내 전체 ansible 역할을 사용하여 vdo 기반 스토리지를 설정해도 됩니다. 하지만 먼저 RTFM을 해주세요 :-)

https://galaxy.ansible.com/joe-speedboat/ansible_vdo_nfs_appliance

크리스 씨

관련 정보