日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

每種技術的產生都有其原因,也有其淵源。網絡文件系統的產生有幾十年的歷史了,但是由于在互聯網盛行的當下無法滿足某些需求,于是對象存儲產生了。今天我們就從

從網絡文件系統說起

早些時候的企業級架構普遍采用網絡文件系統,這其中最為著名的就是Sum的NFS了。微軟也有類似的網絡文件系統,也就是SMB。網絡文件系統的原理很簡單,其目的就是將存儲系統上的文件系統映射到計算節點(比如Web服務器)。這樣可以實現存儲資源的共享,提高存儲資源的利用率。具體映射方式如下所示。

從網絡文件系統到對象存儲,聊聊對象存儲的前世今生

 

但是文件系統有個天然的缺點。由于文件系統空間組織的特點,導致對文件訪問的時候需要比較多次的磁盤訪問。

以Ext4文件系統為例,文件系統將磁盤空間分為兩個主要的區域,一個是元數據區,用于存儲文件inode等信息;另外一個是數據區,用于存儲文件的數據,也就是用戶數據,具體如下圖所示。

從網絡文件系統到對象存儲,聊聊對象存儲的前世今生

 

這樣,當我們訪問一個文件的時候,首先需要找到文件對應的inode,然后根據inode信息找到數據的位置,并讀取數據。這個過程可能要涉及到2-3次的磁盤訪問。對于互聯網應用來說,多次磁盤訪問會顯著降低性能,影響用戶的體驗。

當然,除此之外還有其它一些問題,比如橫向擴展能力等。其實本質上來說,文件系統的目的是一個通用的存儲形態,其目的是為了適用大多數的應用場景(比如文件鎖,擴展屬性,ACL等等)。而網絡文件系統為了保證與文件系統語義的一致性,也需要實現這些特性,這就導致網絡文件系統比較臃腫。

對象存儲解決的問題

由于上述缺點,傳統的網絡文件系統是完全無法滿足互聯網領域應用的。我們舉一個例子,以FaceBook為例,其每秒鐘都有幾十萬次的照片檢索請求。其存儲的照片總量每天新增3.5億張,對應的存儲增量大概在300TB左右。如果對應物理設備,每天大概需要新增上百塊硬盤。

這種問題在任何互聯網公司都會遇到的問題。比如國內的頭條,淘寶或者京東等等,在它們的平臺上每天也要產生海量的圖片訪問。傳統存儲很難滿足其性能和擴展性的要求。

雖然互聯網應用對性能和容量的要求極高,但是對其它特性卻沒什么特別的要求。甚至可以說它對其它特性基本上沒有太多要求。由于其存儲的主要是圖片,而且對圖片的存儲是一次存儲,多次訪問,沒有修改。

為了解決上述問題,對象存儲應運而生。可以看出對象存儲解決的問題很集中,如何保證橫向擴展能力、降低訪問延時。而不需要實現文件系統的其它額外特性(后面我們會介紹對象存儲還有一些高級特性)。下面是維基百科對對象存儲的定義。

Object storage (also known as object-based storageis a computer data storage architecture that manages data as objects

從定義可以看出,對象存儲在數據處理層面的特點是將待處理的數據看做一個整體,這也就是為什么把它稱為對象,而不是文件了。

其實對象存儲也并非全部如此簡單,很多對象存儲也實現了比較復雜的功能特性。比如S3對象存儲可以支持大數據處理、擴展屬性和二次處理(比如照片的轉換,水印等)等特性。

對象存儲的常見架構

為了讓大家對對象存儲有更加深刻的理解,我們介紹一下常見對象存儲的架構。雖然亞馬遜的S3非常出名,但是并沒有公開太多技術信息,其架構也無從了解。今天本文將介紹一下比較流行的其它對象存儲的架構。

Swift對象存儲

首先介紹一下開源對象存儲Swift的架構。Swift是OpenStack的一個子項目,是非常流行的開源對象存儲軟件。Swift在OpenStack中主要用作虛擬機鏡像,其特點也是存儲大對象。對于小對象則想多弱勢。

Swift最主要的是實現橫向擴展能力,其前端有一個Proxy組件,該組件實現了數據的分發服務。該組件可以具備多個實例,每個實例可以安裝在一臺物理服務器。由于Proxy可以橫向擴展,因此不會成為性能瓶頸。

從網絡文件系統到對象存儲,聊聊對象存儲的前世今生

 

在Proxy中最核心的算法是進行數據放置的一致性哈希算法。該算法實現了將一個對象映射到物理設備的過程。為了保證整個系統的可靠性和可用性,Swift將設備劃分為若干等級,比如Zone,Host和Disk。通過不同設備的分發,實現故障域的隔離。

從網絡文件系統到對象存儲,聊聊對象存儲的前世今生

 

如上圖哈希算法,首先將物理設備映射到哈希環上;當有對象訪問的時候根據對象名稱計算出哈希值,然后將對象映射到具體的物理設備上。

Haystack對象存儲

Facebook這對其照片應用開發了Haystack對象存儲。Haystack與前面Switf的差異是其存儲的是小對象。因為圖片通常在10MB以下,大部分在KB級別。因此Haystack除了保證系統的橫向擴展能力外,其最主要的是實現對小文件的處理。

前面我們說過,對于小文件的性能問題,普通文件系統的問題在于多次讀盤操作。而Haystack正式解決了該問題。

Haystack的做法非常簡單,它將多個小文件作為一個大文件的局部數據,這個局部數據稱為needle。同時Haystack構建了一個描述needle在大文件中位置的索引文件。由于索引文件比較小,因此可以一次性的加載到內存當中。

從網絡文件系統到對象存儲,聊聊對象存儲的前世今生

 

通過這種方式,當客戶端需要訪問數據的時候,在存儲節點可以直接從內存中得到數據的位置,并一次從磁盤上讀取數據。這樣訪問存儲的性能得到大幅的提升。

由于篇幅有限,本文先介紹到這里,關于存儲技術的更多細節,還請關注本號。本號后續還會步步深入,介紹關于存儲技術的諸多細節。

分享到:
標簽:對象
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定