BIOS 설정에서 시스템이 기본적으로 가상화를 비활성화하는 이유는 무엇입니까?


81

기본 구성이 MMU 및 직접 I / O 가상화를 가능하게하는 시스템은 아직 보지 못했습니다. 예를 들어 VM에서 64 비트 지원을 원할 경우 재부팅하기 위해 BIOS를 재부팅하고 활성화해야하는 경우가 종종 있습니다.

이것이 켜져 있고 가상화를 사용하지 않는 경우 발생하는 상당한 프로세서 오버 헤드가 있습니까? 그렇지 않은 경우 기본적으로 해제 된 이유는 무엇입니까?

답변:


52

VT가 켜진 시스템을 소유 할 수있는 Blue Pill 과 같은 개념 증명 루트킷 이있었습니다. 이 발견 후 대부분의 공급 업체는 일반적인 보안 예방 조치로 VT를 비활성화 한 상태로 장치를 배송하기 시작했습니다.


7
+1 데스크톱 / 노트북에서 VT를 사용하는 사람은 예외입니다. virii에 취약한 기계가 규칙입니다.
Chris S

하드웨어 가상화가 활성화 된 수많은 VM을 실행하는이 새롭고 강력한 개발 기기에 대해 두 번째 생각을하고 있습니다. 가상화 가 필요 하지 않지만 장기적으로는 두 달마다 반복하지 않아도 시간을 절약 할 수 있다고 생각합니다. 이것이 얼마나 큰 문제입니까?
Paperjam

2
사실상 존재하지 않습니다 (이 의견 기준). Blue Pill은 개념 증명이었습니다. 나는 야생에서 이와 같은 것을 알지 못한다.
MDMarra

1
다음은 클라이언트 역할 시스템에서 기본적으로 VT를 끄는 권장 사항을 포함하여 보안 문제에 대한 Microsoft의 평가입니다. msdn.microsoft.com/en-us/windows/hardware/gg463498.aspx
Jpsy

3
마이크로 소프트의 논문은 더 이상 자신의 웹 사이트에서 사용할 수 없습니다, 그러나 당신은 그것을 읽을 수있는 인터넷 아카이브 당신이 원하는 경우.
Josh Kelley

5

우리가 구매하는 모든 서버 블레이드는 기본적으로 가상화를 활성화합니다. 공급 업체가 많은 지원 요청을 절약하기 위해 상업적 결정을했기 때문일 수 있습니다.

프로세서 적중으로 인해 사용 불가능하지는 않지만 사용중인 용도에 따라 사용 불가능합니다. 이러한 기능을 활성화하면 주변 장치 액세스에 영향을 줄 수 있으므로 기본적으로 꺼져있을 수 있습니다.


4
이것이 어떤 주변 장치 액세스에 영향을 줄 수 있습니까? 전에는 들어 본 적이 없습니다.
MDMarra

주변 장치 액세스를 언급 할 때 VT-d에 대해 이야기하고 있습니까?
Zoredache

아뇨, MMU였습니다 Rasberry Pi와 관련이 있습니다.
Sirch

2

이 다른 스레드에 따르면,이 또한 성능에 약간의 영향을 갖고있는 것 같아요 있습니다 https://superuser.com/questions/545101/why-does-hp-recommend-that-i-keep-hardware-virtualization-off을

줄어든 명령 세트가 더 효율적이므로 나에게 관련이있는 것 같습니다. BIOS 옵션을 변경하면 직접 영향을 줄 수 있다고 생각하지 않았습니다.

그 영향이 중대한 지 여부는 알 수 없었지만,이 기능과 잠재적 인 보안 결함을 고려할 때 기본적으로 이러한 기능을 거의 사용하지 않는 것이 좋은 선택 인 것 같습니다.


2
연결된 답변의 효율성 각도는 의미가 없습니다. 명령 캐시는 소프트웨어 프로그램의 명령을 보유합니다. 프로그램이 가상화 지침을 사용하지 않으면 해당 캐시에 영향을 미치지 않습니다. 또한 가상화를 처리하는 별도의 실행 장치 나 무시할 수있는 명령 디코더의 일부가 있다는보고가 없으므로 효율성 차이가 없어야합니다.
Nimrod

1

또 다른 이유는 gettimeofday와 같은 대부분의 사용자 커널 기능이 VDSO에서 이동되기 때문입니다.

때때로 가상화에서이 빠른 경로를 사용할 수 없습니다.

따라서 시스템은 다음을 수행 할 수 없습니다.

이 기능을 빠르게 실행

userland에서 kernel로 값 비싼 전환을 피하고 리턴



0

@MDMarra 답변에서 제기 된 보안 문제 외에도 두 가지 추가 사항을 고려해야합니다.

  1. 사용 가능한 선택적 기능은 다른 기능과의 불쾌하고 예기치 않은 상호 작용을 일으킬 가능성이 적으며 추가 검증이 필요합니다. PC 공급 업체 는 거의 사용하지 않는 기능에 리소스를 사용하는 것을 싫어 하며 클라이언트 측 가상화도 그 중 하나입니다.

  2. # 1로 인해 인텔 기본 클라이언트 펌웨어 / BIOS Blob에 VT가 비활성화되어있는 것 같습니다. 따라서 VT 지원 클라이언트를 제공하는 공급 업체는 펌웨어를 준비 할 때 해당 옵션을 사용자 정의해야합니다.

즉, 현재 2019 년입니다. 기본적으로 VT가 활성화 된 클라이언트가 더 있습니다. 서버는 완전히 다른 문제입니다. 항상 VT가 활성화되어있을뿐만 아니라 VT-d도 종종 활성화됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.