zoukankan      html  css  js  c++  java
  • openstack核心组件--glance镜像(2)

    一、glance介绍:
          
          Glance是Openstack项目中负责镜像管理的模块,其功能包括虚拟机镜像的查找、注册和检索等。 Glance提供Restful API可以查询虚拟机镜像的metadata及获取镜像。 Glance可以将镜像保存到多种后端存储上,比如简单的文件存储或者对象存储。
     
    理解 Image
     
    要理解 Image Service,先得搞清楚什么是 Image 以及为什么要用 Image?
     
    在传统 IT 环境下,安装一个系统要么从安装 CD 从头安装,要么用 Ghost 等克隆工具恢复。这两种方式有如下几个问题:
     
    1. 如果要安装的系统多了效率就很低
    2. 时间长,工作量大
    3. 安装完还要进行手工配置,比如安装其他的软件,设置 IP 等
    4. 备份和恢复系统不灵活
     
    云环境下需要更高效的方案,这就是 Image。 Image 是一个模板,里面包含了基本的操作系统和其他的软件。
     
    举例来说,有家公司需要为每位员工配置一套办公用的系统,一般需要一个 Win7 系统再加 MS office 软件。 OpenStack 是这么玩的:
     
    1. 先手工安装好这么一个虚机
    2. 然后对虚机执行 snapshot,这样就得到了一个 image
    3. 当有新员工入职需要办公环境时,立马启动一个或多个该 image 的 instance(虚机)就可以了
     
    在这个过程中,第 1 步跟传统方式类似,需要手工操作和一定时间,但第 2、3 步非常快,全自动化,一般都是秒级别。而且 2、3 步可以循环做。 比如公司新上了一套 OA 系统,每个员工的 PC 上都得有客户端软件。 那么可以在某个现有虚机中先手工安装好 OA 客户端,然后执行 snapshot 操作,得到新的 image,以后可以就直接使用新 image 创建虚机了。另外,snapshot 还有备份的作用,能够非常方便的恢复系统。
     
    理解Image Service
    Image Service 的功能是管理 Image,让用户能够发现、获取和保存 Image。在 OpenStack 中,提供 Image Service 的是 Glance,其具体功能如下:
     
    1. 提供 REST API 让用户能够查询和获取 image 的元数据和 image 本身
    2. 支持多种方式存储 image,包括普通的文件系统、Swift、Amazon S3 等
    3. 对 Instance(虚机) 执行 Snapshot 创建新的 image
       
    Glance 架构
    上面是 Glance 的架构图

    glance-api

    glance-api 是系统后台运行的服务进程。 对外提供 REST API,响应 image 查询、获取和存储的调用。
     
    glance-api 不会真正处理请求。 如果操作是与 image metadata(元数据)相关,glance-api 会把请求转发给 glance-registry; 如果操作是与 image 自身存取相关,glance-api 会把请求转发给该 image 的 store backend。
     
    在控制节点上可以查看 glance-api 进程
     

    glance-registry

    glance-registry 是系统后台运行的服务进程。 负责处理和存取 image 的 metadata,例如 image 的大小和类型。在控制节点上可以查看 glance-registry 进程
     
     
    Glance 支持多种格式的 image,包括
     

    Raw用来做格式转换,不支持虚拟机的快照;qcow2支持虚拟机的快照。

    Database

    Image 的 metadata 会保持到 database 中,默认是 MySQL。 在控制节点上可以查看 glance 的 database 信息
     

    Store backend

    Glance 自己并不存储 image。 真正的 image 是存放在 backend 中的。 Glance 支持多种 backend,包括:
     
    1. A directory on a local file system(这是默认配置)
    2. GridFS
    3. Ceph RBD
    4. Amazon S3
    5. Sheepdog
    6. OpenStack Block Storage (Cinder)
    7. OpenStack Object Storage (Swift)
    8. VMware ESX
     
    具体使用哪种 backend,是在 /etc/glance/glance-api.conf 中配置的
    其他 backend 的配置可参考http://docs.openstack.org/liberty/config-reference/content/configuring-image-service-backends.html
     
    查看目前已经存在的 image
     
     
    查看保存目录
     
     
    每个 image 在目录下都对应有一个文件,文件以 image 的 ID 命名
     
    二、glance创建镜像:
     
            OpenStack 为终端用户提供了 Web UI(Horizon)和命令行 CLI 两种交换界面。两种方式我们都要会用。可能有些同学觉得既然有更友好的 Web UI 了,干嘛还要用 CLI? 这里有下面的理由:
    1、Web UI 的功能没有 CLI 全,有些操作只提供了 CLI。 即便是都有的功能,CLI 可以使用的参数更多
    2、一般来说,CLI 返回结果更快,操作起来更高效
    3、CLI 可放在脚本中进行批处理
    4、有些耗时的操作 CLI 更合适,比如创建镜像(后面将涉及)
    (1)Web UI 创建 image
    (2)CLI 创建 image
    将上传的镜像传到控制节点
    执行image上传镜像命令:
    openstack image create "cirros"   --file cirros-0.3.3-x86_64-disk.img.img   --disk-format qcow2 --container-format bare --public
    三、glance配置文件:
    vim /etc/glance/glance-api.conf
    [DEFAULT]
     
    [cors]
    [cors.subdomain]
     
    [database]
     
    [glance_store]
    stores = file,http
    default_store = file
    filesystem_store_datadir = /var/lib/glance/images/
     
    [image_format]
     
    [keystone_authtoken]
    memcached_servers = controller:11211
    auth_type = password
    project_domain_name = default
    user_domain_name = default
    project_name = service
    username = glance
    password = glance
     
    [matchmaker_redis]
     
    [oslo_concurrency]
     
    [oslo_messaging_amqp]
     
    [oslo_messaging_kafka]
     
    [oslo_messaging_notifications]
     
    [oslo_messaging_rabbit]
     
    [oslo_messaging_zmq]
     
    [oslo_middleware]
     
    [oslo_policy]
     
    [paste_deploy]
    flavor = keystone
     
    [profiler]
     
    [store_type_location_strategy]
     
    [task]
     
    [taskflow_executor]
    vim /etc/glance/glance-registry.conf
    [DEFAULT]
     
    [database]
     
    [keystone_authtoken]
    memcached_servers = controller:11211
    auth_type = password
    project_domain_name = default
    user_domain_name = default
    project_name = service
    username = glance
    password = glance
     
    [matchmaker_redis]
     
    [oslo_messaging_amqp]
     
    [oslo_messaging_kafka]
     
    [oslo_messaging_notifications]
     
    [oslo_messaging_rabbit]
     
    [oslo_messaging_zmq]
     
    [oslo_policy]
     
    [paste_deploy]
    flavor = keystone
     
    [profiler]
     
  • 相关阅读:
    Java实现 LeetCode 802 找到最终的安全状态 (DFS)
    Java实现 LeetCode 802 找到最终的安全状态 (DFS)
    Java实现 LeetCode 802 找到最终的安全状态 (DFS)
    Java实现 LeetCode 804 唯一摩尔斯密码词 (暴力)
    Java实现 LeetCode 803 打砖块 (DFS)
    Java实现 LeetCode 804 唯一摩尔斯密码词 (暴力)
    Java实现 LeetCode 803 打砖块 (DFS)
    Java实现 LeetCode 804 唯一摩尔斯密码词 (暴力)
    英文标点
    post sharp 与log4net 结合使用,含执行源码 转拷
  • 原文地址:https://www.cnblogs.com/daisyyang/p/10975252.html
Copyright © 2011-2022 走看看