एसडीएक्स और वीडीएक्स के बीच अंतर


33

जब मैं Ubuntu और CentOS का उपयोग करता हूं, तो मैं देखता हूं /dev/sdaऔर /dev/vda। तो मुझे समझ नहीं आ रहा है कि दोनों के बीच क्या अंतर है?


एक वीएम में इनमें से एक है?
गोल्डीलॉक्स

हाँ। मैं वीएम का उपयोग कर रहा हूं .. :)
सुपुन रथनायके

जवाबों:


29

वे अलग-अलग डिवाइस हैं।

/dev/sdaवह पहली डिस्क है जो या तो SCSI है या (अधिक संभावना है) उपयोगकर्ता भूमि को SCSI ड्राइव API प्रदान करता है। इसमें लिबटा का उपयोग करके SATA ड्राइव और IDE ड्राइव शामिल हैं। यह एक आईडीई / एसएटीए / एससीएसआई / आदि भी हो सकता है। हाइपरविजर द्वारा उत्सर्जित ड्राइव।

/dev/vdaवर्चुअलाइजेशन-जागरूक डिस्क ड्राइवर का उपयोग करने वाला पहला डिस्क है। प्रदर्शन बेहतर होना चाहिए, क्योंकि हाइपरविजर को कुछ हार्डवेयर इंटरफ़ेस का अनुकरण नहीं करना पड़ता है।

यदि डिस्क आपके वीएम में दोनों इंटरफेस के तहत उजागर हो गई है, तो आपको पसंद करना चाहिए /dev/vdaक्योंकि यह लगभग निश्चित रूप से तेज होगा।


2
एक मशीन में दोनों / dev / sdX & / dev / vdX डिवाइस होने का लक्ष्य क्या होगा?
क्रोमच्रिस

1
@ user42076 केवल एक चीज जो मैं सोच सकता हूं कि एक होस्टिंग कंपनी है जो यह नहीं जानती है कि आप अपने वीएम पर चल रहे ओएस को दोनों इंटरफेस प्रदान कर सकते हैं, यदि आपका ओएस तेजी से समर्थन नहीं करता है /dev/vda। इसके अलावा ... पता नहीं आप ऐसा क्यों करेंगे। यदि आप वास्तव में इसे कहीं देख रहे हैं, तो शायद यह स्वयं का प्रश्न है।
१०:१६

@ user42076 हाँ, मैं इस बारे में पूछने जा रहा हूँ। । । । । lol
क्रोमक्रिस

15

/dev/sdxऔर /dev/hdxफिजिकल (हार्ड) डिस्क ड्राइव या इमिज्ड फिजिकल (हार्ड) डिस्क ड्राइव हैं। जब कर्नेल या कुछ प्रोग्राम I / O इन के लिए होता है, तो यह सभी प्रकार की चीजें करता है जैसे डिस्क को सही स्थान पर लाने और सभी प्रकार के भौतिक-विशिष्ट "सामान"।

/dev/vdxवर्चुअल (हार्ड) डिस्क ड्राइव के लिए है। सभी कर्नेल तब होता है जब यह I / O'd है, को वर्चुअलाइजेशन सॉफ़्टवेयर को बताता है जिसे बिट्स को पढ़ने / लिखने की आवश्यकता होती है और यह किया जाता है। सामान्य रूप में,vdx तेजी से होता है क्योंकि कर्नेल को रैंडम जंक के पूरे समूह को करने के लिए हार्ड ड्राइव को बताने की आवश्यकता नहीं होती है, जिसकी वास्तव में जरूरत नहीं होनी चाहिए क्योंकि यह केवल सामान करने के लिए VM हाइपरवाइजर को बताने की आवश्यकता होती है।

मैं शब्द "सामान" के लिए माफी माँगता हूँ, मैं एक बेहतर शब्द के बारे में नहीं सोच सकता: डी


यह शब्द बहुत स्पष्ट था - आपके उत्तर के लिए धन्यवाद।
मोकेसर

1
सामग्री? आप "कुछ" या "अनुरोधित IO ऑपरेशन" के बारे में नहीं सोच सकते थे। माफी स्वीकार नहीं की। ;)
जोहान

4

में 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 पहला, वर्चुअल हार्डड्राइव (कोई हार्डवेयर पहचानकर्ता नहीं) और एक बस आईडी है virtio। एक qemu / kvm अतिथि की तरह दिखता है।

/dev/sd*उपकरणों के लिए udv नियम अधिक भिन्न प्रकार के हार्डवेयर हो सकते हैं: scsi, ata, ieee1394, usb, ...


2

/dev/ यूनिक्स निर्देशिका ट्री में वह हिस्सा है जिसमें सभी "डिवाइस" फाइलें हैं - यूनिक्स परंपरागत रूप से उन सभी चीजों के बारे में व्यवहार करता है जिन्हें आप पढ़ने या लिखने के लिए फाइल के रूप में एक्सेस कर सकते हैं।

तो संक्षेप में, /dev/sdaआपके हार्डड्राइव में पाई जाने वाली सभी डिवाइस फाइलें हैं, जबकि /dev/vdaआपकी वर्चुअल मशीन के लिए आवंटित अंतरिक्ष में सभी डिवाइस फाइलें हैं।


0

एक काफी मौलिक तरीका है जिसमें ये /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प्रत्येक पंक्ति से पहले सूचीबद्ध नंबरों संभव मामूली संख्या पर्वतमाला संकेत मिलता है। इन नंबरों के अलावा, कई अन्य चीजों के लिए लाइनक्स कर्नेल का उपयोग भौतिक उपकरणों के साथ ड्राइवर मॉड्यूल को जोड़ने के लिए किया जाता है - वे एक डिवाइस प्रकार की पहचान करते हैं।

CTRL-F के साथ पाए गए 4 मैचों में से 3 के लिए उपरोक्त सूची - यहाँ चौथा है:

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 पर भी लिंक किए गए हैं। देवता, सब के बाद, केवल मानव हैं। लेकिन विसंगति का एक अन्य संभावित स्रोत वह है जहां आपके वितरण के अनुरक्षकों ने उपकरणों का पता लगाने के लिए चुना है। रास्तों की एक बड़ी संख्या सुझावों की तुलना में थोड़ी अधिक राशि को सूचीबद्ध करती है - उन्हें स्थानांतरित करने के कई तरीके हैं।

और यहाँ है 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. के रूप में निर्दिष्ट की गई है। आप इसके मेज / मिन से जुड़ी तालिका की तुलना करके किसी भी डिवाइस फ़ाइल को बहुत अधिक आईडी कर सकते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.