4. Glance(Rocky) - 镜像服务

4.1 Glance说明

4.1.1 Glance服务功能

  • OpenStack镜像服务(Glance)使用户能够发现、注册并检索虚拟机镜像(.img文件);
  • 它提供了一个 REST API 接口,使用户可以查询虚拟机镜像源数据和检索一个实际的镜像文件;
  • 不论是简单的文件系统还是 OpenStack 对象存储,你都可以通过镜像服务在不同位置存储虚拟镜像
  • 默认情况下,上传的虚拟机镜像存储路径为 /var/lib/glance/images/

4.1.2 组件说明

  • glance-api

    一个用来接收镜像、发现、检索和存储的API接口;

  • glance-registry

    用来存储、处理和检索镜像的元数据;

    元数据包换对象的大小和类型;

    glance-registry是一个OpenStack镜像服务使用的内部服务,不要透露给用户;

  • DataBase

    用户存储镜像的元数据的大小、类型,支持大多数数据库,一般选择MySQLSQLite

  • Storage repository for image files

    镜像文件的存储仓库;

    支持包括普通文件系统在内的各种存储类型;

    包括对象存储、块设备、HTTP、Amazon S3,但有些存储只支持只读访问;

  • Image Identifiers

    Image URL,格式<Glance Server Location>/images/<ID>

    全局唯一;

  • Image Status

    • Queued 镜像ID已被保留,镜像还没有上传
    • Saving 镜像正在被上传
    • Active 镜像可以使用
    • Killed 镜像损坏或者不可用
    • Deleted 镜像被删除
  • Disk Format

    • Raw This si unstructured disk image format
    • Vhd VMare、XEN、Microsoft、VirtualBox
    • Vmdk common format
    • Vdi VirtualBox、QEMU emulator
    • ISO optical disc
    • Qcow2 QEMU emulator
    • Aki Amazon Kernel Image
    • Ari Amazon RamDisk Image
    • Ami Amazon Machine Image
  • Container Format

    • Bare
    • Ovf
    • Aki
    • Ami
    • Ari

4.2 部署 Glance

4.2.1 创建Clance数据库

CREATE DATABASE glance;

GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' IDENTIFIED BY 'glance';
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY 'glance';

FLUSH PRIVILEGES;

4.2.2 创建Glance用户

加载 admin 凭证,来获取管理员命令的执行权限

source admin-openrc

创建 glance 用户

openstack user create --domain default --password-prompt glance
User Password:glance
Repeat User Password:glance
+---------------------+----------------------------------+
| Field               | Value                            |
+---------------------+----------------------------------+
| domain_id           | default                          |
| enabled             | True                             |
| id                  | 4f080a83b50d4a118cf8912f2caff239 |
| name                | glance                           |
| options             | {}                               |
| password_expires_at | None                             |
+---------------------+----------------------------------+

glance用户分配 admin 角色,并加入到 service 项目

openstack role add --project service --user glance admin

创建glance服务

openstack service create --name glance --description "OpenStack Image" image
+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | OpenStack Image                  |
| enabled     | True                             |
| id          | 926ff884210448eba132cb949a974d95 |
| name        | glance                           |
| type        | image                            |
+-------------+----------------------------------+

创建glance API 端点

openstack endpoint create --region RegionOne image public http://controller:9292
+--------------+----------------------------------+
| Field        | Value                            |
+--------------+----------------------------------+
| enabled      | True                             |
| id           | ea975e2fa8c04cbeafe3ad31fc838202 |
| interface    | public                           |
| region       | RegionOne                        |
| region_id    | RegionOne                        |
| service_id   | 926ff884210448eba132cb949a974d95 |
| service_name | glance                           |
| service_type | image                            |
| url          | http://controller:9292           |
+--------------+----------------------------------+

openstack endpoint create --region RegionOne image internal http://controller:9292
+--------------+----------------------------------+
| Field        | Value                            |
+--------------+----------------------------------+
| enabled      | True                             |
| id           | 0d0fb6f4838c461f89fd465018aef4a4 |
| interface    | internal                         |
| region       | RegionOne                        |
| region_id    | RegionOne                        |
| service_id   | 926ff884210448eba132cb949a974d95 |
| service_name | glance                           |
| service_type | image                            |
| url          | http://controller:9292           |
+--------------+----------------------------------+

openstack endpoint create --region RegionOne image admin http://controller:9292
+--------------+----------------------------------+
| Field        | Value                            |
+--------------+----------------------------------+
| enabled      | True                             |
| id           | 0b924b6956b84495bc92f28ad58791f3 |
| interface    | admin                            |
| region       | RegionOne                        |
| region_id    | RegionOne                        |
| service_id   | 926ff884210448eba132cb949a974d95 |
| service_name | glance                           |
| service_type | image                            |
| url          | http://controller:9292           |
+--------------+----------------------------------+

4.2.3 安装配置Glance

# 安装Glance
yum install -y openstack-glance

# 配置Glance
vim /etc/glance/glance-api.conf

配置数据库连接

[database]
...
connection = mysql+pymysql://glance:glance@controller.alec.com/glance
#                            用户    密码

配置认证服务访问

[keystone_authtoken]
www_authenticate_uri = http://controller:5000
auth_url = http://controller:5000
memcached_servers = controller:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = glance
password = glance
...
[paste_deploy]
flavor = keystone

配置本地文件系统存储和镜像文件位置

[glance_store] 
stores = file,http
default_store = file
filesystem_store_datadir = /var/lib/glance/images/

4.2.4 初始化数据库

su -s /bin/sh -c "glance-manage db_sync" glance

4.2.5 启动服务

systemctl start openstack-glance-api
systemctl enable openstack-glance-api

4.3 验证服务

获取admin凭证执行admin命令

source admin-openrc

4.3.1 最快测试方法

手动生成一个.img文件,传到Glance上;

dd if=/dev/zero of=test.img bs=1M count=10

openstack image create "test" --file test.img --disk-format qcow2 --container-format bare --public

4.3.2 官方测试方法

下载镜像

wget http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img

使用 qcow2磁盘格式、bare容器格式 上传到glance服务,并设置为public;让所有项目都可以访问;

openstack image create "cirros" \
  --file cirros-0.3.4-x86_64-disk.img \
  --disk-format qcow2 --container-format bare \
  --public
+------------------+------------------------------------------------------+
| Field            | Value                                                |
+------------------+------------------------------------------------------+
| checksum         | ee1eca47dc88f4879d8a229cc70a07c6                     |
| container_format | bare                                                 |
| created_at       | 2020-07-18T15:21:52Z                                 |
| disk_format      | qcow2                                                |
| file             | /v2/images/2ab0cd11-0aa3-4735-a85f-2c348de0a89d/file |
| id               | 2ab0cd11-0aa3-4735-a85f-2c348de0a89d                 |
| min_disk         | 0                                                    |
| min_ram          | 0                                                    |
| name             | cirros                                               |
| owner            | c6f8d8041d5c4f128c4d6c489156b875                     |
| protected        | False                                                |
| schema           | /v2/schemas/image                                    |
| size             | 13287936                                             |
| status           | active                                               |
| tags             |                                                      |
| updated_at       | 2020-07-18T15:21:53Z                                 |
| virtual_size     | None                                                 |
| visibility       | public                                               |
+------------------+------------------------------------------------------+

查看上传后的镜像信息

openstack image list
+--------------------------------------+--------+--------+
| ID                                   | Name   | Status |
+--------------------------------------+--------+--------+
| 2ab0cd11-0aa3-4735-a85f-2c348de0a89d | cirros | active |
+--------------------------------------+--------+--------+
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,657评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,889评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,057评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,509评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,562评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,443评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,251评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,129评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,561评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,779评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,902评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,621评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,220评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,838评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,971评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,025评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,843评论 2 354