2.4鏡像服務
2.4.1Glance概述
Glance由API和registry
Glanc-api:接受雲系統鏡像的創建、刪除、讀取請求
Glance-regisry:雲系統的鏡像註冊服務
架構圖如下:
說明:
Glance-api接收rest API的請求,類似Nova-API
Glance-API在功能上與Nova-API十分類似,都是被接收rest API請求,然後通過其他模塊(glance-registry及image store)來完成諸如鏡像的查找、獲取、上傳、刪除等操作,API默認監聽端口9292
Glance-registry用於MySQL數據庫交互,用於存儲或獲取鏡像的元數據(metadata);提供鏡像元數據相關的rest接口,通過glance-registry,可以向數據庫中寫入或獲取鏡像的各種數據,glance-registry監聽端口9191,glance的數據庫中有兩張表,一張是image表,一張是image property表,image表保存了鏡像格式、大小等信息;image property表則主要保存鏡像的定製化信息。
Image store是一個存儲的接口層,通過這個接口,glance可以獲取鏡像,image store支持的存儲有Amazon的S3、openstack本身swift,還有諸如ceph,sheepdog,glusterFS等分佈式存儲,image store是鏡像保存與獲取的接口,它僅僅是一個接口層,具體的實現需要外部的存儲支持
2.4.2glance的配置與安裝
a數據庫的創建與授權
create databaseglance;
grant all onglance.* to 'glance'@'localhost' identified by 'glance';
grant all onglance.* to 'glance'@'%' identified by 'glance';
b創建服務憑證
獲取admin憑證來後去只有管理員能執行的命令的訪問權限
sourceadmin-openstack
創建服務證書
創建 glance 用戶:
openstack usercreate --domain default --password-prompt glance
添加 admin 角色到glance 用戶和 service 項目上。
openstack role add--project service --user glance admin
創建``glance``服務實體
openstack servicecreate --name glance --description "OpenStack Image" image
創建鏡像服務的 API 端點
openstack endpointcreate --region RegionOne image public http://192.168.56.11:9292
openstack endpointcreate --region RegionOne image internal http://192.168.56.11:9292
openstack endpointcreate --region RegionOne image admin http://192.168.56.11:9292
2.4.3.glance的配置與安裝
a.軟件包的安裝
yum install -yopenstack-glance
b編輯文件 /etc/glance/glance-api.con
[database]#配置數據庫訪問
connection =mysql+pymysql://glance:[email protected]/glance
[glance_store]#配置本地文件系統存儲和鏡像文件位置
stores = file,http
default_store =file
filesystem_store_datadir= /var/lib/glance/images
[keystone_authtoken]#配置認證服務訪問
auth_uri =http://192.168.56.11:5000
auth_url =http://192.168.56.11:35357
memcached_servers =192.168.56.11:11211
auth_type =password
project_domain_name= default
user_domain_name =default
project_name =service
username = glance
password = glance
[paste_deploy]
flavor = keystone
c編輯文件 ``/etc/glance/glance-registry.conf``
[database]#配置數據庫訪問
connection =mysql+pymysql://glance:[email protected]/glance
[keystone_authtoken]#配置認證服務訪問
auth_uri =http://192.168.56.11:5000
auth_url =http://192.168.56.11:35357
memcached_servers =192.168.56.11:11211
auth_type =password
project_domain_name= default
user_domain_name =default
project_name =service
username = glance
password = glance
[paste_deploy]
flavor = keystone
d寫入鏡像服務數據庫
su -s /bin/sh -c"glance-manage db_sync" glance
檢驗
mysql -uglance-pglance -h localhost -e "use glance;show tables;"
e啓動鏡像服務並將其配置爲隨機啓動
systemctl enableopenstack-glance-api.service \
openstack-glance-registry.service
systemctl startopenstack-glance-api.service \
openstack-glance-registry.service
2.4.4驗證操作
獲得 admin 憑證來獲取只有管理員能執行的命令的訪問權限:
sourceadmin-openstack
下載源鏡像:
wgethttp://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img
使用 QCOW2 磁盤格式, bare 容器格式上傳鏡像到鏡像服務並設置公共可見,這樣所有的項目都可以訪問它:
openstack imagecreate "cirros" \
--filecirros-0.3.4-x86_64-disk.img \
--disk-format qcow2--container-format bare \
--public
確認鏡像的上傳並驗證屬性:
openstack imagelist
+--------------------------------------+--------+--------+
| ID | Name |Status |
+--------------------------------------+--------+--------+
|9fe07794-9fb9-4e34-aa23-0fdfe4804bad | cirros | active |
+--------------------------------------+--------+--------+