KVM에 큰 문제가 발생한 지 오래되었습니다. 그런 다음 다시 공정하게 말하면 지난 몇 년 동안 그렇게 광범위하게 사용하지 않았습니다. 하지만 최근에 저는 이 가상화 기술로 활동에 박차를 가했고 생산성에 몇 가지 문제가 더해졌습니다.
공교롭게도 가상 머신을 실행하려고 했습니다. 특별한 것은 없고 kvm xyz와 기타 등등만 있었습니다. 다음 오류 메시지가 나타납니다. KVM 커널 모듈에 액세스할 수 없습니다. 권한이 거부되었습니다. 따라서 무엇이 잘못되었는지 확인하고 문제를 해결하는 방법을 확인하기 위해 수행할 수 있는 모든 다른 작업을 보여주는 이 작은 자습서를 시작합니다. 내 뒤에.
자세한 문제
전체 오류 메시지:
KVM 커널 모듈에 액세스할 수 없음:권한 거부됨
qemu-system-x86_64:KVM 초기화 실패:권한 거부됨
이것이 나타내는 것은 KVM 사용자 공간 구성 요소가 KVM 드라이버에 액세스할 수 없다는 것입니다. 이는 일반적으로 잘못된 권한에서 비롯됩니다.
솔루션
가장 먼저 할 일은 사용자가 KVM 및 libvirt 그룹의 구성원인지 확인하는 것입니다. 이러한 변경 사항을 적용한 후에는 그룹 구성원 변경 사항이 적용되도록 새 셸을 시작해야 합니다. 가장 간단한 방법은 사용자 세션에 다시 로그인하는 것입니다.
sudo usermod -G -a kvm "사용자 이름"
sudo usermod -G -a libvirtd "사용자 이름"
기기 노드 권한
또한 /dev/kvm 장치에 대한 권한을 확인하려고 합니다. 올바른 기본 권한은 장치 파일에 대한 660 및 root:kvm 소유권이어야 합니다. 보시다시피 루트가 아니거나 kvm 그룹의 구성원이 아니면 액세스할 수 없습니다.
ls -ld /dev/kvm
crw-rw---- 1 루트 kvm 10, 232 5월 27일 10:43 /dev/kvm
Udev 규칙
확인해야 할 또 다른 사항은 올바른 udev 규칙이 있는지 여부입니다. 궁금한 점이 있다면 udevd는 /dev 아래의 항목에 대한 올바른 권한을 설정하는 장치 파일 시스템 관리 서비스입니다. 일반적으로 KVM 소프트웨어를 설치할 때 번들의 패키지 중 하나가 필요한 규칙을 제공합니다. 이 규칙이 없고 이전에 버그가 있었다면 규칙을 직접 만들 수 있습니다.
/etc/udev/rules.d/에서 XX-kvm.rules라는 파일을 만듭니다. XX는 GRUB2 규칙과 유사하게 규칙이 구문 분석되고 실행될 어휘 순서를 결정하는 숫자를 나타냅니다. 경우에 따라 다른 규칙의 순서가 중요할 수 있습니다. 확실하지 않고 실행할 KVM 기능에 따라 달라지는 것이 없는 경우 99-kvm.rules를 사용할 수 있습니다.
이 파일 안에 다음 줄을 추가합니다.
커널=="kvm", GROUP="kvm", MODE="0660"
여기에 무엇이 있습니까? udev 규칙을 작성하는 방법에 대한 TL;DR 버전에 있다면 저쪽을 읽으십시오. 간단히 말해서:
- KERNEL - 장치의 커널 이름
- GROUP - 장치를 소유해야 하는 UNIX 그룹
- MODE - 장치에 대한 비트 권한
규칙이 적용되면 재부팅하지 않고 규칙을 다시 로드합니다.
udevadm 제어 --재로드 규칙
그리고 안전을 위해 libvirt 서비스를 다시 시작할 수도 있습니다.
systemctl 재시작 libvirtd
기기 노드 권한 - 다시
이 등식의 마지막 조각 - 위의 해결 방법 중 어느 것도 작동하지 않는 경우 /dev/kvm에 대한 권한을 보다 완화된 세트로 간단히 변경할 수 있습니다. 660 대신 666을 사용할 수 있습니다. 즉, 시스템의 모든 사용자가 KVM 가상화를 관리할 수 있습니다. 가정 환경에서는 그리 큰 문제가 아닙니다.
sudo chmod +666 /dev/kvm
이제 KVM을 훌륭하게 실행할 수 있습니다.
결론
시작합니다. 이 자습서는 그리 길지 않지만 꽤 많은 영역을 다룹니다. 이제 KVM과 관련된 모든 문제에 대한 일반적인 디버깅 기사가 아닙니다. 이를 위해 이전 KVM 문제 해결 가이드와 이메일이 있으므로 새로운 팁과 솔루션 등을 요청할 수 있습니다. 우리는 특히 KVM 시작 권한 문제에 대해 이야기하고 있으며 이를 분석하고 해결하는 방법은 서너 가지가 있습니다.
전반적으로 KVM은 강력하고 유연한 가상화 소프트웨어입니다. 한 가지 단점은 꽤 괴상해서 다른 프론트엔드 친화적인 도구만큼 액세스할 수 없다는 것입니다. 가상화가 처음부터 괴상한 것이 아니라는 것은 아닙니다. 하지만 이봐 요. 잘못된 권한으로 인해 KVM으로 VM을 생성하거나 시작하는 데 걸림돌이 발생하면 위의 체크리스트를 통해 문제를 해결할 수 있습니다. 간단하고 방해가 되지 않으며 재부팅이 필요하지 않습니다. 여기까지 하겠습니다.
건배.