Wie ändere ich den zugewiesenen Buchstaben für Ephemeral-Laufwerke automatisch?

7

Ich habe eine AWS Windows-Box (Windows 2008 R2) mit den folgenden Festplatten:

C:\ 60 Gb (EBS)
D:\ 200 Gb (EBS)
Y:\ 40 Gb (Ephemeral SSD) 
Z:\ 40 Gb (Ephemeral SSD)

Jedes Mal, wenn es startet, ändere ich kurzlebige Laufwerke auf D: und E: und EBS-Laufwerke auf Z : . Einige Male nach einem Neustart werden kurzlebige Laufwerke nicht gemountet. Ich muss wirklich so sein, da ich ein Programm habe, dessen Daten im Laufwerk D: gespeichert sind und das nicht geändert werden kann. Ich möchte von der zusätzlichen Geschwindigkeit der kurzlebigen SSD profitieren.

Wie lässt sich dies in AWS am besten automatisieren?

Ich habe darüber nachgedacht, ein PowerShell-Skript zu erstellen, das WMI verwendet, um Laufwerksbuchstaben beim Booten zu ändern (im Anschluss daran ), bin mir jedoch nicht sicher, ob dies die beste Option ist. Hat AWS eine Möglichkeit, kurzlebige Laufwerke zu steuern / konfigurieren?

Oscar Foley
quelle

Antworten:

6

Dies kann mit der Anwendung EC2ConfigService Settings konfiguriert werden , die in den Standard-Windows- Instanzbuilds enthalten ist (oder separat von der AWS Developer Tools-Site verfügbar ist ).

Wählen Sie nach dem Starten Ihrer Instanz Start -> Alle Programme -> EC2ConfigService-Einstellungen . Rufen Sie die Registerkarte " Speicher " auf und aktivieren Sie das Kontrollkästchen " Datenträgernamen zu Laufwerksbuchstaben zuordnen". 'und klicken Sie dann auf die Schaltfläche ' Zuordnungen ', um die Laufwerksbuchstaben einzurichten. Verwenden Sie den Standard-Datenträgernamen, der dem kurzlebigen Laufwerk zugewiesen ist. Nach jedem Neustart hat das Laufwerk den von Ihnen angegebenen Buchstaben.

Screenshot der EC2ConfigService-Laufwerksbuchstabenzuordnung

Andrew Maiman
quelle
Genau das, wonach ich gesucht habe :)
Oscar Foley
1

Sie können feststellen, dass dies: http://www.uwe-sieber.de/usbdlm_e.html den Trick macht. Es wurde für USB-Laufwerke entwickelt, die im Laufwerksbuchstaben herumlaufen. Es kann jedoch mit beliebigen Speichergeräten umgehen.

Kopieren Sie einfach den Inhalt der Zip-Datei in C: \ usbdlm und starten Sie dann usbdriveinfo.exe. Auf diese Weise erhalten Sie Gerätezeichenfolgen, mit denen Sie die SSDs eindeutig identifizieren können. Seien Sie jedoch vorsichtig - diese Zeichenfolgen können sich pro Aufruf der VM ändern.

Anschließend erstellen Sie Einträge in der INI-Datei, um diese IDs einem bestimmten Laufwerksbuchstaben zuzuweisen.

Nach einer doppelten RDP-Sitzung - hier ist eine Beispiel-INI-Datei von einem meiner Systeme. Es ist für USB, aber Sie sollten auf die Idee kommen. Der erste Driveletters-Block bewirkt, dass diese Geräte-IDs U: erhalten. Der zweite Block ist das sichere "Ausmerken" eines Blocks und der dritte Block bewirkt, dass alle anderen USB-Festplatten als Fallback-Standard als X oder Y enden.

Ich würde mir vorstellen, dass Sie keine USB-IDs für Ihre Festplatten (!) Sehen, aber Sie sollten etwas finden, das Sie in usbdriveinfo verwenden können. Schauen Sie sich die Dokumente an, Sie können Teileübereinstimmungen für IDs und auch Regexs verwenden, glaube ich.

[Settings]
CheckLettersOnStartup=1
LoadUsbdlm_Usr=3
VolumeReadyMaxWait=20000
NoMediaNoLetter=0
WriteLogFile=1
LogFile=C:\USBDLM\_USBDLM.LOG
LogLevel=3

[BalloonTips]
Enabled=1
Timeout=6000

; To get the DeviceID, run usbdriveinfo.exe
;    Select the Drives tab
;    Find the Disk (parent device, not the volume) in left hand pane
;    Find  "USB DevID    ="
;    Copy the data after the = sign
;    Paste it into the relavent section here under Driveletters
;    net stop usbdlm  and then net start usbdlm

[DriveLetters1]
Letter=U
DeviceID1=USB\VID_0411&PID_0170\00101007000C8B640
DeviceID2=USB\VID_0411&PID_0170\00101007000A104B0
DeviceID3=USB\VID_0411&PID_0170\00101007000A0C770
DeviceID4=USB\VID_0411&PID_0170\00101007000915F00
DeviceID5=USB\VID_0411&PID_0170\001010070008146D0
DeviceID6=USB\VID_0411&PID_0170\00101007000915F50
DeviceID7=USB\VID_0411&PID_0170\00101007000716A90
DeviceID8=USB\VID_0411&PID_0170\00101007000A0C5F0

[xxxx DriveLetters2]
Letter=V

[DriveLetters]
Letters=X,Y
user162383
quelle