镜像服务概览
OpenStack镜像服务包括以下组件:
glance-api接收镜像API的调用,诸如镜像发现、恢复、存储。
glance-registry存储、处理和恢复镜像的元数据,元数据包括项诸如大小和类型。
数据库存放镜像元数据,用户是可以依据个人喜好选择数据库的,多数的部署使用MySQL或SQLite。
镜像文件的存储仓库支持多种类型的仓库,它们有普通文件系统、对象存储、RADOS块设备、HTTP、以及亚马逊S3。记住,其中一些仓库仅支持只读方式使用。(真正存储镜像的)
元数据定义服务通用的API,是用于为厂商,管理员,服务,以及用户自定义元数据。这种元数据可用于不同的资源,例如镜像,工件,卷,配额以及集合。一个定义包括了新属性的键,描述,约束以及可以与之关联的资源的类型
先决条件
[root@controller ~]# mysql -u root -p
MariaDB [(none)]> CREATE DATABASE glance;
[root@controller ~]# source admin-openrc
[root@controller ~]# openstack user create --domain default --password glance glance
+-----------+----------------------------------+
| Field | Value |
+-----------+----------------------------------+
| domain_id | a3fa46c854fb4f17b0ca9c9197b572f4 |
| enabled | True |
| id | 70ddd03b341146d48080961dd5d95021 |
| name | glance |
+-----------+----------------------------------+
keystone 里面的认证账号,就是openstack里面的用户,这种用户是针对我们的服务的,组件之间的认证访问通过这些用户。
[root@controller ~]# openstack role add --project service --user glance admin
[root@controller ~]# openstack service create --name glance \
> --description "OpenStack Image" image
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | OpenStack Image |
| enabled | True |
| id | 716311e53c3f4e07825a8000d8487e4e |
| name | glance |
| type | image |
+-------------+----------------------------------+
[root@controller ~]# openstack endpoint create --region RegionOne \
> image public http://controller:9292
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | a7d6739c204e4960b4074857dfb40978 |
| interface | public |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 716311e53c3f4e07825a8000d8487e4e |
| 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 | 9c6db903e966421ca6e434d76eaeceb3 |
| interface | internal |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 716311e53c3f4e07825a8000d8487e4e |
| 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 | 523e30056286494e853fa1ba8ccf7556 |
| interface | admin |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 716311e53c3f4e07825a8000d8487e4e |
| service_name | glance |
| service_type | image |
| url | http://controller:9292 |
+--------------+----------------------------------+
安全并配置组件
[root@controller ~]# yum install openstack-glance -y
[root@controller yum.repos.d]# vim /etc/glance/glance-api.conf
根据官网配置,密码改成glance 注意这个也要改connection = mysql+pymysql://glance:glance@controller/glance
[root@controller yum.repos.d]# vim /etc/glance/glance-registry.conf
根据官网配置,密码改成glance 注意这个也要改connection = mysql+pymysql://glance:glance@controller/glance
[root@controller yum.repos.d]# su -s /bin/sh -c "glance-manage db_sync" glance
初始化数据库,它会通过脚本方式在glance库里面建立相应的表的结构并且存入相应的信息。
[root@controller yum.repos.d]# systemctl enable openstack-glance-api.service \
> openstack-glance-registry.service
[root@controller yum.repos.d]# systemctl start openstack-glance-api.service \
> openstack-glance-registry.service
验证操作
测试镜像位置
/run/media/kiosk/Backup Plus/pub/
cirros-0.4.0-x86_64-disk.img 传给了controller
测试
[root@controller ~]# openstack image create "cirros" --file cirros-0.4.0-x86_64-disk.img --disk-format qcow2 --container-format bare --public
Public所有用户都可以用这个镜像
+------------------+------------------------------------------------------+
| Field | Value |
+------------------+------------------------------------------------------+
| checksum | 443b7623e27ecf03dc9e01ee93f67afe |
| container_format | bare |
| created_at | 2021-07-29T09:54:47Z |
| disk_format | qcow2 |
| file | /v2/images/2453c88e-91bf-496c-9435-4ab30e970d09/file |
| id | 2453c88e-91bf-496c-9435-4ab30e970d09 |
| min_disk | 0 |
| min_ram | 0 |
| name | cirros |
| owner | 93e8c2ef36d745048542fd3611bf1a4f |
| protected | False |
| schema | /v2/schemas/image |
| size | 12716032 |
| status | active |
| tags | |
| updated_at | 2021-07-29T09:54:47Z |
| virtual_size | None |
| visibility | public |
+------------------+------------------------------------------------------+
[root@controller ~]# openstack image list
+--------------------------------------+--------+--------+
| ID | Name | Status |
+--------------------------------------+--------+--------+
| 2453c88e-91bf-496c-9435-4ab30e970d09 | cirros | active |
+--------------------------------------+--------+--------+
[root@controller ~]# ls /var/lib/glance/images/
2453c88e-91bf-496c-9435-4ab30e970d09
不能直接在往这个目录考这个镜像,要通过官方的指令来传入这个镜像。