Swift是OpenStack的子項(xiàng)目之一,也稱為對(duì)象儲(chǔ)存,適用于儲(chǔ)存永久類型的靜態(tài)數(shù)據(jù),例如:虛擬機(jī)鏡像文件、圖片、存檔備份等
復(fù)制的三個(gè)副本如何聯(lián)系在一起?
讓我們用一些具體場(chǎng)景和介紹一些組件,來(lái)描述副本如何聯(lián)系在一塊。
Upload
用戶端調(diào)用Swift提供的REST API,PUT一個(gè)對(duì)象到一個(gè)已經(jīng)存在的容器中。
PUT http://swift.example.com/v1/account/container/new_object
Cluster收到客戶端的request,首先,系統(tǒng)將計(jì)算Data應(yīng)當(dāng)存放在哪個(gè)位置?根據(jù)Account name, Container name, Object name可以確定將要存放的區(qū)域(partition)。接著,開(kāi)始在ring figures中查找對(duì)應(yīng)的儲(chǔ)存節(jié)點(diǎn)。然后,上傳的data將被發(fā)送到各自對(duì)應(yīng)的儲(chǔ)存節(jié)點(diǎn),在返回成功響應(yīng)之前,至少需要成功寫入三次,也就是說(shuō)需要備份兩份。接下來(lái),容器數(shù)據(jù)庫(kù)將異步更新
反映新的對(duì)象已經(jīng)存在對(duì)應(yīng)的節(jié)點(diǎn)。
Download
使用了一致的散列算法,partition名已經(jīng)生成,在ring中查找將暴露出包含此partition的節(jié)點(diǎn)。接著,request將會(huì)到對(duì)應(yīng)的儲(chǔ)存節(jié)點(diǎn)進(jìn)行對(duì)象提取,如果提取失敗,request將會(huì)去別的副本節(jié)點(diǎn)進(jìn)行提取data。
Swift Cluster Architecture
訪問(wèn)層傳入API Request并且上傳下載數(shù)據(jù)信息,是Object Storage System的重要組成部分,主要包括前段的負(fù)載均衡,SSL終端,認(rèn)證server以及分布式運(yùn)行的代理server。
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
