OpenStack 的部署T版(三)——Glance组件
目錄
- 一、glance概述
- 1、鏡像服務(wù)
- 2、images API的版本
- 3、鏡像格式
- 4、鏡像文件容器格式
- 5、鏡像狀態(tài)
- 6、訪問權(quán)限
- 7、Glance架構(gòu)圖
- 8、Glance 工作流程
- 二、OpenStack-glance的組件部署
- 1、創(chuàng)建數(shù)據(jù)庫實例和數(shù)據(jù)庫用戶
- 2、創(chuàng)建用戶、修改配置文件
- 3、測試是否部署成功
- 總結(jié)
一、glance概述
鏡像服務(wù)在OpenStack中的項目名稱為Glance。在早期的OpenStack版本中,Glance只有管理鏡像的功能,并不具備鏡像存儲功能。現(xiàn)在,Glance已發(fā)展成為集鏡像上傳、檢索、管理和存儲等多種功能的OpenStack核心服務(wù)。
1、鏡像服務(wù)
鏡像服務(wù)就是用來管理鏡像的,讓用戶能夠發(fā)現(xiàn)、獲取和保存鏡像。在OpenStack中提供鏡像服務(wù)的是Glance,其主要功能如下
- 查詢和獲取鏡像的元數(shù)據(jù)和鏡像本身
- 注冊和上傳虛擬機鏡像,包括鏡像的創(chuàng)建、上傳、下載和管理
- 維護鏡像信息,包括元數(shù)據(jù)和鏡像本身
- 支持多種方式存儲鏡像,包括普通的文件系統(tǒng),Swift、Amazon S3等
- 對虛擬機實例執(zhí)行創(chuàng)建快照命令來創(chuàng)建新的鏡像,或者備份虛擬機的狀態(tài)
2、images API的版本
Glance提供的RESTful API目前有兩個版本:API v1和API v2
- API v1:提供基本的鏡像和成員操作功能,包括鏡像創(chuàng)建、刪除、下載、列表、詳細信息查詢、更新,以及鏡像租戶成員的創(chuàng)建、刪除和列表。
- API v2:除了支持v1的所有功能外,主要增加了鏡像位置的添加、刪除、修改,元數(shù)據(jù)和名稱空間操作, 以及鏡像標(biāo)記操作。
兩個版本對鏡像存儲支持相同,v1從N版開始已經(jīng)過時,遷移路徑使用v2進行替代
3、鏡像格式
虛擬機鏡像文件磁盤格式
1.raw:無結(jié)構(gòu)的磁盤格式vhd:該格式通用于VMware,Xen, VirtualBox以及其他虛機管理程序
2.vhdx:vhd格式的增強版本,支持更大的磁盤尺寸
3.vmdk:一種比較通用的虛擬機磁盤格式
4.vdi:由VirtualBox虛擬機監(jiān)控程序和QEMU仿真器支持的磁盤格式
5.iso:用于光盤(CD-ROM)數(shù)據(jù)內(nèi)容的檔案格式
6.ploop:由Virtuozzo支持,用于運行OS容器的磁盤格式
7.qcow2:由QEMU仿真支持,可動態(tài)擴展,支持寫時復(fù)制(Copy on Write)的磁盤格式
8.aki:在Glance中存儲的Amazon內(nèi)核格式
9.ari:在Glance中存儲的Amazon虛擬內(nèi)存盤(Ramdisk)格式
10.ami:在Glance中存儲的Amazon機器格式
4、鏡像文件容器格式
1.bare:沒有容器或元數(shù)據(jù)"信封"的鏡像
2.ovf:開放虛擬化格式
3.ova:在Glance中存儲的開放虛擬化設(shè)備格式
5.aki:在Glance中存儲的Amazon內(nèi)核格式
6.ari:在Glance中存儲的Amazon虛擬內(nèi)存盤(Ramdisk)格式
7.Docker:在Glance中存儲的容器文件系統(tǒng)的Dockerd的tar檔案
5、鏡像狀態(tài)
queued:這是一種初始化狀態(tài),鏡像文件剛被創(chuàng)建,在Glance數(shù)據(jù)庫只有其元數(shù)據(jù),鏡像數(shù)據(jù)還沒有上傳至數(shù)據(jù)庫中
saving:是鏡像的原始數(shù)據(jù)在上傳到數(shù)據(jù)庫中的一種過渡狀態(tài),表示正在上傳鏡像
uploading:指示已進行導(dǎo)入數(shù)據(jù)提交調(diào)用,此狀態(tài)下不允許調(diào)用PUT/filesaving狀態(tài)會執(zhí)行PUT/file,這是另外一種上傳的方法)
importing:指示已經(jīng)完成導(dǎo)入調(diào)用,但是鏡像還未準(zhǔn)備好使用
active:表示當(dāng)鏡像數(shù)據(jù)成功上傳完畢,成為Glance中可用的鏡像
deactivated:表示任何非管理員用戶都無權(quán)訪問鏡像數(shù)據(jù),禁止下載鏡像,也禁止鏡像導(dǎo)出和鏡像克隆之類的操作(只有管理員可以操作,維護)
killed:表示鏡像上傳過程中發(fā)生錯誤,鏡像不可讀
deleted:鏡像將在不久后被自動刪除,該鏡像不可再用,但是目前Glance仍然保留該鏡像的相關(guān)信息和原始數(shù)據(jù)
pending_delete:與deleted相似, Glance還沒有清除鏡像數(shù)據(jù),但處于該狀態(tài)的鏡像不可恢復(fù)
6、訪問權(quán)限
- Public(公共的):可以被所有的項目使用
- Private (私有的):只有被鏡像所有者所在的項目使用
- Shared (共享的):一個非共有的鏡像可以共享給其他項目,這是通過項目成員(member-*)操作來實現(xiàn)的
- Protected (受保護的):這種鏡像不能被刪除
7、Glance架構(gòu)圖
- 客戶端是Glance服務(wù)應(yīng)用程序使用者,是OpenStack命令行工具、Horizon或Nova服務(wù)
- glance-api是系統(tǒng)后臺運行的服務(wù)進程。是進入Glance的入口。它對外提供REST API,負(fù)責(zé)接收用戶的RESTful請求,響應(yīng)鏡像查詢、獲取和存儲的調(diào)用。
- glance-registry是系統(tǒng)后臺運行的glancei注冊服務(wù)進程,負(fù)責(zé)處理與鏡像元數(shù)據(jù)相關(guān)的RESTful請求,元數(shù)據(jù)包括鏡像大小、類型等信息。Glance-api接收的請求如果是與鏡像的元數(shù)據(jù)相關(guān)的操作, glance-api會把請求轉(zhuǎn)發(fā)給glance-registry.glance-registry會解析請求內(nèi)容,并與數(shù)據(jù)庫交互。存儲,處理、檢索鏡像的元數(shù)據(jù)。glance-api對外提供API。而gllance-registry的API只由glance-api使用。
- Glance的DB模塊存儲的是鏡像的元數(shù)據(jù),可以選用MYSQL、MariaDB、SQLite等數(shù)據(jù)庫。鏡像的元數(shù)據(jù)通過glance-registry存放在數(shù)據(jù)庫中。注意,鏡像本身(chunk數(shù)據(jù))是通過glance存儲驅(qū)動存放到各種存儲后端中的。
- 存儲后端(Store Backend) Glance自身并不存儲鏡像,它將鏡像存放在后端存儲系統(tǒng)中。鏡像本身的數(shù)據(jù)通過glance_store存放在各種后端,并可從中獲取。支持本地存儲、對象存儲、RBD塊設(shè)備、Sheepdog分布式存儲、Cinder塊存儲、VMware數(shù)據(jù)存儲。
- 具體使用哪種backend,是在/etc/glancelglance-api.conf 中配置的[glance_store]
8、Glance 工作流程
- OpenStack的操作都需經(jīng)Keystone進行身份認(rèn)證(AuthN)并授權(quán)(AuthZ),Glance也不例外。Glance是一個C/S架構(gòu),提供一個REST API,用戶就通過RESTAPI來執(zhí)行鏡像的各種操作。[Glance Domain Controller是一個主要的中間件,相當(dāng)于調(diào)度器,作用是將Glance內(nèi)部服務(wù)的操作分發(fā)到以下各個功能層
- Registry Layer(注冊層):是一個可選層,通過使用單獨的服務(wù)控制Glance Domain Controller與GlanceDB之間的安全交互。
- Glance DB:是Glance服務(wù)使用的核心庫,該庫對Glance內(nèi)部所有依賴數(shù)據(jù)庫的組件是共享的。(這個庫是存一些元數(shù)據(jù)信息的,不是真正存鏡像的數(shù)據(jù)庫)
- Glance Store:用來組織處理Glance和各種存儲后端的交互,提供了一個統(tǒng)一的接口來訪問后端的存儲。所有的鏡像文件操作都是通過調(diào)用Glance Store庫來執(zhí)行的,它負(fù)責(zé)與外部存儲端或本地文件存儲系統(tǒng)的交互。
二、OpenStack-glance的組件部署
1、創(chuàng)建數(shù)據(jù)庫實例和數(shù)據(jù)庫用戶
mysql -u root -pCREATE DATABASE glance; GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' IDENTIFIED BY 'GLANCE_DBPASS'; GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY 'GLANCE_DBPASS'; flush privileges; exit2、創(chuàng)建用戶、修改配置文件
創(chuàng)建OpenStack的Glance用戶
- 創(chuàng)建用戶前,需要首先執(zhí)行管理員環(huán)境變量腳本(此處已經(jīng)在~/.bashrc 中定義過了)
創(chuàng)建鏡像服務(wù) API 端點,OpenStack使用三種API端點代表三種服務(wù):admin、internal、public
openstack endpoint create --region RegionOne image public http://ct:9292 openstack endpoint create --region RegionOne image internal http://ct:9292 openstack endpoint create --region RegionOne image admin http://ct:9292安裝 openstack-glance 軟件包
yum -y install openstack-glance修改glance配置文件,glance有兩個配置文件:/etc/glance/glance-api.conf
/etc/glance/glance-registry.conf
添加glance-api.conf配置
openstack-config --set /etc/glance/glance-api.conf database connection mysql+pymysql://glance:GLANCE_DBPASS@ct/glance openstack-config --set /etc/glance/glance-api.conf keystone_authtoken www_authenticate_uri http://ct:5000 openstack-config --set /etc/glance/glance-api.conf keystone_authtoken auth_url http://ct:5000 openstack-config --set /etc/glance/glance-api.conf keystone_authtoken memcached_servers ct:11211 openstack-config --set /etc/glance/glance-api.conf keystone_authtoken auth_type password openstack-config --set /etc/glance/glance-api.conf keystone_authtoken project_domain_name Default openstack-config --set /etc/glance/glance-api.conf keystone_authtoken user_domain_name Default openstack-config --set /etc/glance/glance-api.conf keystone_authtoken project_name service openstack-config --set /etc/glance/glance-api.conf keystone_authtoken username glance openstack-config --set /etc/glance/glance-api.conf keystone_authtoken password GLANCE_PASS openstack-config --set /etc/glance/glance-api.conf paste_deploy flavor keystone openstack-config --set /etc/glance/glance-api.conf glance_store stores file,http openstack-config --set /etc/glance/glance-api.conf glance_store default_store file openstack-config --set /etc/glance/glance-api.conf glance_store filesystem_store_datadir /var/lib/glance/images/修改glance-registry.conf 配置文件
cp -a /etc/glance/glance-registry.conf{,.bak} grep -Ev '^$|#' /etc/glance/glance-registry.conf.bak > /etc/glance/glance-registry.conf添加glance-registry.conf 配置
openstack-config --set /etc/glance/glance-registry.conf database connection mysql+pymysql://glance:GLANCE_DBPASS@ct/glance openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken www_authenticate_uri http://ct:5000 openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken auth_url http://ct:5000 openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken memcached_servers ct:11211 openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken auth_type password openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken project_domain_name Default openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken user_domain_name Default openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken project_name service openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken username glance openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken password GLANCE_PASS openstack-config --set /etc/glance/glance-registry.conf paste_deploy flavor keystone初始化glance數(shù)據(jù)庫,生成相關(guān)表結(jié)構(gòu);(不管有多少個controler,只需要初始化一次即可)
su -s /bin/sh -c "glance-manage db_sync" glance開啟glance服務(wù)(此處開啟之后會生成存放鏡像的目錄/var/lib/glance/image)
systemctl enable openstack-glance-api.service systemctl start openstack-glance-api.service查看端口
netstat -natp | grep 9292 #或(lsof需要安裝) yum -y install lsof lsof -i:9292賦予openstack-glance-api.service服務(wù)對存儲設(shè)備的可寫權(quán)限(-h:值對符號連接/軟鏈接的文件修改)
chown -hR glance:glance /var/lib/glance/3、測試是否部署成功
cirros-0.3.5-x86_64-disk.img
測試鏡像下載
鏡像導(dǎo)入
先上傳cirros鏡像到控制節(jié)點的/root,然后導(dǎo)入glance,最后查看是否創(chuàng)建成功
查看鏡像的兩種方式
openstack image listglance image-list總結(jié)
因為OpenStack上創(chuàng)建虛擬機需要鏡像支持,所以先行進行部署
部署思路:
1、創(chuàng)建數(shù)據(jù)庫、授權(quán)
2、創(chuàng)建openstack用戶、授權(quán)、管理
3、修改配置文件(glance-api.conf、glance-registry.conf)
4、初始化數(shù)據(jù)庫、上傳實例鏡像
總結(jié)
以上是生活随笔為你收集整理的OpenStack 的部署T版(三)——Glance组件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 内存速度测试大揭秘:轻松4步,发现电脑内
- 下一篇: 内存灯光新玩法!炫彩自选,智能调节一键搞