/dev/sdaDies ist die erste Festplatte, die entweder SCSI oder (wahrscheinlicher) die SCSI-Laufwerk-API für Benutzer bereitstellt. Dies schließt SATA-Laufwerke und IDE-Laufwerke mit libata ein. Dies kann auch eine IDE / SATA / SCSI / etc sein. Laufwerk vom Hypervisor emuliert.
/dev/vdaist die erste Festplatte, die den virtualisierungsfähigen Festplattentreiber verwendet. Die Leistung sollte viel besser sein, da der Hypervisor keine Hardwareschnittstelle emulieren muss.
Wenn die Festplatte unter beiden Schnittstellen Ihrer VM ausgesetzt war, sollten Sie dies vorziehen, /dev/vdada sie mit ziemlicher Sicherheit schneller ist.
Was wäre das Ziel, wenn beide / dev / sdX- und / dev / vdX-Geräte in einer Maschine vorhanden wären?
Chromechris
1
@ user42076 Das einzige, was ich mir vorstellen kann, ist ein Hosting-Unternehmen, das nicht genau weiß, welches Betriebssystem auf seiner VM beide Schnittstellen bietet, falls Ihr Betriebssystem die schnelleren nicht unterstützt /dev/vda. Davon abgesehen ... keine Ahnung, warum du es tun würdest. Wenn Sie es tatsächlich irgendwo machen lassen, ist es wahrscheinlich eine eigene Frage wert.
Derobert
@ user42076 Ja, ich werde danach fragen. . . . . lol
chromechris
15
/dev/sdxund /dev/hdxsind physische (Festplatten-) Laufwerke oder emulierte physische (Festplatten-) Laufwerke. Wenn der Kernel oder ein Programm E / A-Vorgänge für diese ausführt, werden alle möglichen Dinge ausgeführt, z. B. die Festplatte an die richtige Stelle zu bringen und alle möglichen physikspezifischen "Dinge" zu erledigen.
/dev/vdxist für virtuelle (Festplatten-) Laufwerke. Der Kernel teilt der Virtualisierungssoftware lediglich mit, dass Bits gelesen / geschrieben werden müssen, und fertig. Im Allgemeinen vdxist es schneller, weil der Kernel die Festplatte nicht anweisen muss, eine ganze Reihe zufälliger Junk-E-Mails zu erstellen, die eigentlich nicht benötigt werden sollten, da der VM-Hypervisor lediglich angewiesen werden muss, bestimmte Aufgaben auszuführen.
Ich entschuldige mich für das Wort "Zeug", ich konnte mir kein besseres Wort vorstellen: D
Das Wort war sehr aussagekräftig - vielen Dank für Ihre Antwort.
MikeServ
1
Zeug? Sie konnten nicht an "etwas" oder "die angeforderte E / A-Operation" denken. Entschuldigung nicht akzeptiert. ;)
Johan
4
In den udevRegeln in /lib/udev/rules.d/*wird definiert, welche Art von Hardware welchen Namen vom Kernel bekommt.
Siehe die Regeln für /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}"
So /dev/vdaist die erste, virtuelle Festplatte (keine Hardware-Identifikatoren) und eine Bus-ID virtio. Sieht aus wie ein qemu / kvm-Gast.
Die udev-Regeln für /dev/sd*Geräte können verschiedene Hardwaretypen sein: scsi, ata, ieee1394, usb, ...
/dev/ ist der Teil in der Unix-Verzeichnisstruktur, der alle "Geräte" -Dateien enthält. Unix behandelt traditionell fast alles, auf das Sie zugreifen können, als Datei, aus der Sie lesen oder in die Sie schreiben können.
Im Wesentlichen befinden sich /dev/sdaalso alle Gerätedateien auf Ihrer Festplatte, während /dev/vdasich alle Gerätedateien auf dem für Ihre virtuelle Maschine zugewiesenen Speicherplatz befinden.
Ein ziemlich grundlegender /dev/.daUnterschied zwischen diesen Gerätedateien, der noch nicht erwähnt wurde, besteht darin, dass sie unterschiedliche Kernel-Hauptnummern darstellen . Wenn Sie diesem Link folgen, gelangen Sie auf eine Kernel-Quelldokumentationsseite, die eine Tabelle mit den meisten zugewiesenen Gerätenummern enthält. Dieselbe Datei befindet sich höchstwahrscheinlich auch irgendwo auf Ihrer Festplatte.
Hier ist, was für ein schnelles STRG-F für mich in Bezug auf Ihre Frage aufgetaucht ist:
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.
Die 112oben aufgeführte Nummer gibt die zugewiesene Hauptnummer an, und die verschiedenen 0...8...200vor jeder Zeile aufgeführten Nummern geben die möglichen Nebennummernbereiche an. Diese Nummern werden unter anderem vom Linux-Kernel verwendet, um Treibermodule mit physischen Geräten zu koppeln - sie identifizieren einen Gerätetyp.
Die obige Liste enthält 3 von 4 Übereinstimmungen, die mit STRG-F gefunden wurden - hier ist die vierte:
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.
Es scheint definitiv einen Trend unter vdaden Blocktypen zu geben. Beachten Sie, dass diese in der Dokumentation möglicherweise nicht vollständig auf dem neuesten Stand sind - auch wenn sie unter kernel.org verlinkt sind. Die Entwickler sind schließlich nur Menschen. Eine weitere mögliche Ursache für Unstimmigkeiten besteht darin, wo die Verantwortlichen Ihrer Distribution die Geräte gefunden haben. Viele der aufgeführten Pfade sind nur Vorschläge - es gibt viele Möglichkeiten, sie zu verlagern.
Und hier ist 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.
Wie bereits erwähnt, sind diese Pfade in hohem Maße konfigurierbar, aber die Haupt- / Nebennummern selbst dienen als ziemlich explizite Kennungen. Sie können diese durch statAufrufen einer Gerätedatei überprüfen .
Das ist meine /dev/sda. Dort gibt es viele Informationen, aber rechts können Sie sehen, dass Device Typees als Hauptzahl 8 und Nebenzahl 0 angegeben ist. Sie können so ziemlich jede Gerätedatei identifizieren, indem Sie ihre Maj / Min mit der verknüpften Tabelle vergleichen.
Antworten:
Sie sind verschiedene Geräte.
/dev/sda
Dies ist die erste Festplatte, die entweder SCSI oder (wahrscheinlicher) die SCSI-Laufwerk-API für Benutzer bereitstellt. Dies schließt SATA-Laufwerke und IDE-Laufwerke mit libata ein. Dies kann auch eine IDE / SATA / SCSI / etc sein. Laufwerk vom Hypervisor emuliert./dev/vda
ist die erste Festplatte, die den virtualisierungsfähigen Festplattentreiber verwendet. Die Leistung sollte viel besser sein, da der Hypervisor keine Hardwareschnittstelle emulieren muss.Wenn die Festplatte unter beiden Schnittstellen Ihrer VM ausgesetzt war, sollten Sie dies vorziehen,
/dev/vda
da sie mit ziemlicher Sicherheit schneller ist.quelle
/dev/vda
. Davon abgesehen ... keine Ahnung, warum du es tun würdest. Wenn Sie es tatsächlich irgendwo machen lassen, ist es wahrscheinlich eine eigene Frage wert./dev/sdx
und/dev/hdx
sind physische (Festplatten-) Laufwerke oder emulierte physische (Festplatten-) Laufwerke. Wenn der Kernel oder ein Programm E / A-Vorgänge für diese ausführt, werden alle möglichen Dinge ausgeführt, z. B. die Festplatte an die richtige Stelle zu bringen und alle möglichen physikspezifischen "Dinge" zu erledigen./dev/vdx
ist für virtuelle (Festplatten-) Laufwerke. Der Kernel teilt der Virtualisierungssoftware lediglich mit, dass Bits gelesen / geschrieben werden müssen, und fertig. Im Allgemeinenvdx
ist es schneller, weil der Kernel die Festplatte nicht anweisen muss, eine ganze Reihe zufälliger Junk-E-Mails zu erstellen, die eigentlich nicht benötigt werden sollten, da der VM-Hypervisor lediglich angewiesen werden muss, bestimmte Aufgaben auszuführen.Ich entschuldige mich für das Wort "Zeug", ich konnte mir kein besseres Wort vorstellen: D
quelle
In den
udev
Regeln in/lib/udev/rules.d/*
wird definiert, welche Art von Hardware welchen Namen vom Kernel bekommt.Siehe die Regeln für
/dev/vd*
:So
/dev/vda
ist die erste, virtuelle Festplatte (keine Hardware-Identifikatoren) und eine Bus-IDvirtio
. Sieht aus wie ein qemu / kvm-Gast.Die udev-Regeln für
/dev/sd*
Geräte können verschiedene Hardwaretypen sein: scsi, ata, ieee1394, usb, ...quelle
/dev/
ist der Teil in der Unix-Verzeichnisstruktur, der alle "Geräte" -Dateien enthält. Unix behandelt traditionell fast alles, auf das Sie zugreifen können, als Datei, aus der Sie lesen oder in die Sie schreiben können.Im Wesentlichen befinden sich
/dev/sda
also alle Gerätedateien auf Ihrer Festplatte, während/dev/vda
sich alle Gerätedateien auf dem für Ihre virtuelle Maschine zugewiesenen Speicherplatz befinden.quelle
Ein ziemlich grundlegender
/dev/.da
Unterschied zwischen diesen Gerätedateien, der noch nicht erwähnt wurde, besteht darin, dass sie unterschiedliche Kernel-Hauptnummern darstellen . Wenn Sie diesem Link folgen, gelangen Sie auf eine Kernel-Quelldokumentationsseite, die eine Tabelle mit den meisten zugewiesenen Gerätenummern enthält. Dieselbe Datei befindet sich höchstwahrscheinlich auch irgendwo auf Ihrer Festplatte.Hier ist, was für ein schnelles STRG-F für mich in Bezug auf Ihre Frage aufgetaucht ist:
Die
112
oben aufgeführte Nummer gibt die zugewiesene Hauptnummer an, und die verschiedenen0...8...200
vor jeder Zeile aufgeführten Nummern geben die möglichen Nebennummernbereiche an. Diese Nummern werden unter anderem vom Linux-Kernel verwendet, um Treibermodule mit physischen Geräten zu koppeln - sie identifizieren einen Gerätetyp.Die obige Liste enthält 3 von 4 Übereinstimmungen, die mit STRG-F gefunden wurden - hier ist die vierte:
Es scheint definitiv einen Trend unter
vda
den Blocktypen zu geben. Beachten Sie, dass diese in der Dokumentation möglicherweise nicht vollständig auf dem neuesten Stand sind - auch wenn sie unter kernel.org verlinkt sind. Die Entwickler sind schließlich nur Menschen. Eine weitere mögliche Ursache für Unstimmigkeiten besteht darin, wo die Verantwortlichen Ihrer Distribution die Geräte gefunden haben. Viele der aufgeführten Pfade sind nur Vorschläge - es gibt viele Möglichkeiten, sie zu verlagern.Und hier ist
sda
:Wie bereits erwähnt, sind diese Pfade in hohem Maße konfigurierbar, aber die Haupt- / Nebennummern selbst dienen als ziemlich explizite Kennungen. Sie können diese durch
stat
Aufrufen einer Gerätedatei überprüfen .Das ist meine
/dev/sda
. Dort gibt es viele Informationen, aber rechts können Sie sehen, dassDevice Type
es als Hauptzahl 8 und Nebenzahl 0 angegeben ist. Sie können so ziemlich jede Gerätedatei identifizieren, indem Sie ihre Maj / Min mit der verknüpften Tabelle vergleichen.quelle