Apache brooklyn创建自己的卷而不是使用现有的卷

时间:2015-12-04 13:47:51

标签: amazon-web-services jclouds brooklyn

我使用Apache Brooklyn 0.8.0-incubating在AWS上使用以下蓝图创建d2.xlarge实例:

location: 
 jclouds:aws-ec2:
   region: eu-central-1
... 
provisioning.properties:
  imageId: eu-central-1/ami-7bcddf17 # Redhat 6.6
  hardwareId: d2.xlarge # with 2TB EBS

在机器上总存储量只有10GB。经过一些研究,我发现/ dev / xvdb下的实例卷未经分类。

我可以解释一下如何使用实例存储而不是在AWS上为该机器创建新卷吗?

最诚挚的问候, 菲利克斯

1 个答案:

答案 0 :(得分:2)

这是AWS EC2中VM的预期行为。

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/add-instance-store-volumes.html中所述:

"After you launch the instance, you must ensure that the instance
store volumes for your instance are formatted and mounted before you can use them. Note that the root
volume of an instance store-backed instance is mounted automatically."

"the instance type determines which instance store volumes are mounted for you and which are available for you to mount yourself"

对于您的实例类型,看起来实例存储卷未附加格式化。

EC2文档讨论了如何运行lsblkmkfsmount来格式化和装载实例存储卷。

预期行为还取决于AMI:“每个AMI都有一个块设备映射,用于指定从AMI启动时附加到实例的块设备.Amazon提供的AMI仅包含根设备。”< / p>

请注意,您在一个AMI上工作的内容可能无法在所有其他AMI上运行(例如,由于不同的块设备映射)。为了获得合理的默认行为,坚持使用亚马逊自己的AMI通常是一个好主意。

这可以在Apache Brooklyn中自动完成。你有几个选择:

  • 在实体中实施,例如如果使用SoftwareProcess实体,则可以使用配置键pre.install.command执行bash命令来设置卷。

  • 在该位置实施。

    • 这可以使用新的MachineLocationCustomizer来执行计算机上的命令(然后在该位置配置该命令)。

    • 或者,对于jclouds位置,您可以使用setup.script配置,该配置将执行shell脚本的URL。

在这些方法中,MachineLocationCustomizer为您提供最大的力量和灵活性。