真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

OpenStack是什么意思

這篇文章主要介紹OpenStack是什么意思,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

創(chuàng)新互聯(lián)不只是一家網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司;我們對(duì)營(yíng)銷、技術(shù)、服務(wù)都有自己獨(dú)特見(jiàn)解,公司采取“創(chuàng)意+綜合+營(yíng)銷”一體化的方式為您提供更專業(yè)的服務(wù)!我們經(jīng)歷的每一步也許不一定是最完美的,但每一步都有值得深思的意義。我們珍視每一份信任,關(guān)注我們的成都做網(wǎng)站、成都網(wǎng)站制作質(zhì)量和服務(wù)品質(zhì),在得到用戶滿意的同時(shí),也能得到同行業(yè)的專業(yè)認(rèn)可,能夠?yàn)樾袠I(yè)創(chuàng)新發(fā)展助力。未來(lái)將繼續(xù)專注于技術(shù)創(chuàng)新,服務(wù)升級(jí),滿足企業(yè)一站式成都全網(wǎng)營(yíng)銷推廣需求,讓再小的品牌網(wǎng)站建設(shè)也能產(chǎn)生價(jià)值!

1. OpenStack是什么

OpenStack既是一個(gè)社區(qū),也是一個(gè)項(xiàng)目和一個(gè)開源軟件,它提供了一個(gè)部署云的操作平臺(tái)或工具集。其宗旨在于,幫助組織運(yùn)行為虛擬計(jì)算或存儲(chǔ)服務(wù)的云,為公有云、私有云,也為大云、小云提供可擴(kuò)展的、靈活的云計(jì)算。

OpenStack旗下包含了一組由社區(qū)維護(hù)的開源項(xiàng)目,他們分別是OpenStackCompute(Nova),OpenStackObjectStorage(Swift),以及OpenStackImageService(Glance)。

OpenStackCompute[1],為云組織的控制器,它提供一個(gè)工具來(lái)部署云,包括運(yùn)行實(shí)例、管理網(wǎng)絡(luò)以及控制用戶和其他項(xiàng)目對(duì)云的訪問(wèn)(thecloudthroughusersandprojects)。它底層的開源項(xiàng)目名稱是Nova,其提供的軟件能控制IaaS云計(jì)算平臺(tái),類似于AmazonEC2和RackspaceCloudServers。實(shí)際上它定義的是,與運(yùn)行在主機(jī)操作系統(tǒng)上潛在的虛擬化機(jī)制交互的驅(qū)動(dòng),暴露基于WebAPI的功能。

OpenStackObjectStorage[2],是一個(gè)可擴(kuò)展的對(duì)象存儲(chǔ)系統(tǒng)。對(duì)象存儲(chǔ)支持多種應(yīng)用,比如復(fù)制和存檔數(shù)據(jù),圖像或視頻服務(wù),存儲(chǔ)次級(jí)靜態(tài)數(shù)據(jù),開發(fā)數(shù)據(jù)存儲(chǔ)整合的新應(yīng)用,存儲(chǔ)容量難以估計(jì)的數(shù)據(jù),為Web應(yīng)用創(chuàng)建基于云的彈性存儲(chǔ)。

OpenStackImageService[1],是一個(gè)虛擬機(jī)鏡像的存儲(chǔ)、查詢和檢索系統(tǒng),服務(wù)包括的RESTfulAPI允許用戶通過(guò)HTTP請(qǐng)求查詢VM鏡像元數(shù)據(jù),以及檢索實(shí)際的鏡像。VM鏡像有四種配置方式:簡(jiǎn)單的文件系統(tǒng),類似OpenStackObjectStorage的對(duì)象存儲(chǔ)系統(tǒng),直接用Amazon'sSimpleStorageSolution(S3)存儲(chǔ),用帶有ObjectStore的S3間接訪問(wèn)S3。

三個(gè)項(xiàng)目的基本關(guān)系如下圖1-1所示:

OpenStack是什么意思

1-1 OpenStack三個(gè)組件的關(guān)系

2. 云服務(wù)提供商的概念架構(gòu)
OpenStack能幫我們建立自己的IaaS,提供類似AmazonWebService的服務(wù)給客戶。為實(shí)現(xiàn)這一點(diǎn),我們需要提供幾個(gè)高級(jí)特性:

a)允許應(yīng)用擁有者注冊(cè)云服務(wù),查看運(yùn)用和計(jì)費(fèi)情況;

b)允許Developers/DevOpsfolks創(chuàng)建和存儲(chǔ)他們應(yīng)用的自定義鏡像;

c)允許他們啟動(dòng)、監(jiān)控和終止實(shí)例;

d)允許CloudOperator配置和操作基礎(chǔ)架構(gòu)

這四點(diǎn)都直擊提供IaaS的核心,現(xiàn)在假設(shè)你同意了這四個(gè)特性,現(xiàn)在就可以將它們放進(jìn)如下所示的概念架構(gòu)2-1中。

OpenStack是什么意思

2-1 OpenStack 概念架構(gòu) 
在此模型中,作者假設(shè)了需要與云交互的四個(gè)用戶集:developers,devops,ownersandoperators,并為每類用戶劃分了他們所需要的功能。該架構(gòu)采用的是非常普通的分層方法(presentation,logicandresources),它帶有兩個(gè)正交區(qū)域。

展示層,組件與用戶交互,接受和呈現(xiàn)信息。Webportals為非開發(fā)者提供圖形界面,為開發(fā)者提供API端點(diǎn)。如果是更復(fù)雜的結(jié)構(gòu),負(fù)載均衡,控制代理,安全和名稱服務(wù)也都會(huì)在這層。

邏輯層為云提供邏輯(intelligence)和控制功能。這層包括部署(復(fù)雜任務(wù)的工作流),調(diào)度(作業(yè)到資源的映射),策略(配額等等),鏡像注冊(cè)imageregistry(實(shí)例鏡像的元數(shù)據(jù)),日志(事件和計(jì)量)。

假設(shè)絕大多數(shù)服務(wù)提供者已經(jīng)有客戶身份和計(jì)費(fèi)系統(tǒng)。任何云架構(gòu)都需要整合這些系統(tǒng)。

在任何復(fù)雜的環(huán)境下,我們都將需要一個(gè)management層來(lái)操作這個(gè)環(huán)境。它應(yīng)該包括一個(gè)API訪問(wèn)云管理特性以及一些監(jiān)控形式(forms)。很可能,監(jiān)控功能將以整合的形式加入一個(gè)已存在的工具中。當(dāng)前的架構(gòu)中已經(jīng)為我們虛擬的服務(wù)提供商加入了monitoring和adminAPI,在更完全的架構(gòu)中,你將見(jiàn)到一系列的支持功能,比如provisioning和configurationmanagement。

最后,資源層。既然這是一個(gè)compute云,我們就需要實(shí)際的compute、network和storage資源,以供應(yīng)給我們的客戶。該層提供這些服務(wù),無(wú)論他們是服務(wù)器,網(wǎng)絡(luò)交換機(jī),NAS(networkattachedstorage)還是其他的一些資源。

3. OpenStack Compute架構(gòu)

3.1 OpenStack Compute邏輯架構(gòu)

OpenStack Compute邏輯架構(gòu)中,組件中的絕大多數(shù)可分為兩種自定義編寫的Python守護(hù)進(jìn)程(custom written python daemons)。

a) 接收和協(xié)調(diào)API調(diào)用的WSGI應(yīng)用(nova-api, glance-api, etc)

b) 執(zhí)行部署任務(wù)的Worker守護(hù)進(jìn)程(nova-compute, nova-network, nova-schedule, etc.)

然而,邏輯架構(gòu)中有兩個(gè)重要的部分,既不是自定義編寫,也不是基于Python,它們是消息隊(duì)列和數(shù)據(jù)庫(kù)。二者簡(jiǎn)化了復(fù)雜任務(wù)(通過(guò)消息傳遞和信息共享的任務(wù))的異步部署。

邏輯架構(gòu)圖3-1如下所示:

OpenStack是什么意思

3-1 OpenStack Compute邏輯架構(gòu)

從圖中,我們可以總結(jié)出三點(diǎn):

a) 終端用戶(DevOps, Developers 和其他的 OpenStack 組件)通過(guò)和nova-api對(duì)話來(lái)與OpenStack Compute交互。

b) OpenStack Compute守護(hù)進(jìn)程之間通過(guò)隊(duì)列(行為)和數(shù)據(jù)庫(kù)(信息)來(lái)交換信息,以執(zhí)行API請(qǐng)求。

c) OpenStack Glance基本上是獨(dú)立的基礎(chǔ)架構(gòu),OpenStack Compute通過(guò)Glance API來(lái)和它交互。

其各個(gè)組件的情況如下:

a) nova-api守護(hù)進(jìn)程是OpenStack Compute的中心。它為所有API查詢(OpenStack API 或 EC2 API)提供端點(diǎn),初始化絕大多數(shù)部署活動(dòng)(比如運(yùn)行實(shí)例),以及實(shí)施一些策略(絕大多數(shù)的配額檢查)。

b) nova-compute進(jìn)程主要是一個(gè)創(chuàng)建和終止虛擬機(jī)實(shí)例的Worker守護(hù)進(jìn)程。其過(guò)程相當(dāng)復(fù)雜,但是基本原理很簡(jiǎn)單:從隊(duì)列中接收行為,然后在更新數(shù)據(jù)庫(kù)的狀態(tài)時(shí),執(zhí)行一系列的系統(tǒng)命令執(zhí)行他們。

c) nova-volume管理映射到計(jì)算機(jī)實(shí)例的卷的創(chuàng)建、附加和取消。這些卷可以來(lái)自很多提供商,比如,ISCSI和AoE。

d) Nova-network worker守護(hù)進(jìn)程類似于nova-compute和nova-volume。它從隊(duì)列中接收網(wǎng)絡(luò)任務(wù),然后執(zhí)行任務(wù)以操控網(wǎng)絡(luò),比如創(chuàng)建bridging interfaces或改變iptables rules。

e) Queue提供中心hub,為守護(hù)進(jìn)程傳遞消息。當(dāng)前用RabbitMQ實(shí)現(xiàn)。但是理論上能是python ampqlib支持的任何AMPQ消息隊(duì)列。

f) SQL database存儲(chǔ)云基礎(chǔ)架構(gòu)中的絕大多數(shù)編譯時(shí)和運(yùn)行時(shí)狀態(tài)。這包括了可用的實(shí)例類型,在用的實(shí)例,可用的網(wǎng)絡(luò)和項(xiàng)目。理論上,OpenStack Compute能支持SQL-Alchemy支持的任何數(shù)據(jù)庫(kù),但是當(dāng)前廣泛使用的數(shù)據(jù)庫(kù)是sqlite3(僅適合測(cè)試和開發(fā)工作),MySQL和PostgreSQL。

g) OpenStack Glance,是一個(gè)單獨(dú)的項(xiàng)目,它是一個(gè)compute架構(gòu)中可選的部分,分為三個(gè)部分:glance-api, glance-registry and the image store. 其中,glance-api接受API調(diào)用,glance-registry負(fù)責(zé)存儲(chǔ)和檢索鏡像的元數(shù)據(jù),實(shí)際的Image Blob存儲(chǔ)在Image Store中。Image Store可以是多種不同的Object Store,包括OpenStack Object Storage (Swift)

h) 最后,user dashboard是另一個(gè)可選的項(xiàng)目。OpenStack Dashboard提供了一個(gè)OpenStack Compute界面來(lái)給應(yīng)用開發(fā)者和devops staff類似API的功能。當(dāng)前它是作為Django web Application來(lái)實(shí)現(xiàn)的。當(dāng)然,也有其他可用的Web前端。

3.2 概念映射

將邏輯架構(gòu)映射到概念架構(gòu)中(如3-2所示),可以看見(jiàn)我們還缺少什么。

OpenStack是什么意思

3-2 邏輯架構(gòu)到概念架構(gòu)的映射

這種覆蓋方式并不是唯一的,這里的只是作者的理解。通過(guò)覆蓋OpenStack Compute 邏輯組件,Glance和Dashboard,來(lái)表示功能范圍。對(duì)于每一個(gè)覆蓋,都有相應(yīng)的提供該功能的邏輯組件的名稱。

a) 在這種覆蓋范圍中,最大的差距是logging和billing。此刻,OpenStack Compute沒(méi)有能協(xié)調(diào)logging事件、記錄日志以及創(chuàng)建/呈現(xiàn)bills的Billing組件。真正的焦點(diǎn)是logging和Billing的整合。這能通過(guò)以下方式來(lái)補(bǔ)救。比如代碼擴(kuò)充,商業(yè)產(chǎn)品或者服務(wù)或者自定義日志解析的整合。

b) Identity也是未來(lái)可能要補(bǔ)充的一點(diǎn)。

c) customer portal也是一個(gè)整合點(diǎn)。user dashboard(見(jiàn)運(yùn)行的實(shí)例,啟動(dòng)新的實(shí)例)沒(méi)有提供一個(gè)界面,來(lái)允許應(yīng)用擁有者簽署服務(wù),跟蹤它們的費(fèi)用以及聲明有問(wèn)題的票據(jù)(lodge trouble tickets)。而且,這很可能對(duì)我們?cè)O(shè)想的服務(wù)提供商來(lái)說(shuō)是合適的。

d) 理想的情況是,Admin API會(huì)復(fù)制我們能通過(guò)命令行接口做的所有功能。在帶有Admin API work的Diablo 發(fā)布中會(huì)更好。

e) 云監(jiān)控和操作將是服務(wù)提供商關(guān)注的重點(diǎn)。好操作方法的關(guān)鍵是好的工具。當(dāng)前,OpenStack Compute 提供 nova-instancemonitor,它跟蹤計(jì)算結(jié)點(diǎn)使用情況。未來(lái)我們還需要三方工具來(lái)監(jiān)控。

f) Policy是極其重要的方面,但是會(huì)與供應(yīng)商很相關(guān)。從quotas到QoS,到隱私控制都在其管轄內(nèi)。當(dāng)前圖上有部分覆蓋,但是這取決于供應(yīng)商的復(fù)雜需求。為準(zhǔn)確起見(jiàn),OpenStack Compute 為實(shí)例,浮點(diǎn)IP地址以及元數(shù)據(jù)提供配額。

g) 當(dāng)前,OpenStack Compute內(nèi)的Scheduling對(duì)于大的安裝來(lái)說(shuō)是相當(dāng)初步的。調(diào)度器是以插件的方式設(shè)計(jì)的,目前支持chance(隨機(jī)主機(jī)分配),simple(最少負(fù)載)和zone(在一個(gè)可用區(qū)域里的隨機(jī)結(jié)點(diǎn)。)分布式的調(diào)度器和理解異構(gòu)主機(jī)的調(diào)度器正在開發(fā)之中。

如你所見(jiàn),OpenStack Compute為我們想象的服務(wù)提供商,提供了一個(gè)不錯(cuò)的基礎(chǔ),只要服務(wù)提供商愿意做一些整合。

3.3 OpenStack Compute系統(tǒng)架構(gòu)

OpenStack Compute由一些主要組件組成?!癈loud controller”包含很多組件,它表示全局狀態(tài),以及與其他組件交互。實(shí)際上,它提供的是Nova-api服務(wù)。它的功能是:為所有API查詢提供一個(gè)端點(diǎn),初始化絕大多數(shù)的部署活動(dòng),以及實(shí)施一些策略。API 服務(wù)器起cloud controller web Service前端的作用。Compute controller 提供compute服務(wù)資源,典型包含compute service,Object Store component可選地提供存儲(chǔ)服務(wù)。Auth manager提供認(rèn)證和授權(quán)服務(wù),Volume controller為compute servers提供快速和持久的塊級(jí)別存儲(chǔ)。Network controller提供虛擬網(wǎng)絡(luò)使compute servers彼此交互以及與公網(wǎng)進(jìn)行交互。Scheduler選擇最合適的compute controller來(lái)管理(host)一個(gè)實(shí)例。

OpenStack Compute建立在無(wú)共享、基于消息的架構(gòu)上。Cloud controller通過(guò)HTTP與internal object store交互,通過(guò)AMQP和scheduler、network controller、 和volume controller 來(lái)進(jìn)行通信。為了避免在等待接收時(shí)阻塞每個(gè)組件,OpenStack Compute用異步調(diào)用的方式。

為了獲得帶有一個(gè)組件多個(gè)備份的無(wú)共享屬性,OpenStack Compute將所有的云系統(tǒng)狀態(tài)保持在分布式的數(shù)據(jù)存儲(chǔ)中。對(duì)系統(tǒng)狀態(tài)的更新會(huì)寫到這個(gè)存儲(chǔ)中,必要時(shí)用質(zhì)子事務(wù)。

對(duì)系統(tǒng)狀態(tài)的請(qǐng)求會(huì)從store中讀出。在少數(shù)情況下,控制器也會(huì)短時(shí)間緩存讀取結(jié)果。

3.4 OpenStack Compute物理架構(gòu)

OpenStack Compute采用無(wú)共享、基于消息的架構(gòu),非常靈活,我們能安裝每個(gè)nova- service在單獨(dú)的服務(wù)器上,這意味著安裝OpenStack Compute有多種可能的方法??赡芏嘟Y(jié)點(diǎn)部署唯一的聯(lián)合依賴性,是Dashboard必須被安裝在nova-api服務(wù)器。幾種部署架構(gòu)如下:

a) 單結(jié)點(diǎn):一臺(tái)服務(wù)器運(yùn)行所有的nova- services,同時(shí)也驅(qū)動(dòng)虛擬實(shí)例。這種配置只為嘗試OpenStack Compute,或者為了開發(fā)目的;

b) 雙結(jié)點(diǎn):一個(gè)cloud controller 結(jié)點(diǎn)運(yùn)行除nova-compute外的所有nova-services,compute結(jié)點(diǎn)運(yùn)行nova-compute。一臺(tái)客戶計(jì)算機(jī)很可能需要打包鏡像,以及和服務(wù)器進(jìn)行交互,但是并不是必要的。這種配置主要用于概念和開發(fā)環(huán)境的證明。

c) 多結(jié)點(diǎn):通過(guò)簡(jiǎn)單部署nova-compute在一臺(tái)額外的服務(wù)器以及拷貝nova.conf文件到這個(gè)新增的結(jié)點(diǎn),你能在兩結(jié)點(diǎn)的基礎(chǔ)上,添加更多的compute結(jié)點(diǎn),形成多結(jié)點(diǎn)部署。在較為復(fù)雜的多結(jié)點(diǎn)部署中,還能增加一個(gè)volume controller 和一個(gè)network controller作為額外的結(jié)點(diǎn)。對(duì)于運(yùn)行多個(gè)需要大量處理能力的虛擬機(jī)實(shí)例,至少是4個(gè)結(jié)點(diǎn)是最好的。

一個(gè)可能的Openstack Compute多服務(wù)器部署(集群中聯(lián)網(wǎng)的虛擬服務(wù)器可能會(huì)改變)如下3-3所示:

OpenStack是什么意思

3-3 OpenStack Compute物理架構(gòu)一

如果你注意到消息隊(duì)列中大量的復(fù)制引發(fā)了性能問(wèn)題,一種可選的架構(gòu)是增加更多的Messaging服務(wù)器。在這種情形下,除了可以擴(kuò)展數(shù)據(jù)庫(kù)服務(wù)器外,還可以增加一臺(tái)額外的RabbitMQ服務(wù)器。部署中可以在任意服務(wù)器上運(yùn)行任意nova-service,只要nova.conf中配置為指向RabbitMQ服務(wù)器,并且這些服務(wù)器能發(fā)送消息到它。

下圖3-4是另外一種多結(jié)點(diǎn)的部署架構(gòu)。

OpenStack是什么意思

3-4 多結(jié)點(diǎn)的部署架構(gòu)二

 3.5 OpenStack Compute服務(wù)架構(gòu)

因?yàn)镃ompute有多個(gè)服務(wù),也可能有多種配置,下圖3-5顯示了總體的服務(wù)架構(gòu),以及服務(wù)之間的通信系統(tǒng)。

OpenStack是什么意思

3-5 OpenStack Compute服務(wù)架構(gòu)

4. OpenStack Image Service

OpenStack Image Service包括兩個(gè)主要的部分,分別是API server和Registry server(s)。

OpenStack Image Service的設(shè)計(jì),盡可能適合各種后端倉(cāng)儲(chǔ)和注冊(cè)數(shù)據(jù)庫(kù)方案。API Server(運(yùn)行“glance api”程序)起通信hub的作用。比如各種各樣的客戶程序,鏡像元數(shù)據(jù)的注冊(cè),實(shí)際包含虛擬機(jī)鏡像數(shù)據(jù)的存儲(chǔ)系統(tǒng),都是通過(guò)它來(lái)進(jìn)行通信的。API server轉(zhuǎn)發(fā)客戶端的請(qǐng)求到鏡像元數(shù)據(jù)注冊(cè)處和它的后端倉(cāng)儲(chǔ)。OpenStack Image Service就是通過(guò)這些機(jī)制來(lái)實(shí)際保存進(jìn)來(lái)的虛擬機(jī)鏡像的。

OpenStack Image Service支持的后端倉(cāng)儲(chǔ)有:

a) OpenStack Object Storage。它是OpenStack中高可用的對(duì)象存儲(chǔ)項(xiàng)目。

b) FileSystem。OpenStack Image Service存儲(chǔ)虛擬機(jī)鏡像的默認(rèn)后端是后端文件系統(tǒng)。這個(gè)簡(jiǎn)單的后端會(huì)把鏡像文件寫到本地文件系統(tǒng)。

c) S3。該后端允許OpenStack Image Service存儲(chǔ)虛擬機(jī)鏡像在Amazon S3服務(wù)中。

d) HTTP。OpenStack Image Service能通過(guò)HTTP在Internet上讀取可用的虛擬機(jī)鏡像。這種存儲(chǔ)方式是只讀的。

OpenStack Image Service registry servers是遵守OpenStack Image Service Registry API的服務(wù)器。

根據(jù)安裝手冊(cè),這兩個(gè)服務(wù)安裝在同一個(gè)服務(wù)器上。鏡像本身則可存儲(chǔ)在OpenStack Object Storage, Amazon's S3 infrastructure,fileSystem。如果你只需要只讀訪問(wèn),可以存儲(chǔ)在一臺(tái)Web服務(wù)器上。

5. OpenStack Object Storage

5.1 關(guān)鍵概念

a) Accounts和 Account Servers

OpenStack Object Storage系統(tǒng)被設(shè)計(jì)來(lái)供許多不同的存儲(chǔ)消費(fèi)者或客戶使用。每個(gè)用戶必須通過(guò)認(rèn)證系統(tǒng)來(lái)識(shí)別自己。為此,OpenStack Object Storage提供了一個(gè)授權(quán)系統(tǒng)(swauth)。

運(yùn)行Account服務(wù)的結(jié)點(diǎn)與個(gè)體賬戶是不同的概念。Account服務(wù)器是存儲(chǔ)系統(tǒng)的部分,必須和Container服務(wù)器和Object服務(wù)器配置在一起。

b) Authentication 和 Access Permissions

你必須通過(guò)認(rèn)證服務(wù)來(lái)認(rèn)證,以接收OpenStack Object Storage連接參數(shù)和認(rèn)證令牌。令牌必須為所有后面的container/object操作而傳遞。典型的,特定語(yǔ)言的API處理認(rèn)證,令牌傳遞和HTTPS request/response 通信。

通過(guò)運(yùn)用X-Container-Read: accountname和 X-Container-Write: accountname:username,你能為用戶或者賬戶對(duì)對(duì)象執(zhí)行訪問(wèn)控制。比如,這個(gè)設(shè)置就允許來(lái)自accountname賬戶的的任意用戶來(lái)讀,但是只允許accountname賬戶里的用戶username來(lái)寫。你也能給OpenStack Object Storage中存儲(chǔ)的對(duì)象授予公共訪問(wèn)的權(quán)限,而且可以通過(guò)Referer頭部阻止像熱鏈接這種基于站點(diǎn)的內(nèi)容盜竊,來(lái)限制公共訪問(wèn)。公共的container設(shè)置被用作訪問(wèn)控制列表之上的默認(rèn)授權(quán)。比如,X-Container-Read: referer: any 這個(gè)設(shè)置,允許任何人能從container中讀,而不管其他的授權(quán)設(shè)置。

一般來(lái)說(shuō),每個(gè)用戶能完全訪問(wèn)自己的存儲(chǔ)賬戶。用戶必須用他們的證書來(lái)認(rèn)證,一旦被認(rèn)證,他們就能創(chuàng)建或刪除container,以及賬戶之類的對(duì)象。一個(gè)用戶能訪問(wèn)另一個(gè)賬戶的內(nèi)容的唯一方式是,他們享有一個(gè)API訪問(wèn)key或你的認(rèn)證系統(tǒng)提供的會(huì)話令牌。

c) Containers and Objects

一個(gè)Container是一個(gè)存儲(chǔ)隔間,為你提供一種組織屬于屬于你的數(shù)據(jù)的方式。它比較類似于文件夾或目錄。Container和其他文件系統(tǒng)概念的主要差異是containers不能嵌套。然而,你可以在你的賬戶內(nèi)創(chuàng)建無(wú)數(shù)的containers。但是你必須在你的賬戶上有一個(gè)container,因?yàn)閿?shù)據(jù)必須存在Container中。

Container取名上的限制是,它們不能包含“/”,而且長(zhǎng)度上少于256字節(jié)。長(zhǎng)度的限制也適用于經(jīng)過(guò)URL編碼后的名字。比如,Course Docs的Container名經(jīng)過(guò)URL編碼后是“Course%20Docs”,因此此時(shí)的長(zhǎng)度是13字節(jié)而非11字節(jié)。

一個(gè)對(duì)象是基本的存儲(chǔ)實(shí)體,和表示你存儲(chǔ)在OpenStack Object Storage系統(tǒng)中文件的任何可選的元數(shù)據(jù)。當(dāng)你上傳數(shù)據(jù)到OpenStack Object Storage,它原樣存儲(chǔ),由一個(gè)位置(container),對(duì)象名,以及key/value對(duì)組成的任何元數(shù)據(jù)。比如,你可選擇存儲(chǔ)你數(shù)字照片的副本,把它們組織為一個(gè)影集。在這種情況下,每個(gè)對(duì)象可以用元數(shù)據(jù)Album :

Caribbean Cruise 或Album : Aspen Ski Trip來(lái)標(biāo)記。

對(duì)象名上唯一的限制是,在經(jīng)過(guò)URL編碼后,它們的長(zhǎng)度要少于1024個(gè)字節(jié)。

上傳的存儲(chǔ)對(duì)象的允許的最大大小5GB,最小是0字節(jié)。你能用內(nèi)嵌的大對(duì)象支持和St工具來(lái)檢索5GB以上的對(duì)象。對(duì)于元數(shù)據(jù),每個(gè)對(duì)象不應(yīng)該超過(guò)90個(gè)key/value對(duì),所有key/value對(duì)的總字節(jié)長(zhǎng)度不應(yīng)該超過(guò)4KB。

d) Operations

Operations是你在OpenStack Object Storage系統(tǒng)上執(zhí)行的行為,比如創(chuàng)建或刪除containers,上傳或下載objects等等。Operations的完全清單可以在開發(fā)文檔上找到。Operations能通過(guò)ReST web service API或特定語(yǔ)言的API來(lái)執(zhí)行。值得強(qiáng)調(diào)的是,所有操作必須包括一個(gè)來(lái)自你授權(quán)系統(tǒng)的有效的授權(quán)令牌。

e) 特定語(yǔ)言的API綁定

一些流行語(yǔ)言支持的API 綁定,在RackSpace云文件產(chǎn)品中是可用的。這些綁定在基礎(chǔ)ReST API上提供了一層抽象,允許變成人員直接與container和object模型打交道,而不是HTTP請(qǐng)求和響應(yīng)。這些綁定可免費(fèi)下載,使用和修改。它們遵循MIT許可協(xié)議。對(duì)于OpenStack Object Storage,當(dāng)前支持的API綁定是:PHP,Python,Java,C#/.NET 和Ruby。

5.2 Object Storage如何工作

a) Ring

Ring 代表磁盤上存儲(chǔ)的實(shí)體的名稱和它們的物理位置的映射。accounts, containers, and objects都有單獨(dú)的Ring。其他組件要在這三者之一進(jìn)行任何操作,他們都需要合相應(yīng)的Ring進(jìn)行交互以確定它在集群中的位置。

Ring用zones,devices,partitions,和replicas來(lái)維護(hù)映射,在Ring中的每個(gè)分區(qū)都會(huì)在集群中默認(rèn)有三個(gè)副本。分區(qū)的位置存儲(chǔ)在Ring維護(hù)的映射中。Ring也負(fù)責(zé)確定失敗場(chǎng)景中接替的設(shè)備。(這點(diǎn)類似HDFS副本的復(fù)制)。分區(qū)的副本要保證存儲(chǔ)在不同的zone。Ring的分區(qū)分布在OpenStack Object Storage installation所有設(shè)備中。分區(qū)需要移動(dòng)的時(shí)候,Ring確保一次移動(dòng)最少的分區(qū),一次僅有一個(gè)分區(qū)的副本被移動(dòng)。

權(quán)重能用來(lái)平衡分區(qū)在磁盤驅(qū)動(dòng)上的分布。Ring在代理服務(wù)器和一些背景進(jìn)程中使用。

b) Proxy Server

代理服務(wù)器負(fù)責(zé)將OpenStack Object Storage架構(gòu)中其他部分結(jié)合在一起。對(duì)于每次請(qǐng)求,它都查詢?cè)赗ing中查詢account, container, or object的位置,并以此轉(zhuǎn)發(fā)請(qǐng)求。公有APIs也是通過(guò)代理服務(wù)器來(lái)暴露的。

大量的失敗也是由代理服務(wù)器來(lái)進(jìn)行處理。比如一個(gè)服務(wù)器不可用,它就會(huì)要求Ring來(lái)為它找下一個(gè)接替的服務(wù)器,并把請(qǐng)求轉(zhuǎn)發(fā)到那里。

當(dāng)對(duì)象流進(jìn)或流出object server時(shí),它們都通過(guò)代理服務(wù)器來(lái)流給用戶,或者通過(guò)它從用戶獲取。代理服務(wù)器不會(huì)緩沖它們。

Proxy服務(wù)器的功能可以總結(jié)為:查詢位置,處理失敗,中轉(zhuǎn)對(duì)象。

c) Object Server

Object Server,是非常簡(jiǎn)單的blob存儲(chǔ)服務(wù)器,能存儲(chǔ)、檢索和刪除本地磁盤上的對(duì)象,它以二進(jìn)制文件形式存放在文件系統(tǒng)中,元數(shù)據(jù)以文件的擴(kuò)展屬性存放。

對(duì)象以源于對(duì)象名的hash和操作的時(shí)間戳的路徑來(lái)存放。上一次寫總會(huì)成功,確保最新的版本將被使用。刪除也視作文件的一個(gè)版本:這確保刪除的文件也被正確復(fù)制,更舊的把本不會(huì)因?yàn)槭∏樾坞x奇消失。

d) Container Server

其主要工作是處理對(duì)象列表,它不知道對(duì)象在哪里,只是知道哪些對(duì)象在一個(gè)特定的container。列表被存儲(chǔ)為sqlite 數(shù)據(jù)庫(kù)文件,類似對(duì)象的方式在集群中復(fù)制。也進(jìn)行了跟蹤統(tǒng)計(jì),包括對(duì)象的總數(shù),以及container中使用的總存儲(chǔ)量。

e) Account Server

它是類似于Container Server,除了它是負(fù)責(zé)containers的列表而非對(duì)象。

f) Replication

設(shè)計(jì)副本的目的是,在面臨網(wǎng)絡(luò)中斷或驅(qū)動(dòng)失敗等臨時(shí)錯(cuò)誤條件時(shí),保持系統(tǒng)在一致的狀態(tài)。

副本進(jìn)程會(huì)比較本地的數(shù)據(jù)和每個(gè)遠(yuǎn)處的副本,以確保他們所有都包含最新的版本。對(duì)象副本用一個(gè)Hash列表來(lái)快速比較每個(gè)分區(qū)的片段,而containe和 account replication 用的是Hash和共享的高水印結(jié)合的方法。

副本的更新,是基于推送的。對(duì)于對(duì)象副本,更新是遠(yuǎn)程同步文件到Peer。Account和container replication通過(guò)HTTP or rsync把整個(gè)數(shù)據(jù)庫(kù)文件推送遺失的記錄。

副本也通過(guò)tombstone設(shè)置最新版本的方式,確保數(shù)據(jù)從系統(tǒng)中清除。

g) 更新器(Updaters)

有時(shí),container 或 account數(shù)據(jù)不能被立即更新,這通常是發(fā)生在失敗的情形或高負(fù)載時(shí)期。如果一個(gè)更新失敗,該更新會(huì)在文件系統(tǒng)上本地排隊(duì),更新器將處理這些失敗的更新。事件一致性窗口(eventual consistency window)最可能來(lái)起作用。比如,假設(shè)一個(gè)container服務(wù)器正處于載入之中,一個(gè)新對(duì)象正被放進(jìn)系統(tǒng),代理服務(wù)器一響應(yīng)客戶端成功,該對(duì)象就立即可讀了。然而,container服務(wù)器沒(méi)有更新Object列表,所以更新就進(jìn)入隊(duì)列,以等待稍后的更新。Container列表,因此可能還不會(huì)立即包含這個(gè)對(duì)象。

實(shí)際上,一致性窗口只是與updater運(yùn)行的頻率一樣大,當(dāng)代理服務(wù)器將轉(zhuǎn)發(fā)清單請(qǐng)求到響應(yīng)的第一個(gè)container服務(wù)器中,也許甚至還不會(huì)被注意。在載入之下的服務(wù)器可能還不是服務(wù)后續(xù)清單請(qǐng)求的那個(gè)。另外兩個(gè)副本中的一個(gè)可能處理這個(gè)清單。

h) Auditors

Auditors會(huì)檢查objects, containers, 和 accounts的完整性。如果發(fā)先損壞的文件,它將被隔離,好的副本將會(huì)取代這個(gè)壞的文件。如果發(fā)現(xiàn)其他的錯(cuò)誤,它們會(huì)記入到日志中。

5.3 OpenStack Object Storage物理架構(gòu)

Proxy Services 偏向于CPU和network I/O 密集型,而 Object Services, Container Services, Account Services 偏向于disk and networkI/O 密集型。

可以在每一服務(wù)器上安裝所有的服務(wù),在Rackspace內(nèi)部, 他們將Proxy Services放在他們自己的服務(wù)器上,而所有存儲(chǔ)服務(wù)則放在同一服務(wù)器上。這允許我們發(fā)送10G的網(wǎng)絡(luò)給代理,1G給存儲(chǔ)服務(wù)器,從而保持對(duì)代理服務(wù)器的負(fù)載平衡更好管理。我們能通過(guò)增加更多代理來(lái)擴(kuò)展整個(gè)API吞吐量。如果需要獲得Account或 Container Services更大的吞吐量,它們也可以部署到自己的服務(wù)器上。

在部署OpenStack Object Storage時(shí),可以單結(jié)點(diǎn)安裝,但是它只適用于開發(fā)和測(cè)試目的。也可以多服務(wù)器的安裝,它能獲得分布式對(duì)象存儲(chǔ)系統(tǒng)需要的高可用性和冗余。

有這樣一個(gè)樣本部署架構(gòu),如圖5-1所示。一個(gè)Proxy 結(jié)點(diǎn),運(yùn)行代理服務(wù),一個(gè)Auth 結(jié)點(diǎn),運(yùn)行認(rèn)證服務(wù),五個(gè)Storage結(jié)點(diǎn),運(yùn)行Account,Container和Object服務(wù)。

OpenStack是什么意思


 5-1 五個(gè)Storage結(jié)點(diǎn)的OpenStack Object Storage物理架構(gòu)

以上是“OpenStack是什么意思”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


新聞名稱:OpenStack是什么意思
文章源于:http://weahome.cn/article/gpgdii.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部