Karte sd? / sdd? Namen zu Solaris-Festplattennamen?

7

Einige Befehle in Solaris (z. B. Iostat) melden Informationen zur Festplatte unter Verwendung von Laufwerksnamen wie sd0 oder sdd2. Gibt es einen konsistenten Weg, um diese Namen zurück auf den Standard / dev / dsk / c? T? D? S zu mappen? Festplattennamen in Solaris?

Edit: Wie Amit zeigt, erzeugt iostat -n Device Namen wie zB c0t0d0s0 anstelle von sd0. Aber wie finde ich heraus, dass sd0 eigentlich c0t0d0s0 ist? Ich suche nach etwas, das eine Liste wie folgt erzeugt:

sd0=/dev/dsk/c0t0d0s0
...
sdd2=/dev/dsk/c1t0d0s4
...
Vielleicht könnte ich Iostat zweimal ausführen (mit und ohne -n) und dann die Ergebnisse zusammenführen und hoffen, dass die Anzahl der Zeilen und die Gerätesortierung, die von Iostat erzeugt werden, zwischen den beiden Läufen identisch ist?     
Erlend Leganger 17.02.2009, 03:17
quelle

9 Antworten

8

Nach Amits Idee, meine eigene Frage zu beantworten, habe ich folgendes gefunden:

%Vor%

Wenn Sie dies auf einem Solaris 10-Server ausführen, erhalten Sie folgende Ausgabe:

%Vor%

Die Lösung ist nicht sehr elegant (es ist kein One-Liner), aber es scheint zu funktionieren.

    
Erlend Leganger 26.02.2009, 18:26
quelle
5

Eine Liner-Version der angenommenen Antwort (ich habe nur 1 Reputation, also kann ich keinen Kommentar schreiben):

%Vor%     
Mark 14.08.2009 21:22
quelle
3

Versuchen Sie es mit dem Schalter '-n'. Für z. 'iostat -n'

    
user59634 17.02.2009 03:26
quelle
2

Wie in anderen Antworten erwähnt, können Sie den Gerätenamen über den Gerätepfad und die in / etc / path_to_inst enthaltenen Informationen zurück auf den Instanznamen abbilden. Hier ist ein Perl-Skript, das die Aufgabe erfüllt:

%Vor%     
06.07.2009 17:11
quelle
2

Ich habe Folgendes im Solaris Transition Guide gefunden:

"Instanznamen

Instanznamen beziehen sich auf das n-te Gerät im System (z. B. sd20).

Instanznamen werden gelegentlich in Treiberfehlermeldungen gemeldet. Sie können die Bindung eines Instanznamens an einen physischen Namen ermitteln, indem Sie wie im folgenden Beispiel dmesg(1M) output anzeigen.

%Vor%

Sobald der Instanzname einem Gerät zugewiesen wurde, bleibt es an dieses Gerät gebunden.

Instanznummern sind in der Minor-Nummer eines Geräts codiert. Um die Instanznummern bei Neustarts konsistent zu halten, zeichnet das System sie in der Datei / etc / path_to_inst auf. Diese Datei wird nur zum Zeitpunkt des Starts gelesen und wird derzeit von add_drv(1M) und drvconf "

aktualisiert

Also habe ich das folgende Skript geschrieben:

für das Gerät in / dev / dsk / * s2

tue

%Vor%

erledigt

%Vor%     
Mark 25.06.2009 18:33
quelle
1

Ich denke, der einfachste Weg, einen beschreibenden Namen mit dem Namen der Instanz zu finden, ist:

%Vor%

Die letzte Spalte zeigt einen beschreibenden Namen für den angegebenen Instanznamen.

    
Petras L 26.07.2017 12:26
quelle
0

sd0 sdd0 sind Instanznamen von Geräten. Sie können / etc / path_to_inst prüfen, um den Namen des Instanznamens auf den Namen des physischen Geräts zu beziehen, dann den Link in / dev / dsk (auf welches physikalische Gerät er zeigt) ist es 100% sichere Methode, obwohl ich nicht weiß, wie man es kodiert;)

    
Bart 24.02.2009 19:22
quelle
0

Ich habe dieses Stück vor einiger Zeit im Internet gefunden und es funktioniert. Dies war unter Solaris 8:

%Vor%     
Bob 11.06.2009 13:45
quelle
0

Eine geringfügige Änderung, um Plattennamen zuzulassen, die länger als 8 Zeichen sind (im Umgang mit Festplatten-Arrays in einem SAN)

%Vor%     
Mark 25.06.2009 16:53
quelle

Tags und Links