3.0.glance概述
1)glance作用和特性
- 用戶使用鏡像服務 (glance) 允許來創建,查詢虛擬機鏡像。它提供了一個 REST API,允許查詢虛擬機鏡像的 metadata 並獲取一個現存的鏡像
- 可以將虛擬機鏡像存儲到各種位置,如簡單的文件系統或者是對象存儲系統,例如 OpenStack 對象存儲, 並通過鏡像服務使用
- 上傳指定的文件作為后端配置鏡像服務,默認目錄是 /var/lib/glance/images/。
2)glance鏡像服務的組件
glance-api:
- 用於接收鏡像REST API的調用,諸如鏡像查找,獲取,上傳,刪除
glance-registry:
- 用於與mysql數據庫交互,監聽端口為9191,
- 提供鏡像元數據相關的REST接口,用於存儲、處理和恢復鏡像的元數據(metadata),元數據包括項諸如大小和類型。
- 通過glance-registry可以向數據庫中寫入或獲取鏡像的各種數據
- 其中有兩張表,image表保存了鏡像格式大小等信息,image property表保存進行的定制化信息
- 注意:glance-registry是私有內部服務,用於服務OpenStack Image服務。不能向用戶暴露
image:鏡像文件的存儲倉庫
- 支持多種類型的倉庫,它們有普通文件系統、對象存儲、RADOS塊設備、HTTP、以及亞馬遜S3。另外,其中一些倉庫僅支持只讀方式使用。
image store:
- 是一個存儲的接口層,通過這個接口glance可以獲取鏡像,支持的存儲有亞馬遜的S3,openstack本身的swift,還有ceph,sheepdog,GlusterFS等分布式存儲
- image store是鏡像保存與獲取的接口,僅僅是一個接口層,具體的實現需要外部的存儲支持
數據庫:
- 存放鏡像元數據,用戶是可以依據個人喜好選擇數據庫的,多數的部署使用MySQL或SQLite。
元數據定義服務:
- 通用的API,是用於為廠商,管理員,服務,以及用戶自定義元數據。
- 這種元數據可用於不同的資源,例如鏡像,工件,卷,配額以及集合。
- 一個定義包括了新屬性的鍵,描述,約束以及可以與之關聯的資源的類型。
3.1.在控制端安裝鏡像服務glance
1)創建glance數據庫
# 用數據庫連接客戶端以 root 用戶連接到數據庫服務器 mysql -u root -p # 創建 glance 數據庫 CREATE DATABASE glance; # 對``glance``數據庫授予恰當的權限 GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' IDENTIFIED BY 'glance'; GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY 'glance';
3.2.在keystone上面注冊glance
1)在keystone上創建glance用戶
# 以下命令在local_user表創建glance用戶
mkdir /server/tools && cd /server/tools source keystone-admin-pass.sh openstack user create --domain default --password=glance glance openstack user list
2)在keystone上將glance用戶添加為service項目的admin角色(權限)
# 以下命令無輸出
openstack role add --project service --user glance admin
3)創建glance鏡像服務的實體
# 以下命令在service表中增加glance項目
openstack service create --name glance --description "OpenStack Image" image openstack service list
4)創建鏡像服務的 API 端點(endpoint)
openstack endpoint create --region RegionOne image public http://controller:9292 openstack endpoint create --region RegionOne image internal http://controller:9292 openstack endpoint create --region RegionOne image admin http://controller:9292
openstack endpoint list
# 至此,glance在keystone上面注冊完成,可以進行安裝
3.3.安裝glance相關軟件
1)安裝glance軟件
yum install openstack-glance python-glance python-glanceclient -y
3)執行以下命令可以快速配置glance-api.conf
openstack-config --set /etc/glance/glance-api.conf database connection mysql+pymysql://glance:glance@controller/glance openstack-config --set /etc/glance/glance-api.conf keystone_authtoken www_authenticate_uri http://controller:5000 openstack-config --set /etc/glance/glance-api.conf keystone_authtoken auth_url http://controller:5000 openstack-config --set /etc/glance/glance-api.conf keystone_authtoken memcached_servers controller:11211 openstack-config --set /etc/glance/glance-api.conf keystone_authtoken auth_type password openstack-config --set /etc/glance/glance-api.conf keystone_authtoken project_domain_name Default openstack-config --set /etc/glance/glance-api.conf keystone_authtoken user_domain_name Default openstack-config --set /etc/glance/glance-api.conf keystone_authtoken project_name service openstack-config --set /etc/glance/glance-api.conf keystone_authtoken username glance openstack-config --set /etc/glance/glance-api.conf keystone_authtoken password glance openstack-config --set /etc/glance/glance-api.conf paste_deploy flavor keystone openstack-config --set /etc/glance/glance-api.conf glance_store stores file,http openstack-config --set /etc/glance/glance-api.conf glance_store default_store file openstack-config --set /etc/glance/glance-api.conf glance_store filesystem_store_datadir /var/lib/glance/images/
4)執行以下命令可以快速配置glance-registry.conf
openstack-config --set /etc/glance/glance-registry.conf database connection mysql+pymysql://glance:glance@controller/glance openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken www_authenticate_uri http://controller:5000 openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken auth_url http://controller:5000 openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken memcached_servers controller:11211 openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken auth_type password openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken project_domain_name Default openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken user_domain_name Default openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken project_name service openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken username glance openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken password glance openstack-config --set /etc/glance/glance-registry.conf paste_deploy flavor keystone
# 查看生效的配置
grep '^[a-z]' /etc/glance/glance-api.conf grep '^[a-z]' /etc/glance/glance-registry.conf
# 至此,glance服務安裝完畢,該服務需要啟動
4.4.同步glance數據庫
1)為glance鏡像服務初始化同步數據庫
su -s /bin/sh -c "glance-manage db_sync" glance
# 查看表
mysql glance -e 'show tables'
3.5.啟動glance鏡像服務
1)啟動glance鏡像服務、並配置開機自啟動
systemctl start openstack-glance-api.service openstack-glance-registry.service systemctl status openstack-glance-api.service openstack-glance-registry.service systemctl enable openstack-glance-api.service openstack-glance-registry.service systemctl list-unit-files |grep openstack-glance*
3.6.檢查確認glance安裝正確
1)下載鏡像
cd /server/tools wget http://download.cirros-cloud.net/0.3.5/cirros-0.3.5-x86_64-disk.img
2)獲取管理員權限
source keystone-admin-pass.sh
3)上傳鏡像到glance
# 使用qcow2磁盤格式, bare容器格式上傳鏡像到鏡像服務並設置公共可見,這樣所有的項目都可以訪問它
openstack image create "cirros" --file cirros-0.3.5-x86_64-disk.img --disk-format qcow2 --container-format bare --public
4)查看鏡像
openstack image list
~~~至此glance鏡像服務安裝完成,啟動成功~~~