Linux에서 가장 빠른 가상화 솔루션은 무엇입니까?

Linux에서 가장 빠른 가상화 솔루션은 무엇입니까?

아직도 XEN인가요? 아니면 VirtualBox, KVM, VmWare 또는 다른 것인가요?

가장 빠르다는 것은 게스트 VM이 빠르다는 것을 의미합니다(가상화로 인한 최소 속도 저하).

답변1

어떤 조건에서 가장 빠른가요? 하드웨어 가상화의 경우 모든 가상화 플랫폼에서 속도가 동일해야 합니다.

따라서 찾아야 할 유일한 것은 소프트웨어의 하드웨어 가상화 지원입니다.

내가 아는 한 Virtualbox는 아직 IOMMU 하드웨어 가상화를 지원하지 않습니다. KVM, VmWare 및 Xen이 있어야 합니다. Xen과 VmWare는 아마도 그래픽 카드에서 IOMMU를 지원하는 유일한 제품일 것입니다(성공 정도는 다양함).

답변2

가장 빠른 솔루션은 일반적으로 가상화되지 않은 환경보다 오버헤드가 적은 솔루션입니다. "비 OS 다양성" 제한을 처리할 수 있다면 그것은 하나일 것입니다.운영 체제 수준 가상화구현하다. Linux의 경우 이는 다음을 의미합니다.OpenVZ/Virtuozzo,Linux 컨테이너(lxc)그리고가상 서버.

답변3

나는 아직도 그것이 XEN이라고 믿습니다. 한번은 RH 사전 판매 담당자와 이야기를 나눈 후 왜 KVM을 선호하고 XEN을 더 이상 사용하지 않는지 물었습니다. 그는 KVM이 적어도 XEN만큼 빠르다고 말했습니다. 증거를 보내달라고 했는데 아무 것도 돌아오지 않았습니다...

나는 또한 OS 수준에 동의하지 않습니다. IMHO, 가상화 기반 베어메탈 하이퍼바이저는 이보다 오버헤드가 적습니다. 따라서 PV XEN DomU는 거의 베어 메탈만큼 좋습니다.

답변4

가상화 솔루션을 실행하는 Linux 위에 다른 운영 체제를 가상화하는 주요 문제에 대한 매우 구체적인 예를 들어보겠습니다.

다음 시나리오를 상상해 보세요.

  • (가장 싫어하는) Windows 게스트를 실행해야 합니다.
  • 시작해야 해
  • 방문자에게 일부 데이터를 주입해야 합니다.
  • Windows 외부에서는 할 수 없는 일을 해야 합니다(Windows를 싫어하는 작은 이유)
  • 완료된 작업을 추출(Windows 외부에 저장)해야 합니다.
  • 이 게스트의 전원을 꺼야 합니다

이러한 상황을 고려하여 저는 어떤 가상화 솔루션을 통해 더 짧은 시간에 모든 작업을 완료할 수 있는지 알고 싶었습니다.

손님과 함께 뭔가를 해야 하는 시간은 수동 작업이기 때문에 계산되지 않는다고 가정해 보겠습니다. 세 가지 이상은 없습니다.

  1. 가상화된 운영 체제 시작
  2. 호스트/게스트와 데이터 전송
  3. 가상화된 운영 체제를 종료합니다.

이제 당신도 나처럼 편집증이 있고 게스트가 "불변" 상태이므로 이전 실행에서 수행한 모든 작업이 실행될 때마다 손실된다고 가정해 보겠습니다. 항상 동일하게 부팅됩니다. Windows UpDates를 입력하면 아무 작업도 수행되지 않습니다(부팅 시 디스크 상태가 "불변" 상태로 되돌아감). 남은 것은 무엇입니까? 두 가지만 말씀드리면:

  • 손님 시작 시간
  • 뜨거운 땅에서 손님으로 또는 그 반대로 시간 이동

그렇다면 다시 중요한 질문이 떠오릅니다. 어떤 가상화 솔루션이 이 작업을 더 짧은 시간에 수행할 수 있습니까?

내가 알고 사용해 본 예(QEMU 및 VirtualBox)를 예로 들면 다음과 같습니다.

  • QEMU는 모든 하드웨어, 프로세서, 마더보드 등을 "에뮬레이션"하도록 구성되어 있습니다. 모두 "에뮬레이트"되어 있으므로 "가상화" 솔루션은 아니지만 이 예에서는 매우 느린 방법의 샘플 실행을 게스트에게 제공했습니다.
  • VirtualBOX는 하드웨어를 가상화하고 QEMU가 모든 하드웨어를 에뮬레이트하기 때문에 QEMU보다 훨씬 빠릅니다(단지 거북이를 사용하는 방정식 1과 비교)

그렇다면 두 개의 가상화 솔루션이 동일한 게스트를 실행하고 게스트에서 동일한 작업을 수행할 수 있게 된다면... 어느 것이 더 빠를까요? 아니면 동일한 게스트를 시작하는 데 더 적은 시간이 필요한 질문이 더 낫습니까?

간단히 말해서 개발자의 일반적인 예는 다음과 같습니다.

  • 다양한 Windows 버전에서 새로운 애플리케이션 실행 파일을 테스트해야 함

Win95, 98, ME, 2000, XP, Vista, 7, 8, 8.1, 10의 Windows 버전과 10의 모든 하위 버전(1507, 1511, 1604, 1608, 1709...등등) 및 모든 Windows 업데이트 수준을 상상해 보십시오. 등...그리고 각각의 Home, Pro, Enterprise 등).

이로 인해 수십 개의 Windows 가상 게스트 버전에서 새로운 EXE를 테스트하는 것이 어려운 작업이 되었습니다.

실제 작업(새 EXE 테스트)은 1분도 채 걸리지 않지만(EXE에서 새로운 추가 항목을 실행하고 테스트하기만 하면 됩니다) Windows 버전, 업데이트 등을 거의 백만 가지 조합으로 수행해야 한다고 상상해 보세요.

각 조합마다 특정 Windows 버전, 패치 수준 등의 BOOT를 수행해야 합니다. 이는 BOOT는 시간이 1분 미만에서 10분 이상까지 걸릴 수 있음을 의미합니다... 예, 백만 * 1분으로 알고 있습니다 = 100만 분(거의 694.4일)...이것은 시작 시간과 테스트 시간의 비율을 보여주는 순수한 예일 뿐입니다.

이제 가상화 솔루션으로 인해 GUEST가 99.8%의 시간 동안 시작하게 되면 다른 가상화 솔루션을 사용하면(실제로는 거의 동시에) 1.5일이 소요됩니다... 이는 단지 0.2%에 불과합니다... 상상해 보십시오 단지 5%(상상하지 마십시오) , 한 달보다 34.27일이 더 늘어납니다).

그렇다면 질문은 어떤 가상화 솔루션이 게스트 시스템의 더 빠른 실행을 가능하게 하는가입니다. 아니요, 더 짧은 시간에 작업을 완료하기 위해 게스트가 어떤 가상화 솔루션을 사용하는지 이해해야 합니다.

내가 아는 예는 다음과 같습니다.

  • VirtualBox(기본 구성)를 통해 가상 머신에서 Windows 10 Home 64비트 버전 1809.17763.404를 부팅하면 부팅하고 메모장에 입력할 수 있기까지 거의 8분의 1분이 걸립니다.
  • QEMU(가상화 모드, 에뮬레이트되지 않은 모드 및 조정된 cfg)를 통해 게스트에서 동일한 Windows 버전을 부팅하는 데 단 3분 밖에 걸리지 않습니다.

증가율은 37.5%로 고려해 볼 만하다. 1백만 개의 VM에서 EXE를 테스트하는 예로 돌아가면... 이렇게 하면 260일의 작업 시간이 절약됩니다.

(그리고 나에게) 무엇을 알아야 하는지 물어보는 것이 더 빠르다고 생각합니다. 일부는 "유료" 버전이고 일부는 매우 비싸기 때문에(> 1000유로) 전 세계 모든 사람이 모든 버전을 비교하는 데 필요한 테스트를 수행하는 것은 불가능합니다.

이제 개인적인 의견입니다...VirtualBOX는 거북이입니다...실제 하드웨어(USB-ISO에서 새로 설치)의 동일한 Windows 10에서 VirtualBOX에 비해 Windows 10은 3~4분이 아닌 몇 초 만에 부팅됩니다... 하지만 여기서도 실제 하드웨어와 가상화된 하드웨어를 비교하는 것이 아니라 가상화와 "A", 가상화와 "B"를 비교하는 것입니다.

인터넷에서 많은 것을 검색했지만 Windows 게스트 부팅 시간과 가상화 솔루션을 비교한 내용을 찾지 못했습니다.

또 다른 것은 가상화된 환경에서 데이터베이스 등을 실행하는 것입니다. 나는 이에 대해 경험이 없기 때문에 이에 대해 말할 수 없습니다.

내가 말할 수 있는 것은(가능한 모든 Winodws에서 새 EXE를 테스트해야 하기 때문에) VirtualBOX의 부팅 시간에 관한 것입니다... 매우 느리지만... 일부 USB(동글) 및 PCIe 카드를 통과해야 하기 때문에 , 병렬 포트(동글) 등, 그리고 무료로... VirtualBOX에 갇혔습니다.

이는 고객이 더 짧은 시간에 작업을 완료할 수 있게 해주는 가상화 솔루션이 무엇인지에 대한 질문의 실제 텍스트에 초점을 맞추기를 바랍니다.

관련 정보