用于訪問存儲集群中的邏輯存儲的方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明的各實施方式涉及存儲管理,更具體地,涉及用于訪問存儲集群(storagecluster)中的邏輯存儲(logical storage)的方法和裝置。
【背景技術(shù)】
[0002]隨著數(shù)據(jù)存儲技術(shù)的發(fā)展,各種數(shù)據(jù)存儲設(shè)備已經(jīng)能夠向用戶提供越來越高的數(shù)據(jù)存儲能力,并且數(shù)據(jù)訪問速度也有了很大程度的提高。另外,網(wǎng)絡(luò)技術(shù)的發(fā)展為數(shù)據(jù)存儲開拓了新方向,數(shù)據(jù)存儲設(shè)備不再局限于被部署在訪問設(shè)備的本地,而是可以位于經(jīng)由網(wǎng)絡(luò)可訪問的任何物理位置。
[0003]目前,已經(jīng)提出了由存儲集群向廣大用戶提供數(shù)據(jù)存儲功能的技術(shù)方案。在此技術(shù)方案中,存儲集群可以包括分布于多個物理位置的多個存儲服務(wù)器。而對于存儲集群的用戶而言,用戶可以不必關(guān)心正在訪問的存儲服務(wù)器的物理位置,而是可以簡單地通過訪問存儲集群向外部展現(xiàn)的邏輯存儲,來執(zhí)行數(shù)據(jù)讀寫操作。
[0004]為了提高數(shù)據(jù)的可靠性,存儲集群可以在多個物理位置部署存儲服務(wù)器,并且在多個存儲服務(wù)器中針對相同數(shù)據(jù)來提供多個副本,以便當(dāng)存儲集群中的一個或者多個存儲服務(wù)器出現(xiàn)故障時,可以由其他的存儲服務(wù)器來向用戶提供服務(wù)。例如,存儲服務(wù)的提供者可以將存儲服務(wù)器分別部署在例如北京和上海等多個城市,而當(dāng)用戶經(jīng)由客戶端來針對邏輯存儲進行讀寫操作時,用戶無需知曉存儲集群內(nèi)部的拓?fù)浣Y(jié)構(gòu)。
[0005]在客戶端處,邏輯存儲可以邏輯單元號(Logical Unit Number, LUN),具體地,可以表現(xiàn)為邏輯盤的形式(假設(shè)用戶的客戶端設(shè)備中存在物理存儲“C:盤”和“D:盤”,邏輯盤例如可以單獨呈現(xiàn)為“F:盤”的形式)。此時用戶僅需點擊該“F:盤”即可使用存儲集群提供的存儲服務(wù)。通常而言,邏輯存儲被指定了優(yōu)選節(jié)點(即,存儲集群中的存儲控制器),該優(yōu)選節(jié)點用于控制允許客戶端設(shè)備與邏輯存儲被映射至的物理存儲之間的通信。
[0006]在分布式的存儲集群中可能會出現(xiàn)一種情況,例如,位于北京的用戶希望訪問特定的虛擬存儲(例如,“F:盤”),并且該虛擬存儲的優(yōu)選節(jié)點是位于上海的存儲控制器,因而需要在北京和上海之間經(jīng)由網(wǎng)絡(luò)來傳輸數(shù)據(jù)。此時,將會由于北京和上海的物理位置相距過遠或者之間的網(wǎng)絡(luò)通信帶寬并不理想,而出現(xiàn)存儲集群對于來自用戶的數(shù)據(jù)訪問的響應(yīng)時間變長、數(shù)據(jù)訪問效率下降等問題。因而,在存儲集群中如何提高數(shù)據(jù)訪問效率成為一項研究熱點。
【發(fā)明內(nèi)容】
[0007]因而,期望能夠開發(fā)并實現(xiàn)一種能夠縮短存儲集群的響應(yīng)時間、進而提高數(shù)據(jù)訪問效率的技術(shù)方案。另外,還期望該技術(shù)方案僅涉及存儲集群內(nèi)部的修改,而對于客戶端而言是透明的,進而使得客戶端在無需了解存儲集群內(nèi)部的細(xì)節(jié)的情況下執(zhí)行高效的數(shù)據(jù)訪問操作。
[0008]根據(jù)本發(fā)明的一個方面,提供了一種用于訪問存儲集群中的邏輯存儲的方法,存儲集群包括位于不同位置的多個站點,多個站點中的每一個站點包括對應(yīng)于邏輯存儲的副本,方法包括:響應(yīng)于接收到來自客戶端的訪問請求,獲取客戶端的位置;至少基于多個站點的位置與客戶端的位置之間的距離,從多個站點中選擇一站點;通過訪問所選擇的站點中的副本來訪問邏輯存儲。
[0009]根據(jù)本發(fā)明的一個方面,至少基于多個站點的位置與客戶端的位置之間的距離,從多個站點中選擇一站點包括:按照從近到遠的順序從多個站點中選擇一站點;或者按照從近到遠的順序從多個站點中選擇一站點,以及響應(yīng)于所選擇的站點為異常,按照從近到遠的順序從多個站點中選擇下一站點。
[0010]根據(jù)本發(fā)明的一個方面,多個站點中的站點是基于存儲集群的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),按照存儲集群中的存儲控制器的位置而劃分的。
[0011]在本發(fā)明的一個實施方式中,提供了一種用于訪問存儲集群中的邏輯存儲的裝置,存儲集群包括位于不同位置的多個站點,多個站點中的每一個站點包括對應(yīng)于邏輯存儲的副本,裝置包括:獲取模塊,配置用于響應(yīng)于接收到來自客戶端的訪問請求,獲取客戶端的位置;選擇模塊,配置用于至少基于多個站點的位置與客戶端的位置之間的距離,從多個站點中選擇一站點;訪問模塊,配置用于通過訪問所選擇的站點中的副本來訪問邏輯存儲。
[0012]在本發(fā)明的一個實施方式中,選擇模塊包括:第一選擇模塊,配置用于按照從近到遠的順序從多個站點中選擇一站點;或者第二選擇模塊,配置用于按照從近到遠的順序從多個站點中選擇一站點,以及響應(yīng)于所選擇的站點為異常,按照從近到遠的順序從多個站點中選擇下一站點。
[0013]在本發(fā)明的一個實施方式中,多個站點中的站點是基于存儲集群的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),按照存儲集群中的存儲控制器的位置而劃分的。
[0014]可以在盡量不改變存儲集群的現(xiàn)有配置的情況下實現(xiàn)根據(jù)本發(fā)明的各個實施方式的方法和裝置。具體地,基于存儲集群中的存儲控制器和存儲服務(wù)器的位置關(guān)系,將存儲集群劃分為不同的站點,并且由靠近客戶端的站點中的存儲控制器和存儲服務(wù)器,來響應(yīng)于來自客戶端的請求。以此方式,可以大大降低由于網(wǎng)絡(luò)傳輸延遲等因素造成的響應(yīng)延遲,進而提高數(shù)據(jù)訪問效率。
【附圖說明】
[0015]通過結(jié)合附圖對本公開示例性實施方式進行更詳細(xì)的描述,本公開的上述以及其他目的、特征和優(yōu)勢將變得更加明顯,其中,在本公開示例性實施方式中,相同的參考標(biāo)號通常代表相同部件。
[0016]圖1示意性示出了適于用來實現(xiàn)本發(fā)明實施方式的示例性計算機系統(tǒng)/服務(wù)器12的框圖;
[0017]圖2示意性示出了根據(jù)一個技術(shù)方案的存儲集群的架構(gòu)的示意圖;
[0018]圖3示意性示出了根據(jù)本發(fā)明一個實施方式的存儲集群的架構(gòu)的示意圖;
[0019]圖4示意性示出了根據(jù)本發(fā)明一個實施方式的用于訪問存儲集群中的邏輯存儲的方法的流程圖;
[0020]圖5示意性示出了根據(jù)本發(fā)明一個實施方式的針對存儲集群中的邏輯存儲執(zhí)行讀取操作的示意圖;
[0021]圖6示意性示出了根據(jù)本發(fā)明一個實施方式的針對存儲集群中的邏輯存儲執(zhí)行寫入操作的示意圖;以及
[0022]圖7示意性示出了根據(jù)本發(fā)明一個實施方式的用于訪問存儲集群中的邏輯存儲的裝置的示意圖。
【具體實施方式】
[0023]下面將參照附圖更詳細(xì)地描述本公開的優(yōu)選實施方式。雖然附圖中顯示了本公開的優(yōu)選實施方式,然而應(yīng)該理解,可以以各種形式實現(xiàn)本公開而不應(yīng)被這里闡述的實施方式所限制。相反,提供這些實施方式是為了使本公開更加透徹和完整,并且能夠?qū)⒈竟_的范圍完整地傳達給本領(lǐng)域的技術(shù)人員。
[0024]圖1示出了適于用來實現(xiàn)本發(fā)明實施方式的示例性計算機系統(tǒng)/服務(wù)器12的框圖。圖1顯示的計算機系統(tǒng)/服務(wù)器12僅僅是一個示例,不應(yīng)對本發(fā)明實施方式的功能和使用范圍帶來任何限制。
[0025]如圖1所示,計算機系統(tǒng)/服務(wù)器12以通用計算設(shè)備的形式表現(xiàn)。計算機系統(tǒng)/服務(wù)器12的組件可以包括但不限于:一個或者多個處理器或者處理單元16,系統(tǒng)存儲器28,連接不同系統(tǒng)組件(包括系統(tǒng)存儲器28和處理單元16)的總線18。
[0026]總線18表示幾類總線結(jié)構(gòu)中的一種或多種,包括存儲器總線或者存儲器控制器,外圍總線,圖形加速端口,處理器或者使用多種總線結(jié)構(gòu)中的任意總線結(jié)構(gòu)的局域總線。舉例來說,這些體系結(jié)構(gòu)包括但不限于工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ISA)總線,微通道體系結(jié)構(gòu)(MAC)總線,增強型ISA總線、視頻電子標(biāo)準(zhǔn)協(xié)會(VESA)局域總線以及外圍組件互連(PCI)總線。
[0027]計算機系統(tǒng)/服務(wù)器12典型地包括多種計算機系統(tǒng)可讀介質(zhì)。這些介質(zhì)可以是任何能夠被計算機系統(tǒng)/服務(wù)器12訪問的可用介質(zhì),包括易失性和非易失性介質(zhì),可移動的和不可移動的介質(zhì)。
[0028]系統(tǒng)存儲器28可以包括易失性存儲器形式的計算機系統(tǒng)可讀介質(zhì),例如隨機存取存儲器(RAM) 30和/或高速緩存存儲器32。計算機系統(tǒng)/服務(wù)器12可以進一步包括其他可移動/不可移動的、易失性/非易失性計算機系統(tǒng)存儲介質(zhì)。僅作為舉例,存儲系統(tǒng)34可以用于讀寫不可移動的、非易失性磁介質(zhì)(圖1未顯示,通常稱為“硬盤驅(qū)動器”)。盡管圖1中未示出,可以提供用于對可移動非易失性磁盤(例如“軟盤”)讀寫的磁盤驅(qū)動器,以及對可移動非易失性光盤(例如⑶-ROM,DVD-ROM或者其他光介質(zhì))讀寫的光盤驅(qū)動器。在這些情況下,每個驅(qū)動器可以通過一個或者多個數(shù)據(jù)介質(zhì)接口與總線18相連。存儲器28可以包括至少一個程序產(chǎn)品,該程序產(chǎn)品具有一組(例如至少一個)程序模塊,這些程序模塊被配置以執(zhí)行本發(fā)明各實施方式的功能。
[0029]具有一組(至少一個)程序模塊42的程序/實用工具40,可以存儲在例如存儲器28中,這樣的程序模塊42包括——但不限于——操作系統(tǒng)、一個或者多個應(yīng)用程序、其他程序模塊以及程序數(shù)據(jù),這些示例中的每一個或某種組合中可能包括網(wǎng)絡(luò)環(huán)境的實現(xiàn)。程序模塊42通常執(zhí)行本發(fā)明所描述的實施方式中的功能和/或方法。
[0030]計算機系統(tǒng)/服務(wù)器12也可以與一個或多個外部設(shè)備14 (例如鍵盤、指向設(shè)備、顯示器24等)通信,還可與一個或者多個使得用戶能與該計算機系統(tǒng)/服務(wù)器12交互的設(shè)備通信,和/或與使得該計算機系統(tǒng)/服務(wù)器12能與一個或多個其他計算設(shè)備進行通信的任何設(shè)備(例如網(wǎng)卡,調(diào)制解調(diào)器等等)通信。這種通信可以通過輸入/輸出(I/O)接口 22進行。并且,計算機系統(tǒng)/服務(wù)器12還可以通過網(wǎng)絡(luò)適配器20與一個或者多個網(wǎng)絡(luò)(例如局域