自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

OpenStack Swift 存儲策略及應(yīng)用案例

云計算 OpenStack
OpenStack Object Storage(Swift)前身是 Rackspace Cloud Files 項目,于 2010 年貢獻(xiàn)給 OpenStack 社區(qū),是 OpenStack 最早的兩個項目之一。Swift 可在比較便宜的通用硬件上構(gòu)筑具有極強可擴(kuò)展性和數(shù)據(jù)持久性的存儲系統(tǒng),支持多租戶,通過 RESTful API 提供對容器(Container)和對象的 CRUD 操作。

OpenStack Swift 對象存儲及其存儲策略簡介

Swift 2.0 于 2014 年 7 月 8 日發(fā)布,其中最重要的新特性是存儲策略(Storage Policy),該特性改變了以往存儲系統(tǒng)中存儲策略由設(shè)計與實施方?jīng)Q定的做法,讓用戶能夠以 Container 為粒度,為不同需求的數(shù)據(jù)指定不同的副本數(shù)量、不同參數(shù)的糾刪碼、不同性能的存儲介質(zhì)、不同地理位置、不同的后端存儲設(shè)備。存儲策略充分體現(xiàn)了 Swift"軟件定義存儲"(Software Defined Storage)的特點。

為了實現(xiàn)存儲策略,Swift 在原先三個環(huán)(Ring)的架構(gòu)基礎(chǔ)上進(jìn)行了改進(jìn)。Swift 為賬戶、容器和對象分別定義了的環(huán),通過環(huán)將虛擬節(jié)點(分區(qū))映射到一組物理存儲設(shè)備上。在 Swift 2.0 中,每個存儲策略對應(yīng)一個 Object Ring。

Swift存儲策略的配置與使用

配置存儲策略

設(shè)置存儲策略分為兩步:編輯配置文件swift.conf文件,創(chuàng)建相應(yīng)的ObjectRing。在配置文件中每個存儲策略以[storage-policy:N]開頭,其中N是策略的編號。對于該文件的解析遵循以下規(guī)則:

  1. 如果該文件中沒有聲明任何策略,Swift會自己創(chuàng)建一個;
  2. 策略編號應(yīng)當(dāng)位非負(fù)整數(shù);
  3. 如果沒有聲明默認(rèn)策略,Swift會把編號為0的策略設(shè)為默認(rèn)策略;
  4. 策略編號必須唯一;
  5. 策略應(yīng)當(dāng)具有名字,策略命名區(qū)分大小且必須唯一;
  6. 策略名稱只能包含字母、數(shù)字和連字符,"Policy-0"只能用于編號為0的策略;
  7. 定義策略之后,應(yīng)當(dāng)有一個且僅有一個策略被指定為默認(rèn)策略;
  8. "廢棄"(Deprecated)策略不能同時為默認(rèn)策略。

下面是一個swift.conf文件的示例:

  1. [swift-hash] 
  2. # random unique strings that can never change (DO NOT LOSE) 
  3. swift_hash_path_prefix = changeme 
  4. swift_hash_path_suffix = changeme 
  5.  
  6. [storage-policy:0
  7. name = apple 
  8. default = yes 
  9.  
  10. [storage-policy:1
  11. name = orange 
  12. deprecated = yes 

完成swift.conf 文件的編輯,下一步是為每個存儲策略創(chuàng)建相應(yīng)的Object Ring,方法和創(chuàng)建老版本 Object Ring類似,只是要在object 后面加上"-N",這里的 N 是存儲策略的編號。例如,為上述編號為 0和1的存儲策略創(chuàng)建Object Ring:

  1. swift-ring-builder object-0.builder create 10 3 1 
  2. swift-ring-builder object-1.builder create 10 2 1 

使用存儲策略

存儲策略的使用非常簡單,只需要在創(chuàng)建 container 是指定存儲策略即可,下面以 SAIO 部署為例加以說明:

  1. curl -v -X PUT -H 'X-Auth-Token: <your auth token>' -H \ 
  2.     "X-Storage-Policy: orange" \ 
  3.     <a href="http://127.0.0.1:8080/v1/AUTH_test/myCont1">http://127.0.0.1:8080/v1/AUTH_test/myCont1</a> 
  4. curl -X PUT -v -T file1.txt -H 'X-Auth-Token: <your auth token>' \ 
  5. <a href="http://127.0.0.1:8080/v1/AUTH_test/myCont1/">http://127.0.0.1:8080/v1/AUTH_test/myCont1/</a> 

然后執(zhí)行:

  1. curl -X GET –v \ 
  2.  <a href="http://127.0.0.1:8080/endpoints/AUTH_test/myCont1/file1.txt">http://127.0.0.1:8080/endpoints/AUTH_test/myCont1/file1.txt</a> 

例如,會看到如下結(jié)果:

  1. ["http://127.0.0.1:6010/sdb1/32/AUTH_test/myCont1/file1.txt"
  2. "http://127.0.0.1:6040/sdb4/32/AUTH_test/myCont1/file1.txt"

說明 Storage Policy 已經(jīng)成功發(fā)揮作用。

#p#

存儲策略的應(yīng)用模式

上述提到副本數(shù)量的改變,只是存儲策略的應(yīng)用模式的一種,在實際應(yīng)用中,可以有以下幾種模式:

1. 縮減或增加冗余

對于一些數(shù)據(jù),它們不需要保證很高的數(shù)據(jù)持久性和可靠性,比較典型的是圖像的縮略圖,它們可以由原圖降采樣得到,在這種情況下,可以對原圖采用三副本方案,對縮略圖采用雙副本方案,降低存儲系統(tǒng)的開銷。 

圖 1.為不同的 Container 指定不同的副本數(shù)量

http://s6.51cto.com/wyfs02/M01/54/0E/wKiom1R2vNCizpLYAABYXIAkHMc916.jpg

2. 性能分層

例如,對于一些數(shù)據(jù)用 HDD 保存,另一些用 SSD 保存。也可以應(yīng)用于其他存儲介質(zhì),甚至是不同的存儲設(shè)備。

圖 2.為不同的 Container 指定不同的存儲介質(zhì)

3. 地理位置約束

在某些場景下,因為公司或者國家的政策的約束,某些數(shù)據(jù)必須存儲在指定的地理位置,例如混合云場景。有些場景下,用戶希望指定數(shù)據(jù)存放在距離訪問客戶端比較近的地方。

圖 3.為不同的 Container 指定不同的存儲位置

http://s9.51cto.com/wyfs02/M02/54/0D/wKioL1R2vVOBmm36AABQw0HBOSw603.jpg

4. 應(yīng)用糾刪碼(Erasure Codes)

對于性能要求不高的場合,應(yīng)用糾刪碼。糾刪碼,又稱為刪除碼,將對象分割為 m 個分片(fragments),并通過編碼生成 k 個校驗分片, 最后將這 n=m+k 個分片放到 Swift 對象存儲系統(tǒng)的不同位置(通常是 swift 的不同 zone 中)。對于將 m 個分片編碼為 n 個分片的糾刪碼,記為EC(m, n)。糾刪碼的示意圖如下:

圖 4.糾刪碼示意圖

糾刪碼在提高存儲空間利用率的同時,保持或增加數(shù)據(jù)的持久性(durability)和可靠性。但是由于編碼、解碼和恢復(fù)數(shù)據(jù)往往需要較大的計算量,可能導(dǎo)致性能的降低,所以比較適用于對持久性和可靠性要求比較高,但是訪問量并不大的數(shù)據(jù)存儲。

圖 5 .應(yīng)用糾刪碼保護(hù)數(shù)據(jù)

#p#

在某視頻網(wǎng)站中的應(yīng)用案例 

在某視頻網(wǎng)站中,采用 Swift 存儲視頻文件,并對其部分文件根據(jù)視頻類型的不同應(yīng)用不同的存儲策略。

視頻數(shù)據(jù)分為三類:1)源片;2)超清視頻文件;3)其他不同清晰度的視頻文件。源片體積較大,對持久性要求高,但是對訪問速度要求較低,并發(fā)訪問數(shù)量和訪問頻率較低;清晰度較低的視頻由超清視頻轉(zhuǎn)碼得到,針對上述需求,設(shè)計存儲策略如下:

  1. 源片采用糾刪碼策略,編碼參數(shù)為EC(7, 4),即把一個視頻文件分割為 4 塊,并生成 3 塊校驗塊,存儲效率約為 57%;
  2. 超清視頻三副本策略,存儲效率約為 33%;
  3. 清晰度較低的視頻采用雙副本策略,存儲效率為 50%。

假設(shè)設(shè)備損壞的概率為 2%,以上三種存儲策略的數(shù)據(jù)持久性分別為:99.9995%,99.9992%和 99.96%。

表 1.存儲策略的應(yīng)用

Swift 集群的總結(jié)點數(shù)量為 54 個節(jié)點,總?cè)萘考s為 2.3PB,集群的部署架構(gòu)如下圖所示,其中 Proxy Server 的數(shù)量可以根據(jù)需要增加或者減少。采用傳統(tǒng)三副本方案,能夠保存的視頻總長度約為(同一段視頻不同分辨率不進(jìn)行重復(fù)統(tǒng)計)3.97×106 分鐘。

采用上述存儲策略后,保存的視頻總長度為 5.89×106 分鐘,存儲效率提高了 48%。

圖 6. 基于 Swift 的視頻存儲系統(tǒng)的部署架構(gòu)

基于 Swift 的視頻存儲系統(tǒng)的部署架構(gòu)

結(jié)束語

在大數(shù)據(jù)時代,隨著文件數(shù)量和數(shù)據(jù)體量的增加,文件系統(tǒng)和 NAS 的瓶頸越來越明顯,基于 RESTful Web API 的對象存儲逐漸受到人們的廣泛接受。作為最具代表性,應(yīng)用最廣泛的開源對象存儲方案,OpenStack Swift 自誕生以來一直保持著技術(shù)上領(lǐng)先的地位,在 Swift 2.0 中推出的存儲策略功能,能夠讓管理員根據(jù)自己系統(tǒng)的特點制定不同的存儲策略;用戶或租戶根據(jù)自己數(shù)據(jù)的特點和業(yè)務(wù)需要,以 Container 為粒度選擇存儲策略,從而實現(xiàn)成本、數(shù)據(jù)可靠性、性能等維度上的綜合權(quán)衡和優(yōu)化,體現(xiàn)了軟件定義存儲的特點。本文只是對存儲策略做了一個簡要的介紹,讓讀 者體會存儲策略的用途,進(jìn)一步深入探索可以查看參考資料了解有關(guān) OpenStack Swift 的更多相關(guān)信息。

原文出自:http://www.ibm.com/developerworks/cn/cloud/library/1411_limy_openstackswift/?cmp=dwskl&cpb=dw&ct=dwcon&cr=cn_CSDN_t10_1&ccy=cn

責(zé)任編輯:Ophira 來源: IBM
相關(guān)推薦

2012-07-12 16:00:32

OpenStackSwift架構(gòu)

2013-12-10 09:57:35

Openstack S開源云存儲Openstack

2013-07-25 09:12:48

OpenStackSwift對象存儲對象存儲

2015-08-25 11:17:13

OpenStack對象存儲Swift

2016-06-17 13:43:15

OpenStackSwift跨地域存儲集群

2019-01-18 09:02:26

OpenStack存儲組件

2012-05-17 13:47:37

OpenStack架構(gòu)

2013-07-26 09:16:13

SwiftOpenStackSwiftStack

2017-07-10 08:18:55

云存儲優(yōu)勢應(yīng)用

2017-02-09 11:34:57

大數(shù)據(jù)用戶畫像應(yīng)用實踐

2011-07-05 10:24:00

虛擬化虛擬化工程

2013-07-25 09:13:57

SwiftStackOpenStackSwift對象存儲

2013-12-11 21:44:01

OpenStack對象Swift

2011-09-07 10:42:38

cloudopenstack n

2014-01-13 10:50:28

虛擬化存儲

2009-01-30 11:29:48

石油行業(yè)地質(zhì)勘探存儲

2018-10-24 14:17:45

云存儲策略數(shù)據(jù)

2011-03-31 10:18:31

2012-09-12 17:04:53

OpenStack云計算存儲

2013-04-01 09:55:03

OpenStack存儲
點贊
收藏

51CTO技術(shù)棧公眾號