TWI777219B - 分散式存儲方法、伺服器及存儲介質 - Google Patents
分散式存儲方法、伺服器及存儲介質 Download PDFInfo
- Publication number
- TWI777219B TWI777219B TW109127443A TW109127443A TWI777219B TW I777219 B TWI777219 B TW I777219B TW 109127443 A TW109127443 A TW 109127443A TW 109127443 A TW109127443 A TW 109127443A TW I777219 B TWI777219 B TW I777219B
- Authority
- TW
- Taiwan
- Prior art keywords
- storage
- distributed
- file
- user
- server
- Prior art date
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本發明提供一種分散式存儲方法,包括:獲取用戶待存儲的檔;對待存儲的所述檔進行分佈處理;確定所述用戶的存儲需求,其中,所述存儲需求至少包括檔存儲及物件存儲;當確定所述用戶的存儲需求為檔存儲時,將經過分佈處理的所述檔藉由分佈存儲單元存儲至複數個存儲區;及當確定所述用戶的存儲需求為物件存儲時,將經過分佈處理的所述檔藉由物件存儲單元及所述分佈存儲單元存儲至所述複數個存儲區。本發明還提供一種伺服器及存儲介質。
Description
本發明涉及資料存儲技術領域,尤其涉及一種分散式存儲方法、伺服器及存儲介質。
隨著資料存儲技術的發展,目前有多種存儲方式供用戶選擇,常見的包括文檔存儲和物件存儲。文檔存儲一般體現形式是目錄和文檔,資料以文檔的方式存儲和訪問,按照目錄結構進行組織,例如NFS,CIFS,ftp等文檔存儲方式。物件存儲一般體現形式是一個通用識別碼,資料和中繼資料打包在一起作為一個整體物件存在一個大型的存儲資源裡,例如Amazon S3。然而,文檔存儲系統通常不易擴展,不便於存儲大量文檔或大容量的文檔。物件存儲系統在資料同步時可能存在一定時間的延遲或錯誤,且成本較高。
有鑒於此,有必要提供一種分散式存儲方法、伺服器及存儲介質,可以相容檔存儲和物件存儲,便於用戶根據實際需求選擇合適的存儲方式。
本發明的第一方面提供一種分散式存儲方法,包括:獲取所述用戶待存儲的檔;對待存儲的所述檔進行分佈處理;
確定所述用戶的存儲需求,其中,所述存儲需求至少包括檔存儲及物件存儲;當確定所述用戶的存儲需求為檔存儲時,將經過分佈處理的所述檔藉由分佈存儲單元存儲至複數個存儲區;及當確定所述用戶的存儲需求為物件存儲時,將經過分佈處理的所述檔藉由物件存儲單元及所述分佈存儲單元存儲至所述複數個存儲區。
優選地,所述對待存儲的所述檔進行分佈處理包括:對所述檔的資料在高速記憶體中進行緩存;預讀所述檔的目錄項及中繼資料資訊;創建複數個分散式複製卷;及將緩存的所述檔的資料分佈到所述複數個分散式複製卷。
優選地,所述將經過分佈處理的所述檔藉由分佈存儲單元存儲至複數個存儲區包括:將所述複數個分散式複製卷分別藉由一用戶端介面及所述分佈存儲單元存儲至所述存儲區的存儲伺服器中。
優選地,所述將經過分佈處理的所述檔藉由物件存儲單元及所述分佈存儲單元存儲至所述複數個存儲區包括:藉由所述物件存儲單元生成與用戶端介面傳送的所述分散式複製卷對應的中繼資料;及將所述分散式複製卷及對應的所述中繼資料藉由所述分佈存儲單元存儲至所述存儲區的存儲伺服器中。
優選地,所述將經過分佈處理的所述檔藉由物件存儲單元及所述分佈存儲單元存儲至所述複數個存儲區還包括:
基於代理單元將所述用戶端介面傳送的所述複數個分散式複製卷分別傳送至所述物件存儲單元,其中,所述代理單元用於提供反向代理及負載均衡。
優選地,所述確定所述用戶的存儲需求包括:當用戶登入分散式存儲程式時,識別用戶身份,並根據識別出的所述用戶身份確定所述用戶的存儲需求。
優選地,所述確定所述用戶的存儲需求包括:判斷獲取的所述檔的容量是否大於預設值;當判定獲取的所述檔的容量大於預設值時,確定所述用戶的存儲需求為物件存儲;及當判定獲取的所述檔的容量小於或等於預設值時,確定所述用戶的存儲需求為檔存儲。
優選地,所述方法還包括:在一子伺服器中設置反向代理而將所述子伺服器部署為代理單元;對至少兩個子伺服器進行磁區分割而部署形成所述複數個存儲區;及在每一存儲區中設置所述物件存儲單元。
本發明的第二方面提供一種伺服器,所述伺服器包括:處理器;以及記憶體,所述記憶體中存儲有複數個程式模組,所述複數個程式模組由所述處理器載入並執行上述的分散式存儲方法。
本發明的第三方面提供一種電腦可讀存儲介質,其上存儲有至少一條電腦指令,所述指令由處理器並載入執行上述的分散式存儲方法。
上述分散式存儲方法、伺服器及存儲介質可以相容檔存儲和物件存儲,便於用戶根據實際需求選擇合適的存儲方式,使得具有檔存儲需求的用戶或用戶在有檔存儲需求時進行檔存儲以減少成本,使得具有物件存儲需求的用戶或用戶在有物件存儲需求時進行物件存儲以提高資料存儲的擴展性。
1:伺服器
10:處理器
100:分散式存儲系統
101:部署模組
102:獲取模組
103:處理模組
104:確定模組
105:存儲模組
20:記憶體
30:電腦程式
40:分佈存儲單元
50:物件存儲單元
60:存儲區
601:存儲伺服器
70:代理單元
2:用戶端
S401-S405:步驟
圖1是本發明較佳實施方式提供的分散式存儲方法的應用環境架構示意圖。
圖2是本發明較佳實施方式提供的伺服器的結構示意圖。
圖3是本發明較佳實施方式提供的分散式存儲系統的結構示意圖。
圖4是本發明較佳實施方式提供的分散式存儲方法的流程圖。
為了能夠更清楚地理解本發明的上述目的、特徵和優點,下面結合附圖和具體實施例對本發明進行詳細描述。需要說明的是,在不衝突的情況下,本申請的實施例及實施例中的特徵可以相互組合。
在下面的描述中闡述了很多具體細節以便於充分理解本發明,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。
除非另有定義,本文所使用的所有的技術和科學術語與屬於本發明的技術領域的技術人員通常理解的含義相同。本文中在本發明的說明書中所使用的術語只是為了描述具體的實施例的目的,不是旨在於限制本發明。
請參閱圖1所示,為本發明較佳實施方式提供的分散式存儲方法的應用環境架構示意圖。
本發明中的分散式存儲方法應用在伺服器1中,所述伺服器1與至少一個用戶端2藉由網路建立通訊連接。所述網路可以是有線網路,也可以是無線網路,例如無線電、無線保真(Wireless Fidelity,WIFI)、蜂窩、衛星、廣播等。
所述伺服器1安裝有分散式存儲程式。所述伺服器1可以是單一的伺服器、伺服器集群或雲端伺服器等。
所述用戶端2可以是智慧手機或個人電腦等。所述用戶端2安裝有分散式存儲系統對應的分散式存儲程式,用於供用戶訪問而進行檔的存儲。
請參閱圖2所示,為本發明伺服器較佳實施方式的結構示意圖。
所述伺服器1包括,但不僅限於,處理器10、記憶體20、存儲在所述記憶體20中並可在所述處理器10上運行的電腦程式30、複數個分佈存儲單元40、複數個物件存儲單元50、複數個存儲區60及代理單元70。所述電腦程式30為分散式存儲程式。所述處理器10執行所述電腦程式30時實現分散式存儲方法中的步驟,例如圖4所示的步驟S401~S405。或者,所述處理器10執行所述電腦程式30時實現分散式存儲系統中各模組/單元的功能,例如圖3中的模組101-105。
示例性的,所述電腦程式30可以被分割成一個或複數個模組/單元,所述一個或者複數個模組/單元被存儲在所述記憶體20中,並由所述處理器10執行,以完成本發明。所述一個或複數個模組/單元可以是能夠完成特定功能的一系列電腦程式指令段,所述指令段用於描述所述電腦程式30在所述伺服器1中的執行過程。例如,所述電腦程式30可以被分割成圖3中的部署模組101、獲
取模組102、處理模組103、確定模組104及存儲模組105。各模組具體功能參見分散式存儲系統實施例中各模組的功能。
本領域技術人員可以理解,所述示意圖僅僅是伺服器1的示例,並不構成對伺服器1的限定,可以包括比圖示更多或更少的部件,或者組合某些部件,或者不同的部件,例如所述伺服器1還可以包括輸入輸出設備、網路接入設備、匯流排等。
所稱處理器10可以是中央處理單元(Central Processing Unit,CPU),還可以是其他通用處理器、數位訊號處理器(Digital Signal Processor,DSP)、專用積體電路(Application Specific Integrated Circuit,ASIC)、現成可程式設計閘陣列(Field-Programmable Gate Array,FPGA)或者其他可程式設計邏輯器件、分立門或者電晶體邏輯器件、分立硬體元件等。通用處理器可以是微處理器或者所述處理器10也可以是任何常規的處理器等,所述處理器10是所述伺服器1的控制中心,利用各種介面和線路連接整個伺服器1的各個部分。
所述記憶體20可用於存儲所述電腦程式30和/或模組/單元,所述處理器10藉由運行或執行存儲在所述記憶體20內的電腦程式和/或模組/單元,以及調用存儲在記憶體20內的資料,實現所述伺服器1的各種功能。所述記憶體20可主要包括存儲程式區和存儲資料區,其中,存儲程式區可存儲作業系統、至少一個功能所需的應用程式(比如聲音播放功能、圖像播放功能等)等;存儲資料區可存儲根據伺服器1的使用所創建的資料(比如音訊資料、電話本等)等。此外,記憶體20可以包括高速隨機存取記憶體,還可以包括非易失性記憶體,例如硬碟、記憶體、插接式硬碟,智慧存儲卡(Smart Media Card,SMC),安全數位(Secure Digital,SD)卡,快閃記憶體卡(Flash Card)、至少一個磁碟記憶體件、快閃記憶體器件、或其他易失性固態記憶體件。
在本實施方式中,所述分佈存儲單元40為分散式存儲介面,用於藉由分散式存儲服務將檔存儲至所述存儲區60。
在本實施方式中,所述物件存儲單元50為物件存儲介面,用於藉由物件存儲服務將檔存儲至所述存儲區60。
在本實施方式中,所述存儲區60包括至少一個存儲伺服器601,用於存儲所述檔。在其他實施方式中,所述存儲區60也可以包括所述存儲伺服器601的至少一個磁區。
在本實施方式中,所述代理單元70為代理伺服器,用於在對所述檔執行物件存儲時提供反向代理及負載均衡。
在本實施方式中,每一存儲區60設置一分佈存儲單元40及一物件存儲單元50。所述代理單元70藉由局域網與所述複數個記憶體60通訊連接。
請參閱圖3所示,本發明分散式存儲系統較佳實施方式的功能模組圖。
在一些實施方式中,分散式存儲系統100運行於所述伺服器1中。所述分散式存儲系統100可以包括複數個由程式碼段所組成的功能模組。所述分散式存儲系統100中的各個程式段的程式碼可以存儲於伺服器1的記憶體20中,並由所述至少一個處理器10所執行,以實現分散式存儲功能。
本實施方式中,分散式存儲系統100根據其所執行的功能,可以被劃分為複數個功能模組。參閱圖3所示,所述功能模組可以包括部署模組101、獲取模組102、處理模組103、確定模組104及存儲模組105。本發明所稱的模組是指一種能夠被至少一個處理器所執行並且能夠完成固定功能的一系列電腦程式段,其存儲在記憶體20中。可以理解的是,在其他實施例中,上述模組也可為固化於所述處理器10中的程式指令或固件(firmware)。
所述部署模組101用於在一子伺服器中設置反向代理而將所述子伺服器部署為所述代理單元70。
在本實施方式中,所述代理單元70可以接收來自所述用戶端2的網路訪問連接請求,然後將所述網路訪問連接請求轉發給所述存儲區60的存儲伺服器601,並將所述存儲伺服器601處理的結果返回給所述用戶端2,以避免所述存儲區60中的所述物件存儲單元50出現單點失效的問題。
在本實施方式中,所述代理單元70還安裝有Linux distribution和Dokcer Engine的運行環境,用於提供分散式檔處理及管理功能。
所述部署模組101還對至少兩個子伺服器進行磁區分割而部署形成所述複數個存儲區60。
在本實施方式中,所述存儲區60的存儲伺服器601內分割有複數個磁區,從而便於在所述存儲伺服器601內部實現分散式的資料存儲。在其他實施方式中,所述存儲區60也可以包括所述存儲伺服器601的部分磁區,從而在不同存儲區60之間實現分散式的資料存儲,以減少硬體成本。需要說明的是,所述存儲伺服器601中也安裝有Linux distribution和Dokcer Engine的運行環境,作為所述分佈存儲單元40,用於提供分散式存儲服務。
在本實施方式中,所述部署模組101設置所述存儲伺服器601的讀取緩存容量(performance.cache-size)及I/O操作執行緒數量(performance.io-thread-count),以滿足物件存儲服務。其中,所述讀取緩存容量為512MB,所述I/O操作執行緒數量為64。
所述部署模組101還用於在每一存儲區60中設置所述物件存儲單元50。
在本實施方式中,所述物件存儲單元50為Minio服務介面。所述部署模組101將預先定製及打包完成的Minio Docker Images導入所述存儲伺服器601的設定檔中,以設置所述物件存儲單元50。
需要說明的是,為正確存儲和讀取檔,所述部署模組101對每一物件存儲單元50設置相同的認證權杖(Credential Token),並且保證每個存儲伺服器601的掛載點(Mount Point)的一致性。
所述獲取模組102用於獲取用戶待存儲的檔。
在本實施方式中,當所述用戶可以在所述用戶端2上藉由帳號及密碼登入分散式存儲程式,並將所述待存儲的檔上傳至所述分散式存儲程式時,所述獲取模組102獲取所述待存儲的檔。在其他實施方式中,所述用戶也可以在所述用戶端2上使用帳號及密碼並藉由web網頁的方式登入所述分散式存儲程式,並藉由所述web網頁將所述待存儲的檔上傳至所述分散式存儲程式。
在本實施方式中,所述用戶端2包括複數個用戶端介面,用於與所述存儲區60通訊連接。其中,用戶端介面的數量與所述存儲區60的數量相同。
所述處理模組103用於對待存儲的所述檔進行分佈處理。
具體的,所述處理模組103對所述檔的資料在高速記憶體中進行緩存,預讀所述檔的目錄項及中繼資料資訊,並創建複數個分散式複製卷,然後將緩存的所述檔的資料分佈到所述複數個分散式複製卷,從而完成所述檔的分佈處理。
所述確定模組104用於確定所述用戶的存儲需求。
在本實施方式中,所述存儲需求至少包括檔存儲及物件存儲。其中,基於檔存儲的資料可以直接讀取和寫入,基於物件存儲的資料讀寫操作和中繼資料分離,先讀取中繼資料確定資料位置,再從確定的位置進行資料的讀寫操作。
在本實施方式中,當用戶登入所述分散式存儲程式時,所述確定模組104識別用戶身份,並根據識別出的用戶身份確定所述用戶的存儲需求。
具體的,所述分散式存儲系統100中預先存儲有用戶身份與存儲需求的對應關係,所述確定模組104藉由用戶登入所述分散式存儲程式的帳號識別所述用戶身份,並根據識別出的用戶身份與預先存儲的用戶身份與存儲需求的對應關係確定所述用戶的存儲需求。例如,所述用戶身份可以是工作崗位,用戶身份與存儲需求的對應關係具體包括:工作崗位為基礎服務人員及系統管理人員對應的存儲需求為檔存儲,工作崗位為系統開發人員對應的存儲需求為物件存儲。如此,當所述確定模組104確定所述用戶的身份為基礎服務人員或系統管理人員時,確定所述用戶的存儲需求為檔存儲。當所述確定模組104確定所述用戶的身份為系統開發人員時,確定所述用戶的存儲需求為物件存儲。
在其他實施方式中,所述確定模組104判斷獲取的所述檔的容量是否大於預設值。當判定獲取的所述檔的容量大於預設值時,確定所述用戶的存儲需求為物件存儲。當判定獲取的所述檔的容量小於或等於預設值時,確定所述用戶的存儲需求為檔存儲。其中,所述預設值為500GB。可以理解的是,所述預設值也可以根據需求設置為其他合適的數值。
所述存儲模組105用於當確定用戶的存儲需求為檔存儲時,將經過分佈處理的所述檔藉由所述分佈存儲單元40存儲至所述複數個存儲區60。
在本實施方式中,所述存儲模組105將存儲有所述檔的資料的所述複數個分散式複製卷分別藉由一用戶端介面及所述分佈存儲單元40分別存儲至每一存儲區60的存儲伺服器601中。
具體的,當所述檔的資料分佈到所述分散式複製卷時,所述存儲模組105將所述分散式複製卷藉由所述用戶端介面傳送至與所述用戶端2通訊連
接的存儲伺服器601中,並藉由所述存儲伺服器601中的分佈存儲單元40所提供的分佈存儲服務而實現所述檔的分散式存儲。
所述存儲模組105用於還當確定所述用戶的存儲需求為物件存儲時,將經過分佈處理的所述檔藉由物件存儲單元50及所述分佈存儲單元40存儲至所述複數個存儲區60。
在本實施方式中,所述存儲模組105藉由所述物件存儲單元50創建與所述用戶端介面傳送的所述分散式複製卷對應的中繼資料,將所述分散式複製卷及對應的所述中繼資料藉由所述分佈存儲單元40存儲至所述存儲區60的存儲伺服器601中。其中,所述中繼資料包括所述分散式複製卷中每個資料塊所存儲的位置。所述中繼資料和所述分散式複製卷中的資料塊可以分開存儲,藉由讀取中繼資料,可以找到所有的資料塊,並可以同時對資料塊進行讀取。
在本實施方式中,所述存儲模組105基於所述代理單元70提供的反向代理服務將所述分散式複製卷傳送至所述存儲伺服器601中,並藉由所述存儲伺服器601中的物件存儲單元50所提供的物件存儲服務及分佈存儲單元40所提供的分佈存儲服務而實現所述檔的物件存儲。
在本實施方式中,所述代理單元70提供的反向代理使得在一物件存儲單元50無法正常運行時,可以藉由其他物件存儲單元50進行檔資料的傳輸,從而提高資料傳輸的穩定性,有效解決單點失效的問題。
在本實施方式中,所述存儲模組105還藉由所述代理單元70對所述用戶端2傳送的所述複數個分散式複製卷進行負載均衡。即,所述代理單元70可以根據每一存儲區60的當前存儲容量或剩餘存儲容量對所述複數個分散式複製卷的存儲位置進行調整,從而實現資料存儲的負載均衡。
請參閱圖4所示,是本發明提供的分散式存儲方法的流程圖。根據不同的需求,所述流程圖中步驟的順序可以改變,某些步驟可以省略。
步驟S401,獲取用戶待存儲的檔。
在本實施方式中,當所述用戶可以在所述用戶端2上藉由帳號及密碼登入分散式存儲程式,並將所述待存儲的檔上傳至所述分散式存儲程式時,獲取所述待存儲的檔。在其他實施方式中,所述用戶也可以在所述用戶端2上使用帳號及密碼並藉由web網頁的方式登入所述分散式存儲程式,並藉由所述web網頁將所述待存儲的檔上傳至所述分散式存儲程式。
在本實施方式中,所述用戶端2包括複數個用戶端介面,用於與所述存儲區60通訊連接。其中,用戶端介面的數量與所述存儲區60的數量相同。
步驟S402,對待存儲的所述檔進行分佈處理。
具體的,所述步驟S402包括對所述檔的資料在高速記憶體中進行緩存,預讀所述檔的目錄項及中繼資料資訊,並創建複數個分散式複製卷,然後將緩存的所述檔的資料分佈到所述複數個分散式複製卷,從而完成所述檔的分佈處理。
步驟S403,確定所述用戶的存儲需求。
在本實施方式中,所述存儲需求至少包括檔存儲及物件存儲。其中,基於檔存儲的資料可以直接讀取和寫入,基於物件存儲的資料讀寫操作和中繼資料分離,先讀取中繼資料確定資料位置,再從確定的位置進行資料的讀寫操作。
在本實施方式中,所述步驟S403具體包括當用戶登入所述分散式存儲程式時,識別用戶身份,並根據識別出的用戶身份確定所述用戶的存儲需求。
具體的,所述分散式存儲系統100中預先存儲有用戶身份與存儲需求的對應關係,藉由用戶登入所述分散式存儲程式的帳號識別所述用戶身份,並根據識別出的用戶身份與預先存儲的用戶身份與存儲需求的對應關係確
定所述用戶的存儲需求。例如,所述用戶身份可以是工作崗位,用戶身份與存儲需求的對應關係具體包括:工作崗位為基礎服務人員及系統管理人員對應的存儲需求為檔存儲,工作崗位為系統開發人員對應的存儲需求為物件存儲。如此,當確定所述用戶的身份為基礎服務人員或系統管理人員時,確定所述用戶的存儲需求為檔存儲。當確定所述用戶的身份為系統開發人員時,確定所述用戶的存儲需求為物件存儲。
在其他實施方式中,所述步驟S403具體包括判斷獲取的所述檔的容量是否大於預設值。當判定獲取的所述檔的容量大於預設值時,確定所述用戶的存儲需求為物件存儲。當判定獲取的所述檔的容量小於或等於預設值時,確定所述用戶的存儲需求為檔存儲。其中,所述預設值為500GB。可以理解的是,所述預設值也可以根據需求設置為其他合適的數值。
步驟S404,確定所述用戶的存儲需求為檔存儲時,將經過分佈處理的所述檔藉由所述分佈存儲單元40存儲至複數個存儲區60。
在本實施方式中,所述步驟S404包括將存儲有所述檔的資料的所述複數個分散式複製卷分別藉由一用戶端介面及所述分佈存儲單元40分別存儲至每一存儲區60的存儲伺服器601中。
具體的,當所述檔的資料分佈到所述分散式複製卷時,將所述分散式複製卷藉由所述用戶端介面傳送至與所述用戶端2通訊連接的存儲伺服器601中,並藉由所述存儲伺服器601中的分佈存儲單元40所提供的分佈存儲服務而實現所述檔的分散式存儲。
步驟S405,當確定用戶的存儲需求為物件存儲時,將經過分佈處理的所述檔藉由所述物件存儲單元50及所述分佈存儲單元40存儲至所述複數個存儲區60。
在本實施方式中,所述步驟S405具體包括藉由所述物件存儲單元50創建與用戶端介面傳送的所述分散式複製卷對應的中繼資料,將所述分散式複製卷及對應的所述中繼資料藉由所述分佈存儲單元40存儲至所述存儲區60的存儲伺服器601中。其中,所述中繼資料包括所述分散式複製卷中每個資料塊所存儲的位置。所述中繼資料和所述分散式複製卷中的資料塊可以分開存儲,藉由讀取中繼資料,可以找到所有的資料塊,並可以同時對資料塊進行讀取。
在本實施方式中,所述步驟S405還包括基於所述代理單元70提供的反向代理服務將所述分散式複製卷傳送至與所述用戶端2通訊連接的存儲伺服器601中,並藉由所述存儲伺服器601中的物件存儲單元50所提供的物件存儲服務及分佈存儲單元40所提供的分佈存儲服務而實現所述檔的物件存儲。
在本實施方式中,所述代理單元70提供的反向代理使得在一物件存儲單元50無法正常運行時,藉由其他物件存儲單元50進行檔資料的傳輸,從而提高資料傳輸的穩定性,有效解決單點失效的問題。
在本實施方式中,藉由所述代理單元70對所述用戶端2傳送的所述複數個分散式複製卷進行負載均衡。即,所述代理單元70可以根據每一存儲區60的當前存儲容量或剩餘存儲容量對所述複數個分散式複製卷的存儲位置進行調整,從而實現資料存儲的負載均衡。
進一步地,所述方法還可包括以下步驟:在一子伺服器中設置反向代理而將所述子伺服器部署為所述代理單元70,對至少兩個子伺服器進行磁區分割而部署形成所述複數個存儲區60,及在每一存儲區60中設置所述物件存儲單元50。
在本實施方式中,所述代理單元70可以接收來自所述用戶端2的網路訪問連接請求,然後將所述網路訪問連接請求轉發給所述存儲區60的存儲伺
服器601,並將所述存儲伺服器601處理的結果返回給所述用戶端2,以避免所述存儲區60中的所述物件存儲單元50出現單點失效的問題。
在本實施方式中,所述代理單元70還安裝有Linux distribution和Dokcer Engine的運行環境,用於提供分散式檔處理及管理功能。
在本實施方式中,所述存儲區60的存儲伺服器601內分割有複數個磁區,從而便於在所述存儲伺服器601內部實現分散式的資料存儲。在其他實施方式中,所述存儲區60也可以包括所述存儲伺服器601的部分磁區,從而在不同存儲區60之間實現分散式的資料存儲,以減少硬體成本。需要說明的是,所述存儲伺服器601中也安裝有Linux distribution和Dokcer Engine的運行環境,作為所述分佈存儲單元40,用於提供分散式存儲服務。
在本實施方式中,所述方法還包括設置所述存儲伺服器601的讀取緩存容量(performance.cache-size)及I/O操作執行緒數量(performance.io-thread-count),以滿足物件存儲服務。其中,所述讀取緩存容量為512MB,所述I/O操作執行緒數量為64。
在本實施方式中,所述物件存儲單元50為Minio服務介面。所述方法包括將預先定製及打包完成的Minio Docker Images導入所述存儲伺服器601的設定檔中,以設置所述物件存儲單元50。
需要說明的是,為正確存儲和讀取檔,每一物件存儲單元50設置相同的認證權杖(Credential Token),並且保證每個存儲伺服器601的掛載點(Mount Point)的一致性。
所述伺服器1集成的模組/單元如果以軟體功能單元的形式實現並作為獨立的產品銷售或使用時,可以存儲在一個電腦可讀取存儲介質中。基於這樣的理解,本發明實現上述實施例方法中的全部或部分流程,也可以藉由電腦程式來指令相關的硬體來完成,所述的電腦程式可存儲於一電腦可讀存儲介
質中,所述電腦程式在被處理器執行時,可實現上述各個方法實施例的步驟。其中,所述電腦程式包括電腦程式代碼,所述電腦程式代碼可以為原始程式碼形式、物件代碼形式、可執行檔或某些中間形式等。所述電腦可讀介質可以包括:能夠攜帶所述電腦程式代碼的任何實體或裝置。需要說明的是,所述電腦可讀介質包含的內容可以根據司法管轄區內立法和專利實踐的要求進行適當的增減,例如在某些司法管轄區,根據立法和專利實踐,電腦可讀介質不包括電載波信號和電信信號。
本發明提供的分散式存儲方法、伺服器及存儲介質可以相容檔存儲和物件存儲,便於用戶根據實際需求選擇合適的存儲方式,使得具有檔存儲需求的用戶或用戶在有檔存儲需求時進行檔存儲以減少成本,使得具有物件存儲需求的用戶或用戶在有物件存儲需求時進行物件存儲以提高資料存儲的擴展性。
對於本領域技術人員而言,顯然本發明不限於上述示範性實施例的細節,而且在不背離本發明的精神或基本特徵的情況下,能夠以其他的具體形式實現本發明。因此,無論從哪一點來看,均應將實施例看作是示範性的,而且是非限制性的,本發明的範圍由所附申請專利範圍而不是上述說明限定,因此旨在將落在申請專利範圍的等同要件的含義和範圍內的所有變化涵括在本發明內。不應將申請專利範圍中的任何附圖標記視為限制所涉及的申請專利範圍。此外,顯然“包括”一詞不排除其他單元或步驟,單數不排除複數。裝置申請專利範圍中陳述的複數個單元或裝置也可以由同一個單元或裝置藉由軟體或者硬體來實現。第一,第二等詞語用來表示名稱,而並不表示任何特定的順序。
綜上所述,本發明符合發明專利要件,爰依法提出專利申請。惟,以上所述者僅為本發明之較佳實施方式,舉凡熟悉本案技藝之人士,於爰依本發明精神所作之等效修飾或變化,皆應涵蓋於以下之申請專利範圍內。
S401-S405:步驟
Claims (9)
- 一種分散式存儲方法,其中,所述方法包括:獲取所述用戶待存儲的檔;對待存儲的所述檔進行分佈處理;確定所述用戶的存儲需求,其中,所述存儲需求至少包括檔存儲及物件存儲,包括:判斷獲取的所述檔的容量是否大於預設值,當判定獲取的所述檔的容量大於預設值時,確定所述用戶的存儲需求為物件存儲,及當判定獲取的所述檔的容量小於或等於預設值時,確定所述用戶的存儲需求為檔存儲;當確定所述用戶的存儲需求為檔存儲時,將經過分佈處理的所述檔藉由分佈存儲單元存儲至複數個存儲區;及當確定所述用戶的存儲需求為物件存儲時,將經過分佈處理的所述檔藉由物件存儲單元及所述分佈存儲單元存儲至所述複數個存儲區。
- 如請求項1所述之分散式存儲方法,其中,所述對待存儲的所述檔進行分佈處理包括:對所述檔的資料在高速記憶體中進行緩存;預讀所述檔的目錄項及中繼資料資訊;創建複數個分散式複製卷;及將緩存的所述檔的資料分佈到所述複數個分散式複製卷。
- 如請求項2所述之分散式存儲方法,其中,所述將經過分佈處理的所述檔藉由分佈存儲單元存儲至複數個存儲區包括:將所述複數個分散式複製卷分別藉由一用戶端介面及所述分佈存儲單元存儲至所述存儲區的存儲伺服器中。
- 如請求項2所述之分散式存儲方法,其中,所述將經過分佈處理的所述檔藉由物件存儲單元及所述分佈存儲單元存儲至所述複數個存儲區包括:藉由所述物件存儲單元創建與用戶端介面傳送的所述分散式複製卷對應的中繼資料;及將所述分散式複製卷及對應的所述中繼資料藉由所述分佈存儲單元存儲至所述存儲區的存儲伺服器中。
- 如請求項4所述之分散式存儲方法,其中,所述將經過分佈處理的所述檔藉由物件存儲單元及所述分佈存儲單元存儲至所述複數個存儲區還包括:基於代理單元將所述用戶端介面傳送的所述複數個分散式複製卷分別傳送至所述物件存儲單元,其中,所述代理單元用於提供反向代理及負載均衡。
- 如請求項1所述之分散式存儲方法,其中,所述確定所述用戶的存儲需求包括:當用戶登入分散式存儲程式時,識別用戶身份,並根據識別出的所述用戶身份確定所述用戶的存儲需求。
- 如請求項1所述之分散式存儲方法,其中,所述方法還包括:在一子伺服器中設置反向代理而將所述子伺服器部署為代理單元;對至少兩個子伺服器進行磁區分割而部署形成所述複數個存儲區;及在每一存儲區中設置所述物件存儲單元。
- 一種伺服器,其中,所述伺服器包括:處理器;以及記憶體,所述記憶體中存儲有複數個程式模組,所述複數個程式模組由所述處理器載入並執行如請求項1至7中任意一項所述之分散式存儲方法。
- 一種電腦可讀存儲介質,其上存儲有至少一條電腦指令,其中,所述指令由處理器載入並執行如請求項1至7中任意一項所述之分散式存儲方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109127443A TWI777219B (zh) | 2020-08-12 | 2020-08-12 | 分散式存儲方法、伺服器及存儲介質 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109127443A TWI777219B (zh) | 2020-08-12 | 2020-08-12 | 分散式存儲方法、伺服器及存儲介質 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202207050A TW202207050A (zh) | 2022-02-16 |
TWI777219B true TWI777219B (zh) | 2022-09-11 |
Family
ID=81323518
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109127443A TWI777219B (zh) | 2020-08-12 | 2020-08-12 | 分散式存儲方法、伺服器及存儲介質 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI777219B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200832136A (en) * | 2006-09-29 | 2008-08-01 | Broadcom Corp | Memory management in a shared memory system |
US20120069131A1 (en) * | 2010-05-28 | 2012-03-22 | Abelow Daniel H | Reality alternate |
TWI578168B (zh) * | 2014-05-09 | 2017-04-11 | 萊芙麥斯公司 | 儲存代理器上之混合型儲存分配 |
CN108322496A (zh) * | 2017-01-17 | 2018-07-24 | 北京京东尚科信息技术有限公司 | 镜像文件分发方法及系统、计算机可读存储介质、电子设备 |
CN109582404A (zh) * | 2017-09-15 | 2019-04-05 | 林劲璋 | 分散式互动界面系统及其操作方法 |
-
2020
- 2020-08-12 TW TW109127443A patent/TWI777219B/zh active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200832136A (en) * | 2006-09-29 | 2008-08-01 | Broadcom Corp | Memory management in a shared memory system |
US20120069131A1 (en) * | 2010-05-28 | 2012-03-22 | Abelow Daniel H | Reality alternate |
TWI578168B (zh) * | 2014-05-09 | 2017-04-11 | 萊芙麥斯公司 | 儲存代理器上之混合型儲存分配 |
CN108322496A (zh) * | 2017-01-17 | 2018-07-24 | 北京京东尚科信息技术有限公司 | 镜像文件分发方法及系统、计算机可读存储介质、电子设备 |
CN109582404A (zh) * | 2017-09-15 | 2019-04-05 | 林劲璋 | 分散式互动界面系统及其操作方法 |
Also Published As
Publication number | Publication date |
---|---|
TW202207050A (zh) | 2022-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10782880B2 (en) | Apparatus and method for providing storage for providing cloud services | |
US8255420B2 (en) | Distributed storage | |
US11093148B1 (en) | Accelerated volumes | |
WO2016180055A1 (zh) | 数据存储、读取的方法、装置及系统 | |
US10579597B1 (en) | Data-tiering service with multiple cold tier quality of service levels | |
WO2021213281A1 (zh) | 数据读取方法和系统 | |
CN111225003B (zh) | 一种nfs节点配置方法和装置 | |
CN117008818A (zh) | 数据处理方法、装置、计算机设备和计算机可读存储介质 | |
CN114466083B (zh) | 支持协议互通的数据存储系统 | |
CN113420005A (zh) | 数据存储方法、系统、电子设备及计算机存储介质 | |
CN112866406B (zh) | 一种数据存储方法、系统、装置、设备及存储介质 | |
US20190121899A1 (en) | Apparatus and method for managing integrated storage | |
CN113992657A (zh) | 一种基于云平台的共享存储的搭建方法、设备及介质 | |
TWI777219B (zh) | 分散式存儲方法、伺服器及存儲介質 | |
KR20140036886A (ko) | 메타 정보 기반의 클라우드 서비스 방법 | |
EP2686791B1 (en) | Variants of files in a file system | |
CN111813346A (zh) | 基于云平台搭建Ceph分布式存储的方法、系统、设备及介质 | |
EP4379543A1 (en) | Cloud desktop data migration method, service node, management node, server, electronic device, and computer-readable storage medium | |
CN112130747A (zh) | 分布式对象存储系统及数据读写方法 | |
CN113590029B (zh) | 一种磁盘空间分配方法、系统、存储介质及设备 | |
CN114077578A (zh) | 分布式存储方法、服务器及存储介质 | |
CN115827745A (zh) | 内存数据库集群的实现方法、装置及内存数据库集群 | |
CN113726838A (zh) | 文件传输方法、装置、设备及存储介质 | |
CN115525618A (zh) | 存储集群、数据存储方法、系统及存储介质 | |
CN112861188A (zh) | 用于多集群的数据汇集系统和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GD4A | Issue of patent certificate for granted invention patent |