雲計算背後的秘密(2) GFS

2021-08-25 13:09:42 字數 1627 閱讀 7962

由於週日linode在加州機房出現停電事故,所以這兩天peopleyun沒法訪問,在這裡向大家表示歉意

由於搜尋引擎需要處理海量的資料,所以google的兩位創始人larry page和sergey brin在創業初期設計一套名為「bigfiles」的檔案系統,而gfs(全稱為「google file system」)這套分布式檔案系統則是「bigfiles」的延續。

首先,介紹它的架構,gfs主要分為兩類節點:其一是master節點,其主要儲存與資料檔案相關的元資料,而不是chunk(資料塊)。元資料報括乙個能將64位標籤對映到資料塊的位置及其組成檔案的**,資料塊副本位置和哪個程序正在讀寫特定的資料塊等。還有master節點會周期性地接收從每個chunk節點來的更新(「heart-beat」)來讓元資料保持最新狀態;其二是chunk節點,它主要用於儲存資料。在每個chunk節點上,資料檔案會以每個預設大小為64mb chunk的方式儲存,而且每個chunk有唯一乙個64位標籤,並且每個chunk都會在整個分布式系統被複製多次,預設次數為3。下圖就是gfs的架構圖:

圖1. gfs的架構圖

接著,在設計上,gfs主要有八個特點:

大檔案和大資料塊:資料檔案的大小普遍在gb級別,而且其每個資料塊預設大小為64mb,這樣做的好處是減少了元資料的大小,從而能使master節點能夠非常方便地將元資料都放置在記憶體中以提公升訪問效率。

操作以新增為主:檔案很少會被刪減或者覆蓋,通常只是進行新增或者讀取操作,這樣能充分考慮到硬碟線性吞吐量大,但隨機讀寫慢的特點。

支援容錯:首先,雖然當時為了設計方便,採用了單master的方案,但是整個系統會保證master節點會有其相對應的替身(shadow),以便於當master節點出現問題時進行切換。其次,在chunk層,gfs已經在設計上將節點失敗視為常態,所以能非常好地處理chunk節點失效的問題。

高吞吐量:雖然以單個節點來看,gfs的效能無論是從吞吐量還是延遲都很普通,但因為其支援上千的節點,所以總的資料吞吐量是非常驚人的。

保護資料:檔案被分割成固定尺寸的資料塊以便於儲存,而且每個資料塊都會被系統至少複製三份。

擴充套件能力強:因為元資料偏小,使得乙個master節點能控制和管理上千個存資料的chunk節點。

支援壓縮:對於那些稍舊的檔案,可以通過對它進行壓縮,來節省硬碟空間,並且壓縮率非常驚人,有時甚至接近90%。

基於使用者空間:gfs主要執行於系統的使用者空間(user time),雖然在效率方面,使用者空間比核心空間略低,但是更便於開發和測試,還有,就是能更好利用linux的自帶的一些posix api。

由於gfs主要是為了儲存海量搜尋資料而設計的,所以它在吞吐量(throughput)和伸縮性(scalability)這兩方面表現非常優異,可謂業界的「翹楚」,但是由於其主要以64mb資料塊形式儲存,所以在隨機訪問方面速度並不優秀,雖然這點可謂是它的「軟肋」,但是這本身也是其當初為了吞吐量和伸縮性所做的權衡。

和mapreduce相似的是,gfs在開源界也有其對應的產品,最出名的是hdfs分布式檔案系統,在功能和設計上,hdfs從gfs身上借鑑了很多東西,而且由於其本身就是hadoop系列的一部分,所以它為了更好hadoop這個mapreduce框架做了很多優化。

雲計算背後的秘密(3) BigTable

由於在google的資料中心儲存pb級以上的非關係型資料時候,比如網頁和地理資料等,為了更好地儲存和利用這些資料,google開發了一套資料庫系統,名為 bigtable 從技術來講,bigtable不是乙個傳統的關係型的資料庫,也不支援類似關聯 join 這樣高階的sql操作,取而代之的是多級對映...

大資料播報 資料悄悄告訴你「私有雲背後的秘密」

資料1.未來24個月43.5 的企業級使用者將構建自己的私有雲 從私有雲目前部署和未來趨勢可以看出,有超過1 4的使用者已經部署了私有雲,而另有近1 3的使用者會在未來24個月內部署自己的私有雲,而這當中企業級使用者佔的比例明顯高於中小企業。如此看來,對於企業級使用者而言,未來私有雲仍然是企業雲計算...

我眼中的雲計算2 計算資源

隨著雲承載的業務在增長,雲的規模也在不斷膨脹,但批逐次增加的硬體存在著效能差別 摩爾定律還在生效中 單位功耗下硬體的計算能力不斷提高 此處僅關注cpu本身的效能以及cpu與記憶體系統的頻寬,簡單看nehalem架構與sandy bridge架構同頻cpu的幾個對比測試 superpi wprime ...