一種網絡設備、集群存儲系統及分布式鎖管理方法
2023-05-11 09:51:41
一種網絡設備、集群存儲系統及分布式鎖管理方法
【專利摘要】本發明實施例提供了一種網絡設備、集群存儲系統及分布式鎖管理方法,涉及計算機領域,實現高性能高可用性的分布式鎖管理。本發明實施例採用的方法包括:通過部署在集群存儲系統的關鍵訪問路徑上的網絡設備接收第一節點發送的鎖申請信息,鎖申請信息包含第一節點申請訪問的資源標識;根據第一節點申請訪問的資源標識查詢鎖配置表,若確定第一鎖的狀態為未使用狀態,則生成授權第一節點使用第一鎖的授權信息,並將授權信息發送至第一節點,其中,鎖配置表包含資源標識信息、與資源標識一一對應的鎖、以及鎖的狀態信息,第一鎖為鎖配置表中與第一節點申請訪問的資源標識對應的鎖;授權信息包含第一鎖。
【專利說明】一種網絡設備、集群存儲系統及分布式鎖管理方法
【技術領域】
[0001]本發明涉及計算機領域,尤其涉及一種網絡設備、集群存儲系統及分布式鎖管理方法。
【背景技術】
[0002]隨著存儲領域的不斷發展,單個節點或一對節點已經在性能、容量、可靠性方面難以滿足存儲的客戶需求,進而有了向外擴大(scale-out)集群存儲技術,並得到了很大的發展。分布式鎖作為scale-out集群存儲技術中的一個重要技術,主要負責多個節點對同一個資源的同時互斥訪問。當節點需要對資源進行訪問時,需要向分布式鎖管理設備申請授權,當節點獲取到對應鎖的時候才能對加鎖資源進行相關操作。所以,分布式鎖的性能高低、可用性以及可靠性直接影響到整個集群的性能、可用性和可靠性。
[0003]業界常用的兩種分布式鎖管理方法分別為中心式分布式鎖管理和去中心式分布式鎖管理;
[0004]中心式分布式鎖管理方法,將所有的鎖部署在一個節點上,通常為主節點,主節點管理了整個集群的所有鎖資源;當節點需要訪問資源申請鎖的時候,需要通過節點間的通信網絡(通常為互為冗餘的兩個心跳交換機)向主節點申請對應的鎖;
[0005]去中心式分布式鎖管理方法,將所有的鎖通過分布式哈希表(Distributed HashTable,簡稱DHT)算法或一致性散列(hash)算法布局到集群的所有節點之上,每個節點將負責一部分的鎖;在每個節點上設計一個代理(Proxy),用於通過節點間的心跳交換機向對應的分布式鎖管理設備申請對應的鎖資源,並將其緩存在本地Proxy中;當節點需要訪問資源申請鎖的時候,將本節點內的Proxy申請對應的鎖資源,再由該Proxy通過節點間的心跳交換機向對應的分布式鎖管理設備申請對應的鎖。
[0006]發明人發現現有技術至少有以下缺點:對於中心式分布式鎖管理方法,當有大量節點申請鎖資源時,主節點將成為整個集群的瓶頸,且當主節點故障後,無法進行鎖恢復,使得集群存儲系統的性能及可用性下降。對於去中心式分布式鎖管理方法,當多個節點同時發出鎖申請信息時,由於需要節點間的心跳交換機進行來回通信,且當某節點發生故障時,該節點管理的鎖需要恢復甚至遷移,使得集群存儲系統的性能及可用性下降。
【發明內容】
[0007]本發明實施例提供一種網絡設備、集群存儲系統及分布式鎖管理方法,實現高性能高可用性的分布式鎖管理。
[0008]為達到上述目的,本發明實施例採用的技術方案是,
[0009]第一方面,提供一種用於分布式鎖管理的網絡設備,應用於集群存儲系統,所述集群存儲系統包含所述網絡設備以及與所述網絡設備直接連接的各個節點,所述網絡設備包括:處理器,存儲器,以及通信交換晶片,
[0010]其中,所述存儲器用於,存儲鎖配置表,所述鎖配置表包含資源標識、與所述資源標識一一對應的鎖、以及所述鎖的狀態信息;
[0011]所述通信交換晶片用於,接收第一節點發送的鎖申請信息,以及將所述鎖申請信息傳輸至所述處理器,其中,所述鎖申請信息包含所述第一節點申請訪問的資源標識;
[0012]所述處理器用於,根據所述第一節點申請訪問的資源標識查詢所述存儲器中的鎖配置表,若確定第一鎖的狀態為未使用狀態,則生成授權所述第一節點使用所述第一鎖的授權信息,並將所述授權信息傳輸至所述通信交換晶片,其中,所述第一鎖為所述鎖配置表中與所述第一節點申請訪問的資源標識對應的鎖,所述授權信息中包含所述第一鎖;
[0013]所述通信交換晶片還用於,將所述授權信息發送至所述第一節點。
[0014]結合第一方面,在第一方面的第一種可能的實現方式中,所述網絡設備部署在集群存儲系統的關鍵訪問路徑上。
[0015]結合第一方面或第一方面的第一種可能的實現方式,在第一方面的第二種可能的實現方式中,所述網絡設備與冗餘網絡設備連接,其中,所述冗餘網絡設備是與所述網絡設備通過硬體通道連接,且與所述網絡設備功能相同的網絡設備;
[0016]所述處理器還用於,將鎖狀態更改操作通過發送鎖狀態更改通知同步至所述冗餘網絡設備,其中,所述鎖狀態更改通知包括第一鎖及第一鎖的第一狀態;
[0017]或者,
[0018]所述處理器還用於,接收所述鎖狀態更改通知,根據所述鎖狀態更改通知的指示,將所述鎖配置表中第一鎖的狀態更改為第一狀態。
[0019]結合第一方面或第一方面的第一種可能的實現方式或第一方面的第二種可能的實現方式,在第一方面的第三種可能的實現方式中,所述處理器還用於:
[0020]若確定所述第一鎖的狀態為使用狀態,則根據所述鎖配置表,在所述第一鎖的狀態恢復為未使用狀態時,生成授權所述第一節點使用所述第一鎖的授權信息。
[0021]結合第一方面、第一方面的第一種可能的實現方式至第一方面的第三種可能的實現方式任一項,在第一方面的第四種可能的實現方式中,所述處理器還用於:
[0022]在將所述授權信息傳輸給所述通信交換晶片之前,將所述鎖配置表中所述第一鎖的狀態修改為使用狀態。
[0023]結合第一方面、第一方面的第一種可能的實現方式至第一方面的第四種可能的實現方式任一項,在第一方面的第五種可能的實現方式中,其特徵在於,
[0024]所述通信交換晶片還用於,接收所述第一節點發送的故障信息,以及將所述第一節點的故障信息傳輸至所述處理器;
[0025]所述處理器還用於,若確定所述第一鎖正在給所述第一節點授權使用,根據所述第一節點的故障信息,將所述鎖配置表中所述第一鎖的狀態修改為未使用狀態。
[0026]結合第一方面、第一方面的第一種可能的實現方式至第一方面的第五種可能的實現方式任一項,在第一方面的第六種可能的實現方式中,
[0027]所述通信交換晶片還用於,接收所述第一節點發送的釋放所述第一鎖的通知,以及將所述第一節點釋放所述第一鎖的通知傳輸至所述處理器,其中,所述釋放所述第一鎖的通知包括所述第一鎖;
[0028]所述處理器還用於,根據所述第一節點釋放所述第一鎖的通知,將所述鎖配置表中所述第一鎖的狀態修改為未使用狀態,生成第一鎖回收成功的通知並傳輸至通信交換晶片;
[0029]所述通信交換晶片還用於,向所述第一節點發送所述第一鎖回收成功的通知。
[0030]第二方面、提供一種集群存儲系統,包括,
[0031]如第五方面或上述任一種可能的實現方式所述的網絡設備;
[0032]與所述網絡設備連接的N個節點,其中,所述N大於等於2 ;
[0033]冗餘網絡設備,所述冗餘網絡設備與所述網絡設備通過硬體通道連接,且與所述網絡設備功能相同;
[0034]所述網絡設備還用於,將鎖狀態更改操作通過發送鎖狀態更改通知同步至所述冗餘網絡設備,其中,所述鎖狀態更改通知包括第一鎖及第一鎖的第一狀態;
[0035]所述冗餘網絡設備用於,接收所述鎖狀態更改通知,根據所述鎖狀態更改通知的指示,將所述鎖配置表中第一鎖的狀態更改為第一狀態。
[0036]第三方面、提供一種分布式鎖管理方法,應用於集群存儲系統,所述集群存儲系統包含所述網絡設備以及與所述網絡設備直接連接的各個節點,所述方法包括:
[0037]所述網絡設備接收第一節點發送的鎖申請信息,所述鎖申請信息包含所述第一節點申請訪問的資源標識;
[0038]所述網絡設備根據所述第一節點申請訪問的資源標識查詢鎖配置表,若確定第一鎖的狀態為未使用狀態,則生成授權所述第一節點使用所述第一鎖的授權信息,並將所述授權信息發送至所述第一節點,其中,所述鎖配置表包含資源標識信息、與所述資源標識一一對應的鎖、以及所述鎖的狀態信息,所述第一鎖為所述鎖配置表中與所述第一節點申請訪問的資源標識對應的鎖;所述授權信息包含所述第一鎖。
[0039]結合第三方面,在第三方面的第一種可能的實現方式中,所述網絡設備部署在集群存儲系統的關鍵訪問路徑上。
[0040]結合第三方面或第三方面的第一種可能的實現方式,在第三方面的第二種可能的實現方式中,所述方法還包括,
[0041]將鎖狀態更改操作通過發送鎖狀態更改通知同步至所述冗餘網絡設備,其中,所述鎖狀態更改通知包括第一鎖及第一鎖的第一狀態;
[0042]或者,
[0043]接收所述鎖狀態更改通知,根據所述鎖狀態更改通知的指示,將所述鎖配置表中第一鎖的狀態更改為第一狀態。所述網絡設備還用於,
[0044]結合第三方面或第三方面的第一種可能的實現方式或第三方面的第二種可能的實現方式,在第三方面的第三種可能的實現方式中,所述方法還包括:
[0045]所述網絡設備若確定所述第一鎖的狀態為使用狀態,則根據所述鎖配置表,在所述第一鎖的狀態恢復為未使用狀態時,生成授權所述第一節點使用所述第一鎖的授權信息並發送給所述第一節點。
[0046]結合第三方面、第三方面的第一種可能的實現方式至第三方面的第三種可能的實現方式任一項,在第三方面的第四種可能的實現方式中,在將所述授權信息發送給所述第一節點之前,所述方法還包括:
[0047]所述網絡設備將所述鎖配置表中所述第一鎖的狀態修改為使用狀態。
[0048]結合第三方面、第三方面的第一種可能的實現方式至第三方面的第四種可能的實現方式任一項,在第三方面的第五種可能的實現方式中,所述方法還包括:
[0049]所述網絡設備接收所述第一節點發送的故障信息;
[0050]所述網絡設備若確定所述第一鎖正在給所述第一節點授權使用,根據所述第一節點的故障信息,將所述鎖配置表中所述第一鎖的狀態修改為未使用狀態。
[0051]結合第三方面、第三方面的第一種可能的實現方式至第三方面的第五種可能的實現方式任一項,在第三方面的第六種可能的實現方式中,所述方法還包括:
[0052]所述網絡設備接收所述第一節點發送的釋放所述第一鎖的通知,其中,所述釋放所述第一鎖的通知包括所述第一鎖;
[0053]所述網絡設備根據所述第一節點釋放所述第一鎖的通知,將所述鎖配置表中所述第一鎖的狀態修改為未使用狀態;
[0054]所述網絡設備向所述第一節點發送所述第一鎖回收成功的通知。
[0055]本發明提供一種網絡設備、集群存儲系統及分布式鎖管理方法,通過部署在集群存儲系統的關鍵訪問路徑上的網絡設備接收第一節點發送的鎖申請信息,所述鎖申請信息包含所述第一節點申請訪問的資源標識;根據所述第一節點申請訪問的資源標識查詢鎖配置表,若確定第一鎖的狀態為未使用狀態,則生成授權所述第一節點使用所述第一鎖的授權信息,並將所述授權信息發送至所述第一節點,其中,所述鎖配置表包含資源標識信息、與所述資源標識一一對應的鎖、以及所述鎖的狀態信息,所述第一鎖為所述鎖配置表中與所述第一節點申請訪問的資源標識對應的鎖;所述授權信息包含所述第一鎖;實現高性能高可用性的分布式鎖管理。
【專利附圖】
【附圖說明】
[0056]為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對於本領域普通技術人員來講,還可以根據這些附圖獲得其他的附圖。
[0057]圖1為本發明實施例提供的一種集群存儲系統的結構示意圖;
[0058]圖2為本發明實施例提供的一種網絡設備的結構示意圖;
[0059]圖3為本發明實施例提供的一種分布式鎖管理方法的流程示意圖;
[0060]圖4為本發明實施例提供的另一種分布式鎖管理方法的流程示意圖。
【具體實施方式】
[0061]下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。
[0062]參見圖1,為一種集群存儲系統,該集群存儲系統包含所述網絡設備20、與網絡設備20直接連接的各個節點以及與網絡設備20通過硬體通道連接的冗餘網絡設備30,該網絡設備20部署在集群存儲系統的關鍵路徑上,當多個節點同時發送鎖申請信息時,可以避免公共通路中的進行來回通信,從而提高了分布式鎖的性能。
[0063]需要說明的是,將網絡設備20部署在集群存儲系統的關鍵路徑上,可以將網絡設備集群存儲系統的心跳交換機上或節點間的大背板上或其他關鍵路徑上,本發明對此不進行限制。[0064]本發明實施例以將網絡設備20部署在集群存儲系統的心跳交換機為例,對分布式鎖管理進行說明,例如,在圖1中所示的與各個節點直接連接的互為冗餘的心跳交換機A和冗餘心跳交換機B中分別部署網絡設備20和冗餘網絡設備30 ;其中,心跳交換機可以包括常用的PCIe交換機、千兆乙太網(Gigabit Ethernet,簡稱GE)交換機、萬兆乙太網(IOGigabit Ethernet,簡稱 10GE)交換機、IB (InfiniBand)交換機等;
[0065]需要說明的是,參見圖1,該集群存儲系統的關鍵路徑,即互為冗餘的心跳交換機A和冗餘心跳交換機B中分別部署網絡設備20和冗餘網絡設備30,冗餘網絡設備30與網絡設備20完全相同,網絡設備和冗餘網絡設備是相對的概念,互為冗餘,其中任意一個均可作為主網絡設備,另外一個作為冗餘網絡設備,兩個網絡設備20通過專用通道連接,主網絡設備可以將每次的操作通過專用通道同步至冗餘網絡設備中,這種雙冗餘鏡像同步的方式保證了數據的可靠性進而提高了集群存儲系統的可靠性。
[0066]一方面,本發明實施例提供一種用於分布式鎖管理的網絡設備20,以圖1所示的集群存儲系統中的主網絡設備為例,描述網絡設備20的裝置結構。
[0067]參見圖2,網絡設備20可以包括:處理器201,存儲器202,以及通信交換晶片203 ;
[0068]需要說明的是,網絡設備所包含的處理器201,存儲器202,以及通信交換晶片203可以復用網絡設備20在集群存儲系統中部署的關鍵路徑上的處理器、存儲器及通信交換晶片,也可以是單獨的處理器、存儲器及通信交換晶片,本發明對此不進行具體限制。
[0069]存儲器202可以為隨機存取存儲器,並向處理器201提供指令和數據。存儲器202的一部分還可以包括非易失行隨機存取存儲器(NVRAM)。存儲器202可以用來存儲分布式鎖管理過程中分布式鎖管理設備包含的所有信息。
[0070]處理器201可能是一個中央處理器(Central Processing Unit,簡稱為CPU),或者是特定集成電路(Application Specific Integrated Circuit,簡稱為ASIC),或者是被配置成實施本發明實施例的一個或多個集成電路。
[0071]其中,存儲器202可以用於存儲鎖配置表,鎖配置表包含資源標識、與資源標識一一對應的鎖、以及鎖的狀態信息;
[0072]資源標識是網絡設備20所管理的每個資源的唯一標識;與資源標識一一對應的鎖是節點訪問與資源標識對應資源時需要使用的「鑰匙」節點需要訪問資源時,需要向網絡設備20申請;鎖的狀態信息是指示鎖是否被節點使用,可以包括使用狀態和未使用狀態。
[0073]鎖配置表中包含的資源標識、與資源標識一一對應的鎖及鎖的狀態可以以表格的形式存儲於存儲器202中,例如,參見表1,為一種鎖配置表;需要說明的是,本發明實施例僅以表格形式為例說明存儲器202中的鎖配置表包含的內容及內容之間的對應關係,當然,鎖配置表還可以以其他形式存儲於存儲器202中,鎖配置表的具體形式可以根據實際需求進行確定,本發明對此不進行具體限定。
[0074]表I
[0075]
資源標識I鎖I鎖的狀態~
WMi未使用狀態
【權利要求】
1.一種用於分布式鎖管理的網絡設備,其特徵在於,應用於集群存儲系統,所述集群存儲系統包含所述網絡設備以及與所述網絡設備直接連接的各個節點,所述網絡設備包括:處理器,存儲器,以及通信交換晶片, 其中,所述存儲器用於,存儲鎖配置表,所述鎖配置表包含資源標識、與所述資源標識一一對應的鎖、以及所述鎖的狀態信息; 所述通信交換晶片用於,接收第一節點發送的鎖申請信息,以及將所述鎖申請信息傳輸至所述處理器,其中,所述鎖申請信息包含所述第一節點申請訪問的資源標識; 所述處理器用於,根據所述第一節點申請訪問的資源標識查詢所述存儲器中的鎖配置表,若確定第一鎖的狀態為未使用狀態,則生成授權所述第一節點使用所述第一鎖的授權信息,並將所述授權信息傳輸至所述通信交換晶片,其中,所述第一鎖為所述鎖配置表中與所述第一節點申請訪問的資源標識對應的鎖,所述授權信息中包含所述第一鎖; 所述通信交換晶片還用於,將所述授權信息發送至所述第一節點。
2.根據權利要求1所述的網絡設備,其特徵在於,所述網絡設備部署在集群存儲系統的關鍵訪問路徑上。
3.根據權利要求1或2所述的網絡設備,其特徵在於,所述網絡設備與冗餘網絡設備連接,其中,所述冗餘網絡設備是與 所述網絡設備通過硬體通道連接,且與所述網絡設備功能相同的網絡設備; 所述處理器還用於,將鎖狀態更改操作通過發送鎖狀態更改通知同步至所述冗餘網絡設備,其中,所述鎖狀態更改通知包括第一鎖及第一鎖的第一狀態;或者, 所述處理器還用於,接收所述鎖狀態更改通知,根據所述鎖狀態更改通知的指示,將所述鎖配置表中第一鎖的狀態更改為第一狀態。
4.根據權利要求1-3任一項所述的網絡設備,其特徵在於,所述處理器還用於: 若確定所述第一鎖的狀態為使用狀態,則根據所述鎖配置表,在所述第一鎖的狀態恢復為未使用狀態時,生成授權所述第一節點使用所述第一鎖的授權信息。
5.根據權利要求1-4任一項所述的網絡設備,其特徵在於,所述處理器還用於: 在將所述授權信息傳輸給所述通信交換晶片之前,將所述鎖配置表中所述第一鎖的狀態修改為使用狀態。
6.根據權利要求1-5任一項所述的網絡設備,其特徵在於, 所述通信交換晶片還用於,接收所述第一節點發送的故障信息,以及將所述第一節點的故障信息傳輸至所述處理器; 所述處理器還用於,若確定所述第一鎖正在給所述第一節點授權使用,根據所述第一節點的故障信息,將所述鎖配置表中所述第一鎖的狀態修改為未使用狀態。
7.根據權利要求1-6任一項所述的網絡設備,其特徵在於, 所述通信交換晶片還用於,接收所述第一節點發送的釋放所述第一鎖的通知,以及將所述第一節點釋放所述第一鎖的通知傳輸至所述處理器,其中,所述釋放所述第一鎖的通知包括所述第一鎖; 所述處理器還用於,根據所述第一節點釋放所述第一鎖的通知,將所述鎖配置表中所述第一鎖的狀態修改為未使用狀態,生成第一鎖回收成功的通知並傳輸至通信交換晶片;所述通信交換晶片還用於,向所述第一節點發送所述第一鎖回收成功的通知。
8.一種集群存儲系統,其特徵在於,包括, 如權利要求1-7任一項所述的網絡設備; 與所述網絡設備連接的N個節點,其中,所述N大於等於2 ; 冗餘網絡設備,所述冗餘網絡設備與所述網絡設備通過硬體通道連接,且與所述網絡設備功能相同; 所述網絡設備用於,將鎖狀態更改操作通過發送鎖狀態更改通知同步至所述冗餘網絡設備,其中,所述鎖狀態更改通知包括第一鎖及第一鎖的第一狀態; 所述冗餘網絡設備用於,接收所述鎖狀態更改通知,根據所述鎖狀態更改通知的指示,將所述鎖配置表中第一鎖的狀態更改為第一狀態。
9.一種分布式鎖管理方法,其特徵在於,應用於集群存儲系統,所述集群存儲系統包含所述網絡設備以及與所述網絡設備直接連接的各個節點,所述方法包括: 所述網絡設備接收第一節點發送的鎖申請信息,所述鎖申請信息包含所述第一節點申請訪問的資源標識; 所述網絡設備根據所述第一節點申請訪問的資源標識查詢鎖配置表,若確定第一鎖的狀態為未使用狀態,則生成授權所述第一節點使用所述第一鎖的授權信息,並將所述授權信息發送至所述第一節點,其中,所述鎖配置表包含資源標識信息、與所述資源標識一一對應的鎖、以及所述鎖的狀態信息,所述第一鎖為所述鎖配置表中與所述第一節點申請訪問的資源標識對應的鎖;所述授權信息包含所述第一鎖。
10.根據權利要求9所述的分布式鎖管理方法,其特徵在於,所述網絡設備部署在集群存儲系統的關鍵訪問路徑上。
11.根據權利要求9或10所`述的分布式鎖管理方法,其特徵在於,所述方法還包括, 將鎖狀態更改操作通過發送鎖狀態更改通知同步至所述冗餘網絡設備,其中,所述鎖狀態更改通知包括所述第一鎖及第一狀態; 或者, 接收所述鎖狀態更改通知,根據所述鎖狀態更改通知的指示,將所述鎖配置表中所述第一鎖的狀態更改為第一狀態。
12.根據權利要求9-11任一項所述的分布式鎖管理方法,其特徵在於,所述方法還包括: 所述網絡設備若確定所述第一鎖的狀態為使用狀態,則根據所述鎖配置表,在所述第一鎖的狀態恢復為未使用狀態時,生成授權所述第一節點使用所述第一鎖的授權信息並發送給所述第一節點。
13.根據權利要求9-12任一項所述的分布式鎖管理方法,其特徵在於,在將所述授權信息發送給所述第一節點之前,所述方法還包括: 所述網絡設備將所述鎖配置表中所述第一鎖的狀態修改為使用狀態。
14.根據權利要求9-13任一項所述的分布式鎖管理方法,其特徵在於,所述方法還包括: 所述網絡設備接收所述第一節點發送的故障信息; 所述網絡設備若確定所述第一鎖正在給所述第一節點授權使用,根據所述第一節點的故障信息,將所述鎖配置表中所述第一鎖的狀態修改為未使用狀態。
15.根據權利要求9-14任一項所述的分布式鎖管理方法,其特徵在於,所述方法還包括: 所述網絡設備接收所述第一節點發送的釋放所述第一鎖的通知,其中,所述釋放所述第一鎖的通知包括所述第一鎖; 所述網絡設備根據所述第一節點釋放所述第一鎖的通知,將所述鎖配置表中所述第一鎖的狀態修改為未使用狀態; 所述網絡設備向所述第一節`點發送所述第一鎖回收成功的通知。
【文檔編號】H04L29/08GK103731485SQ201310728958
【公開日】2014年4月16日 申請日期:2013年12月26日 優先權日:2013年12月26日
【發明者】胡華, 梁明旭, 易永江 申請人:華為技術有限公司