VM 내에서 VMWare 유형 결정

VM 내에서 VMWare 유형 결정

게스트 VM이 Linux 시스템인 경우 VM(예: 게스트 OS) 자체 내에서 VMWare 유형(ESXi, Workstation, Fusion 등)을 확인할 수 있습니까?

hypervisor나는 in grepping for in /proc/cpuinfo, using 등 다양한 것을 시도했지만 lscpu내가 찾은 것은 "vmware" 뿐이며 구체적인 내용은 없습니다.

나는 컴퓨터에 대한 루트 권한이 없습니다. 상황이 바뀌면 루트로만 가능한 솔루션에 관심이 있지만 일부 작업에 유용할 것입니다. 또한 저는 주로 Linux 솔루션에 관심이 있지만 Windows 전용 솔루션도 유용할 수 있습니다.

제가 묻는 이유는 성능을 파악하기 위해서입니다. ESXi는 a) 일반적으로 "실제 하드웨어"™에 배포되고 b) 추가 OS 오버헤드가 없습니다. 보다이 서버 오류 질문자세한 내용은 특히이 답변.

답변1

dmidecode 출력의 BIOS 버전 문자열에서 버전을 확인할 수 있습니다. 이 작업을 수행하는 방법에 대한 한 가지 예를 찾았습니다.https://fritsoogland.wordpress.com/2013/01/24/determine-vmware-esx-version-from-linux-as-guest-os/날짜는 2013년으로 거슬러 올라가므로 일부 최신 버전이 누락되었을 수 있습니다.

case $( dmidecode | grep -A4 "BIOS Information" | grep Address | awk '{ print $2 }' ) in
"0xE8480" ) echo "ESX 2.5" ;;
"0xE7C70" ) echo "ESX 3.0" ;;
"0xE7910" ) echo "ESX 3.5" ;;
"0xE7910" ) echo "ESX 4"   ;;
"0xEA550" ) echo "ESX 4U1" ;;
"0xEA2E0" ) echo "ESX 4.1" ;;
"0xE72C0" ) echo "ESXi 5"   ;;
"0xEA0C0" ) echo "ESXi 5.1" ;;
"0xEA050" ) echo "ESXi 5.5" ;;
* ) echo "Unknown version: "
dmidecode | grep -A4 "BIOS Information" 
;;
esac

우리 운영 팀은 몇 년 전에 우리가 실행하고 있던 ESX 버전이 무엇인지 알려줄 수 없었지만(으악!!), 특정 버전의 하이퍼바이저가 필요한 새 제품을 테스트하기 위해 준비하고 있었기 때문에 알아야 했습니다. 이것은 나에게 챔피언처럼 작동했습니다.

루트가 아닌 계정으로 이 작업을 수행해야 하는 경우 sudo를 사용하십시오. 'visudo'를 사용하여 sudoers 파일에 액세스한 다음 파일 끝 부분에 아래와 유사한 줄을 추가합니다.

사용자 이름 ALL=(ALL:ALL) NOPASSWD:/usr/sbin/dmidecode

이렇게 하면 'username'이 특별한 인증 없이 dmidecode에 액세스할 수 있습니다. "dmidecode" 대신 "sudo dmidecode"를 실행하세요.

관련 정보