專利名稱:集群讀寫方法、裝置、系統(tǒng)及控制器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信領(lǐng)域,具體而言,涉及一種集群讀寫方法、裝置、系統(tǒng)及控制器。
背景技術(shù):
在相關(guān)技術(shù)的集群設(shè)備中,通常是把讀寫節(jié)點(diǎn)和存儲(chǔ)節(jié)點(diǎn)結(jié)合在一起,各個(gè)讀寫 節(jié)點(diǎn)分別對(duì)相應(yīng)的存儲(chǔ)節(jié)點(diǎn)進(jìn)行讀取,這樣的缺點(diǎn)是讀寫節(jié)點(diǎn)(讀寫裝置)的性能不能隨 意的增加,要想增加性能就必須增加容量,擴(kuò)展性差。圖1是根據(jù)相關(guān)技術(shù)的集群讀寫系統(tǒng)的示意圖。如圖1所示,在該集群讀寫系統(tǒng)中包括多個(gè)讀寫服務(wù)器,該多個(gè)讀寫服務(wù)器構(gòu)成 集群讀寫裝置,在該集群讀寫系統(tǒng)中,各個(gè)讀寫服務(wù)器分別對(duì)存儲(chǔ)器中的數(shù)據(jù)進(jìn)行讀寫。其 中,該圖中所示的存儲(chǔ)器可以為一個(gè)存儲(chǔ)器,各個(gè)讀寫服務(wù)器對(duì)存儲(chǔ)區(qū)中的不同存儲(chǔ)區(qū)進(jìn) 行讀寫操作,也可以為多個(gè)存儲(chǔ)器。但是,在該技術(shù)中,當(dāng)某個(gè)讀寫服務(wù)器發(fā)生故障或者讀 寫超負(fù)荷時(shí),往往會(huì)造成讀寫數(shù)據(jù)比較慢的問題,并且在對(duì)該集群讀寫裝置進(jìn)行拓展比較 復(fù)雜。針對(duì)相關(guān)技術(shù)中集群讀寫裝置的性能拓展性差的問題,目前尚未提出有效的解決 方案。
發(fā)明內(nèi)容
針對(duì)集群讀寫裝置的性能拓展性差的問題而提出本發(fā)明,為此,本發(fā)明的主要目 的在于提供一種集群讀寫方法、裝置、系統(tǒng)及控制器,以解決上述問題。為了實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的一個(gè)方面,提供了 一種集群讀寫方法。該集群讀 寫方法包括將待讀寫文件的元數(shù)據(jù)信息傳遞至應(yīng)用服務(wù)器;將讀寫服務(wù)器的地址傳遞至 所述應(yīng)用服務(wù)器;以及根據(jù)所述讀寫服務(wù)器的地址控制所述讀寫服務(wù)器對(duì)所述待讀寫文件 的元數(shù)據(jù)信息進(jìn)行讀取。為了實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的另一方面,提供了 一種集群讀寫裝置。該集群讀 寫裝置包括多個(gè)讀寫服務(wù)器;以及控制器,連接于所述多個(gè)讀寫服務(wù)器和存儲(chǔ)器之間,用 于控制各個(gè)讀寫服務(wù)器對(duì)所述存儲(chǔ)器中數(shù)據(jù)的讀寫。為了實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的另一方面,提供了一種集群讀寫系統(tǒng)。該集群 讀寫系統(tǒng)包括存儲(chǔ)器,用于存儲(chǔ)數(shù)據(jù)文件;上述的任意一種集群讀寫裝置;以及應(yīng)用服務(wù) 器,經(jīng)由所述集群讀寫裝置與所述存儲(chǔ)器相連接。為了實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的另一方面,提供了一種控制器。該控制器包括 第一傳遞模塊,用于將待讀寫文件的元數(shù)據(jù)信息傳遞至應(yīng)用服務(wù)器;第二傳遞模塊,用于將 讀寫服務(wù)器的地址傳遞至所述應(yīng)用服務(wù)器;以及控制模塊,用于根據(jù)所述讀寫服務(wù)器的地 址控制所述讀寫服務(wù)器對(duì)所述待讀寫文件的元數(shù)據(jù)信息進(jìn)行讀取。本發(fā)明通過采用以下結(jié)構(gòu)的集群讀寫裝置多個(gè)讀寫服務(wù)器;控制器,連接于所 述多個(gè)服務(wù)器和存儲(chǔ)器之間,用于控制各個(gè)讀寫服務(wù)器對(duì)所述存儲(chǔ)器中數(shù)據(jù)的讀寫,解決了集群讀寫裝置的性能拓展性差的問題,進(jìn)而達(dá)到了提高集群讀寫裝置的拓展性的效果。
此處所說明的附圖用來(lái)提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本發(fā) 明的示意性實(shí)施例及其說明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中圖1是根據(jù)相關(guān)技術(shù)的集群讀寫系統(tǒng)的示意圖;圖2是根據(jù)本發(fā)明實(shí)施例的集群讀寫系統(tǒng)的示意圖;圖3a是根據(jù)本發(fā)明第一實(shí)施例的集群讀寫裝置的示意圖;圖3b是根據(jù)本發(fā)明第二實(shí)施例的集群讀寫裝置的示意圖;圖4是根據(jù)本發(fā)明第三實(shí)施例的集群讀寫裝置的示意圖;圖5是根據(jù)本發(fā)明第四實(shí)施例的集群讀寫裝置的示意圖;圖6是根據(jù)本發(fā)明第五實(shí)施例的集群讀寫裝置的示意圖;圖7是根據(jù)本發(fā)明實(shí)施例的集群讀寫方法的流程圖;圖8是根據(jù)本發(fā)明實(shí)施例的集群讀寫控制器的示意圖。
具體實(shí)施例方式需要說明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相 互組合。下面將參考附圖并結(jié)合實(shí)施例來(lái)詳細(xì)說明本發(fā)明。根據(jù)本發(fā)明的實(shí)施例,提供了一種集群讀寫方法、裝置及系統(tǒng)。圖2是根據(jù)本發(fā)明實(shí)施例的集群讀寫系統(tǒng)的示意圖。如圖2所示,該系統(tǒng)包括存儲(chǔ)器30、集群讀寫裝置20和應(yīng)用服務(wù)器10,其中,所述 應(yīng)用服務(wù)器10經(jīng)由所述集群讀寫裝置20與所述存儲(chǔ)器30相連接。其中,在存儲(chǔ)器30中存儲(chǔ)有數(shù)據(jù)文件,應(yīng)用服務(wù)器10利用集群讀寫裝置對(duì)存儲(chǔ)器 30進(jìn)行讀寫。上述集群讀寫系統(tǒng)還可以包括第二交換機(jī),與應(yīng)用服務(wù)器相連接;以及第二背 板,設(shè)置于第二交換機(jī)和應(yīng)用服務(wù)器之間。圖3a是根據(jù)本發(fā)明第一實(shí)施例的集群讀寫裝置的示意圖。如圖3a所示,該集群讀寫裝置包括多個(gè)讀寫服務(wù)器和控制器,其中,控制器連接 于多個(gè)服務(wù)器和存儲(chǔ)器之間,用于控制各個(gè)讀寫服務(wù)器對(duì)存儲(chǔ)器中數(shù)據(jù)的讀寫。在該實(shí)施例中,由于控制器連接于多個(gè)讀寫服務(wù)器和存儲(chǔ)器之間,并且能夠?qū)Χ?個(gè)讀寫服務(wù)器對(duì)存儲(chǔ)器的讀寫進(jìn)行控制,對(duì)各個(gè)讀寫服務(wù)器的讀寫情況進(jìn)行監(jiān)控和資源調(diào) 配,從而能夠避免部分讀寫服務(wù)器讀寫超負(fù)荷的問題,有利于提高整個(gè)集群讀寫裝置的讀 寫能力,進(jìn)一步地,在該實(shí)施例中,由于控制器對(duì)多個(gè)服務(wù)器的讀寫進(jìn)行綜合控制,因而,在 集群讀寫裝置中讀寫服務(wù)器讀寫能力不足,需要增加讀寫服務(wù)器時(shí),僅需要增加與控制器 連接的讀寫服務(wù)器的數(shù)量,就可以實(shí)現(xiàn)對(duì)存儲(chǔ)器中各個(gè)部分?jǐn)?shù)據(jù)的讀寫操作,因而可以方 便地實(shí)現(xiàn)對(duì)集群讀裝置進(jìn)行拓展,提高了集群讀寫裝置的拓展性。優(yōu)選地,上述的控制器可以用于對(duì)存儲(chǔ)器的數(shù)據(jù)進(jìn)行讀寫,即作為一個(gè)讀寫節(jié)點(diǎn) 或者讀寫服務(wù)器。例如,該讀寫單元可以為具有讀寫功能的單片機(jī)或CPU。上述的讀寫服務(wù) 器也可以作為控制器。通過該實(shí)施例,極大了提高了集群系統(tǒng)的靈活性和集群系統(tǒng)內(nèi)的部
5件的互換性。在本發(fā)明中,集群讀寫裝置實(shí)現(xiàn)的數(shù)據(jù)存儲(chǔ)管理是將存儲(chǔ)的數(shù)據(jù)文件邏輯分為兩 部分,一是文件的基本屬性,包括文件名、文件大小、文件創(chuàng)建及修改時(shí)間、文件存儲(chǔ)位置 等,這類信息我們稱之為文件的元數(shù)據(jù)信息;另一個(gè)就是這個(gè)數(shù)據(jù)文件存儲(chǔ)的數(shù)據(jù)內(nèi)容,我 們稱之為文件的數(shù)據(jù)體。圖3b是根據(jù)本發(fā)明第二實(shí)施例的集群讀寫裝置的示意圖。如圖3b所示,集群讀寫裝置中將部署兩個(gè)網(wǎng)絡(luò)一個(gè)是用于實(shí)現(xiàn)元數(shù)據(jù)在刀片控 制器和刀片讀寫節(jié)點(diǎn)之間傳輸?shù)囊蕴W(wǎng)絡(luò),另一個(gè)就是用于文件內(nèi)容存儲(chǔ)訪問的存儲(chǔ)區(qū)域 網(wǎng)絡(luò)(Storage-Area-Network),簡(jiǎn)稱SAN存儲(chǔ)網(wǎng)絡(luò)。刀片控制器本身可不負(fù)責(zé)對(duì)數(shù)據(jù)文件 數(shù)據(jù)體的訪問,當(dāng)?shù)镀x寫節(jié)點(diǎn),即刀片服務(wù)器希望讀取已經(jīng)存儲(chǔ)在集群讀寫裝置中的數(shù) 據(jù)文件時(shí),它只需要首先通過以太網(wǎng)絡(luò)(稱之為元數(shù)據(jù)網(wǎng)絡(luò),優(yōu)選地,該網(wǎng)絡(luò)僅用于元數(shù)據(jù) 信息傳輸,有助于提高集群讀寫裝置的讀寫性能)向刀片控制器發(fā)出請(qǐng)求,由刀片控制器 決定該文件是否可用并且該刀片服務(wù)器的應(yīng)用或用戶是否有權(quán)訪問此文件。如果此文件可 被授權(quán)訪問,則刀片控制器可將此數(shù)據(jù)在存儲(chǔ)設(shè)備中的存儲(chǔ)位置發(fā)送回該刀片服務(wù)器,該 刀片服務(wù)器就可以直接通過高速的光纖網(wǎng)絡(luò)訪問該文件了 ;對(duì)于新文件的創(chuàng)建,刀片控制 器將根據(jù)策略在存儲(chǔ)設(shè)備中分配給這臺(tái)請(qǐng)求存儲(chǔ)空間的刀片服務(wù)器足夠的存儲(chǔ)地址,在集 群讀寫裝置客戶端得到這些地址信息后,將通過光纖鏈路直接實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)。在此數(shù)據(jù)存 儲(chǔ)操作完成后,刀片控制器將及時(shí)更新各讀寫節(jié)點(diǎn)(集群讀寫裝置的刀片讀寫節(jié)點(diǎn))的存 儲(chǔ)信息,以確保數(shù)據(jù)在所有集群讀寫裝置節(jié)點(diǎn)間的數(shù)據(jù)訪問同步。圖4是根據(jù)本發(fā)明第三實(shí)施例的集群讀寫裝置的示意圖;優(yōu)選地,上述的控制器包括主用控制器,用于控制各個(gè)讀寫服務(wù)器對(duì)存儲(chǔ)器中數(shù) 據(jù)的讀寫;備用控制器,用于在主用控制器發(fā)生故障的情況下,控制各個(gè)讀寫服務(wù)器對(duì)存儲(chǔ) 器的讀寫。實(shí)現(xiàn)主、備控制器的存儲(chǔ)結(jié)構(gòu),組成雙機(jī)高可用系統(tǒng),采用主備方式的雙機(jī)高可 用模式,以保證當(dāng)正常運(yùn)行在主刀片控制器的集群讀寫裝置集群讀寫裝置管理功能出現(xiàn)故 障時(shí),這一功能可在限定的時(shí)間內(nèi)切換到另一臺(tái)刀片服務(wù)器中,不會(huì)對(duì)用戶正在生產(chǎn)的業(yè) 務(wù)系統(tǒng)運(yùn)行產(chǎn)生任何影響。這兩臺(tái)刀片服務(wù)器都可稱之為刀片控制器,正在實(shí)現(xiàn)文件系統(tǒng) 管理的刀片服務(wù)器為主刀片控制器,也稱為“刀片讀寫節(jié)點(diǎn)控制器(主)”),即作為主用 控制器。處于備用狀態(tài)的刀片服務(wù)器稱之為備刀片控制器,也稱為“刀片讀寫節(jié)點(diǎn)控制器 (備)”,即作為備用控制器。主刀片控制器和備刀片控制器都可以對(duì)存儲(chǔ)器的數(shù)據(jù)進(jìn)行讀 寫。采用以上存儲(chǔ)架構(gòu)可實(shí)現(xiàn)共享存儲(chǔ)中的數(shù)據(jù)以文件形式實(shí)現(xiàn)訪問,可實(shí)現(xiàn)基于工 作流的數(shù)據(jù)存儲(chǔ)管理服務(wù),以提升部門之間、人員之間的協(xié)同工作能力,提升工作生產(chǎn)效 率、數(shù)據(jù)訪問及管理效率。同時(shí),虛擬化的、文件級(jí)數(shù)據(jù)共享存儲(chǔ)訪問提高了數(shù)據(jù)存儲(chǔ)資料 的利用率,同時(shí)更為存儲(chǔ)系統(tǒng)的按需擴(kuò)充奠定了堅(jiān)實(shí)基礎(chǔ)。上述的集群讀寫裝置及系統(tǒng)可以實(shí)現(xiàn)多個(gè)刀片服務(wù)器并發(fā)共享訪問同一個(gè)文件。圖5是根據(jù)本發(fā)明第四實(shí)施例的集群讀寫裝置的示意圖。如圖5所示,上述集群讀寫裝置還可以包括第一交換機(jī),與存儲(chǔ)器相連接;第一 背板,設(shè)置于讀寫服務(wù)器和第一交換機(jī)之間。第一背板可以設(shè)置在機(jī)架上,通過第一背板可 以將讀寫服務(wù)器和第一交換機(jī)連接起來(lái)。
圖6是根據(jù)本發(fā)明第五實(shí)施例的集群讀寫裝置的示意圖。讀寫服務(wù)器設(shè)置于機(jī)架上,控制器與一個(gè)或者多個(gè)機(jī)架上的讀寫服務(wù)器相連接。 這樣,可以利用一個(gè)控制器控制多個(gè)機(jī)架上的讀寫服務(wù)器,而不必在每一個(gè)機(jī)架上設(shè)置一 個(gè)控制器,減少了控制器的設(shè)置,降低了成本,而且便于通過增加機(jī)架和讀寫服務(wù)器的方式 進(jìn)行讀寫性能的擴(kuò)展。如圖6所示,在一個(gè)集群讀寫系統(tǒng)中可以包括多個(gè)集群讀寫裝置。讀寫服務(wù)器為刀片服務(wù)器,控制器設(shè)置于機(jī)架上。其中,讀寫服務(wù)器和控制器可以 共同設(shè)置于機(jī)架上。作為一個(gè)基于存儲(chǔ)區(qū)域網(wǎng)絡(luò)存儲(chǔ)架構(gòu)的集群讀寫裝置,集群讀寫裝置可以比傳統(tǒng) 直連存儲(chǔ)模式在數(shù)據(jù)訪問和管理方面提供明顯的好處分配存儲(chǔ)資源更容易。通過取代以每個(gè)主機(jī)為單位供應(yīng)和跟蹤存儲(chǔ)資源,集群讀 寫裝置實(shí)現(xiàn)了可以被許多主機(jī)同時(shí)訪問的存儲(chǔ)管理方式??梢约羞M(jìn)行存儲(chǔ)資源分配、管 理和保護(hù)數(shù)據(jù)等管理工作。一個(gè)集群讀寫裝置消除了存儲(chǔ)冗余度,因?yàn)楹芏嘀鳈C(jī)不必保存 同一文件的多個(gè)副本。這不僅提高了存儲(chǔ)系統(tǒng)總體的利用率,而且降低了數(shù)據(jù)備份和其他 數(shù)據(jù)保護(hù)應(yīng)用的負(fù)擔(dān)。數(shù)據(jù)的可用性更好,因?yàn)閿?shù)據(jù)不再綁定在某個(gè)單獨(dú)的刀片服務(wù)器上。 如果一臺(tái)主機(jī)不可用,其它主機(jī)依然可以訪問共享數(shù)據(jù)。大大提高了生產(chǎn)效率、降低網(wǎng)絡(luò)帶 寬瓶頸。在一個(gè)通過存儲(chǔ)區(qū)域網(wǎng)絡(luò)實(shí)現(xiàn)刀片服務(wù)器與存儲(chǔ)設(shè)備連接的生產(chǎn)環(huán)境中,刀片服 務(wù)器可通過光纖鏈路實(shí)現(xiàn)共享存儲(chǔ)的基于塊級(jí)的數(shù)據(jù)共享訪問,但這種訪問是基于物理層 面的,以前往往是服務(wù)于數(shù)據(jù)庫(kù)系統(tǒng)的。集群讀寫裝置可使得這些刀片服務(wù)器可實(shí)現(xiàn)文件 級(jí)的邏輯層面的數(shù)據(jù)共享,同時(shí)這些文件數(shù)據(jù)的訪問鏈路依舊是基于光纖的。也就是說所 有的刀片服務(wù)器都可以通過光纖鏈路直接共享訪問這些數(shù)據(jù)文件。因此采用集群讀寫裝置 集群讀寫裝置能夠有效利用存儲(chǔ)區(qū)域網(wǎng)絡(luò)保證系統(tǒng)中的各刀片服務(wù)器對(duì)共享磁盤陣列中 數(shù)據(jù)訪問的性能要求。如上圖所示,在具體的系統(tǒng)部署中,我們通常將集群讀寫裝置的管理節(jié)點(diǎn),稱之為 刀片控制器(Metadata Server或Metadata Controller),在其他的基于光纖鏈路訪問共享 存儲(chǔ)中數(shù)據(jù)的刀片服務(wù)器稱之為集群讀寫裝置。在刀片控制器和其他集群讀寫裝置中,通 過在客戶端中部署集群讀寫裝置軟件,實(shí)現(xiàn)整個(gè)系統(tǒng)中的多臺(tái)刀片服務(wù)器共享存儲(chǔ)在光纖 磁盤陣列上的數(shù)據(jù)文件。通過上述設(shè)置,刀片控制器可以對(duì)所有刀片服務(wù)器實(shí)現(xiàn)數(shù)據(jù)訪問 集中控制。圖7是根據(jù)本發(fā)明實(shí)施例的集群讀寫方法的流程圖。如圖7所示,該集群讀寫方 法包括以下步驟步驟S602,將待讀寫文件的元數(shù)據(jù)信息傳遞至應(yīng)用服務(wù)器。步驟S604,將讀寫服務(wù)器的地址傳遞至所述應(yīng)用服務(wù)器。步驟S606,根據(jù)所述讀寫服務(wù)器的地址控制所述讀寫服務(wù)器對(duì)所述待讀寫文件的 元數(shù)據(jù)信息進(jìn)行讀取。在該步驟中,根據(jù)所述讀寫服務(wù)器的地址控制所述讀寫服務(wù)器對(duì)所述待讀寫文件 的元數(shù)據(jù)信息進(jìn)行讀取包括以下之一或任意多個(gè)控制各個(gè)讀寫服務(wù)器以相同的流量對(duì)所 述存儲(chǔ)器中數(shù)據(jù)進(jìn)行讀寫;在檢測(cè)到第一讀寫服務(wù)器發(fā)生故障的情況下,將所述第一讀寫
7服務(wù)器需要讀取的數(shù)據(jù)發(fā)送給第二讀寫服務(wù)器進(jìn)行讀??;在檢測(cè)到第三讀寫服務(wù)器讀寫超 負(fù)荷的情況下,將所述第三讀寫服務(wù)器的部分讀寫數(shù)據(jù)分配給第四讀寫服務(wù)器進(jìn)行讀取; 以及所述控制器在檢測(cè)到新的讀寫服務(wù)器時(shí),為所述新的讀寫服務(wù)器分配讀寫數(shù)據(jù)。通過上述讀取方式,能夠?qū)崿F(xiàn)簡(jiǎn)單方便的對(duì)所述待讀寫文件的元數(shù)據(jù)信息進(jìn)行讀 取,對(duì)各個(gè)讀寫服務(wù)器的讀寫情況進(jìn)行監(jiān)控和資源調(diào)配,從而能夠避免部分讀寫服務(wù)器讀 寫超負(fù)荷的問題,有利于提高整個(gè)集群讀寫裝置的讀寫能力。以下具體論述根據(jù)本發(fā)明實(shí)施例的集群讀寫方法其中,利用本發(fā)明實(shí)施例的集群讀寫裝置進(jìn)行讀文件方法如下步驟S61,“應(yīng)用服務(wù)器或者客戶端”把將要讀取的文件名傳遞給“刀片讀寫節(jié)點(diǎn)控 制器(主)”。步驟S62,“刀片讀寫節(jié)點(diǎn)控制器(主)”首先讀取文件的“元數(shù)據(jù)信息”判斷該用 戶是否有權(quán)限進(jìn)行訪問。步驟S63,如果該用戶沒有權(quán)限,則返回相關(guān)錯(cuò)誤信息。如果有權(quán)限,則繼續(xù)。步驟S64,“刀片讀寫節(jié)點(diǎn)控制器(主)”將需要讀取文件的“元數(shù)據(jù)信息”傳遞給 “應(yīng)用服務(wù)器或者客戶端”,同時(shí)“刀片讀寫節(jié)點(diǎn)控制器(主)”會(huì)定期的(在一個(gè)心跳范圍 內(nèi))將所有可用的讀寫節(jié)點(diǎn)(“刀片讀寫節(jié)點(diǎn)1”、“刀片讀寫節(jié)點(diǎn)2”、“刀片讀寫節(jié)點(diǎn)3”、 “刀片讀寫節(jié)點(diǎn)4”)的IP地址傳遞給“應(yīng)用服務(wù)器或者客戶端”。步驟S65,“應(yīng)用服務(wù)器或者客戶端”獲得了所有刀片讀寫節(jié)點(diǎn)的IP地址后。將大 型I/O切片成較小的I/O請(qǐng)求,然后在多個(gè)IO節(jié)點(diǎn)中同時(shí)發(fā)布,按照流量分別平均的發(fā)布 給所有可用的讀寫節(jié)點(diǎn)(即,如圖3至圖6中所示的各個(gè)集群讀寫裝置)。步驟S66,刀片讀寫節(jié)點(diǎn)得到“應(yīng)用服務(wù)器或者客戶端”發(fā)送過來(lái)的請(qǐng)求后,通過交 換機(jī),把相關(guān)的元數(shù)據(jù)信息向“刀片讀寫節(jié)點(diǎn)控制器(主)”發(fā)出請(qǐng)求。步驟S67,刀片讀寫節(jié)點(diǎn)讀取成功,則將結(jié)果返回給“客戶端”,并通過交換機(jī)通知 “刀片讀寫節(jié)點(diǎn)控制器(主)”。步驟S68,如果刀片讀寫節(jié)點(diǎn)讀取數(shù)據(jù)失敗,則通過交換機(jī)通知“刀片讀寫節(jié)點(diǎn)控 制器(主)”?!暗镀x寫節(jié)點(diǎn)控制器(主)”將其需要讀取的元數(shù)據(jù)信息發(fā)送給其他讀寫節(jié) 點(diǎn),由其他讀寫節(jié)點(diǎn)繼續(xù)讀取。步驟S69,如果該讀寫節(jié)點(diǎn)突然出錯(cuò),例如機(jī)器宕機(jī)。則“刀片讀寫節(jié)點(diǎn)控制器 (主)”在一定心跳范圍內(nèi)獲取不到該讀寫節(jié)點(diǎn)的成功信息,并聯(lián)系不到該讀寫節(jié)點(diǎn),則將 其需要讀寫的元數(shù)據(jù)信息發(fā)送給另一臺(tái)讀寫服務(wù)節(jié)點(diǎn),由該讀寫節(jié)點(diǎn)繼續(xù)讀取,也就是將 正在進(jìn)行中的讀寫操作將自動(dòng)重新發(fā)布。步驟S70,如果任何一個(gè)刀片讀寫節(jié)點(diǎn)的I/O隊(duì)列開始增大,并且不能快速處理, “應(yīng)用服務(wù)器或者客戶端”就把后續(xù)的I/O轉(zhuǎn)移到其它的刀片讀寫節(jié)點(diǎn)。步驟S71,當(dāng)添加額外的讀寫節(jié)點(diǎn)時(shí),“應(yīng)用服務(wù)器或者客戶端”會(huì)自動(dòng)收到“刀片 讀寫節(jié)點(diǎn)控制器(主)”的通知,并能開始使用它們處理新的I/O請(qǐng)求。步驟S72,讀文件結(jié)束。其中,在任何時(shí)候,“刀片讀寫節(jié)點(diǎn)控制器(主)”發(fā)生故障,則由“刀片讀寫節(jié)點(diǎn)控 制器(備)”接管所有元數(shù)據(jù)操作。其中,利用本發(fā)明實(shí)施例的集群讀寫裝置進(jìn)行寫文件的方法如下
步驟S81,“應(yīng)用服務(wù)器或者客戶端”把將要寫入的文件名傳遞給“刀片讀寫節(jié)點(diǎn)控 制器(主)”。步驟S82,“刀片讀寫節(jié)點(diǎn)控制器(主)”首先判斷該用戶是否有權(quán)限進(jìn)行寫入操作。步驟S83,如果該用戶沒有權(quán)限,咱返回相關(guān)錯(cuò)誤信息。如果有權(quán)限,則繼續(xù)。步驟S84,“刀片讀寫節(jié)點(diǎn)控制器(主)”將需要寫入的文件的“元數(shù)據(jù)信息”寫入 到存儲(chǔ),并將相關(guān)信息通過交換機(jī)傳遞給“應(yīng)用服務(wù)器或者客戶端”,同時(shí)“刀片讀寫節(jié)點(diǎn)控 制器(主)”會(huì)定期的(在一個(gè)心跳范圍內(nèi))將所有可用的讀寫節(jié)點(diǎn)(“刀片讀寫節(jié)點(diǎn)1”、 “刀片讀寫節(jié)點(diǎn)2”、“刀片讀寫節(jié)點(diǎn)3”、“刀片讀寫節(jié)點(diǎn)4”)的IP地址傳遞給“應(yīng)用服務(wù)器 或者客戶端”。步驟S85,“應(yīng)用服務(wù)器或者客戶端”獲得了所有刀片讀寫節(jié)點(diǎn)的的IP地址后。將 大型I/O切片成較小的I/O請(qǐng)求,然后在多個(gè)IO節(jié)點(diǎn)中同時(shí)發(fā)布,按照流量分別平均的發(fā) 布給所有可用的讀寫節(jié)點(diǎn)(即,如圖3至圖6中所示的各個(gè)集群讀寫裝置)。步驟S86,刀片讀寫節(jié)點(diǎn)得到“應(yīng)用服務(wù)器或者客戶端”發(fā)送過來(lái)的請(qǐng)求后,通過交 換機(jī),把相關(guān)的元數(shù)據(jù)信息向“刀片讀寫節(jié)點(diǎn)控制器(主)”發(fā)出請(qǐng)求。步驟S87,刀片讀寫節(jié)點(diǎn)寫入成功,則將結(jié)果返回給“客戶端”,并通過交換機(jī)通知 “刀片讀寫節(jié)點(diǎn)控制器(主)”。步驟S88,如果刀片讀寫節(jié)點(diǎn)寫入數(shù)據(jù)失敗,則通過交換機(jī)通知“刀片讀寫節(jié)點(diǎn)控 制器(主)”?!暗镀x寫節(jié)點(diǎn)控制器(主)”將其需要寫入數(shù)據(jù)的元數(shù)據(jù)信息發(fā)送給其他讀 寫節(jié)點(diǎn),由其他讀寫節(jié)點(diǎn)繼續(xù)寫入。步驟S89,如果該讀寫節(jié)點(diǎn)突然出錯(cuò),例如機(jī)器宕機(jī)。則“刀片讀寫節(jié)點(diǎn)控制器 (主)”在一定心跳范圍內(nèi)獲取不到該讀寫節(jié)點(diǎn)的成功信息,并聯(lián)系不到該讀寫節(jié)點(diǎn),則將 其需要寫入的元數(shù)據(jù)信息發(fā)送給另一臺(tái)讀寫服務(wù)節(jié)點(diǎn),由該讀寫節(jié)點(diǎn)繼續(xù)寫入,也就是將 正在進(jìn)行中的讀寫操作將自動(dòng)重新發(fā)布。步驟S90,如果任何一個(gè)刀片讀寫節(jié)點(diǎn)的I/O隊(duì)列開始增大,并且不能快速處理, “應(yīng)用服務(wù)器或者客戶端”就把后續(xù)的I/O轉(zhuǎn)移到其它的刀片讀寫節(jié)點(diǎn)。步驟S91,當(dāng)添加額外的讀寫節(jié)點(diǎn)時(shí),“應(yīng)用服務(wù)器或者客戶端”會(huì)自動(dòng)收到“刀片 讀寫節(jié)點(diǎn)控制器(主)”的通知,并能開始使用它們處理新的I/O請(qǐng)求。步驟S92,寫文件結(jié)束。其中,在任何時(shí)候,“刀片讀寫節(jié)點(diǎn)控制器(主)”發(fā)生故障,則由“刀片讀寫節(jié)點(diǎn)控 制器(備)”接管所有元數(shù)據(jù)操作。需要說明的是,在附圖的流程圖示出的步驟可以在諸如一組計(jì)算機(jī)可執(zhí)行指令的 計(jì)算機(jī)系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不 同于此處的順序執(zhí)行所示出或描述的步驟。圖8是根據(jù)本發(fā)明實(shí)施例的集群讀寫控制器的示意圖。如圖8所示,該控制器包 括第一傳遞模塊802、第二傳遞模塊804和控制模塊806。其中,第一傳遞模塊802用于將待讀寫文件的元數(shù)據(jù)信息傳遞至應(yīng)用服務(wù)器;第 二傳遞模塊804用于將讀寫服務(wù)器的地址傳遞至所述應(yīng)用服務(wù)器;以及控制模塊806用于 根據(jù)所述讀寫服務(wù)器的地址控制所述讀寫服務(wù)器對(duì)所述待讀寫文件的元數(shù)據(jù)信息進(jìn)行讀
9取。從以上的描述中,可以看出,本發(fā)明可以提高集群讀寫裝置的拓展性。顯然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各模塊或各步驟可以用通用 的計(jì)算裝置來(lái)實(shí)現(xiàn),它們可以集中在單個(gè)的計(jì)算裝置上,或者分布在多個(gè)計(jì)算裝置所組成 的網(wǎng)絡(luò)上,可選地,它們可以用計(jì)算裝置可執(zhí)行的程序代碼來(lái)實(shí)現(xiàn),從而,可以將它們存儲(chǔ) 在存儲(chǔ)器中由計(jì)算裝置來(lái)執(zhí)行,或者將它們分別制作成各個(gè)集成電路模塊,或者將它們中 的多個(gè)模塊或步驟制作成單個(gè)集成電路模塊來(lái)實(shí)現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬 件和軟件結(jié)合。以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技 術(shù)人員來(lái)說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修 改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
一種集群讀寫裝置,其特征在于,包括多個(gè)讀寫服務(wù)器;以及控制器,連接于所述多個(gè)讀寫服務(wù)器和存儲(chǔ)器之間,用于控制各個(gè)讀寫服務(wù)器對(duì)所述存儲(chǔ)器中數(shù)據(jù)的讀寫。
2.根據(jù)權(quán)利要求1所述的集群讀寫裝置,其特征在于,所述控制器包括 主用控制器,用于控制各個(gè)讀寫服務(wù)器對(duì)所述存儲(chǔ)器中數(shù)據(jù)的讀寫;以及備用控制器,用于在所述主用控制器發(fā)生故障的情況下,控制各個(gè)讀寫服務(wù)器對(duì)所述 存儲(chǔ)器的讀寫。
3.根據(jù)權(quán)利要求1所述的集群讀寫裝置,其特征在于,所述讀寫服務(wù)器設(shè)置于機(jī)架上, 所述控制器與一個(gè)或者多個(gè)所述機(jī)架上的讀寫服務(wù)器相連接。
4.根據(jù)權(quán)利要求3所述的集群讀寫裝置,其特征在于,所述讀寫服務(wù)器為刀片服務(wù)器, 所述控制器設(shè)置于所述機(jī)架上。
5.根據(jù)權(quán)利要求1所述的集群讀寫裝置,其特征在于,所述控制器還用于對(duì)所述存儲(chǔ) 器的數(shù)據(jù)進(jìn)行讀寫。
6.根據(jù)權(quán)利要求1所述的集群讀寫裝置,其特征在于,還包括 第一交換機(jī),與所述存儲(chǔ)器相連接;以及第一背板,設(shè)置于所述讀寫服務(wù)器和所述第一交換機(jī)之間。
7.根據(jù)權(quán)利要求1所述的集群讀寫裝置,其特征在于,所述控制器用于通過以下方式 之一或以下任意多個(gè)方式控制各個(gè)讀寫服務(wù)器對(duì)所述存儲(chǔ)器中數(shù)據(jù)的讀寫所述控制器控制各個(gè)讀寫服務(wù)器以相同的流量對(duì)所述存儲(chǔ)器中數(shù)據(jù)進(jìn)行讀寫; 所述控制器在第一讀寫服務(wù)器發(fā)生故障的情況下,將所述第一讀寫服務(wù)器需要讀取的 數(shù)據(jù)發(fā)送給第二讀寫服務(wù)器進(jìn)行讀??;所述控制器在檢測(cè)到第三讀寫服務(wù)器讀寫超負(fù)荷的情況下,將所述第三讀寫服務(wù)器的 部分讀寫數(shù)據(jù)分配給第四讀寫服務(wù)器進(jìn)行讀??;以及所述控制器在檢測(cè)到新的讀寫服務(wù)器時(shí),為所述新的讀寫服務(wù)器分配讀寫數(shù)據(jù)。
8.一種集群讀寫方法,其特征在于,包括 將待讀寫文件的元數(shù)據(jù)信息傳遞至應(yīng)用服務(wù)器; 將讀寫服務(wù)器的地址傳遞至所述應(yīng)用服務(wù)器;以及根據(jù)所述讀寫服務(wù)器的地址控制所述讀寫服務(wù)器對(duì)所述待讀寫文件的元數(shù)據(jù)信息進(jìn) 行讀取。
9.根據(jù)權(quán)利要求8所述的集群讀寫方法,其特征在于,根據(jù)所述讀寫服務(wù)器的地址控 制所述讀寫服務(wù)器對(duì)所述待讀寫文件的元數(shù)據(jù)信息進(jìn)行讀取包括以下之一或任意多個(gè)控制各個(gè)讀寫服務(wù)器以相同的流量對(duì)所述存儲(chǔ)器中數(shù)據(jù)進(jìn)行讀寫; 在檢測(cè)到第一讀寫服務(wù)器發(fā)生故障的情況下,將所述第一讀寫服務(wù)器需要讀取的數(shù)據(jù) 發(fā)送給第二讀寫服務(wù)器進(jìn)行讀取;在檢測(cè)到第三讀寫服務(wù)器讀寫超負(fù)荷的情況下,將所述第三讀寫服務(wù)器的部分讀寫數(shù) 據(jù)分配給第四讀寫服務(wù)器進(jìn)行讀取;以及所述控制器在檢測(cè)到新的讀寫服務(wù)器時(shí),為所述新的讀寫服務(wù)器分配讀寫數(shù)據(jù)。
10.一種控制器,其特征在于,包括第一傳遞模塊,用于將待讀寫文件的元數(shù)據(jù)信息傳遞至應(yīng)用服務(wù)器; 第二傳遞模塊,用于將讀寫服務(wù)器的地址傳遞至所述應(yīng)用服務(wù)器;以及 控制模塊,用于根據(jù)所述讀寫服務(wù)器的地址控制所述讀寫服務(wù)器對(duì)所述待讀寫文件的 元數(shù)據(jù)信息進(jìn)行讀取。
11.一種集群讀寫系統(tǒng),其特征在于,還包括 存儲(chǔ)器,用于存儲(chǔ)數(shù)據(jù)文件;權(quán)利要求1至7中任一項(xiàng)所述的集群讀寫裝置;以及 應(yīng)用服務(wù)器,經(jīng)由所述集群讀寫裝置與所述存儲(chǔ)器相連接。
12.根據(jù)權(quán)利要求11所述的集群讀寫系統(tǒng),其特征在于,還包括 第二交換機(jī),與所述應(yīng)用服務(wù)器相連接;以及第二背板,設(shè)置于所述第二交換機(jī)和所述應(yīng)用服務(wù)器之間。
全文摘要
本發(fā)明公開了一種集群讀寫方法、裝置、系統(tǒng)及控制器。其中,該集群讀寫裝置包括多個(gè)讀寫服務(wù)器;控制器,連接于所述多個(gè)讀寫服務(wù)器和存儲(chǔ)器之間,用于控制各個(gè)讀寫服務(wù)器對(duì)所述存儲(chǔ)器中數(shù)據(jù)的讀寫。通過本發(fā)明,能夠提高集群讀寫裝置的拓展性。
文檔編號(hào)H04L29/08GK101969465SQ201010505230
公開日2011年2月9日 申請(qǐng)日期2010年10月13日 優(yōu)先權(quán)日2010年10月13日
發(fā)明者周家術(shù), 陸榮杰 申請(qǐng)人:北京神州融信信息技術(shù)股份有限公司