Ubuntu에서 가상 머신을 생성할 때 가상 네트워크 인터페이스에 대한 세 가지 장치 모델 중에서 선택할 수 있습니다.가상 기기,e1000그리고rtl8139.
세 가지의 차이점은 무엇입니까? 즉, 장치 모델을 선택할 때 무엇을 고려해야 합니까?
인터넷 검색 "virtio vs e1000 vs rtl8139"는 별로 도움이 되지 않습니다. 결과의 처음 두 페이지는 내용이 많지 않은 공식 문서이며, 블로그 게시물은 "옵션 사용"으로 요약됩니다.질소, 시도해 봤는데 효과가 좋았거든요. "내가 찾은 유일한 유용한 자료는논의하다이는 나타내는 것 같습니다e1000느리지만 호환성이 최대입니다.가상 기기. 논의는 다음을 의미하는 것 같습니다.e1000가끔은 더 좋아해rtl8139, 그러나 그 이유는 설명하지 않았습니다.
답변1
가상 머신 설정, e1000
Intel NIC 에뮬레이션, rtl8139
Realtek NIC 에뮬레이션 의 맥락에서 virtio
반가상화 드라이버입니다. 즉, VM에서 실행 중임을 "인식"하고 기본적으로 VM과 가상 머신 간에 네트워크 트래픽을 전달합니다. 가능한 가장 직접적인 방법으로 호스트하세요.
VM에서 레거시 운영 체제를 실행하는 경우 레거시 운영 체제에서 지원하는 NIC를 기반으로 가상 NIC를 선택해야 할 수도 있습니다. 인텔은 e1000
상당히 오래되고 알려지지 않은 운영 체제에 대한 드라이버도 제공합니다. 그러나 물리적 e1000 네트워크 카드의 하드웨어는 상당히 복잡하므로 이를 에뮬레이트해야 하기 때문에 약간의 오버헤드가 발생합니다.
Realtek 8139는 하드웨어 측면에서 매우 간단하므로 가상 머신에서 에뮬레이션하는 것이 Intel e1000보다 쉬울 것입니다. 그러나 반면에 단순성은 가상 머신 내부의 운영 체제가 네트워크 카드 에뮬레이션 조건을 충족하기 위해 추가 작업을 수행해야 하는 반면 실제 호스트 네트워크 카드는 하드웨어에서 일부 작업을 완료할 수 있음을 의미하기도 합니다.
그러나 VM 내부에서 실행 중인 모든 항목이 이를 지원하는 경우 virtio
VM이 관련된 대부분의 단계를 간단히 건너뛸 수 있으므로 VFIO 패스스루/SR-IOV용으로 설계된 호스트 NIC 하드웨어 외에 최고의 성능을 제공할 가능성이 높습니다. 가상 NIC를 시뮬레이션하고 가상 하드웨어를 제어함으로써 호스트는 실제 물리적 NIC의 하드웨어 기능을 활용하여 가상 머신 트래픽의 이점을 극대화합니다.