專利名稱:快照方法、設(shè)備及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種快照方法、設(shè)備及系統(tǒng)。
背景技術(shù):
為了提升數(shù)據(jù)庫(Database ;以下簡稱DB)的性能和可靠性,通常把DB的數(shù)據(jù) 和日志或者不同實(shí)例存儲在不同的數(shù)據(jù)庫卷上。當(dāng)需要保存整個(gè)DB在某個(gè)時(shí)間點(diǎn)的數(shù)據(jù) 時(shí),需要對所有的卷在相同的時(shí)間點(diǎn)創(chuàng)建快照來得到整個(gè)DB的副本,通過一致性組來保證 能夠?qū)崿F(xiàn)這個(gè)目的,存儲各個(gè)數(shù)據(jù)、日志或?qū)嵗牟煌木斫M成了一致性組(Consistent Group),構(gòu)成一致性組的多個(gè)卷可以在同一個(gè)存儲設(shè)備上或處于不同的存儲設(shè)備上?,F(xiàn)有技術(shù)中的一致性組快照,中控設(shè)備通知一致性組中的所有節(jié)點(diǎn)懸掛來自主機(jī) 的IO請求,當(dāng)所有節(jié)點(diǎn)懸掛成功后,中控設(shè)備通知所有節(jié)點(diǎn)進(jìn)行快照處理,當(dāng)所有節(jié)點(diǎn)都 開始快照處理后,中控設(shè)備再通知節(jié)點(diǎn)釋放懸掛。這種方法中各個(gè)節(jié)點(diǎn)的懸掛時(shí)間不可控, 影響節(jié)點(diǎn)的正常業(yè)務(wù),并且懸掛的IO請求由于超時(shí)等原因會導(dǎo)致整個(gè)系統(tǒng)操作開銷很大, 影響系統(tǒng)正常工作。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供一種快照方法、設(shè)備及系統(tǒng),用以解決現(xiàn)有技術(shù)中各個(gè)節(jié)點(diǎn)的 懸掛時(shí)間不可控,影響節(jié)點(diǎn)的正常業(yè)務(wù)以及影響系統(tǒng)正常工作的問題,實(shí)現(xiàn)一致性組中節(jié) 點(diǎn)無需懸掛IO請求進(jìn)行快照操作。本發(fā)明實(shí)施例提供一種快照方法,包括向一致性組中的節(jié)點(diǎn)發(fā)送進(jìn)入快照初始狀態(tài)指示消息;當(dāng)接收到所述一致性組中的所有節(jié)點(diǎn)發(fā)送的返回消息時(shí),通知所述一致性組中的 節(jié)點(diǎn)進(jìn)行快照處理,所述返回消息表示所述節(jié)點(diǎn)已進(jìn)入所述快照初始狀態(tài)。本發(fā)明實(shí)施例提供又一種快照方法,包括接收到中控設(shè)備發(fā)送的進(jìn)入快照初始狀態(tài)指示消息,進(jìn)入快照初始狀態(tài),向所述 中控設(shè)備發(fā)送返回消息,所述返回消息表示已進(jìn)入所述快照初始狀態(tài);接收所述中控設(shè)備發(fā)送的進(jìn)行快照處理指示消息,進(jìn)行快照處理。本發(fā)明實(shí)施例提供一種中控設(shè)備,包括第一發(fā)送模塊,用于向一致性組中的節(jié)點(diǎn)發(fā)送進(jìn)入快照初始狀態(tài)指示消息;第一接收模塊,用于接收所述一致性組中的節(jié)點(diǎn)發(fā)送的返回消息,所述返回消息 表示所述節(jié)點(diǎn)已進(jìn)入所述快照初始狀態(tài);第一通知模塊,用于若所述第一接收模塊接收到所述一致性組中的所有節(jié)點(diǎn)發(fā)送 的所述返回消息,則通知所述一致性組中的節(jié)點(diǎn)進(jìn)行快照處理。本發(fā)明實(shí)施提供一種節(jié)點(diǎn),包括第三接收模塊,用于接收中控設(shè)備發(fā)送的進(jìn)入快照初始狀態(tài)指示消息;狀態(tài)處理模塊,用于當(dāng)所述第三接收模塊接收到所述進(jìn)入快照初始狀態(tài)指示消
4息,進(jìn)入快照初始狀態(tài);第二發(fā)送模塊,用于向所述中控設(shè)備發(fā)送返回消息,所述返回消息表示已進(jìn)入所 述快照初始狀態(tài);第四接收模塊,用于接收所述中控設(shè)備發(fā)送進(jìn)行快照處理指示消息;快照處理模塊,用于當(dāng)所述第四接收模塊接收到所述進(jìn)行快照處理指示消息,進(jìn) 行快照處理。本發(fā)明實(shí)施例還提供一種快照系統(tǒng),包括中控設(shè)備和節(jié)點(diǎn);所述中控設(shè)備用于向一致性組中的所述節(jié)點(diǎn)發(fā)送進(jìn)入快照初始狀態(tài)指示消息;當(dāng) 接收到所述一致性組中的所有所述節(jié)點(diǎn)發(fā)送的返回消息時(shí),通知所述一致性組中的所述節(jié) 點(diǎn)進(jìn)行快照處理,所述返回消息表示所述節(jié)點(diǎn)已進(jìn)入所述快照初始狀態(tài);所述節(jié)點(diǎn)用于接收所述中控設(shè)備發(fā)送的進(jìn)入快照初始狀態(tài)指示消息,進(jìn)入快照初 始狀態(tài),向所述中控設(shè)備發(fā)送所述返回消息;接收所述中控設(shè)備發(fā)送的進(jìn)行快照處理指示 消息,則進(jìn)行快照處理。本發(fā)明實(shí)施例的快照方法、設(shè)備及系統(tǒng),通過中控設(shè)備在需要進(jìn)行快照操作時(shí),通 知一致性組中所有節(jié)點(diǎn)進(jìn)入快照初始狀態(tài),當(dāng)所有節(jié)點(diǎn)都進(jìn)入快照初始狀態(tài)后,則通知所 有節(jié)點(diǎn)進(jìn)行快照操作。實(shí)現(xiàn)了無需懸掛IO請求進(jìn)行快照操作,不影響節(jié)點(diǎn)的正常業(yè)務(wù)以及 系統(tǒng)正常的工作,提高了系統(tǒng)的處理速度及處理效率,減小了系統(tǒng)的操作開銷。
為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對實(shí)施例描述中所需要使 用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對于本 領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他 的附圖。圖1為本發(fā)明一個(gè)實(shí)施例提供的快照方法流程圖;圖2為本發(fā)明實(shí)施例提供的快照示意圖;圖3為本發(fā)明又一個(gè)實(shí)施例提供的快照方法流程圖;圖4為本發(fā)明再一個(gè)實(shí)施例提供的快照方法流程圖;圖5為本發(fā)明一個(gè)實(shí)施例提供的中控設(shè)備結(jié)構(gòu)示意圖;圖6為本發(fā)明又一個(gè)實(shí)施例提供的中控設(shè)備結(jié)構(gòu)示意圖;圖7為本發(fā)明一個(gè)實(shí)施例提供的節(jié)點(diǎn)結(jié)構(gòu)示意圖;圖8為本發(fā)明又一個(gè)實(shí)施例提供的節(jié)點(diǎn)結(jié)構(gòu)示意圖;圖9為本發(fā)明一個(gè)實(shí)施例提供的快照系統(tǒng)結(jié)構(gòu)示意圖。
具體實(shí)施例方式為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例 中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是 本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員 在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。圖1為本發(fā)明一個(gè)實(shí)施例提供的快照方法流程圖,如圖1所示,該方法包括
5
S101、向一致性組中所有節(jié)點(diǎn)發(fā)送進(jìn)入快照初始狀態(tài)指示消息;S102、當(dāng)接收到一致性組中的所有節(jié)點(diǎn)發(fā)送的返回消息時(shí),通知一致性組中的節(jié) 點(diǎn)進(jìn)行快照處理,返回消息表示節(jié)點(diǎn)已進(jìn)入快照初始狀態(tài)。對于分布式的系統(tǒng)的快照,由于整個(gè)分布式系統(tǒng)對外是一個(gè)整體,需要對此整體 做一個(gè)快照,分布式系統(tǒng)的各個(gè)成員節(jié)點(diǎn)對自身進(jìn)行一個(gè)快照,只需要保證各個(gè)子快照的 時(shí)間點(diǎn)相同,就能得到整個(gè)分布式系統(tǒng)的一個(gè)完整的快照。一致性組可以由多個(gè)源卷組成,Oracle數(shù)據(jù)庫的DB數(shù)據(jù)、DB日志或?qū)嵗稚⒌?存儲在這些源卷中。多個(gè)源卷可以存儲在一致性組中的一個(gè)節(jié)點(diǎn)(存儲設(shè)備)上,一個(gè)源 卷也可以分散存儲在不同的節(jié)點(diǎn)上,參見圖2。為了保證一致性組中各個(gè)節(jié)點(diǎn)執(zhí)行快照操 作的一致性,在需要進(jìn)行激活快照的操作時(shí),中控設(shè)備向一致性組中的所有節(jié)點(diǎn)發(fā)送進(jìn)入 快照初始狀態(tài)(SNAPSHOT_INITIAL)的指示消息,節(jié)點(diǎn)接收到該指示消息后進(jìn)入SNAPSH0T_ INITIAL狀態(tài),并向中控設(shè)備返回已進(jìn)入快照初始狀態(tài)的返回消息。當(dāng)中控設(shè)備接收到一致性組中的所有節(jié)點(diǎn)返回的已進(jìn)入快照初始狀態(tài)的返回消 息后,中控設(shè)備進(jìn)入快照完成狀態(tài)(SNAPSHOT_FINISH),通知一致性組中的所有節(jié)點(diǎn)進(jìn)行快 照處理,一致性組中的節(jié)點(diǎn)接收到中控設(shè)備的進(jìn)行快照處理通知后,對自身的一個(gè)或多個(gè) 存儲有數(shù)據(jù)庫中DB數(shù)據(jù)、DB日志或?qū)嵗脑淳磉M(jìn)行快照處理,生成SNAPSHOT。本發(fā)明實(shí)施例的快照方法,通過中控設(shè)備在需要進(jìn)行快照操作時(shí),通知一致性組 中所有節(jié)點(diǎn)進(jìn)入快照初始狀態(tài),當(dāng)所有節(jié)點(diǎn)都進(jìn)入快照初始狀態(tài)后,則通知所有節(jié)點(diǎn)進(jìn)行 快照操作。實(shí)現(xiàn)了無需懸掛IO請求進(jìn)行快照操作,不影響節(jié)點(diǎn)的正常業(yè)務(wù)以及系統(tǒng)的正常 工作。提高了系統(tǒng)的處理速度及處理效率,減小了系統(tǒng)的操作開銷。圖3為本發(fā)明又一個(gè)實(shí)施例提供的快照方法流程圖,如圖3所示,該方法包括S301、接收中控設(shè)備發(fā)送的進(jìn)入快照初始狀態(tài)指示消息,進(jìn)入快照初始狀態(tài),向中 控設(shè)備發(fā)送返回消息,該返回消息表示已進(jìn)入快照初始狀態(tài);S302、接收中控設(shè)備發(fā)送的進(jìn)行快照處理指示消息,進(jìn)行快照處理。具體的,為了保證一致性組中各個(gè)節(jié)點(diǎn)執(zhí)行快照操作的一致性,在需要進(jìn)行激活 快照的操作時(shí),中控設(shè)備向一致性組中的所有節(jié)點(diǎn)發(fā)送進(jìn)入SNAPSHOT_INITIAL的指示 消息,節(jié)點(diǎn)接收到該指示消息后進(jìn)入SNAPSHOT_INITIAL狀態(tài),并向中控設(shè)備返回已進(jìn)入 SNAPSHOT_INITIAL狀態(tài)的返回消息。當(dāng)中控設(shè)備接收到一致性組中的所有節(jié)點(diǎn)返回的已進(jìn)入SNAPSHOT_INITIAL狀 態(tài)的返回消息后,中控設(shè)備進(jìn)入SNAPSHOT_FINISH狀態(tài)SNAPSHOT_FINISH,通知一致性組 中的所有節(jié)點(diǎn)進(jìn)行快照處理,一致性組中的節(jié)點(diǎn)接收到中控設(shè)備的進(jìn)行快照處理通知后, 對自身的一個(gè)或多個(gè)存儲有數(shù)據(jù)庫中DB數(shù)據(jù)、DB日志或?qū)嵗脑淳磉M(jìn)行快照處理,生成 SNAPSHOT。本發(fā)明實(shí)施例的快照方法,節(jié)點(diǎn)接收到中控設(shè)備指示消息后進(jìn)入快照初始狀態(tài), 并向中控設(shè)備發(fā)送返回消息,當(dāng)所有節(jié)點(diǎn)都進(jìn)入快照初始狀態(tài)后,中控設(shè)備通知所有節(jié)點(diǎn) 進(jìn)行快照操作。實(shí)現(xiàn)快照的過程無需懸掛IO請求,不影響節(jié)點(diǎn)的正常業(yè)務(wù)以及系統(tǒng)的正常 工作。提高了系統(tǒng)的處理速度及處理效率,減小了系統(tǒng)的操作開銷。圖4為本發(fā)明再一個(gè)實(shí)施例提供的快照方法流程圖,如圖4所示,該方法包括S401、中控設(shè)備向一致性組中的節(jié)點(diǎn)發(fā)送進(jìn)入快照初始狀態(tài)指示消息;
S402、節(jié)點(diǎn)接收到指示消息后,進(jìn)入快照初始狀態(tài);S403、節(jié)點(diǎn)進(jìn)入快照初始狀態(tài)后,向中控設(shè)備發(fā)送返回消息,該返回消息表示節(jié)點(diǎn) 已進(jìn)入快照初始狀態(tài);S404、節(jié)點(diǎn)接收來自主機(jī)的IO請求;S405、節(jié)點(diǎn)向中控設(shè)備發(fā)送查詢請求,該查詢請求用于查詢對于主機(jī)的IO請求的 處理方法;其中,一致性組中的節(jié)點(diǎn)在SNAPSHOT_INITIAL狀態(tài)下,每當(dāng)收到來自主機(jī)的IO請 求,都會向中控設(shè)備查詢對于該IO請求的處理方法。S406、中控設(shè)備通知節(jié)點(diǎn)處理主機(jī)的IO請求;當(dāng)中控設(shè)備尚未接收到一致性組中所有節(jié)點(diǎn)發(fā)送的已進(jìn)入快照初始狀態(tài)的返回 消息時(shí),中控設(shè)備尚未進(jìn)入SNAPSHOT_FmiSH狀態(tài),此時(shí),中控設(shè)備接收到節(jié)點(diǎn)發(fā)送的查詢 請求,則通知發(fā)送查詢請求的該節(jié)點(diǎn)處理來自主機(jī)的IO請求。S407、中控設(shè)備接收一致性組中所有節(jié)點(diǎn)發(fā)送的返回消息;S408、中控設(shè)備進(jìn)入快照完成狀態(tài);S409、節(jié)點(diǎn)接收來自主機(jī)的IO請求;S410、節(jié)點(diǎn)向中控設(shè)備發(fā)送查詢請求;S411、中控設(shè)備通知發(fā)送查詢請求的該節(jié)點(diǎn)進(jìn)行快照處理;S412、中控節(jié)點(diǎn)通知一致性組中的其他節(jié)點(diǎn)進(jìn)行快照處理。在S408中,當(dāng)中控設(shè)備接收到一致性組中所有節(jié)點(diǎn)發(fā)送的已進(jìn)入快照初始狀態(tài) 的返回消息后,中控設(shè)備進(jìn)入SNAPSHOT_FmiSH狀態(tài),中控設(shè)備會通知一致性組中的所有 節(jié)點(diǎn)進(jìn)行快照處理,而中控設(shè)備需要依次通知一致性組中的各個(gè)節(jié)點(diǎn)進(jìn)行快照處理,因此, 在中控設(shè)備還未來得及通知某一節(jié)點(diǎn)進(jìn)行快照處理時(shí),該節(jié)點(diǎn)便接收到了來自主機(jī)的IO 請求,隨即向中控設(shè)備發(fā)出查詢請求,即S409 S410。這種情況下,中控設(shè)備接收到該查詢 請求后,直接通知發(fā)送查詢請求的該節(jié)點(diǎn)進(jìn)行快照處理,即S411,然后,中控設(shè)備再通知一 致性組中的其他節(jié)點(diǎn)進(jìn)行快照處理。一致性組中的各個(gè)節(jié)點(diǎn)執(zhí)行快照處理過程中和進(jìn)行快照處理結(jié)束后,由于各個(gè)節(jié) 點(diǎn)已不在SNAPSHOT_INITIAL狀態(tài),因此,再收到來自主機(jī)的新的IO請求后,不會向中控設(shè) 備發(fā)起查詢請求,而是自行處理來自主機(jī)的IO請求。一致性組中的各個(gè)節(jié)點(diǎn)執(zhí)行快照處理結(jié)束后,會向中控設(shè)備發(fā)送快照結(jié)束信息, 以通知中控設(shè)備快照處理過程結(jié)束。本發(fā)明實(shí)施例的快照方法,中控設(shè)備在需要進(jìn)行快照操作時(shí),通知一致性組中所 有節(jié)點(diǎn)進(jìn)入快照初始狀態(tài),在該狀態(tài)下,所有節(jié)點(diǎn)接收到來自主機(jī)的IO請求,都會向中控 設(shè)備發(fā)送查詢對于IO請求的處理方式,若此時(shí)中控設(shè)備尚未接收到節(jié)點(diǎn)都進(jìn)入快照初始 狀態(tài)的返回信息,則指示該節(jié)點(diǎn)處理IO請求,實(shí)現(xiàn)不影響該節(jié)點(diǎn)的正常工作。當(dāng)所有節(jié)點(diǎn) 都進(jìn)入快照初始狀態(tài)后,則通知所有節(jié)點(diǎn)進(jìn)行快照操作。實(shí)現(xiàn)了無需懸掛IO請求進(jìn)行快照 操作,不影響節(jié)點(diǎn)的正常業(yè)務(wù)以及系統(tǒng)的正常工作,提高了系統(tǒng)的處理速度及處理效率,減 小了系統(tǒng)的操作開銷。本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟可以通過 程序指令相關(guān)的硬件來完成,前述的程序可以存儲于一計(jì)算機(jī)可讀取存儲介質(zhì)中,該程序在執(zhí)行時(shí),執(zhí)行包括上述方法實(shí)施例的步驟;而前述的存儲介質(zhì)包括R0M、RAM、磁碟或者 光盤等各種可以存儲程序代碼的介質(zhì)。圖5為本發(fā)明一個(gè)實(shí)施例提供的中控設(shè)備結(jié)構(gòu)示意圖,如圖5所示,該中控設(shè)備包 括第一發(fā)送模塊51、第一接收模塊52和第一通知模塊53 ;第一發(fā)送模塊51,用于向一致性組中的節(jié)點(diǎn)發(fā)送進(jìn)入快照初始狀態(tài)指示消息;第一接收模塊52,用于接收一致性組中的節(jié)點(diǎn)發(fā)送的返回消息,返回消息表示節(jié) 點(diǎn)已進(jìn)入快照初始狀態(tài);第一通知模塊53,用于若第一接收模塊52接收到一致性組中的所有節(jié)點(diǎn)發(fā)送的 返回消息,則通知一致性組中的節(jié)點(diǎn)進(jìn)行快照處理。一致性組可以由多個(gè)源卷組成,多個(gè)源卷可以存儲在一致性組中的一個(gè)節(jié)點(diǎn)上, 也可以存儲在不同的節(jié)點(diǎn)上。為了保證一致性組中各個(gè)節(jié)點(diǎn)執(zhí)行快照操作的一致性,中控設(shè)備在需要進(jìn)行激活 快照的操作時(shí),第一發(fā)送模塊51向一致性組中的所有節(jié)點(diǎn)發(fā)送進(jìn)入SNAPSHOT_INITIAL狀 態(tài)的指示消息,節(jié)點(diǎn)接收到該指示消息后進(jìn)入SNAPSHOT_INITIAL狀態(tài),并向中控設(shè)備發(fā)送 已進(jìn)入快照初始狀態(tài)的返回消息。當(dāng)?shù)谝唤邮漳K52接收到一致性組中的所有節(jié)點(diǎn)返回的已進(jìn)入快照初始狀態(tài)的 返回消息后,中控設(shè)備進(jìn)入SNAPSHOT_FINISH狀態(tài),第一通知模塊53通知一致性組中的所 有節(jié)點(diǎn)進(jìn)行快照處理,一致性組中的節(jié)點(diǎn)接收到第一通知模塊53的進(jìn)行快照處理通知后, 對自身的一個(gè)或多個(gè)存儲有數(shù)據(jù)庫中DB數(shù)據(jù)、DB日志或?qū)嵗脑淳磉M(jìn)行快照處理,生成 SNAPSHOT。本發(fā)明實(shí)施例的中控設(shè)備,在需要進(jìn)行快照操作時(shí),通知一致性組中所有節(jié)點(diǎn)進(jìn) 入快照初始狀態(tài),當(dāng)所有節(jié)點(diǎn)都返回進(jìn)入快照初始狀態(tài)的返回消息后,則通知所有節(jié)點(diǎn)進(jìn) 行快照操作。實(shí)現(xiàn)了無需要懸掛IO請求進(jìn)行快照操作,不影響節(jié)點(diǎn)的正常業(yè)務(wù)以及系統(tǒng)的 正常工作。提高了系統(tǒng)的處理速度及處理效率,減小了系統(tǒng)的操作開銷。圖6為本發(fā)明又一個(gè)實(shí)施例提供的中控設(shè)備結(jié)構(gòu)示意圖,如圖6所示,該中控設(shè)備 包括第一發(fā)送模塊51、第一接收模塊52和第一通知模塊53 ;第一發(fā)送模塊51,用于向一致性組中的節(jié)點(diǎn)發(fā)送進(jìn)入快照初始狀態(tài)指示消息;第一接收模塊52,用于接收一致性組中的節(jié)點(diǎn)發(fā)送的返回消息,返回消息表示節(jié) 點(diǎn)已進(jìn)入快照初始狀態(tài);第一通知模塊53,用于若第一接收模塊52接收到一致性組中的所有節(jié)點(diǎn)發(fā)送的 返回消息,則通知一致性組中的節(jié)點(diǎn)進(jìn)行快照處理。該中控設(shè)備還可以進(jìn)一步包括第二接收模塊M ;第二接收模塊M,用于接收一致性組中的節(jié)點(diǎn)發(fā)送的查詢請求,查詢請求用于查 詢對于主機(jī)的IO請求的處理方法;相應(yīng)的,第一通知模塊53,還用于在第一接收模塊52尚未接收到一致性組中的所 有節(jié)點(diǎn)發(fā)送的返回消息前,若第二接收模塊M接收到查詢請求,則通知發(fā)送查詢請求的節(jié) 點(diǎn)處理主機(jī)的IO請求,或在第一接收模塊52接收到一致性組中的所有節(jié)點(diǎn)發(fā)送的返回消 息后,若第二接收模塊M接收到查詢請求,通知一致性組中的節(jié)點(diǎn)進(jìn)行快照處理。具體的,為了一致性組中各個(gè)節(jié)點(diǎn)執(zhí)行快照操作的一致性,中控設(shè)備在需要進(jìn)行
8激活快照的操作時(shí),第一發(fā)送模塊51向一致性組中所有節(jié)點(diǎn)發(fā)送進(jìn)入SNAPSHOT_INITIAL 狀態(tài)指示消息,一致性組中的節(jié)點(diǎn)接收到指示消息后,進(jìn)入SNAPSHOT_INITIAL狀態(tài),并返 回已進(jìn)入SNAPSHOT_INITIAL狀態(tài)的返回消息。當(dāng)節(jié)點(diǎn)接收到來自主機(jī)的IO請求時(shí),節(jié)點(diǎn) 向中控設(shè)備發(fā)送查詢對于主機(jī)的IO請求的處理方法,中控設(shè)備的第二接收模塊M接收到 查詢請求后,由于第一接收模塊52尚未接收到所有節(jié)點(diǎn)的返回消息,因此,第一通知模塊 53通知節(jié)點(diǎn)處理主機(jī)的IO請求。當(dāng)?shù)谝唤邮漳K52已接收到一致性組中所有節(jié)點(diǎn)返回的已進(jìn)入快照初始狀態(tài)的 返回消息后,中控設(shè)備進(jìn)入SNAPSHOT_FINISH狀態(tài)。第一通知模塊53會通知所有一致性組 中的節(jié)點(diǎn)進(jìn)行快照處理,而第一通知模塊53需要對依次通知一致性組中的各個(gè)節(jié)點(diǎn)進(jìn)行 快照處理,因此,中控設(shè)備進(jìn)入SNAPSHOT_FINISH狀態(tài)后,第一通知模塊53可能還未來得及 通知某一節(jié)點(diǎn)進(jìn)行快照處理時(shí),該節(jié)點(diǎn)便接收到了來自主機(jī)的IO請求,進(jìn)而向中控設(shè)備發(fā) 出查詢請求,這種情況下,第二接收模塊M接收到該查詢請求后,第一通知模塊53直接通 知發(fā)送查詢請求的節(jié)點(diǎn)進(jìn)行快照處理,之后,再通知一致性組中的其他節(jié)點(diǎn)進(jìn)行快照處理。一致性組中的各個(gè)節(jié)點(diǎn)執(zhí)行快照處理過程中和進(jìn)行快照處理結(jié)束后,由于節(jié)點(diǎn)已 不在SNAPSHOT_INITIAL狀態(tài),因此,一致性組中的各節(jié)點(diǎn)再收到來自主機(jī)的新的IO請求 后,不會再向中控設(shè)備發(fā)起查詢請求,而是自行處理來自主機(jī)的IO請求。一致性組中的各個(gè)節(jié)點(diǎn)執(zhí)行快照處理結(jié)束后,會向中控設(shè)備發(fā)送快照結(jié)束信息, 通知中控設(shè)備快照處理過程結(jié)束。本發(fā)明實(shí)施例的中控設(shè)備,在需要進(jìn)行快照操作時(shí),通知一致性組中所有節(jié)點(diǎn)進(jìn) 入快照初始狀態(tài),在該狀態(tài)下,所有節(jié)點(diǎn)接收到來自主機(jī)的IO請求,都會向中控設(shè)備發(fā)送 查詢對于IO請求的處理方式,若此時(shí)中控設(shè)備尚未接收到節(jié)點(diǎn)都進(jìn)入快照初始狀態(tài)的返 回信息,則指示該節(jié)點(diǎn)處理IO請求,實(shí)現(xiàn)不影響該節(jié)點(diǎn)的正常工作。當(dāng)所有節(jié)點(diǎn)都進(jìn)入快 照初始狀態(tài)后,則通知所有節(jié)點(diǎn)進(jìn)行快照操作。實(shí)現(xiàn)了無需懸掛IO請求進(jìn)行快照操作,不 影響節(jié)點(diǎn)的正常業(yè)務(wù)以及系統(tǒng)的正常工作。提高了系統(tǒng)的處理速度及處理效率,減小了系 統(tǒng)的操作開銷。圖7為本發(fā)明一個(gè)實(shí)施例提供的節(jié)點(diǎn)結(jié)構(gòu)示意圖,如圖7所示,該節(jié)點(diǎn)包括第三 接收模塊71、狀態(tài)處理模塊72、第二發(fā)送模塊73、第四接收模塊74和快照處理模塊75 ;第三接收模塊71,用于接收中控設(shè)備發(fā)送的進(jìn)入快照初始狀態(tài)指示消息;狀態(tài)處理模塊72,用于當(dāng)?shù)谌邮漳K71接收到進(jìn)入快照初始狀態(tài)指示消息,進(jìn) 入快照初始狀態(tài);第二發(fā)送模塊73,用于向中控設(shè)備發(fā)送返回消息,返回消息表示已進(jìn)入快照初始 狀態(tài);第四接收模塊74,用于接收中控設(shè)備發(fā)送進(jìn)行快照處理指示消息;快照處理模塊75,用于當(dāng)?shù)谒慕邮漳K74接收到進(jìn)行快照處理指示消息,進(jìn)行快 照處理。具體的,為了一致性組中各個(gè)節(jié)點(diǎn)執(zhí)行快照操作的一致性,中控設(shè)備在需要進(jìn)行 激活快照的操作時(shí),向一致性組中的所有節(jié)點(diǎn)發(fā)送進(jìn)入SNAPSHOT_INITIAL的指示消息,第 三接收模塊71接收到該指示消息后,狀態(tài)處理模塊72進(jìn)入SNAPSHOT_INITIAL狀態(tài),第二 發(fā)送模塊73向中控設(shè)備發(fā)送返回消息,表示已進(jìn)入SNAPSHOT_INITIAL狀態(tài)。
9
當(dāng)中控設(shè)備接收到一致性組中的所有節(jié)點(diǎn)發(fā)送的已進(jìn)入SNAPSHOT_INITIAL狀態(tài) 的返回消息后,中控設(shè)備進(jìn)入SNAPSHOT_FINISH狀態(tài)SNAPSHOT_FINISH,通知一致性組中的 所有節(jié)點(diǎn)進(jìn)行快照處理,第四接收模塊74接收到中控設(shè)備的進(jìn)行快照處理通知后,由快照 處理模塊75對自身的一個(gè)或多個(gè)存儲有數(shù)據(jù)庫中DB數(shù)據(jù)、DB日志或?qū)嵗脑淳磉M(jìn)行快照 處理,生成SNAPSHOT。本發(fā)明實(shí)施例的節(jié)點(diǎn),收到中控設(shè)備的指示消息后進(jìn)入快照初始狀態(tài),并向中控 設(shè)備發(fā)送返回消息,當(dāng)所有節(jié)點(diǎn)都進(jìn)入快照初始狀態(tài)后,中控設(shè)備通知所有節(jié)點(diǎn)進(jìn)行快照 操作。實(shí)現(xiàn)了無需要懸掛IO請求進(jìn)行快照操作,不影響節(jié)點(diǎn)的正常業(yè)務(wù)以及系統(tǒng)的正常工 作,提高了系統(tǒng)的處理速度及處理效率,減小了系統(tǒng)的操作開銷。圖8為本發(fā)明又一個(gè)實(shí)施例提供的節(jié)點(diǎn)結(jié)構(gòu)示意圖,如圖8所示,該節(jié)點(diǎn)包括第 三接收模塊71、狀態(tài)處理模塊72、第二發(fā)送模塊73、第四接收模塊74和快照處理模塊75 ;第三接收模塊71,用于接收中控設(shè)備發(fā)送的進(jìn)入快照初始狀態(tài)指示消息;狀態(tài)處理模塊72,用于當(dāng)?shù)谌邮漳K71接收到進(jìn)入快照初始狀態(tài)指示消息,進(jìn) 入快照初始狀態(tài);第二發(fā)送模塊73,用于向中控設(shè)備發(fā)送返回消息,返回消息表示已進(jìn)入快照初始 狀態(tài);第四接收模塊74,用于接收中控設(shè)備發(fā)送進(jìn)行快照處理指示消息;快照處理模塊75,用于當(dāng)?shù)谒慕邮漳K74接收到進(jìn)行快照處理指示消息,進(jìn)行快 照處理。進(jìn)一步的,該節(jié)點(diǎn)還可以包括第五接收模塊76、查詢模塊77、第六接收模塊78和 執(zhí)行模塊79 ;第五接收模塊76,用于接收主機(jī)的IO請求;查詢模塊77,用于向中控設(shè)備發(fā)送查詢請求,該查詢請求用于查詢對于主機(jī)的IO 請求的處理方法;第六接收模塊78,用于接收中控設(shè)備對于查詢請求的反饋信息;執(zhí)行模塊79,用于根據(jù)第六接收模塊78接收到的反饋信息,處理主機(jī)的IO請求, 或進(jìn)行快照處理。具體的,為了保證一致性組中各個(gè)節(jié)點(diǎn)執(zhí)行快照操作的一致性,中控設(shè)備在需要 進(jìn)行激活快照的操作時(shí),向一致性組中所有節(jié)點(diǎn)發(fā)送進(jìn)入SNAPSHOT_INITIAL狀態(tài)指示消 息,第三接收模塊71接收到指示消息后,狀態(tài)處理模塊72進(jìn)入SNAPSHOT_INITIAL狀態(tài),并 通過第二發(fā)送模塊73向中控設(shè)備發(fā)送已進(jìn)入SNAPSHOT_INITIAL狀態(tài)的返回消息。當(dāng)?shù)谖?接收模塊76接收到來自主機(jī)的IO請求時(shí),查詢模塊77向中控設(shè)備發(fā)送查詢對于主機(jī)的IO 請求的處理方法,中控設(shè)備接收到查詢請求后,由于中控設(shè)備尚未接收到所有節(jié)點(diǎn)的返回 消息,因此,中控設(shè)備通知節(jié)點(diǎn)處理主機(jī)的IO請求。當(dāng)中控設(shè)備接收到一致性組中所有節(jié)點(diǎn)返回的已進(jìn)入快照初始狀態(tài)的返回消息 后,中控設(shè)備進(jìn)入SNAPSHOT_FINISH狀態(tài)。并通知所有一致性組中的節(jié)點(diǎn)進(jìn)行快照處理,而 中控設(shè)備需要對依次通知各個(gè)節(jié)點(diǎn)進(jìn)行快照處理,因此,在中控設(shè)備進(jìn)入SNAPSHOT_FINISH 狀態(tài)后,可能還未來得及通知某一節(jié)點(diǎn)進(jìn)行快照處理時(shí),節(jié)點(diǎn)的第五接收模塊76便接收到 了來自主機(jī)的IO請求,進(jìn)而查詢模塊77向中控設(shè)備發(fā)出查詢請求,這種情況下,中控設(shè)備接收到該查詢請求后,直接通知該節(jié)點(diǎn)進(jìn)行快照處理。第六接收模塊78接收到中控設(shè)備的 通知后,通過執(zhí)行模塊79進(jìn)行快照處理。各個(gè)節(jié)點(diǎn)執(zhí)行快照處理過程中和快照處理結(jié)束后,由于節(jié)點(diǎn)已不在SNAPSH0T_ INITIAL狀態(tài),因此,在第五接收模塊76收到來自主機(jī)的新的IO請求后,查詢模塊77不會 再向中控設(shè)備發(fā)起查詢請求,而是自行處理來自主機(jī)的IO請求。各個(gè)節(jié)點(diǎn)執(zhí)行快照處理結(jié)束后,會向中控設(shè)備返回快照結(jié)束信息,已通知中控設(shè) 備快照處理過程結(jié)束。本發(fā)明實(shí)施例的節(jié)點(diǎn),當(dāng)接收到中控設(shè)備的指示消息后進(jìn)入快照初始狀態(tài)并向中 控設(shè)備發(fā)送返回消息,在該狀態(tài)下,所有節(jié)點(diǎn)接收到來自主機(jī)的IO請求,都會向中控設(shè)備 發(fā)送查詢對于IO請求的處理方式,若此時(shí)中控設(shè)備尚未接收到節(jié)點(diǎn)都進(jìn)入快照初始狀態(tài) 的返回信息,則指示該節(jié)點(diǎn)處理IO請求,實(shí)現(xiàn)了不影響該節(jié)點(diǎn)的正常工作。當(dāng)所有節(jié)點(diǎn)都 進(jìn)入快照初始狀態(tài)后,則中控設(shè)備通知所有節(jié)點(diǎn)進(jìn)行快照操作。實(shí)現(xiàn)了無需懸掛IO請求進(jìn) 行快照操作,進(jìn)而不影響節(jié)點(diǎn)的正常業(yè)務(wù)以及系統(tǒng)的正常工作,提高了系統(tǒng)的處理速度及 處理效率,減小了系統(tǒng)的操作開銷。圖9為本發(fā)明一個(gè)實(shí)施例提供的快照系統(tǒng)結(jié)構(gòu)示意圖,如圖9所示,該系統(tǒng)包括 中控設(shè)備1和節(jié)點(diǎn)2 ;中控設(shè)備1用于向一致性組中的節(jié)點(diǎn)2發(fā)送進(jìn)入快照初始狀態(tài)指示消息;當(dāng)接收 到一致性組中的所有節(jié)點(diǎn)2發(fā)送的返回消息時(shí),通知一致性組中的節(jié)點(diǎn)2進(jìn)行快照處理,返 回消息表示節(jié)點(diǎn)2已進(jìn)入快照初始狀態(tài);節(jié)點(diǎn)2用于接收到中控設(shè)備1發(fā)送的進(jìn)入快照初始狀態(tài)指示消息,進(jìn)入快照初始 狀態(tài),向中控設(shè)備1發(fā)送返回消息;接收到中控設(shè)備1發(fā)送的進(jìn)行快照處理指示消息,進(jìn)行 快照處理。一致性組可以由多個(gè)源卷組成(源卷A、源卷B、源卷C......),多個(gè)源卷可以存儲
在一致性組中的一個(gè)節(jié)點(diǎn)2上,也可以存儲在不同的節(jié)點(diǎn)2上,圖9所示為源卷A、源卷B、 源卷C分別存儲在三個(gè)不同節(jié)點(diǎn)2的情況。為了保證分布式環(huán)境中一致性組中各個(gè)節(jié)點(diǎn)2執(zhí)行快照操作的一致性,在需要進(jìn) 行激活快照的操作時(shí),中控設(shè)備1向一致性組中的所有節(jié)點(diǎn)2發(fā)送進(jìn)入SNAPSHOT_INITIAL 狀態(tài)的指示消息,節(jié)點(diǎn)2接收到該指示消息后進(jìn)入SNAPSHOT_INITIAL狀態(tài),并向中控設(shè)備 1發(fā)送已進(jìn)入快照初始狀態(tài)的返回消息。當(dāng)中控設(shè)備1接收到一致性組中的所有節(jié)點(diǎn)2返回的已進(jìn)入SNAPSHOT_INITIAL 狀態(tài)的返回消息后,中控設(shè)備1進(jìn)入SNAPSHOT_FINISH狀態(tài),并通知一致性組中的所有節(jié)點(diǎn) 2進(jìn)行快照處理,一致性組中的節(jié)點(diǎn)2接收到中控設(shè)備1的進(jìn)行快照處理通知后,對自身的 一個(gè)或多個(gè)存儲有數(shù)據(jù)庫中DB數(shù)據(jù)、DB日志或?qū)嵗脑淳磉M(jìn)行快照處理,生成SNAPSHOT。本發(fā)明實(shí)施例的快照系統(tǒng),中控設(shè)備在需要進(jìn)行快照操作時(shí),通知一致性組中所 有節(jié)點(diǎn)進(jìn)入快照初始狀態(tài),當(dāng)所有節(jié)點(diǎn)都進(jìn)入快照初始狀態(tài)后,則通知所有節(jié)點(diǎn)進(jìn)行快照 操作。實(shí)現(xiàn)了無需要懸掛IO請求進(jìn)行快照操作,不影響節(jié)點(diǎn)的正常業(yè)務(wù)以及系統(tǒng)的正常工 作,提高了系統(tǒng)的處理速度及處理效率,減小了系統(tǒng)的操作開銷。最后應(yīng)說明的是以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡 管參照前述實(shí)施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解其依然
11可以對前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分技術(shù)特征進(jìn)行等同替 換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精 神和范圍。
權(quán)利要求
1.一種快照方法,其特征在于,包括向一致性組中的節(jié)點(diǎn)發(fā)送進(jìn)入快照初始狀態(tài)指示消息;當(dāng)接收到所述一致性組中的所有節(jié)點(diǎn)發(fā)送的返回消息時(shí),通知所述一致性組中的節(jié)點(diǎn) 進(jìn)行快照處理,所述返回消息表示所述節(jié)點(diǎn)已進(jìn)入所述快照初始狀態(tài)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述接收到所述一致性組中的所有節(jié)點(diǎn) 發(fā)送的返回消息之前,還包括接收所述一致性組中的節(jié)點(diǎn)發(fā)送的查詢請求,所述查詢請求用于查詢對于主機(jī)的IO 請求的處理方法;通知發(fā)送查詢請求的節(jié)點(diǎn)處理所述主機(jī)的IO請求。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述接收到所述一致性組中的所有節(jié)點(diǎn) 發(fā)送的返回消息之后,還包括接收所述一致性組中的節(jié)點(diǎn)發(fā)送的查詢請求; 執(zhí)行所述通知所述一致性組中的節(jié)點(diǎn)進(jìn)行快照處理的步驟。
4.一種快照方法,其特征在于,包括接收到中控設(shè)備發(fā)送的進(jìn)入快照初始狀態(tài)指示消息,進(jìn)入快照初始狀態(tài),向所述中控 設(shè)備發(fā)送返回消息,所述返回消息表示已進(jìn)入所述快照初始狀態(tài); 接收所述中控設(shè)備發(fā)送的進(jìn)行快照處理指示消息, 進(jìn)行快照處理。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述接收到所述中控設(shè)備發(fā)送進(jìn)行快照 處理指示消息之前,還包括接收主機(jī)的IO請求,向所述中控設(shè)備發(fā)送查詢請求,所述查詢請求用于查詢對于所述 主機(jī)的IO請求的處理方法;根據(jù)所述中控設(shè)備對于所述查詢請求的反饋信息,處理所述主機(jī)的IO請求,或進(jìn)行所 述快照處理。
6.一種中控設(shè)備,其特征在于,包括第一發(fā)送模塊,用于向一致性組中的節(jié)點(diǎn)發(fā)送進(jìn)入快照初始狀態(tài)指示消息; 第一接收模塊,用于接收所述一致性組中的節(jié)點(diǎn)發(fā)送的返回消息,所述返回消息表示 所述節(jié)點(diǎn)已進(jìn)入所述快照初始狀態(tài);第一通知模塊,用于若所述第一接收模塊接收到所述一致性組中的所有節(jié)點(diǎn)發(fā)送的所 述返回消息,則通知所述一致性組中的節(jié)點(diǎn)進(jìn)行快照處理。
7.根據(jù)權(quán)利要求6所述的中控設(shè)備,其特征在于,還包括第二接收模塊,用于接收所述一致性組中的節(jié)點(diǎn)發(fā)送的查詢請求,所述查詢請求用于 查詢對于主機(jī)的IO請求的處理方法;所述第一通知模塊還用于在所述第一接收模塊接收所述一致性組中的所有節(jié)點(diǎn)發(fā)送 的所述返回消息前,若所述第二接收模塊接收所述查詢請求,則通知發(fā)送查詢請求的節(jié)點(diǎn) 處理所述主機(jī)的IO請求,或在所述第一接收模塊接收所述一致性組中的所有節(jié)點(diǎn)發(fā)送的 所述返回消息后,若所述第二接收模塊接收所述查詢請求,則通知所述一致性組中的節(jié)點(diǎn) 進(jìn)行快照處理。
8.一種節(jié)點(diǎn),其特征在于,包括第三接收模塊,用于接收中控設(shè)備發(fā)送的進(jìn)入快照初始狀態(tài)指示消息; 狀態(tài)處理模塊,用于當(dāng)所述第三接收模塊接收到所述進(jìn)入快照初始狀態(tài)指示消息,進(jìn) 入快照初始狀態(tài);第二發(fā)送模塊,用于向所述中控設(shè)備發(fā)送返回消息,所述返回消息表示已進(jìn)入所述快 照初始狀態(tài);第四接收模塊,用于接收所述中控設(shè)備發(fā)送進(jìn)行快照處理指示消息; 快照處理模塊,用于當(dāng)所述第四接收模塊接收到所述進(jìn)行快照處理指示消息,進(jìn)行快 照處理。
9.根據(jù)權(quán)利要求8所述的節(jié)點(diǎn),其特征在于,還包括 第五接收模塊,用于接收主機(jī)的IO請求;查詢模塊,用于向所述中控設(shè)備發(fā)送查詢請求,所述查詢請求用于查詢對于所述主機(jī) 的IO請求的處理方法;第六接收模塊,用于接收所述中控設(shè)備對于所述查詢請求的反饋信息; 執(zhí)行模塊,用于根據(jù)所述第六接收模塊接收的所述反饋信息,處理所述主機(jī)的IO請 求,或進(jìn)行所述快照處理。
10.一種快照系統(tǒng),其特征在于,包括中控設(shè)備和節(jié)點(diǎn);所述中控設(shè)備用于向一致性組中的所述節(jié)點(diǎn)發(fā)送進(jìn)入快照初始狀態(tài)指示消息;當(dāng)接收 到所述一致性組中的所有所述節(jié)點(diǎn)發(fā)送的返回消息時(shí),通知所述一致性組中的所述節(jié)點(diǎn)進(jìn) 行快照處理,所述返回消息表示所述節(jié)點(diǎn)已進(jìn)入所述快照初始狀態(tài);所述節(jié)點(diǎn)用于接收所述中控設(shè)備發(fā)送的進(jìn)入快照初始狀態(tài)指示消息,進(jìn)入快照初始狀 態(tài),向所述中控設(shè)備發(fā)送所述返回消息;接收所述中控設(shè)備發(fā)送的進(jìn)行快照處理指示消息, 則進(jìn)行快照處理。
全文摘要
本發(fā)明實(shí)施例提供一種快照方法、設(shè)備及系統(tǒng)。一種方法包括向一致性組中的節(jié)點(diǎn)發(fā)送進(jìn)入快照初始狀態(tài)指示消息;當(dāng)接收到一致性組中的所有節(jié)點(diǎn)發(fā)送的返回消息時(shí),通知一致性組中的節(jié)點(diǎn)進(jìn)行快照處理,返回消息表示所述節(jié)點(diǎn)已進(jìn)入快照初始狀態(tài)。另一種方法包括接收中控設(shè)備發(fā)送的進(jìn)入快照初始狀態(tài)指示消息,進(jìn)入快照初始狀態(tài),向中控設(shè)備發(fā)送返回消息,返回消息表示已進(jìn)入快照初始狀態(tài);接收中控設(shè)備發(fā)送的進(jìn)行快照處理指示消息,則進(jìn)行快照處理。本發(fā)明實(shí)施例實(shí)現(xiàn)了一致性組中的各節(jié)點(diǎn)無需懸掛IO請求而進(jìn)行快照處理,提高了系統(tǒng)的處理速度及處理效率,減小了系統(tǒng)的操作開銷。
文檔編號G06F17/30GK102103530SQ200910258049
公開日2011年6月22日 申請日期2009年12月16日 優(yōu)先權(quán)日2009年12月16日
發(fā)明者羅姣林 申請人:成都市華為賽門鐵克科技有限公司