虛擬存儲(chǔ)方法及設(shè)備的制作方法
【專利摘要】本發(fā)明提供一種虛擬存儲(chǔ)方法及設(shè)備,方法包括:接收客戶端根據(jù)映射關(guān)系表生成的塊設(shè)備讀寫請(qǐng)求,所述塊設(shè)備讀寫請(qǐng)求中包含塊設(shè)備標(biāo)識(shí)、塊設(shè)備中的存儲(chǔ)位置和讀寫內(nèi)容;根據(jù)所述塊設(shè)備標(biāo)識(shí)定位塊設(shè)備,并根據(jù)所述塊設(shè)備中的存儲(chǔ)位置定位數(shù)據(jù)位置,并完成對(duì)所述讀寫內(nèi)容的操作。根據(jù)本發(fā)明的虛擬存儲(chǔ)的方法及設(shè)備,通過建立存儲(chǔ)節(jié)點(diǎn)與虛擬磁盤之間的映射關(guān)系,使得客戶端在訪問虛擬磁盤時(shí)直接訪問存儲(chǔ)節(jié)點(diǎn),提高虛擬存儲(chǔ)性能。
【專利說明】虛擬存儲(chǔ)方法及設(shè)備
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及信息存儲(chǔ)技術(shù),尤其涉及一種虛擬存儲(chǔ)方法及設(shè)備。
【背景技術(shù)】
[0002]隨著網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,網(wǎng)絡(luò)數(shù)據(jù)存儲(chǔ)量迅速增加,具有集中性和高效性的虛擬存儲(chǔ)系統(tǒng)將替代傳統(tǒng)的直接附加存儲(chǔ)方式,成為虛擬存儲(chǔ)系統(tǒng)的主體。虛擬存儲(chǔ)為通過對(duì)存儲(chǔ)系統(tǒng)或存儲(chǔ)服務(wù)的內(nèi)部功能進(jìn)行抽象、隱藏或隔離,使存儲(chǔ)或數(shù)據(jù)的管理與應(yīng)用、月艮務(wù)器、網(wǎng)絡(luò)資源的管理分離,從而實(shí)現(xiàn)應(yīng)用和網(wǎng)絡(luò)的獨(dú)立管理。
[0003]隨著實(shí)際生活中虛擬存儲(chǔ)需求的大量增加,如何有效實(shí)現(xiàn)虛擬存儲(chǔ)成為亟需解決的問題。
【發(fā)明內(nèi)容】
[0004]本發(fā)明提供一種虛擬存儲(chǔ)方法及設(shè)備,以有效實(shí)現(xiàn)虛擬存儲(chǔ)。
[0005]本發(fā)明第一個(gè)方面提供一種虛擬存儲(chǔ)方法,包括:
[0006]存儲(chǔ)節(jié)點(diǎn)接收客戶端根據(jù)映射關(guān)系表生成的塊設(shè)備讀寫請(qǐng)求,所述塊設(shè)備讀寫請(qǐng)求中包含塊設(shè)備標(biāo)識(shí)、塊設(shè)備中的存儲(chǔ)位置和讀寫內(nèi)容;
[0007]存儲(chǔ)節(jié)點(diǎn)根據(jù)所述塊設(shè)備標(biāo)識(shí)定位塊設(shè)備,并根據(jù)所述塊設(shè)備中的存儲(chǔ)位置定位數(shù)據(jù)位置,并完成對(duì)所述讀寫內(nèi)容的操作。
[0008]本發(fā)明另一個(gè)方面提供一種虛擬存儲(chǔ)方法,包括:
[0009]接收用戶對(duì)于虛擬磁盤的讀寫操作,并根據(jù)所述虛擬磁盤讀寫操作和映射關(guān)系表生成塊設(shè)備讀寫請(qǐng)求,所述塊設(shè)備讀寫請(qǐng)求包括所所述塊設(shè)備標(biāo)識(shí)、塊設(shè)備的存儲(chǔ)位置和讀與內(nèi)容;
[0010]向所述塊設(shè)備所在存儲(chǔ)節(jié)點(diǎn)發(fā)送所述塊設(shè)備讀寫請(qǐng)求,使得存儲(chǔ)節(jié)點(diǎn)能夠根據(jù)所述塊設(shè)備讀寫請(qǐng)求中的設(shè)備標(biāo)識(shí)定位所述塊設(shè)備,并依據(jù)塊設(shè)備讀寫請(qǐng)求中的存儲(chǔ)位置和讀寫內(nèi)容完成讀寫內(nèi)容的操作。
[0011]本發(fā)明再一個(gè)方面提供一種虛擬存儲(chǔ)方法,包括:
[0012]根據(jù)客戶端的虛擬磁盤標(biāo)識(shí)與塊設(shè)備的塊設(shè)備標(biāo)識(shí)以及所述虛擬磁盤存儲(chǔ)位置對(duì)應(yīng)于所述塊設(shè)備中的存儲(chǔ)位置建立映射關(guān)系表;
[0013]向所述客戶端返回所述映射關(guān)系表,以使所述客戶端在需要讀寫所述塊設(shè)備時(shí),通過所述虛擬磁盤和所述映射關(guān)系表生成讀寫請(qǐng)求。
[0014]本發(fā)明再一個(gè)方面提供一種存儲(chǔ)節(jié)點(diǎn),包括:
[0015]第一接收模塊,用于接收客戶端根據(jù)映射關(guān)系表生成的塊設(shè)備讀寫請(qǐng)求,所述塊設(shè)備讀寫請(qǐng)求中包含塊設(shè)備標(biāo)識(shí)、塊設(shè)備中的存儲(chǔ)位置和讀寫內(nèi)容;
[0016]第一處理模塊,用于根據(jù)所述塊設(shè)備標(biāo)識(shí)定位塊設(shè)備,并根據(jù)所述塊設(shè)備中的存儲(chǔ)位置定位數(shù)據(jù)位置,并完成對(duì)所述讀寫內(nèi)容的操作。
[0017]本發(fā)明又一個(gè)方面提供一種客戶端,包括:[0018]第二接收模塊,用于接收用戶對(duì)于虛擬磁盤的讀寫操作;
[0019]第二處理模塊,用于根據(jù)所述虛擬磁盤讀寫操作和所述映射關(guān)系表生成塊設(shè)備讀寫請(qǐng)求;
[0020]發(fā)送模塊,用于向所述塊設(shè)備所在存儲(chǔ)節(jié)點(diǎn)發(fā)送所述塊設(shè)備讀寫請(qǐng)求。本發(fā)明另一個(gè)方面提供一種主空制節(jié)點(diǎn),包括:
[0021]建立映射關(guān)系表模塊,用于根據(jù)客戶端的虛擬磁盤標(biāo)識(shí)與塊設(shè)備的塊設(shè)備標(biāo)識(shí)以及所述虛擬磁盤存儲(chǔ)位置對(duì)應(yīng)于所述塊設(shè)備中的存儲(chǔ)位置建立映射關(guān)系表;
[0022]發(fā)送映射關(guān)系表模塊,用于向所述客戶端返回所述映射關(guān)系表,以使所述客戶端在需要讀寫所述塊設(shè)備時(shí),通過所述虛擬磁盤和所述映射關(guān)系表生成讀寫請(qǐng)求。
[0023]本發(fā)明的又一方面提供一種虛擬存儲(chǔ)系統(tǒng),包括上述任一項(xiàng)所述的存儲(chǔ)節(jié)點(diǎn)、客戶端以及主控制節(jié)點(diǎn)。
[0024]由上述技術(shù)方案可知,本發(fā)明提供的虛擬存儲(chǔ)方法及設(shè)備,通過建立虛擬磁盤與塊設(shè)備之間的映射關(guān)系表,并將該映射關(guān)系表存儲(chǔ)在客戶端,使得客戶端在訪問虛擬磁盤時(shí),直接通過包含虛擬磁盤標(biāo)識(shí)和塊設(shè)備標(biāo)識(shí)的映射關(guān)系的映射關(guān)系表訪問塊設(shè)備,這樣,不僅能夠使客戶端無需經(jīng)過中間層次直接與存儲(chǔ)節(jié)點(diǎn)進(jìn)行交互,提高虛擬存儲(chǔ)性能,還能夠以較低的成本實(shí)現(xiàn)虛擬存儲(chǔ)。
【專利附圖】
【附圖說明】
[0025]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0026]圖1為根據(jù)本發(fā)明一實(shí)施例的虛擬存儲(chǔ)方法的流程示意圖;
[0027]圖2為根據(jù)本發(fā)明另一實(shí)施例的虛擬存儲(chǔ)方法的流程示意圖;
[0028]圖3為根據(jù)本發(fā)明又一實(shí)施例的虛擬存儲(chǔ)方法的流程示意圖;
[0029]圖4為根據(jù)本發(fā)明再一實(shí)施例的存儲(chǔ)節(jié)點(diǎn)的結(jié)構(gòu)示意圖;
[0030]圖5為根據(jù)本發(fā)明再一實(shí)施例的存儲(chǔ)節(jié)點(diǎn)的結(jié)構(gòu)示意圖;
[0031]圖6為根據(jù)本發(fā)明另一實(shí)施例的客戶端的結(jié)構(gòu)示意圖;
[0032]圖7為根據(jù)本發(fā)明另一實(shí)施例的主控制節(jié)點(diǎn)的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0033]為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0034]實(shí)施例一
[0035]本實(shí)施例提供一種虛擬存儲(chǔ)方法,其適用于的虛擬存儲(chǔ)架構(gòu)包括實(shí)際存儲(chǔ)數(shù)據(jù)的存儲(chǔ)節(jié)點(diǎn)中的塊設(shè)備、客戶端的虛擬磁盤以及管理塊設(shè)備和虛擬磁盤的主控制節(jié)點(diǎn)。本實(shí)施例的虛擬存儲(chǔ)方法,將所有存儲(chǔ)節(jié)點(diǎn)中的塊設(shè)備利用起來,構(gòu)成一個(gè)大的存儲(chǔ)池,主控制節(jié)點(diǎn)根據(jù)客戶端的創(chuàng)建虛擬磁盤的創(chuàng)建請(qǐng)求將塊設(shè)備按需分配,并在建立虛擬磁盤與塊設(shè)備的映射關(guān)系后,使得客戶在訪問虛擬磁盤時(shí)不需要再通過主控制節(jié)點(diǎn),而是利用映射關(guān)系直接訪問實(shí)際存儲(chǔ)數(shù)據(jù)的存儲(chǔ)節(jié)點(diǎn)。存儲(chǔ)節(jié)點(diǎn)、主控制節(jié)點(diǎn)和客戶端均可以為計(jì)算機(jī)或服務(wù)器。本實(shí)施例的虛擬存儲(chǔ)方法的執(zhí)行主體為存儲(chǔ)節(jié)點(diǎn)。需要指出的是,客戶端為虛擬磁盤的宿主機(jī)。
[0036]如圖1所示,為根據(jù)本實(shí)施例的虛擬存儲(chǔ)方法的流程示意圖。
[0037]步驟101,存儲(chǔ)節(jié)點(diǎn)接收客戶端根據(jù)映射關(guān)系表生成的塊設(shè)備讀寫請(qǐng)求,塊設(shè)備讀寫請(qǐng)求中包含塊設(shè)備標(biāo)識(shí)、塊設(shè)備中的存儲(chǔ)位置和讀寫內(nèi)容。
[0038]讀寫內(nèi)容在不同的操作環(huán)境下代表了不同的含義,具體為:在讀操作時(shí),讀寫內(nèi)容為所要讀取的數(shù)據(jù)的大??;在寫操作時(shí),讀寫內(nèi)容為所要寫入存儲(chǔ)設(shè)備的數(shù)據(jù)內(nèi)容。
[0039]該塊設(shè)備標(biāo)識(shí)可以是由以下至少任意一種形式組成的:數(shù)字、英文字母、或字符,用以標(biāo)識(shí)塊設(shè)備。一個(gè)存儲(chǔ)節(jié)點(diǎn)中可以包含一個(gè)或多個(gè)塊設(shè)備,具體舉例來說,當(dāng)存儲(chǔ)節(jié)點(diǎn)為一臺(tái)計(jì)算機(jī)時(shí),塊設(shè)備可以是c盤,當(dāng)然還可以是d盤或e盤等。用戶可以根據(jù)實(shí)際需要自行定義該塊設(shè)備,例如只將存儲(chǔ)節(jié)點(diǎn)中的c盤作為塊設(shè)備,或者是將c盤中的一部分作為塊設(shè)備,具體可以根據(jù)需要自行設(shè)定。
[0040]塊設(shè)備信息包括塊設(shè)備大小、塊設(shè)備名稱、塊設(shè)備的存儲(chǔ)位置和塊設(shè)備所在的存儲(chǔ)節(jié)點(diǎn)的IP(Intemet Protocol,網(wǎng)絡(luò)之間互連的協(xié)議)地址,還可以包括塊設(shè)備所在的存儲(chǔ)節(jié)點(diǎn)的MAC (Media Access Control)地址、塊設(shè)備所在的存儲(chǔ)節(jié)點(diǎn)的端口地址、塊設(shè)備所在的存儲(chǔ)節(jié)點(diǎn)的監(jiān)聽端口信息。主控制節(jié)點(diǎn)可以是計(jì)算機(jī)或服務(wù)器,用于為塊設(shè)備和虛擬磁盤分配標(biāo)識(shí),建立塊設(shè)備和虛擬磁盤之間的映射關(guān)系。主控制節(jié)點(diǎn)在接收到塊設(shè)備的注冊(cè)請(qǐng)求之后,就根據(jù)塊設(shè)備信息為塊設(shè)備分配塊設(shè)備標(biāo)識(shí)。
[0041]步驟102,存儲(chǔ)節(jié)點(diǎn)根據(jù)塊設(shè)備標(biāo)識(shí)定位塊設(shè)備,并根據(jù)塊設(shè)備中的存儲(chǔ)位置定位數(shù)據(jù)位置,并完成對(duì)讀寫內(nèi)容的操作。
[0042]該步驟一種具體地實(shí)現(xiàn)方式可以是,當(dāng)存儲(chǔ)節(jié)點(diǎn)接收到塊設(shè)備讀寫請(qǐng)求后,針對(duì)該塊設(shè)備讀寫請(qǐng)求生成塊設(shè)備讀寫響應(yīng),并發(fā)送至客戶端,當(dāng)客戶端接收到該塊設(shè)備讀寫響應(yīng)后,就根據(jù)映射關(guān)系表直接對(duì)該塊設(shè)備進(jìn)行訪問,執(zhí)行讀寫操作。
[0043]客戶端在接收到虛擬磁盤讀寫請(qǐng)求后,根據(jù)自身存儲(chǔ)的虛擬磁盤與塊設(shè)備的對(duì)應(yīng)關(guān)系以及塊設(shè)備的存儲(chǔ)位置,可以直接向存儲(chǔ)節(jié)點(diǎn)發(fā)送塊設(shè)備讀寫請(qǐng)求,塊設(shè)備讀寫請(qǐng)求中包括塊設(shè)備的標(biāo)識(shí)和塊設(shè)備的存儲(chǔ)位置,可選地,映射關(guān)系表還可以包括塊設(shè)備的其它信息,例如塊設(shè)備大小以及塊設(shè)備所歸屬的存儲(chǔ)節(jié)點(diǎn)的IP地址等,這樣客戶端根據(jù)該塊設(shè)備標(biāo)識(shí)可以獲取與該塊設(shè)備標(biāo)識(shí)對(duì)應(yīng)的所有塊設(shè)備信息??蛻舳酥苯釉L問塊設(shè)備的方式為遠(yuǎn)程登錄技術(shù),為現(xiàn)有技術(shù),在此不再贅述。
[0044]根據(jù)本實(shí)施例的虛擬存儲(chǔ)方法,通過為塊設(shè)備分配塊設(shè)備標(biāo)識(shí),以便在客戶端進(jìn)行讀寫操作時(shí),直接通過包含虛擬磁盤標(biāo)識(shí)和塊設(shè)備標(biāo)識(shí)的映射關(guān)系的映射關(guān)系表訪問塊設(shè)備,這樣,不僅能夠使客戶端無需經(jīng)過中間層次直接與存儲(chǔ)節(jié)點(diǎn)進(jìn)行交互,提高虛擬存儲(chǔ)性能,還能夠以較低的成本實(shí)現(xiàn)虛擬存儲(chǔ)。
[0045]實(shí)施例二
[0046]本實(shí)施例基于實(shí)施例一提供一種虛擬存儲(chǔ)方法。
[0047]具體地,當(dāng)存儲(chǔ)節(jié)點(diǎn)啟動(dòng)時(shí),本實(shí)施例的虛擬存儲(chǔ)方法還包括:[0048]步驟Ila:存儲(chǔ)節(jié)點(diǎn)獲取自身的配置文件。
[0049]步驟Ilb:根據(jù)配置文件,判斷是第一次連接主控制節(jié)點(diǎn),則向主控制節(jié)點(diǎn)發(fā)送注冊(cè)請(qǐng)求,否則向主控制節(jié)點(diǎn)發(fā)送激活請(qǐng)求。
[0050]具體地,存儲(chǔ)節(jié)點(diǎn)的配置文件中存在一標(biāo)識(shí)信息,該標(biāo)識(shí)信息用于表示該存儲(chǔ)節(jié)點(diǎn)是否為第一次啟動(dòng),例如當(dāng)該標(biāo)識(shí)信息為“O”時(shí)表示該存儲(chǔ)節(jié)點(diǎn)為第一次啟動(dòng),并在該存儲(chǔ)節(jié)點(diǎn)第一次啟動(dòng)之后,修改該標(biāo)識(shí)信息,以便以后該存儲(chǔ)節(jié)點(diǎn)重新啟動(dòng)時(shí),能夠通過配置文件中的該標(biāo)識(shí)信息識(shí)別出該存儲(chǔ)節(jié)點(diǎn)不是第一次啟動(dòng),例如將該標(biāo)識(shí)信息修改為“I”。
[0051]本實(shí)施例中,存儲(chǔ)節(jié)點(diǎn)向主控制節(jié)點(diǎn)發(fā)送注冊(cè)請(qǐng)求是在其啟動(dòng)時(shí)進(jìn)行發(fā)送的。存儲(chǔ)節(jié)點(diǎn)啟動(dòng),可能包括兩種情況,一種情況是存儲(chǔ)節(jié)點(diǎn)第一次啟動(dòng),就說明該存儲(chǔ)節(jié)點(diǎn)沒有向主控制發(fā)送過注冊(cè)請(qǐng)求,此時(shí)在啟動(dòng)后需要向注冊(cè)節(jié)點(diǎn)發(fā)送注冊(cè)請(qǐng)求,所述注冊(cè)請(qǐng)求中包含了請(qǐng)求類型、主控制節(jié)點(diǎn)的IP地址(還可以包括主控制節(jié)點(diǎn)的MAC地址和/或端口號(hào))和存儲(chǔ)節(jié)點(diǎn)中所包含的塊設(shè)備信息等,例如發(fā)送http格式的注冊(cè)請(qǐng)求請(qǐng)求,具體為“http://namenode/datanode ? action = register&ip = 10.71.99.74&port = 8081&data _ransfer_port = 8082&mac = 00-18-82-83-36-4c&target.file.1 = /home/xyl/block_de vice&target.size.1 = 74&target.mac.1 = 00-18-82-83-36_4c”,以使主控制節(jié)點(diǎn)為該存儲(chǔ)節(jié)點(diǎn)中的各塊設(shè)備分配塊設(shè)備標(biāo)識(shí),例如主控制節(jié)點(diǎn)返回Json格式的響應(yīng)消息node_id":2," result":true, " targetlist":[{" index":1," targetid":3}]},其中,"node_id": 2代表存儲(chǔ)節(jié)點(diǎn)標(biāo)識(shí)為2, result表示返回結(jié)果,具體地,true表示注冊(cè)成功返回,false表示注冊(cè)失敗,"targetlist "代表目標(biāo)塊設(shè)備列表,index代表目標(biāo)塊設(shè)備的索引號(hào),“I”表示第I個(gè)塊設(shè)備,"targetid":3代表該存儲(chǔ)節(jié)點(diǎn)的塊設(shè)備標(biāo)識(shí)為3。這樣,上述響應(yīng)消息就代表與標(biāo)識(shí)為“2”的存儲(chǔ)節(jié)點(diǎn)中的第I個(gè)塊設(shè)備的標(biāo)識(shí)為“3”。
[0052]其中,塊設(shè)備標(biāo)識(shí)可以是根據(jù)塊設(shè)備所在的存儲(chǔ)節(jié)點(diǎn)的地址生成的,這樣客戶端在獲取到塊設(shè)備標(biāo)識(shí)時(shí),也就同時(shí)獲取到了塊設(shè)備所在的存儲(chǔ)節(jié)點(diǎn)的地址,該地址可以是存儲(chǔ)節(jié)點(diǎn)的IP地址。具體舉例來 說,塊設(shè)備標(biāo)識(shí)為“202.118.16.28_c”,這樣就表示塊設(shè)備是IP地址為“202.118.16.28”的存儲(chǔ)節(jié)點(diǎn)中的c盤,即存儲(chǔ)節(jié)點(diǎn)標(biāo)識(shí)為202.118.16.28。塊設(shè)備標(biāo)識(shí)和存儲(chǔ)節(jié)點(diǎn)標(biāo)識(shí)都是整個(gè)網(wǎng)絡(luò)中唯一的標(biāo)識(shí),即不會(huì)出現(xiàn)網(wǎng)絡(luò)中的兩個(gè)存儲(chǔ)節(jié)點(diǎn)具有相同的存儲(chǔ)節(jié)點(diǎn)標(biāo)識(shí)的情況,也不會(huì)出現(xiàn)兩個(gè)塊設(shè)備具有相同的塊設(shè)備標(biāo)識(shí)的情況。這樣,客戶端在獲取了塊設(shè)備標(biāo)識(shí)和塊設(shè)備的存儲(chǔ)位置之后,也同樣就知道了該塊設(shè)備位于哪一個(gè)存儲(chǔ)節(jié)點(diǎn),能夠準(zhǔn)確找到所要訪問的塊設(shè)備。
[0053]能夠想到,獲取塊設(shè)備標(biāo)識(shí)的同時(shí)還可以獲得其它信息,例如塊設(shè)備大小、塊設(shè)備名稱和塊設(shè)備所在的存儲(chǔ)節(jié)點(diǎn)的IP地址(Internet Protocol,網(wǎng)絡(luò)之間互連的協(xié)議),此外還可以包括塊設(shè)備所在的存儲(chǔ)節(jié)點(diǎn)的MAC (Media Access Control)地址、塊設(shè)備所在的存儲(chǔ)節(jié)點(diǎn)的端口地址、塊設(shè)備所在的存儲(chǔ)節(jié)點(diǎn)的監(jiān)聽端口信息、和/或塊設(shè)備所在的存儲(chǔ)節(jié)點(diǎn)的大小及名稱,上述信息均可以包含在映射關(guān)系表中。本發(fā)明各實(shí)施例中均以獲取塊設(shè)備標(biāo)識(shí)為例進(jìn)行說明,所述塊設(shè)備標(biāo)識(shí)為塊設(shè)備中各種信息里的一種。
[0054]另外一種存儲(chǔ)節(jié)點(diǎn)啟動(dòng)的情況是:存儲(chǔ)節(jié)點(diǎn)在出現(xiàn)問題并解決后重新啟動(dòng),此時(shí)可以判斷該存儲(chǔ)節(jié)點(diǎn)已經(jīng)向主控制節(jié)點(diǎn)發(fā)送過注冊(cè)請(qǐng)求,此時(shí)就不要再重新發(fā)送注冊(cè)請(qǐng)求,而是發(fā)送激活請(qǐng)求以使主控制節(jié)點(diǎn)得知該存儲(chǔ)節(jié)點(diǎn)重新運(yùn)行或者由主控制節(jié)點(diǎn)根據(jù)該激活請(qǐng)求激活存儲(chǔ)節(jié)點(diǎn),激活請(qǐng)求具體可以發(fā)送http請(qǐng)求,例如http://namen0de/datanode ? action = register&node_id = 2”。
[0055]還可以是,在注冊(cè)請(qǐng)求和激活請(qǐng)求中都包括配置文件的標(biāo)識(shí),例如,注冊(cè)請(qǐng)求中包括標(biāo)識(shí)“0”,激活請(qǐng)求中包括標(biāo)識(shí)“1”,主控制節(jié)點(diǎn)根據(jù)請(qǐng)求中的標(biāo)識(shí),就可以判斷該請(qǐng)求是注冊(cè)請(qǐng)求還是激活請(qǐng)求,再根據(jù)判斷結(jié)果執(zhí)行相應(yīng)的操作。
[0056]根據(jù)本實(shí)施例的虛擬存儲(chǔ)方法,當(dāng)存儲(chǔ)節(jié)點(diǎn)啟動(dòng)時(shí),通過存儲(chǔ)節(jié)點(diǎn)的配置文件判斷是否需要重新向網(wǎng)絡(luò)發(fā)送注冊(cè)請(qǐng)求,這樣能夠避免存儲(chǔ)節(jié)點(diǎn)重復(fù)發(fā)送注冊(cè)請(qǐng)求,增加主控制節(jié)點(diǎn)的負(fù)擔(dān)。
[0057]優(yōu)選地,在通過激活請(qǐng)求或注冊(cè)請(qǐng)求建立完存儲(chǔ)節(jié)點(diǎn)和主控制節(jié)點(diǎn)之間的連接后,本實(shí)施例的虛擬存儲(chǔ)方法還包括:
[0058]每隔預(yù)設(shè)時(shí)間,檢測(cè)存儲(chǔ)節(jié)點(diǎn)與主控制節(jié)點(diǎn)之間是否保持通信,使得存儲(chǔ)節(jié)點(diǎn)出現(xiàn)異常無法完成存儲(chǔ)時(shí)候,由主控制節(jié)點(diǎn)更新客戶端的映射關(guān)系表,分配能夠完成存儲(chǔ)功能的其它存儲(chǔ)節(jié)點(diǎn)。
[0059]這里的預(yù)設(shè)時(shí)間可以根據(jù)實(shí)際需要自行設(shè)定,例如I分鐘、5分鐘或者I小時(shí)。檢測(cè)存儲(chǔ)節(jié)點(diǎn)與主控制節(jié)點(diǎn)之間是否保持通信具體可以是:向主控制節(jié)點(diǎn)發(fā)送檢測(cè)消息,如果在規(guī)定時(shí)間內(nèi)接收到主控制節(jié)點(diǎn)根據(jù)檢測(cè)信息作出的檢測(cè)響應(yīng),則存儲(chǔ)節(jié)點(diǎn)與主控制節(jié)點(diǎn)之間保持通信,否則,需要重新啟動(dòng)存儲(chǔ)節(jié)點(diǎn),以使存儲(chǔ)節(jié)點(diǎn)向主控制節(jié)點(diǎn)發(fā)送激活請(qǐng)求,保持存儲(chǔ)節(jié)點(diǎn)向主控制節(jié)點(diǎn)之間的通信。這樣,通過周期性地檢測(cè)存儲(chǔ)節(jié)點(diǎn)與主控制節(jié)點(diǎn)之間是否保持通信,能夠提高系統(tǒng)的可靠性,并能排除主控制節(jié)點(diǎn)在不知情的情況下發(fā)送指令給已經(jīng)意外故障的存儲(chǔ)節(jié)點(diǎn)。
[0060]本實(shí)施例的虛擬存儲(chǔ)方法,還可以包括以下所描述的遷移操作。具體地,
`[0061]步驟12a,存儲(chǔ)節(jié)點(diǎn)接收主控制節(jié)點(diǎn)發(fā)送的遷移指令,該遷移指令包括源塊設(shè)備標(biāo)識(shí)、源塊設(shè)備的存儲(chǔ)位置、目的塊設(shè)備標(biāo)識(shí)、目的塊設(shè)備的存儲(chǔ)位置和源塊設(shè)備中遷移的數(shù)據(jù)大小。
[0062]。遷移指令可以采用http 方式,例如 “http://datanodeIP:port/migrate ?action = migrate_block &src_targetid = l&src_offset = l&dst_targetid =2&dst offset = 3&dst_ip = 10.71.99.77&dst_port = 8082”,涉及到不同存儲(chǔ)節(jié)點(diǎn)之間的數(shù)據(jù)遷移時(shí),所述遷移指令中還要包含目的塊設(shè)備所在存儲(chǔ)節(jié)點(diǎn)地址如dst_ip =
10.71.99.77, src_targetid和src_ofset分別對(duì)應(yīng)遷移指令中的源塊設(shè)備的標(biāo)識(shí)和源塊設(shè)備的存儲(chǔ)位置,dst_targetid和dst_offset分別對(duì)應(yīng)遷移指令中的目的塊設(shè)備的標(biāo)識(shí)和目的塊設(shè)備的存儲(chǔ)位置。本步驟的遷移命令可以是由主控制節(jié)點(diǎn)直接發(fā)起的,也可以是由客戶端向主控制節(jié)點(diǎn)發(fā)起一遷移請(qǐng)求,再由主控制節(jié)點(diǎn)根據(jù)該遷移請(qǐng)求生成遷移命令并發(fā)送至源塊設(shè)備。
[0063]步驟12b,源塊設(shè)備所在的存儲(chǔ)節(jié)點(diǎn)根據(jù)遷移指令降源塊設(shè)備中的數(shù)據(jù)復(fù)制到目的塊設(shè)備中。
[0064]復(fù)制方法可以米用建立TCP (Transmission Control Protocol,傳輸控制協(xié)議)套接字連接,從源塊設(shè)備中的源文件中讀取數(shù)據(jù)并存儲(chǔ)到緩沖區(qū)中,然后寫入到目的塊設(shè)備中。復(fù)制完成后,可以發(fā)送遷移成功響應(yīng)告知主控制節(jié)點(diǎn)完成遷移指令,例如“http://namenode:port/ maintenance ? action = block_migrate_notification& taskid =l&result = success”。
[0065]可選地,在步驟12b之后,還可以包括:釋放源塊設(shè)備中的數(shù)據(jù)。釋放數(shù)據(jù)即意味著清除源塊設(shè)備中的數(shù)據(jù),這樣可以確保整個(gè)網(wǎng)絡(luò)中僅有一份該數(shù)據(jù)即可,避免存儲(chǔ)空間的浪費(fèi)。
[0066]可選地,在步驟12b之后還包括:在復(fù)制?呆作完成后,向王控制節(jié)點(diǎn)發(fā)送遷移完成消息,以使主控制節(jié)點(diǎn)得知遷移操作已經(jīng)完成,更新映射關(guān)系表。主控制節(jié)點(diǎn)更新映射關(guān)系表,除了將源塊設(shè)備標(biāo)識(shí)對(duì)應(yīng)的虛擬磁盤標(biāo)識(shí)與源塊設(shè)備標(biāo)識(shí)的對(duì)應(yīng)關(guān)系改為虛擬磁盤標(biāo)識(shí)與目的塊設(shè)備標(biāo)識(shí)的對(duì)應(yīng)關(guān)系,還要建立虛擬磁盤的存儲(chǔ)位置與目的塊設(shè)備的存儲(chǔ)位置的對(duì)應(yīng)關(guān)系。
[0067]另外,在遷移操作進(jìn)行時(shí),如果此時(shí)有客戶端向源塊設(shè)備進(jìn)行寫操作,此時(shí)源塊設(shè)備所在的源存儲(chǔ)節(jié)點(diǎn)也響應(yīng)客戶端發(fā)送的塊設(shè)備寫請(qǐng)求,在目的塊設(shè)備的存儲(chǔ)位置基礎(chǔ)上計(jì)算增加遷移的數(shù)據(jù)大小后的遷移后目的塊設(shè)備的存儲(chǔ)位置,并根據(jù)遷移后的目的塊設(shè)備的存儲(chǔ)位置執(zhí)行塊設(shè)備寫請(qǐng)求。
[0068]根據(jù)本實(shí)施例的虛擬存儲(chǔ)方法,通過對(duì)存儲(chǔ)節(jié)點(diǎn)的塊設(shè)備進(jìn)行遷移操作,能夠有效管理存儲(chǔ)節(jié)點(diǎn)的存儲(chǔ)空間,優(yōu)化存儲(chǔ)節(jié)點(diǎn)的性能。
[0069]實(shí)施例三
[0070]本實(shí)施例提供一種虛擬存儲(chǔ)方法,其適用于的虛擬存儲(chǔ)架構(gòu)包括實(shí)際存儲(chǔ)數(shù)據(jù)的存儲(chǔ)節(jié)點(diǎn)中的的塊設(shè)備、客戶端的虛擬磁盤以及管理塊設(shè)備和虛擬磁盤的主控制節(jié)點(diǎn)。本實(shí)施例的虛擬存儲(chǔ)方法,將所有存儲(chǔ)節(jié)點(diǎn)中的塊設(shè)備利用起來,構(gòu)成一個(gè)大的存儲(chǔ)池,根據(jù)客戶端的創(chuàng)建虛擬磁盤的創(chuàng)建請(qǐng)求將塊設(shè)備按需分配,并通過建立虛擬磁盤與塊設(shè)備的映射關(guān)系,使得客戶在訪問虛擬磁盤時(shí)直接訪問實(shí)際存儲(chǔ)數(shù)據(jù)的塊設(shè)備,其中,“塊設(shè)備”指的是存儲(chǔ)節(jié)點(diǎn)中被用于虛擬存儲(chǔ)的部分。存儲(chǔ)節(jié)點(diǎn)、主控制節(jié)點(diǎn)和客戶端均可以為計(jì)算機(jī)或服務(wù)器。本實(shí)施例的虛擬存儲(chǔ)方法的執(zhí)行主體為客戶。本實(shí)施例中塊設(shè)備的存儲(chǔ)位置主要通過地址偏移量來體現(xiàn)。需要指出的是,客戶端為虛擬磁盤的宿主機(jī)。
[0071]如圖2所示,為根據(jù)本實(shí)施例的虛擬存儲(chǔ)方法的流程示意圖,該虛擬存儲(chǔ)方法包括:
[0072]步驟201,客戶端接收用戶對(duì)于虛擬磁盤的讀寫操作。
[0073]可選地,在步驟201之前還包括虛擬磁盤的創(chuàng)建的過程,具體地:
[0074]步驟200a:客戶端向主控制節(jié)點(diǎn)發(fā)送創(chuàng)建虛擬磁盤的創(chuàng)建請(qǐng)求。這里的創(chuàng)建請(qǐng)求可以包括:客戶端的IP地址、客戶端的MAC地址和/或虛擬磁盤的大小。
[0075]該步驟中虛擬磁盤的信息包括虛擬磁盤的大小、虛擬磁盤的存儲(chǔ)位置、虛擬磁盤的MAC地址、IP地址等等,還可以包括虛擬磁盤的分片單位,每一個(gè)分片單位可以對(duì)應(yīng)一個(gè)塊設(shè)備。如表1所示,為映射關(guān)系表中的一部分。
[0076]表1
[0077]
【權(quán)利要求】
1.一種虛擬存儲(chǔ)方法,其特征在于,包括: 存儲(chǔ)節(jié)點(diǎn)接收客戶端根據(jù)映射關(guān)系表生成的塊設(shè)備讀寫請(qǐng)求,所述塊設(shè)備讀寫請(qǐng)求中包含塊設(shè)備標(biāo)識(shí)、塊設(shè)備中的存儲(chǔ)位置和讀寫內(nèi)容; 存儲(chǔ)節(jié)點(diǎn)根據(jù)所述塊設(shè)備標(biāo)識(shí)定位塊設(shè)備,并根據(jù)所述塊設(shè)備中的存儲(chǔ)位置定位數(shù)據(jù)位置,并完成對(duì)所述讀寫內(nèi)容的操作。
2.根據(jù)權(quán)利要求1所述的虛擬存儲(chǔ)方法,其特征在于,所述映射關(guān)系表具體包括: 所述客戶端的虛擬磁盤標(biāo)識(shí)與所述塊設(shè)備標(biāo)識(shí)的映射關(guān)系; 還包括所述虛擬磁盤存儲(chǔ)位置對(duì)應(yīng)于塊設(shè)備中的存儲(chǔ)位置的映射關(guān)系。
3.根據(jù)權(quán)利要求1或2所述的虛擬存儲(chǔ)方法,其特征在于,當(dāng)所述存儲(chǔ)節(jié)點(diǎn)啟動(dòng)時(shí),所述方法還包括: 獲取所述存儲(chǔ)節(jié)點(diǎn)的配置文件; 根據(jù)所述配置文件,判斷是第一次連接所述主控制節(jié)點(diǎn),則向所述主控制節(jié)點(diǎn)發(fā)送注冊(cè)請(qǐng)求,否則向所述主控制節(jié)點(diǎn)發(fā)送激活請(qǐng)求。
4.根據(jù)權(quán)利要求3所述虛擬存儲(chǔ)方法,其特征在于,在向所述主控制節(jié)點(diǎn)發(fā)送注冊(cè)請(qǐng)求之后,還包括: 接收所述主控制節(jié)點(diǎn)為所述 存儲(chǔ)節(jié)點(diǎn)中的塊設(shè)備分配的塊設(shè)備標(biāo)識(shí)。
5.根據(jù)權(quán)利要求3所述虛擬存儲(chǔ)方法,其特征在于, 所述激活請(qǐng)求中包含存儲(chǔ)節(jié)點(diǎn)標(biāo)識(shí),以使所述主控制節(jié)點(diǎn)根據(jù)所述存儲(chǔ)節(jié)點(diǎn)標(biāo)識(shí)重新獲取自身存儲(chǔ)的對(duì)應(yīng)塊設(shè)備信息。
6.根據(jù)權(quán)利要求1~5任一所述的虛擬存儲(chǔ)方法,其特征在于,所述方法還包括: 所述存儲(chǔ)節(jié)點(diǎn)接收所述主控制節(jié)點(diǎn)發(fā)送的遷移指令,所述遷移指令包括源塊設(shè)備的標(biāo)識(shí)、源塊設(shè)備的存儲(chǔ)位置、目的塊設(shè)備的標(biāo)識(shí)、目的塊設(shè)備的存儲(chǔ)位置和源塊設(shè)備中遷移的數(shù)據(jù)大??; 所述存儲(chǔ)節(jié)點(diǎn)根據(jù)所述遷移指令降所述源塊設(shè)備中的數(shù)據(jù)復(fù)制到所述目的塊設(shè)備中。
7.根據(jù)權(quán)利要求6所述的虛擬存儲(chǔ)方法,其特征在于,存儲(chǔ)節(jié)點(diǎn)在執(zhí)行所述遷移指令過程中,收到客戶端的塊設(shè)備寫請(qǐng)求時(shí),還包括: 所述存儲(chǔ)節(jié)點(diǎn)響應(yīng)塊設(shè)備寫請(qǐng)求; 在所述目的塊設(shè)備的存儲(chǔ)位置基礎(chǔ)上計(jì)算增加遷移的數(shù)據(jù)大小后的遷移后的存儲(chǔ)位置,并根據(jù)所述遷移后的存儲(chǔ)位置執(zhí)行所述塊設(shè)備寫請(qǐng)求。
8.根據(jù)權(quán)利要求1~7中任一項(xiàng)所述的虛擬存儲(chǔ)方法,其特征在于,在存儲(chǔ)節(jié)點(diǎn)建立完與主控制節(jié)點(diǎn)連接后,還包括: 每隔預(yù)設(shè)時(shí)間,檢測(cè)與所述主控制節(jié)點(diǎn)之間是否保持通信,使得所述存儲(chǔ)節(jié)點(diǎn)出現(xiàn)異常無法完成存儲(chǔ)時(shí)候,由所述主控制節(jié)點(diǎn)更新所述客戶端的映射關(guān)系表,分配能夠完成存儲(chǔ)功能的其它存儲(chǔ)節(jié)點(diǎn)。
9.一種虛擬存儲(chǔ)方法,其特征在于,包括: 接收用戶對(duì)于虛擬磁盤的讀寫操作,并根據(jù)所述虛擬磁盤讀寫操作和映射關(guān)系表生成塊設(shè)備讀寫請(qǐng)求,所述塊設(shè)備讀寫請(qǐng)求包括所所述塊設(shè)備標(biāo)識(shí)、塊設(shè)備的存儲(chǔ)位置和讀寫內(nèi)容; 向所述塊設(shè)備所在存儲(chǔ)節(jié)點(diǎn)發(fā)送所述塊設(shè)備讀寫請(qǐng)求,使得存儲(chǔ)節(jié)點(diǎn)能夠根據(jù)所述塊設(shè)備讀寫請(qǐng)求中的設(shè)備標(biāo)識(shí)定位所述塊設(shè)備,并依據(jù)塊設(shè)備讀寫請(qǐng)求中的存儲(chǔ)位置和讀寫內(nèi)容完成讀寫內(nèi)容的操作。
10.根據(jù)權(quán)利要求9所述的虛擬存儲(chǔ)方法,其特征在于,所述虛擬磁盤的由用戶申請(qǐng)創(chuàng)建,其創(chuàng)建過程具體包括: 向主控制節(jié)點(diǎn)發(fā)送虛擬磁盤的創(chuàng)建請(qǐng)求; 接收并保存所述主控制節(jié)點(diǎn)返回的虛擬磁盤信息和所述映射關(guān)系表; 根據(jù)所述虛擬磁盤信息創(chuàng)建所述虛擬磁盤。
11.根據(jù)權(quán)利要求9所述的虛擬存儲(chǔ)方法,其特征在于,所述接收用戶對(duì)于虛擬磁盤的讀寫操作,并根據(jù)所述虛擬磁盤讀寫操作和所述映射關(guān)系表生成塊設(shè)備讀寫請(qǐng)求具體包括: 判斷所述讀寫操作是否指向不同的塊設(shè)備,如果是,則根據(jù)所述讀寫操作和映射關(guān)系表生成不同塊設(shè)備的讀寫請(qǐng)求。
12.根據(jù)權(quán)利要求9~11中任一項(xiàng)所述的虛擬存儲(chǔ)方法,其特征在于,所述方法還包括: 接收所述主控制節(jié)點(diǎn)發(fā)送刪除虛擬磁盤的刪除指令,并根據(jù)所述刪除指令刪除所述虛擬磁盤,所述刪除指令中包括虛擬磁盤標(biāo)識(shí)和客戶端地址標(biāo)識(shí); 更新客戶端中存儲(chǔ)的所述映射關(guān)系表。
13.根據(jù)權(quán)利要求10~12任一所述的虛擬存儲(chǔ)方法,其特征在于,所述創(chuàng)建清求包括所述客戶端的IP地址、客戶端的`MAC地址和/或所述虛擬磁盤的大小。
14.一種虛擬存儲(chǔ)方法,其特征在于,包括: 根據(jù)客戶端的虛擬磁盤標(biāo)識(shí)與塊設(shè)備的塊設(shè)備標(biāo)識(shí)以及所述虛擬磁盤存儲(chǔ)位置對(duì)應(yīng)于所述塊設(shè)備中的存儲(chǔ)位置建立映射關(guān)系表; 向所述客戶端返回所述映射關(guān)系表,以使所述客戶端在需要讀寫所述塊設(shè)備時(shí),通過所述虛擬磁盤和所述映射關(guān)系表生成讀寫請(qǐng)求。
15.根據(jù)權(quán)利要求14所述的虛擬存儲(chǔ)方法,其特征在于,還包括, 對(duì)所述存儲(chǔ)節(jié)點(diǎn)進(jìn)行遷移操作,或者接收所述客戶端的遷移請(qǐng)求并根據(jù)所述遷移請(qǐng)求生成遷移指令并對(duì)所述存儲(chǔ)節(jié)點(diǎn)進(jìn)行遷移操作; 所述遷移操作包括: 向源塊設(shè)備發(fā)送遷移指令,所述遷移指令包括源塊設(shè)備標(biāo)識(shí)、源塊設(shè)備的存儲(chǔ)位置、目標(biāo)塊設(shè)備標(biāo)識(shí)和目的塊設(shè)備的存儲(chǔ)位置,以指示所述源塊設(shè)備將所源塊設(shè)備中的數(shù)據(jù)復(fù)制到所述目標(biāo)塊設(shè)備中。
16.根據(jù)權(quán)利要求14或15所述的虛擬存儲(chǔ)方法,其特征在于,所述映射關(guān)系表中還包括所述塊設(shè)備所在存儲(chǔ)節(jié)點(diǎn)的IP地址、存儲(chǔ)節(jié)點(diǎn)的MAC地址、存儲(chǔ)節(jié)點(diǎn)中各塊設(shè)備的塊設(shè)備名稱和/或塊設(shè)備大小。
17.根據(jù)權(quán)利要求14~16中任一項(xiàng)所述的虛擬存儲(chǔ)方法,其特征在于,還包括: 向所述客戶端發(fā)送刪除指令,所述刪除指令中包括虛擬磁盤的標(biāo)識(shí)和客戶端MAC地址,以指示所述客戶端刪除所述虛擬磁盤并更新所述映射關(guān)系表。
18.根據(jù)權(quán)利要求14~17中任一項(xiàng)所述的虛擬存儲(chǔ)方法,其特征在于,在所述根據(jù)所述客戶端的虛擬磁盤標(biāo)識(shí)與所述塊設(shè)備標(biāo)識(shí)以及所述虛擬磁盤存儲(chǔ)位置對(duì)應(yīng)于塊設(shè)備中的存儲(chǔ)位置建立映射關(guān)系表之前,還包括: 為所述塊設(shè)備分配所述塊設(shè)備標(biāo)識(shí),所述塊設(shè)備標(biāo)識(shí)是根據(jù)所述塊設(shè)備所在的存儲(chǔ)節(jié)點(diǎn)的地址生成的。
19.一種存儲(chǔ)節(jié)點(diǎn),其特征在于,包括: 第一接收模塊,用于接收客戶端根據(jù)映射關(guān)系表生成的塊設(shè)備讀寫請(qǐng)求,所述塊設(shè)備讀寫請(qǐng)求中包含塊設(shè)備標(biāo)識(shí)、塊設(shè)備中的存儲(chǔ)位置和讀寫內(nèi)容; 第一處理模塊,用于根據(jù)所述塊設(shè)備標(biāo)識(shí)定位塊設(shè)備,并根據(jù)所述塊設(shè)備中的存儲(chǔ)位置定位數(shù)據(jù)位置,并完成對(duì)所述讀寫內(nèi)容的操作。
20.根據(jù)權(quán)利要求19所述的存儲(chǔ)節(jié)點(diǎn),其特征在于,所述映射關(guān)系表具體包括: 所述客戶端的虛擬磁盤標(biāo)識(shí)與所述塊設(shè)備標(biāo)識(shí)的映射關(guān)系以及所述虛擬磁盤存儲(chǔ)位置對(duì)應(yīng)于塊設(shè)備中的存儲(chǔ)位置的映射關(guān)系。
21.根據(jù)權(quán)利要求19或20所述的存儲(chǔ)節(jié)點(diǎn),其特征在于,所述存儲(chǔ)節(jié)點(diǎn)還包括: 判斷模塊,用于當(dāng)所述存儲(chǔ)節(jié)點(diǎn)啟動(dòng)時(shí),獲取所述存儲(chǔ)節(jié)點(diǎn)的配置文件,并根據(jù)所述配置文件判斷是否第一次連接所述主控制節(jié)點(diǎn),當(dāng)判斷結(jié)果為是時(shí),觸發(fā)發(fā)送注冊(cè)請(qǐng)求模塊,當(dāng)判斷結(jié)果為否時(shí),觸發(fā)發(fā)送激活請(qǐng)求模塊; 所述發(fā)送注冊(cè)請(qǐng)求模塊,用于向所述主控制節(jié)點(diǎn)發(fā)送注冊(cè)請(qǐng)求; 所述發(fā)送激活請(qǐng)求模塊,用于向所述主控制節(jié)點(diǎn)發(fā)送激活請(qǐng)求。
22.根據(jù)權(quán)利要求19~21中任一項(xiàng)所述的存儲(chǔ)節(jié)點(diǎn),其特征在于,還包括: 所述第一接收模塊,還用于接收所述主控制節(jié)點(diǎn)發(fā)送的遷移指令,所述遷移指令包括源塊設(shè)備的標(biāo)識(shí)、源塊設(shè)備的存儲(chǔ)位置、目的塊設(shè)備的標(biāo)識(shí)、目的塊設(shè)備的存儲(chǔ)位置和源塊設(shè)備中遷移的數(shù)據(jù)大??; 所述第一處理模塊,還用于根據(jù)所述遷移指令將所述源塊設(shè)備中的數(shù)據(jù)復(fù)制到所述目的塊設(shè)備中。
23.根據(jù)權(quán)利要求19~22中任一項(xiàng)所述的存儲(chǔ)節(jié)點(diǎn),其特征在于,還包括: 檢測(cè)模塊,用于每隔預(yù)設(shè)時(shí)間,檢測(cè)與所述主控制節(jié)點(diǎn)之間是否保持通信,使得存儲(chǔ)節(jié)點(diǎn)出現(xiàn)異常無法完成存儲(chǔ)時(shí)候,由主控制節(jié)點(diǎn)更新客戶端的映射關(guān)系表,分配能夠完成存儲(chǔ)功能的其它存儲(chǔ)節(jié)點(diǎn)。
24.一種客戶端,其特征在于,包括: 第二接收模塊,用于接收用戶對(duì)于虛擬磁盤的讀寫操作;第二處理模塊,用于根據(jù)所述虛擬磁盤讀寫操作和所述映射關(guān)系表生成塊設(shè)備讀寫請(qǐng)求; 發(fā)送模塊,用于向所述塊設(shè)備所在存儲(chǔ)節(jié)點(diǎn)發(fā)送所述塊設(shè)備讀寫請(qǐng)求。
25.根據(jù)權(quán)利要求24所述的客戶端,其特征在于,所述客戶端還包括創(chuàng)建模塊和存儲(chǔ)模塊用于創(chuàng)建虛擬磁盤,包括: 所述發(fā)送模塊,還用于向主控制節(jié)點(diǎn)發(fā)送虛擬磁盤的創(chuàng)建請(qǐng)求; 所述第二接收模塊,還用于接收主控制節(jié)點(diǎn)返回的虛擬磁盤信息和映射關(guān)系表,所述虛擬磁盤信息包括所述虛擬磁盤標(biāo)識(shí)以及與所述虛擬磁盤標(biāo)識(shí)對(duì)應(yīng)的虛擬磁盤具體內(nèi)容; 存儲(chǔ)模塊,用于保存所述主控制節(jié)點(diǎn)返回的虛擬磁盤信息和所述映射關(guān)系表;創(chuàng)建模塊,用于根據(jù)所述虛擬磁盤信息創(chuàng)建所述虛擬磁盤。
26.根據(jù)權(quán)利要求24所述的客戶端,其特征在于,所述客戶端還包括刪除模塊和更新模塊,其中: 刪除模塊,用于接收所述主控制節(jié)點(diǎn)發(fā)送刪除虛擬磁盤的刪除指令,并根據(jù)所述刪除指令刪除所述虛擬磁盤,所述刪除指令中包括虛擬磁盤標(biāo)識(shí)和客戶端地址; 更新模塊,用于更新所述映射關(guān)系表。
27.根據(jù)權(quán)利要求24~26中任一項(xiàng)所述的客戶端,其特征在于,所述第二處理模塊包括: 判斷子模塊,用于判斷所述讀寫操作是否指向不同的塊設(shè)備,如果是,則觸發(fā)所述生成子模塊; 生成子模塊,用于根據(jù)所述讀寫操作和映射關(guān)系表生成不同塊設(shè)備的讀寫請(qǐng)求。
28.—種主控制節(jié)點(diǎn),其特征在于,包括: 建立映射關(guān)系表模塊,用于根據(jù)客戶端的虛擬磁盤標(biāo)識(shí)與塊設(shè)備的塊設(shè)備標(biāo)識(shí)以及所述虛擬磁盤存儲(chǔ)位置對(duì)應(yīng)于所述塊設(shè)備中的存儲(chǔ)位置建立映射關(guān)系表; 發(fā)送映射關(guān)系表模塊,用于向所述客戶端返回所述映射關(guān)系表,以使所述客戶端在需要讀寫所述塊設(shè)備時(shí),通過所述虛擬磁盤和所述映射關(guān)系表生成讀寫請(qǐng)求。
29.根據(jù)權(quán)利要求28所述的主控制節(jié)點(diǎn),其特征在于,所述主控制節(jié)點(diǎn)還包括遷移模塊和發(fā)送模塊,其中:` 遷移模塊,用于生成包括源塊設(shè)備標(biāo)識(shí)、源塊設(shè)備的存儲(chǔ)位置、目標(biāo)塊設(shè)備標(biāo)識(shí)和目的塊設(shè)備的存儲(chǔ)位置的遷移指令; 發(fā)送模塊,用于向所述源塊設(shè)備發(fā)送遷移指令,以指示所述源塊設(shè)備將所源塊設(shè)備中的數(shù)據(jù)復(fù)制到所述目標(biāo)塊設(shè)備中。
30.根據(jù)權(quán)利要求28或29所述的主控制節(jié)點(diǎn),其特征在于,所述主控制節(jié)點(diǎn)還包括刪除指令1吳塊,其中: 生成刪除指令模塊,用于生成包含虛擬磁盤的標(biāo)識(shí)和客戶端MAC地址的刪除指令;所述發(fā)送模塊,還用于向所述客戶端發(fā)送刪除指令,以指示所述客戶端刪除所述虛擬磁盤并更新所述映射關(guān)系表。
31.一種虛擬存儲(chǔ)系統(tǒng),包括根據(jù)權(quán)利要求20~23任一項(xiàng)所述的存儲(chǔ)節(jié)點(diǎn)、根據(jù)權(quán)利要求24~27任一項(xiàng)所述的客戶端以及根據(jù)權(quán)利要求28~30任一項(xiàng)所述的主控制節(jié)點(diǎn)。
【文檔編號(hào)】H04L29/08GK103516755SQ201210215699
【公開日】2014年1月15日 申請(qǐng)日期:2012年6月27日 優(yōu)先權(quán)日:2012年6月27日
【發(fā)明者】徐亞力, 鄒現(xiàn)軍 申請(qǐng)人:華為技術(shù)有限公司