Swift云存储特性研究
0.What?is?swift?
OpenStack?Object?Storage?(Swift)?是用來創建冗余的、可擴展的對象存儲(引擎)的開源軟件。?swift使用標準化的服務器存儲?PB?級的訪問數據。它并不是文件系統或者實時的數據存儲系統?,而是一個用于存儲永久類型的靜態數據的長期存儲系統?,這些數據可以檢索、調整、必要時進行更新。最適合存儲的數據類型的首要例子是虛擬機鏡像,圖片存儲,郵件存儲,存檔備份。因為沒有中心單元或者主控結點,swift提供了更強的擴展性、冗余和持久性。
?
1.When?did?the?swift?start??
OpenStack?Object?Storage?最初由?Rackspace?開發,并于?2010?年?7?月貢獻給?OpenStack?,作為該開源項目的一部分。它的目的是用于托管?Rackspace的?Cloud?Files?service?,原始項目代號是?swift,所以沿用至今。
?
2.What’s?the?Advantages?of?swift?
?
Swift?vs?MogileFS
MogileFS是一個開源的分布式文件系統,用于組建分布式文件集群,主要由Tracker?and?Database?、Storage?Nodes和Client?組成,其中系統的元數據都存儲在單一的數據庫中,寫操作只能在單個的master上,因此無法水平擴展數據庫的寫能力,這影響了的可擴展性。此外,在大并發訪問下,數據庫將成為瓶頸,所有的服務器和用戶都會受此影響。Swift的早期原型基于MogileFS-style,由于元數據數據庫無法擴展,該方案最終廢棄。
| 特性 | 優點 |
| 通過編程語言封裝的API來存儲和管理文件 | 使資源的管理和提取自動化 |
| 可以創建公共或私有的容器 | 更好的控制性。既允許數據共享也可以設為私有 |
| 使用商用硬件 | 沒有鎖定,每GB更低廉的價格 |
| 硬盤驅動器/結點不可預知的失效 | 具有自我修復的可靠性,數據冗余性來保護失效的影響 |
| 無限制的存儲 | 巨大且扁平的名稱空間,高度可伸縮的讀寫訪問能力,直接從存儲系統提供內容服務 |
| 多維可伸縮性(向外擴展的結構) 允許垂直和水平分布地調整存儲 | 以線性的性能來備份/存檔大量數據 |
| 帳號/容器/對象?沒有嵌套,不是傳統的文件系統 | 規模優化,允許百萬個PB級別的對象 |
| 內建復制 (帳號、容器、對象的N份拷貝) 3x+的數據冗余性與RAID的2x的對比 | 高可靠性 |
| 不同于RAID的大小調整,非常簡單的容量增減 | ? 簡單的彈性的數據調整 |
| 沒有中央數據庫 | 更高的性能,沒有瓶頸 |
| 不需要RAID | 允許更有效地處理大量小型、隨機的讀寫 |
| 內建Mgmt.工具 | 帳號管理:創建,增加,驗證,刪除用戶 容器管理:上傳,下載,驗證 監測:容量、主機、網絡、日子篩選、集群健康情況 |
| ? 驅動器檢查 | 允許檢測驅動器失效,盡早知悉數據受損 |
| 通過web瀏覽器使用VNC代理 | 快速、簡單的命令行管理 |
?
?
4.What’s?good?use?cases?for?Swift?
·?存儲媒體庫(照片、音樂、視頻等)?
·?視頻監控文件的存檔?
·?電話呼叫音頻記錄的存檔?
·?壓縮日志文件的存檔?
·?備份存檔(每個對象<5GB)?
·?存儲和加載系統的鏡像文件等?
·?存儲數量不斷增加基數龐大的文件
·?存儲小型文件?(<50?KB).?OpenStack?Object?Storage擅長于此.?
·?存儲數以億計的文件.?
·?存儲PB級別的數據.?
?
5.What’s?limitations?of?Swift?
?
不是文件系統
Swift使用REST?API,因此不能使典型的POSIX?文件系統的語法如open(),?read(),?write(),?seek()和close()。
沒有目錄結構
可以創建任意數量的容器,但是不支持嵌套
在文件中沒有寫入字節偏移量
The?only?way?to?update?a?file?is?to?essentially?overwrite?it.?The?system?creates?a?new?version?of?an?object?each?time?you?upload?one?with?the?same?name.
上傳一個文件的唯一方式本質上就是重寫這個文件。當你上傳一個相同名字的對象時,系統就創建這個對象的新版本。
不是數據庫
不支持服務器上的數據查詢和處理。值可以列出指定容器內的對象,但是不能基于對象的元數據進行查詢。
不要嘗試頻繁地更新大對象
所有的更新將會產生對象的新版本,因為對象是不可變的。
不要在每個容器內存儲超過無限的對象
adrian?otto?發現當容器的對象數超過100萬個對象時,將會影響性能。
?
轉載于:https://www.cnblogs.com/yuxc/archive/2012/05/11/2495267.html
總結
以上是生活随笔為你收集整理的Swift云存储特性研究的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 修改web.config
- 下一篇: 你方唱罢我登场,“全宇宙仅此一回”的小米