我有一个 AWS Windows 机箱(Windows 2008 R2),上面有以下磁盘:
C:\ 60 Gb (EBS)
D:\ 200 Gb (EBS)
Y:\ 40 Gb (Ephemeral SSD)
Z:\ 40 Gb (Ephemeral SSD)
每次启动时,我都会将临时驱动器更改为答案:和埃:和 EBS 驱动Z:。有时重启后临时驱动器未安装。我真的需要这样做,因为我有一个程序,其数据在答案:驱动器,无法更改。我想享受 Ephemeral SSD 的额外速度。
在 AWS 中实现自动化的最佳方法是什么?
我想制作一个使用 WMI 在启动时更改驱动器号的 PowerShell 脚本(如下这),但我不确定这是否是最好的选择。AWS 是否有某种方法来控制/配置临时驱动器?
答案1
可以使用以下配置EC2ConfigService 设置标准 Windows 实例构建中包含的应用程序(或单独提供来自 AWS 开发人员工具站点。)
启动实例后,选择开始 -> 所有程序 -> EC2ConfigService 设置. 访问 '贮存' 选项卡,选中 '将卷名映射到驱动器号。',然后点击'映射' 按钮设置驱动器号。使用分配给临时驱动器的默认卷名。每次重新启动后,驱动器将具有您指定的字母。
答案2
您可能会发现这一点:http://www.uwe-sieber.de/usbdlm_e.html可以解决问题。它旨在处理在驱动器号空间中游走的 USB 驱动器。但是它可以处理任意存储设备。
只需将 zip 的内容复制到 C:\usbdlm,然后运行 usbdriveinfo.exe。这将为您提供可用于唯一标识 SSD 的设备字符串。但要小心 - 这些字符串可能会在每次调用 VM 时发生变化。
然后在 .ini 文件中创建条目以强制将这些 ID 分配给特定的驱动器号。
在双 RDP 会话之后 - 以下是我的一个系统中的示例 .ini 文件。它适用于 USB,但您应该明白其中的意思。第一个驱动器字母块使这些设备 ID 获得 U:,第二个块是如何安全地“重新标记”一个块,第三个块使所有其他 USB 磁盘最终以 X 或 Y 作为后备默认值。
我猜你不会看到你的磁盘的 USB ID(!)但你应该在 usbdriveinfo 中找到一些可以使用的东西。看看文档,我相信你可以使用部分匹配来获取 ID 和正则表达式。
[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