6.7. virt-who 문제 해결 방법
virt-who 상태 확인
virt-who 서비스의 상태를 확인합니다.
# systemctl status virt-who.service
디버그 로깅
virt-who가 기본적으로 모든 활동을 로깅하는 /var/log/rhsm/rhsm.log
파일을 확인합니다.
자세한 로깅은 /etc/virt-who.conf
파일에서 디버깅 옵션을 활성화합니다.
[global] debug=True
변경 사항을 적용하려면 virt-who 서비스를 다시 시작하십시오.
기본 문제가 해결되면 /etc/virt-who.conf
파일을 수정하여 디버깅을 비활성화한 다음 virt-who 서비스를 다시 시작합니다.
설정 옵션 테스트
필요에 따라 변경을 수행하고 결과를 테스트하십시오. virt-who는 구성 파일, 인증 정보 및 가상화 플랫폼에 대한 연결을 테스트하는 데 도움이 되는 세 가지 옵션을 제공합니다.
-
virt-who --one-shot
명령은 구성 파일을 읽고 가상 머신 목록을 검색하여 서브스크립션 관리 시스템으로 보낸 다음 즉시 종료합니다. -
virt-who --print
명령은 구성 파일을 읽고 가상 머신 목록을 출력하지만 서브스크립션 관리 시스템으로 보내지는 않습니다. RHEL 9 Beta부터
virt-who --status
명령은 구성 파일을 읽고 소스 및 대상 시스템 모두에 대한 연결 상태에 대한 요약을 출력합니다.-
--json
옵션과 함께virt-who --status
명령은 각 구성에 대해 JSON 형식으로 추가 연결 데이터를 제공합니다.
-
virt-who --one-shot
및 virt-who --print
명령의 예상 출력은 하이퍼바이저와 해당 가상 머신의 목록이며 JSON 형식으로 되어 있습니다. 다음은 VMware vSphere 인스턴스에서 추출한 것입니다. 모든 하이퍼바이저의 출력은 동일한 구조를 따릅니다.
{ "guestId": "422f24ed-71f1-8ddf-de53-86da7900df12", "state": 5, "attributes": { "active": 0, "virtWhoType": "esx", "hypervisorType": "vmware" } },
virt-who --status
명령에 대한 예상 출력은 virt-who의 각 구성의 연결 상태에 대한 일반 텍스트 요약입니다.
+-------------------------------------------+ Configuration Status +-------------------------------------------+ Configuration Name: esx_config1 Source Status: success Destination Status: success Configuration Name: hyperv-55 Source Status: failure Destination Status: failure
--json
옵션과 함께 virt-who --status
명령에 대한 예상 출력은 마지막 성공적인 실행을 포함하여 JSON 형식으로 각 구성에 대한 추가 정보를 제공합니다. 이 출력에는 각 구성의 성공 또는 실패 상태에 대한 세부 정보도 포함됩니다.
- 상태 보고서에 구성 성공이 표시되면 JSON 출력에 마지막 성공적인 실행 주기 동안 virt-who가 보고한 하이퍼바이저 및 게스트 수가 포함됩니다.
- 상태 보고서에 구성 실패가 표시되면 JSON 출력에 연결된 오류 메시지가 포함됩니다.
"configurations": [ { "name":"esx-conf1", "source":{ "connection":"https://esx_system.example.com", "status":"success", "last_successful_retrieve":"2020-02-28 07:25:25 UTC", "hypervisors":20, "guests":37 }, "destination":{ "connection":"candlepin.example.com", "status":"success", "last_successful_send":"2020-02-28 07:25:27 UTC", "last_successful_send_job_status":"FINISHED" } }, { "name":"hyperv-55", "source":{ "connection":"windows10-3.company.com", "status":"failure", "message":"Unable to connect to server: invalid credentials", "last_successful_retrieve":null }, "destination":{ "connection":"candlepin.company.com", "status":"failure", "message":"ConnectionRefusedError: [Errno 111] Connection refused", "last_successful_send":null, "last_successful_send_job_status":null } } ] }
virt-who --status
명령은 --debug
및 --config
옵션과 함께 사용하여 구성 파일에 대한 추가 정보를 제공할 수도 있습니다.
여러 virt-who 구성 파일을 사용할 때 문제 식별
한 서버에 여러 개의 virt-who 구성 파일이 있는 경우 각 파일이 이동한 후 테스트하면서 한 번에 하나의 파일을 다른 디렉터리로 이동합니다. 문제가 더 이상 발생하지 않으면 원인은 가장 최근에 이동된 파일과 연결됩니다. 문제를 해결한 후 virt-who 구성 파일을 원래 위치로 반환합니다.
또는 --config
옵션을 사용하여 해당 위치를 지정하여 개별 파일을 이동한 후 테스트할 수 있습니다. 예를 들면 다음과 같습니다.
# virt-who --debug --one-shot --config /tmp/conf_name.conf
RHEL 9 베타부터 --debug
및 --config
옵션과 함께 virt-who --status
를 입력하여 디렉터리에서 다른 파일을 제거하지 않고 구성 파일을 확인할 수 있습니다. 예를 들면 다음과 같습니다.
#virt-who --debug --status --config /tmp/conf_name.conf
--json
옵션으로 명령을 입력하여 JSON 형식의 각 구성에 대한 자세한 정보를 볼 수도 있습니다. 예를 들면 다음과 같습니다.
#virt-who --debug --status --json --config /tmp/conf_name.conf
중복 하이퍼바이저 확인
중복 하이퍼바이저는 서브스크립션 및 인타이틀먼트 오류가 발생할 수 있습니다. 다음 명령을 입력하여 중복 하이퍼바이저를 확인합니다.
# systemctl stop virt-who # virt-who -op >/tmp/virt-who.json # systemctl start virt-who # cat /tmp/virt-who.json | json_reformat | grep name | sort | uniq -c | sort -nr | head -n10 3 "name": "localhost" 1 "name": "rhel1.example.com" 1 "name": "rhel2.example.com" 1 "name": "rhel3.example.com" 1 "name": "rhel4.example.com" 1 "name": "rhvh1.example.com" 1 "name": "rhvh2.example.com" 1 "name": "rhvh3.example.com" 1 "name": "rhvh4.example.com" 1 "name": "rhvh5.example.com"
이 예에서 세 개의 하이퍼바이저는 동일한 FQDN(localhost
)을 가지며 고유한 FQDN을 사용하도록 수정해야 합니다.
중복 가상 머신 식별
다음 명령을 입력하여 중복 가상 머신을 확인합니다.
# systemctl stop virt-who # virt-who -op >/tmp/virt-who.json # systemctl start virt-who # cat /tmp/virt-who.json | json_reformat | grep "guestId" | sort | uniq -c | sort -nr | head -n10
하이퍼바이저 수 확인
다음 명령을 입력하여 현재 보고하는 하이퍼바이저 virt-who 수를 확인합니다.
# systemctl stop virt-who # virt-who -op >/tmp/virt-who.json # systemctl start virt-who # cat /tmp/virt-who.json | json_reformat | grep name | sort | uniq -c | wc -l
RHEL 9 베타부터 다음 명령을 입력하여 마지막 성공적인 실행 주기 동안 virt-who가 보고한 하이퍼바이저 수를 확인합니다.
# virt-who --status --json
가상 머신 수 확인
다음 명령을 입력하여 virt-who 현재 보고하는 가상 머신의 수를 확인합니다.
# systemctl stop virt-who # virt-who -op >/tmp/virt-who.json # systemctl start virt-who # cat /tmp/virt-who.json | json_reformat | grep "guestId" | sort | uniq -c | wc -l
RHEL 9 베타부터 마지막 성공적인 실행 주기 동안 virt-who가 보고한 게스트 수를 확인하려면 다음 명령을 입력합니다.
# virt-who --status --json