OpenStack入门篇(八)之镜像服务Glance
一、Glance的概述
Glance是為虛擬機的創建提供鏡像的服務,我們基于Openstack是構建基本的IaaS平臺對外提供虛擬機,而虛擬機在創建時必須為選擇需要安裝的操作系統,Glance服務就是為該選擇提供不同的操作系統鏡像。
二、Glance的組件
- Glance-API
主要用來響應各種REST請求然后通過其它模塊(主要是glance-registry組件和后端存儲接口)完成鏡像的上傳、刪除、查詢等操作。可以簡單的再分為兩部分:一層中間件,它主要是做一些對請求的解析工作(如分析出版本號), 另外一部分提供實際的服務(如與鏡像上傳下載的后端存儲接口交互)。默認綁定端口是9292。
- Glance-Registry
鏡像注冊服務用于提供鏡像元數據的REST接口。主要工作是存儲或者獲取鏡像的元數據,與MySQL數據庫進行交互。也可以簡單的再細分為兩部分,API和具體的Server。元數據是指鏡像相關的一些信息(如id,size, status,location,checksum,min_disk,min_ram,owner等)真正的鏡像數據保存在實際所使用的后端存儲里(如Swift,S3,Filesystem等)。默認綁定的端口是9191。
- Image Store
嚴格來說Image Store不屬于Glance的組件,這里把它單獨分出來只是為了方便理解,它只是一個接口層,提供鏡像存儲和查詢的接口。具體的實現則需要外部存儲(Swift,S3)的支持。
三、Glance的工作流程
Glance需要配置的服務:glance-api、glance-registry
Glance-api:接受云系統鏡像的創建、刪除、讀取請求
Glance-registry:云系統鏡像注冊服務
①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表,另一張是imgage propetry表。image表保存了鏡像的格式、大小等信息;而image propetry表則主要保存鏡像的定制化信息。可以通過:mysql -h 192.168.56.11 -uglance -pglance -e "use glance;show tables;"查看表信息
④image store是一個存儲的接口層,通過這個接口,glance可以獲取鏡像,image store支持有Amazon的S3,OpenStack本身的swift,還有諸如ceph,GlusterFS等分布式存儲。Image Store僅僅是一個接口處,具體的實現需要外部的存儲支持。
總結:
glance-api 是系統后臺運行的服務進程。?
對外提供 REST API,響應 image 查詢、獲取和存儲的調用。
glance-api 不會真正處理請求。?
如果是與 image metadata(元數據)相關的操作,glance-api 會把請求轉發給 glance-registry;?
如果是與 image 自身存取相關的操作,glance-api 會把請求轉發給該 image 的 store 。
四、Glance安裝配置(此處將glance服務配置在控制節點上)
(1)創建“glance”服務實體
[root@linux-node1 ~]# openstack service create --name glance \ > --description "OpenStack Image" image(2)創建鏡像服務的 API 端點:
[root@linux-node1 ~]# openstack endpoint create --region RegionOne image public http://192.168.56.11:9292 [root@linux-node1 ~]# openstack endpoint create --region RegionOne image internal http://192.168.56.11:9292 [root@linux-node1 ~]# openstack endpoint create --region RegionOne image admin http://192.168.56.11:9292(3)編輯文件 /etc/glance/glance-api.conf 并完成如下動作:
在 [database] 部分,配置數據庫訪問:[database] ... connection = mysql+pymysql://glance:glance@192.168.56.11/glance 同步修改/etc/glance/glance-registry.conf在 [database] 部分,配置數據庫訪問:[database] ... connection = mysql+pymysql://glance:glance@192.168.56.11/glance(4)同步鏡像服務數據庫并查看創建是否成功(此處有WARNING可以忽略):
[root@linux-node1 ~]# su -s /bin/sh -c "glance-manage db_sync" glance Option "verbose" from group "DEFAULT" is deprecated for removal. Its value may be silently ignored in the future. /usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/enginefacade.py:1171: OsloDBDeprecationWarning: EngineFacade is deprecated; please use oslo_db.sqlalchemy.enginefacadeexpire_on_commit=expire_on_commit, _conf=conf) /usr/lib/python2.7/site-packages/pymysql/cursors.py:166: Warning: (1831, u"Duplicate index 'ix_image_properties_image_id_name' defined on the table 'glance.image_properties'. This is deprecated and will be disallowed in a future release.")result = self._query(query)[root@linux-node1 ~]# mysql -h 192.168.56.11 -uglance -pglance -e "use glance;show tables;"(5)編輯文件 /etc/glance/glance-api.conf 并完成如下動作:
在 [keystone_authtoken] 和 [paste_deploy] 部分,配置認證服務訪問:[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同步修改/etc/glance/glance-registry.conf在 [keystone_authtoken] 和 [paste_deploy] 部分,配置認證服務訪問:[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
(6)編輯文件 /etc/glance/glance-api.conf 并完成如下動作:
在 [glance_store] 部分,配置本地文件系統存儲和鏡像文件位置:只需要打開注釋[glance_store] ... stores = file,http default_store = file filesystem_store_datadir = /var/lib/glance/images/到此,glance-api和glance-registry都已經配置完畢
查看glance-api和registry的所有配置
(7)完成安裝和配置,啟動glance服務
[root@linux-node1 ~]# systemctl enable openstack-glance-api.service openstack-glance-registry.service [root@linux-node1 ~]# systemctl start openstack-glance-api.service openstack-glance-registry.service(8)驗證操作
①獲得 admin 憑證來獲取只有管理員能執行的命令的訪問權限:
②下載源鏡像
[root@linux-node1 ~]# wget http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img③使用 QCOW2 磁盤格式, bare 容器格式上傳鏡像到鏡像服務并設置公共可見,這樣所有的項目都可以訪問它:
注: 把鏡像放到任意目錄下,執行以下命令,進入那個目錄,否則要加絕對路徑
檢查上傳結果:
[root@linux-node1 ~]# openstack image list五、Glance配置總結
①glance服務需要使用數據庫,需要在配置文件中配置數據庫連接;
②glance服務使用需要在keystone上進行注冊認證,需要在配置文件中配置keystone的驗證參數和方式,以及token的存儲指定在memcache服務器上;
③glance服務的鏡像需要配置存儲的類型以及路徑。
?
轉載于:https://www.cnblogs.com/linuxk/p/9283115.html
總結
以上是生活随笔為你收集整理的OpenStack入门篇(八)之镜像服务Glance的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于java和c语言中,变量重名问题
- 下一篇: 两台centos之间传送文件