ความแตกต่างระหว่าง / dev / vda และ / dev / sda คืออะไร


16

ฉันกำลังเตรียมการรับรองและมี CentOS7 (VirtualBox) ที่ติดตั้งในเครื่องและอีกอินสแตนซ์อื่นในบริการบนคลาวด์

ในระบบท้องถิ่นฉันมีและบนเมฆตามฉันมี/dev/sda/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 ในกรณีนี้จำลอง (เต็มเสมือนจริง) โดย hypervisor

/ dev / vdaเป็นดิสก์ไดรเวอร์ paravirtualizated ที่ตรวจพบครั้งแรก มันเร็วกว่าอุปกรณ์ sdX ที่จำลองถ้าทั้งคู่ถูกอ้างอิงไปยังดิสก์เดียวกันเนื่องจากมีค่าใช้จ่ายในการดำเนินการน้อยกว่าเมื่อเปรียบเทียบกับไดรฟ์ที่จำลอง

อ้างอิง:


จากhttp://www.ibm.com/developerworks/library/l-virtio/ :

การจำลองเสมือนเต็มรูปแบบเทียบกับการจำลองเสมือนจริง

เริ่มต้นด้วยการพูดคุยอย่างรวดเร็วเกี่ยวกับรูปแบบการจำลองเสมือนสองแบบที่แตกต่างกัน: การจำลองเสมือนแบบเต็มและการจำลองเสมือน ในการจำลองเสมือนแบบเต็มระบบปฏิบัติการของแขกจะทำงานบนไฮเปอร์ไวเซอร์ที่อยู่บนโลหะเปลือย แขกไม่ทราบว่ากำลังทำเวอร์ชวลไลเซชันและไม่ต้องการเปลี่ยนแปลงการทำงานในการกำหนดค่านี้ ในทางกลับกันใน paravirtualization ระบบปฏิบัติการของแขกไม่เพียง แต่ตระหนักว่ากำลังทำงานบนไฮเปอร์ไวเซอร์ แต่รวมถึงรหัสเพื่อทำให้การเปลี่ยนจากแขกเป็นไฮเปอร์ไวเซอร์มีประสิทธิภาพมากขึ้น

ในรูปแบบการจำลองเสมือนเต็มรูปแบบไฮเปอร์ไวเซอร์ต้องเลียนแบบฮาร์ดแวร์ของอุปกรณ์ซึ่งจำลองที่ระดับต่ำสุดของการสนทนา (ตัวอย่างเช่นไปยังไดรเวอร์เครือข่าย) แม้ว่าอีมูเลชันจะมีความสะอาดในสิ่งที่เป็นนามธรรมนี้ แต่ก็ยังไม่มีประสิทธิภาพและซับซ้อนที่สุด ในรูปแบบ paravirtualization แขกและไฮเปอร์ไวเซอร์สามารถทำงานร่วมกันเพื่อให้การจำลองนี้มีประสิทธิภาพ ข้อเสียของวิธีการ paravirtualization คือระบบปฏิบัติการทราบว่ากำลังทำเวอร์ช่วลไลเซชัน

จากhttp://www.carfax.org.uk/docs/qemu-virtio :

อุปกรณ์ paravirtual คืออะไร

เมื่อเรียกใช้เครื่องเสมือนสภาพแวดล้อมเสมือนจริงจะต้องแสดงอุปกรณ์ให้กับแขกระบบปฏิบัติการ - ดิสก์และเครือข่ายเป็นอุปกรณ์หลักสองตัว (รวมถึงวิดีโอ, USB, ตัวจับเวลาและอื่น ๆ ) สิ่งนี้เป็นฮาร์ดแวร์ที่แขก VM เห็น

ตอนนี้ถ้าแขกจะต้องถูกเพิกเฉยต่อความจริงที่ว่ามันเป็นเวอร์ช่วลไลเซชั่นนั่นหมายความว่าโฮสต์ต้องเลียนแบบฮาร์ดแวร์จริงบางชนิด ค่อนข้างช้า (โดยเฉพาะอุปกรณ์เครือข่าย) และเป็นสาเหตุหลักของประสิทธิภาพที่ลดลงในเครื่องเสมือน

อย่างไรก็ตามหากคุณยินดีที่จะให้แขกระบบปฏิบัติการทราบว่าอยู่ในสภาพแวดล้อมเสมือนคุณสามารถหลีกเลี่ยงค่าใช้จ่ายในการจำลองฮาร์ดแวร์จริงและใช้เส้นทางที่ไกลขึ้นเพื่อจัดการอุปกรณ์ภายใน VM วิธีนี้เรียกว่า paravirtualisation ในกรณีนี้ guest OS ต้องการไดรเวอร์เฉพาะที่ติดตั้งซึ่งพูดคุยกับอุปกรณ์ paravirtual ภายใต้ Linux อินเทอร์เฟซนี้ได้มาตรฐานและเรียกว่าอินเทอร์เฟซ "virtio"


3
โดยเฉพาะอย่างยิ่ง/dev/vd*อุปกรณ์กำลังใช้virtioไดรเวอร์ดิสก์ paravirtual
Michael Hampton

@MichaelHampton ฉันได้ปรับปรุงคำตอบของฉันด้วยข้อมูลนี้! ขอบคุณ!
Thiago Rider Augusto

4
นอกจากนี้ไดรเวอร์ virtio-scsi นั้นเร็วกว่าไดรเวอร์ virtio-blk ซึ่งระบุตำแหน่งไดรฟ์โดย sd * ดังนั้น vd * จะไม่เร็วกว่าทุกสิ่งที่มันหมายถึงคืออุปกรณ์บล็อกที่จัดการโดยตรงโดยไดรเวอร์ paravirtualized แทนที่จะเป็นอุปกรณ์บล็อกที่จัดการโดยการจำลองฮาร์ดแวร์หรือโดยอ้อมโดยคอนโทรลเลอร์ paravirtualized
Spooler
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.