並行檔案系統近期的一些研究

2021-07-16 05:23:19 字數 3019 閱讀 8951

1 並行檔案在效能方面主要優勢是通過「條帶」來提高傳輸頻寬,而相反隨機小io效率低下。

3 共享磁碟架構的乙個缺點是多個計算節點之間存在干擾導致高併發環境下效率低下。

4 目前並行檔案系統等主要通過副本(經典是3副本)機制來解決資料儲存可靠性問題,基於糾刪碼的目前不多(hdfs目前好像是有乙個hdfs-raid版本,採用糾刪碼技術來解決資料可靠性)。

基於以上幾點:並行檔案系統不適合高併發環境,而更適合平行計算,也就是高效能計算環境。

並行檔案系統中每個讀寫,客戶端都要先向元資料伺服器和鎖伺服器進行聯絡,讀取元資訊和取得相應鎖,然後根據元資訊和io位置來計算和定位和哪個儲存裝置進行通訊。如果每次讀的io量大,此部分開銷也許可以忽略。但對隨機io,每次讀取io量很小,此時此部分開銷(通訊開銷和計算開銷)將非常大。

例如ceph 讀寫流程(根據ceph**):

1) client開啟乙個file時,client與某個mds通訊,mds通過遍歷樹結構來將檔名翻譯成file inode, 該file inode包含乙個唯一的inode number,檔案所有者,大小以及其他元資訊

2) 如果檔案存在且被允許訪問,則mds將inode number,檔案大小以及用於將檔案資料對映為物件的分片策略等返回給客戶端。同時mds發布乙個capacity給client,告知client允許的操作型別,目前capacity包括:read ,cacheread ,write ,write buffer.

3) 客戶端根據返回資訊採用一定演算法來計算該檔案包含物件以及物件的位置。

4 ) client在執行檔案關閉操作時,將capacity返還給mds,並更新檔案的size.

例如gpfs每次開啟檔案時都需要向鎖管理伺服器申請tocken

在查詢並行檔案系統使用場景時,找到一篇文章。作者對並行檔案系統效能進行測試。

測試環境:

小檔案隨機讀測試結果:

在安裝了並行檔案系統後,隨機

io效能從

157下降到34。

作者結論:

有人曾把全文檢索放在gpfs上,經過他們優化,效能也只能到本地檔案系統70%。

1  gpfs 官方資料

可以看出gpfs設計初衷是提高資料讀寫頻寬。

2 國外並行檔案系統相關ppt

(1) 首頁

(1) 並行檔案系統不適合資料庫或者郵件伺服器

在gpfs和lustre中,為了滿足多個程序可以並行讀寫乙個檔案的不同部分,這兩個檔案系統都提供了「範圍鎖」。例如:程序1 可以要求獲取檔案a的從[0~1kb]的鎖,程序2可以要求獲取檔案a的[2kb~3kb]的鎖,這樣通過這種細粒度鎖來滿足上述需求。

與之相對應的是hdfs鎖粒度是整個檔案,也就是乙個程序在寫乙個檔案,則其他程序無法寫該檔案,因此hdfs也不適合高效能計算。hdfs適合是資料密集型的場景,而高效能計算一般是計算密集型。

而redhat公司的global file system ,鎖粒度更細,粒度為每個底層塊裝置的每個「block」。但由於粒度太細,規模無法做大。

為滿足單個程序在順序讀單個檔案情況下也能實現多個裝置聚合頻寬,gpfs採用讓多個儲存裝置會並行把資料讀取到記憶體中策略實現上述需求,類似raid通過預讀機制。

共享磁碟架構下的干擾問題,主要分為兩類:一是順序io之間干擾、二是隨機io之間衝突。

順序io之間的干擾可以簡單解釋如下:

非共享方案:

10個檔案,放在10個盤上,每個盤乙個執行緒讀取。

共享方案:

10個檔案,條帶化後每個檔案都被分散在10個硬碟上(例如11塊盤raid5),10執行緒同時讀該raid。(條帶化的優點是在併發度不高情況下能提高單程序單個大檔案的順序讀寫的速度,並且是條帶化+並行讀+預讀)

在共享方案下,磁碟會因為同時需要應付10個讀執行緒,因此變成了隨機讀。

目前這種干擾,可以通過raid和單盤隊比測試來驗證。相應測試結果:

同時國外也有研究人員認識到該問題,並試圖優化和解決這些問題,但總體還是很複雜:

**1:研究hadoop平台下,共享io干擾.

**2:研究如何改進和優化共享io的干擾問題 ,大概思路是增加乙個中間層來優化。

磁碟干擾

快取干擾:

二是隨機io之間衝突。

隨機io之間衝突,導致raid無法發揮所有硬碟的隨機io效能。這種情況下效率低下的原因,個人分析主要是雖然可能有多塊盤,但是如果排程不好則存在同時在工作的盤可能只有少數幾塊盤。這個問題應該和資料條帶化沒有太大關係,而且對順序io也有影響,只是由於隨機io每次都比較小,影響會更嚴重一些。

因此在**tfs的設計方案中,原始tfs採用raid來儲存,後來也是發現該問題,將raid變成單盤,由應用層通過複製來保證資料儲存安全,並且採用乙個程序管理乙個磁碟的模式來解決該問題。

為解決海量儲存管理問題,應該需要再仔細研究下儲存虛擬化技術。但是從目前來看儲存虛擬化更多的是在企業儲存環境下,儲存容量不是很大。(雲儲存採用三副本的備份來確保儲存安全,但是面臨的主要問題是io速度太差,在網路上反應阿里云云伺服器主要的缺點是io效能太差,目前為解決雲伺服器的儲存io太差,這些大公司都打算推出基於ssd的雲儲存,但成本太高)

綠色儲存目前也是乙個熱點,但是從前研究來看,網際網路公司一般的方法是對部門滿足以下要求的伺服器採用伺服器方式來降低能耗:io到100%時,cpu利用率不高。例如cdn伺服器。方法是使用低功能,效能低一些cpu。這塊有能將檔案儲存伺服器,採用該思路來減低能耗。

分布式檔案系統 集群檔案系統 並行檔案系統

分布式檔案系統 自然地,分布式 是重點,它是相對與本地檔案系統而言的。分布式檔案系統通常指c s架構或網路檔案系統,使用者資料沒有直接連線到本地主機,而是儲存在遠端儲存伺服器上。nfs cifs是最為常見的分布式檔案系統,這就是我們說的nas系統。分布式檔案系統中,儲存伺服器的節點數可能是1個 如傳...

StarFS講堂 什麼才是並行檔案系統?

檔案系統是作業系統用於明確儲存裝置上檔案的方法和資料結構,即在儲存裝置上組織檔案的方法,是平常最常見 最簡單的使用儲存的方式。並行檔案系統是檔案系統一種,常用於高效能計算領域,能支援資料的並行讀寫。並行檔案系統能很好的支援平行計算,支援平行計算的大規模資料讀寫。平行計算或稱平行計算是相對於序列計算來...

Linux檔案系統的一些理解

1.linux的檔案結構是單個的樹狀結構,可以用tree命令檢視。每個分割槽都要掛載在某個目錄下,目錄是邏輯上的概念,分割槽是物理上的概念 磁碟分割槽 2.通過ls l命令可以看到檔案的訪問許可權 順序是 使用者 owner所在的組 owner 3.inode是linux檔案系統中乙個重要概念。in...