A.19. 일반 libvirt 오류 및 문제 해결
이 부록은 일반적인 libvirt문서 - 관련 문제 및 오류를 다루는 방법과 함께 설명합니다.
아래 표에서 오류를 찾아
솔루션
아래의 해당 링크를 따라 자세한 문제 해결 정보를 확인하십시오.
오류 | 문제에 대한 설명 | 해결책 |
---|---|---|
libvirtd 를 시작하지 못했습니다. | libvirt 데몬을 시작하지 못했습니다. 그러나 /var/log/ message에 이 오류에 대한 정보는 없습니다. | A.19.1절. “libvirtd 를 시작하지 못했습니다.” |
CA 인증서를 읽을 수 없음 | URI가 하이퍼바이저에 연결하지 못하는 경우 발생하는 몇 가지 오류 중 하나입니다. | A.19.2절. “URI가 Hypervisor에 연결하지 못했습니다.” |
기타 연결 오류 | URI가 하이퍼바이저에 연결하지 못하는 경우 발생하는 기타 오류입니다. | A.19.2절. “URI가 Hypervisor에 연결하지 못했습니다.” |
게스트의 PXE 부팅(또는 DHCP)이 실패했습니다. | 게스트 가상 머신이 성공적으로 시작되지만 DHCP에서 IP 주소를 가져오거나 PXE 프로토콜을 사용하여 부팅하거나 둘 다 가져올 수 없습니다. 이는 종종 브리지에 설정된 긴 지연 시간 또는 iptables 패키지 및 커널에서 규칙 체크섬을 지원하지 않는 경우 발생합니다. | A.19.3절. “게스트의 PXE 부팅(또는 DHCP) 실패” |
게스트는 외부 네트워크에 연결할 수 있지만 macvtap 인터페이스를 사용하는 경우에는 호스트에 연결할 수 없습니다. |
게스트는 다른 게스트와 통신할 수 있지만 macvtap(또는
type='direct' ) 네트워크 인터페이스를 사용하도록 구성된 후에는 호스트 시스템에 연결할 수 없습니다.
이것은 실제로 오류가 아니며 macvtap의 정의된 동작입니다.
| A.19.4절. “게스트는 외부 네트워크를 변경할 수 있지만 macvtap 인터페이스를 사용하는 경우 Reach Host는 사용할 수 없습니다.” |
네트워크 'default'에서 DHCP 응답 체크섬을 수정하는 규칙을 추가할 수 없습니다. | 이 경고 메시지는 거의 항상 무해하지만 문제의 증거로 실수로 표시됩니다. | A.19.5절. “네트워크 'default'에서 DHCP 응답 체크섬을 수정하는 규칙을 추가할 수 없습니다.” |
브리지 br0 포트 vnet0을 추가할 수 없습니다. 해당 장치가 없습니다. | 이 오류 메시지 또는 유사한 Failed to add interface to bridge 'br0': 이러한 장치 는 게스트의(또는 도메인) <interface> 정의에 지정된 브리지 장치가 없음을 나타냅니다. | A.19.6절. “브리지 br0 포트 vnet0을 추가할 수 없습니다. 해당 장치가 없습니다.” |
name_of_host 서비스 '49155' 주소를 확인할 수 없습니다. 알 수 없는 이름 또는 서비스 | QEMU 게스트 마이그레이션이 실패하고 이 오류 메시지는 익숙하지 않은 호스트 이름과 함께 표시됩니다. | A.19.7절. “Migration Fails with error: unable to resolve address ” |
디스크 경로 /var/lib/libvirt/images/qemu.img에 대한 액세스를 허용할 수 없습니다. 이러한 파일 또는 디렉터리 없음 | libvirt 가 디스크 이미지에 액세스할 수 없기 때문에 게스트 가상 머신을 마이그레이션할 수 없습니다. | A.19.8절. “디스크 경로에 대한 액세스를 허용하기 위해 Unable이 있는 마이그레이션 Fails: 이러한 파일 또는 디렉터리 없음 ” |
libvirtd 가 시작될 때 게스트 가상 시스템이 존재하지 않습니다. | libvirt 데몬이 성공적으로 시작되었지만 virsh list --all 을 실행할 때 게스트 가상 머신이 존재하지 않습니다. | A.19.9절. “libvirtd 가 시작될 때 게스트 가상 머신이 준비되지 않습니다.” |
일반적인 XML 오류 | libvirt 는 XML 문서를 사용하여 구조화된 데이터를 저장합니다. API를 통해 libvirt 에 전달될 때 XML 문서에서 몇 가지 일반적인 오류가 발생합니다. 이 항목에서는 게스트 XML 정의 편집과 XML 구문 및 구성의 일반적인 오류에 대한 지침을 제공합니다. | A.19.10절. “일반적인 XML 오류” |
A.19.1. libvirtd 를 시작하지 못했습니다.
- 증상
- libvirt 데몬이 자동으로 시작되지 않습니다. libvirt 데몬을 수동으로 시작하면 다음 작업도 실패합니다.
# systemctl start libvirtd.service * Caching service dependencies ... [ ok ] * Starting libvirtd ... /usr/sbin/libvirtd: error: Unable to initialize network sockets. Check /var/log/messages or run without --daemon for more info. * start-stop-daemon: failed to start `/usr/sbin/libvirtd' [ !! ] * ERROR: libvirtd failed to start
또한/var/log/
message에 이 오류에 대한'more info'
가 없습니다. - 조사
- 아래 행 을 활성화하여
/etc/libvirt/libvirtd.conf
에서 libvirt 의 로깅을 변경합니다. 설정을 활성화하려면 텍스트 편집기에서/etc/libvirt/libvirtd.conf
파일을 열고 다음 줄에서 해시(또는#
) 기호를 제거하고 변경 사항을 저장합니다.log_outputs="3:syslog:libvirtd"
참고이 행은 libvirt 에서 과도한 로그 메시지를 생성하지 않도록 기본적으로 주석 처리됩니다. 문제를 진단한 후/etc/libvirt/libvirtd.conf
파일에서 이 행을 다시 주석 처리하는 것이 좋습니다.libvirt 를 다시 시작하여 이 문제가 해결되었는지 확인합니다.libvirtd
가 여전히 시작되지 않으면 다음과 같은 오류가 출력됩니다.# systemctl restart libvirtd Job for libvirtd.service failed because the control process exited with error code. See "systemctl status libvirtd.service" and "journalctl -xe" for details. Sep 19 16:06:02 jsrh libvirtd[30708]: 2017-09-19 14:06:02.097+0000: 30708: info : libvirt version: 3.7.0, package: 1.el7 (Unknown, 2017-09-06-09:01:55, js Sep 19 16:06:02 jsrh libvirtd[30708]: 2017-09-19 14:06:02.097+0000: 30708: info : hostname: jsrh Sep 19 16:06:02 jsrh libvirtd[30708]: 2017-09-19 14:06:02.097+0000: 30708: error : daemonSetupNetworking:502 : unsupported configuration: No server certif Sep 19 16:06:02 jsrh systemd[1]: libvirtd.service: main process exited, code=exited, status=6/NOTCONFIGURED Sep 19 16:06:02 jsrh systemd[1]: Failed to start Virtualization daemon. -- Subject: Unit libvirtd.service has failed -- Defined-By: systemd -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel -- -- Unit libvirtd.service has failed. -- -- The result is failed.
libvirtd 도움말 페이지에는 libvirt 가TCP/IP 연결 모드에 대해 Listen
에서 실행될 때 누락된cacert.pem
파일이 TLS 기관으로 사용됩니다. 즉--listen
매개변수가 전달되고 있습니다. - 해결책
- 다음 방법 중 하나로 libvirt 데몬 설정을 구성합니다.
- CA 인증서를 설치합니다.참고CA 인증서 및 시스템 인증 구성에 대한 자세한 내용은 Red Hat Enterprise Linux 7 도메인 ID, 인증 및 정책 가이드의 인증서 및 인증 기관 관리 장을 참조하십시오.
- TLS를 사용하지 마십시오. 대신 베어 TCP를 사용합니다.
/etc/libvirt/libvirtd.conf
에서listen_tls = 0
및listen_tcp = 1
을 설정합니다. 기본값은listen_tls = 1
및listen_tcp = 0
입니다. --listen
매개변수를 전달하지 마십시오./etc/sysconfig/libvirtd.conf
에서LIBVIRTD_ARGS
변수를 변경합니다.