一 什么是glance
二 為何要有g(shù)lance
三 glance的功能
四 glance的兩個版本
五 鏡像的數(shù)據(jù)存放
六 鏡像的訪問權(quán)限
七 鏡像及任務(wù)的各種狀態(tài)
八 glance包含的組件
九 glance與openstack其他服務(wù)的關(guān)系
十 glance工作流程詳解
十一 Disk和Container格式
十二 常見的鏡像屬性及設(shè)置
十三:元數(shù)據(jù)定義的概念
一 什么是glance
二 為何要有g(shù)lance
三 glance的功能
四 glance的兩個版本
五 鏡像的數(shù)據(jù)存放
六 鏡像的訪問權(quán)限
七 鏡像及任務(wù)的各種狀態(tài)
八 glance包含的組件
九 glance與openstack其他服務(wù)的關(guān)系
十 glance工作流程詳解
十一 Disk和Container格式
十二 常見的鏡像屬性及設(shè)置
十三:元數(shù)據(jù)定義的概念
一 什么是glance
glance即p_w_picpath service,是為虛擬機的創(chuàng)建提供鏡像的服務(wù)
二 為何要有g(shù)lance
我們基于openstack是構(gòu)建基本的Iaas平臺對外提供虛擬機,而虛擬機在創(chuàng)建時必須為選擇需要安裝的操作系統(tǒng),glance服務(wù)就是為該選擇提供不同的操作系統(tǒng)鏡像。
三 glance的功能
glance服務(wù)使用戶能夠發(fā)現(xiàn),注冊,檢索虛擬機的鏡像,它提供一個能夠查詢虛擬機鏡像元數(shù)據(jù)和檢索真實鏡像的REST API。
具體的:REST API的體現(xiàn)就是一個URI,而在glance中通過一個URI地址來唯一標識一個鏡像的形式如下
<Glance Server Location>/v1/p_w_picpaths/<ID>
<Glance Server Location>:glance服務(wù)按照的位置
/v1:使用v1版本,詳見四
/p_w_picpaths:請求的類型為鏡像
/<ID>:一個uuid,在glance中全局唯一
四 glance的兩個版本
在Newton之前的版本中,glance支持兩種REST API V1和V2,兩者區(qū)別還是很明顯的:
(1). V1只提供了基本的p_w_picpath和member操作功能:鏡像創(chuàng)建、刪除、下載、列表、詳細信息查詢、更新,以及鏡像tenant成員的創(chuàng)建、刪除和列表。
(2). V2除了支持V1的所有功能外,主要是增加了如下功能:
鏡像 location 的添加、刪除和修改等操作
metadata namespace 操作
p_w_picpath tag 操作
(3).V1 和V2對 p_w_picpath store 的支持是相同的。
V1版本的實現(xiàn),具有g(shù)lance-api和glance-registry兩個WSGI服務(wù),二者都提供REST API,但需要強調(diào)的一點是: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的實現(xiàn)就是將glance-registry集成到了glance-api內(nèi)部,這么做的好處是減少了一個中間的處理環(huán)節(jié)
特別需要注意的是(查看開發(fā)手冊https://docs.openstack.org/developer/glance/)
在Newton版本中V1已經(jīng)是過時的了,并且V1最終將被移除
五 鏡像的數(shù)據(jù)存放
鏡像的數(shù)據(jù)包括:1.鏡像元數(shù)據(jù);2.鏡像本身即chunk
其中鏡像的元數(shù)據(jù)是通過glance-registry保存到數(shù)據(jù)庫中,而鏡像的chunk數(shù)據(jù)是通過Glance store Drivers存放到各種bakcend store中。
為了讓大家快速地理解glance,在配置glance時我們使用file作為后端,即將鏡像存放于本地文件系統(tǒng)中,上傳或者存儲鏡像的目錄位于按照glance服務(wù)的機器上(控制節(jié)點),默認目錄是:/var/lib/glance/p_w_picpaths/,我們應(yīng)該確認該目錄有足夠的空間可以使用。
需要特別強調(diào)的一點是:fileh后端通常位于控制節(jié)點本身,因而這種后端并不適用于多節(jié)點部署。
在glance服務(wù)上周星期的運行很多進程來支持緩存。在做glance集群時要考慮使用復制服務(wù)來確保一致性和可用性,其他的周期性的進程包括auditors, updaters, and reapers。
六 鏡像的訪問權(quán)限
參照第七部分Glance Domain Controller之后的Auth服務(wù)是用來控制鏡像的訪問權(quán)限的,此處我們需要了解鏡像的訪問權(quán)限都有:
public 公共的:可以被所有的 tenant 使用。
private 私有的/項目的:只能被 p_w_picpath owner 所在的 tenant 使用。
shared 共享的:一個非共有的p_w_picpath 可以 共享給另外的 tenant,可通過member-* 操作來實現(xiàn)。
protected 受保護的:protected 的 p_w_picpath 不能被刪除。
七 鏡像及任務(wù)的各種狀態(tài)
7.1 鏡像的狀態(tài):
下圖表示glance在處理鏡像時如何從一個狀態(tài)移動到下一個狀態(tài)。
注解:
queued:沒有上傳 p_w_picpath 數(shù)據(jù),只有db 中的元數(shù)據(jù)。
saving:正在上傳 p_w_picpath data,當注冊一個鏡像使用POST /p_w_picpaths并且當前攜帶了一個x-p_w_picpath-meta-location頭,這個鏡像將不會進入saving狀態(tài)(鏡像的數(shù)據(jù)已經(jīng)是可以獲得的,不能重傳)
active:當鏡像數(shù)據(jù)上傳完畢,鏡像就可以被使用了(可獲得的),此時處于active狀態(tài)
deactivated:表示任何非管理員用戶都無權(quán)訪問鏡像數(shù)據(jù),禁止下載鏡像,也禁止像鏡像導出和鏡像克隆之類的操作(請求鏡像數(shù)據(jù)的操作)。
killed:表示上傳過程中發(fā)生錯誤,并且鏡像是不可讀的
deleted:glance已經(jīng)保存了該鏡像的數(shù)據(jù),但是該鏡像不再可用,處于該狀態(tài)的鏡像將在不久后被自動刪除。
pending_delete: 與deleted相似,glance還沒有清除鏡像數(shù)據(jù),只是處于該狀態(tài)的鏡像不可恢復。
小結(jié):
'queued' => ('saving', 'active', 'deleted')
'saving' => ('active', 'killed', 'deleted', 'queued')
'active' => ('queued', 'pending_delete', 'deleted')
'killed' => ('deleted')
'pending_delete' => ('deleted')
'deleted' => ()
7.2 任務(wù)的狀態(tài)
pending
任務(wù)已經(jīng)保留,但是還沒一開始處理
processing
正在執(zhí)行
success
執(zhí)行成功
failure
表示在執(zhí)行任務(wù)的過程中發(fā)生了錯誤,并且不能繼續(xù)執(zhí)行
八 glance包含的組件
對照第四部分的圖示,讓我們來詳解了解下glance的組件構(gòu)成
glance-api
接受api請求,并提供相應(yīng)操作,包括發(fā)現(xiàn),檢索,存儲
glance-registry
存儲、處理、檢索鏡像的元數(shù)據(jù),元數(shù)據(jù)包括例如鏡像大小、類型等
Database
可以選擇自己喜歡的數(shù)據(jù)庫存儲鏡像元數(shù)據(jù),大多數(shù)使用 MySQL 或則 SQLite.
Storage repository for p_w_picpath files
指的是存儲鏡像文件的倉庫或者稱為backend,可以是:
1.本地文件系統(tǒng)(或者任何掛載到glance-api控制節(jié)點的文件系統(tǒng))
2.對象存儲Object Storage(swift)
3.塊存儲RADOS(ceph)
4.VMware數(shù)據(jù)存儲
5.HTTP
Metadata definition service
為廠商、管理員、openstack其他服務(wù)提供一個公用的API,并且用戶可以自定義自己的元數(shù)據(jù)(有意義的)。
這個元數(shù)據(jù)功能非常強大,可以被用在不同類型的資源
p_w_picpath 鏡像本身
artifacts
volumes 卷
flavors 套餐
aggregates 主機聚合
具體的可以拿主機聚合舉例,
主機集合即多臺物理主機的集合體,這個集合中的物理主機具有一個或多個硬件方面的優(yōu)勢,比如說內(nèi)存大,固態(tài)磁盤等,專門用來部署數(shù)據(jù)庫服務(wù)。
我們可以制作一個鏡像,然后在該鏡像內(nèi)定義好元數(shù)據(jù):綁定上述的主機結(jié)合。這樣凡是用到該鏡像安裝系統(tǒng)的虛擬機,都會被指定到該集合內(nèi),然后從該集合內(nèi)選出一臺物理機創(chuàng)建出虛機.
九 glance與openstack其他服務(wù)的關(guān)系
對glance來說,它的客戶端Glance Cli可以是:
1.glance的命令行工具
2.Horizon
3.nova
同keystone一樣,glance是Iaas的另外一個中心(見圖),keystone是關(guān)于權(quán)限的中心,而glance是關(guān)于鏡像的中心。glance可以被終端用戶或者nova服務(wù)訪問:接受磁盤或者鏡像的API請求和定義鏡像元數(shù)據(jù)的操作。
十 glance工作流程詳解
注解:
A client
然后使用glance服務(wù)的應(yīng)用程序,可以是命令行工具,horizon,nova等
REST API
glance是一個client-server架構(gòu),提供一個REST API,而使用者就是通過REST API來執(zhí)行關(guān)于鏡像的各種操作。
Glance Domain Controller
是glance內(nèi)主要的中間件實現(xiàn),就相當于一調(diào)度員,作用是將glance內(nèi)部服務(wù)的操作分發(fā)到各層(Auth認證,Notifier,Policy策略,Quota,Location,DB數(shù)據(jù)庫連接)具體任務(wù)由每個層實現(xiàn)。
第一層:Auth
驗證鏡像自己或者它的屬性是否可以被修改,只有管理員和該鏡像的擁有者才可以執(zhí)行該修改操作,否則報錯。
第二層:Property protection
由glance domain controller控制的七層組件
是可選的層,只有在glance的配置文件中設(shè)置了property_protection_file參數(shù)才會生效,它提供了兩種類型的鏡像屬性:
1.核心屬性,是在鏡像參數(shù)中指定的;2元數(shù)據(jù)屬性,是任意可以被附加到一個鏡像上的key/value
該層的功能就是通過調(diào)用glance的public API來管理對meta屬性的訪問,你也可以在它的配置文件中限定這個訪問
第三層:Notifier
把下列信息添加到queue隊列中
1.關(guān)于所有鏡像修改的通知
2.在使用過程中發(fā)生的所有的異常和警告
第四層:Policy
負責:
1.定義操作鏡像的訪問規(guī)則rules,這些規(guī)則都定義在/etc/policy.json文件中
2.監(jiān)控rules的執(zhí)行
第五層:Quota
如果針對一個用戶,管理員為其規(guī)定好他能夠上傳的所有鏡像的大小配額,此處的Quota層就是用來檢測用戶上傳是否超出配額限制:
1.如果沒有超出配額限制,那么添加鏡像的操作成功
2.如果超出了配額,那么添加鏡像的操作失敗并且報錯。
第六層:Location
與Glance Store交互,如上傳下載等。由于可以有多個存儲后端,不同的鏡像存放的位置都被該組件管理。
負責:
1.當一個新的鏡像位置被添加時,檢測該URI是否正確。
2.當一個鏡像位置被改變時,負責從存儲中刪除該鏡像。
3.阻止鏡像位置的重復
第七層:DB
1.實現(xiàn)了與數(shù)據(jù)庫API的交互
2.將鏡像轉(zhuǎn)換為相應(yīng)的格式以記錄在數(shù)據(jù)庫中。并且從數(shù)據(jù)庫接收的信息轉(zhuǎn)換為可操作的鏡像對象。
Registry Layer
屬于可選的層,用來組織安全。
通過使用這個單獨的服務(wù),來控制Glance Domain Controller與Glance DB之間的通信。
Glance DB
glance服務(wù)使用統(tǒng)一一個核心庫Glance DB,該庫對glance內(nèi)部所有依賴數(shù)據(jù)庫的組件來說是共享的。
Glance Store
用來組織處理Glance和各種存儲后端的交互。
所有的鏡像文件操作都是通過調(diào)用Glance Store庫執(zhí)行的,它負責與外部存儲端和(或)本地文件系統(tǒng)的交互。Glance Store提供了一個統(tǒng)一的接口來訪問后端的存儲。
十一 Disk和Container格式
當我們添加一個鏡像到glance時,你必須指定虛擬機的disk格式和container格式,關(guān)于disk格式請自行研究kvm等虛擬。
disk和container格式是每個部署的基本配置,常用的格式如下:
1.Disk Format
不同的虛擬化應(yīng)用的廠針有不同的虛擬機鏡像的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格式是指虛擬機映像是否包含一個文件格式,該文件格式還包含有關(guān)實際虛擬機的元數(shù)據(jù)。
需要注意的是:容器格式字符串在當前并不會被glance或其他OpenStack組件的使用,所以如果你不確定,簡單的將容器格式指定bare是安全的。
你可以設(shè)置如下容器格式:
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
十二 常見的鏡像屬性及設(shè)置
操作系統(tǒng)架構(gòu),修改方式如下
openstack p_w_picpath set IMG-UUID --property architecture=x86_64
更多猛擊這里http://docs.openstack.org/cli-reference/glance-property-keys.html
instance_uuid
是元數(shù)據(jù),可用于記錄與此鏡像關(guān)聯(lián)的實例。(僅提供信息,不創(chuàng)建實例快照。)
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
操作系統(tǒng)的發(fā)行版本
詳情點擊這里http://docs.openstack.org/cli-reference/glance-property-keys.html
os_version
廠商指定的操作系統(tǒng)版本
十三:元數(shù)據(jù)定義的概念
http://docs.openstack.org/developer/glance/metadefs-concepts.html
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
當前文章:glance系列一:glance基礎(chǔ)-創(chuàng)新互聯(lián)
轉(zhuǎn)載注明:http://www.rwnh.cn/article24/jhpje.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、網(wǎng)站改版、定制網(wǎng)站、外貿(mào)建站、企業(yè)建站、網(wǎng)站維護
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容