21장. 가상 머신 문제 진단

VM(가상 머신)으로 작업할 때 다양한 심각도 수준에 문제가 발생할 수 있습니다. 일부 문제는 빠르고 쉽게 해결할 수 있지만 다른 문제의 경우 VM 관련 데이터 및 로그를 캡처하여 문제를 보고하거나 진단해야 할 수 있습니다.

다음 섹션에서는 로그 생성 및 일부 일반적인 VM 문제 진단 및 이러한 문제 보고에 대한 자세한 정보를 제공합니다.

21.1. libvirt 디버그 로그 생성

VM(가상 머신) 문제를 진단하려면 libvirt 디버그 로그를 생성하고 검토하는 것이 유용합니다. 디버그 로그를 연결하는 것도 VM 관련 문제를 해결하는 지원을 요청할 때 유용합니다.

다음 섹션에서는 디버그 로그 의 정의, 지속적인으로 설정하는 방법,런타임 중에 활성화, 문제 보고 시 이를 연결하는 방법에 대해 설명합니다.

21.1.1. libvirt 디버그 로그 이해

디버그 로그는 VM(가상 머신) 런타임 중에 발생하는 이벤트에 대한 데이터가 포함된 텍스트 파일입니다. 로그는 호스트 라이브러리 및 libvirt 데몬과 같은 기본 서버 측 기능에 대한 정보를 제공합니다. 로그 파일에는 실행 중인 모든 VM의 표준 오류 출력(stderr)도 포함되어 있습니다.

디버그 로깅은 기본적으로 활성화되어 있지 않으며 libvirt를 시작할 때 활성화해야 합니다. 단일 세션에 대한 로깅을 활성화하거나 영구적으로 활성화할 수 있습니다. 데몬 런타임 설정을 수정하여 libvirt 데몬 세션이 이미 실행 중인 경우 로깅을 활성화할 수도 있습니다.

libvirt 디버그 로그를 연결하는 것도 VM 문제에 대한 지원을 요청할 때 유용합니다.

21.1.2. libvirt 디버그 로그에 대한 영구 설정 활성화

libvirt를 시작할 때마다 libvirt 디버그 로깅이 자동으로 활성화되도록 구성할 수 있습니다. 기본적으로 virtqemud 는 RHEL 9의 기본 libvirt 데몬입니다. libvirt 구성을 영구적으로 변경하려면 /etc/libvirt 디렉터리에 있는 virtqemud.conf 파일을 편집해야 합니다.

참고

예를 들어 RHEL 8에서 업그레이드하는 경우와 같이 libvirtd 가 활성화된 libvirt 데몬인 경우도 있습니다. 이 경우 libvirtd.conf 파일을 대신 편집해야 합니다.

절차

  1. 편집기에서 virtqemud.conf 파일을 엽니다.
  2. 요구 사항에 따라 필터를 교체하거나 설정합니다.

    표 21.1. 디버깅 필터 값

    1

    libvirt에서 생성한 모든 메시지를 기록합니다.

    2

    디버그되지 않은 모든 정보를 기록합니다.

    3

    모든 경고 및 오류 메시지를 기록합니다. 이는 기본값입니다.

    4

    오류 메시지만 기록합니다.

    예 21.1. 로깅 필터를 위한 데몬 설정 샘플

    다음 설정:

    • 원격,util.json 의 모든 오류 및 경고 메시지를 기록하십시오................ ................................
    • 이벤트 계층의 오류 메시지만 기록합니다.
    • 필터링된 로그를 /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"
  3. 저장하고 종료합니다.
  4. libvirt 데몬을 다시 시작합니다.

    $ systemctl restart virtqemud.service

21.1.3. 런타임 중 libvirt 디버그 로그 활성화

libvirt 데몬의 런타임 설정을 수정하여 디버그 로그를 활성화하고 출력 파일에 저장할 수 있습니다.

이 기능은 문제를 다시 시작하거나 동시에 실행 중인 마이그레이션 또는 백업과 같은 다른 프로세스가 있기 때문에 libvirt 데몬을 다시 시작할 수 없습니다. 구성 파일을 편집하거나 데몬을 다시 시작하지 않고 명령을 시도하려는 경우에도 런타임 설정을 수정할 수 있습니다.

사전 요구 사항

  • libvirt-admin 패키지가 설치되어 있는지 확인합니다.

절차

  1. 선택 사항: 활성 로그 필터 세트를 백업합니다.

    # virt-admin -c virtqemud:///system daemon-log-filters >> virt-filters-backup
    참고

    로그를 생성한 후 복원할 수 있도록 활성 필터 세트를 백업하는 것이 좋습니다. 필터를 복원하지 않으면 시스템 성능에 영향을 줄 수 있는 메시지가 계속 기록됩니다.

  2. virt-admin 유틸리티를 사용하여 디버깅을 활성화하고 요구 사항에 따라 필터를 설정합니다.

    표 21.2. 디버깅 필터 값

    1

    libvirt에서 생성한 모든 메시지를 기록합니다.

    2

    디버그되지 않은 모든 정보를 기록합니다.

    3

    모든 경고 및 오류 메시지를 기록합니다. 이는 기본값입니다.

    4

    오류 메시지만 기록합니다.

    예 21.2. 로깅 필터를 위한 virt-admin 설정 샘플

    다음 명령:

    • 원격,util.json 및 CHAP 계층의 모든 오류 및 경고 메시지를 기록합니다.
    • 이벤트 계층의 오류 메시지만 기록합니다.
    # virt-admin -c virtqemud:///system daemon-log-filters "3:remote 4:event 3:util.json 3:rpc"
  3. virt-admin 유틸리티를 사용하여 로그를 특정 파일 또는 디렉터리에 저장합니다.

    예를 들어 다음 명령은 로그 출력을 libvirt.log 파일에 /var/log/libvirt/ 디렉터리에 저장합니다.

    # virt-admin -c virtqemud:///system daemon-log-outputs "1:file:/var/log/libvirt/libvirt.log"
  4. 선택 사항: 필터를 제거하여 모든 VM 관련 정보가 포함된 로그 파일을 생성할 수도 있습니다. 그러나 이 파일에는 libvirt의 모듈에서 생성된 다수의 중복 정보가 포함될 수 있으므로 권장되지 않습니다.

    • virt-admin 유틸리티를 사용하여 빈 필터 세트를 지정합니다.

      # virt-admin -c virtqemud:///system daemon-log-filters
        Logging filters:
  5. 선택 사항: 백업 파일을 사용하여 필터를 원래 상태로 복원합니다.
    저장된 값을 사용하여 두 번째 단계를 수행하여 필터를 복원합니다.

21.1.4. 요청을 지원하기 위해 libvirt 디버그 로그 연결

VM(가상 머신) 문제를 진단하고 해결하기 위해 추가 지원을 요청해야 할 수 있습니다. 지원 팀에 VM 관련 문제를 신속하게 해결하는 데 필요한 모든 정보에 액세스할 수 있도록 디버그 로그를 지원 요청에 연결하는 것이 좋습니다.

절차

  • 문제를 보고하고 지원을 요청하려면 지원 케이스를 여십시오.
  • 발생한 문제에 따라 보고서와 함께 다음 로그를 연결합니다.

    • libvirt 서비스에 문제가 있으면 호스트에서 /var/log/libvirt/libvirt.log 파일을 연결합니다.
    • 특정 VM에 문제가 있는 경우 해당 로그 파일을 연결합니다.

      예를 들어 testguest1 VM의 경우 /var/log/libvirt/qemu/ testguest1.log 에 있는 testguest1.log 파일을 연결합니다.