一種分布式存儲系統中塊存儲數據的訪問方法及系統的制作方法
【專利摘要】本發明提供一種分布式存儲系統中塊存儲數據的訪問方法及系統,包括構建分布式STGT多資源管理系統和分布式塊存儲系統;在所述分布式STGT多資源管理系統和分布式塊存儲系統中,采用分布式PR機制,實現Active/Active多路徑環境和集群多節點訪問塊存儲;采用分布式watcher機制,定時監控分布式存儲系統中塊存儲的可訪問性;采用分布式PR機制和watcher機制,解耦分布式集群節點中多服務進程啟動。本發明的分布式存儲系統中塊存儲數據的訪問方法及系統減少了分布式塊存儲并發訪問的權限沖突,強化并行訪問的權限控制,提高數據并發訪問的安全性和可靠性,塊存儲預警的準確度和及時性,和分布式存儲系統及塊存儲數據訪問的穩定性。
【專利說明】
一種分布式存儲系統中塊存儲數據的訪問方法及系統
技術領域
[0001]本發明涉及云存儲及計算機信息存儲的技術領域,特別是涉及一種分布式存儲系統中塊存儲數據的訪問方法及系統。
【背景技術】
[0002]在云計算的基礎設施即服務(Infrastructure as a Service,IaaS)中,云運營商提供托管的物理機、虛擬機及其他設施,供不同的用戶根據自己的實際需求進行租賃使用。虛擬機服務是IaaS的核心,IaaS云運營商幾乎都提供虛擬機服務。這里的虛擬機指的是狹義的系統虛擬機,常見的虛擬機有Hyper-V、KVM、VMwar e等。
[0003]傳統的虛擬機存儲服務可分為三大類:開放系統的直連式存儲(Direct-AttachedStorage ,DAS)、網絡附屬存儲(Network-Attached Storage,NAS)和存儲區域網絡(StorageArea-Network,SAN)。然而,傳統的DAS、NAS和SAN存儲難以滿足IaaS場景下的虛擬機存儲對容量、性能可用性的綜合需求。基于SAN的分布式塊存儲系統更適合虛擬機存儲服務的應用。
[0004]目前,主流開源分布式塊存儲包括ceph與sheepdog。
[0005]ceph是加州大學Santa Cruz分校的Sage Weil(DreamHost的聯合創始人)專為博士論文設計的新一代自由軟件分布式文件系統,其可輕松擴展到數PB容量,支持多種工作負載的高性能,具有高可靠性、可擴展性、伸縮性。ceph能夠提供對象、塊和文件這三種形式的存儲服務。Ceph將數據視為存儲池中的對象,通過CRUSH算法將對象均勻分布到集群之中,并提供動態擴展、平衡和恢復。在對象的基礎上,ceph通過rbd-ko等模塊基于可靠、自治、分布式對象存儲(Reliable,Autonomic Distributed Object Store,RAD0S)協議提供了一層塊設備的抽象,支持對Internet小型計算機系統接口協議(Internet Smal IComputer System Interface,iSCSI)的支持。
[000?] Sheepdog是一個分布式對象存儲系統,并在此基礎上提供高可用的塊級存儲卷,提供對iSCSI協議的支持。
[0007]大多數SAN使用iSCSI協議在服務器和存儲設備之間進行傳輸和溝通,通過在小型計算機系統接口(Small Computer System Interface,SCSI)之上建立不同鏡像層,來實現存儲網絡的連接。常見的通信協議有iSCS1、光纖通道協議(Fibre Channel Protocol,FCP)、以太網光纖通道(Fibre Channel over Ethernet)等。傳統SAN塊存儲的SCSI目標(Target)訪問方式主要有:STGT、SCST和L1。其中,SCST和L1處于內核態,支持文件系統訪問和搶占式SCS1-3預留鎖(Persistent Reservat1n,PR)、ALUA,提供更細粒度控制策略和Qos保證體制,但結構復雜、二次開發成本較高,且一旦出現問題,整個存儲系統癱瘓。STGT默認為用戶態方式,專注于i SCS1、維護方便,但支持的SCSI協議簡單,不支持集群PR ο PR是指在訪問邏輯單元號(Logical Unit Number,LUN)之前,主機首先向LUN注冊一個留約密鑰,注冊成功后主機可以嘗試進行永久預留,永久預留成功后就可以獲得LUN的操作權限。
[0008]總體來說,構建規模不大的iSCSITarget,STGT是一個不錯的選擇,但STGT不支持PR,無法滿足Acti ve/Active多路徑環境和集群多節點訪問存儲的需求。多節點經過iSCSI多路徑對同一 LUN塊存儲資源分配時,因為訪問沖突會引起虛擬化文件的損壞,無法保障分布式存儲系統中塊存儲數據訪問的安全性。即使LUN塊存儲資源出現異常,多主機無法感知,持續對LUN讀寫數據,引起虛擬桌面基礎架構(Virtual Desktop Infrastructure,VDI)異常,帶來不可預知的后果。
【發明內容】
[0009]鑒于以上所述現有技術的缺點,本發明的目的在于提供一種分布式存儲系統中塊存儲數據的訪問方法及系統,采用分布式PR機制,減少了分布式塊存儲并發訪問的權限沖突,強化了并行訪問的權限控制;采用分布式watcher機制,提高了塊存儲預警的準確度和及時性。
[0010]為實現上述目的及其他相關目的,本發明提供一種分布式存儲系統中塊存儲數據的訪問方法,包括:I)構建分布式STGT多資源管理系統和分布式塊存儲系統;所述分布式STGT多資源管理系統包括存儲層、存儲驅動層、主機層和管理集群層;所述存儲層用于基于分布式文件系統,對所述存儲驅動層提供塊訪問;所述存儲驅動層用于基于STGT塊存儲訪問協議和分布式開源組件管理分布式塊存儲的數據訪問;所述主機層用于基于分布式SAN的iSCSI協議對分布式STGT多資源管理系統的目標塊存儲的數據進行訪問;所述管理集群層用于管理分布式存儲系統中的節點及控制iSCSI數據的訪問業務;所述分布式塊存儲系統中,采用分布式PR中的節點目錄模型模擬訪問塊存儲的iSCSI主機,所述節點目錄用于記錄塊存儲及iSCSI主機信息,采用watcher功能提供iSCSI存儲中塊存儲狀態及與塊存儲相關的服務的監控;2)在所述分布式STGT多資源管理系統和分布式塊存儲系統中,采用分布式PR機制,實現Ac t i ve/Ac t i ve多路徑環境和集群多節點訪問塊存儲;3)在所述分布式STGT多資源管理系統和分布式塊存儲系統中,采用分布式watcher機制,定時監控分布式存儲系統中塊存儲的可訪問性;4)在所述分布式STGT多資源管理系統和分布式塊存儲系統中,采用分布式PR機制和watcher機制,解親分布式集群節點中多服務進程啟動。
[0011]根據上述的分布式存儲系統中塊存儲數據的訪問方法,其中:所述存儲層基于RADOS協議提供一層塊設備的抽象,支持對iSCSI的支持。
[0012]根據上述的分布式存儲系統中塊存儲數據的訪問方法,其中:所述分布式PR機制的處理流程包括以下步驟:
[0013]I)啟動STGT服務進程;
[0014]2)查詢分布式節點目錄的根目錄,判斷目錄/PR是否存在,若否,轉入3),若是,轉入4);
[0015]3)創建臨時目錄/PR;
[0016]4)執行STGT循環事件,以周期性地響應iSCSI主機層請求。
[0017]進一步地,根據上述的分布式存儲系統中塊存儲數據的訪問方法,其中:所述STGT循環事件包括以下步驟:
[0018]a)接收并解析iSCSI指令;
[0019]b)判斷解析后的iSCSI指令是否是PR指令;若是,轉入c);否則,轉入g);
[0020]c)查詢分布式節點目錄的目錄/PR,并判斷操作的塊存儲的LUN_ID是否已置/PR;若是,轉入d);若否,轉入g);
[0021]d)判斷PR指令是加鎖還是釋放鎖,若為加鎖,轉入e);若否,轉入f);
[0022]e)創建臨時目錄/PR/LUN_ID,轉入g);
[0023]f)刪除臨時目錄/PR/LUN_ID,轉入g);
[0024]g)讀寫塊設備的數據。
[0025]根據上述的分布式存儲系統中塊存儲數據的訪問方法,其中:所述watcher機制的處理流程包括以下步驟:
[0026I I)連接iSCSI目標端,確保訪問邏輯單元號能夠正常掛載;
[0027]2)查看已掛載的以磁盤方式呈現的塊設備,過濾出特定的磁盤;
[0028]3)讀取特定的磁盤;
[0029]4)判斷磁盤是否含有1錯誤;若是,轉入5);若否,轉入3);
[0030]5)刪除磁盤對應的塊存儲的訪問邏輯單元號。
[0031]同時,本發明還提供一種分布式存儲系統中塊存儲數據的訪問系統,包括構建模塊、PR處理模塊、watcher處理模塊和解耦模塊;
[0032]所述構建模塊用于構建分布式STGT多資源管理系統和分布式塊存儲系統。
[0033]所述分布式STGT多資源管理系統包括存儲層、存儲驅動層、主機層和管理集群層;
[0034]所述存儲層用于基于分布式文件系統,對所述存儲驅動層提供塊訪問;
[0035]所述存儲驅動層用于基于STGT塊存儲訪問協議和分布式開源組件管理分布式塊存儲的數據訪問;
[0036]所述主機層用于基于分布式SAN的iSCSI協議對分布式STGT多資源管理系統的目標塊存儲的數據進行訪問;
[0037]所述管理集群層用于管理分布式存儲系統中的節點及控制iSCSI數據的訪問業務;
[0038]所述分布式塊存儲系統中,采用分布式PR中的節點目錄模型模擬訪問塊存儲的iSCSI主機,所述節點目錄用于記錄塊存儲及iSCSI主機信息,采用watcher功能提供iSCSI存儲中塊存儲狀態及與塊存儲相關的服務的監控;
[0039]所述PR處理模塊用于采用分布式PR機制,實現Active/Active多路徑環境和集群多節點訪問塊存儲;
[°04°] 所述watcher處理模塊用于采用分布式watcher機制,定時監控分布式存儲系統中塊存儲的可訪問性;
[°041 ]所述解親模塊用于采用分布式PR機制和watcher機制,解親分布式集群節點中多服務進程啟動。
[0042]根據上述的分布式存儲系統中塊存儲數據的訪問系統,其中:所述存儲層基于RADOS協議提供一層塊設備的抽象,支持對iSCSI的支持。
[0043]根據上述的分布式存儲系統中塊存儲數據的訪問系統,其中:所述分布式PR機制的處理流程包括以下步驟:
[0044]I)啟動STGT服務進程;
[0045]2)查詢分布式節點目錄的根目錄,判斷目錄/PR是否存在,若否,轉入3),若是,轉入4);
[0046]3)創建臨時目錄/PR;
[0047]4)執行STGT循環事件,以周期性地響應iSCSI主機層請求。
[0048]進一步地,根據上述的分布式存儲系統中塊存儲數據的訪問系統,其中:所述STGT循環事件包括以下步驟:
[0049]a)接收并解析iSCSI指令;
[0050]b)判斷解析后的i SCSI指令是否是PR指令;若是,轉入c);否則,轉入g);
[0051 ] c)查詢分布式節點目錄的目錄/PR,并判斷操作的塊存儲的LUN_ID是否已置/PR;若是,轉入d);若否,轉入g);
[0052]d)判斷PR指令是加鎖還是釋放鎖,若為加鎖,轉入e);若否,轉入f);
[0053]e)創建臨時目錄/PR/LUN_ID,轉入g);
[0054]f)刪除臨時目錄/PR/LUN_ID,轉入g);
[0055]g)讀寫塊設備的數據。
[0056]根據上述的分布式存儲系統中塊存儲數據的訪問系統,其中:所述watcher機制的處理流程包括以下步驟:
[0057]I)連接iSCSI目標端,確保訪問邏輯單元號能夠正常掛載;
[0058]2)查看已掛載的以磁盤方式呈現的塊設備,過濾出特定的磁盤;
[0059]3)讀取特定的磁盤;
[0060]4)判斷磁盤是否含有1錯誤;若是,轉入5);若否,轉入3);
[0061]5)刪除磁盤對應的塊存儲的訪問邏輯單元號。
[0062]如上所述,本發明的分布式存儲系統中塊存儲數據的訪問方法及系統,具有以下有益效果:
[0063](I)采用分布式PR機制,減少分布式塊存儲并發訪問的權限沖突,強化并行訪問的權限控制,提高數據并發訪問的安全性和可靠性;
[0064](2)采用分布式w a t c h e r機制,定時監控分布式存儲系統中塊存儲的可訪問性,提高塊存儲預警的準確度和及時性;
[0065](3)采用分布式PR機制和watcher機制,解耦分布式集群節點中多服務進程啟動,提高分布式存儲系統及塊存儲數據訪問的穩定性。
【附圖說明】
[0066]圖1顯示為本發明的分布式存儲系統中塊存儲數據的訪問方法的流程圖;
[0067]圖2顯示為本發明的分布式STGT多資源管理系統的結構示意圖;
[0068]圖3顯示為本發明的分布式塊存儲系統的總體框架示意圖;
[0069]圖4顯示為本發明的分布式PR機制的處理流程圖;
[°07°]圖5顯示為本發明的分布式watcher機制的處理流程圖;
[0071 ]圖6顯示為本發明的分布式解耦服務啟動的示意圖;
[0072]圖7顯示為本發明的分布式存儲系統中塊存儲數據的訪問系統的結構示意圖。
[0073]元件標號說明
[0074]I構建模塊
[0075]2 PR處理模塊
[0076]3 watcher 處理模塊
[0077]4解耦模塊
【具體實施方式】
[0078]以下通過特定的具體實例說明本發明的實施方式,本領域技術人員可由本說明書所揭露的內容輕易地了解本發明的其他優點與功效。本發明還可以通過另外不同的【具體實施方式】加以實施或應用,本說明書中的各項細節也可以基于不同觀點與應用,在沒有背離本發明的精神下進行各種修飾或改變。
[0079]需要說明的是,本實施例中所提供的圖示僅以示意方式說明本發明的基本構想,遂圖式中僅顯示與本發明中有關的組件而非按照實際實施時的組件數目、形狀及尺寸繪制,其實際實施時各組件的型態、數量及比例可為一種隨意的改變,且其組件布局型態也可能更為復雜。
[0080]需要說明的是,下文主要以ceph為例來闡述本發明的分布式存儲系統中塊存儲數據的訪問方法及系統。需要說明的是,其他分布式塊存儲依然適用于本發明的分布式存儲系統中塊存儲數據的訪問方法及系統,屬于本發明的保護范圍之內。
[0081]本發明的分布式存儲系統中塊存儲數據的訪問方法及系統采用分布式PR機制和分布式watcher機制來滿足Acti ve/Active多路徑環境和集群多節點訪問塊存儲,減少了分布式塊存儲并發訪問的權限沖突,強化了并行訪問的權限控制,提高了塊存儲數據讀寫的安全性和可靠性,以及塊存儲預警的準確度和及時性。
[0082]參照圖1,本發明的分布式存儲系統中塊存儲數據的訪問方法包括:
[0083]I)構建分布式STGT多資源管理系統(以下簡稱CTGT)和分布式塊存儲系統。
[0084]如圖2所示,分布式STGT多資源管理系統自下到上依次包括存儲層、存儲驅動層、主機層(Initiator層)和管理集群層。
[0085]存儲層用于基于ceph分布式文件系統,對存儲驅動層通過塊存儲接口RBD提供塊訪問。
[0086]具體地,存儲層基于RADOS協議提供一層塊設備的抽象,支持對iSCSI的支持。
[0087]存儲驅動層用于基于STGT塊存儲訪問協議和分布式開源組件管理分布式塊存儲的數據訪問。
[0088]Initiator層用于基于分布式SAN的iSCSI協議對分布式CTGT Target塊存儲的數據進行訪問。
[0089]管理集群層用于管理分布式存儲系統中的節點及控制iSCSI數據的訪問業務。
[0090]如圖3所示,分布式塊存儲系統中,SAN主機采用iSCSI協議訪問CTGT提供的塊存儲,塊存儲用于部署虛擬化桌面(VDI ),i SCSI協議對VDI的穩定性起到穩定作用。CTGT采用分布式PR中的節點目錄(Znode)模型,模擬訪問塊存儲的i SCSI主機,Znode記錄塊存儲及iSCSI主機信息。例如:iSCIS主機I對塊存儲I (存儲節點I)的訪問,Znode可設置為“/PR/LUNl/iniriatorl” watcher功能提供iSCSI存儲中塊存儲狀態及與塊存儲相關的服務的監控,如:STGT狀態等。
[0091]2)采用分布式PR機制,實現Active/Active多路徑環境和集群多節點訪問塊存儲。
[0092]集群多節點訪問塊存儲時,分布式PR鎖保障PR在集群中的消息可復制,較少分布式塊存儲并發訪問的權限沖突。
[0093]如圖4所示,分布式PR機制的處理流程包括以下步驟:
[0094]I)啟動STGT服務進程。
[0095]2)查詢分布式Znode根目錄/,判斷目錄/PR是否存在,若否,轉入3),若是,轉入4)。
[0096]3)創建臨時目錄/PR。
[0097]其中,PR指令包括加鎖(re serve)和釋放鎖(re I ease) ,reserve用來創建臨時目錄/PR/LUN_ID,release用來刪除臨時目錄/PR/LUNJDJPR為常規性Znode,即使節點丟失,/PR仍存在;/LUN_ID為臨時性Znode,/PR/LUN_ID隨節點/LUN_ID的丟失而丟失。
[0098]4)執行STGT循環(STGT event_loop)事件,以周期性地響應iSCSI主機層請求。
[0099]具體地,STGT event_loop事件包括以下步驟:
[0100]a)接收并解析iSCSI指令。
[0101]b)判斷解析后的iSCSI指令是否是PR指令;若是,轉入c);否則,轉入g)。
[0102]c)查詢分布式Znode的目錄/PR,并判斷操作的塊存儲的LUN_ID是否已置/PR;若是,轉入d);若否,轉入g)。
[0103]d)判斷PR是reserve還是re lease,若為reserve,轉入e);若否,轉入f)。
[0104]e)創建臨時目錄/PR/LUN_ID,轉入g)。
[0105]f)刪除臨時目錄/PR/LUN_ID,轉入g)。
[0106]g)讀寫塊設備的數據。
[0107]3)采用分布式watcher機制,定時監控分布式存儲系統中塊存儲的可訪問性。
[0108]若集群某節點訪問塊存儲iSCSI指令超時,該節點的STGT產生abort終止命令、重置LUN、上報集群,從而達到預警效果。
[0109]如圖5所示,wit cher機制的處理流程包括以下步驟:
[0110]l)iscsiadm命令連接iSCSI target端,確保LUN能夠正常掛載。
[0111]2) Isscsi查看已掛載的以磁盤方式呈現的塊設備,過濾出特定廠商的磁盤。
[0112]3)采用sg_inq讀取特定廠商的磁盤。
[0113]4)判斷磁盤是否含有1錯誤;若是,轉入5);若否,轉入3)。
[0114]5)刪除磁盤對應的塊存儲的LUN。
[0115]4)采用分布式PR機制和watcher機制,解親分布式集群節點中多服務進程啟動。
[0?16]采用PR機制的Znode模擬多服務進程,采用watcher機制監控Znode屬性,從而達到解耦服務進程啟動的效果。
[0117]如圖6所示,在一個優選實施例中,解耦分布式集群節點中多服務進程啟動時,采用分布式PR的Znode模型,服務進程SER1、SER2、SER3分別對應Znode臨時目錄/SEQ/SER1、/SEQ/SER2、/SEQ/SER3,啟動先后順序為SERl、SER2、SER3,witcher機制監控Znode屬性時,包括以下步驟:
[0118]I)監控SERl進程及其狀態,若SERl及其狀態正常,創建臨時目錄/SEQ/SER1;若異常,刪除/SEQ/SER1。
[0119]2)監控SER2進程與臨時目錄/SEQ/SER1;若臨時目錄/SEQ/SER1存在,轉入3),否則執行轉入6)。
[0120]3)啟動SER2進程,并創建臨時目錄/SEQ/SER2。
[0121]4)監控SER3進程與臨時目錄/SEQ/SER1和/SEQ/SER2,若臨時目錄/SEQ/SER1和/SEQ/SER2均存在,且SER3進程未啟動,轉入5);否則轉入6)。
[0122]5)啟動SER3進程,并創建臨時目錄/SEQ/SER3。
[0123]6)不處理。
[0124]參照圖7,本發明的分布式存儲系統中塊存儲數據的訪問系統包括構建模塊1、PR處理模塊2 watcher處理模塊3和解耦模塊4。其中,PR處理模塊2 watcher處理模塊3和解耦模塊4均與構建模塊I相連。
[0125]構建模塊I用于構建分布式STGT多資源管理系統(以下簡稱CTGT)和分布式塊存儲系統。
[0126]其中,分布式STGT多資源管理系統自下到上依次包括存儲層、存儲驅動層、主機層(Initiator層)和管理集群層。
[0127]存儲層用于基于ceph分布式文件系統,對存儲驅動層通過塊存儲接口RBD提供塊訪問。
[0128]具體地,存儲層基于RADOS協議提供一層塊設備的抽象,支持對iSCSI的支持。
[0129]存儲驅動層用于基于STGT塊存儲訪問協議和分布式開源組件管理分布式塊存儲的數據訪問。
[0130]Initiator層用于基于分布式SAN的iSCSI協議對分布式CTGT Target塊存儲的數據進行訪問。
[0131]管理集群層用于管理分布式存儲系統中的節點及控制iSCSI數據的訪問業務。
[0132]分布式塊存儲系統中,SAN主機采用iSCSI協議訪問CTGT提供的塊存儲,塊存儲用于部署虛擬化桌面(VDI),iSCSI協議對VDI的穩定性起到穩定作用。CTGT采用分布式PR中的節點目錄(Znode)模型,模擬訪問塊存儲的iSCSI主機,Znode記錄塊存儲及iSCSI主機信息。例如:iSCIS主機I對塊存儲1(存儲節點I)的訪問,Znode可設置為“/PR/LUNl/iniriatorl”;witcher功能提供iSCSI存儲中塊存儲狀態及與塊存儲相關的服務的監控,如:STGT狀態等。
[0133]PR處理模塊2用于采用分布式PR機制,實現Active/Active多路徑環境和集群多節點訪問塊存儲。
[0134]集群多節點訪問塊存儲時,分布式PR鎖保障PR在集群中的消息可復制,較少分布式塊存儲并發訪問的權限沖突。
[0135]分布式PR機制的處理流程包括以下步驟:
[0136]I)啟動STGT服務進程。
[0137]2)查詢分布式Znode根目錄/,判斷目錄/PR是否存在,若否,轉入3),若是,轉入4)。
[0138]3)創建臨時目錄/PR。
[0139]其中,PR指令包括加鎖(re serve)和釋放鎖(re I ease) ,reserve用來創建臨時目錄/PR/LUN_ID,release用來刪除臨時目錄/PR/LUNJDJPR為常規性Znode,即使節點丟失,/PR仍存在;/LUN_ID為臨時性Znode,/PR/LUN_ID隨節點/LUN_ID的丟失而丟失。
[0140]4)執行STGT循環(STGT event_loop)事件,以周期性地響應iSCSI主機層請求。
[0141 ] 具體地,STGT event_loop事件包括以下步驟:
[0142]a)接收并解析iSCSI指令。
[0143]b)判斷解析后的iSCSI指令是否是PR指令;若是,轉入c);否則,轉入g)。
[0144]c)查詢分布式Znode的目錄/PR,并判斷操作的塊存儲的LUN_ID是否已置/PR;若是,轉入d);若否,轉入g)。
[0145]d)判斷PR是reserve還是re lease,若為reserve,轉入e);若否,轉入f)。
[0146]e)創建臨時目錄/PR/LUN_ID,轉入g)。
[0147]f)刪除臨時目錄/PR/LUN_ID,轉入g)。
[0148]g)讀寫塊設備的數據。
[OH9] watcher處理模塊3用于采用分布式watcher機制,定時監控分布式存儲系統中塊存儲的可訪問性。
[0150]若集群某節點訪問塊存儲i SCSI指令超時,該節點的STGT產生abort終止命令、重置LUN、上報集群,從而達到預警效果。
[0151 ] watcher機制的處理流程包括以下步驟:
[0152]l)iscsiadm命令連接iSCSI target端,確保LUN能夠正常掛載。
[0153]2) Isscsi查看已掛載的以磁盤方式呈現的塊設備,過濾出特定廠商的磁盤。
[0154]3)采用sg_inq讀取特定廠商的磁盤。
[0155]4)判斷磁盤是否含有1錯誤;若是,轉入5);若否,轉入3)。
[0156]5)刪除磁盤對應的塊存儲的LUN。
[0157]解耦模塊4用于采用分布式PR機制和watcher機制,解耦分布式集群節點中多服務進程啟動。
[ΟΙ58]采用PR機制的Znode模擬多服務進程,采用watcher機制監控Znode屬性,從而達到解耦服務進程啟動的效果。
[0159]在一個優選實施例中,解耦分布式集群節點中多服務進程啟動時,采用分布式PR的Znode模型,服務進程SERl、SER2、SER3分別對應Znode臨時目錄/SEQ/SER1、/SEQ/SER2、/SEQ/SER3,啟動先后順序為SERl、SER2、SER3,watcher機制監控Znode屬性時,包括以下步驟:
[0160]I)監控SERl進程及其狀態,若SERl及其狀態正常,創建臨時目錄/SEQ/SER1;若異常,刪除/SEQ/SER1。
[0161]2)監控SER2進程與臨時目錄/SEQ/SER1;若臨時目錄/SEQ/SER1存在,轉入3),否則執行轉入6)。
[0162]3)啟動SER2進程,并創建臨時目錄/SEQ/SER2。
[0163]4)監控SER3進程與臨時目錄/SEQ/SER1和/SEQ/SER2,若臨時目錄/SEQ/SER1和/SEQ/SER2均存在,且SER3進程未啟動,轉入5);否則轉入6)。
[0164]5)啟動SER3進程,并創建臨時目錄/SEQ/SER3。
[0165]6)不處理。
[0166]綜上所述,本發明的分布式存儲系統中塊存儲數據的訪問方法及系統采用分布式PR機制,減少分布式塊存儲并發訪問的權限沖突,強化并行訪問的權限控制,提高數據并發訪問的安全性和可靠性;采用分布式watcher機制,定時監控分布式存儲系統中塊存儲的可訪問性,提高塊存儲預警的準確度和及時性;采用分布式PR機制和watcher機制,解親分布式集群節點中多服務進程啟動,提高分布式存儲系統及塊存儲數據訪問的穩定性。所以,本發明有效克服了現有技術中的種種缺點而具高度產業利用價值。
[0167]上述實施例僅例示性說明本發明的原理及其功效,而非用于限制本發明。任何熟悉此技術的人士皆可在不違背本發明的精神及范疇下,對上述實施例進行修飾或改變。因此,舉凡所屬技術領域中具有通常知識者在未脫離本發明所揭示的精神與技術思想下所完成的一切等效修飾或改變,仍應由本發明的權利要求所涵蓋。
【主權項】
1.一種分布式存儲系統中塊存儲數據的訪問方法,其特征在于:包括: 1)構建分布式STGT多資源管理系統和分布式塊存儲系統; 所述分布式STGT多資源管理系統包括存儲層、存儲驅動層、主機層和管理集群層; 所述存儲層用于基于分布式文件系統,對所述存儲驅動層提供塊訪問; 所述存儲驅動層用于基于STGT塊存儲訪問協議和分布式開源組件管理分布式塊存儲的數據訪問; 所述主機層用于基于分布式SAN的iSCSI協議對分布式STGT多資源管理系統的目標塊存儲的數據進行訪問; 所述管理集群層用于管理分布式存儲系統中的節點及控制iSCSI數據的訪問業務; 所述分布式塊存儲系統中,采用分布式PR中的節點目錄模型模擬訪問塊存儲的iSCSI主機,所述節點目錄用于記錄塊存儲及iSCSI主機信息,采用watcher功能提供iSCSI存儲中塊存儲狀態及與塊存儲相關的服務的監控; 2)在所述分布式STGT多資源管理系統和分布式塊存儲系統中,采用分布式PR機制,實現Active/Active多路徑環境和集群多節點訪問塊存儲; 3)在所述分布式STGT多資源管理系統和分布式塊存儲系統中,采用分布式watcher機制,定時監控分布式存儲系統中塊存儲的可訪問性; 4)在所述分布式STGT多資源管理系統和分布式塊存儲系統中,采用分布式PR機制和watcher機制,解親分布式集群節點中多服務進程啟動。2.根據權利要求1所述的分布式存儲系統中塊存儲數據的訪問方法,其特征在于:所述存儲層基于RADOS協議提供一層塊設備的抽象,支持對iSCSI的支持。3.根據權利要求1所述的分布式存儲系統中塊存儲數據的訪問方法,其特征在于:所述分布式PR機制的處理流程包括以下步驟: 1)啟動STGT服務進程; 2)查詢分布式節點目錄的根目錄,判斷目錄/PR是否存在,若否,轉入3),若是,轉入4); 3)創建臨時目錄/PR; 4)執行STGT循環事件,以周期性地響應iSCSI主機層請求。4.根據權利要求3所述的分布式存儲系統中塊存儲數據的訪問方法,其特征在于:所述STGT循環事件包括以下步驟: a)接收并解析iSCSI指令; b)判斷解析后的iSCSI指令是否是PR指令;若是,轉入c);否則,轉入g); c)查詢分布式節點目錄的目錄/PR,并判斷操作的塊存儲的LUN_ID是否已置/PR;若是,轉入d);若否,轉入g); d)判斷PR指令是加鎖還是釋放鎖,若為加鎖,轉入e);若否,轉入f); e)創建臨時目錄/PR/LUN_ID,轉入g); f)刪除臨時目錄/PR/LUN_ID,轉入g); g)讀寫塊設備的數據。5.根據權利要求1所述的分布式存儲系統中塊存儲數據的訪問方法,其特征在于:所述watcher機制的處理流程包括以下步驟: I)連接iSCSI目標端,確保訪問邏輯單元號能夠正常掛載; 2)查看已掛載的以磁盤方式呈現的塊設備,過濾出特定的磁盤; 3)讀取特定的磁盤; 4)判斷磁盤是否含有1錯誤;若是,轉入5);若否,轉入3); 5)刪除磁盤對應的塊存儲的訪問邏輯單元號。6.一種分布式存儲系統中塊存儲數據的訪問系統,其特征在于:包括構建模塊、PR處理模塊、watcher處理模塊和解親模塊; 所述構建模塊用于構建分布式STGT多資源管理系統和分布式塊存儲系統。 所述分布式STGT多資源管理系統包括存儲層、存儲驅動層、主機層和管理集群層; 所述存儲層用于基于分布式文件系統,對所述存儲驅動層提供塊訪問; 所述存儲驅動層用于基于STGT塊存儲訪問協議和分布式開源組件管理分布式塊存儲的數據訪問; 所述主機層用于基于分布式SAN的iSCSI協議對分布式STGT多資源管理系統的目標塊存儲的數據進行訪問; 所述管理集群層用于管理分布式存儲系統中的節點及控制iSCSI數據的訪問業務; 所述分布式塊存儲系統中,采用分布式PR中的節點目錄模型模擬訪問塊存儲的iSCSI主機,所述節點目錄用于記錄塊存儲及iSCSI主機信息,采用watcher功能提供iSCSI存儲中塊存儲狀態及與塊存儲相關的服務的監控; 所述PR處理模塊用于采用分布式PR機制,實現Active/Active多路徑環境和集群多節點訪問塊存儲; 所述watcher處理模塊用于采用分布式watcher機制,定時監控分布式存儲系統中塊存儲的可訪問性; 所述解耦模塊用于采用分布式PR機制和watcher機制,解耦分布式集群節點中多服務進程啟動。7.根據權利要求6所述的分布式存儲系統中塊存儲數據的訪問系統,其特征在于:所述存儲層基于RADOS協議提供一層塊設備的抽象,支持對iSCSI的支持。8.根據權利要求6所述的分布式存儲系統中塊存儲數據的訪問系統,其特征在于:所述分布式PR機制的處理流程包括以下步驟: 1)啟動STGT服務進程; 2)查詢分布式節點目錄的根目錄,判斷目錄/PR是否存在,若否,轉入3),若是,轉入4); 3)創建臨時目錄/PR; 4)執行STGT循環事件,以周期性地響應iSCSI主機層請求。9.根據權利要求8所述的分布式存儲系統中塊存儲數據的訪問系統,其特征在于:所述STGT循環事件包括以下步驟: a)接收并解析iSCSI指令; b)判斷解析后的iSCSI指令是否是PR指令;若是,轉入c);否則,轉入g); c)查詢分布式節點目錄的目錄/PR,并判斷操作的塊存儲的LUN_ID是否已置/PR;若是,轉入d);若否,轉入g); d)判斷PR指令是加鎖還是釋放鎖,若為加鎖,轉入e);若否,轉入f); e)創建臨時目錄/PR/LUN_ID,轉入g); f)刪除臨時目錄/PR/LUN_ID,轉入g); g)讀寫塊設備的數據。10.根據權利要求6所述的分布式存儲系統中塊存儲數據的訪問系統,其特征在于:所述watcher機制的處理流程包括以下步驟: 1)連接iSCSI目標端,確保訪問邏輯單元號能夠正常掛載; 2)查看已掛載的以磁盤方式呈現的塊設備,過濾出含特定的磁盤; 3)讀取特定的磁盤; 4)判斷磁盤是否含有1錯誤;若是,轉入5);若否,轉入3); 5)刪除磁盤對應的塊存儲的訪問邏輯單元號。
【文檔編號】G06F3/06GK105892943SQ201610192083
【公開日】2016年8月24日
【申請日】2016年3月30日
【發明人】何云
【申請人】上海愛數信息技術股份有限公司