가상 머신을 시작하지 못했습니다. libvirt/qemu 권한이 거부되었습니다.

가상 머신을 시작하지 못했습니다. libvirt/qemu 권한이 거부되었습니다.

처음으로 질문하는 것이므로 더 잘할 수 있으면 알려주시기 바랍니다.

나는 Linux 측면에 능숙하지 않으며 지금까지는 가이드를 따르고 몇 가지 검색으로 쉽게 해결할 수 있는 문제에 부딪힐 수 있지만 지금은 막혔습니다. 나는 Debian Buster를 실행하는 작은 홈 서버를 가지고 있습니다. libvirt/qemu를 사용하여 여러 가상 머신을 실행하고 있습니다. 내 문제는 nextcloud 인스턴스입니다.

어제 시스템에 전원이 공급되지 않았습니다. 재부팅 후 지금까지 모든 것이 잘 작동하고 있습니다. 그런 다음 가상 머신을 시작하고 싶었는데 하나만 빼고 모두 잘 시작되었습니다. 다음 오류가 발생합니다.

sudo virsh start mydomain 
error: Failed to start domain mydomain 
error: internal error: process exited while connecting to monitor: 
qemu-system-x86_64: -realtime mlock=off: warning: '-realtime mlock=...' is deprecated, please use '-overcommit mem-lock=...' instead 
2022-10-01T13:31:17.160445Z qemu-system-x86_64: -drive file=/path/to/mydomain.snapshot1.snapshot2,format=qcow2,if=none,id=drive-virtio-disk0: 
Could not open backing file: Could not open '/path/to/mydomain.snapshot1': Permission denied

이 가이드에 따라 외부 스냅샷을 만들었습니다.https://fabianlee.org/2021/01/10/kvm-creating-and-reverting-libvirt-external-snapshots/

처음에는 VM에 문제가 있는 줄 알고 이전 스냅샷으로 되돌려 보았습니다. (정전이 몇 시간밖에 남지 않았습니다.)

가이드에 따라 다음 단계를 사용하여 복원했습니다.

# edit hda path back to original qcow2 disk
virt-xml $thedomain --edit target=$targetdisk --disk path=$backingfile --update

# validate that we are now pointing back at original qcow2 disk
virsh domblklist $thedomain

# delete snapshot metadata
virsh snapshot-delete --metadata $thedomain $snapshotname

# delete snapshot qcow2 file
sudo rm $pooldir/$thedomain.$snapshotname

# start guest domain
virsh start $thedomain

하지만 스냅샷 파일을 가리키기만 하면 여전히 같은 오류가 발생합니다. 또한 가상 머신을 시작하려고 하면 스냅샷 파일의 소유자와 그룹이 "libvirt-qemu"에서 "root"로 변경됩니다.

문제를 찾으려고 노력했지만 많은 것을 찾을 수 없었습니다. 내가 찾은 가장 가까운 것은KVM이 백업 파일 체인을 사용하여 게스트를 부팅할 수 있도록 AppArmor를 구성하는 방법

그래서 그것은 의류와 관련이 있을 수도 있습니다. 하지만 정전 이후 어떤 변화가 있었는지 모르겠습니다. 그러나 어쨌든 나는 이 게시물의 제안을 시도해 보았으나 효과가 없었습니다.

그러나 업데이트를 통해 일부 변경 사항이 적용되어 재부팅 후에만 적용될 수도 있습니다. 지금까지 서버는 훌륭하게 실행되고 있으며 자주 종료되지 않습니다.

텍스트가 길어서 죄송합니다.

도움을 주셔서 미리 감사드립니다.

답변1

수정/해결 방법을 찾았습니다.

가상 머신 이미지의 저장 경로를 추가했습니다.

/etc/apparmor.d/abstractions/libvirt-qemu

이와 같이

/path/to/my/files/* rwk,
/path/to/my/files/ rwk,

이제 가상 머신이 다시 시작됩니다. 하지만 애초에 이 문제의 원인이 무엇인지 아직도 모르겠습니다.

작동하지 않는 이전 스냅샷으로 되돌리는 것은 스냅샷 이름 지정 및 libvirt-aa-helper를 통한 잘못된 해석 -> 잘못된 의류 구성 파일 및/또는 가상 머신의 .xml 파일에서의 잘못된 해석과 관련이 있습니다.

시간이 나면 더 깊이 파고들어요. 하지만 이제 다시 작동해서 기쁘네요.

관련 정보