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
크리스 씨