新聞中心
OpenStack 入門及三大存儲組件淺析
作者:神秘的陳老師 2019-01-18 09:02:26
存儲
存儲軟件
OpenStack 大家好,想必大家也聽說過 openstack ,很多人在學(xué)習(xí)過程中都感覺openstack 整個架構(gòu)比較復(fù)雜,涉及到的組件較多,學(xué)習(xí)也比較吃力。

創(chuàng)新互聯(lián)企業(yè)建站,10余年網(wǎng)站建設(shè)經(jīng)驗,專注于網(wǎng)站建設(shè)技術(shù),精于網(wǎng)頁設(shè)計,有多年建站和網(wǎng)站代運營經(jīng)驗,設(shè)計師為客戶打造網(wǎng)絡(luò)企業(yè)風(fēng)格,提供周到的建站售前咨詢和貼心的售后服務(wù)。對于做網(wǎng)站、網(wǎng)站建設(shè)中不同領(lǐng)域進行深入了解和探索,創(chuàng)新互聯(lián)在網(wǎng)站建設(shè)中充分了解客戶行業(yè)的需求,以靈動的思維在網(wǎng)頁中充分展現(xiàn),通過對客戶行業(yè)精準(zhǔn)市場調(diào)研,為客戶提供的解決方案。
大家好,想必大家也聽說過 openstack ,很多人在學(xué)習(xí)過程中都感覺openstack 整個架構(gòu)比較復(fù)雜,涉及到的組件較多,學(xué)習(xí)也比較吃力。
一、認識 OpenStack
OpenStack is a cloud operating system that controls large pools of compute, storage, and networking resources throughout a datacenter, all managed through a dashboard that gives administrators control while empowering their users to provision resources through a web interface.
以上是官網(wǎng)對 OpenStack 的定義,OpenStack 對整個數(shù)據(jù)中心的計算、存儲以及網(wǎng)絡(luò)資源進行統(tǒng)一的管理。云計算平臺是一個面向服務(wù)層面的架構(gòu),按照提供服務(wù)的不同可分為 IaaS(Infrastructure as a Service,基礎(chǔ)設(shè)施即服務(wù))、PaaS(Platform as a Service,平臺即服務(wù))和 SaaS(Software as a Service,軟件即服務(wù))。由上述官網(wǎng)定義來看,OpenStack 針對的是 IT 基礎(chǔ)設(shè)施,是 IaaS 層的云操作系統(tǒng)。
OpenStack 已經(jīng)走過了 9 個年頭。每半年會發(fā)布一個新的版本,版本以字母順序命名?,F(xiàn)在已經(jīng)到了第 18 個版本 Rocky(版本 R),從最初的只有兩個模塊(服務(wù)),發(fā)展到現(xiàn)在的數(shù)十個模塊,每個模塊都作為獨立的子項目開發(fā)。那么,既然有那么多的服務(wù)模塊,我們應(yīng)該如何去進行高效的學(xué)習(xí)呢——抓住 openstack 最本質(zhì)的東西(計算,存儲,網(wǎng)絡(luò)資源的統(tǒng)一管控),如下圖所示:
在 openstack 這么龐大的架構(gòu)里面,究竟哪些組件模塊是負責(zé)管理計算,存儲,網(wǎng)絡(luò)資源的呢?組件之間又是如何進行協(xié)調(diào)工作的呢?(下圖被稱為「神圖」,圖片有點大,請橫屏來看)
架構(gòu)是個好東西,它能夠幫助我們站在高處看清楚事物的整體結(jié)構(gòu),上圖是 openstack 各個組件之間以及組件內(nèi)部的交互圖,其實也并不復(fù)雜。今天我們先來學(xué)習(xí)一下 openstack 的三大存儲組件 Glance,Cinder,Swift。
二、淺析 OpenStack 的三大存儲組件 Glance,Cinder,Swift
I.Glance,Cinder,Swift 是什么?
首先咱們要明白,Glance,Cinder,Swift 究竟是什么東西?在 openstack 當(dāng)中,Glance 是負責(zé)提供 Image Service(鏡像服務(wù))的,這個所謂的鏡像服務(wù)指的就是去管理 Image,讓用戶能夠發(fā)現(xiàn)、獲取和保存 Image。Image 是一個模板,里面包含了基本的操作系統(tǒng)和其他的應(yīng)用軟件,在云環(huán)境的大需求下,(大規(guī)模)手動去安裝部署系統(tǒng)比較不靈活,時間較長,效率低下,這個時候就需要更加高效的解決方案————Image。再來看 Cinder,在 openstack 當(dāng)中,Cinder 是用來提供塊存儲服務(wù)的。什么是塊存儲?大家其實可以簡單理解為裸硬盤,通過某種協(xié)議(SCSI,iSCSI,SAN 等)掛接裸硬盤,然后進行分區(qū)、格式化、創(chuàng)建文件系統(tǒng),或者直接使用裸硬盤提供存儲空間,進行數(shù)據(jù)存儲。Swift,為 openstack 提供一種分布式、持續(xù)虛擬對象存儲,他其實類似于 Amazon Web Service 的 S3 簡單存儲服務(wù)。Swift 具有跨節(jié)點百級對象的存儲能力,內(nèi)建冗余和失效備援管理,也能夠處理歸檔和媒體流,特別是對大數(shù)據(jù)(千兆字節(jié))和大容量(多對象數(shù)量)的測度非常有效。該服務(wù)不是必需的,為可選服務(wù)。接下來咱們具體來看下三大組件的內(nèi)部架構(gòu)以及各個子組件的作用。
II.Glance
Glance-api:接收 REST API 請求,通過其他模塊(glance-registry 及 image store)來完成諸如鏡像的查找、獲取、上傳、刪除等操作。
glance-registry:用于與 MySQL 數(shù)據(jù)庫交互,用于存儲或獲取鏡像的元數(shù)據(jù)(metadata)。
image store:是一個存儲的接口層,通過這個接口,glance 可以獲取鏡像,image store 支持的存儲有 Amazon 的 S3、OpenStack 本身的 Swift,還有諸如 ceph,sheepdog,GlusterFS 等分布式存儲。
III.Cinder
Cinder Client 封裝 Cinder 提供的 rest 接口,以 CLI 形式供用戶使用。
Cinder API 對外提供 rest API,對操作需求進行解析,對 API 進行路由尋找相應(yīng)的處理方法。包含卷的增刪改查(包括從源卷、鏡像、快照創(chuàng)建)、快照增刪改查、備份、volume type 管理、掛載/卸載(Nova 調(diào)用)等。
Cinder scheduler 負責(zé)收集 backend 上報的容量、能力信息,根據(jù)設(shè)定的算法完成卷到指定 cinder-volume 的調(diào)度。
Cinder volume 多節(jié)點部署,使用不同的配置文件、接入不同的 backend 設(shè)備,由各存儲廠商插入 driver 代碼與設(shè)備交互完成設(shè)備容量和能力信息收集、卷操作。
Cinder backup 實現(xiàn)將卷的數(shù)據(jù)備份到其他存儲介質(zhì)(目前 Swift/Ceph/TSM 提供了驅(qū)動)。
SQL DB 提供存儲卷、快照、備份等數(shù)據(jù),支持 Mysql、PG、MSSQL 等 SQL 數(shù)據(jù)庫。
IV.Swift
Proxy Server:對外提供對象服務(wù) API,由于采用無狀態(tài)的 REST 請求協(xié)議,可以進行橫向擴展來均衡負載。 ◎Account Server:提供賬戶元數(shù)據(jù)和統(tǒng)計信息,并維護所含容器列表的服務(wù),每個賬戶的信息被存儲在一個 SQLite 數(shù)據(jù)庫中。 ◎Container Server:提供容器元數(shù)據(jù)和統(tǒng)計信息,并維護所含對象列表的服務(wù),每個容器的信息也存儲在一個 SQLite 數(shù)據(jù)庫中。 ◎Object Server:提供對象元數(shù)據(jù)和內(nèi)容服務(wù),每個對象的內(nèi)容會以文件的形式存儲在文件系統(tǒng)中,元數(shù)據(jù)會作為文件屬性來存儲,建議采用支持擴展屬性的 XFS 文件系統(tǒng)。
Replicator:檢測本地分區(qū)副本和遠程副本是否一致,發(fā)現(xiàn)不一致時會采用推式(Push)更新遠程副本,并且確保被標(biāo)記刪除的對象從文件系統(tǒng)中移除。 ◎Updater:當(dāng)對象由于高負載的原因而無法立即更新時,任務(wù)將會被序列化到在本地文件系統(tǒng)中進行排隊,以便服務(wù)恢復(fù)后進行異步更新。 ◎Auditor:檢查對象,容器和賬戶的完整性,如果發(fā)現(xiàn)比特級的錯誤,文件將被隔離,并復(fù)制其他的副本以覆蓋本地損壞的副本;其他類型的錯誤會被記錄到日志中。
Account Reaper:移除被標(biāo)記為刪除的賬戶,刪除其所包含的所有容器和對象。
三、三大存儲組件的區(qū)別
功能上的區(qū)別
Glance 提供鏡像服務(wù),他負責(zé)對鏡像進行管理,例如發(fā)現(xiàn)、注冊,鏡像是產(chǎn)生虛擬機系統(tǒng)盤的模板;Cinder 給虛擬機提供塊級的持久化卷,通過 Cinder 可以實現(xiàn)卷的創(chuàng)建、掛載、快照等功能;Swift 是 openstack 提供的一種分布式、持續(xù)虛擬對象存儲。
存儲空間的區(qū)別
Glance 并不保存鏡像,他將數(shù)據(jù)交給后端存儲去進行保存:Swift、本地存儲、OBS 等;Cinder 本身也不保存卷,但他可以通過 Driver 來接管各種存儲,并通過這些存儲給虛擬機提供空間。他可以接管華為 VRM Datastore、VMware Datastore、華為 FusionStorage、華為 OceanStorV3、LVM 等;Swift 它本身維持空間并對外提供對象存儲服務(wù),通常使用本地存儲+XFS 文件系統(tǒng)。
總結(jié)一下,今天我們學(xué)習(xí)了 openstack 以及三大存儲組件的本質(zhì)以及作用,想要深入學(xué)習(xí)的同學(xué)可以課下去查閱 openstack 相關(guān)的文檔,參照對應(yīng)的文檔不妨可以搭建 openstack 實驗環(huán)境來進行一個系統(tǒng)的學(xué)習(xí)。Openstack經(jīng)過多年的發(fā)展,整個組織架構(gòu)變得越來越龐大。本身提供多種存儲服務(wù),這也是為了滿足更多不同的需求,體現(xiàn)出開源項目靈活快速的特性??偟恼f來,當(dāng)需要去選擇存儲的時候,如果考慮到將來會被多個應(yīng)用所共同使用,應(yīng)該視為長期的決策。Openstack作為一個開放的系統(tǒng),最主要是解決軟硬件供應(yīng)商鎖定的問題,可以隨時選擇新的硬件供應(yīng)商,將新的硬件和已有的硬件組成混合的集群,統(tǒng)一管理,當(dāng)然也可以替換軟件技術(shù)服務(wù)的提供商,不用動應(yīng)用。這是開源本身的優(yōu)勢。
本文標(biāo)題:OpenStack 入門及三大存儲組件淺析
網(wǎng)站鏈接:http://fisionsoft.com.cn/article/djpipsg.html


咨詢
建站咨詢
