Schöne Grüße,
Ich arbeite mit RHEL 5.5-Gast-VMs unter VMware ESX 4. Wenn ich die virtuellen Festplatten in den VM-Hardwareeinstellungen konfiguriere, hat jede Festplatte eine SCSI-Adresse im Format "N: M". Zum Beispiel würde "1: 3" SCSI-Hostnummer 1 und SCSI-Ziel-ID 3 bedeuten.
Wenn ich mir die Festplatteninformationen aus dem BIOS der VM oder einem Windows-Betriebssystem ansehe, stimmen die erkannten SCSI-Adressinformationen mit den Einstellungen der virtuellen Hardware überein. Unter Linux stimmen die SCSI-Adresskomponenten jedoch nicht überein, zumindest nicht vollständig oder konsistent.
Ich habe die drei unterstützten virtuellen SCSI- und SAS-Treiber ausprobiert und sie scheinen alle "kaputt" zu sein, aber auf unterschiedliche Weise. Hier ist eine Liste der virtuellen Hardwareadressen im Vergleich zu den unter Linux mit den einzelnen Treibern erkannten Adressen:
Driver vHW Addr Linux Addr
-------- -------- ----------
LSI SAS 0:0 0:0
LSI SAS 0:3 0:1
LSI SAS 0:6 0:2
LSI SCSI 1:1 2:1
LSI SCSI 1:4 2:4
LSI SCSI 1:7 2:7
pvSCSI 2:2 1:2
pvSCSI 2:5 1:5
pvSCSI 2:8 1:8
Meine Hauptfrage ist, warum dies unter Linux geschieht. Die nächste Frage lautet: Wie kann ich das Problem beheben oder selbst beheben?
Wenn ich raten würde, würde ich sagen, dass es ein Problem damit ist, wie der Kernel die SCSI-Hostnummer verteilt und wie der Linux-SCSI-Treiber (im Lieferumfang der VMware-Tools enthalten) die SCSI-Zielnummer erkennt. Vielleicht hat die Reihenfolge, in der die Treiber geladen werden, auch etwas mit dem Problem zu tun. Ich vermute, dass dies nicht udev beinhalten würde, aber ich könnte mich irren.
Alle Gedanken wäre dankbar. Vielen Dank!
PS. Meine Umgebung ist VMware, aber ich brauche keine spezielle Antwort für diese Treiber. Ich stelle mir vor, dass dies ein Problem mit jedem SCSI-Treiber unter Linux sein könnte.
/dev/disk/by-{id,label,path,uuid}
hilfreich für Ihren Zweck finden!Antworten:
Linux ist tatsächlich konsistent und korrekt, nur nicht unbedingt so, wie Sie es erwarten.
LSI SAS: SAS-Adressen sind WWNs und erhalten SCSI-ähnliche IDs, die der Reihenfolge entsprechen, in der sie angezeigt werden. (Dies ist eine Vereinfachung, reicht aber aus. Warum haben Sie überhaupt Lücken?)
LSI SCSI & pvSCSI: Die SCSI-Hostnummer bezieht sich NUR auf die Reihenfolge, in der die Hostadaptertreiber vom Kernel geladen werden, und nicht auf die von VMWare zugewiesenen Nummern. Wenn Sie sie in der anderen Reihenfolge sehen möchten, wechseln Sie die Reihenfolge des Treiberladens. Wechseln Sie höchstwahrscheinlich die Nummerierung in /etc/modprobe.conf und starten Sie neu.
quelle
sg_logs --page=18h /dev/sg0
Folgendes aus : (wobei sg0 das generische Gerät eines Ihrer SAS-Ziele ist), und Sie werden sehen.Ich entferne die richtige Festplatte, indem ich Seriennummern Tray Caddies zuordne. Wir haben Gehäuse mit schlechten LED-Fähigkeiten. Eine neue Festplatte zeigt an, dass sie als / dev / sda angezeigt wird
Dann schreiben wir die Seriennummer auf. Wenn dann eine Festplatte defekt ist, suchen wir nach der Seriennummer (in unserem Fall beschriften wir den physischen Caddy) und ziehen die entsprechende Festplatte.
Aber das hilft dir bei VMware nicht wirklich.
Andererseits könnten Sie ein Skript schreiben, das dasselbe tut. Fügen Sie eine neue Festplatte hinzu, zeichnen Sie die UUID im Gast auf und konsultieren Sie diese Nachschlagetabelle, wenn Sie die Festplatte später automatisch entfernen möchten.
Ich habe nicht wirklich aufgepasst, aber ich denke, meine VMware-Festplatten wurden immer in derselben Reihenfolge eingeschaltet. Sie können also darauf vertrauen, dass sich die scsi-Adresse nicht ändert, wenn Sie die Adresse beibehalten.
quelle
Modernes Linux erstellt das Verzeichnis / dev beim Booten neu und scannt scsi-Hosts in der Reihenfolge, in der sie auf dem PCI-Bus angezeigt werden. In VMware ist dies die Reihenfolge, in der Sie sie der VM hinzufügen.
Wenn Sie zuerst eine Festplatte mit scsi 0: 1 und dann eine mit 2: 2 hinzufügen, sehen sie unter Linux wie folgt aus: 0: 1 und 1: 2. Wenn Sie danach scsi 1: 3 hinzufügen, wird es nach dem Start als 2: 3 angezeigt.
Sie müssen unter Linux nichts bearbeiten. Sie können die Reihenfolge der scsi-Hosts in der VMX-Datei ändern:
Die Reihenfolge, in der sie in der vmx-Datei erscheinen, spielt keine Rolle, nur die pciSlotNumber
Bearbeiten Sie die VMX und ordnen Sie die Steckplatznummern neu an, sodass scsi0 die niedrigste Nummer, scsi1 die nächstniedrigere und so weiter erhält. (Verwenden Sie die gleichen Nummern, es ist sicherer. Sichern Sie auch Ihre VMX!)
Nach dem Start werden sie in der richtigen Reihenfolge angezeigt.
Denken Sie also daran, Ihre scsi-Hosts in der richtigen Reihenfolge zum VM hinzuzufügen! Denken Sie auch daran, wenn Sie die letzte Festplatte auf einem scsi-Host löschen, wird der scsi-Host selbst beim nächsten Neustart ebenfalls gelöscht. Wenn Sie also scsi-host 0,1,2 und 3 haben und 2 löschen, erhalten Sie unter Linux nur scsi-hosts 0,1 und 2.
quelle