openstack核心組件-glance-鏡像服務

Glance是Openstack項目中負責鏡像管理的模塊,其功能包括虛擬機鏡像的查找、註冊和檢索等。

Glance提供Restful API(接口)可以查詢虛擬機鏡像的metadata及獲取鏡像。 Glance可以將鏡像保存到多種後端存儲上,比如簡單的文件存儲或者對象存儲。
在這裏插入圖片描述

glance服務端口 9292

理解image

要理解 Image Service,先得搞清楚什麼是 Image 以及爲什麼要用 Image?

在傳統 IT 環境下,安裝一個系統要麼從安裝 CD 從頭安裝,要麼用 Ghost 等克隆工具恢復。這兩種方式有如下幾個問題:

如果要安裝的系統多了效率就很低
時間長,工作量大
安裝完還要進行手工配置,比如安裝其他的軟件,設置 IP 等
備份和恢復系統不靈活

雲環境下需要更高效的方案,這就是 Image。 Image 是一個模板,裏面包含了基本的操作系統和其他的軟件。

image service

glance-api

glance-api 是系統後臺運行的服務進程。 對外提供 REST API,響應 image 查詢、獲取和存儲的調用。

glance-api 不會真正處理請求。 如果操作是與 image metadata(元數據)相關,glance-api 會把請求轉發給 glance-registry; 如果操作是與 image 自身存取相關,glance-api 會把請求轉發給該 image 的 store backend。

glance-registry

glance-registry 是系統後臺運行的服務進程。 負責處理和存取 image 的 metadata,例如 image 的大小和類型。在控制節點上可以查看 glance-registry 進程

registry server幫助api和數據庫通信

Glance 支持多種格式的 image:
在這裏插入圖片描述

Store backend

Glance 自己並不存儲 image。 真正的 image 是存放在 backend 中的。 Glance 支持多種 backend,包括:

A directory on a local file system(這是默認配置)
GridFS
Ceph RBD
Amazon S3
Sheepdog
OpenStack Block Storage (Cinder)
OpenStack Object Storage (Swift)
VMware ESX

具體使用哪種 backend,是在 /etc/glance/glance-api.conf 中配置的

鏡像保存位置(也可以保存到nfs的共享目錄):/var/lib/glance/images

配置

#mysql -uroot -p123
> CREATE DATABASE glance;
創建用戶,賦予權限
> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' \
IDENTIFIED BY 'GLANCE_DBPASS';

> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' \
IDENTIFIED BY 'GLANCE_DBPASS';

重新執行環境變量
#source openrc

創建glance用戶
#openstack user create --domain default --password=glance glance

添加glance爲管理員
#openstack role add --project service --user glance admin

創建glance服務
#openstack service create --name glance \
--description "OpenStack Image" image

創建服務端點
#openstack endpoint create --region RegionOne \
image public http://pikachu1:9292
#openstack endpoint create --region RegionOne \
image internal http://pikachu1:9292
#openstack endpoint create --region RegionOne \
image admin http://pikachu1:9292

安裝軟件
#yum install openstack-glance

修改配置文件
#cp /etc/glance/glance-api.conf /etc/glance/glance-api.conf.bak
#cp  /etc/glance/glance-registry.conf /etc/glance/glance-registry.conf.bak
#vim /etc/glance/glance-api.conf(對外提供服務的接口)

#
[DEFAULT]

[cors]
[cors.subdomain]

[database]
connection = mysql+pymysql://glance:GLANCE_DBPASS@pikachu1/glance

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

[image_format]

[keystone_authtoken]
auth_uri = http://pikachu1:5000
auth_url = http://pikachu1:35357
memcached_servers = pikachu1: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]
connection = mysql+pymysql://glance:GLANCE_DBPASS@pikachu1/glance

[keystone_authtoken]
auth_uri = http://pikachu1:5000
auth_url = http://pikachu1:35357
memcached_servers = pikachu1: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]
#

導入glance表到數據庫
#su -s /bin/sh -c "glance-manage db_sync" glance

啓動服務
#systemctl enable openstack-glance-api.service \
openstack-glance-registry.service
#systemctl start openstack-glance-api.service \
openstack-glance-registry.service

上傳鏡像測試(不是裝系統的鏡像)
#openstack image list
#glance image-list

#openstack image create "cirros" \
--file cirros-0.3.3-x86_64-disk.img.img \
--disk-format qcow2 --container-format bare \
--public

在這裏插入圖片描述

刪除鏡像
#openstack image delete cirros
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章