Primeiro, você deve verificar se é o AppArmor que está bloqueando seu dispositivo:
dmesg | grep /dev/sg0
Se você vir uma mensagem semelhante a:
[159883.682167] audit: type=1400 audit(1534114680.047:392): apparmor="DENIED" operation="file_lock" profile="libvirt-40d3ad0d-0574-4823-ae7d-eaf38afa7fb6" name="/dev/sg0"
Em seguida, ele está sendo bloqueado pelo AppArmor. Se o campo de perfil se parecer com o identificador do domínio localizado após profile=
porção, ele será um perfil criado dinamicamente criado pelo KVM após o início do domínio como parte da integração do KVM com o AppArmor.
Você pode permitir o acesso a alguns ou todos os seus dispositivos SCSI para seus hosts KVM editando o arquivo de gabarito normalmente localizado em /etc/apparmor.d/libvirt
. Você deve ver um arquivo TEMPLATE.qemu
que é usado como base para os perfis AppArmor criados dinamicamente. Você pode colocar na lista de permissões o (s) dispositivo (s) neste arquivo ou editar o arquivo apontado pela inclusão listada no arquivo de modelo, que geralmente é /etc/apparmor.d/abstractions/libvirt-qemu
. Para whitelist, basta adicionar suas entradas em suas próprias linhas para o arquivo da seguinte forma:
Para ler:
/dev/sg* rk,
Para leitura / gravação:
/dev/sg* rwk,
Se você estiver usando a GUI para editar os dispositivos SCSI no domínio, talvez perceba que os dispositivos não são exibidos corretamente na GUI. Por exemplo, se você estiver tentando passar por uma unidade ótica, pode não mostrar que a mídia está na unidade, mesmo que haja alguma. Você também desejará colocar esses dispositivos whilellist no serviço KVM adicionando entradas semelhantes ao arquivo /etc/apparmor.d/usr.lib.libvirt.virt-aa-helper
e, em seguida, informar ao AppArmor para recarregar as configurações:
service apparmor reload
Se os dispositivos SCSI forem ligados por links simbólicos, talvez seja necessário adicionar esses dispositivos com links simbólicos à sua lista de permissões também. Os erros do AppArmor permitirão que você saiba se esse é o caso, pois você verá erros atualizados à medida que você coloca na lista de permissões os dispositivos para leitura ou gravação, se você não tiver todos eles cobertos.