OpenStack

OpenStack Glance特性之Task介绍

2019-02-27  本文已影响6人  余亚飞

在Icehouse版本的时候,Glance API V2中加入了一个新的接口Task,它通过使用任务流进行镜像的导入、导出、克隆功能。Kilo版本之前是通过eventlet的形式实现,Kilo版本的时候进行了重构,引入了taskflow(OpenStack下的一个关于任务流的项目),使之更简洁实用。

1. Task简介

Task是一个异步操作,用户发送一个Task命令后,后台会自动处理,并把结果写入数据库,结果包括result和message。若是执行失败,message中会显示失败原因。而以前的create接口是同步操作,当上传的镜像过大时,等待时间会很长,不便于操作,严重的甚至会导致glance进程崩溃。

Task主要包含三种操作:import、export、clone。import用来镜像导入,export用来导出,clone用来跨region同步镜像数据,目前社区实现了import。

Import操作非常简单,用户按照要求,提供input信息就行---其中包括import_from、import_from_format和image_properties三个参数。Task在接收到用户请求后,首先把信息写入数据库,并返回给用户。之后用户就无需任何操作,Task会在后台启一个taskflow线程,自动执行import操作,把结果写入数据库, 如果设置了work_dir和并conversion_format,task会进行镜像虚拟大小的获取以及格式转换。 其中work_dir为镜像虚拟大小的获取以及格式转换使用的本地目录,conversion_format为镜像转换后的格式。

2. Task状态

Task有四种状态:
pending :Task已经创建,但Glance还未开始运行;
processing : Task正在运行;
success : Task成功运行;
failure :Task运行出错。

3. Task测试

(1) glance-api.conf配置:

[task]
work_dir = /home/work/
[taskflow_executor]
conversion_format = raw

(2) 命令:

glance  task-create --type import --input '{"import_from":"http://10.43.176.8/images/cirros-0.3.2-x86_64-disk.img","import_from_format": "","image_properties":{"disk_format":"raw","container_format":"bare","name":"test_img"}}'

这样,就添加了一个新的task,当此task在后台执行完成后,glance中会新增一个名为test_img的镜像,其disk_format和container_format分别是raw和bare,内容是从镜像服务器上下载下来的cirros镜像,存储在glance指定的默认后端中。

(3) 结果:
能够正常上传镜像,并且可以进行格式转换,镜像虚拟大小的获取。
(需要手动配置work_dir和conversion_format,如果不配置,上传镜像不会进行格式转换及镜像虚拟大小的获取)
关于disk_format,如果配置work_dir和conversion_format,会在查询镜像的虚拟大小时同时获取这个参数;如果没有配置work_dir和conversion_format,必须写到--input的入参里。

# glance image-show d7eb4c53-bbbc-4cf0-a546-e53e5104689e

+------------------+-----------------------------------------------------------------------------+

| Property         | Value                                            |

+------------------+-----------------------------------------------------------------------------+

| checksum         | cf2392db1f59d59ed69a8f8491b670e                  |

| container_format   | bare                                             |

| created_at         | 2016-06-14T16:15:53Z                             |

| direct_url | file:///opt/stack/data/glance/images/d7eb4c53-bbbc-4cf0-a546-e53e5104689e|

| disk_format    | raw                                                     |

| id            | d7eb4c53-bbbc-4cf0-a546-e53e5104689e                      |

| locations       | [{"url": "file:///opt/stack/data/glance/images/d7eb4c53-bbbc-      |

|              | 4cf0-a546-e53e5104689e", "metadata": {}}]                    |

| min_disk      | 0                                                       |

| min_ram      | 0                                                       |

| name         | test_img                                                 |

| owner        | 3a54d03b484449e7a09f13caa770f7c0                         |

| protected      | False                                                   |

| size          | 41126400                                               |

| status         | active                                                  |

| tags          | []                                                      |

| updated_at    | 2016-06-14T16:16:01Z                                    |

| virtual_size    | 41126400                                              |

| visibility      | private                                                 |

+------------------+--------------------------------------------------------------------------------+
4. 注意事项

关于支持的import_from格式
目前Mitaka版本中会对import_from进行验证,目前支持"http://"、 "https:// "
不支持"file:///"、"filesystem:///"(安全问题:see LP bug #942118 #1400966)

参考:
<u>https://specs.openstack.org/openstack/glance-specs/specs/mitaka/approved/image-import/image-import-refactor.html</u>
<u>http://blog.csdn.net/wxy2933/article/details/48312705</u>

余亚飞,云计算软件工程师,参与OpenStack开源项目,主要从事于存储服务的开发和维护。

上一篇下一篇

猜你喜欢

热点阅读