23장. 가상 머신 문제 진단
VM(가상 머신)으로 작업할 때 다양한 수준의 심각도에 문제가 발생할 수 있습니다. 일부 문제는 빠르고 쉽게 해결할 수 있지만 VM 관련 데이터 및 로그를 캡처하여 문제를 보고하거나 진단해야 할 수 있습니다.
다음 섹션에서는 로그 생성 및 몇 가지 일반적인 VM 문제 진단 및 이러한 문제 보고에 대한 자세한 정보를 제공합니다.
23.1. libvirt 디버그 로그 생성
VM(가상 머신) 문제를 진단하려면 libvirt 디버그 로그를 생성하고 검토하는 것이 좋습니다. 디버그 로그를 첨부하는 것은 VM 관련 문제를 해결하기 위한 지원을 요청할 때도 유용합니다.
다음 섹션에서는 디버그 로그의 내용, 영구으로 설정하는 방법,런타임 중에 활성화한 후 문제를 보고할 때 이를 연결하는 방법에 대해 설명합니다.
23.1.1. libvirt 디버그 로그 이해
디버그 로그는 VM(가상 머신) 런타임 중에 발생하는 이벤트에 대한 데이터를 포함하는 텍스트 파일입니다. 로그는 호스트 라이브러리 및 libvirt 데몬과 같은 기본 서버 측 기능에 대한 정보를 제공합니다. 로그 파일에는 실행 중인 모든 VM의 표준 오류 출력(stderr
)도 포함됩니다.
디버그 로깅은 기본적으로 활성화되어 있지 않으며 libvirt를 시작할 때 활성화해야 합니다. 단일 세션 또는 영구적으로 로깅을 활성화할 수 있습니다. 데몬 런타임 설정을 수정하여 libvirt 데몬 세션이 이미 실행 중인 경우 로깅을 활성화할 수도 있습니다.
libvirt 디버그 로그를 연결하는 것은 VM 문제에 대한 지원을 요청할 때 유용합니다.
23.1.2. libvirt 디버그 로그의 영구 설정 활성화
libvirt가 시작될 때마다 libvirt 디버그 로깅이 자동으로 활성화되도록 구성할 수 있습니다. 기본적으로 virtqemud
는 RHEL 9의 기본 libvirt 데몬입니다. libvirt 구성을 영구적으로 변경하려면 /etc/libvirt
디렉터리에 있는 virtqemud.conf
파일을 편집해야 합니다.
예를 들어 RHEL 8에서 업그레이드하는 경우에도 libvirtd
가 활성화된 libvirt 데몬일 수 있습니다. 이 경우 libvirtd.conf
파일을 대신 편집해야 합니다.
프로세스
-
편집기에서
virtqemud.conf
파일을 엽니다. 요구 사항에 따라 필터를 교체하거나 설정합니다.
표 23.1. 필터 값 디버깅 1
libvirt에서 생성된 모든 메시지를 기록합니다.
2
모든 디버깅되지 않은 정보를 기록합니다.
3
모든 경고 및 오류 메시지를 기록합니다. 이는 기본값입니다.
4
오류 메시지만 기록합니다.
예 23.1. 로깅 필터의 데몬 설정 예
다음 설정은 다음과 같습니다.
-
원격
,util.json
및rpc
계층의 모든 오류 및 경고 메시지를 기록합니다. -
이벤트
계층의 오류 메시지만 기록합니다. -
필터링된 로그를
/var/log/libvirt/libvirt.log
에 저장
log_filters="3:remote 4:event 3:util.json 3:rpc" log_outputs="1:file:/var/log/libvirt/libvirt.log"
-
- 저장 및 종료합니다.
libvirt 데몬을 다시 시작합니다.
$ systemctl restart virtqemud.service
23.1.3. 런타임 중 libvirt 디버그 로그 활성화
libvirt 데몬의 런타임 설정을 수정하여 디버그 로그를 활성화하고 출력 파일에 저장할 수 있습니다.
이 기능은 문제를 다시 시작하거나 동시에 실행 중인 마이그레이션 또는 백업과 같은 다른 프로세스가 있기 때문에 libvirt 데몬을 다시 시작할 수 없는 경우 유용합니다. 구성 파일을 편집하거나 데몬을 다시 시작하지 않고 명령을 시도하려는 경우 런타임 설정 수정에도 유용합니다.
사전 요구 사항
-
libvirt-admin
패키지가 설치되어 있는지 확인합니다.
프로세스
선택 사항: 활성 로그 필터 세트를 백업합니다.
# virt-admin -c virtqemud:///system daemon-log-filters >> virt-filters-backup
참고로그를 생성한 후 복원할 수 있도록 활성 필터 세트를 백업하는 것이 좋습니다. 필터를 복원하지 않으면 시스템 성능에 영향을 미칠 수 있는 메시지가 계속 기록됩니다.
virt-admin
유틸리티를 사용하여 디버깅을 활성화하고 요구 사항에 따라 필터를 설정합니다.표 23.2. 필터 값 디버깅 1
libvirt에서 생성된 모든 메시지를 기록합니다.
2
모든 디버깅되지 않은 정보를 기록합니다.
3
모든 경고 및 오류 메시지를 기록합니다. 이는 기본값입니다.
4
오류 메시지만 기록합니다.
예 23.2. 로깅 필터를 위한 virt-admin 설정 샘플
다음 명령은 다음과 같습니다.
-
원격
,util.json
및rpc
계층의 모든 오류 및 경고 메시지를 기록합니다. -
이벤트
계층의 오류 메시지만 기록합니다.
# virt-admin -c virtqemud:///system daemon-log-filters "3:remote 4:event 3:util.json 3:rpc"
-
virt-admin
유틸리티를 사용하여 로그를 특정 파일 또는 디렉터리에 저장합니다.예를 들어 다음 명령은 로그 출력을
/var/log/libvirt/
디렉터리의libvirt.log
파일에 저장합니다.# virt-admin -c virtqemud:///system daemon-log-outputs "1:file:/var/log/libvirt/libvirt.log"
선택 사항: 필터를 제거하여 모든 VM 관련 정보가 포함된 로그 파일을 생성할 수도 있습니다. 그러나 이 파일에는 libvirt의 모듈에서 생성된 많은 중복 정보가 포함될 수 있으므로 권장되지 않습니다.
virt-admin
유틸리티를 사용하여 빈 필터 세트를 지정합니다.# virt-admin -c virtqemud:///system daemon-log-filters Logging filters:
-
선택 사항: 백업 파일을 사용하여 필터를 원래 상태로 복원합니다.
저장된 값과 함께 두 번째 단계를 수행하여 필터를 복원합니다.
23.1.4. 요청을 지원하기 위해 libvirt 디버그 로그 연결
VM(가상 머신) 문제를 진단하고 해결하기 위해 추가 지원을 요청해야 할 수 있습니다. 지원 요청에 디버그 로그를 연결하는 것이 좋습니다. 지원 팀이 VM 관련 문제를 신속하게 해결하는 데 필요한 모든 정보에 액세스할 수 있도록 하는 것이 좋습니다.
프로세스
- 문제를 보고하고 지원을 요청하려면 지원 케이스를 작성하십시오.
발생한 문제에 따라 보고서와 함께 다음 로그를 연결합니다.
-
libvirt 서비스에 문제가 있는 경우 호스트에서
/var/log/libvirt/libvirt.log
파일을 연결합니다. 특정 VM에 문제가 있는 경우 해당 로그 파일을 첨부합니다.
예를 들어 testguest1 VM의 경우
/var/log/libvirt/qemu/
파일을 연결합니다.testguest1.log
에 있는 testguest1.log
-
libvirt 서비스에 문제가 있는 경우 호스트에서