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