/ dev / vda와 / dev / sda의 차이점은 무엇입니까


16

인증을 준비 중이며 클라우드 기반 서비스에 CentOS7 (VirtualBox) 및 다른 인스턴스를 로컬로 설치했습니다.

로컬 시스템에는 a /dev/sda및 클라우드 기반에는 a가 /dev/vda있습니다.

이제이 차이가 정확히 무엇을 의미하는지 궁금합니다. 이 장치의 이름을 지정하기위한 표준 (문서?)이 있습니까?

편집하다:

이 문서는 https://www.kernel.org/doc/Documentation/admin-guide/devices.txt 의 이름을 이해하는 데 매우 유용하다고 생각합니다.

8 block SCSI disk devices (0-15)
      0 = /dev/sda      First SCSI disk whole disk
     16 = /dev/sdb      Second SCSI disk whole disk
     32 = /dev/sdc      Third SCSI disk whole disk
        ...
    240 = /dev/sdp      Sixteenth SCSI disk whole disk

그러나 / dev / vda에 대한 정보를 찾을 수 없습니다.


답변:


15

전체 가상화 및 반 가상화

/ dev / sda 는 IDE / SATA / SCSI 유형의 첫 번째 감지 디스크입니다. 이 경우 하이퍼 바이저에 의해 에뮬레이트 (전체 가상화)됩니다.

/ dev / vda 는 처음 감지 된 반 가상화 디스크 드라이버입니다. 에뮬레이트 된 드라이브에 비해 작업 오버 헤드가 적기 때문에 둘 다 동일한 디스크를 참조하는 경우 에뮬레이트 된 sdX 장치보다 빠릅니다.

참고 문헌 :


에서 http://www.ibm.com/developerworks/library/l-virtio/ :

전체 가상화 및 반 가상화

완전 가상화와 반 가상화라는 두 가지 유형의 가상화 체계에 대해 간단히 설명하겠습니다. 완전 가상화에서 게스트 운영 체제는 베어 메탈에있는 하이퍼 바이저 위에서 실행됩니다. 게스트는 가상화되고 있음을 인식하지 못하므로이 구성에서 작동하기 위해 변경이 필요하지 않습니다. 반대로 반 가상화에서 게스트 운영 체제는 하이퍼 바이저에서 실행되고 있음을 인식 할뿐만 아니라 게스트에서 하이퍼 바이저로의 전환을보다 효율적으로 수행 할 수있는 코드를 포함합니다.

전체 가상화 체계에서 하이퍼 바이저는 대화의 가장 낮은 수준 (예 : 네트워크 드라이버)에서 에뮬레이션하는 장치 하드웨어를 에뮬레이션해야합니다. 이 추상화에서는 에뮬레이션이 깨끗하지만 가장 비효율적이고 복잡합니다. 반 가상화 체계에서 게스트와 하이퍼 바이저는이 에뮬레이션을 효율적으로 만들기 위해 협력 적으로 작업 할 수 있습니다. 반 가상화 접근 방식의 단점은 운영 체제가 가상화되고 있음을 인식하고 작동하기 위해서는 수정이 필요하다는 것입니다.

에서 http://www.carfax.org.uk/docs/qemu-virtio :

반 가상화 장치 란 무엇입니까?

가상 시스템을 실행할 때 가상 환경은 게스트 OS에 장치를 제공해야합니다. 디스크와 네트워크는 기본 2 개 (비디오, USB, 타이머 등)입니다. 실제로 이것은 VM 게스트가 보는 하드웨어입니다.

이제 게스트가 가상화되었다는 사실을 완전히 무시해야한다면 호스트가 실제 하드웨어를 에뮬레이트해야한다는 의미입니다. 이는 특히 네트워크 장치의 경우 속도가 느리고 가상 시스템의 성능 저하의 주요 원인입니다.

그러나 게스트 OS에 가상 환경에 있음을 알리려면 실제 하드웨어의 많은 부분을 에뮬레이션하는 오버 헤드를 피하고 훨씬 더 직접적인 경로를 사용하여 VM 내부의 장치를 처리 할 수 ​​있습니다. 이 접근법을 반 가상화라고합니다. 이 경우 게스트 OS에는 반 가상화 장치와 통신하는 특정 드라이버가 설치되어 있어야합니다. Linux에서이 인터페이스는 표준화되었으며 "virtio"인터페이스라고합니다.


3
특히, /dev/vd*장치는 virtio반가상 디스크 드라이버를 사용하고 있습니다.
Michael Hampton

@MichaelHampton이 정보로 답변을 개선했습니다! 감사!
Thiago Rider Augusto

4
또한 virtio-scsi 드라이버는 sd *로 드라이브를 처리하는 virtio-blk 드라이버보다 빠릅니다. 따라서 vd *가 항상 더 빠르지는 않습니다. 하드웨어 에뮬레이션에 의해 또는 반 가상화 된 컨트롤러에 의해 간접적으로 처리되는 블록 장치가 아니라 반 가상화 된 드라이버에 의해 직접 처리되는 블록 장치입니다.
스풀러
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.