openstack-理解glance組件和鏡像服務

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的架構

    大體架構以下所示:

image.png



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

image.png



1.2 glance-registry

glance-registry是系統後臺運行的服務進程,負責處理和存取image的metadata,例如image的大小和類型

查看進程

ps -ef|grep glance-registry

image.png


glance支持多種格式的鏡像

image.png


1.3Database

image的metadata會保持到database中,默認是mysql

在控制節點上查看glance的database信息,以下所示:

image.png



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中配置的

image.png

在packstack allinone中,image存放在控制節點本地目錄/var/lib/glance/images/中的

使用命令查看已經存在的image

glance image-list

image.png

查看保存目錄

image.png

每一個image在目錄下都對應有有一個文件,文件以image的ID命名


二 、glance的操做

2.1使用web UI

 admin登錄後,點擊項目->計算->鏡像

image.png



點擊建立鏡像,爲鏡像命名,格式選擇qcow2格式,(qemu copy on write,寫時複製,快照格式)

image.png


能夠在https://download.cirros-cloud.net/0.3.4/  下載j鏡像文件cirros-0.3.4-x86_64-disk.img,這個cirros是一個很小的linux 鏡像,適合測試使用



image.png


若是選擇「共有」,該鏡像則能夠被其餘項目使用,若是選擇受保護的,則該鏡像不能被刪除。

上傳完畢後,點擊建立便可。建立完畢後,能夠點擊鏡像查看屬性

image.png


2.2使用命令

對於較小的鏡像,可使用web ui上傳會很快,可是不是適合上傳較大的鏡像。

好比咱們上傳一個4G大小的iso文件,咱們首先使用文件傳輸(ftp,sftp)傳輸到控制節點的指定目錄中,例如/root/中,而後再經過openstack的命令去上傳的鏡像以下所示:(注意: 空格被linux 識別爲\)

image.png

使用以下命令進行建立

glance image-create --name windwosserver2008r2 --file /root/windows\ Server\ 2008.iso --disk-format iso --container-format bare --progress

建立的鏡像格式爲iso,使用--progress顯示上傳進度

image.png

建立完畢後,查看鏡像


image.png

刪除鏡像,可使用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查看使用命令方法

image.png



查看glance help image-create

image.png


openstack排查問題的方法主要是經過日誌,每一個組件服務都有本身單獨的日誌,在packstack中,主要有兩個日誌,galanceapi.log和glaceregistry.log,保存在/var/log/glance中

api.log記錄了REST API調用狀況

image.png

glance.log日誌,記錄了glace服務處理請求的過程以及數據庫操做

image.png

相關文章
相關標籤/搜索