【问题标题】:How can I mount ephemeral storage on a windows ec2 instance using boto?如何使用 boto 在 Windows ec2 实例上挂载临时存储?
【发布时间】:2012-05-06 01:11:02
【问题描述】:

我有一个使用 Windows Server 2008 作为 EBS 根设备的 AMI。我可以使用 boto 和远程桌面启动它一个实例,但我似乎无法让它挂载它的临时存储。我的 BlockDeviceMapping 有问题吗?

这是我的代码:

import boto
from boto.ec2.connection import EC2Connection
conn = EC2Connection(mykey, mysecretkey)
bdm = boto.ec2.blockdevicemapping.BlockDeviceMapping({'/dev/xvdb':'ephemeral0'})
conn.run_instances(myami, key_name=mykeyname,security_groups=[mysecgroup],block_device_map=bdm)

当我运行此代码时,会启动一个实例并且我可以访问,但我只看到已安装的根设备。

【问题讨论】:

  • 我不知道 boto,但这看起来只是将设备名称映射到设备驱动程序——但没有对设备进行格式化或将设备挂载到命名空间中。跨度>
  • @sarnold 嗯嗯。我对文档的阅读似乎表明 aws 将为您进行安装,但我可能是错的。请参阅此处的“访问 Amazon EBS 支持的 Windows 实例上的实例存储”部分:docs.amazonwebservices.com/AWSEC2/latest/UserGuide/…

标签: python amazon-ec2 boto


【解决方案1】:

我想通了。我看过一些例子,这些例子让我相信块设备映射应该是一个字符串到字符串的映射,但它实际上应该是一个字符串到 BlockDeviceType 的映射。这是我如何让它工作的:

from boto.ec2.connection import EC2Connection
from boto.ec2.blockdevicemapping import BlockDeviceType, BlockDeviceMapping
conn = EC2Connection(mykey, mysecretkey)
xvdb = BlockDeviceType()
xvdb.ephemeral_name='ephemeral0'
bdm = BlockDeviceMapping()
bdm['/dev/xvdb'] = xvdb
conn.run_instances(myami, key_name=mykeyname,security_groups=[mysecgroup],block_device_map=bdm)

登录后,我可以看到我的临时驱动器。并不是说它不会作为块设备出现在 AWS 管理控制台中。您仍然只能看到您的根设备。

Here 是一个帮助我解决问题的代码示例/论坛问题。

【讨论】:

    猜你喜欢
    • 2012-05-31
    • 2021-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-01
    • 1970-01-01
    • 2021-11-05
    • 1970-01-01
    相关资源
    最近更新 更多