專利名稱:一種高可用存儲(chǔ)服務(wù)器系統(tǒng)及其數(shù)據(jù)保護(hù)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)數(shù)據(jù)保護(hù)技術(shù)領(lǐng)域,更具體地,本發(fā)明涉及一種高 可用存儲(chǔ)服務(wù)器系統(tǒng)及其數(shù)據(jù)保護(hù)方法。
背景技術(shù):
隨著信息技術(shù)的發(fā)展,數(shù)據(jù)存儲(chǔ)功能已經(jīng)獨(dú)立于計(jì)算功能,可以單獨(dú) 向用戶提供服務(wù)。專用的存儲(chǔ)服務(wù)器系統(tǒng),如文件服務(wù)器、存儲(chǔ)區(qū)域網(wǎng)絡(luò) 等系統(tǒng),已經(jīng)獲得越來(lái)越廣泛的應(yīng)用。在這些系統(tǒng)中,用戶將需要使用的 數(shù)據(jù)存放在服務(wù)器中,由存儲(chǔ)服務(wù)器系統(tǒng)對(duì)其進(jìn)行集中管理。當(dāng)用戶訪問(wèn) 數(shù)據(jù)時(shí),通過(guò)網(wǎng)絡(luò)對(duì)存儲(chǔ)服務(wù)器進(jìn)行讀寫訪問(wèn)。存儲(chǔ)服務(wù)器系統(tǒng)除了向用 戶提供了數(shù)據(jù)處理功能,還提供數(shù)據(jù)本身的訪問(wèn)功能,因此,當(dāng)存儲(chǔ)服務(wù) 器出現(xiàn)故障時(shí),如果沒(méi)有有效的數(shù)據(jù)保護(hù)機(jī)制,不但會(huì)破壞用戶工作進(jìn)程 的連續(xù)性,還會(huì)因?yàn)楣ぷ鲾?shù)據(jù)的損壞或者丟失,造成用戶業(yè)務(wù)的不可恢復(fù)。 所以,在系統(tǒng)設(shè)計(jì)中,對(duì)存儲(chǔ)服務(wù)器的數(shù)據(jù)安全性要求將高于傳統(tǒng)的計(jì)算 功能服務(wù)器。
在現(xiàn)有技術(shù)中的高可用服務(wù)器系統(tǒng)中,常用的技術(shù)手段是服務(wù)備份, 即在同一系統(tǒng)中配置兩臺(tái)相同的服務(wù)器, 一臺(tái)正常工作,另一臺(tái)備用,當(dāng) 工作服務(wù)器出現(xiàn)故障時(shí),啟動(dòng)備用服務(wù)器的相同服務(wù),接管工作服務(wù)器的 工作。對(duì)于高可用存儲(chǔ)服務(wù)器,在對(duì)服務(wù)程序進(jìn)行備除的同時(shí),還需要對(duì)
數(shù)據(jù)進(jìn)行保護(hù),才能保護(hù)用戶的整個(gè)業(yè)務(wù)。高可用存儲(chǔ)服務(wù)器,按照數(shù)據(jù) 分配的結(jié)構(gòu),分為數(shù)據(jù)復(fù)制和數(shù)據(jù)共享兩種實(shí)現(xiàn)方式。
在數(shù)據(jù)復(fù)制的結(jié)構(gòu)中,工作服務(wù)器和備用服務(wù)器各自有獨(dú)立的數(shù)據(jù)存 儲(chǔ)空間,當(dāng)用戶進(jìn)行讀訪問(wèn)時(shí),由工作服務(wù)器提供數(shù)據(jù)。當(dāng)用戶進(jìn)行寫訪 問(wèn)時(shí),工作服務(wù)器將寫入數(shù)據(jù)傳遞到備用服務(wù)器進(jìn)行冗余存儲(chǔ),實(shí)現(xiàn)數(shù)據(jù)保護(hù)。
在數(shù)據(jù)共享的結(jié)構(gòu)中,工作服務(wù)器和備用服務(wù)器共同連接到 一 臺(tái)存儲(chǔ) 設(shè)備上。但在同一時(shí)刻,只有一臺(tái)服務(wù)器可以對(duì)存儲(chǔ)設(shè)備進(jìn)行訪問(wèn)。在工 作服務(wù)器正常工作時(shí),由工作服務(wù)器接受用戶的數(shù)據(jù)讀寫訪問(wèn),并操作存 儲(chǔ)設(shè)備。當(dāng)工作服務(wù)器發(fā)生故障時(shí),由備份服務(wù)器接受用戶的數(shù)據(jù)讀寫訪 問(wèn),并操作存儲(chǔ)設(shè)備。通過(guò)提高存儲(chǔ)設(shè)備的可靠性,集中管理數(shù)據(jù),實(shí)現(xiàn) 用戶數(shù)據(jù)和存儲(chǔ)的高可用。
以上兩種方式在應(yīng)用中都具有一些缺陷,數(shù)據(jù)復(fù)制方法雖然實(shí)現(xiàn)比較
簡(jiǎn)單,但是需要冗余的存儲(chǔ)空間,成本比較高;另外,當(dāng)工作服務(wù)器恢復(fù) 正常時(shí),備除服務(wù)器需要把獨(dú)立工作期間的數(shù)據(jù)變化傳遞到工作服務(wù)器, 數(shù)據(jù)恢復(fù)過(guò)程將占用服務(wù)器的有效資源,降低用戶的訪問(wèn)效率。數(shù)據(jù)共享 方式可以節(jié)省冗余的空間,降低成本,實(shí)現(xiàn)數(shù)據(jù)的高效管理,但是會(huì)產(chǎn)生 緩存一致性問(wèn)題在現(xiàn)代計(jì)算機(jī)操作系統(tǒng)中,為了提高數(shù)據(jù)訪問(wèn)的性能, 大部分都采用了緩存機(jī)制,即用戶數(shù)據(jù)寫入存儲(chǔ)服務(wù)器的數(shù)據(jù)會(huì)暫時(shí)存放 在存儲(chǔ)服務(wù)器的內(nèi)存中,當(dāng)內(nèi)存中的數(shù)據(jù)積累到一定量時(shí),再存放到存儲(chǔ) 設(shè)備中,從而減少重復(fù)訪問(wèn)時(shí)訪問(wèn)磁盤的次數(shù),提高訪問(wèn)效率。由于緩存 處于存儲(chǔ)服務(wù)器的內(nèi)存中,如果服務(wù)器出現(xiàn)故障,將導(dǎo)致緩存的丟失,破 壞數(shù)據(jù)的完整性。在數(shù)據(jù)共享方式中,由于沒(méi)有數(shù)據(jù)復(fù)制的機(jī)制,在這種 情況下緩存的丟失是不可避免的。禁止緩存機(jī)制的使用可以解決上述問(wèn)題,
但會(huì)明顯降低數(shù)據(jù)訪問(wèn)的效率。
發(fā)明內(nèi)容
為克服現(xiàn)有技術(shù)中的高可用存儲(chǔ)服務(wù)器系統(tǒng)可靠性差和效率低的缺 陷,本發(fā)明提出了一種高可用存儲(chǔ)服務(wù)器系統(tǒng)及其數(shù)據(jù)保護(hù)方法。
本發(fā)明的一個(gè)方面提供了一種高可用存儲(chǔ)服務(wù)器系統(tǒng),包括
工作服務(wù)器,工作服務(wù)器與外部的用戶機(jī)連接;
備用服務(wù)器,備用服務(wù)器與外部的用戶機(jī)連接,所述工作服務(wù)器和所 述備用服務(wù)器連接;
至少一臺(tái)存儲(chǔ)設(shè)備,所述至少一臺(tái)存儲(chǔ)設(shè)備分別與所述工作服務(wù)器和 所述備用月l務(wù)器連接;
其中,所述工作服務(wù)器將用戶機(jī)的寫入數(shù)據(jù)保存在所述工作服務(wù)器緩 存中,然后發(fā)送給所述備份服務(wù)器,并且當(dāng)所述寫入數(shù)據(jù)被寫入所述存儲(chǔ) 設(shè)備后,所述工作服務(wù)器通知所述備用服務(wù)器;
其中,所述備用服務(wù)器接收所述工作服務(wù)器發(fā)送的所述寫入數(shù)據(jù),并 將所述寫入數(shù)據(jù)保留在本地內(nèi)存中;當(dāng)所述備用服務(wù)器接收到來(lái)自所述工 作服務(wù)器的相應(yīng)寫入數(shù)據(jù)已經(jīng)寫入所述存儲(chǔ)設(shè)備的通知,所述備用服務(wù)器 將保存在本地內(nèi)存的相應(yīng)寫入數(shù)據(jù)刪除。
其中,所述備用服務(wù)器對(duì)所述工作服務(wù)器實(shí)時(shí)監(jiān)控,當(dāng)發(fā)現(xiàn)所述工作 服務(wù)器出現(xiàn)故障時(shí),所述備用服務(wù)器代替所述工作服務(wù)器工作,實(shí)現(xiàn)對(duì)所 述客戶機(jī)和所述存儲(chǔ)設(shè)備的訪問(wèn);當(dāng)所述備用服務(wù)器發(fā)現(xiàn)所述工作服務(wù)器 恢復(fù)正常時(shí),將訪問(wèn)、控制權(quán)交還所述工作服務(wù)器。
其中,所述存儲(chǔ)設(shè)備用來(lái)提供數(shù)據(jù)訪問(wèn)和存儲(chǔ)功能,同一時(shí)刻只能接 受一臺(tái)服務(wù)器的訪問(wèn)請(qǐng)求,當(dāng)所述工作服務(wù)器正常時(shí),接受所述工作服務(wù)
器的訪問(wèn)請(qǐng)求,當(dāng)所述工作服務(wù)器發(fā)生故障時(shí),接受所述備用服務(wù)器的訪 問(wèn)請(qǐng)求。
其中,所述工作服務(wù)器運(yùn)行緩存監(jiān)視進(jìn)程,定期查詢所述工作服務(wù)器 的緩存數(shù)據(jù)變化,將已經(jīng)寫入存儲(chǔ)設(shè)備的緩存數(shù)據(jù)的位置信息通知備用服 務(wù)器。
其中,所述緩存數(shù)據(jù)的位置信息包括緩存變化信息和用于記錄訪問(wèn)控 制順序的訪問(wèn)控制序號(hào),所述用戶機(jī)的當(dāng)前數(shù)據(jù)訪問(wèn)結(jié)果和以往數(shù)據(jù)訪問(wèn) 結(jié)果無(wú)關(guān),所述工作服務(wù)器的數(shù)據(jù)訪問(wèn)和緩存監(jiān)視共享一個(gè)唯一的所述訪 問(wèn)控制序號(hào),所述訪問(wèn)控制序號(hào)順序遞增,并傳遞給所述備用服務(wù)器。
其中,當(dāng)所述工作服務(wù)器通知所述備用服務(wù)器所述工作服務(wù)器的緩存 數(shù)據(jù)已經(jīng)被寫入所述存儲(chǔ)設(shè)備時(shí),所述備用服務(wù)器將所述緩存數(shù)據(jù)的在工 作服務(wù)器上的緩存信息和本地存儲(chǔ)的信息比較,查找本地存儲(chǔ)的數(shù)據(jù)位置 與需要清理的工作服務(wù)器上的緩存數(shù)據(jù)位置相同的數(shù)據(jù),比較找到的本地 存儲(chǔ)的數(shù)據(jù)的訪問(wèn)控制序號(hào)和所述需要清理的緩存數(shù)據(jù)的訪問(wèn)控制序號(hào), 如果所述需要清理的緩存數(shù)據(jù)的訪問(wèn)控制序號(hào)大于本地存儲(chǔ)的數(shù)據(jù)的訪問(wèn) 控制序號(hào),從本地存儲(chǔ)中刪除相應(yīng)的數(shù)據(jù)。
本發(fā)明的另一方面提供了一種高可用存儲(chǔ)服務(wù)器系統(tǒng)的數(shù)據(jù)保護(hù)方
法,包括
步驟10)、工作服務(wù)器將用戶機(jī)的寫入數(shù)據(jù)保存在工作服務(wù)器緩存中, 然后,發(fā)送所述寫入數(shù)據(jù)到分別與所述工作服務(wù)器和所述用戶機(jī)相連的備 用服務(wù)器;
步驟20)、所述備用服務(wù)器接收所述工作服務(wù)器發(fā)送的所述寫入數(shù)據(jù), 并將所述寫入數(shù)據(jù)保留在本地內(nèi)存中;
步驟30 )、所述工作服務(wù)器定期查詢所述工作服務(wù)器的緩存數(shù)據(jù)變化,
將已經(jīng)寫入存儲(chǔ)設(shè)備的緩存數(shù)據(jù)的位置信息通知備用服務(wù)器;
步驟40)、當(dāng)所述備用服務(wù)器接收到所述工作服務(wù)器的緩存數(shù)據(jù)已經(jīng) 寫入所述存儲(chǔ)設(shè)備的信息后,所述備用服務(wù)器將本地存儲(chǔ)中的相應(yīng)數(shù)據(jù)刪 除。
其中,所述方法進(jìn)一步包括,所述備用服務(wù)器對(duì)所述工作服務(wù)器實(shí)時(shí) 監(jiān)控,當(dāng)發(fā)現(xiàn)所述工作服務(wù)器出現(xiàn)故障時(shí),所述備用服務(wù)器代替所述工作 服務(wù)器工作,實(shí)現(xiàn)對(duì)所^J1戶機(jī)和所述存儲(chǔ)設(shè)備的訪問(wèn);當(dāng)所述備用服務(wù) 器發(fā)現(xiàn)所述工作服務(wù)器恢復(fù)正常時(shí),將訪問(wèn)、控制權(quán)交還所述工作服務(wù)器。
其中,步驟30)中,所述緩存數(shù)據(jù)的位置信息包括緩存變化信息和用 于記錄訪問(wèn)控制順序的訪問(wèn)控制序號(hào)。
其中,步驟30)進(jìn)一步包括當(dāng)所述工作服務(wù)器通知所述備用服務(wù)器 所述工作服務(wù)器的緩存數(shù)據(jù)已經(jīng)被寫入所述存儲(chǔ)設(shè)備,所述備用服務(wù)器將 所述緩存數(shù)據(jù)的在工作服務(wù)器上的緩存信息和本地存儲(chǔ)的信息比較,查找 本地存儲(chǔ)的數(shù)據(jù)中位置與需要清理的工作服務(wù)器上的緩存數(shù)據(jù)位置相同的 數(shù)據(jù),比較找到的本地存儲(chǔ)的數(shù)據(jù)的訪問(wèn)控制序號(hào)和所述需要清理的緩存 數(shù)據(jù)的訪問(wèn)控制序號(hào),如果所述需要清理的緩存數(shù)據(jù)的訪問(wèn)控制序號(hào)大于 本地存儲(chǔ)的數(shù)據(jù)的訪問(wèn)控制序號(hào),從本地存儲(chǔ)中刪除相應(yīng)的數(shù)據(jù)。
通過(guò)應(yīng)用本發(fā)明,提高了存儲(chǔ)空間的使用效率,節(jié)省產(chǎn)品成本;提高 了數(shù)據(jù)恢復(fù)效率,增加了用戶有效數(shù)據(jù)訪問(wèn)時(shí)間;并且,通過(guò)數(shù)據(jù)復(fù)制實(shí) 現(xiàn)緩存保護(hù)功能,避免了緩存數(shù)據(jù)的丟失,提高了用戶數(shù)據(jù)訪問(wèn)效率。
圖1高可用存儲(chǔ)服務(wù)器系統(tǒng)在工作服務(wù)器正常狀態(tài)下的結(jié)構(gòu)圖; 圖2高可用存儲(chǔ)月艮務(wù)器系統(tǒng)在工作服務(wù)器故障狀態(tài)下的結(jié)構(gòu)圖3工作服務(wù)器數(shù)據(jù)訪問(wèn)流程;
圖4工作服務(wù)器緩存監(jiān)視流程;
圖5 #服務(wù)器數(shù)據(jù)緩存接收流程; 圖6備用服務(wù)器數(shù)據(jù)緩存清理流程;
圖7備用服務(wù)器數(shù)據(jù)訪問(wèn)流程;
圖8備用服務(wù)器監(jiān)控進(jìn)程。
具體實(shí)施例方式
下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步詳細(xì)描述。
參見(jiàn)圖1和圖2,本發(fā)明提供的高可用存儲(chǔ)服務(wù)器系統(tǒng)10由工作服務(wù) 器ll、備用服務(wù)器12和至少一臺(tái)存儲(chǔ)設(shè)備13構(gòu)成,為形象說(shuō)明,本實(shí)施 例中,存儲(chǔ)設(shè)備釆用 一 臺(tái)。工作服務(wù)器11和備用服務(wù)器12通過(guò)網(wǎng)絡(luò)分別 與系統(tǒng)外部的用戶才幾20連接。工作服務(wù)器11和備用服務(wù)器12通過(guò)網(wǎng)絡(luò)與 存儲(chǔ)設(shè)備13分別連接。工作服務(wù)器11和備用服務(wù)器12之間通過(guò)網(wǎng)絡(luò)相互 連接。圖l描述了在工作服務(wù)器ll正常工作時(shí)的情景,此時(shí),由工作服務(wù) 器ll負(fù)責(zé)用戶機(jī)20和存儲(chǔ)設(shè)備13之間的數(shù)據(jù)訪問(wèn)。圖2描述了在工作服 務(wù)器11出現(xiàn)故障時(shí)的情景,此時(shí),由備用服務(wù)器12負(fù)責(zé)用戶機(jī)20和存儲(chǔ) 設(shè)備13之間的數(shù)據(jù)訪問(wèn)。在圖l和圖2中,細(xì)實(shí)線表示網(wǎng)絡(luò)物理連接,粗 實(shí)線表示基于網(wǎng)絡(luò)物理連接的數(shù)據(jù)和控制訪問(wèn)。工作服務(wù)器和備用服務(wù)器 可以是運(yùn)行通用操作系統(tǒng)的通用高性能計(jì)算機(jī),所述的存儲(chǔ)設(shè)備可以是運(yùn) 行標(biāo)準(zhǔn)存儲(chǔ)協(xié)議(如scsi協(xié)議)的通用存儲(chǔ)設(shè)備。所述的工作服務(wù)器和備 份服務(wù)器之間的連接優(yōu)選地采用高速網(wǎng)絡(luò)(如千兆網(wǎng)絡(luò)或光纖)。
當(dāng)系統(tǒng)正常工作時(shí),工作服務(wù)器11將用戶的數(shù)據(jù)訪問(wèn)讀寫請(qǐng)求轉(zhuǎn)發(fā)到 存儲(chǔ)設(shè)備13,并將存儲(chǔ)操作的結(jié)果返回用戶。當(dāng)用戶數(shù)據(jù)訪問(wèn)是寫請(qǐng)求時(shí),
工作服務(wù)器11將寫入的數(shù)據(jù)通過(guò)網(wǎng)絡(luò)復(fù)制到*服務(wù)器端12進(jìn)行保存。 當(dāng)工作服務(wù)器11的寫入緩存數(shù)據(jù)被寫入存儲(chǔ)設(shè)備13時(shí),工作服務(wù)器11 通過(guò)網(wǎng)絡(luò)將已經(jīng)寫入存儲(chǔ)設(shè)備13的緩存位置通知備用服務(wù)器12,由備用 服務(wù)器12刪除這部分緩存數(shù)據(jù)。
備用服務(wù)器12負(fù)責(zé)接收工作服務(wù)器11發(fā)送的寫緩存數(shù)據(jù),并將緩存 數(shù)據(jù)保留在本地內(nèi)存中。當(dāng)工作服務(wù)器11通知備用服務(wù)器12,有部分緩 存數(shù)據(jù)已經(jīng)寫入存儲(chǔ)設(shè)備13時(shí),備用服務(wù)器12將這部分緩存數(shù)據(jù)放棄, 避免本地內(nèi)存被無(wú)效緩存數(shù)據(jù)占滿。備用服務(wù)器12實(shí)現(xiàn)對(duì)工作服務(wù)器11 的實(shí)時(shí)監(jiān)控功能。發(fā)現(xiàn)工作服務(wù)器出現(xiàn)故障時(shí),*服務(wù)器12將替代工作 服務(wù)器ll的功能,實(shí)現(xiàn)與客戶機(jī)和存儲(chǔ)設(shè)備的訪問(wèn)連接,將本地內(nèi)存中保 存的緩存數(shù)據(jù)全部寫入存儲(chǔ)設(shè)備13,并且接管用戶機(jī)對(duì)工作服務(wù)器11的 訪問(wèn)請(qǐng)求,將用戶訪問(wèn)請(qǐng)求轉(zhuǎn)發(fā)到存儲(chǔ)設(shè)備13。當(dāng)備份服務(wù)器12發(fā)現(xiàn)工 作服務(wù)器ll恢復(fù)正常時(shí),將停止相應(yīng)用戶的數(shù)據(jù)訪問(wèn)請(qǐng)求,斷開(kāi)和用戶機(jī) 及存儲(chǔ)設(shè)備13的訪問(wèn)聯(lián)接,將訪問(wèn)控制交還工作服務(wù)器11。
存儲(chǔ)設(shè)備13通過(guò)網(wǎng)絡(luò)和工作服務(wù)器11以及備用服務(wù)器12實(shí)現(xiàn)物理連 接,提供數(shù)據(jù)訪問(wèn)和存儲(chǔ)功能。同一時(shí)刻,只能接受一臺(tái)服務(wù)器的訪問(wèn)請(qǐng) 求,當(dāng)工作服務(wù)器正常時(shí),接受工作服務(wù)器的訪問(wèn)請(qǐng)求;當(dāng)工作服務(wù)器發(fā) 生故障時(shí),接受備用服務(wù)器的訪問(wèn)請(qǐng)求。
工作服務(wù)器11和備用服務(wù)器12通過(guò)緩存數(shù)據(jù)保護(hù)的方法實(shí)現(xiàn)數(shù)據(jù)保 護(hù),緩存數(shù)據(jù)保護(hù)的方法如下所述
1、工作服務(wù)器ll運(yùn)行一個(gè)或多個(gè)數(shù)據(jù)訪問(wèn)進(jìn)程,接受用戶的數(shù)據(jù)訪 問(wèn)請(qǐng)求,并轉(zhuǎn)發(fā)到存儲(chǔ)設(shè)備13,并將操作結(jié)果返回用戶機(jī)20,當(dāng)用戶訪問(wèn) 是寫請(qǐng)求時(shí),數(shù)據(jù)訪問(wèn)進(jìn)程還需要將寫入數(shù)據(jù)發(fā)送到備用服務(wù)器12保存, 當(dāng)備用服務(wù)器12返回保存結(jié)果時(shí),再將操作結(jié)果返回用戶機(jī)20。圖3具體描述運(yùn)行在所述的工作服務(wù)器上的數(shù)據(jù)訪問(wèn)進(jìn)程,當(dāng)每次接 收到用戶機(jī)的訪問(wèn)時(shí),執(zhí)行以下步驟
11) 、接收用戶機(jī)20的數(shù)據(jù)訪問(wèn);
12) 、判斷接收的訪問(wèn)類型,如果是讀訪問(wèn),則執(zhí)行步驟13),如果是 寫訪問(wèn),執(zhí)行步驟14);
13 )、從存儲(chǔ)設(shè)備13中讀取用戶機(jī)20需要的數(shù)據(jù),跳轉(zhuǎn)執(zhí)行步驟17 );
14) 、向存儲(chǔ)設(shè)備13寫入用戶機(jī)20需要的數(shù)據(jù),由于有緩存機(jī)制,寫 入的數(shù)據(jù)有很大概率寫入存儲(chǔ)設(shè)備13的緩存;
15) 、增加用于記錄訪問(wèn)控制順序的訪問(wèn)控制序列號(hào);
16) 、將用戶機(jī)20寫入的數(shù)據(jù)和訪問(wèn)控制序號(hào)通過(guò)網(wǎng)絡(luò)傳遞到備用服 務(wù)器12;
17) 、將訪問(wèn)結(jié)果返回用戶才幾20。
2、所述的工作服務(wù)器運(yùn)行一個(gè)緩存監(jiān)視進(jìn)程,定期查詢工作服務(wù)器的 緩存數(shù)據(jù)變化,將已經(jīng)寫入存儲(chǔ)設(shè)備的緩存數(shù)據(jù)位置信息通知備用服務(wù)器。
圖4具體描述運(yùn)行在所述的工作服務(wù)器上的緩存監(jiān)視進(jìn)程,定期循環(huán) 執(zhí)行以下步驟
21) 、檢查存儲(chǔ)設(shè)備13對(duì)應(yīng)的緩存狀態(tài),獲得已經(jīng)寫入存儲(chǔ)設(shè)備13 介質(zhì)的緩存信息,由于這部分緩存已經(jīng)寫入介質(zhì),因此可以不再保留在備 用服務(wù)器12的內(nèi)存中;
22) 、增加訪問(wèn)控制序列號(hào);
23) 、將緩存變化信息和訪問(wèn)控制序列號(hào)通過(guò)網(wǎng)絡(luò)傳遞到備用服務(wù)器
12;
24) 、延遲一段時(shí)間,避免過(guò)多占用服務(wù)器資源;
25) 、返回步驟21)。
3、 備用服務(wù)器12運(yùn)行一個(gè)或多個(gè)緩存數(shù)據(jù)接收進(jìn)程,接受工作服務(wù) 器11發(fā)送的緩存數(shù)據(jù)并存儲(chǔ)到本地內(nèi)存。
圖5具體描述運(yùn)行在所述的備用服務(wù)器12上的緩存數(shù)據(jù)接收進(jìn)程, 當(dāng)備用服務(wù)器12接收到工作服務(wù)器11通過(guò)網(wǎng)絡(luò)發(fā)送的信息時(shí),執(zhí)行下面 的步驟
31) 、接收工作服務(wù)器11傳遞的信息;
32) 、判斷信息類型,如果是緩存數(shù)據(jù)傳遞信息,執(zhí)行步驟33),否 則執(zhí)行步驟34);
33) 、將傳遞的緩存數(shù)據(jù)和訪問(wèn)控制序列號(hào)存入本地內(nèi)存;
34) 、結(jié)束返回。
4、 備用服務(wù)器12運(yùn)行一個(gè)緩存清理進(jìn)程,接受工作服務(wù)器11發(fā)送的 緩存變化信息,將已經(jīng)寫入存儲(chǔ)設(shè)備介質(zhì)的緩存數(shù)據(jù)刪除,避免無(wú)效的緩 存數(shù)據(jù)占據(jù)本地內(nèi)存。
圖6具體描述運(yùn)行在所述的備用服務(wù)器12上的緩存清理進(jìn)程,當(dāng)備用 服務(wù)器12接收到工作服務(wù)器11通過(guò)網(wǎng)絡(luò)發(fā)送的信息時(shí),執(zhí)行下面的步驟
41) 、接收工作服務(wù)器ll傳遞的信息;
42) 、判斷接收的信息類型,如果傳遞的是緩存變化信息,執(zhí)行步驟 43),否則,執(zhí)行步驟46);
43) 將緩存清理的信息和本地存儲(chǔ)的緩存信息比較,查找本地存儲(chǔ)的 數(shù)據(jù)緩存中位置與需要清理的緩存相同的項(xiàng)目,如果找到,執(zhí)行步驟44 ), 否則,執(zhí)行步驟46);
44) 、比較找到的緩存項(xiàng)目的訪問(wèn)控制序號(hào)和緩存清理信息的訪問(wèn)控
制序號(hào),如果緩存清理信息的訪問(wèn)控制序號(hào)大于緩存項(xiàng)目的訪問(wèn)控制序號(hào), 則執(zhí)行步驟45),否則,執(zhí)行步驟46);
45) 、從本地內(nèi)存中刪除相應(yīng)的緩存項(xiàng)目;
46) 、結(jié)束返回。
由于工作服務(wù)器11和備用服務(wù)器12之間的網(wǎng)絡(luò)傳輸次序是不確定 的。存在這樣的可能性某一次操作中,工作服務(wù)器11先進(jìn)行緩存信息的 查詢,并傳遞到備用服務(wù)器12,之后用戶機(jī)20又進(jìn)行了一次寫操作,工 作服務(wù)器11將這次寫入的數(shù)據(jù)傳遞到備用服務(wù)器12。但是,由于網(wǎng)^# 輸次序的不確定性,數(shù)據(jù)緩存信息可能先到達(dá)備用服務(wù)器12,而緩存清理 信息后到達(dá)備用服務(wù)器12。備用服務(wù)器12可能根據(jù)緩存清理信息而將數(shù) 據(jù)緩存刪除。實(shí)際上,這部分?jǐn)?shù)據(jù)緩存并沒(méi)有寫入存儲(chǔ)設(shè)備介質(zhì),而造成 誤刪除。步驟43),步驟44)根據(jù)訪問(wèn)序列號(hào)決定是否刪除,就避免了上 面的問(wèn)題。
5、備用服務(wù)器12運(yùn)行一個(gè)或多個(gè)數(shù)據(jù)訪問(wèn)進(jìn)程,當(dāng)所述的工作服務(wù) 器ll正常運(yùn)行時(shí),數(shù)據(jù)訪問(wèn)進(jìn)程處于空閑等待狀態(tài)。當(dāng)所述的工作服務(wù)器 ll發(fā)生故障時(shí),數(shù)據(jù)訪問(wèn)進(jìn)程可以激活,實(shí)現(xiàn)數(shù)據(jù)訪問(wèn)操作。當(dāng)所述的備 用服務(wù)器12數(shù)據(jù)訪問(wèn)進(jìn)程被激活時(shí),應(yīng)該禁止數(shù)據(jù)緩存機(jī)制,將用戶機(jī)寫 入的數(shù)據(jù)直接寫入存儲(chǔ)設(shè)備介質(zhì),避免數(shù)據(jù)的丟失。同時(shí),當(dāng)所述的工作 服務(wù)器11恢復(fù)正常狀態(tài)時(shí),由于所有訪問(wèn)數(shù)據(jù)都已經(jīng)寫入存儲(chǔ)設(shè)備介質(zhì), 所述的工作服務(wù)器11可以直接接管用戶訪問(wèn)服務(wù),節(jié)省了工作服務(wù)器11 和備份服務(wù)器12之間的數(shù)據(jù)傳遞時(shí)間。
圖7具體描述運(yùn)行在所述的備用服務(wù)器12上的的數(shù)據(jù)訪問(wèn)進(jìn)程。當(dāng)所 述的工作服務(wù)器11正常工作時(shí),該進(jìn)程處于空閑等待狀態(tài)。當(dāng)所述的工作 服務(wù)器ll發(fā)生故障時(shí),該進(jìn)程被激活,處理用戶機(jī)20的數(shù)據(jù)訪問(wèn)。每次 接收到用戶機(jī)20訪問(wèn)時(shí),執(zhí)行以下步驟
51)、接收用戶機(jī)20的數(shù)據(jù)訪問(wèn)。52)、判斷接收的訪問(wèn)類型,如果是讀訪問(wèn),則執(zhí)行步驟53),如果 是寫訪問(wèn),執(zhí)行步驟54);
53 )、從存儲(chǔ)設(shè)備13中讀取用戶機(jī)20需要的數(shù)據(jù),跳轉(zhuǎn)執(zhí)行步驟55 );
54) 、向存儲(chǔ)設(shè)備13的介質(zhì)寫入用戶機(jī)20數(shù)據(jù);
55) 、將訪問(wèn)結(jié)果返回用戶機(jī)20。
由于在該進(jìn)程運(yùn)行時(shí),沒(méi)有另外的備用服務(wù)器,也沒(méi)有數(shù)據(jù)緩存機(jī)制, 因此步驟54 )必須將數(shù)據(jù)直接寫入存儲(chǔ)設(shè)備13的介質(zhì),確保數(shù)據(jù)的安全。 另外,由于數(shù)據(jù)全部寫入存儲(chǔ)設(shè)備介質(zhì),當(dāng)工作服務(wù)器ll恢復(fù)正常時(shí),直 接對(duì)存儲(chǔ)設(shè)備13進(jìn)行訪問(wèn),就可以恢復(fù)工作,無(wú)須從備用服務(wù)器12回傳數(shù)據(jù)。
6、備用服務(wù)器12運(yùn)行一個(gè)監(jiān)控進(jìn)程,實(shí)時(shí)監(jiān)視工作服務(wù)器ll,當(dāng)工 作服務(wù)器11發(fā)生故障時(shí),監(jiān)控進(jìn)程控制備用服務(wù)器12,接管工作服務(wù)器 對(duì)用戶機(jī)20及存儲(chǔ)設(shè)備13的訪問(wèn)控制,并將本地內(nèi)存中的緩存數(shù)據(jù)全部 寫入存儲(chǔ)設(shè)備13,再啟動(dòng)備用服務(wù)器12的數(shù)據(jù)訪問(wèn)進(jìn)程,向用戶機(jī)20提 供存儲(chǔ)訪問(wèn)服務(wù)。當(dāng)監(jiān)控進(jìn)程發(fā)現(xiàn)所述的工作服務(wù)器ll恢復(fù)正常時(shí),應(yīng)該 控制備用服務(wù)器12停止所有數(shù)據(jù)訪問(wèn)進(jìn)程,斷開(kāi)與存儲(chǔ)設(shè)備13以及用戶 機(jī)20的訪問(wèn)連接,將訪問(wèn)控制歸還工作服務(wù)器11。
圖8具體描述運(yùn)行在所述的備用服務(wù)器上的監(jiān)控進(jìn)程,定期循環(huán)執(zhí)行 以下步驟
61) 、檢查工作服務(wù)器ll的狀態(tài);
62) 、如果工作服務(wù)器ll的狀態(tài)沒(méi)有變化,則跳轉(zhuǎn)執(zhí)行步驟61),否 則執(zhí)行步驟63);
63 )、如果工作服務(wù)器11從正常狀態(tài)轉(zhuǎn)為故障狀態(tài),則執(zhí)行步驟64 ), 如果工作服務(wù)器ll從故障狀態(tài)轉(zhuǎn)為正常狀態(tài),執(zhí)行步驟68);
64) 、接管存儲(chǔ)設(shè)備13的訪問(wèn)控制;
65) 、將本地內(nèi)存的數(shù)據(jù)緩存全部寫入存儲(chǔ)設(shè)備13的介質(zhì);
66) 、接管用戶機(jī)20的訪問(wèn)控制;
67) 、激活本地?cái)?shù)據(jù)訪問(wèn)進(jìn)程(如圖7所示),轉(zhuǎn)執(zhí)行步驟65);
68) 、放棄用戶才幾20的訪問(wèn)控制;
69) 、使本地的數(shù)據(jù)訪問(wèn)進(jìn)程(如圖7所示)處于等待狀態(tài);
610) 、放棄存儲(chǔ)設(shè)備13的訪問(wèn)控制;
611) 、激活工作服務(wù)器11的數(shù)據(jù)訪問(wèn)進(jìn)程(如圖3所示);
612) 、延時(shí)等待;
613) 、跳轉(zhuǎn)執(zhí)行步驟61)。
另外,工作服務(wù)器和備用服務(wù)器運(yùn)行的數(shù)據(jù)訪問(wèn)進(jìn)程所實(shí)現(xiàn)的用戶機(jī) 訪問(wèn)服務(wù)應(yīng)該具有時(shí)間獨(dú)立性,即用戶機(jī)的當(dāng)前數(shù)據(jù)訪問(wèn)結(jié)果和以往數(shù)據(jù) 訪問(wèn)結(jié)果無(wú)關(guān)。保證當(dāng)工作服務(wù)器和備用服務(wù)器之間進(jìn)行訪問(wèn)控制轉(zhuǎn)換時(shí), 不會(huì)因?yàn)闊o(wú)法獲得以往數(shù)據(jù)訪問(wèn)信息而無(wú)法響應(yīng)用戶機(jī)的當(dāng)前請(qǐng)求。
工作服務(wù)器的數(shù)據(jù)訪問(wèn)進(jìn)程和緩存監(jiān)視進(jìn)程應(yīng)該共享一個(gè)唯一的訪問(wèn) 控制序號(hào),訪問(wèn)控制序號(hào)應(yīng)該隨訪問(wèn)順序遞增,并傳遞給備用服務(wù)器。備 用服務(wù)器的緩存數(shù)據(jù)接收進(jìn)程和緩存數(shù)據(jù)清理進(jìn)程應(yīng)該根據(jù)訪問(wèn)控制序號(hào) 決定緩存數(shù)據(jù)的保存和清理。每次進(jìn)行備用服務(wù)器緩存數(shù)據(jù)刪除時(shí),需要 比較援存數(shù)據(jù)的訪問(wèn)控制序列號(hào)和緩存變化信息的訪問(wèn)控制序列號(hào)進(jìn)行比 較。只有緩存變化信息訪問(wèn)序列號(hào)比存儲(chǔ)在備用服務(wù)器的緩存訪問(wèn)控制序 列號(hào)大的情況,才能刪除存儲(chǔ)在備用服務(wù)器的緩存數(shù)據(jù)。避免由于網(wǎng)旨 遞延遲的影響,造成有效緩存數(shù)據(jù)的誤刪除。
最后應(yīng)說(shuō)明的是,以上實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案而非對(duì)其 限制,并且在應(yīng)用上可以延伸到其他的修改、變化、應(yīng)用和實(shí)施例,同時(shí)
認(rèn)為所有這樣的^"改、變化、應(yīng)用、實(shí)施例都在本發(fā)明的精神和范圍內(nèi)。
權(quán)利要求
1、一種高可用存儲(chǔ)服務(wù)器系統(tǒng),包括工作服務(wù)器,工作服務(wù)器與外部的用戶機(jī)連接;備用服務(wù)器,備用服務(wù)器與外部的用戶機(jī)連接,所述工作服務(wù)器和所述備用服務(wù)器連接;至少一臺(tái)存儲(chǔ)設(shè)備,所述至少一臺(tái)存儲(chǔ)設(shè)備分別與所述工作服務(wù)器和所述備用服務(wù)器連接;其中,所述工作服務(wù)器將用戶機(jī)的寫入數(shù)據(jù)保存在所述工作服務(wù)器緩存中,然后發(fā)送給所述備份服務(wù)器,并且當(dāng)所述寫入數(shù)據(jù)被寫入所述存儲(chǔ)設(shè)備后,所述工作服務(wù)器通知所述備用服務(wù)器;其中,所述備用服務(wù)器接收所述工作服務(wù)器發(fā)送的所述寫入數(shù)據(jù),并將所述寫入數(shù)據(jù)保留在本地內(nèi)存中;當(dāng)所述備用服務(wù)器接收到來(lái)自所述工作服務(wù)器的相應(yīng)寫入數(shù)據(jù)已經(jīng)寫入所述存儲(chǔ)設(shè)備的通知,所述備用服務(wù)器將保存在本地內(nèi)存的相應(yīng)寫入數(shù)據(jù)刪除。
2、 權(quán)利要求l的高可用存儲(chǔ)服務(wù)器系統(tǒng),其中,所述備用服務(wù)器對(duì)所 述工作服務(wù)器實(shí)時(shí)監(jiān)控,當(dāng)發(fā)現(xiàn)所述工作服務(wù)器出現(xiàn)故障時(shí),所述備用服 務(wù)器代替所述工作服務(wù)器工作,實(shí)現(xiàn)對(duì)所述客戶機(jī)和所述存儲(chǔ)設(shè)備的訪問(wèn); 當(dāng)所迷備用服務(wù)器發(fā)現(xiàn)所述工作服務(wù)器恢復(fù)正常時(shí),將訪問(wèn)、控制權(quán)交還 所述工作服務(wù)器。
3、 權(quán)利要求l的高可用存儲(chǔ)服務(wù)器系統(tǒng),其中,所述存儲(chǔ)設(shè)備用來(lái)提 供數(shù)據(jù)訪問(wèn)和存儲(chǔ)功能,同一時(shí)刻只能接受一臺(tái)服務(wù)器的訪問(wèn)請(qǐng)求,當(dāng)所 述工作服務(wù)器正常時(shí),接受所述工作服務(wù)器的訪問(wèn)請(qǐng)求,當(dāng)所述工作服務(wù) 器發(fā)生故障時(shí),接受所述備用服務(wù)器的訪問(wèn)請(qǐng)求。
4、 權(quán)利要求l的高可用存儲(chǔ)服務(wù)器系統(tǒng),其中,所述工作服務(wù)器運(yùn)行 緩存監(jiān)^L進(jìn)程,定期查詢所述工作服務(wù)器的緩存數(shù)據(jù)變化,將已經(jīng)寫入存 儲(chǔ)設(shè)備的緩存數(shù)據(jù)的位置信息通知備用服務(wù)器。
5、 權(quán)利要求4的高可用存儲(chǔ)服務(wù)器系統(tǒng),其中,所述緩存數(shù)據(jù)的位置 信息包括緩存變化信息和用于記錄訪問(wèn)控制順序的訪問(wèn)控制序號(hào),所述用 戶機(jī)的當(dāng)前數(shù)據(jù)訪問(wèn)結(jié)果和以往數(shù)據(jù)訪問(wèn)結(jié)果無(wú)關(guān),所述工作服務(wù)器的數(shù) 據(jù)訪問(wèn)和緩存監(jiān)視共享一個(gè)唯一的所述訪問(wèn)控制序號(hào),所述訪問(wèn)控制序號(hào) 順序遞增,并傳遞給所述備用服務(wù)器。
6、 權(quán)利要求l的高可用存儲(chǔ)服務(wù)器系統(tǒng),其中,當(dāng)所述工作服務(wù)器通 知所述備用服務(wù)器所述工作服務(wù)器的緩存數(shù)據(jù)已經(jīng)被寫入所述存儲(chǔ)設(shè)備 時(shí),所述備用服務(wù)器將所述緩存數(shù)據(jù)的在工作服務(wù)器上的緩存信息和本地 存儲(chǔ)的信息比較,查找本地存儲(chǔ)的數(shù)據(jù)位置與需要清理的工作服務(wù)器上的 緩存數(shù)據(jù)位置相同的數(shù)據(jù),比較找到的本地存儲(chǔ)的數(shù)據(jù)的訪問(wèn)控制序號(hào)和 所述需要清理的緩存數(shù)據(jù)的訪問(wèn)控制序號(hào),如果所述需要清理的緩存數(shù)據(jù) 的訪問(wèn)控制序號(hào)大于本地存儲(chǔ)的數(shù)據(jù)的訪問(wèn)控制序號(hào),從本地存儲(chǔ)中刪除 相應(yīng)的數(shù)據(jù)。
7、 一種高可用存儲(chǔ)服務(wù)器系統(tǒng)的數(shù)據(jù)保護(hù)方法,包括步驟10)、工作服務(wù)器將用戶機(jī)的寫入數(shù)據(jù)保存在工作服務(wù)器緩存中, 然后,發(fā)送所述寫入數(shù)據(jù)到分別與所述工作服務(wù)器和所述用戶機(jī)相連的備 用服務(wù)器;步驟20)、所述備用服務(wù)器接收所述工作服務(wù)器發(fā)送的所述寫入數(shù)據(jù),并將所述寫入數(shù)據(jù)保留在本地內(nèi)存中;步驟30)、所述工作服務(wù)器定期查詢所述工作服務(wù)器的緩存數(shù)據(jù)變化, 將已經(jīng)寫入存儲(chǔ)設(shè)備的緩存數(shù)據(jù)的位置信息通知備用服務(wù)器;步驟40)、當(dāng)所述備用服務(wù)器接收到所述工作服務(wù)器的緩存數(shù)據(jù)已經(jīng) 寫入所述存儲(chǔ)設(shè)備的信息后,所述備用服務(wù)器將本地存儲(chǔ)中的相應(yīng)數(shù)據(jù)刪 除。
8、 權(quán)利要求7的高可用存儲(chǔ)服務(wù)器系統(tǒng)的數(shù)據(jù)保護(hù)方法,進(jìn)一步包括, 所述備用服務(wù)器對(duì)所述工作服務(wù)器實(shí)時(shí)監(jiān)控,當(dāng)發(fā)現(xiàn)所述工作服務(wù)器出現(xiàn) 故障時(shí),所述備用服務(wù)器代替所述工作服務(wù)器工作,實(shí)現(xiàn)對(duì)所述客戶機(jī)和 所述存儲(chǔ)設(shè)備的訪問(wèn);當(dāng)所述備用服務(wù)器發(fā)現(xiàn)所述工作服務(wù)器恢復(fù)正常時(shí), 將訪問(wèn)、控制權(quán)交還所述工作服務(wù)器。
9、 權(quán)利要求7的高可用存儲(chǔ)服務(wù)器系統(tǒng)的數(shù)據(jù)保護(hù)方法,其中,步驟 30)中,所述緩存數(shù)據(jù)的位置信息包括緩存變化信息和用于記錄訪問(wèn)控制 順序的訪問(wèn)控制序號(hào)。
10、 權(quán)利要求9的高可用存儲(chǔ)服務(wù)器系統(tǒng)的數(shù)據(jù)保護(hù)方法,其中,步 驟30)進(jìn)一步包括當(dāng)所述工作服務(wù)器通知所述備用服務(wù)器所述工作服務(wù) 器的緩存數(shù)據(jù)已經(jīng)被寫入所述存儲(chǔ)設(shè)備,所述備用服務(wù)器將所述緩存數(shù)據(jù) 的在工作服務(wù)器上的緩存信息和本地存儲(chǔ)的信息比較,查找本地存儲(chǔ)的數(shù)據(jù)中位置與需要清理的工作服務(wù)器上的緩存數(shù)據(jù)位置相同的數(shù)據(jù),比較找 到的本地存儲(chǔ)的數(shù)據(jù)的訪問(wèn)控制序號(hào)和所述需要清理的緩存數(shù)據(jù)的訪問(wèn)控 制序號(hào),如果所述需要清理的緩存數(shù)據(jù)的訪問(wèn)控制序號(hào)大于本地存儲(chǔ)的數(shù) 據(jù)的訪問(wèn)控制序號(hào),從本地存儲(chǔ)中刪除相應(yīng)的數(shù)據(jù)。
全文摘要
本發(fā)明提出了一種高可用存儲(chǔ)服務(wù)器系統(tǒng)及其數(shù)據(jù)保護(hù)方法,所述系統(tǒng)包括工作服務(wù)器、備用服務(wù)器和存儲(chǔ)設(shè)備,所述系統(tǒng)通過(guò)在工作服務(wù)器端執(zhí)行的數(shù)據(jù)訪問(wèn)、緩存監(jiān)視和數(shù)據(jù)復(fù)制進(jìn)程,在備用服務(wù)器端執(zhí)行緩存接收、緩存清理進(jìn)程,提高了存儲(chǔ)空間的使用效率,提高了數(shù)據(jù)恢復(fù)效率,并且,通過(guò)數(shù)據(jù)復(fù)制實(shí)現(xiàn)緩存保護(hù)功能,避免了緩存數(shù)據(jù)的丟失。
文檔編號(hào)G06F11/14GK101183325SQ20071017898
公開(kāi)日2008年5月21日 申請(qǐng)日期2007年12月7日 優(yōu)先權(quán)日2007年12月7日
發(fā)明者碩 馮, 湯海鷹, 源 袁, 馬一力 申請(qǐng)人:中國(guó)科學(xué)院計(jì)算技術(shù)研究所