OpenStack核心组件原理与应用之Glance

概览

OpenStack 镜像服务 Glance 是 IaaS(Infrastructure as a Service,基础设施即服务)的核心服务。允许用户发现、注册和获取虚拟机镜像。它提供了一个 Rest API,允许您查询虚拟机镜像的元数据,并获取镜像。您可以将镜像存储在任何位置,比如文件系统、对象存储,我们采用Ceph集群进行存储。

Glance包括以下组件:

  • glance-api:接收API调用,实现镜像发现、恢复、存储等功能。
  • glance-registry:存储、处理和恢复镜像的元数据,元数据包括诸如大小和类型。Glance-registry 是私有内部服务,用于服务OpenStack Image 服务,不要向公网暴露该服务。
  • 数据库:存放镜像元数据,用户是可以依据个人喜好选择数据库的,此处使用 MariaDB。
  • 镜像文件和存储仓库:包括普通文件系统、对象存储、RADOS 块设备、HTTP、S3 等。
  • 元数据定义服务:通用的 API,是用于为厂商,管理员,服务,以及用户自定义元数据。这种元数据可用于不同的资源,例如镜像,卷,配额以及集合。一个定义包括了属性的键,描述,约束以及可以与之关联的资源的类型。

安装和配置

如何在控制节点上安装Glance?
先决条件:

  1. 创建数据库:
    MariaDB [(none)]> create database glance;
    MariaDB [(none)]> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' IDENTIFIED BY 'GLANCE_DBPASS';
    MariaDB [(none)]> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY 'GLANCE_DBPASS';
    MariaDB [(none)]> flush privileges;
  2. 获得admin凭证来获取只有管理员才能执行的命令的访问权限:
    [root@ct1 ~]# . admin-openrc
  3. 创建服务证书:
    #创建 glance用户:
    [root@ct1 ~]# openstack user create --domain default --password-prompt glance
    #添加admin角色到glance用户和service项目上:
    [root@ct1 ~]# openstack role add --project service --user glance admin
    #创建glance服务实体:
    [root@ct1 ~]# openstack service create --name glance --description "OpenStack Image" image
  4. 创建镜像服务的API端点:
    [root@ct1 ~]# openstack endpoint create --region RegionOne image public http://ct1.vtlab.io:9292
    [root@ct1 ~]# openstack endpoint create --region RegionOne image internal http://ct1.vtlab.io:9292
    [root@ct1 ~]# openstack endpoint create --region RegionOne image admin http://ct1.vtlab.io:9292

安装并配置glance组件

  1. 安装软件包:
    [root@ct1 ~]#yum -y install openstack-glance
  2. 修改 glance-api 配置文件
    
    [root@ct1 ~]# vim /etc/glance/glance-api.conf
    [databases] 
    connection = mysql+pymysql://glance:[email protected]/glance
    [keystone_authtoken] #配置认证服务:
    auth_uri = http://ct1.vtlab.io:5000
    auth_url = http://ct1.vtlab.io:35357
    memcached_servers = ct1.vtlab.io:11211
    auth_type = password
    project_domain_name = default
    user_domain_name = default
    project_name = service
    username = glance
    password = GLANCE_PASS
    [paste_deploy]
    flavor = keystone
    [glance_store]
    stores = file,http
    default_store = file
    filesystem_store_datadir = /var/lib/glance/images/
  3. 编辑 glance-registry 配置文件
    
    [root@ct1 ~]# vim /etc/glance/glance-registry.conf
    [database] 
    connection = mysql+pymysql://glance:[email protected]/glance
    [keystone_authtoken] 配置认证服务:
    auth_uri = http://ct1.vtlab.io:5000
    auth_url = http://ct1.vtlab.io:35357
    memcached_servers = ct1.vtlab.io:11211
    auth_type = password
    project_domain_name = default
    user_domain_name = default
    project_name = service
    username = glance
    password = GLANCE_PASS
    [paste_deploy]
    flavor = keystone
  4. 写入镜像服务数据库
    [root@ct1 ~]# su -s /bin/sh -c "glance-manage db_sync" glance
  5. 启动服务,并设置开机自启动
    [root@ct1 ~]# systemctl start openstack-glance-api.service openstack-glance-registry.service
    [root@ct1 ~]# systemctl enable openstack-glance-api.service openstack-glance-registry.service

验证操作

对glance服务进行验证

  1. 获得admin凭证来获取只有管理员才能执行的命令的访问权限:
    [root@ct1 ~]# . admin-openrc
  2. 下载源镜像:
    [root@ct1 ~]# wget http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img
  3. 使用 QCOW2 磁盘格式, bare 容器格式上传镜像到镜像服务并设置公共可见,这样所有的项目都可以访问它:
    [root@ct1 ~]# openstack image create "cirros" --file cirros-0.3.4-x86_64-disk.img --disk-format qcow2 --container-format bare --public
  4. 确认镜像的上传并验证属性:
    [root@ct1 ~]# openstack image list

转载于:https://blog.51cto.com/weiwendi/2162963

你可能感兴趣的:(OpenStack核心组件原理与应用之Glance)