जब मैं Ubuntu और CentOS का उपयोग करता हूं, तो मैं देखता हूं /dev/sda
और /dev/vda
। तो मुझे समझ नहीं आ रहा है कि दोनों के बीच क्या अंतर है?
जब मैं Ubuntu और CentOS का उपयोग करता हूं, तो मैं देखता हूं /dev/sda
और /dev/vda
। तो मुझे समझ नहीं आ रहा है कि दोनों के बीच क्या अंतर है?
जवाबों:
वे अलग-अलग डिवाइस हैं।
/dev/sda
वह पहली डिस्क है जो या तो SCSI है या (अधिक संभावना है) उपयोगकर्ता भूमि को SCSI ड्राइव API प्रदान करता है। इसमें लिबटा का उपयोग करके SATA ड्राइव और IDE ड्राइव शामिल हैं। यह एक आईडीई / एसएटीए / एससीएसआई / आदि भी हो सकता है। हाइपरविजर द्वारा उत्सर्जित ड्राइव।
/dev/vda
वर्चुअलाइजेशन-जागरूक डिस्क ड्राइवर का उपयोग करने वाला पहला डिस्क है। प्रदर्शन बेहतर होना चाहिए, क्योंकि हाइपरविजर को कुछ हार्डवेयर इंटरफ़ेस का अनुकरण नहीं करना पड़ता है।
यदि डिस्क आपके वीएम में दोनों इंटरफेस के तहत उजागर हो गई है, तो आपको पसंद करना चाहिए /dev/vda
क्योंकि यह लगभग निश्चित रूप से तेज होगा।
/dev/vda
। इसके अलावा ... पता नहीं आप ऐसा क्यों करेंगे। यदि आप वास्तव में इसे कहीं देख रहे हैं, तो शायद यह स्वयं का प्रश्न है।
/dev/sdx
और /dev/hdx
फिजिकल (हार्ड) डिस्क ड्राइव या इमिज्ड फिजिकल (हार्ड) डिस्क ड्राइव हैं। जब कर्नेल या कुछ प्रोग्राम I / O इन के लिए होता है, तो यह सभी प्रकार की चीजें करता है जैसे डिस्क को सही स्थान पर लाने और सभी प्रकार के भौतिक-विशिष्ट "सामान"।
/dev/vdx
वर्चुअल (हार्ड) डिस्क ड्राइव के लिए है। सभी कर्नेल तब होता है जब यह I / O'd है, को वर्चुअलाइजेशन सॉफ़्टवेयर को बताता है जिसे बिट्स को पढ़ने / लिखने की आवश्यकता होती है और यह किया जाता है। सामान्य रूप में,vdx
तेजी से होता है क्योंकि कर्नेल को रैंडम जंक के पूरे समूह को करने के लिए हार्ड ड्राइव को बताने की आवश्यकता नहीं होती है, जिसकी वास्तव में जरूरत नहीं होनी चाहिए क्योंकि यह केवल सामान करने के लिए VM हाइपरवाइजर को बताने की आवश्यकता होती है।
मैं शब्द "सामान" के लिए माफी माँगता हूँ, मैं एक बेहतर शब्द के बारे में नहीं सोच सकता: डी
में 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, ...
/dev/
यूनिक्स निर्देशिका ट्री में वह हिस्सा है जिसमें सभी "डिवाइस" फाइलें हैं - यूनिक्स परंपरागत रूप से उन सभी चीजों के बारे में व्यवहार करता है जिन्हें आप पढ़ने या लिखने के लिए फाइल के रूप में एक्सेस कर सकते हैं।
तो संक्षेप में, /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
प्रत्येक पंक्ति से पहले सूचीबद्ध नंबरों संभव मामूली संख्या पर्वतमाला संकेत मिलता है। इन नंबरों के अलावा, कई अन्य चीजों के लिए लाइनक्स कर्नेल का उपयोग भौतिक उपकरणों के साथ ड्राइवर मॉड्यूल को जोड़ने के लिए किया जाता है - वे एक डिवाइस प्रकार की पहचान करते हैं।
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. के रूप में निर्दिष्ट की गई है। आप इसके मेज / मिन से जुड़ी तालिका की तुलना करके किसी भी डिवाइस फ़ाइल को बहुत अधिक आईडी कर सकते हैं।