成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

OpenStack Swift遇到了Erasure Code

云計算 OpenStack
南加州大學和Facebook共同完成的Erasure Code演進——LRC,通過增加本地存儲容量,提升了平均無故障時間,并減少恢復數據的開銷。

南加州大學和Facebook共同完成的Erasure Code演進——LRC,通過增加本地存儲容量,提升了平均無故障時間,并減少恢復數據的開銷。

作為云計算的核心系統之一,存儲系統直接影響了整個系統的成本。七牛云存儲CEO許式偉 表示:

我第一個云存儲的講座就已經講了成本在云存儲里面的重要性。實際上我更進一步說到要想在Erasure Code上更進一步只有成本轉嫁,用p2p。

金山云CTO楊鋼在近期接受CSDN采訪時表示:“金山云在創立初就采用了Erasure Code。”

作為OpenStack的對象存儲項目Swift,自然要對存儲成本進行有效的控制。不過要在成本、數據持久性(durability)和性能之間找到平衡,并非那么容易。

在官方發行版中的Swift是不具備Erasure Code功能的,但SwiftStack已經實現了Swift+Erasure Code。相信支持Erasure Code功能的Swift不久將會出現在官方發行版中。

不過,Swift+Erasure Code并非完美,這種算法會大量增加網絡負載。Joe Arnold透露,Swift會提供Erasure Code和傳統3副本兩種策略,供用戶選擇。而 LRC通過增加本地存儲來降低數據恢復時對網絡資源的消耗,也許這是Swift未來更需要的策略。以下為博客摘譯:

沒有免費的午餐

CAP原理告訴我們,在數據一致性(Consistency )、可用性(Availability )和分區容錯性(Partition tolerance)三者中只能同時滿足兩者。Swift優先考慮可用性和分區容錯性。

即當某個分區發生故障,系統將容忍這一故障分區繼續響應服務請求。因為Swift可以恢復故障分區的數據,集群的任何部分依然可以提供服務。

可用性是分區帶來的巨大的好處。此外,分區還帶來許多其它優勢:

延遲和重建

Swift的大部分客戶都對并發性和延遲時間有著全天候的要求。在數據恢復過程中,讀請求由一個存儲卷提供支持。這意味著較少的網絡流量和CPU負荷,最終用戶感知到的等待時間非常短。

失敗處理對于數據恢復系統而言也非常簡單。當一個磁盤損壞并被替換后,任何其它包含副本的磁盤都能將數據直接拷貝到被替換的磁盤。這種簡單的拷貝方式只需很低的CPU處理能力,并且不需要與集群中的許多服務器并發連接。

復制和區域(Regions)

在目前的Swift副本模型中,集群內的所有數據被拷貝多次。在SwiftStack的單集群中,我們推薦采用3副本策略;在雙集群和全球規模的分布式系統中,推薦采用n*2策略,即每個集群都使用2副本。這種策略給予集群強壯的持久性和可用性,因為當分區發生故障時,分散在本地的副本會響應訪問請求,替代需通過網絡重新組裝的數據。

在保持已有策略的優勢的同時,為什么不使用Erasure Code來即減少數據密集程度呢?

在Swift上使用Erasure Code

我們將在產品中集成Erasure Code策略,并根據實際應用場景權衡并作出選擇。

存儲架構——Ring

Swift目前使用稱之為“Ring”環形數據架構,這種架構在集群內建立分布式的分區空間。分區空間是Swift數據副本策略的核心,它可以讓Swift快速、簡單的進行同步。當Swift的組件需要進行數據交互時,通過在Ring中進行本地快速查詢,為每個副本選擇最適合的分區。

 

 

圖:Swift的哈希Ring

在Swift中使用了3個環形架構存儲不同類型的數據。一個用于存儲賬戶信息(各租戶的用戶信息),第二個環用于容器(所以非常方便任意賬戶下的對象),第三個環用于對象副本。為了支持Erasure Code,據需要建立第四個環,用于存儲Erasure Code校驗塊。

寫入

在Swift集群中,代理服務器不斷的選擇適當的存儲節點發出請求。當請求存儲一個對象時,代理層將對這個對象進行Erasure Code編碼生成校驗塊,這些校驗塊再不斷的寫入到擇適當的分區中。

讀取

當請求讀取一個Erasure Code的對象時,代理層會同存儲服務器間建立適合的連接,并對目標對象進行解碼,最后將解碼后的數據發送到客戶端。當發生某個磁盤故障時,Erasure Code的優勢就發揮出來了,只要有足夠的校驗塊就可以重建對象中丟失的部分。

重建

在代理層進行編碼是有一些優勢的。首先,Swift已經這么做了,我們選擇站在了巨人的肩膀上。其次,代理服務器上已經準備了強大的CPU,把編碼工作放在這里能更好的發揮CPU的性能。在真實應用場景中,存儲容量增速要遠遠超過并發訪問增長需求,因此,編碼工作在代理服務器中能夠保持低成本運行。

Handoff Locations策略

在Swift中已經使用了handoff locations概念,來應對存儲數據時發生的硬件或鏈接故障。同時,當在本地主存儲中找不到校驗數據是,節點知道如何從相鄰的節點找到到它。

復制

使用Erasure Code時,我們使用重構器來掃描數據塊。Erasure Code的“重構器”檢查相鄰數據塊來確保每個數據塊是可用的。若出現故障或者缺損,重構器可以重建塊并將其復制到缺損處。

使用Erasure Code時,我們依然沿用了這種策略比對數據。Erasure Code的“重構器”等同于原有的三副本的恢復形式,通過以快速檢查相鄰塊,以確保個別塊保持可用。若出現故障或者缺損,重構器可以重建塊并將其復制到缺損處。

容器的粒度控制

Swift的容器與AWS S3的 Buckert很相似。他們可以很方便的修改某個賬戶下的對象的屬性,如修改訪問控制列表(ACL)。容器非常善于管理一套存儲策略,如副本數量或Erasure Code。

用不同的設備實現Erasure Code

只要增加數據Ring(詳見上文),就能在不同的物理設備上實現Erasure Code。例如,如果分層數據用于歸檔,就可以使用密度更高的服務器部署,從而降低成本。

如何權衡

非常簡單,Erasure Code校驗文件比文件副本更廣泛的存儲在服務器中。這就導致數據在讀取過程中必須在節點間創建更多的連接,這會讓整個系統更加復雜,出現故障的可能性更高,響應請求的時延增長。編碼、解碼過程也會增加CPU的負擔。所有這一切都是要考慮的。

責任編輯:王程程 來源: CSDN
相關推薦

2013-07-05 10:12:35

2021-10-26 08:22:38

消息堆積擴容RocketMQ

2020-04-24 20:05:16

VueAxios前端

2012-07-12 16:00:32

OpenStackSwift架構

2012-05-17 13:47:37

OpenStack架構

2015-12-22 10:10:43

2021-10-18 22:29:54

OOMJava Out Of Memo

2013-12-10 09:57:35

Openstack S開源云存儲Openstack

2014-11-27 13:29:29

OpenStackSwift開源

2015-11-19 00:11:12

2011-12-21 15:07:28

開源云計算

2013-07-25 09:13:57

SwiftStackOpenStackSwift對象存儲

2017-10-24 12:32:03

小程序APPbug

2021-05-12 13:38:47

云計算

2020-08-06 15:50:26

微信無法登陸移動應用

2016-07-28 12:34:22

天蝎OpenStack中國移動

2015-08-25 11:17:13

OpenStack對象存儲Swift

2013-07-25 09:12:48

OpenStackSwift對象存儲對象存儲

2020-01-21 22:02:23

物聯網IOT物聯網應用

2021-12-08 12:05:21

MySQ磁盤數據庫
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久精品国产a三级三级三级 | 美女久久| 亚洲国产精选 | 国产精品视频免费 | 国产精品伦理一区二区三区 | 一本色道久久综合亚洲精品高清 | 二区欧美 | 久久99这里只有精品 | 成人福利网| 欧美日日 | 在线视频91| 亚洲第一网站 | 一区二区三 | 成人精品在线视频 | 日日操夜夜操天天操 | 狠狠综合久久av一区二区小说 | 久久久久久久久毛片 | 国产精品高潮呻吟久久av野狼 | 神马福利 | 毛片免费视频 | 精品国产乱码 | 欧美成年人视频在线观看 | 久草中文在线 | 国产成人麻豆免费观看 | 亚洲www啪成人一区二区 | 一区二区三区精品视频 | 亚洲精品久久久久久久不卡四虎 | 色av一区二区 | 影音先锋中文字幕在线观看 | 欧美激情综合五月色丁香小说 | 一区二区三区视频在线 | 久久久久久久av | 日韩视频免费在线 | 99精品久久 | 国产在线h | 中文字幕在线欧美 | 久久久91精品国产一区二区三区 | 性福视频在线观看 | 国产成人精品一区二区三 | julia中文字幕久久一区二区 | 色婷婷综合久久久中文字幕 |