OpenStack(T版)——镜像(Glance)服务介绍与安装

OpenStack(T版)——镜像(Glance)服务介绍与安装

Glance镜像服务组件是OpenStack项目中非常重要的组件之一,它可以收到来自用户和Nova计算服务的请求,并支持不同的存储方式,其中包括OpenStack项目中的Swift对象存储。

它需要运行一些进程来保证服务的正常运行。其中,支持缓存和副本服务的进程可以使镜像服务更快地响应用户请求,同时也能够保证数据的可用性和一致性。此外,Glance镜像服务还有专门的进程来进行审计和更新等服务,以保证镜像服务的安全性和更新性。

安装与配置

在controller节点安装和配置Glance镜像服务组件

准备

首先创建数据库、服务证书和API endpoint

(1)创建数据库

①在操作系统终端连接数据库

[root@controller ~]# mysql -uroot -p000000

②创建Glance数据库

MariaDB [(none)]> CREATE DATABASE glance;

③Glance数据的访问权限设置

MariaDB [(none)]>  GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY '000000';
# GRANT ALL PRIVILEGES:表示授予所有权限。
# ON glance.*:表示授权的数据库为 'glance' 中的所有表。
# TO 'glance'@'%':表示授权给用户 'glance',并指定可以从任何主机('%')上连接数据库
# IDENTIFIED BY '000000':表示用户 'glance' 的密码为 '000000'

④退出数据库

MariaDB [(none)]> exit

(2)加载admin user 的环境变量

[root@controller ~]# source admin-openrc.sh

(3)创建Identity

①创建Glance用户

[root@controller ~]#  openstack user create --domain default --password-prompt glance
User Password:
Repeat User Password:
+---------------------+----------------------------------+
| Field               | Value                            |
+---------------------+----------------------------------+
| domain_id           | default                          |
| enabled             | True                             |
| id                  | 59a87035ab4440ef9535229941d12006 |
| name                | glance                           |
| options             | {
    
    }                               |
| password_expires_at | None                             |
+---------------------+----------------------------------+
# --password-prompt:表示通过交互式方式来设置用户的密码。

②将admin role 赋予 glance user 和 service project

# service项目没有创建的话需要创建service项目
[root@controller ~]# openstack role add --project service --user glance admin
# 此命令执行完没有输出

③创建Glance 镜像的 service entity

[root@controller ~]# openstack service create --name glance --description "OpenStack Image" image
+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | OpenStack Image                  |
| enabled     | True                             |
| id          | f3c4730c3df64bf5bd8462d028f946ff |
| name        | glance                           |
| type        | image                            |
+-------------+----------------------------------+

(4)创建Glance镜像服务组件的API endpoint

[root@controller ~]# openstack endpoint create --region RegionOne image public http://controller:9292
+--------------+----------------------------------+
| Field        | Value                            |
+--------------+----------------------------------+
| enabled      | True                             |
| id           | 5b16517d4d4a4bd79ccfce8066539128 |
| interface    | public                           |
| region       | RegionOne                        |
| region_id    | RegionOne                        |
| service_id   | 22df534a91874abd88a878669d14a46f |
| service_name | glance                           |
| service_type | image                            |
| url          | http://controller:9292           |
+--------------+----------------------------------+

[root@controller ~]# openstack endpoint create --region RegionOne image internal http://controller:9292
+--------------+----------------------------------+
| Field        | Value                            |
+--------------+----------------------------------+
| enabled      | True                             |
| id           | cd91b4ec32e843f99fdb658f75375c86 |
| interface    | internal                         |
| region       | RegionOne                        |
| region_id    | RegionOne                        |
| service_id   | 22df534a91874abd88a878669d14a46f |
| service_name | glance                           |
| service_type | image                            |
| url          | http://controller:9292           |
+--------------+----------------------------------+

[root@controller ~]# openstack endpoint create --region RegionOne image admin http://controller:9292
+--------------+----------------------------------+
| Field        | Value                            |
+--------------+----------------------------------+
| enabled      | True                             |
| id           | 6b24a41176cd493a86595f0310d3f02d |
| interface    | admin                            |
| region       | RegionOne                        |
| region_id    | RegionOne                        |
| service_id   | 22df534a91874abd88a878669d14a46f |
| service_name | glance                           |
| service_type | image                            |
| url          | http://controller:9292           |
+--------------+----------------------------------+

安装和配置Glance镜像服务组件

(1)安装软件包

[root@controller ~]# yum install -y openstack-glance

(2)编辑文件/etc/glance/glance-api.conf,完成以下操作

①在[database]项,配置数据库连接

# openstack配置文件不能有中文,注释的也不行
[root@controller ~]# vim /etc/glance/glance-api.conf 
[database]  # 表示该配置项属于数据库连接相关的配置
# ...(省略)...
connection = mysql+pymysql://glance:000000@controller/glance
# 表示使用MySQL数据库进行数据存储,数据库的连接地址为 "controller"
# 数据库的名称为 "glance",用户名为 "glance",密码为 "000000"。

②在[keystone_authtoken]和[paste_deploy]项,配置Keystone身份认证服务组件访问

[keystone_authtoken]                            # Keystone认证相关的配置

www_authenticate_uri  = http://controller:5000  # 表示keystone的服务认证地址
auth_url = http://controller:5000               # 表示keystone的服务认证地址
memcached_servers = controller:11211            # 表示使用缓存服务器地址为
auth_type = password                            # 表示使用密码方式进行认证。
project_domain_name = Default                   # 表示使用的项目所属的domain名称为Defualt
user_domain_name = Default                      # 表示使用的用户所属的domain名称为Default
project_name = service                          # 表示使用的项目名称为service
username = glance                               # 表示使用的用户名为glance
password = 000000                               # 表示glance的用户密码为000000

[paste_deploy]                                  
# ...(省略)...
flavor = keystone                               # 表示使用Keystone服务进行认证和授权

③在[glance_store]项,配置虚拟机镜像的存储形式和存储路径

[glance_store]           # 表示该配置项属于Glance镜像存储相关的配置。
# ...(省略)...
stores = file,http       # 表示支持的镜像存储后端为 "file" 和 "http"
default_store = file     # 表示默认的镜像存储后端为 "file"。
filesystem_store_datadir = /var/lib/glance/images/ 
# 表示使用 "file" 存储后端时,将镜像存储在 "/var/lib/glance/images/" 目录下

(3)同步数据库

[root@controller ~]# su -s /bin/sh -c "glance-manage db_sync" glance
# su:表示切换用户
# -s /bin/sh:表示使用 "/bin/sh" 作为切换后的用户Shell
# -c "glance-manage db_sync"
# 表示在切换后的Shell中执行 "glance-manage db_sync" 命令,即进行数据库同步操作。

# glance:表示要切换到的目标用户,即执行 "glance-manage db_sync" 命令的用户。

安装完成

启动Glance镜像服务组件并设置开机自启

[root@controller ~]# systemctl start openstack-glance-api.service && systemctl enable openstack-glance-api.service
Created symlink from /etc/systemd/system/multi-user.target.wants/openstack-glance-api.service to /usr/lib/systemd/system/openstack-glance-api.service.

验证

(1)加载环境变量

[root@controller ~]# source admin-openrc.sh 

(2)上传镜像测试

[[root@controller ~]# glance image-create --name cirros  --disk-format qcow2 --container-format bare  --file cirros-0.3.4-x86_64-disk.img
+------------------+----------------------------------------------------------------------------------+
| Property         | Value                                                                            |
+------------------+----------------------------------------------------------------------------------+
| checksum         | ee1eca47dc88f4879d8a229cc70a07c6                                                 |
| container_format | bare                                                                             |
| created_at       | 2023-06-26T08:04:27Z                                                             |
| disk_format      | qcow2                                                                            |
| id               | 6e4a384f-e0af-492a-9c5d-c6fece658c30                                             |
| min_disk         | 0                                                                                |
| min_ram          | 0                                                                                |
| name             | cirros                                                                           |
| os_hash_algo     | sha512                                                                           |
| os_hash_value    | 1b03ca1bc3fafe448b90583c12f367949f8b0e665685979d95b004e48574b953316799e23240f4f7 |
|                  | 39d1b5eb4c4ca24d38fdc6f4f9d8247a2bc64db25d6bbdb2                                 |
| os_hidden        | False                                                                            |
| owner            | 682605389bcd4a2cb2978bef7ed25f1d                                                 |
| protected        | False                                                                            |
| size             | 13287936                                                                         |
| status           | active                                                                           |
| tags             | []                                                                               |
| updated_at       | 2023-06-26T08:04:28Z                                                             |
| virtual_size     | Not available                                                                    |
| visibility       | shared                                                                           |
+------------------+----------------------------------------------------------------------------------+

(3)查看镜像

[root@controller ~]# glance image-list
+--------------------------------------+--------+
| ID                                   | Name   |
+--------------------------------------+--------+
| 6e4a384f-e0af-492a-9c5d-c6fece658c30 | cirros |
+--------------------------------------+--------+

本文参考视频https://www.bilibili.com/video/BV1fL4y1i7NZ?p=7&vd_source=7c7cb4224e0c273f28886e581838b110

猜你喜欢

转载自blog.csdn.net/qq_52089863/article/details/131400306