午夜毛片免费看,老师老少妇黄色网站,久久本道综合久久伊人,伊人黄片子

數(shù)據(jù)遷移方法及裝置與流程

文檔序號(hào):11133484閱讀:577來(lái)源:國(guó)知局
數(shù)據(jù)遷移方法及裝置與制造工藝
本公開涉及分布式
技術(shù)領(lǐng)域
,特別涉及一種數(shù)據(jù)遷移方法及裝置。
背景技術(shù)
:隨著互聯(lián)網(wǎng)技術(shù)的迅速發(fā)展,人們?cè)絹?lái)越多地使用計(jì)算機(jī)存儲(chǔ)數(shù)據(jù),這使得對(duì)數(shù)據(jù)存儲(chǔ)的需求不斷增長(zhǎng)。由于單機(jī)的文件系統(tǒng)存儲(chǔ)容量有限,因此時(shí)下各大互聯(lián)網(wǎng)公司一般均采用自研或開源的分布式文件系統(tǒng)存儲(chǔ)數(shù)據(jù)。其中,分布式文件系統(tǒng)具體通過(guò)多個(gè)數(shù)據(jù)節(jié)點(diǎn)實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ),每一個(gè)數(shù)據(jù)節(jié)點(diǎn)可包括多個(gè)磁盤。由于數(shù)據(jù)節(jié)點(diǎn)均有一定的使用壽命,不可避免地存在數(shù)據(jù)節(jié)點(diǎn)宕機(jī)或者磁盤損壞的情況,這將給用戶帶來(lái)不必要的麻煩。此時(shí)為了保證數(shù)據(jù)的高可用性,需要將宕機(jī)數(shù)據(jù)節(jié)點(diǎn)或損壞磁盤上的數(shù)據(jù)遷移到其他可用的數(shù)據(jù)節(jié)點(diǎn)或磁盤上。相關(guān)技術(shù)中,當(dāng)出現(xiàn)數(shù)據(jù)節(jié)點(diǎn)宕機(jī)或者磁盤損壞等情況時(shí),分布式文件系統(tǒng)會(huì)進(jìn)行基礎(chǔ)報(bào)警,之后需要維護(hù)人員通過(guò)人工排查找到宕機(jī)數(shù)據(jù)節(jié)點(diǎn)或損壞磁盤,并需維護(hù)人員利用數(shù)據(jù)遷移工具手動(dòng)將宕機(jī)數(shù)據(jù)節(jié)點(diǎn)或損壞磁盤上存儲(chǔ)的數(shù)據(jù)遷移到其他可用的數(shù)據(jù)節(jié)點(diǎn)上。由于數(shù)據(jù)遷移的過(guò)程需要人工介入,因此容易出錯(cuò),而且不能做到對(duì)數(shù)據(jù)的實(shí)時(shí)遷移。技術(shù)實(shí)現(xiàn)要素:為克服相關(guān)技術(shù)中存在的問(wèn)題,本公開提供一種數(shù)據(jù)遷移方法及裝置。根據(jù)本公開實(shí)施例的第一方面,提供一種數(shù)據(jù)遷移方法,包括:周期性獲取分布式文件系統(tǒng)中每一個(gè)數(shù)據(jù)節(jié)點(diǎn)的工作狀態(tài)信息;對(duì)于每一個(gè)數(shù)據(jù)節(jié)點(diǎn),基于所述數(shù)據(jù)節(jié)點(diǎn)的工作狀態(tài)信息,判斷所述數(shù)據(jù)節(jié)點(diǎn)中是否存在工作異常的磁盤;若所述數(shù)據(jù)節(jié)點(diǎn)中存在工作異常的磁盤,則基于數(shù)據(jù)塊屬性列表確定所述工作異常的磁盤上存儲(chǔ)的至少一個(gè)數(shù)據(jù)塊;對(duì)于所述至少一個(gè)數(shù)據(jù)塊中的每一個(gè)數(shù)據(jù)塊,在除所述數(shù)據(jù)節(jié)點(diǎn)之外的其他數(shù)據(jù)節(jié)點(diǎn)中選取待遷移的目標(biāo)數(shù)據(jù)節(jié)點(diǎn);將所述數(shù)據(jù)塊遷移到所述目標(biāo)數(shù)據(jù)節(jié)點(diǎn)上。在另一個(gè)實(shí)施例中,所述基于所述數(shù)據(jù)節(jié)點(diǎn)的工作狀態(tài)信息,判斷所述數(shù)據(jù)節(jié)點(diǎn)中是否存在工作異常的磁盤,包括:若所述數(shù)據(jù)節(jié)點(diǎn)的工作狀態(tài)信息在預(yù)設(shè)時(shí)長(zhǎng)內(nèi)未進(jìn)行更新,則確定所述數(shù)據(jù)節(jié)點(diǎn)發(fā)生宕機(jī),將所述數(shù)據(jù)節(jié)點(diǎn)上每一個(gè)磁盤均確定為工作異常的磁盤;或,若所述工作狀態(tài)信息中包括至少一個(gè)磁盤的異常狀態(tài)信息,則確定所述至少一個(gè)磁盤為工作異常的磁盤。在另一個(gè)實(shí)施例中,所述在除所述數(shù)據(jù)節(jié)點(diǎn)之外的其他數(shù)據(jù)節(jié)點(diǎn)中選取待遷移的目標(biāo)數(shù)據(jù)節(jié)點(diǎn),包括:在所述其他數(shù)據(jù)節(jié)點(diǎn)中確定存儲(chǔ)所述數(shù)據(jù)塊的其他副本的第一數(shù)據(jù)節(jié)點(diǎn);在第二數(shù)據(jù)節(jié)點(diǎn)中選取一個(gè)有空閑存儲(chǔ)位置的數(shù)據(jù)節(jié)點(diǎn)作為所述目標(biāo)數(shù)據(jù)節(jié)點(diǎn),所述第二數(shù)據(jù)節(jié)點(diǎn)為所述其他數(shù)據(jù)節(jié)點(diǎn)中除所述第一數(shù)據(jù)節(jié)點(diǎn)之外的數(shù)據(jù)節(jié)點(diǎn)。在另一個(gè)實(shí)施例中,所述將所述數(shù)據(jù)塊遷移到所述目標(biāo)數(shù)據(jù)節(jié)點(diǎn)上,包括:在存儲(chǔ)所述數(shù)據(jù)塊的其他副本的第一數(shù)據(jù)節(jié)點(diǎn)中確定源數(shù)據(jù)節(jié)點(diǎn);向所述源數(shù)據(jù)節(jié)點(diǎn)發(fā)送數(shù)據(jù)塊復(fù)制請(qǐng)求,所述數(shù)據(jù)塊復(fù)制請(qǐng)求中至少包括所述數(shù)據(jù)塊的第一屬性信息和所述目標(biāo)數(shù)據(jù)節(jié)點(diǎn)的第二屬性信息,以使所述源數(shù)據(jù)節(jié)點(diǎn)在根據(jù)所述第一屬性信息獲取到本地存儲(chǔ)的所述數(shù)據(jù)塊后,基于所述第二屬性信息將所述數(shù)據(jù)塊發(fā)送至所述目標(biāo)數(shù)據(jù)節(jié)點(diǎn)。在另一個(gè)實(shí)施例中,所述方法還包括:接收所述源數(shù)據(jù)節(jié)點(diǎn)返回的數(shù)據(jù)寫入響應(yīng);獲取所述數(shù)據(jù)塊更新后的第三屬性信息,所述第三屬性信息中至少包括所述目標(biāo)數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)標(biāo)識(shí)和存儲(chǔ)所述數(shù)據(jù)塊的磁盤的磁盤標(biāo)識(shí);根據(jù)所述數(shù)據(jù)塊的塊標(biāo)識(shí),將所述第三屬性信息更新至所述數(shù)據(jù)塊屬性列表中。在另一個(gè)實(shí)施例中,所述基于數(shù)據(jù)塊屬性列表確定所述工作異常的磁盤上存儲(chǔ)的至少一個(gè)數(shù)據(jù)塊,包括:獲取所述工作異常的磁盤中每一個(gè)磁盤的磁盤標(biāo)識(shí);對(duì)于每一個(gè)工作異常的磁盤,根據(jù)所述磁盤標(biāo)識(shí)在所述數(shù)據(jù)塊屬性列表中進(jìn)行查找,得到與所述磁盤標(biāo)識(shí)匹配的至少一個(gè)塊標(biāo)識(shí);將所述至少一個(gè)塊標(biāo)識(shí)指示的數(shù)據(jù)塊確定為所述工作異常的磁盤上存儲(chǔ)的至少一個(gè)數(shù)據(jù)塊;其中,所述數(shù)據(jù)塊屬性列表中包括每一個(gè)數(shù)據(jù)塊的塊標(biāo)識(shí)與存儲(chǔ)每一個(gè)數(shù)據(jù)塊的磁盤的磁盤標(biāo)識(shí)、以及所述磁盤所屬數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)標(biāo)識(shí)。根據(jù)本公開實(shí)施例的第二方面,提供一種數(shù)據(jù)遷移方法,包括:接收分布式文件系統(tǒng)中遷移節(jié)點(diǎn)發(fā)送的數(shù)據(jù)塊復(fù)制請(qǐng)求,所述數(shù)據(jù)塊復(fù)制請(qǐng)求中至少包括數(shù)據(jù)塊的第一屬性信息和待遷移的目標(biāo)數(shù)據(jù)節(jié)點(diǎn)的第二屬性信息,所述數(shù)據(jù)塊復(fù)制請(qǐng)求由所述遷移節(jié)點(diǎn)在確定一個(gè)數(shù)據(jù)節(jié)點(diǎn)上存在工作異常的磁盤后發(fā)送;根據(jù)所述第一屬性信息獲取本地存儲(chǔ)的所述數(shù)據(jù)塊;生成數(shù)據(jù)塊存儲(chǔ)請(qǐng)求,所述數(shù)據(jù)塊存儲(chǔ)請(qǐng)求中攜帶所述數(shù)據(jù)塊和所述第二屬性信息中包含的磁盤標(biāo)識(shí);基于所述第二屬性信息包含的節(jié)點(diǎn)標(biāo)識(shí),將所述數(shù)據(jù)存儲(chǔ)請(qǐng)求發(fā)送至所述目標(biāo)數(shù)據(jù)節(jié)點(diǎn),以使所述目標(biāo)數(shù)據(jù)存儲(chǔ)所述數(shù)據(jù)塊。在另一個(gè)實(shí)施例中,所述根據(jù)所述第一屬性信息獲取本地存儲(chǔ)的所述數(shù)據(jù)塊,包括:根據(jù)所述第一屬性信息中包括的磁盤標(biāo)識(shí),確定存儲(chǔ)所述數(shù)據(jù)塊的磁盤;根據(jù)所述第一屬性信息中包括的塊標(biāo)識(shí),從所述磁盤中獲取所述數(shù)據(jù)塊。在另一個(gè)實(shí)施例中,所述方法還包括:向所述目標(biāo)數(shù)據(jù)節(jié)點(diǎn)發(fā)送校驗(yàn)信息,以使所述目標(biāo)數(shù)據(jù)節(jié)點(diǎn)根據(jù)所述校驗(yàn)信息對(duì)臨時(shí)存儲(chǔ)文件進(jìn)行校驗(yàn),所述臨時(shí)存儲(chǔ)文件由所述目標(biāo)數(shù)據(jù)節(jié)點(diǎn)在接收到所述數(shù)據(jù)存儲(chǔ)請(qǐng)求后,將所述數(shù)據(jù)塊寫入臨時(shí)文件得到。根據(jù)本公開實(shí)施例的第三方面,提供一種數(shù)據(jù)遷移方法,包括:接收分布式文件系統(tǒng)中源數(shù)據(jù)節(jié)點(diǎn)發(fā)送的數(shù)據(jù)塊存儲(chǔ)請(qǐng)求,所述數(shù)據(jù)塊存儲(chǔ)請(qǐng)求由所述源數(shù)據(jù)節(jié)點(diǎn)在接收到遷移節(jié)點(diǎn)發(fā)送的數(shù)據(jù)塊復(fù)制請(qǐng)求后發(fā)送,所述數(shù)據(jù)塊復(fù)制請(qǐng)求由所述遷移節(jié)點(diǎn)在確定一個(gè)數(shù)據(jù)節(jié)點(diǎn)上存在工作異常的磁盤后發(fā)送;獲取所述數(shù)據(jù)塊存儲(chǔ)請(qǐng)求中攜帶的數(shù)據(jù)塊,并將所述數(shù)據(jù)塊寫入到臨時(shí)文件中,得到臨時(shí)存儲(chǔ)文件;接收所述源數(shù)據(jù)節(jié)點(diǎn)發(fā)送的校驗(yàn)信息,在根據(jù)所述校驗(yàn)信息對(duì)所述臨時(shí)存儲(chǔ)文件校驗(yàn)成功后,將所述數(shù)據(jù)塊寫入到所述數(shù)據(jù)塊存儲(chǔ)請(qǐng)求中攜帶的磁盤標(biāo)識(shí)指示的磁盤中。根據(jù)本公開實(shí)施例的第四方面,提供一種數(shù)據(jù)遷移裝置,包括:第一獲取模塊,被配置為周期性獲取分布式文件系統(tǒng)中每一個(gè)數(shù)據(jù)節(jié)點(diǎn)的工作狀態(tài)信息;判斷模塊,被配置為對(duì)于每一個(gè)數(shù)據(jù)節(jié)點(diǎn),基于所述數(shù)據(jù)節(jié)點(diǎn)的工作狀態(tài)信息,判斷所述數(shù)據(jù)節(jié)點(diǎn)中是否存在工作異常的磁盤;確定模塊,被配置為若所述數(shù)據(jù)節(jié)點(diǎn)中存在工作異常的磁盤,則基于數(shù)據(jù)塊屬性列表確定所述工作異常的磁盤上存儲(chǔ)的至少一個(gè)數(shù)據(jù)塊;選取模塊,被配置為對(duì)于所述至少一個(gè)數(shù)據(jù)塊中的每一個(gè)數(shù)據(jù)塊,在除所述數(shù)據(jù)節(jié)點(diǎn)之外的其他數(shù)據(jù)節(jié)點(diǎn)中選取待遷移的目標(biāo)數(shù)據(jù)節(jié)點(diǎn);遷移模塊,被配置為將所述數(shù)據(jù)塊遷移到所述目標(biāo)數(shù)據(jù)節(jié)點(diǎn)上。在另一個(gè)實(shí)施例中,所述判斷模塊,被配置為若所述數(shù)據(jù)節(jié)點(diǎn)的工作狀態(tài)信息在預(yù)設(shè)時(shí)長(zhǎng)內(nèi)未進(jìn)行更新,則確定所述數(shù)據(jù)節(jié)點(diǎn)發(fā)生宕機(jī),將所述數(shù)據(jù)節(jié)點(diǎn)上每一個(gè)磁盤均確定為工作異常的磁盤;或,若所述工作狀態(tài)信息中包括至少一個(gè)磁盤的異常狀態(tài)信息,則確定所述至少一個(gè)磁盤為工作異常的磁盤。在另一個(gè)實(shí)施例中,所述選取模塊,被配置為在所述其他數(shù)據(jù)節(jié)點(diǎn)中確定存儲(chǔ)所述數(shù)據(jù)塊的其他副本的第一數(shù)據(jù)節(jié)點(diǎn);在第二數(shù)據(jù)節(jié)點(diǎn)中選取一個(gè)有空閑存儲(chǔ)位置的數(shù)據(jù)節(jié)點(diǎn)作為所述目標(biāo)數(shù)據(jù)節(jié)點(diǎn),所述第二數(shù)據(jù)節(jié)點(diǎn)為所述其他數(shù)據(jù)節(jié)點(diǎn)中除所述第一數(shù)據(jù)節(jié)點(diǎn)之外的數(shù)據(jù)節(jié)點(diǎn)。在另一個(gè)實(shí)施例中,所述遷移模塊,被配置為在存儲(chǔ)所述數(shù)據(jù)塊的其他副本的第一數(shù)據(jù)節(jié)點(diǎn)中確定源數(shù)據(jù)節(jié)點(diǎn);向所述源數(shù)據(jù)節(jié)點(diǎn)發(fā)送數(shù)據(jù)塊復(fù)制請(qǐng)求,所述數(shù)據(jù)塊復(fù)制請(qǐng)求中至少包括所述數(shù)據(jù)塊的第一屬性信息和所述目標(biāo)數(shù)據(jù)節(jié)點(diǎn)的第二屬性信息,以使所述源數(shù)據(jù)節(jié)點(diǎn)在根據(jù)所述第一屬性信息獲取到本地存儲(chǔ)的所述數(shù)據(jù)塊后,基于所述第二屬性信息將所述數(shù)據(jù)塊發(fā)送至所述目標(biāo)數(shù)據(jù)節(jié)點(diǎn)。在另一個(gè)實(shí)施例中,所述裝置還包括:接收模塊,被配置為接收所述源數(shù)據(jù)節(jié)點(diǎn)返回的數(shù)據(jù)寫入響應(yīng);第二獲取模塊,被配置為獲取所述數(shù)據(jù)塊更新后的第三屬性信息,所述第三屬性信息中至少包括所述目標(biāo)數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)標(biāo)識(shí)和存儲(chǔ)所述數(shù)據(jù)塊的磁盤的磁盤標(biāo)識(shí);更新模塊,被配置為根據(jù)所述數(shù)據(jù)塊的塊標(biāo)識(shí),將所述第三屬性信息更新至所述數(shù)據(jù)塊屬性列表中。在另一個(gè)實(shí)施例中,所述確定模塊,被配置為獲取所述工作異常的磁盤中每一個(gè)磁盤的磁盤標(biāo)識(shí);對(duì)于每一個(gè)工作異常的磁盤,根據(jù)所述磁盤標(biāo)識(shí)在所述數(shù)據(jù)塊屬性列表中進(jìn)行查找,得到與所述磁盤標(biāo)識(shí)匹配的至少一個(gè)塊標(biāo)識(shí);將所述至少一個(gè)塊標(biāo)識(shí)指示的數(shù)據(jù)塊確定為所述工作異常的磁盤上存儲(chǔ)的至少一個(gè)數(shù)據(jù)塊;其中,所述數(shù)據(jù)塊屬性列表中包括每一個(gè)數(shù)據(jù)塊的塊標(biāo)識(shí)與存儲(chǔ)每一個(gè)數(shù)據(jù)塊的磁盤的磁盤標(biāo)識(shí)、以及所述磁盤所屬數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)標(biāo)識(shí)。根據(jù)本公開實(shí)施例的第五方面,提供一種數(shù)據(jù)遷移裝置,包括:接收模塊,被配置為接收分布式文件系統(tǒng)中遷移節(jié)點(diǎn)發(fā)送的數(shù)據(jù)塊復(fù)制請(qǐng)求,所述數(shù)據(jù)塊復(fù)制請(qǐng)求中至少包括數(shù)據(jù)塊的第一屬性信息和待遷移的目標(biāo)數(shù)據(jù)節(jié)點(diǎn)的第二屬性信息,所述數(shù)據(jù)塊復(fù)制請(qǐng)求由所述遷移節(jié)點(diǎn)在確定一個(gè)數(shù)據(jù)節(jié)點(diǎn)上存在工作異常的磁盤后發(fā)送;獲取模塊,被配置為根據(jù)所述第一屬性信息獲取本地存儲(chǔ)的所述數(shù)據(jù)塊;生成模塊,被配置為生成數(shù)據(jù)塊存儲(chǔ)請(qǐng)求,所述數(shù)據(jù)塊存儲(chǔ)請(qǐng)求中攜帶所述數(shù)據(jù)塊和所述第二屬性信息中包含的磁盤標(biāo)識(shí);發(fā)送模塊,被配置為基于所述第二屬性信息包含的節(jié)點(diǎn)標(biāo)識(shí),將所述數(shù)據(jù)存儲(chǔ)請(qǐng)求發(fā)送至所述目標(biāo)數(shù)據(jù)節(jié)點(diǎn),以使所述目標(biāo)數(shù)據(jù)存儲(chǔ)所述數(shù)據(jù)塊。在另一個(gè)實(shí)施例中,所述獲取模塊,被配置為根據(jù)所述第一屬性信息中包括的磁盤標(biāo)識(shí),確定存儲(chǔ)所述數(shù)據(jù)塊的磁盤;根據(jù)所述第一屬性信息中包括的塊標(biāo)識(shí),從所述磁盤中獲取所述數(shù)據(jù)塊。在另一個(gè)實(shí)施例中,所述裝置還包括:校驗(yàn)?zāi)K,被配置為向所述目標(biāo)數(shù)據(jù)節(jié)點(diǎn)發(fā)送校驗(yàn)信息,以使所述目標(biāo)數(shù)據(jù)節(jié)點(diǎn)根據(jù)所述校驗(yàn)信息對(duì)臨時(shí)存儲(chǔ)文件進(jìn)行校驗(yàn),所述臨時(shí)存儲(chǔ)文件由所述目標(biāo)數(shù)據(jù)節(jié)點(diǎn)在接收到所述數(shù)據(jù)存儲(chǔ)請(qǐng)求后,將所述數(shù)據(jù)塊寫入臨時(shí)文件得到。根據(jù)本公開實(shí)施例的第六方面,提供一種數(shù)據(jù)遷移裝置,包括:接收模塊,被配置為接收分布式文件系統(tǒng)中源數(shù)據(jù)節(jié)點(diǎn)發(fā)送的數(shù)據(jù)塊存儲(chǔ)請(qǐng)求,所述數(shù)據(jù)塊存儲(chǔ)請(qǐng)求由所述源數(shù)據(jù)節(jié)點(diǎn)在接收到遷移節(jié)點(diǎn)發(fā)送的數(shù)據(jù)塊復(fù)制請(qǐng)求后發(fā)送,所述數(shù)據(jù)塊復(fù)制請(qǐng)求由所述遷移節(jié)點(diǎn)在確定一個(gè)數(shù)據(jù)節(jié)點(diǎn)上存在工作異常的磁盤后發(fā)送;獲取模塊,被配置為獲取所述數(shù)據(jù)塊存儲(chǔ)請(qǐng)求中攜帶的數(shù)據(jù)塊,并將所述數(shù)據(jù)塊寫入到臨時(shí)文件中,得到臨時(shí)存儲(chǔ)文件;寫入模塊,被配置為接收所述源數(shù)據(jù)節(jié)點(diǎn)發(fā)送的校驗(yàn)信息,在根據(jù)所述校驗(yàn)信息對(duì)所述臨時(shí)存儲(chǔ)文件校驗(yàn)成功后,將所述數(shù)據(jù)塊寫入到所述數(shù)據(jù)塊存儲(chǔ)請(qǐng)求中攜帶的磁盤標(biāo)識(shí)指示的磁盤中。根據(jù)本公開實(shí)施例的第七方面,提供一種數(shù)據(jù)遷移裝置,包括:處理器;用于存儲(chǔ)處理器可執(zhí)行指令的存儲(chǔ)器;其中,所述處理器被配置為:周期性獲取分布式文件系統(tǒng)中每一個(gè)數(shù)據(jù)節(jié)點(diǎn)的工作狀態(tài)信息;對(duì)于每一個(gè)數(shù)據(jù)節(jié)點(diǎn),基于所述數(shù)據(jù)節(jié)點(diǎn)的工作狀態(tài)信息,判斷所述數(shù)據(jù)節(jié)點(diǎn)中是否存在工作異常的磁盤;若所述數(shù)據(jù)節(jié)點(diǎn)中存在工作異常的磁盤,則基于數(shù)據(jù)塊屬性列表確定所述工作異常的磁盤上存儲(chǔ)的至少一個(gè)數(shù)據(jù)塊;對(duì)于所述至少一個(gè)數(shù)據(jù)塊中的每一個(gè)數(shù)據(jù)塊,在除所述數(shù)據(jù)節(jié)點(diǎn)之外的其他數(shù)據(jù)節(jié)點(diǎn)中選取待遷移的目標(biāo)數(shù)據(jù)節(jié)點(diǎn);將所述數(shù)據(jù)塊遷移到所述目標(biāo)數(shù)據(jù)節(jié)點(diǎn)上。根據(jù)本公開實(shí)施例的第八方面,提供一種數(shù)據(jù)遷移裝置,包括:處理器;用于存儲(chǔ)處理器可執(zhí)行指令的存儲(chǔ)器;其中,所述處理器被配置為:接收分布式文件系統(tǒng)中遷移節(jié)點(diǎn)發(fā)送的數(shù)據(jù)塊復(fù)制請(qǐng)求,所述數(shù)據(jù)塊復(fù)制請(qǐng)求中至少包括數(shù)據(jù)塊的第一屬性信息和待遷移的目標(biāo)數(shù)據(jù)節(jié)點(diǎn)的第二屬性信息,所述數(shù)據(jù)塊復(fù)制請(qǐng)求由所述遷移節(jié)點(diǎn)在確定一個(gè)數(shù)據(jù)節(jié)點(diǎn)上存在工作異常的磁盤后發(fā)送;根據(jù)所述第一屬性信息獲取本地存儲(chǔ)的所述數(shù)據(jù)塊;生成數(shù)據(jù)塊存儲(chǔ)請(qǐng)求,所述數(shù)據(jù)塊存儲(chǔ)請(qǐng)求中攜帶所述數(shù)據(jù)塊和所述第二屬性信息中包含的磁盤標(biāo)識(shí);基于所述第二屬性信息包含的節(jié)點(diǎn)標(biāo)識(shí),將所述數(shù)據(jù)存儲(chǔ)請(qǐng)求發(fā)送至所述目標(biāo)數(shù)據(jù)節(jié)點(diǎn),以使所述目標(biāo)數(shù)據(jù)存儲(chǔ)所述數(shù)據(jù)塊。根據(jù)本公開實(shí)施例的第九方面,提供一種數(shù)據(jù)遷移裝置,包括:處理器;用于存儲(chǔ)處理器可執(zhí)行指令的存儲(chǔ)器;其中,所述處理器被配置為:接收分布式文件系統(tǒng)中源數(shù)據(jù)節(jié)點(diǎn)發(fā)送的數(shù)據(jù)塊存儲(chǔ)請(qǐng)求,所述數(shù)據(jù)塊存儲(chǔ)請(qǐng)求由所述源數(shù)據(jù)節(jié)點(diǎn)在接收到遷移節(jié)點(diǎn)發(fā)送的數(shù)據(jù)塊復(fù)制請(qǐng)求后發(fā)送,所述數(shù)據(jù)塊復(fù)制請(qǐng)求由所述遷移節(jié)點(diǎn)在確定一個(gè)數(shù)據(jù)節(jié)點(diǎn)上存在工作異常的磁盤后發(fā)送;獲取所述數(shù)據(jù)塊存儲(chǔ)請(qǐng)求中攜帶的數(shù)據(jù)塊,并將所述數(shù)據(jù)塊寫入到臨時(shí)文件中,得到臨時(shí)存儲(chǔ)文件;接收所述源數(shù)據(jù)節(jié)點(diǎn)發(fā)送的校驗(yàn)信息,在根據(jù)所述校驗(yàn)信息對(duì)所述臨時(shí)存儲(chǔ)文件校驗(yàn)成功后,將所述數(shù)據(jù)塊寫入到所述數(shù)據(jù)塊存儲(chǔ)請(qǐng)求中攜帶的磁盤標(biāo)識(shí)指示的磁盤中。本公開的實(shí)施例提供的技術(shù)方案可以包括以下有益效果:在周期性獲取到分布式文件系統(tǒng)中每一個(gè)數(shù)據(jù)節(jié)點(diǎn)的工作狀態(tài)信息后,對(duì)于每一個(gè)數(shù)據(jù)節(jié)點(diǎn),若基于該數(shù)據(jù)節(jié)點(diǎn)的工作狀態(tài)信息判斷出該數(shù)據(jù)節(jié)點(diǎn)中存在工作異常的磁盤,則基于數(shù)據(jù)塊屬性列表確定該工作異常的磁盤上存儲(chǔ)的至少一個(gè)數(shù)據(jù)塊;對(duì)于至少一個(gè)數(shù)據(jù)塊中的每一個(gè)數(shù)據(jù)塊,在除該數(shù)據(jù)節(jié)點(diǎn)之外的其他數(shù)據(jù)節(jié)點(diǎn)中選取待遷移的目標(biāo)數(shù)據(jù)節(jié)點(diǎn),并將該數(shù)據(jù)塊遷移到目標(biāo)數(shù)據(jù)節(jié)點(diǎn)上。由于在數(shù)據(jù)節(jié)點(diǎn)宕機(jī)或者磁盤損壞等情況時(shí),數(shù)據(jù)遷移過(guò)程由分布式文件系統(tǒng)自動(dòng)完成,不需要工作人員人工操作,因此簡(jiǎn)單方便,實(shí)現(xiàn)了數(shù)據(jù)的實(shí)時(shí)遷移。應(yīng)當(dāng)理解的是,以上的一般描述和后文的細(xì)節(jié)描述僅是示例性和解釋性的,并不能限制本公開。附圖說(shuō)明此處的附圖被并入說(shuō)明書中并構(gòu)成本說(shuō)明書的一部分,示出了符合本發(fā)明的實(shí)施例,并與說(shuō)明書一起用于解釋本發(fā)明的原理。圖1是根據(jù)一示例性實(shí)施例示出的一種分布式文件系統(tǒng)的架構(gòu)圖。圖2是根據(jù)一示例性實(shí)施例示出的一種數(shù)據(jù)遷移方法的流程圖。圖3是根據(jù)一示例性實(shí)施例示出的一種數(shù)據(jù)遷移方法的流程圖。圖4是根據(jù)一示例性實(shí)施例示出的一種數(shù)據(jù)遷移方法的流程圖。圖5是根據(jù)一示例性實(shí)施例示出的一種數(shù)據(jù)遷移方法的流程圖。圖6是根據(jù)一示例性實(shí)施例示出的一種數(shù)據(jù)遷移裝置的框圖。圖7是根據(jù)一示例性實(shí)施例示出的一種數(shù)據(jù)遷移裝置的框圖。圖8是根據(jù)一示例性實(shí)施例示出的一種數(shù)據(jù)遷移裝置的框圖。圖9是根據(jù)一示例性實(shí)施例示出的一種數(shù)據(jù)遷移裝置的框圖。圖10是根據(jù)一示例性實(shí)施例示出的一種數(shù)據(jù)遷移裝置的框圖。圖11是根據(jù)一示例性實(shí)施例示出的一種數(shù)據(jù)遷移裝置的框圖。具體實(shí)施方式這里將詳細(xì)地對(duì)示例性實(shí)施例進(jìn)行說(shuō)明,其示例表示在附圖中。下面的描述涉及附圖時(shí),除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實(shí)施例中所描述的實(shí)施方式并不代表與本發(fā)明相一致的所有實(shí)施方式。相反,它們僅是與如所附權(quán)利要求書中所詳述的、本發(fā)明的一些方面相一致的裝置和方法的例子。在對(duì)本公開實(shí)施例進(jìn)行詳細(xì)的解釋說(shuō)明之前,先對(duì)本公開實(shí)施例涉及的分布式文件系統(tǒng)的架構(gòu)進(jìn)行簡(jiǎn)單介紹。參見圖1,該分布式文件系統(tǒng)的架構(gòu)中包括客戶端(Client)、主節(jié)點(diǎn)(MasterNode)、從節(jié)點(diǎn)(SlaveNode)、數(shù)據(jù)節(jié)點(diǎn)(DataNode)以及磁盤(Storage)。其中,客戶端負(fù)責(zé)提供文件的讀寫接口。需要說(shuō)明的是,此處的客戶端并不等同于一般意義上的個(gè)人固定終端或個(gè)人移動(dòng)終端等客戶端,其本質(zhì)上為分布式文件系統(tǒng)提供的應(yīng)用服務(wù)器。主節(jié)點(diǎn)和從節(jié)點(diǎn)構(gòu)成了MHA(MasterHighAvailability,主節(jié)點(diǎn)高可用)架構(gòu),其中主節(jié)點(diǎn)對(duì)外提供寫服務(wù),一個(gè)從節(jié)點(diǎn)作為備選主節(jié)點(diǎn),從節(jié)點(diǎn)提供讀服務(wù),一旦主節(jié)點(diǎn)宕機(jī),將會(huì)把備選從節(jié)點(diǎn)提升為新的主節(jié)點(diǎn)繼續(xù)工作。此外,主節(jié)點(diǎn)負(fù)責(zé)存儲(chǔ)分布式文件系統(tǒng)的相關(guān)元數(shù)據(jù)信息,包括數(shù)據(jù)塊(Block)的分布信息和當(dāng)前所有數(shù)據(jù)節(jié)點(diǎn)的信息。數(shù)據(jù)節(jié)點(diǎn)負(fù)責(zé)存儲(chǔ)文件的數(shù)據(jù)和相關(guān)的元數(shù)據(jù)信息,按Block的方式存儲(chǔ),文件占用Block的一部分。Block按照多副本的方式存放在多個(gè)數(shù)據(jù)節(jié)點(diǎn)上,一個(gè)數(shù)據(jù)節(jié)點(diǎn)上可能有多個(gè)磁盤。本公開實(shí)施例對(duì)上述Block副本個(gè)數(shù)及數(shù)據(jù)節(jié)點(diǎn)上的磁盤數(shù)量均不進(jìn)行具體限定。在本公開實(shí)施例中,遷移節(jié)點(diǎn)存在于MHA架構(gòu)中,遷移節(jié)點(diǎn)中運(yùn)行有進(jìn)程DataMoverManager(數(shù)據(jù)遷移管理),用于實(shí)現(xiàn)數(shù)據(jù)遷移。正常情況下,數(shù)據(jù)節(jié)點(diǎn)的工作狀態(tài)信息會(huì)每隔預(yù)設(shè)時(shí)長(zhǎng)(比如10s)更新一次,而DataMoverManager會(huì)定期查詢每一個(gè)數(shù)據(jù)節(jié)點(diǎn)的工作狀態(tài)信息。若一個(gè)數(shù)據(jù)節(jié)點(diǎn)的在一段時(shí)間內(nèi)(比如30min)未更新其工作狀態(tài)信息,則DataMoverManager確定該數(shù)據(jù)節(jié)點(diǎn)發(fā)生宕機(jī),將該數(shù)據(jù)節(jié)點(diǎn)上每一個(gè)磁盤均確定為工作異常的磁盤。此時(shí),需要將該數(shù)據(jù)節(jié)點(diǎn)上所有磁盤存儲(chǔ)的數(shù)據(jù)遷移到其他數(shù)據(jù)節(jié)點(diǎn)上。若該數(shù)據(jù)節(jié)點(diǎn)的工作狀態(tài)信息中包括至少一個(gè)磁盤的異常狀態(tài)信息,則確定該至少一個(gè)磁盤為工作異常的磁盤,此時(shí),需要將該至少一個(gè)磁盤上存儲(chǔ)的數(shù)據(jù)遷移到其他數(shù)據(jù)節(jié)點(diǎn)上。圖2是根據(jù)一示例性實(shí)施例示出的一種數(shù)據(jù)遷移方法的流程圖,如圖2所示,該方法用于遷移節(jié)點(diǎn)中,包括以下步驟。在步驟201中,周期性獲取分布式文件系統(tǒng)中每一個(gè)數(shù)據(jù)節(jié)點(diǎn)的工作狀態(tài)信息。在步驟202中,對(duì)于每一個(gè)數(shù)據(jù)節(jié)點(diǎn),基于該數(shù)據(jù)節(jié)點(diǎn)的工作狀態(tài)信息,判斷該數(shù)據(jù)節(jié)點(diǎn)中是否存在工作異常的磁盤;若該數(shù)據(jù)節(jié)點(diǎn)中存在工作異常的磁盤,則執(zhí)行下述步驟203;若該數(shù)據(jù)節(jié)點(diǎn)中不存在工作異常的磁盤,則針對(duì)該數(shù)據(jù)節(jié)點(diǎn)的處理流程至此結(jié)束。在步驟203中,若該數(shù)據(jù)節(jié)點(diǎn)中存在工作異常的磁盤,則基于數(shù)據(jù)塊屬性列表確定該工作異常的磁盤上存儲(chǔ)的至少一個(gè)數(shù)據(jù)塊。在步驟204中,對(duì)于至少一個(gè)數(shù)據(jù)塊中的每一個(gè)數(shù)據(jù)塊,在除該數(shù)據(jù)節(jié)點(diǎn)之外的其他數(shù)據(jù)節(jié)點(diǎn)中選取待遷移的目標(biāo)數(shù)據(jù)節(jié)點(diǎn),將該數(shù)據(jù)塊遷移到該目標(biāo)數(shù)據(jù)節(jié)點(diǎn)上。本公開實(shí)施例提供的方法,遷移節(jié)點(diǎn)在周期性獲取到分布式文件系統(tǒng)中每一個(gè)數(shù)據(jù)節(jié)點(diǎn)的工作狀態(tài)信息后,對(duì)于每一個(gè)數(shù)據(jù)節(jié)點(diǎn),若基于該數(shù)據(jù)節(jié)點(diǎn)的工作狀態(tài)信息判斷出該數(shù)據(jù)節(jié)點(diǎn)中存在工作異常的磁盤,則基于數(shù)據(jù)塊屬性列表確定該工作異常的磁盤上存儲(chǔ)的至少一個(gè)數(shù)據(jù)塊;對(duì)于至少一個(gè)數(shù)據(jù)塊中的每一個(gè)數(shù)據(jù)塊,遷移節(jié)點(diǎn)在除該數(shù)據(jù)節(jié)點(diǎn)之外的其他數(shù)據(jù)節(jié)點(diǎn)中選取待遷移的目標(biāo)數(shù)據(jù)節(jié)點(diǎn),并將該數(shù)據(jù)塊遷移到目標(biāo)數(shù)據(jù)節(jié)點(diǎn)上。由于在數(shù)據(jù)節(jié)點(diǎn)宕機(jī)或者磁盤損壞等情況時(shí),數(shù)據(jù)遷移過(guò)程由分布式文件系統(tǒng)自動(dòng)完成,不需要工作人員人工操作,因此簡(jiǎn)單方便,實(shí)現(xiàn)了數(shù)據(jù)的實(shí)時(shí)遷移。在另一個(gè)實(shí)施例中,基于數(shù)據(jù)節(jié)點(diǎn)的工作狀態(tài)信息,判斷數(shù)據(jù)節(jié)點(diǎn)中是否存在工作異常的磁盤,包括:若數(shù)據(jù)節(jié)點(diǎn)的工作狀態(tài)信息在預(yù)設(shè)時(shí)長(zhǎng)內(nèi)未進(jìn)行更新,則確定數(shù)據(jù)節(jié)點(diǎn)發(fā)生宕機(jī),將數(shù)據(jù)節(jié)點(diǎn)上每一個(gè)磁盤均確定為工作異常的磁盤;或,若工作狀態(tài)信息中包括至少一個(gè)磁盤的異常狀態(tài)信息,則確定至少一個(gè)磁盤為工作異常的磁盤。在另一個(gè)實(shí)施例中,在除數(shù)據(jù)節(jié)點(diǎn)之外的其他數(shù)據(jù)節(jié)點(diǎn)中選取待遷移的目標(biāo)數(shù)據(jù)節(jié)點(diǎn),包括:在其他數(shù)據(jù)節(jié)點(diǎn)中確定存儲(chǔ)數(shù)據(jù)塊的其他副本的第一數(shù)據(jù)節(jié)點(diǎn);在第二數(shù)據(jù)節(jié)點(diǎn)中選取一個(gè)有空閑存儲(chǔ)位置的數(shù)據(jù)節(jié)點(diǎn)作為目標(biāo)數(shù)據(jù)節(jié)點(diǎn),第二數(shù)據(jù)節(jié)點(diǎn)為其他數(shù)據(jù)節(jié)點(diǎn)中除第一數(shù)據(jù)節(jié)點(diǎn)之外的數(shù)據(jù)節(jié)點(diǎn)。在另一個(gè)實(shí)施例中,將數(shù)據(jù)塊遷移到目標(biāo)數(shù)據(jù)節(jié)點(diǎn)上,包括:在存儲(chǔ)數(shù)據(jù)塊的其他副本的第一數(shù)據(jù)節(jié)點(diǎn)中確定源數(shù)據(jù)節(jié)點(diǎn);向源數(shù)據(jù)節(jié)點(diǎn)發(fā)送數(shù)據(jù)塊復(fù)制請(qǐng)求,數(shù)據(jù)塊復(fù)制請(qǐng)求中至少包括數(shù)據(jù)塊的第一屬性信息和目標(biāo)數(shù)據(jù)節(jié)點(diǎn)的第二屬性信息,以使源數(shù)據(jù)節(jié)點(diǎn)在根據(jù)第一屬性信息獲取到本地存儲(chǔ)的數(shù)據(jù)塊后,基于第二屬性信息將數(shù)據(jù)塊發(fā)送至目標(biāo)數(shù)據(jù)節(jié)點(diǎn)。在另一個(gè)實(shí)施例中,將數(shù)據(jù)塊遷移到目標(biāo)數(shù)據(jù)節(jié)點(diǎn)上之后,該方法還包括:接收源數(shù)據(jù)節(jié)點(diǎn)返回的數(shù)據(jù)寫入響應(yīng);獲取數(shù)據(jù)塊更新后的第三屬性信息,第三屬性信息中至少包括目標(biāo)數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)標(biāo)識(shí)和存儲(chǔ)數(shù)據(jù)塊的磁盤的磁盤標(biāo)識(shí);根據(jù)數(shù)據(jù)塊的塊標(biāo)識(shí),將第三屬性信息更新至數(shù)據(jù)塊屬性列表中。在另一個(gè)實(shí)施例中,基于數(shù)據(jù)塊屬性列表確定工作異常的磁盤上存儲(chǔ)的至少一個(gè)數(shù)據(jù)塊,包括:獲取工作異常的磁盤中每一個(gè)磁盤的磁盤標(biāo)識(shí);對(duì)于每一個(gè)工作異常的磁盤,根據(jù)磁盤標(biāo)識(shí)在數(shù)據(jù)塊屬性列表中進(jìn)行查找,得到與磁盤標(biāo)識(shí)匹配的至少一個(gè)塊標(biāo)識(shí);將至少一個(gè)塊標(biāo)識(shí)指示的數(shù)據(jù)塊確定為工作異常的磁盤上存儲(chǔ)的至少一個(gè)數(shù)據(jù)塊;其中,數(shù)據(jù)塊屬性列表中包括每一個(gè)數(shù)據(jù)塊的塊標(biāo)識(shí)與存儲(chǔ)每一個(gè)數(shù)據(jù)塊的磁盤的磁盤標(biāo)識(shí)、以及磁盤所屬數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)標(biāo)識(shí)。上述所有可選技術(shù)方案,可以采用任意結(jié)合形成本公開的可選實(shí)施例,在此不再一一贅述。圖3是根據(jù)一示例性實(shí)施例示出的一種數(shù)據(jù)遷移方法的流程圖,如圖3所示,該方法用于源數(shù)據(jù)節(jié)點(diǎn)中,包括以下步驟。在步驟301中,接收分布式文件系統(tǒng)中遷移節(jié)點(diǎn)發(fā)送的數(shù)據(jù)塊復(fù)制請(qǐng)求,該數(shù)據(jù)塊復(fù)制請(qǐng)求中至少包括數(shù)據(jù)塊的第一屬性信息和待遷移的目標(biāo)數(shù)據(jù)節(jié)點(diǎn)的第二屬性信息,該數(shù)據(jù)塊復(fù)制請(qǐng)求由所述遷移節(jié)點(diǎn)在確定一個(gè)數(shù)據(jù)節(jié)點(diǎn)上存在工作異常的磁盤后發(fā)送。在步驟302中,根據(jù)第一屬性信息獲取本地存儲(chǔ)的該數(shù)據(jù)塊。在步驟303中,生成數(shù)據(jù)塊存儲(chǔ)請(qǐng)求,該數(shù)據(jù)塊存儲(chǔ)請(qǐng)求中攜帶該數(shù)據(jù)塊和第二屬性信息中包含的磁盤標(biāo)識(shí)。在步驟304中,基于第二屬性信息包含的節(jié)點(diǎn)標(biāo)識(shí),將該數(shù)據(jù)存儲(chǔ)請(qǐng)求發(fā)送至該目標(biāo)數(shù)據(jù)節(jié)點(diǎn),以使該目標(biāo)數(shù)據(jù)存儲(chǔ)該數(shù)據(jù)塊。本公開實(shí)施例提供的方法,源數(shù)據(jù)節(jié)點(diǎn)在接收到分布式文件系統(tǒng)中遷移節(jié)點(diǎn)發(fā)送的數(shù)據(jù)塊復(fù)制請(qǐng)求后,根據(jù)該數(shù)據(jù)塊獲取請(qǐng)求中包括的第一屬性信息獲取本地存儲(chǔ)的該數(shù)據(jù)塊,并生成攜帶該數(shù)據(jù)塊和第二屬性信息中包含的磁盤標(biāo)識(shí)的數(shù)據(jù)塊存儲(chǔ)請(qǐng)求,之后基于第二屬性信息包含的節(jié)點(diǎn)標(biāo)識(shí),將該數(shù)據(jù)存儲(chǔ)請(qǐng)求發(fā)送至該目標(biāo)數(shù)據(jù)節(jié)點(diǎn),以使該目標(biāo)數(shù)據(jù)存儲(chǔ)該數(shù)據(jù)塊,由于在數(shù)據(jù)節(jié)點(diǎn)宕機(jī)或者磁盤損壞等情況時(shí),數(shù)據(jù)遷移過(guò)程由分布式文件系統(tǒng)自動(dòng)完成,不需要工作人員人工操作,因此簡(jiǎn)單方便,實(shí)現(xiàn)了數(shù)據(jù)的實(shí)時(shí)遷移。在另一個(gè)實(shí)施例中,根據(jù)第一屬性信息獲取本地存儲(chǔ)的數(shù)據(jù)塊,包括:根據(jù)第一屬性信息中包括的磁盤標(biāo)識(shí),確定存儲(chǔ)數(shù)據(jù)塊的磁盤;根據(jù)第一屬性信息中包括的塊標(biāo)識(shí),從磁盤中獲取數(shù)據(jù)塊。在另一個(gè)實(shí)施例中,該方法還包括:向目標(biāo)數(shù)據(jù)節(jié)點(diǎn)發(fā)送校驗(yàn)信息,以使目標(biāo)數(shù)據(jù)節(jié)點(diǎn)根據(jù)校驗(yàn)信息對(duì)臨時(shí)存儲(chǔ)文件進(jìn)行校驗(yàn),臨時(shí)存儲(chǔ)文件由目標(biāo)數(shù)據(jù)節(jié)點(diǎn)在接收到數(shù)據(jù)存儲(chǔ)請(qǐng)求后,將數(shù)據(jù)塊寫入臨時(shí)文件得到。上述所有可選技術(shù)方案,可以采用任意結(jié)合形成本公開的可選實(shí)施例,在此不再一一贅述。圖4是根據(jù)一示例性實(shí)施例示出的一種數(shù)據(jù)遷移方法的流程圖,如圖4所示,該方法用于目標(biāo)數(shù)據(jù)節(jié)點(diǎn)中,包括以下步驟。在步驟401中,接收分布式文件系統(tǒng)中源數(shù)據(jù)節(jié)點(diǎn)發(fā)送的數(shù)據(jù)塊存儲(chǔ)請(qǐng)求,該數(shù)據(jù)塊存儲(chǔ)請(qǐng)求由源數(shù)據(jù)節(jié)點(diǎn)在接收到遷移節(jié)點(diǎn)發(fā)送的數(shù)據(jù)塊復(fù)制請(qǐng)求后發(fā)送,該數(shù)據(jù)塊復(fù)制請(qǐng)求由遷移節(jié)點(diǎn)在確定一個(gè)數(shù)據(jù)節(jié)點(diǎn)上存在工作異常的磁盤后發(fā)送。在步驟402中,獲取該數(shù)據(jù)塊存儲(chǔ)請(qǐng)求中攜帶的數(shù)據(jù)塊,并將該數(shù)據(jù)塊寫入到臨時(shí)文件中,得到臨時(shí)存儲(chǔ)文件。在步驟403中,接收源數(shù)據(jù)節(jié)點(diǎn)發(fā)送的校驗(yàn)信息,在根據(jù)該校驗(yàn)信息對(duì)該臨時(shí)存儲(chǔ)文件校驗(yàn)成功后,將該數(shù)據(jù)塊寫入到該數(shù)據(jù)塊存儲(chǔ)請(qǐng)求中攜帶的磁盤標(biāo)識(shí)指示的磁盤中。本公開實(shí)施例提供的方法,目標(biāo)數(shù)據(jù)節(jié)點(diǎn)在接收到分布式文件系統(tǒng)中源數(shù)據(jù)節(jié)點(diǎn)發(fā)送的數(shù)據(jù)塊存儲(chǔ)請(qǐng)求后,獲取該數(shù)據(jù)塊存儲(chǔ)請(qǐng)求中攜帶的數(shù)據(jù)塊,并將該數(shù)據(jù)塊寫入到臨時(shí)文件中,得到臨時(shí)存儲(chǔ)文件;之后,接收該源數(shù)據(jù)節(jié)點(diǎn)發(fā)送的校驗(yàn)信息,在根據(jù)該校驗(yàn)信息對(duì)該臨時(shí)存儲(chǔ)文件校驗(yàn)成功后,將該數(shù)據(jù)塊寫入到該數(shù)據(jù)塊存儲(chǔ)請(qǐng)求中攜帶的磁盤標(biāo)識(shí)指示的磁盤中。由于在數(shù)據(jù)節(jié)點(diǎn)宕機(jī)或者磁盤損壞等情況時(shí),數(shù)據(jù)遷移過(guò)程由分布式文件系統(tǒng)自動(dòng)完成,不需要工作人員人工操作,因此簡(jiǎn)單方便,實(shí)現(xiàn)了數(shù)據(jù)的實(shí)時(shí)遷移。圖5是根據(jù)一示例性實(shí)施例示出的一種數(shù)據(jù)遷移方法的流程圖。交互主體包括遷移節(jié)點(diǎn)、源數(shù)據(jù)節(jié)點(diǎn)及目標(biāo)數(shù)據(jù)節(jié)點(diǎn),如圖5所示,包括如下步驟。在步驟501中,遷移節(jié)點(diǎn)周期性獲取分布式文件系統(tǒng)中每一個(gè)數(shù)據(jù)節(jié)點(diǎn)的工作狀態(tài)信息,對(duì)于每一個(gè)數(shù)據(jù)節(jié)點(diǎn),遷移節(jié)點(diǎn)基于該數(shù)據(jù)節(jié)點(diǎn)的工作狀態(tài)信息,判斷該數(shù)據(jù)節(jié)點(diǎn)中是否存在工作異常的磁盤;若該數(shù)據(jù)節(jié)點(diǎn)中存在工作異常的磁盤,則執(zhí)行下述步驟502;若該數(shù)據(jù)節(jié)點(diǎn)中不存在工作異常的磁盤,則針對(duì)該數(shù)據(jù)節(jié)點(diǎn)的處理流程至此結(jié)束。在本公開實(shí)施例中,每一個(gè)數(shù)據(jù)節(jié)點(diǎn)的工作狀態(tài)信息由每一個(gè)數(shù)據(jù)節(jié)點(diǎn)定時(shí)上報(bào)到數(shù)據(jù)庫(kù)中。其中,數(shù)據(jù)庫(kù)存在于圖1所示的主節(jié)點(diǎn)上,數(shù)據(jù)節(jié)點(diǎn)每一次判斷出的磁盤工作狀態(tài)均會(huì)及時(shí)更新到數(shù)據(jù)庫(kù)中,同時(shí)數(shù)據(jù)庫(kù)刪除之前存儲(chǔ)的磁盤工作狀態(tài),保證數(shù)據(jù)庫(kù)中存儲(chǔ)的磁盤工作狀態(tài)為最新的。此外,為了對(duì)各個(gè)數(shù)據(jù)節(jié)點(diǎn)上的各個(gè)磁盤進(jìn)行區(qū)分,可使用不同的ID(IDentity,身份標(biāo)識(shí))對(duì)各個(gè)磁盤進(jìn)行標(biāo)識(shí)。詳細(xì)來(lái)講,每一個(gè)數(shù)據(jù)節(jié)點(diǎn)均會(huì)定期掃描自身包含的所有磁盤,判斷所有磁盤的工作狀態(tài),并將得到的工作狀態(tài)信息存儲(chǔ)到數(shù)據(jù)庫(kù)中。其中,磁盤的工作狀態(tài)可分為正常狀態(tài)和異常狀態(tài)。其中,異常狀態(tài)表明該磁盤出現(xiàn)損壞情況。在另一個(gè)實(shí)施例中,數(shù)據(jù)庫(kù)可為每一個(gè)數(shù)據(jù)節(jié)點(diǎn)分別維護(hù)一個(gè)工作狀態(tài)信息表。該工作狀態(tài)信息表中包括了一個(gè)數(shù)據(jù)節(jié)點(diǎn)上每一個(gè)磁盤的磁盤標(biāo)識(shí)與該磁盤的工作狀態(tài)信息之間的對(duì)應(yīng)關(guān)系。也即,若一個(gè)數(shù)據(jù)節(jié)點(diǎn)上出現(xiàn)磁盤損壞的情況,則該磁盤對(duì)應(yīng)的信息條目中顯示異常狀態(tài)信息;其中,異常狀態(tài)信息具體可為一個(gè)取值為0或1的標(biāo)識(shí)信息,用于標(biāo)識(shí)當(dāng)前磁盤損壞,本公開實(shí)例對(duì)此不進(jìn)行具體限定。若一個(gè)數(shù)據(jù)節(jié)點(diǎn)上所有磁盤均損壞,則全部磁盤對(duì)應(yīng)的信息條目中均顯示磁盤損標(biāo)識(shí),表明該數(shù)據(jù)節(jié)點(diǎn)當(dāng)前處于宕機(jī)狀態(tài),該數(shù)據(jù)節(jié)點(diǎn)不再向數(shù)據(jù)庫(kù)更新自身的工作狀態(tài)信息。其中,遷移節(jié)點(diǎn)在基于數(shù)據(jù)節(jié)點(diǎn)的工作狀態(tài)信息,判斷一個(gè)數(shù)據(jù)節(jié)點(diǎn)中是否存在工作異常的磁盤時(shí),可通過(guò)下述兩種方式實(shí)現(xiàn):第一種方式、若該數(shù)據(jù)節(jié)點(diǎn)的工作狀態(tài)信息在預(yù)設(shè)時(shí)長(zhǎng)內(nèi)未進(jìn)行更新,則確定數(shù)據(jù)節(jié)點(diǎn)發(fā)生宕機(jī),將數(shù)據(jù)節(jié)點(diǎn)上每一個(gè)磁盤均確定為工作異常的磁盤。例如,以遷移節(jié)點(diǎn)每隔一個(gè)小時(shí)進(jìn)行一次數(shù)據(jù)節(jié)點(diǎn)的工作狀態(tài)信息獲取,數(shù)據(jù)節(jié)點(diǎn)每隔半個(gè)小時(shí)進(jìn)行一次工作狀態(tài)信息的更新,預(yù)設(shè)時(shí)長(zhǎng)為30分鐘為例,若該數(shù)據(jù)節(jié)點(diǎn)上一次更新工作狀態(tài)信息的時(shí)間為10點(diǎn),同時(shí)被遷移節(jié)點(diǎn)獲??;等到11點(diǎn)遷移節(jié)點(diǎn)再一次進(jìn)行數(shù)據(jù)節(jié)點(diǎn)的工作狀態(tài)信息獲取時(shí),發(fā)現(xiàn)該數(shù)據(jù)節(jié)點(diǎn)更新工作狀態(tài)信息的時(shí)間仍為10點(diǎn),也即未更新工作狀態(tài)信息的時(shí)長(zhǎng)大于預(yù)設(shè)時(shí)長(zhǎng)30分鐘,則認(rèn)為該數(shù)據(jù)節(jié)點(diǎn)發(fā)生宕機(jī)。其中,本公開實(shí)施例對(duì)遷移節(jié)點(diǎn)獲取數(shù)據(jù)節(jié)點(diǎn)工作狀態(tài)信息及數(shù)據(jù)節(jié)點(diǎn)更新工作狀態(tài)信息的時(shí)長(zhǎng)不進(jìn)行具體限定。其中,當(dāng)一個(gè)數(shù)據(jù)節(jié)點(diǎn)發(fā)生宕機(jī)時(shí),遷移節(jié)點(diǎn)會(huì)默認(rèn)該數(shù)據(jù)節(jié)點(diǎn)上所有磁盤均存在工作異常。第二種方式、若該工作節(jié)點(diǎn)的工作狀態(tài)信息中包括至少一個(gè)磁盤的異常狀態(tài)信息,則確定至少一個(gè)磁盤為工作異常的磁盤。針對(duì)第二中方式,遷移節(jié)點(diǎn)會(huì)獲取數(shù)據(jù)庫(kù)中為該數(shù)據(jù)節(jié)點(diǎn)維護(hù)的工作狀態(tài)信息表,通過(guò)對(duì)該工作狀態(tài)信息表的掃描,確定至少一個(gè)磁盤的異常狀態(tài)信息。例如,該工作狀態(tài)信息表中將磁盤的異常狀態(tài)信息記為0,則遷移節(jié)點(diǎn)通過(guò)獲取磁盤的工作狀態(tài)信息為0的磁盤標(biāo)識(shí),確定至少一個(gè)處于異常狀態(tài)的磁盤。在步驟502中,若該數(shù)據(jù)節(jié)點(diǎn)中存在工作異常的磁盤,則遷移節(jié)點(diǎn)根據(jù)數(shù)據(jù)塊屬性列表確定工作異常的磁盤上存儲(chǔ)的至少一個(gè)數(shù)據(jù)塊。在本公開實(shí)施例中,數(shù)據(jù)塊屬性列表可如下表1所示,用于存儲(chǔ)數(shù)據(jù)塊標(biāo)識(shí),與存儲(chǔ)每一個(gè)數(shù)據(jù)塊的磁盤的磁盤標(biāo)識(shí)、以及該磁盤所屬數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)標(biāo)識(shí)。其中,遷移節(jié)點(diǎn)在根據(jù)數(shù)據(jù)塊屬性列表確定工作異常的磁盤上存儲(chǔ)的至少一個(gè)數(shù)據(jù)塊時(shí),包括:獲取工作異常的磁盤中每一個(gè)磁盤的磁盤標(biāo)識(shí);對(duì)于每一個(gè)工作異常的磁盤,根據(jù)該磁盤標(biāo)識(shí)在下述表1所示的數(shù)據(jù)塊屬性列表中進(jìn)行查找,得到與磁盤標(biāo)識(shí)匹配的至少一個(gè)塊標(biāo)識(shí);將至少一個(gè)塊標(biāo)識(shí)指示的數(shù)據(jù)塊確定為該工作異常的磁盤上存儲(chǔ)的至少一個(gè)數(shù)據(jù)塊;其中,如果一個(gè)數(shù)據(jù)節(jié)點(diǎn)出現(xiàn)宕機(jī)情況,則根據(jù)該數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)標(biāo)識(shí)在下述表1中可直接獲取該數(shù)據(jù)節(jié)點(diǎn)上分布的所有磁盤。數(shù)據(jù)塊標(biāo)識(shí)數(shù)據(jù)塊屬性Block1Storage1,DataNode1Block2Storage1,DataNode1Block3Storage2,DataNode1Block4Storage3,DataNode2……BlockNStorageM,DataNodeL例如,若Storage1損壞,通過(guò)數(shù)據(jù)塊屬性列表獲得磁盤上當(dāng)前的數(shù)據(jù)塊為Block1和Block2;例如,若Storage2損壞,通過(guò)數(shù)據(jù)塊屬性列表獲得磁盤上當(dāng)前的數(shù)據(jù)塊為Block3;例如,若Storage3損壞,通過(guò)數(shù)據(jù)塊屬性列表獲得磁盤上當(dāng)前的數(shù)據(jù)塊為Block4。本公開實(shí)施例對(duì)數(shù)據(jù)塊屬性列表的形式、數(shù)據(jù)塊標(biāo)識(shí)的表示方法、磁盤標(biāo)的的表示方法及數(shù)據(jù)節(jié)點(diǎn)的表示方法不進(jìn)行具體限定。在步驟503中,遷移節(jié)點(diǎn)在存儲(chǔ)該數(shù)據(jù)塊的其他副本的第一數(shù)據(jù)節(jié)點(diǎn)中確定源數(shù)據(jù)節(jié)點(diǎn),在第二數(shù)據(jù)節(jié)點(diǎn)中選取一個(gè)有空閑存儲(chǔ)位置的數(shù)據(jù)節(jié)點(diǎn)作為目標(biāo)數(shù)據(jù)節(jié)點(diǎn),第二數(shù)據(jù)節(jié)點(diǎn)為其他數(shù)據(jù)節(jié)點(diǎn)中除第一數(shù)據(jù)節(jié)點(diǎn)之外的數(shù)據(jù)節(jié)點(diǎn)。如上述表1所示,例如,若所在數(shù)據(jù)節(jié)點(diǎn)為DataNode1,則遷移Block1和Block2上的數(shù)據(jù)到除了DataNode1的其他數(shù)據(jù)節(jié)點(diǎn)的磁盤上;例如,若所在的數(shù)據(jù)節(jié)點(diǎn)為DataNode1,則遷移Block3上的數(shù)據(jù)到除了DataNode1的其他數(shù)據(jù)節(jié)點(diǎn)的磁盤上;例如,若所在的數(shù)據(jù)節(jié)點(diǎn)為DataNode2,則遷移Block4到除了DataNode2的其他數(shù)據(jù)節(jié)點(diǎn)的磁盤上。在步驟504中,遷移節(jié)點(diǎn)向源數(shù)據(jù)節(jié)點(diǎn)發(fā)送數(shù)據(jù)塊復(fù)制請(qǐng)求。其中,該數(shù)據(jù)塊復(fù)制請(qǐng)求(CopyBlockRequest)中至少包括該數(shù)據(jù)塊的第一屬性信息和所述目標(biāo)數(shù)據(jù)節(jié)點(diǎn)的第二屬性信息。其中,該第一屬性信息中至少包括數(shù)據(jù)塊的塊標(biāo)識(shí)及存儲(chǔ)該數(shù)據(jù)塊的磁盤的磁盤標(biāo)識(shí);該第二屬性信息中至少包括目標(biāo)數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)標(biāo)識(shí)及存儲(chǔ)該數(shù)據(jù)塊的磁盤的磁盤標(biāo)識(shí)。在步驟505中,源數(shù)據(jù)節(jié)點(diǎn)在接收到數(shù)據(jù)塊復(fù)制請(qǐng)求后,根據(jù)該數(shù)據(jù)塊復(fù)制請(qǐng)求中的第一屬性信息讀取本地存儲(chǔ)的需要復(fù)制的數(shù)據(jù)塊,生成數(shù)據(jù)塊存儲(chǔ)請(qǐng)求,并基于該數(shù)據(jù)塊復(fù)制請(qǐng)求中的第二屬性信息包含的節(jié)點(diǎn)標(biāo)識(shí),將該數(shù)據(jù)塊存儲(chǔ)請(qǐng)求發(fā)送給目標(biāo)數(shù)據(jù)節(jié)點(diǎn)。其中,源數(shù)據(jù)節(jié)點(diǎn)生成數(shù)據(jù)塊存儲(chǔ)請(qǐng)求的方式如下:根據(jù)該第一屬性信息中包括的存儲(chǔ)該數(shù)據(jù)塊磁盤的磁盤標(biāo)識(shí),確定存儲(chǔ)該數(shù)據(jù)塊的磁盤;之后,根據(jù)該第一屬性信息中包括的數(shù)據(jù)塊的塊標(biāo)識(shí),從該磁盤中獲取該塊標(biāo)識(shí)對(duì)應(yīng)的數(shù)據(jù)塊。其中,該數(shù)據(jù)塊存儲(chǔ)請(qǐng)求中攜帶該數(shù)據(jù)塊和第二屬性信息中用于存儲(chǔ)該數(shù)據(jù)塊的磁盤的磁盤標(biāo)識(shí)。在步驟506中,目標(biāo)數(shù)據(jù)節(jié)點(diǎn)在接收到該數(shù)據(jù)存儲(chǔ)請(qǐng)求后,獲取該數(shù)據(jù)塊存儲(chǔ)請(qǐng)求中攜帶的數(shù)據(jù)塊,并將該數(shù)據(jù)塊寫入到臨時(shí)文件中,得到臨時(shí)存儲(chǔ)文件。在本公開實(shí)施例中,目標(biāo)數(shù)據(jù)節(jié)點(diǎn)在接收到該數(shù)據(jù)塊后,建立臨時(shí)文件,例如建立臨時(shí)文件tmp,將獲取到的所有數(shù)據(jù)塊放入到tmp中,等待接收源數(shù)據(jù)節(jié)點(diǎn)發(fā)送的校驗(yàn)信息對(duì)數(shù)據(jù)塊進(jìn)行校驗(yàn)。在步驟507中,源數(shù)據(jù)節(jié)點(diǎn)向目標(biāo)數(shù)據(jù)節(jié)點(diǎn)發(fā)送校驗(yàn)信息。源數(shù)據(jù)節(jié)點(diǎn)在發(fā)送數(shù)據(jù)塊復(fù)制請(qǐng)求后,還會(huì)生成校驗(yàn)信息,例如校驗(yàn)信息可為CRC(CyclicRedundancyCheck,循環(huán)冗余校驗(yàn))32,本公開實(shí)施例對(duì)校驗(yàn)信息的類型不進(jìn)行具體限定。之后源數(shù)據(jù)節(jié)點(diǎn)將該校驗(yàn)信息發(fā)送給目標(biāo)數(shù)據(jù)節(jié)點(diǎn),目標(biāo)數(shù)據(jù)節(jié)點(diǎn)利用校驗(yàn)信息對(duì)包含該數(shù)據(jù)塊的臨時(shí)存儲(chǔ)文件進(jìn)行校驗(yàn)。在步驟508中,目標(biāo)數(shù)據(jù)節(jié)點(diǎn)在接收到源數(shù)據(jù)節(jié)點(diǎn)發(fā)送的校驗(yàn)信息后,對(duì)該臨時(shí)存儲(chǔ)文件進(jìn)行校驗(yàn),在校驗(yàn)成功后將該數(shù)據(jù)塊寫入到該數(shù)據(jù)塊存儲(chǔ)請(qǐng)求中攜帶的磁盤標(biāo)識(shí)指示的磁盤中。目標(biāo)數(shù)據(jù)節(jié)點(diǎn)根據(jù)校驗(yàn)信息,對(duì)臨時(shí)文件中的數(shù)據(jù)塊進(jìn)行校驗(yàn),例如校驗(yàn)信息為CRC32,則根據(jù)CRC32檢驗(yàn)接收到的數(shù)據(jù)塊是否完整。如果校驗(yàn)得出接收的數(shù)據(jù)塊完整,則將該數(shù)據(jù)塊寫入數(shù)據(jù)塊存儲(chǔ)請(qǐng)求中的磁盤標(biāo)識(shí)指示的磁盤中,這樣便完成了數(shù)據(jù)塊的遷移。如果校驗(yàn)得出接收的數(shù)據(jù)塊不完整,則發(fā)送數(shù)據(jù)塊錯(cuò)誤的響應(yīng)給源數(shù)據(jù)節(jié)點(diǎn),源數(shù)據(jù)節(jié)點(diǎn)重新生成數(shù)據(jù)塊存儲(chǔ)請(qǐng)求及校驗(yàn)信息,再次向目標(biāo)數(shù)據(jù)節(jié)點(diǎn)發(fā)送并校驗(yàn),直到目標(biāo)數(shù)據(jù)節(jié)點(diǎn)接收到的數(shù)據(jù)塊正確為止。其中,本公開實(shí)施例對(duì)目標(biāo)數(shù)據(jù)節(jié)點(diǎn)接收的數(shù)據(jù)塊可能發(fā)生的錯(cuò)誤不進(jìn)行具體限定。在步驟509中,在完成對(duì)該數(shù)據(jù)塊的遷移操作后,源數(shù)據(jù)節(jié)點(diǎn)向遷移節(jié)點(diǎn)發(fā)送數(shù)據(jù)寫入響應(yīng)。在本公開實(shí)施例中,源數(shù)據(jù)節(jié)點(diǎn)接收到目標(biāo)數(shù)據(jù)節(jié)點(diǎn)校驗(yàn)數(shù)據(jù)塊正確的響應(yīng)后,會(huì)向遷移節(jié)點(diǎn)發(fā)送數(shù)據(jù)寫入響應(yīng),用于提示遷移節(jié)點(diǎn)該數(shù)據(jù)塊的遷移操作成功。在步驟510中,遷移節(jié)點(diǎn)在接收源數(shù)據(jù)節(jié)點(diǎn)返回的數(shù)據(jù)寫入響應(yīng)后,獲取該數(shù)據(jù)塊更新后的第三屬性信息,該第三屬性信息中至少包括目標(biāo)數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)標(biāo)識(shí)和存儲(chǔ)該數(shù)據(jù)塊的磁盤的磁盤標(biāo)識(shí);根據(jù)該數(shù)據(jù)塊的塊標(biāo)識(shí),將第三屬性信息更新至數(shù)據(jù)塊屬性列表中。由于已經(jīng)將數(shù)據(jù)塊遷移至目標(biāo)數(shù)據(jù)節(jié)點(diǎn),所以為了后續(xù)讀取該數(shù)據(jù)塊,本公開實(shí)施例支持遷移節(jié)點(diǎn)在數(shù)據(jù)塊屬性列表中修改該數(shù)據(jù)塊的存儲(chǔ)位置,也即根據(jù)該數(shù)據(jù)塊的塊標(biāo)識(shí),將目標(biāo)數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)標(biāo)識(shí)和存儲(chǔ)該數(shù)據(jù)塊的磁盤的磁盤標(biāo)識(shí)更新至數(shù)據(jù)塊屬性列表中。需要說(shuō)明的是,上述步驟503至步驟509描述的是一個(gè)數(shù)據(jù)塊的遷移過(guò)程,對(duì)于工作異常的磁盤上分布的每一個(gè)數(shù)據(jù)塊,均可以采取類似上述步驟503至步驟509所示的過(guò)程完成數(shù)據(jù)遷移,本公開實(shí)施例對(duì)此不進(jìn)行具體限定。本公開實(shí)施例提供的方法,在遷移節(jié)點(diǎn)周期性獲取到分布式文件系統(tǒng)中每一個(gè)數(shù)據(jù)節(jié)點(diǎn)的工作狀態(tài)信息后,對(duì)于每一個(gè)數(shù)據(jù)節(jié)點(diǎn),若遷移節(jié)點(diǎn)基于該數(shù)據(jù)節(jié)點(diǎn)的工作狀態(tài)信息判斷出該數(shù)據(jù)節(jié)點(diǎn)中存在工作異常的磁盤,則基于數(shù)據(jù)塊屬性列表確定該工作異常的磁盤上存儲(chǔ)的至少一個(gè)數(shù)據(jù)塊;對(duì)于至少一個(gè)數(shù)據(jù)塊中的每一個(gè)數(shù)據(jù)塊,遷移節(jié)點(diǎn)在除該數(shù)據(jù)節(jié)點(diǎn)之外的其他數(shù)據(jù)節(jié)點(diǎn)中選取待遷移的目標(biāo)數(shù)據(jù)節(jié)點(diǎn)和存儲(chǔ)該數(shù)據(jù)塊的其他副本的源數(shù)據(jù)節(jié)點(diǎn),并通過(guò)源數(shù)據(jù)節(jié)點(diǎn)將該數(shù)據(jù)塊遷移到目標(biāo)數(shù)據(jù)節(jié)點(diǎn)上。由于在數(shù)據(jù)節(jié)點(diǎn)宕機(jī)或者磁盤損壞等情況時(shí),數(shù)據(jù)遷移過(guò)程由分布式文件系統(tǒng)自動(dòng)完成,不需要工作人員人工操作,因此簡(jiǎn)單方便,實(shí)現(xiàn)了數(shù)據(jù)的實(shí)時(shí)遷移。圖6是根據(jù)一示例性實(shí)施例示出的一種數(shù)據(jù)遷移裝置的框圖。參照?qǐng)D6,該裝置包括第一獲取模塊601,判斷模塊602,確定模塊603,選取模塊604,遷移模塊605。該第一獲取模塊601,被配置為周期性獲取分布式文件系統(tǒng)中每一個(gè)數(shù)據(jù)節(jié)點(diǎn)的工作狀態(tài)信息;該判斷模塊602,被配置為對(duì)于每一個(gè)數(shù)據(jù)節(jié)點(diǎn),基于數(shù)據(jù)節(jié)點(diǎn)的工作狀態(tài)信息,判斷數(shù)據(jù)節(jié)點(diǎn)中是否存在工作異常的磁盤;該確定模塊603,被配置為若數(shù)據(jù)節(jié)點(diǎn)中存在工作異常的磁盤,則基于數(shù)據(jù)塊屬性列表確定工作異常的磁盤上存儲(chǔ)的至少一個(gè)數(shù)據(jù)塊;該選取模塊604,被配置為對(duì)于至少一個(gè)數(shù)據(jù)塊中的每一個(gè)數(shù)據(jù)塊,在除數(shù)據(jù)節(jié)點(diǎn)之外的其他數(shù)據(jù)節(jié)點(diǎn)中選取待遷移的目標(biāo)數(shù)據(jù)節(jié)點(diǎn);該遷移模塊605,被配置為將數(shù)據(jù)塊遷移到目標(biāo)數(shù)據(jù)節(jié)點(diǎn)上。在另一個(gè)實(shí)施例中,判斷模塊602,被配置為若數(shù)據(jù)節(jié)點(diǎn)的工作狀態(tài)信息在預(yù)設(shè)時(shí)長(zhǎng)內(nèi)未進(jìn)行更新,則確定數(shù)據(jù)節(jié)點(diǎn)發(fā)生宕機(jī),將數(shù)據(jù)節(jié)點(diǎn)上每一個(gè)磁盤均確定為工作異常的磁盤;或,若工作狀態(tài)信息中包括至少一個(gè)磁盤的異常狀態(tài)信息,則確定至少一個(gè)磁盤為工作異常的磁盤。在另一個(gè)實(shí)施例中,選取模塊604,被配置為在其他數(shù)據(jù)節(jié)點(diǎn)中確定存儲(chǔ)數(shù)據(jù)塊的其他副本的第一數(shù)據(jù)節(jié)點(diǎn);在第二數(shù)據(jù)節(jié)點(diǎn)中選取一個(gè)有空閑存儲(chǔ)位置的數(shù)據(jù)節(jié)點(diǎn)作為目標(biāo)數(shù)據(jù)節(jié)點(diǎn),第二數(shù)據(jù)節(jié)點(diǎn)為其他數(shù)據(jù)節(jié)點(diǎn)中除第一數(shù)據(jù)節(jié)點(diǎn)之外的數(shù)據(jù)節(jié)點(diǎn)。在另一個(gè)實(shí)施例中,遷移模塊605,被配置為在存儲(chǔ)數(shù)據(jù)塊的其他副本的第一數(shù)據(jù)節(jié)點(diǎn)中確定源數(shù)據(jù)節(jié)點(diǎn);向源數(shù)據(jù)節(jié)點(diǎn)發(fā)送數(shù)據(jù)塊復(fù)制請(qǐng)求,數(shù)據(jù)塊復(fù)制請(qǐng)求中至少包括數(shù)據(jù)塊的第一屬性信息和目標(biāo)數(shù)據(jù)節(jié)點(diǎn)的第二屬性信息,以使源數(shù)據(jù)節(jié)點(diǎn)在根據(jù)第一屬性信息獲取到本地存儲(chǔ)的數(shù)據(jù)塊后,基于第二屬性信息將數(shù)據(jù)塊發(fā)送至目標(biāo)數(shù)據(jù)節(jié)點(diǎn)。在另一個(gè)實(shí)施例中,參見圖7,該裝置還包括:接收模塊606,被配置為接收源數(shù)據(jù)節(jié)點(diǎn)返回的數(shù)據(jù)寫入響應(yīng);第二獲取模塊607,被配置為獲取數(shù)據(jù)塊更新后的第三屬性信息,第三屬性信息中至少包括目標(biāo)數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)標(biāo)識(shí)和存儲(chǔ)數(shù)據(jù)塊的磁盤的磁盤標(biāo)識(shí);更新模塊608,被配置為根據(jù)數(shù)據(jù)塊的塊標(biāo)識(shí),將第三屬性信息更新至數(shù)據(jù)塊屬性列表中。在另一個(gè)實(shí)施例中,確定模塊603,被配置為獲取工作異常的磁盤中每一個(gè)磁盤的磁盤標(biāo)識(shí);對(duì)于每一個(gè)工作異常的磁盤,根據(jù)磁盤標(biāo)識(shí)在數(shù)據(jù)塊屬性列表中進(jìn)行查找,得到與磁盤標(biāo)識(shí)匹配的至少一個(gè)塊標(biāo)識(shí);將至少一個(gè)塊標(biāo)識(shí)指示的數(shù)據(jù)塊確定為工作異常的磁盤上存儲(chǔ)的至少一個(gè)數(shù)據(jù)塊;其中,數(shù)據(jù)塊屬性列表中包括每一個(gè)數(shù)據(jù)塊的塊標(biāo)識(shí)與存儲(chǔ)每一個(gè)數(shù)據(jù)塊的磁盤的磁盤標(biāo)識(shí)、以及磁盤所屬數(shù)據(jù)節(jié)點(diǎn)的節(jié)點(diǎn)標(biāo)識(shí)。本公開實(shí)施例提供的裝置,遷移節(jié)點(diǎn)在周期性獲取到分布式文件系統(tǒng)中每一個(gè)數(shù)據(jù)節(jié)點(diǎn)的工作狀態(tài)信息后,對(duì)于每一個(gè)數(shù)據(jù)節(jié)點(diǎn),若基于該數(shù)據(jù)節(jié)點(diǎn)的工作狀態(tài)信息判斷出該數(shù)據(jù)節(jié)點(diǎn)中存在工作異常的磁盤,則基于數(shù)據(jù)塊屬性列表確定該工作異常的磁盤上存儲(chǔ)的至少一個(gè)數(shù)據(jù)塊;對(duì)于至少一個(gè)數(shù)據(jù)塊中的每一個(gè)數(shù)據(jù)塊,遷移節(jié)點(diǎn)在除該數(shù)據(jù)節(jié)點(diǎn)之外的其他數(shù)據(jù)節(jié)點(diǎn)中選取待遷移的目標(biāo)數(shù)據(jù)節(jié)點(diǎn),并將該數(shù)據(jù)塊遷移到目標(biāo)數(shù)據(jù)節(jié)點(diǎn)上。由于在數(shù)據(jù)節(jié)點(diǎn)宕機(jī)或者磁盤損壞等情況時(shí),數(shù)據(jù)遷移過(guò)程由分布式文件系統(tǒng)自動(dòng)完成,不需要工作人員人工操作,因此簡(jiǎn)單方便,實(shí)現(xiàn)了數(shù)據(jù)的實(shí)時(shí)遷移。圖8是根據(jù)一示例性實(shí)施例示出的一種數(shù)據(jù)遷移裝置的框圖。參照?qǐng)D8,該裝置包括接收模塊801,獲取模塊802,生成模塊803,發(fā)送模塊804。該接收模塊801,被配置為接收分布式文件系統(tǒng)中遷移節(jié)點(diǎn)發(fā)送的數(shù)據(jù)塊復(fù)制請(qǐng)求,所述數(shù)據(jù)塊復(fù)制請(qǐng)求中至少包括數(shù)據(jù)塊的第一屬性信息和待遷移的目標(biāo)數(shù)據(jù)節(jié)點(diǎn)的第二屬性信息,所述數(shù)據(jù)塊復(fù)制請(qǐng)求由所述遷移節(jié)點(diǎn)在確定一個(gè)數(shù)據(jù)節(jié)點(diǎn)上存在工作異常的磁盤后發(fā)送;該獲取模塊802,被配置為根據(jù)所述第一屬性信息獲取本地存儲(chǔ)的所述數(shù)據(jù)塊;該生成模塊803,被配置為生成數(shù)據(jù)塊存儲(chǔ)請(qǐng)求,所述數(shù)據(jù)塊存儲(chǔ)請(qǐng)求中攜帶所述數(shù)據(jù)塊和所述第二屬性信息中包含的磁盤標(biāo)識(shí);該發(fā)送模塊804,被配置為基于所述第二屬性信息包含的節(jié)點(diǎn)標(biāo)識(shí),將所述數(shù)據(jù)存儲(chǔ)請(qǐng)求發(fā)送至所述目標(biāo)數(shù)據(jù)節(jié)點(diǎn),以使所述目標(biāo)數(shù)據(jù)存儲(chǔ)所述數(shù)據(jù)塊。在另一個(gè)實(shí)施例中,所述獲取模塊802,被配置為根據(jù)所述第一屬性信息中包括的磁盤標(biāo)識(shí),確定存儲(chǔ)所述數(shù)據(jù)塊的磁盤;根據(jù)所述第一屬性信息中包括的塊標(biāo)識(shí),從所述磁盤中獲取所述數(shù)據(jù)塊。在另一個(gè)實(shí)施例中,參見圖9,該裝置還包括:校驗(yàn)?zāi)K805,被配置為向所述目標(biāo)數(shù)據(jù)節(jié)點(diǎn)發(fā)送校驗(yàn)信息,以使所述目標(biāo)數(shù)據(jù)節(jié)點(diǎn)根據(jù)所述校驗(yàn)信息對(duì)臨時(shí)存儲(chǔ)文件進(jìn)行校驗(yàn),所述臨時(shí)存儲(chǔ)文件由所述目標(biāo)數(shù)據(jù)節(jié)點(diǎn)在接收到所述數(shù)據(jù)存儲(chǔ)請(qǐng)求后,將所述數(shù)據(jù)塊寫入臨時(shí)文件得到。本公開實(shí)施例提供的裝置,源數(shù)據(jù)節(jié)點(diǎn)在接收到分布式文件系統(tǒng)中遷移節(jié)點(diǎn)發(fā)送的數(shù)據(jù)塊復(fù)制請(qǐng)求后,根據(jù)該數(shù)據(jù)塊獲取請(qǐng)求中包括的第一屬性信息獲取本地存儲(chǔ)的該數(shù)據(jù)塊,并生成攜帶該數(shù)據(jù)塊和第二屬性信息中包含的磁盤標(biāo)識(shí)的數(shù)據(jù)塊存儲(chǔ)請(qǐng)求,之后基于第二屬性信息包含的節(jié)點(diǎn)標(biāo)識(shí),將該數(shù)據(jù)存儲(chǔ)請(qǐng)求發(fā)送至該目標(biāo)數(shù)據(jù)節(jié)點(diǎn),以使該目標(biāo)數(shù)據(jù)存儲(chǔ)該數(shù)據(jù)塊,由于在數(shù)據(jù)節(jié)點(diǎn)宕機(jī)或者磁盤損壞等情況時(shí),數(shù)據(jù)遷移過(guò)程由分布式文件系統(tǒng)自動(dòng)完成,不需要工作人員人工操作,因此簡(jiǎn)單方便,實(shí)現(xiàn)了數(shù)據(jù)的實(shí)時(shí)遷移。圖10是根據(jù)一示例性實(shí)施例示出的一種數(shù)據(jù)遷移裝置的框圖。參照?qǐng)D10,該裝置包括接收模塊1001,獲取模塊1002,寫入模塊1003。該接收模塊1001,被配置為接收分布式文件系統(tǒng)中源數(shù)據(jù)節(jié)點(diǎn)發(fā)送的數(shù)據(jù)塊存儲(chǔ)請(qǐng)求,所述數(shù)據(jù)塊存儲(chǔ)請(qǐng)求由所述源數(shù)據(jù)節(jié)點(diǎn)在接收到遷移節(jié)點(diǎn)發(fā)送的數(shù)據(jù)塊復(fù)制請(qǐng)求后發(fā)送,所述數(shù)據(jù)塊復(fù)制請(qǐng)求由所述遷移節(jié)點(diǎn)在確定一個(gè)數(shù)據(jù)節(jié)點(diǎn)上存在工作異常的磁盤后發(fā)送;該獲取模塊1002,被配置為獲取所述數(shù)據(jù)塊存儲(chǔ)請(qǐng)求中攜帶的數(shù)據(jù)塊,并將所述數(shù)據(jù)塊寫入到臨時(shí)文件中,得到臨時(shí)存儲(chǔ)文件;該寫入模塊1003,被配置為接收所述源數(shù)據(jù)節(jié)點(diǎn)發(fā)送的校驗(yàn)信息,在根據(jù)所述校驗(yàn)信息對(duì)所述臨時(shí)存儲(chǔ)文件校驗(yàn)成功后,將所述數(shù)據(jù)塊寫入到所述數(shù)據(jù)塊存儲(chǔ)請(qǐng)求中攜帶的磁盤標(biāo)識(shí)指示的磁盤中。本公開實(shí)施例提供的裝置,在接收到分布式文件系統(tǒng)中源數(shù)據(jù)節(jié)點(diǎn)發(fā)送的數(shù)據(jù)塊存儲(chǔ)請(qǐng)求后,獲取該數(shù)據(jù)塊存儲(chǔ)請(qǐng)求中攜帶的數(shù)據(jù)塊,并將該數(shù)據(jù)塊寫入到臨時(shí)文件中,得到臨時(shí)存儲(chǔ)文件;之后,接收該源數(shù)據(jù)節(jié)點(diǎn)發(fā)送的校驗(yàn)信息,在根據(jù)該校驗(yàn)信息對(duì)該臨時(shí)存儲(chǔ)文件校驗(yàn)成功后,將該數(shù)據(jù)塊寫入到該數(shù)據(jù)塊存儲(chǔ)請(qǐng)求中攜帶的磁盤標(biāo)識(shí)指示的磁盤中。由于在數(shù)據(jù)節(jié)點(diǎn)宕機(jī)或者磁盤損壞等情況時(shí),數(shù)據(jù)遷移過(guò)程由分布式文件系統(tǒng)自動(dòng)完成,不需要工作人員人工操作,因此簡(jiǎn)單方便,實(shí)現(xiàn)了數(shù)據(jù)的實(shí)時(shí)遷移。關(guān)于上述實(shí)施例中的裝置,其中各個(gè)模塊執(zhí)行操作的具體方式已經(jīng)在有關(guān)該方法的實(shí)施例中進(jìn)行了詳細(xì)描述,此處將不做詳細(xì)闡述說(shuō)明。圖11是根據(jù)一示例性實(shí)施例示出的一種數(shù)據(jù)遷移裝置1100的框圖。例如,裝置1100可以被提供為一服務(wù)器。參照?qǐng)D11,裝置1100包括處理組件1122,其進(jìn)一步包括一個(gè)或多個(gè)處理器,以及由存儲(chǔ)器1132所代表的存儲(chǔ)器資源,用于存儲(chǔ)可由處理組件1122的執(zhí)行的指令,例如應(yīng)用程序。存儲(chǔ)器1132中存儲(chǔ)的應(yīng)用程序可以包括一個(gè)或一個(gè)以上的每一個(gè)對(duì)應(yīng)于一組指令的模塊。此外,處理組件1122被配置為執(zhí)行指令,以執(zhí)行上述數(shù)據(jù)遷移方法。裝置1100還可以包括一個(gè)電源組件1126被配置為執(zhí)行裝置1100的電源管理,一個(gè)有線或無(wú)線網(wǎng)絡(luò)接口1150被配置為將裝置1100連接到網(wǎng)絡(luò),和一個(gè)輸入輸出(I/O)接口1158。裝置1100可以操作基于存儲(chǔ)在存儲(chǔ)器1132的操作系統(tǒng),例如WindowsServerTM,MacOSXTM,UnixTM,LinuxTM,F(xiàn)reeBSDTM或類似。本領(lǐng)域技術(shù)人員在考慮說(shuō)明書及實(shí)踐這里公開的發(fā)明后,將容易想到本發(fā)明的其它實(shí)施方案。本申請(qǐng)旨在涵蓋本發(fā)明的任何變型、用途或者適應(yīng)性變化,這些變型、用途或者適應(yīng)性變化遵循本發(fā)明的一般性原理并包括本公開未公開的本
技術(shù)領(lǐng)域
中的公知常識(shí)或慣用技術(shù)手段。說(shuō)明書和實(shí)施例僅被視為示例性的,本發(fā)明的真正范圍和精神由下面的權(quán)利要求指出。應(yīng)當(dāng)理解的是,本發(fā)明并不局限于上面已經(jīng)描述并在附圖中示出的精確結(jié)構(gòu),并且可以在不脫離其范圍進(jìn)行各種修改和改變。本發(fā)明的范圍僅由所附的權(quán)利要求來(lái)限制。當(dāng)前第1頁(yè)1 2 3 
當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1