雲作業系統分布式存儲中文件存儲方法
2023-10-19 03:03:37 2
專利名稱:雲作業系統分布式存儲中文件存儲方法
技術領域:
本發明涉及雲計算存儲技術領域,特別是雲作業系統分布式存儲中文件存儲方法。
背景技術:
雲作業系統能對包括處理器、存儲、網絡在內的硬體資源進行統一管理。在當前的雲作業系統應用部署中,數據存儲主要有兩種用途(I)用戶接口存儲,即提供給用戶所使用的存儲;(2)系統所需存儲,例如虛擬機鏡像存儲。由於數據存儲是關鍵性能點,通常會採用分布式存儲架構。在雲作業系統管理的分布式存儲中,通常會將文件分成多個塊,然後將每個分塊生成多個副本,並分散存放在數據節點上。在定位到存儲副本的數據節點時,通常會依賴元數據伺服器進行分塊布局的管理,即在元數據伺服器產生並存儲分塊與該分塊對應到的數 據節點的映射關係。當讀寫文件時,訪問流程通常首先會訪問元數據伺服器,獲取該文件的布局,然後再從相應的數據節點獲取各分塊,最後「組裝」成整個文件。使用文件布局使文件讀寫效率低,文件讀寫都需要經過元數據伺服器產生或獲取文件布局;再根據文件布局,進行數據塊的讀寫。
發明內容
本發明解決的技術問題在於克服文件布局的缺陷,使文件讀寫流程無需涉及文件布局的雲作業系統分布式存儲中文件存儲方法。本發明解決上述技術問題的技術方案是包括以下步驟,對基礎設施記性分層編號,基於一個典型的IDC機房,對存儲基礎設施進行分層次的編號設置;第一層是行,行與機房中一排機櫃相對應,一行對應多個機櫃,同時一個機房可有多行;第二層是行中的機櫃,每個機櫃在特定的行中進行編號;第三層是機櫃中硬碟,每個硬碟都在特定的機櫃中,硬碟編號的方式可採用順序編號的方式;將文件分塊;基於副本放置策略,形成文件塊的副本放置規則;按照副本放置規則,對副本進行函數映射。讀取函數映射的具體流程第I步,確定需要進行函數映射的分塊,然後進行後續的分層次的函數映射;第2步,第一層進行行的映射,即確定分塊將要存放到的行,在進行第一層函數映射時,可能遇到衝突,即映射到的行已經佔滿或失效,此時,需要進行重新映射以避免衝
關;第3步,第二層進行行中機櫃的映射,即確定分塊將要存放到的機櫃號,在進行第二層函數映射時,可能遇到衝突,即映射到的機櫃已經佔滿或失效,此時,需要進行重新映射以避免衝突;
第4步,第三層進行機櫃中硬碟號的映射,即確定分塊將要存放到的硬碟號。在進行函數映射時,可能遇到衝突,即映射到的硬碟已經佔滿或失效,此時,需要進行重新映射以避免衝關。本發明面向雲作業系統的分布式存儲,針對文件布局所引發的數據讀寫效率低的問題,提出一種用函數映射代替文件布局的方法;使文件讀寫流程無需涉及文件布局,可通過函數映射的方式直接獲取數據分塊的物理位置,從而提高文件讀寫效率。本發明有效解決了文件布局中數據讀寫流程過於複雜、讀寫效率低的問題。
圖I是本發明分布式存儲文件讀取函數映射系統架構示意圖;圖2是本發明分布式存儲文件讀取函數映射流程示意圖。
具體實施例方式如圖I所示,本發明引入用函數映射代替文件布局的系統架構,通過對存儲基礎設施進行分層次的編號設置,利用函數映射來去掉文件布局的元數據,從而提升文件讀寫效率。分布式存儲採用廉價硬碟進行搭建,基於一個典型的IDC機房,對存儲基礎設施進行分層次的編號設置。第一層是行,行與機房中一排機櫃相對應,一行對應多個機櫃,同時一個機房可有多行。第二層是行中的機櫃,每個機櫃在特定的行中進行編號,例如機櫃22表示是第二行的第二個機櫃。第三層是機櫃中硬碟,每個硬碟都在特定的機櫃中,硬碟編號的方式可採用順序編號的方式。在將文件進行分塊後,需要將各個分塊的多個副本存儲到硬碟中,如圖2所示,執 行如下流程第I步,確定需要進行函數映射的分塊,然後進行後續的分層次的函數映射;第2步,第一層進行行的映射,即確定分塊將要存放到的行,在進行第一層函數映射時,可能遇到衝突,即映射到的行已經佔滿或失效,此時,需要進行重新映射以避免衝
關;第3步,第二層進行行中機櫃的映射,即確定分塊將要存放到的機櫃號,在進行第二層函數映射時,可能遇到衝突,即映射到的機櫃已經佔滿或失效,此時,需要進行重新映射以避免衝突;第4步,第三層進行機櫃中硬碟號的映射,即確定分塊將要存放到的硬碟號。在進行函數映射時,可能遇到衝突,即映射到的硬碟已經佔滿或失效,此時,需要進行重新映射以避免衝關。本發明是根據負載均衡原則制定副本放置規則,進而根據放置規則形成映射函數。一般而言,副本放置應使分塊以及副本在層次設備的底層設備硬碟上儘量均勻分布,即使是剛插入的新硬碟,也應該在新老硬碟上將數據儘量均勻分布。定義選擇η個類型為t的設備的映射函數select (n, t)如下procedure select (n, t)for i=l to nrepeat
根據映射函數確定第i個設備;until不出現衝突end forend procedure例如,如果要進行I個分塊的3個副本的函數映射,可參照圖2所示的函數映射流程圖,進行如下步驟的文件分塊的函數映射。第I步,確定副本放置規則,在此,提出副本放置規則在同一行中放置同一分塊的所有副本能更快地讀寫;第2步,進行第一層函數映射,根據第I步中設定的副本放置規則,可確定調用映射函數select (1,行),確定副本待要放置的行號; 第3步,進行第二層函數映射,調用映射函數select (3,機櫃),確定副本待要放置的3個機櫃號;第4步,進行第三層函數映射,調用映射函數select (I,硬碟)3次,確定在副本將要放置的在每個機櫃中的硬碟號。
權利要求
1.雲作業系統分布式存儲中文件存儲方法,其特徵在於包括以下步驟, 對基礎設施記性分層編號,基於一個典型的IDC機房,對存儲基礎設施進行分層次的編號設置;第一層是行,行與機房中一排機櫃相對應,一行對應多個機櫃,同時一個機房可有多行;第二層是行中的機櫃,每個機櫃在特定的行中進行編號;第三層是機櫃中硬碟,每個硬碟都在特定的機櫃中,硬碟編號的方式可採用順序編號的方式; 將文件分塊;基於副本放置策略,形成文件塊的副本放置規則; 按照副本放置規則,對副本進行函數映射。
2.根據權利要求I所述的方法,其特徵在於讀取函數映射的具體流程 第I步,確定需要進行函數映射的分塊,然後進行後續的分層次的函數映射; 第2步,第一層進行行的映射,即確定分塊將要存放到的行,在進行第一層函數映射時,可能遇到衝突,即映射到的行已經佔滿或失效,此時,需要進行重新映射以避免衝突; 第3步,第二層進行行中機櫃的映射,即確定分塊將要存放到的機櫃號,在進行第二層函數映射時,可能遇到衝突,即映射到的機櫃已經佔滿或失效,此時,需要進行重新映射以避免衝突; 第4步,第三層進行機櫃中硬碟號的映射,即確定分塊將要存放到的硬碟號。在進行函數映射時,可能遇到衝突,即映射到的硬碟已經佔滿或失效,此時,需要進行重新映射以避免衝突。
全文摘要
本發明涉及雲計算存儲技術領域,特別是雲作業系統分布式存儲中文件存儲方法。本發明首先提出對存儲基礎設施進行分層次管理的系統架構,然後基於副本放置策略,形成副本放置規則,進而提出針對副本的函數映射的流程方法。通過本專利提出的函數映射方法,可簡化讀寫流程,並提升文件讀寫效率。可應用於雲作業系統分布式存儲中。
文檔編號H04L29/08GK102868725SQ201210303290
公開日2013年1月9日 申請日期2012年8月23日 優先權日2012年8月23日
發明者劉祥濤, 陳桂華, 嶽強, 季統凱 申請人:廣東電子工業研究院有限公司