A.3. virt-who 문제 해결 방법
virt-who 상태 확인
Satellite 웹 UI에서 virt-who의 상태를 확인하려면 Infrastructure > Virt-who 구성으로 이동하여 각 virt-who 인스턴스의 Status 열을 확인합니다. OK
상태는 virt-who가 Satellite 서버에 성공적으로 연결하고 각 하이퍼바이저에서 관리하는 가상 시스템을 보고 있음을 나타냅니다.
CLI를 사용하여 모든 virt-who 인스턴스의 상태를 나열하려면 Satellite Server에서 다음 명령을 입력합니다.
# hammer virt-who-config list
명령의 출력에는 각 virt-who 인스턴스가 Satellite Server에 보고되는 날짜와 시간이 포함됩니다.
디버그 로깅
virt-who가 기본적으로 모든 활동을 로깅하는 /var/log/rhsm/rhsm.log
파일을 확인합니다.
보다 자세한 로깅을 활성화하려면 virt-who 구성을 수정합니다.
- Satellite 웹 UI에서 디버깅 출력 활성화 확인란을 선택합니다.
-
Hammer CLI에서
--debug true
옵션을 추가합니다.
변경 사항을 적용하려면 구성을 재배포합니다.
기본 문제가 해결되면 virt-who 구성을 수정하여 디버깅을 비활성화한 다음 구성을 다시 배포합니다.
설정 옵션 테스트
필요에 따라 변경을 수행하고 결과를 테스트하십시오. virt-who는 구성 파일, 인증 정보 및 가상화 플랫폼 연결을 테스트하는 데 도움이 되는 두 가지 옵션을 제공합니다.
-
virt-who --one-shot
명령은 구성 파일을 읽고 가상 시스템 목록을 검색한 다음 Satellite 서버로 보낸 다음 즉시 종료합니다. -
virt-who --print
명령은 구성 파일을 읽고 가상 시스템 목록을 출력하지만 Satellite 서버로 보내지는 않습니다.
예상되는 출력은 JSON 형식의 하이퍼바이저와 해당 가상 머신 목록입니다. 다음은 VMware vSphere 인스턴스에서 추출한 것입니다. 모든 하이퍼바이저의 출력은 동일한 구조를 따릅니다.
{ "guestId": "422f24ed-71f1-8ddf-de53-86da7900df12", "state": 5, "attributes": { "active": 0, "virtWhoType": "esx", "hypervisorType": "vmware" } },
여러 virt-who 구성 파일을 사용할 때 문제 식별
한 서버에 여러 개의 virt-who 구성 파일이 있는 경우 각 파일이 이동한 후 테스트하면서 한 번에 하나의 파일을 다른 디렉터리로 이동합니다. 문제가 더 이상 발생하지 않으면 원인은 가장 최근에 이동된 파일과 연결됩니다. 문제를 해결한 후 virt-who 구성 파일을 원래 위치로 반환합니다.
또는 --config
옵션을 사용하여 해당 위치를 지정하여 개별 파일을 이동한 후 테스트할 수 있습니다. 예를 들면 다음과 같습니다.
# virt-who --debug --one-shot --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
가상 머신 수 확인
다음 명령을 입력하여 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