您好,登錄后才能下訂單哦!
一 什么是glance
二 為何要有glance
三 glance的功能
四 glance的兩個版本
五 鏡像的數據存放
六 鏡像的訪問權限
七 鏡像及任務的各種狀態
八 glance包含的組件
九 glance與openstack其他服務的關系
十 glance工作流程詳解
十一 Disk和Container格式
十二 常見的鏡像屬性及設置
十三:元數據定義的概念
一 什么是glance
二 為何要有glance
三 glance的功能
四 glance的兩個版本
五 鏡像的數據存放
六 鏡像的訪問權限
七 鏡像及任務的各種狀態
八 glance包含的組件
九 glance與openstack其他服務的關系
十 glance工作流程詳解
十一 Disk和Container格式
十二 常見的鏡像屬性及設置
十三:元數據定義的概念
一 什么是glance
glance即p_w_picpath service,是為虛擬機的創建提供鏡像的服務
二 為何要有glance
我們基于openstack是構建基本的Iaas平臺對外提供虛擬機,而虛擬機在創建時必須為選擇需要安裝的操作系統,glance服務就是為該選擇提供不同的操作系統鏡像。
三 glance的功能
glance服務使用戶能夠發現,注冊,檢索虛擬機的鏡像,它提供一個能夠查詢虛擬機鏡像元數據和檢索真實鏡像的REST API。
具體的:REST API的體現就是一個URI,而在glance中通過一個URI地址來唯一標識一個鏡像的形式如下
<Glance Server Location>/v1/p_w_picpaths/<ID>
<Glance Server Location>:glance服務按照的位置
/v1:使用v1版本,詳見四
/p_w_picpaths:請求的類型為鏡像
/<ID>:一個uuid,在glance中全局唯一
四 glance的兩個版本
在Newton之前的版本中,glance支持兩種REST API V1和V2,兩者區別還是很明顯的:
(1). V1只提供了基本的p_w_picpath和member操作功能:鏡像創建、刪除、下載、列表、詳細信息查詢、更新,以及鏡像tenant成員的創建、刪除和列表。
(2). V2除了支持V1的所有功能外,主要是增加了如下功能:
鏡像 location 的添加、刪除和修改等操作
metadata namespace 操作
p_w_picpath tag 操作
(3).V1 和V2對 p_w_picpath store 的支持是相同的。
V1版本的實現,具有glance-api和glance-registry兩個WSGI服務,二者都提供REST API,但需要強調的一點是:glance-registry提供的REST API是給glance-api使用的,即The registry is a private internal service meant for use by OpenStack Image service. Do not expose this service to users。
v2的實現就是將glance-registry集成到了glance-api內部,這么做的好處是減少了一個中間的處理環節
特別需要注意的是(查看開發手冊https://docs.openstack.org/developer/glance/)
在Newton版本中V1已經是過時的了,并且V1最終將被移除
五 鏡像的數據存放
鏡像的數據包括:1.鏡像元數據;2.鏡像本身即chunk
其中鏡像的元數據是通過glance-registry保存到數據庫中,而鏡像的chunk數據是通過Glance store Drivers存放到各種bakcend store中。
為了讓大家快速地理解glance,在配置glance時我們使用file作為后端,即將鏡像存放于本地文件系統中,上傳或者存儲鏡像的目錄位于按照glance服務的機器上(控制節點),默認目錄是:/var/lib/glance/p_w_picpaths/,我們應該確認該目錄有足夠的空間可以使用。
需要特別強調的一點是:fileh后端通常位于控制節點本身,因而這種后端并不適用于多節點部署。
在glance服務上周星期的運行很多進程來支持緩存。在做glance集群時要考慮使用復制服務來確保一致性和可用性,其他的周期性的進程包括auditors, updaters, and reapers。
六 鏡像的訪問權限
參照第七部分Glance Domain Controller之后的Auth服務是用來控制鏡像的訪問權限的,此處我們需要了解鏡像的訪問權限都有:
public 公共的:可以被所有的 tenant 使用。
private 私有的/項目的:只能被 p_w_picpath owner 所在的 tenant 使用。
shared 共享的:一個非共有的p_w_picpath 可以 共享給另外的 tenant,可通過member-* 操作來實現。
protected 受保護的:protected 的 p_w_picpath 不能被刪除。
七 鏡像及任務的各種狀態
7.1 鏡像的狀態:
下圖表示glance在處理鏡像時如何從一個狀態移動到下一個狀態。
注解:
queued:沒有上傳 p_w_picpath 數據,只有db 中的元數據。
saving:正在上傳 p_w_picpath data,當注冊一個鏡像使用POST /p_w_picpaths并且當前攜帶了一個x-p_w_picpath-meta-location頭,這個鏡像將不會進入saving狀態(鏡像的數據已經是可以獲得的,不能重傳)
active:當鏡像數據上傳完畢,鏡像就可以被使用了(可獲得的),此時處于active狀態
deactivated:表示任何非管理員用戶都無權訪問鏡像數據,禁止下載鏡像,也禁止像鏡像導出和鏡像克隆之類的操作(請求鏡像數據的操作)。
killed:表示上傳過程中發生錯誤,并且鏡像是不可讀的
deleted:glance已經保存了該鏡像的數據,但是該鏡像不再可用,處于該狀態的鏡像將在不久后被自動刪除。
pending_delete: 與deleted相似,glance還沒有清除鏡像數據,只是處于該狀態的鏡像不可恢復。
小結:
'queued' => ('saving', 'active', 'deleted')
'saving' => ('active', 'killed', 'deleted', 'queued')
'active' => ('queued', 'pending_delete', 'deleted')
'killed' => ('deleted')
'pending_delete' => ('deleted')
'deleted' => ()
7.2 任務的狀態
pending
任務已經保留,但是還沒一開始處理
processing
正在執行
success
執行成功
failure
表示在執行任務的過程中發生了錯誤,并且不能繼續執行
八 glance包含的組件
對照第四部分的圖示,讓我們來詳解了解下glance的組件構成
glance-api
接受api請求,并提供相應操作,包括發現,檢索,存儲
glance-registry
存儲、處理、檢索鏡像的元數據,元數據包括例如鏡像大小、類型等
Database
可以選擇自己喜歡的數據庫存儲鏡像元數據,大多數使用 MySQL 或則 SQLite.
Storage repository for p_w_picpath files
指的是存儲鏡像文件的倉庫或者稱為backend,可以是:
1.本地文件系統(或者任何掛載到glance-api控制節點的文件系統)
2.對象存儲Object Storage(swift)
3.塊存儲RADOS(ceph)
4.VMware數據存儲
5.HTTP
Metadata definition service
為廠商、管理員、openstack其他服務提供一個公用的API,并且用戶可以自定義自己的元數據(有意義的)。
這個元數據功能非常強大,可以被用在不同類型的資源
p_w_picpath 鏡像本身
artifacts
volumes 卷
flavors 套餐
aggregates 主機聚合
具體的可以拿主機聚合舉例,
主機集合即多臺物理主機的集合體,這個集合中的物理主機具有一個或多個硬件方面的優勢,比如說內存大,固態磁盤等,專門用來部署數據庫服務。
我們可以制作一個鏡像,然后在該鏡像內定義好元數據:綁定上述的主機結合。這樣凡是用到該鏡像安裝系統的虛擬機,都會被指定到該集合內,然后從該集合內選出一臺物理機創建出虛機.
九 glance與openstack其他服務的關系
對glance來說,它的客戶端Glance Cli可以是:
1.glance的命令行工具
2.Horizon
3.nova
同keystone一樣,glance是Iaas的另外一個中心(見圖),keystone是關于權限的中心,而glance是關于鏡像的中心。glance可以被終端用戶或者nova服務訪問:接受磁盤或者鏡像的API請求和定義鏡像元數據的操作。
十 glance工作流程詳解
注解:
A client
然后使用glance服務的應用程序,可以是命令行工具,horizon,nova等
REST API
glance是一個client-server架構,提供一個REST API,而使用者就是通過REST API來執行關于鏡像的各種操作。
Glance Domain Controller
是glance內主要的中間件實現,就相當于一調度員,作用是將glance內部服務的操作分發到各層(Auth認證,Notifier,Policy策略,Quota,Location,DB數據庫連接)具體任務由每個層實現。
第一層:Auth
驗證鏡像自己或者它的屬性是否可以被修改,只有管理員和該鏡像的擁有者才可以執行該修改操作,否則報錯。
第二層:Property protection
由glance domain controller控制的七層組件
是可選的層,只有在glance的配置文件中設置了property_protection_file參數才會生效,它提供了兩種類型的鏡像屬性:
1.核心屬性,是在鏡像參數中指定的;2元數據屬性,是任意可以被附加到一個鏡像上的key/value
該層的功能就是通過調用glance的public API來管理對meta屬性的訪問,你也可以在它的配置文件中限定這個訪問
第三層:Notifier
把下列信息添加到queue隊列中
1.關于所有鏡像修改的通知
2.在使用過程中發生的所有的異常和警告
第四層:Policy
負責:
1.定義操作鏡像的訪問規則rules,這些規則都定義在/etc/policy.json文件中
2.監控rules的執行
第五層:Quota
如果針對一個用戶,管理員為其規定好他能夠上傳的所有鏡像的大小配額,此處的Quota層就是用來檢測用戶上傳是否超出配額限制:
1.如果沒有超出配額限制,那么添加鏡像的操作成功
2.如果超出了配額,那么添加鏡像的操作失敗并且報錯。
第六層:Location
與Glance Store交互,如上傳下載等。由于可以有多個存儲后端,不同的鏡像存放的位置都被該組件管理。
負責:
1.當一個新的鏡像位置被添加時,檢測該URI是否正確。
2.當一個鏡像位置被改變時,負責從存儲中刪除該鏡像。
3.阻止鏡像位置的重復
第七層:DB
1.實現了與數據庫API的交互
2.將鏡像轉換為相應的格式以記錄在數據庫中。并且從數據庫接收的信息轉換為可操作的鏡像對象。
Registry Layer
屬于可選的層,用來組織安全。
通過使用這個單獨的服務,來控制Glance Domain Controller與Glance DB之間的通信。
Glance DB
glance服務使用統一一個核心庫Glance DB,該庫對glance內部所有依賴數據庫的組件來說是共享的。
Glance Store
用來組織處理Glance和各種存儲后端的交互。
所有的鏡像文件操作都是通過調用Glance Store庫執行的,它負責與外部存儲端和(或)本地文件系統的交互。Glance Store提供了一個統一的接口來訪問后端的存儲。
十一 Disk和Container格式
當我們添加一個鏡像到glance時,你必須指定虛擬機的disk格式和container格式,關于disk格式請自行研究kvm等虛擬。
disk和container格式是每個部署的基本配置,常用的格式如下:
1.Disk Format
不同的虛擬化應用的廠針有不同的虛擬機鏡像的disk格式:
raw
This is an unstructured disk p_w_picpath format
vhd
This is the VHD disk format, a common disk format used by virtual machine monitors from VMware, Xen, Microsoft, VirtualBox, and others
vhdx
This is the VHDX disk format, an enhanced version of the vhd format which supports larger disk sizes among other features.
vmdk
Another common disk format supported by many common virtual machine monitors
vdi
A disk format supported by VirtualBox virtual machine monitor and the QEMU emulator
iso
An archive format for the data contents of an optical disc (e.g. CDROM).
ploop
A disk format supported and used by Virtuozzo to run OS Containers
qcow2
A disk format supported by the QEMU emulator that can expand dynamically and supports Copy on Write
aki
This indicates what is stored in Glance is an Amazon kernel p_w_picpath
ari
This indicates what is stored in Glance is an Amazon ramdisk p_w_picpath
ami
This indicates what is stored in Glance is an Amazon machine p_w_picpath
2.Container Format
容器container格式是指虛擬機映像是否包含一個文件格式,該文件格式還包含有關實際虛擬機的元數據。
需要注意的是:容器格式字符串在當前并不會被glance或其他OpenStack組件的使用,所以如果你不確定,簡單的將容器格式指定bare是安全的。
你可以設置如下容器格式:
bare
This indicates there is no container or metadata envelope for the p_w_picpath
ovf
This is the OVF container format
aki
This indicates what is stored in Glance is an Amazon kernel p_w_picpath
ari
This indicates what is stored in Glance is an Amazon ramdisk p_w_picpath
ami
This indicates what is stored in Glance is an Amazon machine p_w_picpath
ova
This indicates what is stored in Glance is an OVA tar archive file
docker
This indicates what is stored in Glance is a Docker tar archive of the container filesystem
十二 常見的鏡像屬性及設置
操作系統架構,修改方式如下
openstack p_w_picpath set IMG-UUID --property architecture=x86_64
更多猛擊這里http://docs.openstack.org/cli-reference/glance-property-keys.html
instance_uuid
是元數據,可用于記錄與此鏡像關聯的實例。(僅提供信息,不創建實例快照。)
kernel_id
The ID of p_w_picpath stored in Glance that should be used as the kernel when booting an AMI-style p_w_picpath.
ramdisk_id
The ID of p_w_picpath stored in Glance that should be used as the ramdisk when booting an AMI-style p_w_picpath.
os_distro
操作系統的發行版本
詳情點擊這里http://docs.openstack.org/cli-reference/glance-property-keys.html
os_version
廠商指定的操作系統版本
十三:元數據定義的概念
http://docs.openstack.org/developer/glance/metadefs-concepts.html
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。