專利名稱:控制磁盤休眠方法與系統(tǒng)及啟用磁盤的方法與服務器的制作方法
技術領域:
本發(fā)明涉及計算機技術領域,尤其涉及一種控制磁盤休眠的方法、塊服務 器、主服務器、分布式文件系統(tǒng)、啟用石茲盤的方法。
背景技術:
分布式文件系統(tǒng)(DFS, Distributed File Systems )是一種基于客戶機/服務 器模式進行設計的系統(tǒng),其廣泛地應用于在IPTV (IPTV即交互式網絡電視, 是一種利用寬帶有線電^見網,集互聯(lián)網、多媒體、通訊等多種技術于一體,向 家庭用戶提供包括數(shù)字電視在內的多種交互式服務的嶄新技術)等業(yè)務應用 中。在IPTV業(yè)務應用中,分布式文件系統(tǒng)需要持續(xù)不斷地對時移頻道進行錄 制,并對用戶點播電影、時移點播頻道的請求進行響應,這樣持續(xù)不斷的錄制 及響應工作對分布式文件系統(tǒng)中用于存儲數(shù)據(jù)的磁盤損耗較大,特別地,在大 量用戶同時對電影或頻道進行點播的"黃金時間段"中,響應大量用戶的點播 請求更是會使分布式文件系統(tǒng)中用于存儲數(shù)據(jù)的磁盤長時間處于讀寫工作狀 態(tài),從而會導致磁盤老化加快、磁盤的使用壽命大大被縮短。
發(fā)明內容
本發(fā)明實施例提供一種控制磁盤休眠的方法、塊服務器、主服務器及分布 式文件系統(tǒng),用以控制分布式文件系統(tǒng)中的磁盤定期進行休眠,避免磁盤持續(xù) 處于被讀寫狀態(tài)而導致磁盤老化速度過快。
本發(fā)明實施例還提供一種啟用磁盤的方法及塊服務器,用以啟用處于休眠 狀態(tài)的》茲盤。
為此,本發(fā)明實施例采用以下技術方案一種控制磁盤休眠的方法,包括分布式文件系統(tǒng)中的塊服務器將所述系 統(tǒng)中各磁盤的信息提供給主服務器;所述主服務器根據(jù)所述各^茲盤的信息,確 定滿足預設休眠條件的磁盤,并將確定的滿足預設休眠條件的磁盤的信息發(fā)送 給所述塊服務器;所述塊服務器根據(jù)所述主服務器發(fā)來的滿足預設休眠條件的 磁盤的信息,控制所述滿足預設休眠條件的磁盤進行休眠。
較佳地,所述預設休眠條件包括磁盤當前處于未休眠狀態(tài);并且當前時 間與石茲盤上次進入休眠狀態(tài)的時間之差不小于預設的時間長度閾值;并且所述 系統(tǒng)中存在與》茲盤相對應的當前處于未休眠狀態(tài)的^#石茲盤。
較佳地,所述塊服務器控制所述滿足預設休眠條件的磁盤進行休眠具體包 括所述塊服務器判斷當前是否正在對所述滿足預設休眠條件的磁盤進行讀或 寫操作;在判斷結果為否時,所述塊服務器控制所述滿足預設休眠條件的磁盤 的狀態(tài)進行休眠;以及在判斷結果為是時,確定當前對所述滿足預設休眠條件 的磁盤的讀和寫操作是否完成,并在確定出所述讀和寫操作完成時,或在將所 述讀和寫操作轉換為對所述滿足預設休眠條件的磁盤對應的備份磁盤進行的
相應操作時,所述塊服務器控制所述滿足預設休眠條件的磁盤進行休眠。
較佳地,所述方法還可以包括所述塊服務器對所述滿足預設休眠條件的 磁盤的休眠時間長度進行設置。
一種塊服務器,包括提供單元,用于將分布式文件系統(tǒng)中各-茲盤的信息 提供給主服務器;接收單元,用于接收所述主服務器發(fā)來的、所述主服務器根 據(jù)所述提供單元提供的信息確定的滿足預設休眠條件的磁盤的信息;控制單 元,用于根據(jù)接收單元接收的滿足預設休眠條件的磁盤的信息,控制將所述滿 足預設休眠條件的^茲盤進行〗木眠。
一種主服務器,包括磁盤信息收集單元,用于收集分布式文件系統(tǒng)中的 塊服務器提供的所述系統(tǒng)中的各磁盤的信息;休眠磁盤確定單元,用于根據(jù)磁 盤信息收集單元手機的各磁盤的信息,確定滿足預設休眠條件的磁盤;磁盤休 眠發(fā)起單元,用于將休眠磁盤確定單元確定的滿足預設休眠條件的磁盤的信息發(fā)送給所述塊服務器。
一種分布式文件系統(tǒng),包括主服務器和塊服務器,其中所述主服務器, 用于根據(jù)所述塊服務器提供的所述系統(tǒng)中各磁盤的信息,確定滿足預設休眠條 件的磁盤,以及將所述確定的磁盤的信息發(fā)送給所述塊服務器;所述塊服務器, 用于將所述系統(tǒng)中各磁盤的信息提供給所述主服務器,并根據(jù)所述主服務器發(fā) 來的所述確定的磁盤的信息,控制所述滿足預設休眠條件的磁盤的進行休眠。
一種啟用》茲盤的方法,包括分布式文件系統(tǒng)中的塊;il務器瑜定需啟用的 休眠磁盤;將所述需啟用的休眠磁盤的狀態(tài)設置為工作狀態(tài);從所述被設置為 工作狀態(tài)的磁盤對應的備份磁盤保存的數(shù)據(jù)中,確定與所述被設置為工作狀態(tài) 的磁盤保存的數(shù)據(jù)所不同的數(shù)據(jù);以及所述塊服務器將所述確定的不同的數(shù)據(jù) 復制到所述被設置為工作狀態(tài)的》茲盤中。
一種塊服務器,包括磁盤確定單元,用于確定需啟用的休眠磁盤;狀態(tài) 設置單元,用于將確定單元確定的需啟用的休眠磁盤的狀態(tài)設置為工作狀態(tài); 數(shù)據(jù)確定單元,用于確定狀態(tài)設置單元設置為工作狀態(tài)的磁盤所對應的^P分磁 盤所保存的數(shù)據(jù)與狀態(tài)設置單元設置為工作狀態(tài)的磁盤所保存的數(shù)據(jù)中不同 的數(shù)據(jù);復制單元,用于將數(shù)據(jù)確定單元確定的不同的數(shù)據(jù)復制到狀態(tài)設置單 元設置為工作狀態(tài)的磁盤中。
本發(fā)明實施例通過由分布式文件系統(tǒng)中的塊服務器將分布式文件系統(tǒng)中 各磁盤的信息提供給主服務器,并根據(jù)主服務器反饋的滿足預設休眠條件的磁 盤的信息,控制滿足預設休眠條件的磁盤進行休眠,從而使分布式文件系統(tǒng)中 滿足預設休眠條件的磁盤能夠進行休眠,從而避免磁盤持續(xù)處于被讀寫狀態(tài)而 導致磁盤老化速度過快。
本發(fā)明實施例通過分布式文件系統(tǒng)中的塊服務器確定需啟用的休眠磁盤, 將所述需啟用的休眠;茲盤的狀態(tài)設置為工作狀態(tài),然后確定所述被設置為工作 狀態(tài)的磁盤所對應的備份磁盤所保存的數(shù)據(jù)與所述被設置為工作狀態(tài)的磁盤 所保存的數(shù)據(jù)中不同的數(shù)據(jù)后,將確定的不同的數(shù)據(jù)復制到所述被設置為工作狀態(tài)的磁盤中,從而實現(xiàn)對被休眠的磁盤的啟用,并且,由于將備份磁盤中的 數(shù)據(jù)復制到了被啟用的磁盤中,因此實現(xiàn)了^f分磁盤與被啟用的磁盤中數(shù)據(jù)的 同步性。
圖1為本發(fā)明實施例提供的一種控制磁盤休眠的方法的具體流程示意圖; 圖2為本發(fā)明實施例中步驟13的具體實現(xiàn)流程示意圖; 圖3為本發(fā)明實施例中提供的一種塊服務器的具體結構示意圖; 圖4為本發(fā)明實施例中提供的一種主服務器的具體結構示意圖; 圖5為本發(fā)明實施例中提供的一種分布式文件系統(tǒng)的具體結構示意圖; 圖6a為本發(fā)明具體實施例所基于的實際應用環(huán)境的示意圖; 圖6b為本發(fā)明提供的控制^茲盤休眠方案在如圖5a所示應用環(huán)境中的實現(xiàn) 流程示意如7為本發(fā)明實施例中提供的一種啟用磁盤的方法的具體流程示意圖; 圖8為本發(fā)明實施例中提供的一種塊服務器的具體結構示意圖; 圖9為本發(fā)明實施例中啟用休眠磁盤的過程示意圖; 圖10為本發(fā)明實施例中被啟用的磁盤與對應的"^f分磁盤之間實現(xiàn)數(shù)據(jù)同 步的過程示意圖。
具體實施方式
.
本發(fā)明實施例首先提供了 一種控制磁盤休眠的方案,通過從分布式文件系 統(tǒng)中確定出滿足預設休眠條件的磁盤,并控制確定的滿足預設休眠條件的磁盤 進行休眠,從而避免^茲盤持續(xù)處于被讀寫狀態(tài)而導致磁盤老化速度過快。
在介紹本發(fā)明實施例提供的方案之前,先對分布式文件系統(tǒng)進行以下簡要 分析
在傳統(tǒng)的分布式文件系統(tǒng)中, 一方面,存儲塊數(shù)據(jù)的服務器(也稱為塊服務器或chunk服務器)為一臺獨立的PC機,其能夠實現(xiàn)對磁盤的統(tǒng)一管理, 而分布式文件系統(tǒng)中的主服務器卻無法直接對chunk服務器所管理的磁盤統(tǒng)一 進行管理,從而分布式文件系統(tǒng)中的主服務器是無法直接控制chunk服務器所 管理的磁盤進行休眠的,因此,在本發(fā)明實施例中,考慮由chunk服務器自身 來控制磁盤的休眠;另一方面,由于在現(xiàn)有技術的分布式文件系.統(tǒng)中,任一 chunk服務器并不能獲知另一 chunk服務器所控制的磁盤中存儲的塊數(shù)據(jù) (chunk),而只有通過主服務器才能獲知每個塊數(shù)據(jù)分別存儲在哪些chunk服 務器上,因此,本發(fā)明實施例中釆用主服務器來確定應該對哪些磁盤進行休眠, 以保證存儲有相同塊數(shù)據(jù)的磁盤不會同時進行休眠。
下面結合各個附圖對本發(fā)明實施例技術方案的主要實現(xiàn)原理、具體實施方 式及其對應能夠達到的有益效果進行詳細的闡述。
本發(fā)明實施例提供一種控制磁盤休眠的方法,其具體流程示意圖如圖l所 示,包括以下步驟
步驟11,分布式文件系統(tǒng)中的chunk服務器將系統(tǒng)中各磁盤的信息提供給 主服務器,其中,各磁盤的信息可以但不限于包括磁盤的標識信息、磁盤的狀 態(tài)休息(狀態(tài)可以為休眠狀態(tài)和工作狀態(tài)等)、磁盤對應的備份磁盤的信息(備 份磁盤的概念將在下文進行介紹)以及備份磁盤的狀態(tài)信息等;
步驟12,主服務器根據(jù)chunk服務器提供的各磁盤的信息,確定滿足預設 休眠條件的磁盤,并將確定的滿足預設休眠條件的磁盤的信息發(fā)送給chunk服 務器,其中,可以根據(jù)系統(tǒng)的實際情況來預設休眠條件,比如,本發(fā)明實施例 中的該預設休眠條件可以但不限于為磁盤當前處于未休眠狀態(tài),且當前時間與 磁盤上次進入休眠狀態(tài)的時間之差不小于預設的時間長度閾值,特別地,若考 慮到在磁盤進行休眠后,其他處于工作狀態(tài)的磁盤中應該存儲有與休眠磁盤中 的數(shù)據(jù)一致的數(shù)據(jù),從而使在分布式文件系統(tǒng)中進行的業(yè)務不會由于磁盤休眠 而受到影響,因此,在本發(fā)明實施例中,還可以考慮為磁盤配置對應的*磁 盤,該備份磁盤存儲的數(shù)據(jù)與對應的磁盤中存儲的數(shù)據(jù)一致,從而上述休眠條件也可以進一步包括分布式文件系統(tǒng)中存在與滿足休眠條件的磁盤相對應的 當前處于未休眠狀態(tài)的備份磁盤,由于磁盤與對應的備份石茲盤為互為^^磁盤 的關系,因此,根據(jù)上述"當前時間與磁盤上次進入休眠狀態(tài)的時間之差不小 于預設的時間長度閾值"這一條件可知,通過該條件,可以實現(xiàn)磁盤與對應的 備份磁盤進行輪流休眠,而不會使得某一磁盤頻繁休眠,而對應的備份磁盤卻 一直在進行工作;
步驟13, chunk服務器根據(jù)主服務器發(fā)來的滿足預設休眠條件的磁盤的信 息,控制滿足預設休眠條件的磁盤進行休眠,比如,chunk服務器可以但不限 于通過將滿足預設休眠條件的磁盤的狀態(tài)設置為休眠狀態(tài),從而實現(xiàn)控制滿足 預設休眠條件的磁盤進行休眠。
由上述步驟11 13可知,采用本發(fā)明實施例提供的上述方法,可以控制分 布式文件系統(tǒng)中的滿足預設休眠條件的磁盤進行休眠,使磁盤不必持續(xù)處于被 讀寫的工作狀態(tài),從而可以避免現(xiàn)有技術存在的磁盤持續(xù)處于被讀寫狀態(tài)而導 致磁盤老化速度過快的問題。為進一步使本發(fā)明實施例提供的上述方法能達到 更好的技術效果,針對上述步驟13,還可以采用如圖2所示的各步驟,來實現(xiàn) chunk服務器控制滿足預設休眠條件的磁盤進行休眠
步驟21,由于滿足預設休眠條件的磁盤當前有可能正處于被讀或被寫的狀 態(tài),因此,chunk服務器首先應該判斷當前是否正在對滿足預設休眠條件的磁 盤進行讀或寫操作,當判斷為否時,執(zhí)行步驟22,而當判斷為是時,執(zhí)行步驟 23;
步驟22, chunk服務器通過將滿足預設休眠條件的磁盤的狀態(tài)設置為休眠 狀態(tài)來實現(xiàn)控制磁盤進行休眠,并且,可以將被設置為休眠狀態(tài)的磁盤的信息 通知給主服務器,以使主服務器獲知該磁盤當前已休眠,不能再對其進行讀寫 操作,流程結束;
步驟23, chunk服務器繼續(xù)確定當前對滿足預設休眠條件的磁盤的讀和寫 操作是否完成,當確定出讀和寫操作均完成時,chunk服務器控制滿足預設休眠條件的磁盤進行休眠,由于在本發(fā)明實施例中,可以在分布式文件系統(tǒng)中設 置備份磁盤,因此本步驟中也可以采用將對i茲盤進行的讀寫操作轉換為對對應
的備份磁盤進行的相應操作時,chunk服務器再控制滿足預設休眠條件的磁盤 的進行休眠,并且,chunk服務器還可以將被控制進入休眠狀態(tài)的磁盤的信息 通知給主服務器,以使主服務器獲知該磁盤當前已休眠,不能再對其進行讀寫 操作,流程結束。
由如圖2所示的上述步驟可知,本發(fā)明實施例中在控制滿足預設休眠條件 的磁盤進行休眠之前,先完成對該滿足預設休眠條件的磁盤的讀寫操作,或者 將對該滿足預設休眠條件的磁盤的讀寫操作轉換為對對應的備份磁盤的相應 操作,從而本發(fā)明實施例提供的該控制磁盤休眠的方法不會導致業(yè)務的中斷,
具有良好的適用性。
此外,本發(fā)明實施例中的chunk服務器中還可以進一步包含定時器單元, 用于針對休眠的磁盤設置磁盤的休眠時間長度,比如,可以根據(jù)分布式文件系 統(tǒng)當前的業(yè)務量大小,來設置磁盤的休眠時間長度,當業(yè)務量較大時,如上文 提到過的"黃金時段",該時段中就具有較大的業(yè)務量,則此時就可以為休眠 的磁盤設置較短的休眠時間長度,以使休眠的磁盤只能休息較短的時間長度便 恢復工作狀態(tài),反之,當業(yè)務量較小時,則可以為休眠的》茲盤設置一個較長的 休眠時間長度,以使休眠磁盤能獲得充分的休眠時間。
本發(fā)明實施例提供的上述方案中,由主服務器確定滿足休眠條件的磁盤, 由chunk服務器控制磁盤進行休眠,從而在實現(xiàn)控制磁盤進行休眠的同時,對 已有分布式文件系統(tǒng)的結構改動較小,不用投入過多改造成本,具有較強的實 用性。
對應于本發(fā)明實施例提供的上述控制磁盤休眠的方法,本發(fā)明實施例還提 供一種chunk服務器,用以控制分布式文件系統(tǒng)中的磁盤定期進行休眠,避免 磁盤持續(xù)處于被讀寫狀態(tài)而導致磁盤老化速度過快的問題,本發(fā)明實施例提供 的該chunk服務器的具體結構示意圖如圖3所示,具體包括以下功能單元提供單元31,用于將分布式文件系統(tǒng)中各磁盤的信息提供給主服務器;
接收單元32,用于接收主服務器發(fā)來的滿足預設休眠條件的磁盤的信息, 其中,滿足預設休眠條件的磁盤的信息為主服務器根據(jù)提供單元31提供的各 磁盤的信息,確定出滿足預設休眠條件的磁盤后發(fā)來的,其中,這里的休眠條 件可以但不限于為i茲盤當前處于未休眠狀態(tài),并且當前時間與磁盤上次進入休 眠狀態(tài)的時間之差不小于預設的時間長度閾值,并且分布式文件系統(tǒng)中存在與 磁盤相對應的當前處于未休眠狀態(tài)的M磁盤;
控制單元33,用于根據(jù)接收單元32接收的滿足預設休眠條件的磁盤的信 息,控制滿足預設休眠條件的磁盤進行休眠。
此外,本發(fā)明實施例提供的該chunk服務器還可以進一步包括用于對滿足 預設休眠條件的磁盤的休眠時間長度進行設置的時間長度設置單元34。
由于滿足預設休眠條件的磁盤有可能正處于讀寫狀態(tài),為了不中斷正在該 磁盤上進行的讀寫工作,因此,本發(fā)明實施例中還可以進一步將狀態(tài)設置單元 33劃分為以下功能模塊
確定模塊331 ,用于根據(jù)滿足預設休眠條件的磁盤的信息,確定滿足預設 休眠條件的磁盤;
判斷模塊332,用于判斷當前是否正在對確定模塊331確定的磁盤進行讀 或寫操作;
控制模塊333,'用于在判斷模塊332得到的判斷結果為否時,控制確定模 塊331確定的磁盤進行休眠,以及在判斷模塊332得到的判斷結果為是時,確 定當前對確定模塊331確定的磁盤的讀和寫操作是否完成,并在確定出所述讀 和寫操作完成時,或在將所述讀和寫操作轉換為對確定模塊331確定的磁盤對 應的備份磁盤進行的相應操作時,控制確定模塊331確定的磁盤進行休眠。
本發(fā)明實施例還提供了一種主服務器,其具體結構示意圖如圖4所示,包 括以下功能單元
磁盤信息收集單元41,用于收集分布式文件系統(tǒng)中的chunk服務器提供的該分布式文件系統(tǒng)中的各石茲盤的信息;
休眠磁盤確定單元42,用于根據(jù)磁盤信息收集單元41收集的各》茲盤的信
息,確定滿足預設休眠條件的磁盤;
磁盤休眠發(fā)起單元43 ,用于將休眠磁盤確定單元42確定的滿足預設休眠條 件的磁盤的信息發(fā)送給chunk服務器。
相應地,本發(fā)明實施例還提供了一種分布式文件系統(tǒng),其具體結構示意圖 如圖5所示,包括主服務器51和chunk服務器52,其中
主服務器51用于根據(jù)chunk服務器52提供的該分布式文件系統(tǒng)中各磁盤 的信息,確定滿足預設休眠條件的磁盤,以及將確定的滿足預設休眠條件的磁 盤的信息發(fā)送給chunk服務器52,其中,主服務器51可以是在定時器預先設 定的時間點到來后,才執(zhí)行上述功能,比如,根據(jù)分布式文件系統(tǒng)對磁盤休眠 時間的要求,可以設置定時器定時的時間點為凌晨2點等;
而chunk服務器52則用于將分布式文件系統(tǒng)中各磁盤的信息提供給主服 務器51,并根據(jù)主服務器51發(fā)來的滿足預設休眠條件的磁盤的信息,控制滿 足預設休眠條件的磁盤進行休眠,并且,chunk服務器52還可以選擇是否將被 控制進入休眠狀態(tài)的》茲盤的信息上報給主服務器51。
與上述方法及服務器的實施例類似,本發(fā)明實施例提供的該系統(tǒng)實施例 中,能夠進行休眠的磁盤需滿足的預設休眠條件同樣可以但不限于為
磁盤當前處于未休眠狀態(tài),并且當前時間與磁盤上次i^A休眠狀態(tài)的時間 之差不小于預設的時間長度閾值。
較佳地,若在分布式文件系統(tǒng)中設置有備份磁盤,則休眠條件中還可以包 括分布式文件系統(tǒng)中存在與磁盤相對應的當前處于未休眠狀態(tài)的備份磁盤。
以下以本發(fā)明實施例提供的上述方案在實際應用中的一個實施過程為例, 詳細說明該方案的應用過程,該實施過程的應用環(huán)境如圖6a所示,該圖為本 發(fā)明實施例中的分布式文件系統(tǒng)的結構示意圖,其中,主服務器中包括FLR 單元和數(shù)據(jù)庫單元,F(xiàn)LR單元的主要功能包括確定該系統(tǒng)中滿足休眠條件的磁盤等,而數(shù)據(jù)庫單元的功能則主要是對chunk服務器上傳給主服務器的各磁盤 的信息進行存儲以友判斷磁盤是否滿足休眠條件等;chunk服務器中包含F(xiàn)AS 單元,該FAS單元實現(xiàn)對磁盤的控制以及收集并向主服務器上報磁盤的信息等 功能。具體地,本發(fā)明實施例提供的上述方案在該應用環(huán)境中的實現(xiàn)流程圖如 圖6b所示,包括以下步驟
步驟61, FLR單元檢測到定時器預先設定的時間點到來;
步驟62, FLR單元向數(shù)據(jù)庫單元發(fā)送查詢消息,該查詢消息用于通知數(shù) 據(jù)庫單元對數(shù)據(jù)庫單元中存儲的與磁盤是否滿足休眠條件相關的信息進行查 詢,在本步驟中52,可以采用FLR單元發(fā)送一個查詢消息,該消息中可以包 含某個磁盤的標識,用于通知數(shù)據(jù)庫單元查詢與該標識對應的磁盤是否滿足休 眠條件的方式,也可以采用FLR單元發(fā)送一個查詢消息,用于通知數(shù)據(jù)庫單 元查詢分布式文件系統(tǒng)中所有滿足休眠條件的磁盤的方式,在該具體實施方式
中,假設采用的是FLR單元發(fā)送的查詢消息中包含某磁盤標識的方式;
步驟63,數(shù)據(jù)庫單元在接收到FLR單元發(fā)來的查詢消息后,根據(jù)該查詢 消息中包含的磁盤標識以及數(shù)據(jù)庫單元自身存儲的由chunk服務器上傳的各磁 盤的信息,確定與該標識對應的^f茲盤是否正處于休眠狀態(tài)、該標識對應的^茲盤 是否存在未休眠的^f分》茲盤、當前時間與該標識對應的^茲盤上次進行休眠的時 間的時間差是否大于預設的閾值(比如,可以直接判斷在FLR單元上次檢測 到定時器預設時間點到來后設置進入休眠狀態(tài)的磁盤中是否包含與該標識對 應的磁盤,如沒有該;茲盤,則可以確定上述時間差大于預設的閾值);
步驟64,數(shù)據(jù)庫單元將確定結果反饋給FLR單元;
步驟65, FLR單元根據(jù)數(shù)據(jù)庫單元反饋的確定結果,判斷是否該磁盤是 否滿足休眠條件,當判斷為滿足條件時,執(zhí)行步驟66,否則,執(zhí)行步驟62, 將另 一個磁盤的標識承載在查詢消息中發(fā)送給數(shù)據(jù)庫單元;
步驟66, FLR單元從^茲盤標識與chunk服務器標識的對應關系中,確定該 磁盤對應的chunk服務器,并發(fā)送磁盤休眠請求到該確定的chunk服務器上的FAS單元,其中,該磁盤休眠請求可以包括該磁盤的休眠時間長度信息,該休 眠時間長度信息用于指示chunk服務器針對該磁盤,設置相應的休眠時間長度;
步驟67, chunk服務器上的FAS單元開始控制磁盤進行休眠前的準備工作, 比如,確定該磁盤上進行的讀寫操作是否完成,如果當前的對該磁盤的讀寫請 求較多,還可以將這些讀寫請求轉換為對該磁盤對應的備份磁盤的讀寫操作;
步驟68, FAS單元調用操作系統(tǒng)磁盤驅動程序接口,對該磁盤里的寄存器 進行設置,將磁盤的狀態(tài)設置為休眠狀態(tài),從而實現(xiàn)控制磁盤進行休眠,并可 以根據(jù)FLR單元指示的休眠時間長度,利用定時器對磁盤休眠的時間長度進 行設置;
步驟69, FAS單元將設置為休眠狀態(tài)的該石茲盤的信息發(fā)送給FLR單元;
步驟610, FLR單元將接收到的該^茲盤的信息發(fā)送給數(shù)據(jù)庫單元;
步驟611,數(shù)據(jù)庫單元根據(jù)接收到的該磁盤的信息,對數(shù)據(jù)庫單元存儲的 內容進行更新,從而主服務器后續(xù)獲知該磁盤當前為休眠狀態(tài)后,不再在該磁 盤上進行讀寫操作,流程結束。
在完成上述步驟610后,F(xiàn)LR單元可以繼續(xù)向數(shù)據(jù)庫單元發(fā)送包舍其他磁 盤標識的查詢消息,以控制其他滿足休眠條件的磁盤進行休眠。
對應于本發(fā)明實施例提供的控制磁盤休眠的方案,本發(fā)明實施例還提供一 種啟用磁盤的方法,用于啟用處于休眠狀態(tài)的磁盤,該方法的具體流程示意圖 如圖7所示,包括以下步驟
步驟71,分布式文件系統(tǒng)中的chunk服務器確定需啟用的休眠磁盤,較佳 地,chunk服務器可以在檢測到chunk服務器自身包含的定時器預先設定的時 間點到來后,才確定需啟用的休眠磁盤,比如,定時器可以將上文中提到的"黃 金時段"到來的時刻預設為啟用休眠磁盤的時間點; '
步驟72, chunk服務器將需啟用的休眠磁盤的狀態(tài)設置為工作狀態(tài);
步驟73,確定被設置為工作狀態(tài)的磁盤所對應的備份磁盤所保存的數(shù)據(jù)與 被設置為工作狀態(tài)的該^磁盤所保存的數(shù)據(jù)中不同的凝:據(jù);步驟74, chunk服務器將確定的不同的數(shù)據(jù)復制到被設置為工作狀態(tài)的該 磁盤中。
需要說明的是,由于^茲盤在進行休眠時,分布式文件系統(tǒng)中的任意業(yè)務產 生的對該磁盤的讀寫操作都轉換為對相應的^f分磁盤的讀寫操作,而雖然對磁 盤的讀操作不會改變磁盤中保存的數(shù)據(jù),但對磁盤的寫操作則會在磁盤中增加 相應的數(shù)據(jù),從而本發(fā)明實施例提供的上述啟用磁盤的方法中,有必要將在磁 盤休眠期間對備份磁盤進行的寫操作產生的數(shù)據(jù)復制到被啟用的磁盤中,以保 證被啟用的磁盤和與之對應的備份磁盤的同步性。
對應于本發(fā)明實施例提供的上述啟用磁盤的方法,本發(fā)明實施例還提供一 種chunk服務器,其具體結構示意圖如圖8所示,包括以下功能單元
磁盤確定單元81,用于確定需啟用的休眠磁盤;
狀態(tài)設置單元82,用于將確定單元81確定的需啟用的休眠磁盤的狀態(tài)設 置為工作狀態(tài);
數(shù)據(jù)確定單元83,用于確定狀態(tài)設置單元82設置為工作狀態(tài)的磁盤所對 應的備份磁盤所保存的數(shù)據(jù)與狀態(tài)設置單元82設置為工作狀態(tài)的磁盤所保存 的數(shù)據(jù)中不同的數(shù)據(jù);
復制單元84,用于將數(shù)據(jù)確定單元83確定的不同的數(shù)據(jù)復制到狀態(tài)設置 單元82設置為工作狀態(tài)的磁盤中。
以下以上述啟用》茲盤的方案在實際應用中的應用流程為例,詳細說明上述 方案,該應用流程共分為兩個部分,第一部分為啟用休B民磁盤的過程,具體請 參見圖9,第二部分為被啟用的磁盤與對應的^f分磁盤之間實現(xiàn)數(shù)據(jù)同步的過 程,具體請參見圖10,下面結合附圖,分別對兩部分進行介紹
圖9所示為啟用休眠磁盤過程的具體流程示意圖,該流程的應用環(huán)境同樣 可以參照圖6a,具體地,該流程包括以下步驟
步驟91, chunk服務器中的FAS單元檢測到定時器預設的時間點到來;
步驟92, FAS單元確定需進行啟用的磁盤;步驟93, FAS單元調用操作系統(tǒng)磁盤驅動程序接口,對需進行啟用的磁盤 里的寄存器進行設置,將該石茲盤的狀態(tài)設置為工作狀態(tài);
步驟94, FAS單元將被啟用的磁盤的狀態(tài)信息等信息上報給主服務器的 FLR單元;
步驟95, FLR單元將被啟用的磁盤的狀態(tài)信息等信息發(fā)送給數(shù)據(jù)庫單元; 步驟96,數(shù)據(jù)庫單元利用接收到的信息,將自身存儲的被啟用的磁盤的信
息進行更新,并可以利用定時器設置控制該磁盤進行下一次休眠的時間點。 如圖IO所示,為被啟用的磁盤與對應的備份磁盤之間進行數(shù)據(jù)同步的具
體流程示意圖,該流程的應用環(huán)境同樣可以參照圖5a,具體地,該流程包括以
下步驟
步驟101,FLR單元在接收到chunk服務器上報的被啟用的磁盤的信息后, 根據(jù)該磁盤的標識,在磁盤的標識與備份磁盤標識的對應關系中,確定與被啟 用的;茲盤對應的^f分》茲盤;
步驟102, FLR單元向控制確定的4^^磁盤的chunk服務器中的FAS單元 發(fā)送磁盤校驗同步請求;
步驟103,控制備份磁盤的chunk服務器中的FAS單元在接收到磁盤校驗 同步請求后,向控制被啟用的磁盤的chunk服務器發(fā)送數(shù)據(jù)上報請求;
步驟104,控制被啟用的磁盤的chunk服務器中的FAS單元將被啟用的磁 盤中存儲的數(shù)據(jù)的信息發(fā)送給控制備份磁盤的chunk服務器;
步驟105,控制備份磁盤的chunk服務器中的FAS單元比較接收到的數(shù)據(jù) 的信息和備份磁盤中存儲的數(shù)據(jù)的信息;
步驟106,比較出備份磁盤中具有與被啟用的磁盤中的數(shù)據(jù)不一致的數(shù)據(jù) 時,控制備份磁盤的chunk服務器的FAS單元發(fā)送數(shù)據(jù)復制通知到控制被啟用 的磁盤的chunk服務器;
步驟107,控制被啟用的磁盤的chunk服務器中的FAS單元將確定的不一 致的數(shù)據(jù)從備份磁盤中復制到被啟用的磁盤中;步驟108,當數(shù)據(jù)復制完畢后,控制被啟用的磁盤的chunk服務器中的FAS 單元向控制備份磁盤的chunk服務器發(fā)送數(shù)據(jù)復制完畢通知消息,流程結束。
顯然,本領域的技術人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā) 明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權利要求及 其等同技術的范圍之內,則本發(fā)明也意圖包含這些改動和變型在內。
權利要求
1、一種控制磁盤休眠的方法,其特征在于,包括分布式文件系統(tǒng)中的塊服務器將所述系統(tǒng)中各磁盤的信息提供給主服務器;所述主服務器根據(jù)所述各磁盤的信息,確定滿足預設休眠條件的磁盤,并將確定的滿足預設休眠條件的磁盤的信息發(fā)送給所述塊服務器;所述塊服務器根據(jù)所述主服務器發(fā)來的滿足預設休眠條件的磁盤的信息,控制所述滿足預設休眠條件的磁盤進行休眠。
2、 如權利要求l所述的方法,其特征在于,所述預設休眠條件包括 》茲盤當前處于未休眠狀態(tài);并且當前時間與磁盤上次進入休眠狀態(tài)的時間之差不小于預設的時間長度閾 值;并且所述系統(tǒng)中存在與磁盤相對應的當前處于未休眠狀態(tài)的備份磁盤。'
3、 如權利要求2所述的方法,其特征在于,所述塊服務器控制所述滿足 預設休眠條件的磁盤進行休眠具體包括所述塊服務器判斷當前是否正在對所述滿足預設休眠條件的磁盤進行讀 或寫操作;在判斷結果為否時,所述塊服務器控制所述滿足預設休眠條件的磁盤的狀 態(tài)進行休眠;以及在判斷結果為是時,確定當前對所述滿足預設休眠條件的磁盤的讀和寫操 作是否完成,并在確定出所述讀和寫才喿作完成時,或在將所述讀和寫操作轉換 為對所述滿足預設休眠條件的磁盤對應的備份磁盤進行的相應操作時,所述塊 服務器控制所述滿足預設休眠條件的磁盤進行休眠。
4、 如1 3任一權利要求所述的方法,其特征在于,還包括 所述塊服務器對所述滿足預設休眠條件的磁盤的休眠時間長度進行設置。
5、 一種塊服務器,其特征在于,包括提供單元,用于將分布式文件系統(tǒng)中各磁盤的信息提供給主服務器; 接收單元,用于接收所述主服務器發(fā)來的、所述主服務器根據(jù)所述提供單元提供的信息確定的滿足預設休眠條件的磁盤的信息;控制單元,用于根據(jù)接收單元接收的滿足預設休眠條件的磁盤的信息,控制將所述滿足預設休眠條件的磁盤進行休眠。
6、 如權利要求5所述的塊服務器,其特征在于,所述預設休眠條件包括 磁盤當前處于未休眠狀態(tài);并且當前時間與磁盤上次進入休眠狀態(tài)的時間之差不小于預設的時間長度閾 值;并且所述系統(tǒng)中存在與磁盤相對應的當前處于未休眠狀態(tài)的名^f分磁盤。
7、 如權利要求6所述的塊服務器,其特征在于,所述控制單元具體包括 確定模塊,用于根據(jù)所述滿足預設休眠條件的磁盤的信息,確定滿足預設休眠條件的磁盤;判斷模塊,用于判斷當前是否正在對確定模塊確定的磁盤進行讀或寫操作;控制模塊,用于在判斷模塊得到的判斷結果為否時,控制確定模塊確定的 磁盤進行休眠,以及在判斷模塊得到的判斷結果為是時,確定當前對確定模塊 確定的磁盤的讀和寫操作是否完成,并在確定出所述讀和寫操作完成時,或在 將所述讀和寫操作轉換為對確定模塊確定的磁盤對應的備份磁盤進行的相應 操作時,控制確定模塊確定的磁盤進行休眠。
8、 如5 7任一權利要求所述的塊服務器,其特征在于,還包括 時間長度設置單元,用于對所述滿足預設休眠條件的磁盤的休眠時間長度進行設置。
9、 一種主服務器,其特征在于,包括磁盤信息收集單元,用于收集分布式文件系統(tǒng)中的塊服務器提供的所述系 統(tǒng)中的各磁盤的信息;休B民磁盤確定單元,用于根據(jù)磁盤信息收集單元手機的各磁盤的信息,確定滿足預設休眠條件的磁盤;磁盤休眠發(fā)起單元,用于將休眠磁盤確定單元確定的滿足預設休眠條件的磁 盤的信息發(fā)送給所述塊服務器。
10、 一種分布式文件系統(tǒng),其特征在于,包括主服務器和塊服務器,其中 所述主服務器,用于根據(jù)所述塊服務器提供的所述系統(tǒng)中各磁盤的信息,確定滿足預設休眠條件的磁盤,以及將所述確定的磁盤的信息發(fā)送給所述塊服 務器;所述塊服務器,用于將所述系統(tǒng)中各磁盤的信息提供給所述主服務器,并 根據(jù)所述主服務器發(fā)來的所述確定的磁盤的信息,控制所述滿足預設休眠條件 的磁盤的進行休眠。
11、 如權利要求IO所述的系統(tǒng),其特征在于,所述預設休眠條件包括 磁盤當前處于未休眠狀態(tài);并且當前時間與磁盤上次進入休眠狀態(tài)的時間之差不小于預設的時間長度闊 值;并且所述系統(tǒng)中存在與磁盤相對應的當前處于未休眠狀態(tài)的備份磁盤。
12、 一種啟用磁盤的方法,其特征在于,包括 分布式文件系統(tǒng)中的塊服務器確定需啟用的休眠^茲盤; 將所述需啟用的休眠磁盤的狀態(tài)設置為工作狀態(tài); 從所述被設置為工作狀態(tài)的磁盤對應的備份磁盤保存的數(shù)據(jù)中,確定與所述被設置為工作狀態(tài)的磁盤保存的數(shù)據(jù)所不同的數(shù)據(jù);以及所述塊服務器將所述確定的不同的數(shù)據(jù)復制到所述被設置為工作狀態(tài)的 磁盤中。
13、 一種塊服務器,其特征在于,包括 磁盤確定單元,用于確定需啟用的休眠磁盤;狀態(tài)設置單元,用于將確定單元確定的需啟用的休眠石茲盤的狀態(tài)設置為工作狀態(tài);數(shù)據(jù)確定單元,用于確定狀態(tài)設置單元設置為工作狀態(tài)的磁盤所對應的備 份磁盤所保存的數(shù)據(jù)與狀態(tài)設置單元設置為工作狀態(tài)的^f茲盤所保存的數(shù)據(jù)中 不同的凄t據(jù);復制單元,用于將數(shù)據(jù)確定單元確定的不同的數(shù)據(jù)復制到狀態(tài)設置單元設 置為工作狀態(tài)的磁盤中。
全文摘要
本發(fā)明公開了一種控制磁盤休眠的方法、服務器及分布式文件系統(tǒng),用以控制分布式文件系統(tǒng)中的磁盤定期進行休眠,避免磁盤持續(xù)處于被讀寫狀態(tài)而導致磁盤老化速度過快。該方法包括分布式文件系統(tǒng)中的塊服務器將所述系統(tǒng)中各磁盤的信息提供給主服務器;所述主服務器根據(jù)所述各磁盤的信息,確定滿足預設休眠條件的磁盤,并將確定的滿足預設休眠條件的磁盤的信息發(fā)送給所述主服務器;所述塊服務器根據(jù)所述主服務器發(fā)來的滿足預設休眠條件的磁盤的信息,控制所述滿足預設休眠條件的磁盤進行休眠。本發(fā)明還公開了一種啟用磁盤的方法及塊服務器,用以啟用處于休眠狀態(tài)的磁盤。
文檔編號G06F3/06GK101644994SQ20091016296
公開日2010年2月10日 申請日期2009年8月20日 優(yōu)先權日2009年8月20日
發(fā)明者夏艦波, 波 張, 杰 彭 申請人:中興通訊股份有限公司