0

背景知识:Rackspace 中的 Compute/Memory nova 实例不附带本地根卷,Rackspace 有使用外部 SSD 可引导卷创建它们的策略。现在的问题是:我正在尝试使用 pyrax api 在 Rackspace 中创建一个计算风格实例,其方式与 Rackspace 在其 UI 中所做的一样(https://support.rackspace.com/how-to/boot-a-server-from -a-cloud-block-storage-volume/)如下:

    pyrax.cloudservers.servers.create(hostname,image.id, 
                                      flavor.id,block_device_mapping,
                                      security_groups=security_groups,     
                                      nics=networks, key_name=key)

其中 block_device_mapping = {"vda": "59fb72d5-0b33-46c2-b10b-33fed25c5f74:::1"},长 32 位数字是我在创建服务器之前使用的卷的 volume_id

pyrax.cloud_blockstorage.create(name=volume_name, size=volume_size,     
                                 volume_type=volume_type).

我收到一条错误消息:

Policy doesn't allow memory_flavor:create:image_backed to be performed.(HTTP 403).

同样对于带有本地根卷的其他风格(不用说我没有参考那些带有'block_device_mapping'参数的风格),pyrax api 例如创建工作正常。这是 github 上 pyrax/rackspace 存储库中有关该主题的一个小线程:https ://github.com/rackspace/pyrax/issues/484讨论了该问题。有什么我想念的吗?

4

1 回答 1

0

创建可引导卷时,应指定 image_id(OS image id) 来引导卷:

pyrax.cloud_blockstorage.create(name=volume_name, size=volume_size,  
                              volume_type=volume_type,image=image.id)

block_device_map 还需要更多参数:

block_device_map = [{
                            'boot_index': '0',
                            'source_type': 'image',
                            'destination_type': 'volume',
                            'delete_on_termination': True,
                            'uuid': image.id,
                            'volume_size': int(requested_size),
                            'device_name': 'vda'
                   }]                  

这是实际上没有收到 403 Forbidden 错误的最后一个问题:在创建服务器实例时,不要在 pyrax 调用参数中再次指定图像 id,否则 pyrax 会混淆启动实例的图像。因此,只需在 pyrax.cloudservers.servers.create() 的参数中将 None 设置为 image_id,如下所示:

pyrax.cloudservers.servers.create(
            hostname,
            image=None,
            flavor=flavor.id,
            block_device_mapping_v2=block_device_map,
            security_groups=security_groups,
            nics=networks,
            key_name=key)                          
于 2016-11-06T20:02:36.067 回答