您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關OpenStack中Glance的作用是什么,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
Glance 組件
Glance有以下幾個組件:
glance-api, 接收鏡像發現,查詢,和存儲鏡像的api調用。
glance-registry, 存儲,處理和查詢鏡像的元數據信息。
database, 存儲鏡像元數據
repository, 集成了各種openstack組件,比如文件系統,S3, 以及其它的http鏡像存儲。
Glance接收來自終端用戶或Nova組件的鏡像的API請求,鏡像文件可以存儲在對象存儲服務swift上或者其它存儲倉庫。
鏡像服務支持以下幾種后端存儲:
文件系統 Openstack的鏡像默認存儲在文件系統后端。在本地的文件系統里進行保存鏡像。
對象存儲 swift
Block Storage cinder.
VMware ESX/ESXi or vCenter.
S3 亞馬遜的s3等等.
HTTP 可以使用英特網上的http服務獲取鏡像。這種方式只能只讀。
RADOS Block Device (RBD) 使用Ceph的RBD接口存儲到Ceph集群中
Sheepdog 專為QEMU/KVM提供的一個分布式存儲系統.
GridFS 使用MongoDB存儲鏡像.
Glance 架構
Glance具有客戶端 - 服務器體系結構,并提供Rest API,通過Rest API來請求服務。通過客戶端發送Rest API的請求,并等待Keystone認證。 Glance域控制器管理所有內部操作,這些分為很多層,每層實現自己的任務。
Glance store是glacne和外部存儲后端或者本地文件系統提供通信的一個層,并提供統一的訪問接口。數據庫為每一個組件提供一個集中的數據訪問。
Glance架構由以下幾個組件組成:
Client - 任何應用都可以通過Client來使用glance服務。
REST API – 通過REST方式暴露Glance功能。
Database Abstraction Layer (DAL) –統一Glance和數據庫交互的一個應用層接口。
Glance Domain Controller –完成glance主要的功能的中件間:
authorization,notifications, policies, database connections.
Glance Store – 集成glance和各種后端存儲服務.
Registry Layer –可選層,通過使用單獨的服務來組織domain和DAL之間的安全通信。
Glance 格式
當我們上傳鏡像時,我們需要指定虛擬機鏡像的格式。 Glance支持各種格式,如磁盤格式和容器格式。虛擬磁盤類似于物理服務器的引導驅動程序,只會壓縮到文件中。不同的虛擬化支持不同的磁盤格式。
磁盤格式
虛擬機鏡像的磁盤格式是底層磁盤鏡像的格式。以下是OpenStack支持的磁盤格式。
容器格式
正如OpenStack glance也支持容器格式的概念,它描述了文件格式,并包含關于實際虛擬機的額外元數據。
以下是OpenStack Glance支持的Container格式.
這里注意下,Glance或其他OpenStack組件目前并不支持使用容器格式。如果不確定,最好使用'bare'作為容器格式,比如我們上傳鏡像到glance,bare就是沒有容器.
使用如下命令上傳鏡像到glance
root@CONTROLLER:~#glance image-create --name "cirros-0.3.4-x86_64" --file/tmp/images/cirros-0.3.4-x86_64-disk.img --disk-format qcow2 --container-formatbare --visibility public --progress
這里使用image-create來上傳鏡像,其--name表示上傳鏡像后鏡像的名稱,--file表示要上傳鏡像的路徑,磁盤格式--disk-format以qcow2和--container-format為bare。可見性--visibility public表示鏡像可以公開訪問,進度--pogress表示顯示上傳進度條。三門峽婦科醫院http://www.smxrlyy.com/
Glance狀態流
上傳鏡像時Glance會顯示鏡像的各種狀態。當我們第一步上傳鏡像時,第一步就是入隊列,經過短時間的驗證,鏡像進入queued狀態,保存鏡像并開始上傳。之后鏡像會進入saving的狀態,表示還沒有完全上傳完畢。鏡像完全上傳后,狀態會變成Active。如果上傳失敗,將會變成killed或deleted狀態。另外我們還可以使用命令停用或者重新激活完全上傳成功的鏡像。
下圖為glance鏡像的狀態流轉圖。
queued
在Glance registry里已經通過驗證可以開始存儲. 暫時沒有鏡像數據被上傳到glance,鏡像大小在上傳時設置為0。
saving
表示正在上傳鏡像到Glance。通過POST /images接口注冊鏡像,如果有x-image-meta-location http頭,這個鏡像將不會處于saving狀態(因為鏡像數據在其他位置已經可用)。
active
表示在glance里是一個完全可用的鏡像。當鏡像上傳成功后,會切換到這個狀態。
deactivated
表示不允許任何非管理的用戶訪問。禁止下載鏡像,同時也禁止所以可能獲取鏡像數據的操作,比如鏡像導出和鏡像克隆等操作。
killed
表示上傳鏡像時發生錯誤,這個鏡像不可用。
deleted
Glance仍然保留了鏡像的相關信息,但不能在被使用。這個狀態下的鏡像將會被自動刪除。
Deactivatingand Reactivating an image
可以停用鏡像。也可以重新激活,或者刪除。當管理員對鏡像進行更新時,可以先把鏡像停用,這樣鏡像對非管理員用戶就不可見了,當更新完成后,可以重新激活鏡像,以便用戶可以用更新后鏡像啟動虛擬機。
我們需要token 和鏡像id來停用鏡像,以下是停用和重新激活鏡像的步驟。
替換鏡像id和token可以執行以下的curl命令
root@CONTROLLER:~#curl -X POST -H 'X-Auth-Token: fbdab45ff753408c9e042aa6892e055b' http://192.168.1.110:9292/v2/images/17449a2e-8711-4700-af8f-439927159b7c/actions/deactivate
這個鏡像被停用后,我們使用glance image-list來列出鏡像
因為被停用,我們將會得到這樣的輸出。.
我們同樣可以用curl命令去重新激活鏡像,只要修改token,用以下步驟就可以重新激活被停用的鏡像。
root@CONTROLLER:~#curl -X POST -H 'X-Auth-Token: 88878e52d01f43c29a915b2220295641'http://192.168.1.110:9292/v2/images/17449a2e-8711-4700-af8f-439927159b7c/actions/reactivate
下一步執行glance image-list 檢查
Glance 配置文件
Glance-api.conf : Glance api 服務配置文件.
Glance-registry.conf : Glanceregistry服務配置文件,用戶存儲鏡像有關的元數據。
glance-scrubber.conf : 用于清理已刪除的鏡像的服務。
policy.json : 鏡像服務的訪問控制。在這里,我們可以定義角色和策略,是OpenStack Glance中的安全特性。
鏡像和實例
如前所述,磁盤鏡像作為模板存儲。鏡像服務存儲和管理鏡像。實例是在計算節點上運行的單個虛擬機,計算節點管理這些實例。用戶可以從用同一個鏡像啟動任意數量的實例。每個啟動的實例都是基于鏡像的一個副本,所以實例上的任何修改都不會影響到鏡像。我們可以對正在運行實例做快照,并可以用快照于啟動另一個新的實例。
當我們啟動一個實例時,我們需要指定Flavor。Flavor定義了實例可以有多少個虛擬CPU,多大的RAM以及臨時磁盤的大小。 OpenStack提供了預定義的flavor,我們也可以新創建和編輯Flavor。
下圖顯示了啟動實例的系統狀態。glance store包含一定數量的鏡像,計算節點包含可用的vcpu,內存和本地磁盤資源,cinder-volume包含一定數量的volume。
啟動實例之前,需要選擇一個鏡像,flavor和任何可選屬性。選定的 flavor提供一個系統盤,標記為vda,另外一個臨時盤被標記為vdb,cinder-volume提供的volume被映射到第三個虛擬磁盤并將其稱為vdc。
在該圖中,基礎鏡像從image store復制到本地磁盤。 vda是實例的第一個磁盤,如果鏡像文件越小,則通過網絡復制的數據越少,實例啟動就會更快。實例創建時會創建一塊空的臨時數據盤vdb,當實例終止時,它將被刪除。
vdc使用iSCSI連接到cinder-volume。隨后計算節點提供vCPU和內存資源之后,該實例將從vda.啟動。該實例運行并更改磁盤上的數據。如果volume store位于單獨的網絡上,需要在計算節點nova.conf里指定的my_block_storage_ip,將會通過存儲網絡直接通信。
看完上述內容,你們對OpenStack中Glance的作用是什么有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。