美文网首页OpenStack
OpenStack Glance特性之Task介绍

OpenStack Glance特性之Task介绍

作者: 余亚飞 | 来源:发表于2019-02-27 14:45 被阅读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开源项目,主要从事于存储服务的开发和维护。

    相关文章

      网友评论

        本文标题:OpenStack Glance特性之Task介绍

        本文链接:https://www.haomeiwen.com/subject/fxhfuqtx.html