OpenStack鏡像服務是IaaS的核心服務。鏡像服務主要是由glance組件實現。它接受磁盤鏡像或服務器鏡像API請求,和來自終端用戶或OpenStack計算組件的元數據定義。它也支持包括OpenStack對象存儲在內的多種類型倉庫上的磁盤鏡像或服務器鏡像存儲。mysql
大量週期性進程運行於OpenStack鏡像服務上以支持緩存。同步複製(Replication)服務保證集羣中的一致性和可用性。其它週期性進程包括auditors, updaters, 和 reapers。linux
OpenStack鏡像服務包括如下組件:web
glance-apisql
接收鏡像API的調用,諸如鏡像發現、恢復、存儲。數據庫
glance-registrywindows
存儲、處理和恢復鏡像的元數據,元數據包括項諸如大小和類型。後端
數據庫api
存放鏡像元數據,用戶是能夠依據我的喜愛選擇數據庫的,多數的部署使用MySQL或SQLite。緩存
glance組件的具體功能以下:bash
1)提供REST API,讓用戶可以查詢獲取image的元數據和image自己
2)支持多種方式存儲image,包括普通的文件系統、SWIFT、Amazon S3 等。
3) 對Instacne執行 Snashot建立新對image.
1、glance的架構
大體架構以下所示:
1.1 glance-api
glance-api 是系統後臺運行的服務進程,對外提供REST API,響應image查詢,獲取和存儲的調用,glance-api不會真正處理請求。
若是是與image metadata相關的操做,glance-api會把強求轉發給glance-registry;若是是與image自身存取的相關操做,glance-api會把請求轉發給image的store bakend.
在控制節點上能夠查看glance-api進程。
ps -ef|grep glance-api
1.2 glance-registry
glance-registry是系統後臺運行的服務進程,負責處理和存取image的metadata,例如image的大小和類型
查看進程
ps -ef|grep glance-registry
glance支持多種格式的鏡像
1.3Database
image的metadata會保持到database中,默認是mysql
在控制節點上查看glance的database信息,以下所示:
1.4 Store backend(後端存儲)
glance 本身並存儲image,真正的image是存放在backend中的。glance支持多種backend,包括:
A directory on local file system (默認配置)
GridFS
Ceph RBD
Amazon S3
Sheepdog
Openstack block storage(cinder)
Openstack object Storage(Switf)
VMware ESX
具體使用哪一種backend,實在/etc/glance/glance-api.conf中配置的
在packstack allinone中,image存放在控制節點本地目錄/var/lib/glance/images/中的
使用命令查看已經存在的image
glance image-list
查看保存目錄
每一個image在目錄下都對應有有一個文件,文件以image的ID命名
二 、glance的操做
2.1使用web UI
admin登錄後,點擊項目->計算->鏡像
點擊建立鏡像,爲鏡像命名,格式選擇qcow2格式,(qemu copy on write,寫時複製,快照格式)
能夠在https://download.cirros-cloud.net/0.3.4/ 下載j鏡像文件cirros-0.3.4-x86_64-disk.img,這個cirros是一個很小的linux 鏡像,適合測試使用
若是選擇「共有」,該鏡像則能夠被其餘項目使用,若是選擇受保護的,則該鏡像不能被刪除。
上傳完畢後,點擊建立便可。建立完畢後,能夠點擊鏡像查看屬性
2.2使用命令
對於較小的鏡像,可使用web ui上傳會很快,可是不是適合上傳較大的鏡像。
好比咱們上傳一個4G大小的iso文件,咱們首先使用文件傳輸(ftp,sftp)傳輸到控制節點的指定目錄中,例如/root/中,而後再經過openstack的命令去上傳的鏡像以下所示:(注意: 空格被linux 識別爲\)
使用以下命令進行建立
glance image-create --name windwosserver2008r2 --file /root/windows\ Server\ 2008.iso --disk-format iso --container-format bare --progress
建立的鏡像格式爲iso,使用--progress顯示上傳進度
建立完畢後,查看鏡像
刪除鏡像,可使用glance image-delete命令,後面接ID,如
glance image-delete 57e1a4c2-3915-4f13-a0d9-411e777c2082
3、使用openstack cli
每一個openstack組件服務都有本身的cli,命令關鍵字就是組件名稱,例如glance命令就是使用glance組件
注意,在使用openstack cli 以前都須要設置環境變量,packstack中方式以下:
source keystonerc_admin
每一個命令都有增、刪、查、改的操做
CMD <obj>--creare [parm1] [parm2].....
CMD <obj>--delete [parm1] [parm2].....
CMD <obj>--update [parm1] [parm2].....
CMD <obj>--list
CMD <obj>--show [parm]
對於glance的鏡像管理命令舉例以下:
glance image-create
glance image-delete
glance image-update
glance image-show
可使用help查看使用命令方法
查看glance help image-create
openstack排查問題的方法主要是經過日誌,每一個組件服務都有本身單獨的日誌,在packstack中,主要有兩個日誌,galanceapi.log和glaceregistry.log,保存在/var/log/glance中
api.log記錄了REST API調用狀況
glance.log日誌,記錄了glace服務處理請求的過程以及數據庫操做