本發明涉及計算機
技術領域:
,特別是涉及一種分布式存儲系統的實現方法及裝置。
背景技術:
:最近幾年,GPU已經成為一種非常流行的并行計算解決方案,可編程的GPU作為一種高度并行化、多線程、多核心的處理器,具備很高的內存帶寬和處理執行單元,非常適合于處理一些計算密集型、可高度并行化的計算任務。近些年來,nVidia公司提出了一套統一計算設備架構(CUDA),使得GPU進行通用計算成為了一種可能。CUDA專為并行計算設計,數據并行處理會將數據元素映射到并行處理線程進行加速計算,它給用戶使用的編程語法和導出API同C語言類似。從其出現到現在,便已經廣泛地應用到石油和天然氣開采、金融分析、醫學成像處理、生物基因分析、地理信息系統等領域。傳統的存儲需要購買大型昂貴的存儲設備存儲本地數據,而分布式云存儲的出現使得運行在普通服務器上廉價存儲單元成為可能。云計算三大件之一的存儲是云計算的一個重點,而其中的分布式存儲是存儲未來的發展方向。Ceph作為一種高性能、高擴展性、高可靠性的分布式存儲系統,能夠對外提供對象存儲、塊存儲和文件系統存儲三種功能,而對象存儲和塊存儲主要用于云計算領域。在實踐中,Ceph可被部署到上千臺服務器上,能夠對外提供PB級別的存儲。然而當集群規模較大的時候,節點的CPU的計算效率便會隨即下降。根據對Ceph的Giant版本測試可知,隨著OSD數量線性增加,節點之間的連接數將會呈現井噴式增長的態勢。舉例來講,Ceph中OSD每一次連接需要分配一個讀線程和一個寫線程來處理網絡的請求,此外后端的數據處理也需要分配多個線程來處理相關的邏輯。以一個基于Giant版本搭建的單節點集群為例,該節點上配置了6個osd。當集群空閑的時候,6個osd進程大概生成700多個線程,而系統出現讀寫等操作的時候,線程數量將會急劇增長。在實際應用場景中,這將會對CPU的計算性能提出更為苛刻的要求。鑒于此,提供一種分布式存儲系統的實現方法,以對ceph系統進行加速是本領域技術人員亟待解決的技術問題。技術實現要素:本發明的目的是提供一種分布式存儲系統的實現方法及裝置,解決現有技術中CPU計算任務重、影響計算速度的問題。為解決上述技術問題,本發明提供一種分布式存儲系統的實現方法,包括:接收用戶發送的讀寫請求;生成對應的寫線程以及讀線程,分別用來執行讀網絡數據和寫網絡數據;采用統一計算設備架構將數據元素映射到并行處理線程進行加速計算;通過圖形處理器執行所述寫線程以及所述讀線程,以實現并行化處理。可選地,在所述通過圖形處理器執行所述寫線程以及所述讀線程,以實現并行化處理之后還包括:將處理的結果存放到全局內存中,供后續模塊函數執行。可選地,所述采用統一計算設備架構將數據元素映射到并行處理線程進行加速計算包括:采用所述統一計算設備架構對應的kernel函數并發執行節點的讀請求和寫請求。可選地,所述通過圖形處理器執行所述寫線程以及所述讀線程包括:通過所述圖形處理器在同一時刻并發處理多個線程。本發明還提供了一種分布式存儲系統的實現裝置,包括:讀寫請求接收模塊,用于接收用戶發送的讀寫請求;生成模塊,用于生成對應的寫線程以及讀線程,分別用來執行讀網絡數據和寫網絡數據;映射模塊,用于采用統一計算設備架構將數據元素映射到并行處理線程進行加速計算;處理模塊,用于通過圖形處理器執行所述寫線程以及所述讀線程,以實現并行化處理。可選地,還包括:存放模塊,用于在通過圖形處理器執行所述寫線程以及所述讀線程,以實現并行化處理之后,將處理的結果存放到全局內存中,供后續模塊函數執行。可選地,映射模塊具體用于:采用所述統一計算設備架構對應的kernel函數并發執行節點的讀請求和寫請求。可選地,所述處理模塊具體用于:通過所述圖形處理器在同一時刻并發處理多個線程。本發明所提供的分布式存儲系統的實現方法及裝置,通過接收用戶發送的讀寫請求;生成對應的寫線程以及讀線程,分別用來執行讀網絡數據和寫網絡數據;采用統一計算設備架構將數據元素映射到并行處理線程進行加速計算;通過圖形處理器執行寫線程以及讀線程,以實現并行化處理。Ceph分布式系統的實現模塊具備很高的并行度,本發明所提供的分布式存儲系統的實現方法及裝置,基于GPU優化Ceph系統,能夠分擔CPU計算任務,使節點達到更高的計算速度。此外,GPU相對于CPU有價格上的優勢,能夠降低分布式存儲系統的實現成本。附圖說明為了更清楚的說明本發明實施例或現有技術的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單的介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。圖1為本發明所提供的分布式存儲系統的實現方法的一種具體實施方式的流程圖;圖2為本發明實施例提供的分布式存儲系統的實現裝置的結構框圖。具體實施方式為了使本
技術領域:
的人員更好地理解本發明方案,下面結合附圖和具體實施方式對本發明作進一步的詳細說明。顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。本發明所提供的分布式存儲系統的實現方法的一種具體實施方式的流程圖如圖1所示,該方法包括:步驟S101:接收用戶發送的讀寫請求;步驟S102:生成對應的寫線程以及讀線程,分別用來執行讀網絡數據和寫網絡數據;步驟S103:采用統一計算設備架構將數據元素映射到并行處理線程進行加速計算;步驟S104:通過圖形處理器執行所述寫線程以及所述讀線程,以實現并行化處理。具體地,通過所述圖形處理器在同一時刻并發處理多個線程。本發明所提供的分布式存儲系統的實現方法,通過接收用戶發送的讀寫請求;生成對應的寫線程以及讀線程,分別用來執行讀網絡數據和寫網絡數據;采用統一計算設備架構將數據元素映射到并行處理線程進行加速計算;通過圖形處理器執行寫線程以及讀線程,以實現并行化處理。Ceph分布式系統的實現模塊具備很高的并行度,本發明所提供的分布式存儲系統的實現方法,基于GPU優化Ceph系統,能夠分擔CPU計算任務,使節點達到更高的計算速度。此外,GPU相對于CPU有價格上的優勢,能夠降低分布式存儲系統的實現成本。本方案基于CUDA技術來優化Ceph系統的實現,對Ceph原生系統可并行化處理的模塊利用CUDA提供的API進行重新實現。當Ceph的OSD端接收到用戶請求的時候,就是對于接收的每一個Connection,Ceph原來的設計是生成對應的一個read線程和write線程,分別用來執行相關的讀網絡數據和寫網絡數據,這些線程在CPU上執行,并且在集群運行的過程中,這些連接保持相對穩定。對于集群內部來說,利用CUDA優化后,生成的每一個read線程和write線程將會在GPU中執行相關的操作,這樣就分流了CPU上的讀寫操作負擔。采用統一計算設備架構將數據元素映射到并行處理線程進行加速計算包括:采用所述統一計算設備架構對應的kernel函數并發執行節點的讀請求和寫請求。在CUDA編程模型中,成千上萬的線程將會執行同一個函數,該函數的名稱為Kernel函數。CUDA中兩個重要編程就是線程和內存模型,kernel函數是由一系列線程并行執行計算任務的單元,這些線程被組織成線程Grid。線程Grid同樣包含了數百個線程block。在同一線程block中的線程彼此之間緊密協作,而不同線程block之間的線程必須是獨立的。對于低端GPU,程序可能在同一個時刻僅僅只能允許執行一個線程block中的線程,而對于高端GPU,能夠允許同一個時刻多個線程block中線程被同時調度。CUDA系統中,存在幾種不同類型的內存,這些內存之間的對比如表1所示。對于這些內存的容量來講,紋理內存和全局內存要比其他類型的內存大。受限于容量小的約束,共享內存和寄存器一般用來做緩存。紋理內存之所以快的原因是因為其存在相應的緩存。這些可讀的內存一般用來存儲程序中的不變的數據。表1內存位置讀寫操作速度訪問性GPU寄存器GPU芯片上可讀可寫◎◎◎◎◎線程內部局部內存板上內存可讀可寫◎◎線程內部常量內存板上內存只讀◎◎◎線程Grid紋理內存板上內存只讀◎◎◎線程Grid全局內存板上內存可讀可寫◎◎線程Grid共享內存GPU芯片上可讀可寫◎◎◎◎線程block對于上面所述的利用CUDA來優化Ceph連接的這一塊,對于節點的讀請求和寫請求,分別實現對應的kernel函數。這些kernel函數執行是并發執行的,之間不存在過多的同步操作。在上述實施例的基礎上,本發明所提供的分布式存儲系統的實現方法,在通過圖形處理器執行所述寫線程以及所述讀線程,以實現并行化處理之后還包括:將處理的結果存放到全局內存中,供后續模塊函數執行。下面對本發明實施例提供的分布式存儲系統的實現裝置進行介紹,下文描述的分布式存儲系統的實現裝置與上文描述的分布式存儲系統的實現方法可相互對應參照。圖2為本發明實施例提供的分布式存儲系統的實現裝置的結構框圖,參照圖2分布式存儲系統的實現裝置可以包括:讀寫請求接收模塊100,用于接收用戶發送的讀寫請求;生成模塊200,用于生成對應的寫線程以及讀線程,分別用來執行讀網絡數據和寫網絡數據;映射模塊300,用于采用統一計算設備架構將數據元素映射到并行處理線程進行加速計算;處理模塊400,用于通過圖形處理器執行所述寫線程以及所述讀線程,以實現并行化處理。作為一種具體實施方式,本發明所提供的分布式存儲系統的實現裝置還可以進一步包括:存放模塊,用于在通過圖形處理器執行所述寫線程以及所述讀線程,以實現并行化處理之后,將處理的結果存放到全局內存中,供后續模塊函數執行。進一步地,映射模塊可以具體用于:采用所述統一計算設備架構對應的kernel函數并發執行節點的讀請求和寫請求。在上述實施例的基礎上,所述處理模塊具體用于:通過所述圖形處理器在同一時刻并發處理多個線程。本實施例的分布式存儲系統的實現裝置用于實現前述的分布式存儲系統的實現方法,因此分布式存儲系統的實現裝置中的具體實施方式可見前文中的分布式存儲系統的實現方法的實施例部分,例如,讀寫請求接收模塊100,生成模塊200,映射模塊300,處理模塊400,分別用于實現上述分布式存儲系統的實現方法中步驟101,102,103和104,所以,其具體實施方式可以參照相應的各個部分實施例的描述,在此不再贅述。本發明所提供的分布式存儲系統的實現裝置,通過接收用戶發送的讀寫請求;生成對應的寫線程以及讀線程,分別用來執行讀網絡數據和寫網絡數據;采用統一計算設備架構將數據元素映射到并行處理線程進行加速計算;通過圖形處理器執行寫線程以及讀線程,以實現并行化處理。Ceph分布式系統的實現模塊具備很高的并行度,本發明所提供的分布式存儲系統的實現裝置,基于GPU優化Ceph系統,能夠分擔CPU計算任務,使節點達到更高的計算速度。此外,GPU相對于CPU有價格上的優勢,能夠降低分布式存儲系統的實現成本。基于CUDA對ceph系統進行加速,這是基于CUDA和ceph特性而決定的。使用CUDA來進行計算工作,相比于CPU來講,主要優點有:1.CUDA具備更大的緩存和更多的執行單元,而對應的成本確低廉的多。舉例來講,GTX550具備1G的顯存,具備192個流處理器,Inteli56500是4核。然而價格上來講,GTX550的價格是149元,而后者的價格卻是1200元。做為一種分布式存儲系統,Ceph內部實現具備很高的并行度,使用CUDA提供的編程接口,對系統進行并行化處理。以GTX550加速上述所說的實驗平臺為例,理論上來講,最優的情況下,能夠加速192倍,實際場景下一般能夠達到最優效果的10%-20%,也就是計算能力提升了20多倍,而花費的硬件采購成本僅僅是采用上述所說CPU的價格的13%。由上可知,基于CUDA對現有的ceph系統進行加速,具備十分誘人的市場前景。本說明書中各個實施例采用遞進的方式描述,每個實施例重點說明的都是與其它實施例的不同之處,各個實施例之間相同或相似部分互相參見即可。對于實施例公開的裝置而言,由于其與實施例公開的方法相對應,所以描述的比較簡單,相關之處參見方法部分說明即可。專業人員還可以進一步意識到,結合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、計算機軟件或者二者的結合來實現,為了清楚地說明硬件和軟件的可互換性,在上述說明中已經按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執行,取決于技術方案的特定應用和設計約束條件。專業技術人員可以對每個特定的應用來使用不同方法來實現所描述的功能,但是這種實現不應認為超出本發明的范圍。結合本文中所公開的實施例描述的方法或算法的步驟可以直接用硬件、處理器執行的軟件模塊,或者二者的結合來實施。軟件模塊可以置于隨機存儲器(RAM)、內存、只讀存儲器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤、可移動磁盤、CD-ROM、或
技術領域:
內所公知的任意其它形式的存儲介質中。以上對本發明所提供的分布式存儲系統的實現方法以及裝置進行了詳細介紹。本文中應用了具體個例對本發明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發明的方法及其核心思想。應當指出,對于本
技術領域:
的普通技術人員來說,在不脫離本發明原理的前提下,還可以對本發明進行若干改進和修飾,這些改進和修飾也落入本發明權利要求的保護范圍內。當前第1頁1 2 3