เมื่อฉันใช้ Ubuntu และ CentOS ผมเห็นและ/dev/sda
/dev/vda
ดังนั้นฉันไม่สามารถเข้าใจความแตกต่างระหว่างสองข้างต้นคืออะไร
เมื่อฉันใช้ Ubuntu และ CentOS ผมเห็นและ/dev/sda
/dev/vda
ดังนั้นฉันไม่สามารถเข้าใจความแตกต่างระหว่างสองข้างต้นคืออะไร
คำตอบ:
พวกมันต่างกันอุปกรณ์
/dev/sda
เป็นดิสก์แผ่นแรกที่มีทั้ง SCSI หรือ (มีแนวโน้มมากกว่า) ที่จะให้ API ไดรฟ์ SCSI แก่ผู้ใช้ ซึ่งรวมถึงไดรฟ์ SATA และไดรฟ์ IDE ที่ใช้ libata นี่อาจเป็น IDE / SATA / SCSI / ฯลฯ ไดรฟ์จำลองโดย hypervisor
/dev/vda
เป็นดิสก์แผ่นแรกที่ใช้ไดรเวอร์ดิสก์ที่รับรู้ถึงการจำลองเสมือน ประสิทธิภาพควรดีขึ้นมากเนื่องจากไฮเปอร์ไวเซอร์ไม่จำเป็นต้องจำลองฮาร์ดแวร์อินเตอร์เฟส
หากดิสก์ถูกเปิดเผยต่อ VM ของคุณภายใต้อินเทอร์เฟซทั้งสองคุณควรเลือก/dev/vda
ให้เร็วขึ้นกว่าเดิม
/dev/vda
อาจมีการเชื่อมต่อทั้งในกรณีที่ระบบปฏิบัติการของคุณไม่สนับสนุนได้เร็วขึ้น นอกเหนือจากนั้น ... ไม่รู้เลยว่าทำไมคุณถึงทำ หากคุณเห็นมันทำที่ไหนสักแห่งจริง ๆ แล้วก็น่าจะเป็นคำถามของตัวเอง
/dev/sdx
และ/dev/hdx
เป็นดิสก์ไดรฟ์แบบฟิสิคัล (ฮาร์ดดิสก์) หรือดิสก์ไดร์ฟแบบฟิสิคัล (ฮาร์ด) แบบจำลอง เมื่อเคอร์เนลหรือโปรแกรม I / O บางตัวทำสิ่งต่าง ๆ เช่นนำดิสก์ไปยังตำแหน่งที่ถูกต้องและทำทุกสิ่งที่มีลักษณะเฉพาะทางกายภาพ
/dev/vdx
ใช้สำหรับดิสก์ไดร์ฟเสมือน (ฮาร์ด) เคอร์เนลทั้งหมดทำเมื่อเป็น I / O'd ที่จะบอกซอฟต์แวร์เวอร์ชวลไลเซชั่นที่บิตต้องอ่าน / เขียนและเสร็จสิ้น โดยทั่วไปแล้วvdx
จะเร็วกว่าเพราะเคอร์เนลไม่จำเป็นต้องบอกให้ฮาร์ดไดรฟ์ทำการสุ่มขยะทั้งหมดที่ไม่ควรทำเพราะมันต้องการบอก VM hypervisor ให้ทำสิ่งต่างๆ
ฉันขอโทษสำหรับคำว่า "สิ่ง" ฉันไม่สามารถคิดถึงคำที่ดีกว่า: D
ในudev
กฎที่/lib/udev/rules.d/*
มีการกำหนดชนิดของฮาร์ดแวร์ที่ได้รับชื่อจากเคอร์เนล
ดูกฎสำหรับ/dev/vd*
:
# partitions do not have hardware identifiers
ENV{DEVTYPE}!="disk", GOTO="persistent_storage_not_a_disk"
# nor do paravirtualized hard disks
KERNEL=="vd*", GOTO="persistent_storage_not_a_disk"
...
KERNEL=="vd*", ATTRS{serial}=="?*", \
ENV{ID_BUS}="virtio", ENV{ID_SERIAL}="$attr{serial}"
ดังนั้น/dev/vda
เป็นครั้งแรก harddrive เสมือน (ไม่มี identificators ฮาร์ดแวร์) virtio
และรหัสรถบัส ดูเหมือนว่าแขก qemu / kvm
กฎของ udev สำหรับ/dev/sd*
อุปกรณ์สามารถเป็นประเภทฮาร์ดแวร์ที่แตกต่างกัน: scsi, ata, ieee1394, usb, ...
/dev/
เป็นส่วนหนึ่งในทรีไดเรกทอรี unix ที่มีไฟล์ "อุปกรณ์" ทั้งหมด - โดยปกติยูนิกซ์จะปฏิบัติต่อทุกสิ่งที่คุณสามารถเข้าถึงได้ในฐานะไฟล์ที่จะอ่านหรือเขียน
ดังนั้นในสาระสำคัญ/dev/sda
คือไฟล์อุปกรณ์ทั้งหมดที่พบในฮาร์ดไดรฟ์ของคุณในขณะที่/dev/vda
ไฟล์อุปกรณ์ทั้งหมดที่พบในพื้นที่ที่จัดสรรสำหรับเครื่องเสมือนของคุณ
วิธีการหนึ่งที่พื้นฐานอย่างเป็นธรรมในการที่เหล่านี้/dev/.da
แฟ้มอุปกรณ์ที่แตกต่างกันที่ยังไม่ได้รับการกล่าวถึงก็คือว่าพวกเขาเป็นตัวแทนที่แตกต่างกันตัวเลขที่สำคัญเคอร์เนล ถ้าคุณทำตามลิงค์ที่คุณจะได้พบหน้าเอกสารมาเคอร์เนลที่มีตารางของส่วนใหญ่ทั้งหมดของตัวเลขที่สำคัญอุปกรณ์ที่ได้รับการจัดสรร ไฟล์เดียวกันนี้มีโอกาสสูงมากในฮาร์ดดิสก์ของคุณ
นี่คือสิ่งที่CTRL-Fอย่างรวดเร็วได้ปรากฏให้ฉันเห็นเกี่ยวกับคำถามของคุณ:
112 block IBM iSeries virtual disk
0 = /dev/iseries/vda First virtual disk, whole disk
8 = /dev/iseries/vdb Second virtual disk, whole disk
...
200 = /dev/iseries/vdz 26th virtual disk, whole disk
208 = /dev/iseries/vdaa 27th virtual disk, whole disk
...
248 = /dev/iseries/vdaf 32nd virtual disk, whole disk
Partitions are handled in the same way as for IDE
disks (see major number 3) except that the limit on
partitions is 7.
112
หมายเลขที่ปรากฏที่ด้านบนระบุจำนวนที่สำคัญและจัดสรรต่างๆ0...8...200
หมายเลขจดทะเบียนก่อนที่แต่ละบรรทัดระบุเป็นไปได้ช่วงจำนวนเล็กน้อย ตัวเลขเหล่านี้เหนือสิ่งอื่นใดถูกใช้โดยเคอร์เนล linux เพื่อจับคู่โมดูลไดรเวอร์กับอุปกรณ์ทางกายภาพ - พวกเขาระบุประเภทอุปกรณ์
รายการด้านบนบัญชีสำหรับ 3 จาก 4 รายการที่พบด้วยCTRL-F - นี่คือรายการที่สี่:
202 block Xen Virtual Block Device
0 = /dev/xvda First Xen VBD whole disk
16 = /dev/xvdb Second Xen VBD whole disk
32 = /dev/xvdc Third Xen VBD whole disk
...
240 = /dev/xvdp Sixteenth Xen VBD whole disk
Partitions are handled in the same way as for IDE
disks (see major number 3) except that the limit on
partitions is 15.
ดูเหมือนว่าจะมีแนวโน้มในvda
ประเภทบล็อก โปรดทราบว่าสิ่งเหล่านี้อาจไม่ทันสมัยในเอกสารประกอบ - แม้จะเชื่อมโยงกับ kernel.org devs นั้นเป็นมนุษย์เพียงคนเดียว แต่แหล่งที่มาของความคลาดเคลื่อนที่เป็นไปได้อีกประการหนึ่งคือที่ซึ่งผู้ดูแลการแจกจ่ายของคุณเลือกที่จะค้นหาอุปกรณ์ เส้นทางจำนวนมากที่ปรากฏในรายการมีจำนวนมากกว่าคำแนะนำเล็กน้อยมีหลายวิธีในการย้ายตำแหน่ง
และนี่คือsda
:
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
Partitions are handled in the same way as for IDE
disks (see major number 3) except that the limit on
partitions is 15.
ดังที่ระบุไว้แล้ว - เส้นทางเหล่านี้สามารถกำหนดค่าได้อย่างชัดเจน - แต่ตัวเลขหลัก / รองจะทำหน้าที่เป็นตัวระบุที่ชัดเจน คุณสามารถตรวจสอบสิ่งเหล่านี้ด้วยการstat
โทรไปยังไฟล์อุปกรณ์
stat /dev/sda
File: ‘/dev/sda’
Size: 0 Blocks: 0 IO Block: 4096 block special file
Device: 5h/5d Inode: 7598 Links: 1 Device type: 8,0
Access: (0660/brw-rw----) Uid: ( 0/ root) Gid: ( 6/ disk)
Access: 2014-07-18 11:10:13.112495427 -0700
Modify: 2014-07-16 18:59:41.313323401 -0700
Change: 2014-07-16 18:59:41.313323401 -0700
Birth: -
/dev/sda
นั่นเป็นของฉัน มีข้อมูลมากมาย แต่ทางด้านขวาคุณจะเห็นว่ามันDevice Type
ถูกระบุว่าเป็นหมายเลขหลัก 8, หมายเลขรอง 0 คุณสามารถ id ไฟล์อุปกรณ์ใด ๆ ได้ค่อนข้างมากด้วยการเปรียบเทียบ maj / min กับตารางที่ลิงก์