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

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