TWI739804B - 資料遷移方法和裝置 - Google Patents
資料遷移方法和裝置 Download PDFInfo
- Publication number
- TWI739804B TWI739804B TW106105966A TW106105966A TWI739804B TW I739804 B TWI739804 B TW I739804B TW 106105966 A TW106105966 A TW 106105966A TW 106105966 A TW106105966 A TW 106105966A TW I739804 B TWI739804 B TW I739804B
- Authority
- TW
- Taiwan
- Prior art keywords
- interface
- data
- level
- metadata
- module
- Prior art date
Links
- 238000013508 migration Methods 0.000 title claims abstract description 235
- 230000005012 migration Effects 0.000 title claims abstract description 235
- 238000000034 method Methods 0.000 title claims abstract description 84
- 238000012546 transfer Methods 0.000 claims abstract description 19
- 230000001360 synchronised effect Effects 0.000 claims description 63
- 238000012795 verification Methods 0.000 claims description 52
- 238000009826 distribution Methods 0.000 claims description 27
- 230000008859 change Effects 0.000 claims description 24
- 239000000725 suspension Substances 0.000 claims description 20
- 238000004891 communication Methods 0.000 claims description 7
- 238000000605 extraction Methods 0.000 claims description 6
- 238000012544 monitoring process Methods 0.000 claims description 4
- 230000011218 segmentation Effects 0.000 claims description 4
- 238000009434 installation Methods 0.000 claims description 3
- 238000003860 storage Methods 0.000 abstract description 67
- 230000005540 biological transmission Effects 0.000 abstract description 28
- 238000005516 engineering process Methods 0.000 abstract description 12
- 230000002457 bidirectional effect Effects 0.000 abstract 1
- 230000008569 process Effects 0.000 description 30
- 238000007726 management method Methods 0.000 description 24
- 238000010586 diagram Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 17
- 238000012545 processing Methods 0.000 description 15
- 238000004590 computer program Methods 0.000 description 7
- 230000000903 blocking effect Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 238000013509 system migration Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000009365 direct transmission Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/178—Techniques for file synchronisation in file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/214—Database migration support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Human Computer Interaction (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申請實施例提供了一種資料遷移方法和裝置,涉及電腦技術領域。所述方法包括:接收將第一系統中的資料遷移至第二系統的遷移任務;調用對應所述遷移任務的各上層介面,並由各上層介面通過抽象介面類別調用第一系統和第二系統的底層操作介面,以將第一系統的資料遷移至第二系統。首先,實現了任意兩個資料端可以進行雙向的資料傳輸和遷移。其次,可以實現將任意的資料終端,包括尚未支援資料遷移的雲儲存產品,如百度對象儲存、金山對象儲存,與其它任意一個資料端進行資料的雙向傳輸遷移。
Description
本申請係關於電腦技術領域,特別是關於一種資料遷移方法和一種資料遷移裝置。
隨著國內外雲計算平台、市場的快速發展,雲儲存產品也越來越多。在雲計算平台上,雲伺服器是最基礎、最重要的產品,其次就是雲儲存。各大雲服務商都有自己的雲儲存產品,如AWS(Amazon Web Services,亞馬遜雲服務)的S3、阿里雲的OSS(Object Storage Service,對象儲存服務)、微軟雲計算平台Azure的儲存資料服務(Blob)。另外,還有像七牛雲儲存這種專門提供雲儲存服務的服務商。
雖然雲儲存產品種類很多,它們在功能和使用方法上都有一些共通點,但具體到API(Application Programming Interface,應用程式設計發展介面)調用、SDK(Software Development Kit,軟體開發套件)的程式設計上,又都有一些差異和各自的特點。在實際使用過程中,有時因為整體業務的搬遷,可能會從一個雲服務商切換到另一個服務
商,這時候就需要相應地把雲儲存的資料進行遷移同步;或者有時為了資料的安全性,不僅在同個服務商提供的多個雲儲存產品上同步備份資料,甚至會把資料備份到另一服務商提供的雲儲存產品,減少風險;又或者將客戶端檔案系統中的資料同步遷移到某一雲服務商提供的雲儲存產品中。
但是,現有的資料遷移技術或工具,只能針對性地在某一服務商提供的雲儲存產品與用戶之間進行資料傳輸,不支援其它雲儲存產品;或者是將其他儲存系統中的資料遷移到某一服務商提供的雲儲存產品,不能進行任意兩個儲存系統之間的資料的雙向遷移。
鑒於上述問題,提出了本申請實施例以便提供一種克服上述問題或者至少部分地解決上述問題的一種資料遷移方法和相應的一種資料遷移裝置。
本申請公開了一種資料遷移方法,其特徵在於,包括:接收將第一系統中的資料遷移至第二系統的遷移任務;調用對應所述遷移任務的各上層介面,並由各上層介面通過抽象介面類別調用第一系統和第二系統的底層操作介面,以將第一系統的資料遷移至第二系統。
較佳地,所述調用對應所述遷移任務的各上層介面,
並由各上層介面通過抽象介面類別調用第一系統和第二系統的底層操作介面,以將第一系統的資料遷移至第二系統的步驟,包括:確定屬於獲取資料的各上層介面,以及屬於同步資料的各上層介面;對於屬於獲取資料的各上層介面,通過抽象介面類別調用第一系統的底層操作介面,以從第一系統獲取資料;對於屬於同步資料的各上層介面,通過抽象介面類別調用第二系統的底層操作介面,以將從第一系統獲取的資料同步至第二系統。
較佳地,對於屬於獲取資料的各上層介面,通過抽象介面類別調用第一系統的底層操作介面的步驟,包括:對於屬於獲取資料的各上層介面中的第一上層介面,以抽象介面類別中與第一上層介面對應的第一抽象類別介面作為底層操作介面以直接調用;所述第一上層介面為各系統通用的介面;對於屬於獲取資料的各上層介面中的第二上層介面,通過抽象介面類別生成針對第一系統的第一介面類別,在所述第一介面類別中調用與各第二上層介面對應的底層操作介面;所述第二上層介面不為各系統通用的介面。
較佳地,對於屬於同步資料的各上層介面,通過抽象介面類別調用第二系統的底層操作介面的步驟,包括:對於屬於同步資料的各上層介面中的第三上層介面,以抽象介面類別中與第三上層介面對應的第二抽象類別介
面作為底層操作介面以直接調用;所述第三上層介面為各系統通用的介面;對於屬於同步資料的各上層介面中的第四上層介面,通過抽象介面類別生成針對第二系統的第二介面類別,在所述第二介面類別中調用與各第四上層介面對應的底層操作介面;所述第四上層介面不為各系統通用的介面。
較佳地,所述對於屬於獲取資料的各上層介面,通過抽象介面類別調用第一系統的底層操作介面,以從第一系統獲取資料的步驟,包括:由管理組件的掃描器執行獲取元資料的上層介面,所述獲取元資料的上層介面通過抽象類別介面調用第一系統的獲取元資料的底層操作介面,從第一系統獲取所述遷移任務對應的各元資料;由管理組件的分發器,基於各元資料生成同步任務並分發給各工作組件的接收器;由工作組件的接收器根據接收到同步任務,執行獲取實際資料的上層介面,所述獲取實際資料的上層介面通過抽象類別介面調用第一系統的獲取實際資料的底層獲取介面,從第一系統獲取所述遷移任務的實際資料。
較佳地,所述對於屬於同步資料的各上層介面,通過抽象介面類別調用第二系統的底層操作介面,以將從第一系統獲取的資料同步至第二系統的步驟,包括:由工作組件的同步器執行同步資料的各上層介面,所述同步資料的各上層介面通過抽象介面類別調用第二系統
的底層操作介面,將所述實際資料同步至第二系統。
較佳地,所述管理組件在集群的一台伺服器中,所述工作組件在集群的各台伺服器中。
較佳地,所述由管理組件的分發器,基於各元資料生成同步任務並分發給各工作組件的接收器的步驟,包括:提取元資料中記錄的資料量大小;如果元資料中記錄的資料量小於第一閾值,直接將所述元資料作為同步任務分發給管理組件所在的伺服器中的工作組件的接收器;如果元資料記錄的資料量不小於第一閾值,則將所述元資料作為同步任務分發給負載最小的伺服器中的工作組件的接收器;較佳地,所述由管理組件的分發器,基於各元資料生成同步任務並分發給各工作組件的接收器的步驟,包括:提取元資料中記錄的資料量大小;如果元資料中記錄的資料量小於第一閾值,直接將所述元資料作為同步任務分發給管理組件所在的伺服器中的工作組件的接收器;如果元資料中記錄的資料量不小於第一閾值但是小於第二閾值時,則將所述元資料生成同步任務分發給負載最小的伺服器中的工作組件的接收器;如果元資料中記錄的資料量不小於第二閾值時,則調用對大檔案切片的上層介面,所述對大檔案切片的上層介面通過抽象介面類別調用第二系統的對大檔案切片的底層
操作介面,將所述元資料對應的大檔案切片;將對所述元資料的不同切片的切片資訊生成同步任務,並分發給負載低的多個伺服器的工作組件的接收器。
較佳地,所述集群的各台伺服器之間採用JGroups通信協定傳輸資料。
較佳地,所述由工作組件的同步器執行同步資料的各上層介面,所述同步資料的各上層介面通過抽象介面類別調用第二系統的底層操作介面,將所述實際資料同步至第二系統的步驟,包括:由工作組件的同步器根據限速指令,調用與限速指令相應的執行緒執行同步資料的各上層介面,所述同步資料的各上層介面通過抽象介面類別調用第二系統的底層操作介面,將所述實際資料同步至第二系統。
較佳地,調用對應所述遷移任務的各上層介面,並由各上層介面通過抽象介面類別調用第一系統和第二系統的底層操作介面,以將第一系統的資料遷移至第二系統的步驟之後,還包括:判斷將第一系統中的資料遷移至第二系統是否成功;如果失敗,則重複執行調用對應所述遷移任務的各上層介面,並由各上層介面通過抽象介面類別調用第一系統和第二系統的底層操作介面,以將第一系統的資料遷移至第二系統的步驟,直至重試次數達到重試閾值或者在重試閾值內成功。
較佳地,在調用對應所述遷移任務的各上層介面,通
過抽象介面類別調用第一系統和第二系統的底層操作介面,以將第一系統的資料遷移至第二系統的過程中,還包括:判斷是否接收到暫停指令;如果接收到暫停指令,則暫停將第一系統的資料遷移至第二系統,並記錄暫停時刻第一系統中已遷移的資料位置;則進一步的,在暫停將第一系統的資料遷移至第二系統之後,還包括:判斷是否接收到重啟指令;如果接收到重啟指令,則根據暫停時刻第一系統中已遷移的資料位置開始,重新調用對應所述遷移任務的各上層介面,通過抽象介面類別調用第一系統和第二系統的底層操作介面,以將第一系統的資料遷移至第二系統的步驟。
較佳地,當第一系統為客戶端檔案系統時,在接收將第一系統中的資料遷移至第二系統的遷移任務的步驟之前,還包括:在客戶端中安裝應用程式,所述應用程式針對指定檔案模擬各底層操作介面。
較佳地,所述調用對應所述遷移任務的各上層介面,並由各上層介面通過抽象介面類別調用第一系統和第二系統的底層操作介面,以將第一系統的資料遷移至第二系統的步驟之後,還包括:
監控客戶端檔案系統是否與最近一次遷移到第二系統的資料出現變更;如果出現變更,則調用對應所述遷移任務的各上層介面,並由各上層介面通過抽象介面類別調用第一系統和第二系統的底層操作介面,以將客戶端檔案系統的變更資料同步至第二系統。
較佳地,所述對於屬於獲取資料的各上層介面,通過抽象介面類別調用第一系統的底層操作介面,以從第一系統獲取資料的步驟之後,還包括:調用簽名的上層介面,並由所述簽名的上層介面調用第一系統的簽名的底層操作介面,對所述資料進行簽名;進一步的,對於屬於同步資料的各上層介面,通過抽象介面類別調用第二系統的底層操作介面,以將從第一系統獲取的資料同步至第二系統的步驟之後,還包括:調用簽名認證的上層介面,並由所簽名認證的上層介面調用第二系統的簽名認證的底層操作介面,對所述資料進行簽名驗證。
較佳地,在調用對應所述遷移任務的各上層介面,並由各上層介面通過抽象介面類別調用第一系統和第二系統的底層操作介面,以將第一系統的資料遷移至第二系統的步驟之後,還包括:針對第一系統調用檔案列表的上層介面,並由所述調用檔案列表的上層介面通過抽象介面類別調用第一系統的底層操作介面,獲取第一系統的檔案列表;
針對第二系統調用檔案列表的上層介面,並由所述調用檔案列表的上層介面通過抽象介面類別調用第二系統的底層操作介面,獲取第二系統的檔案列表;比較第一系統的檔案列表和第二系統的檔案列表,並將兩者之間的差異提示給客戶端。
較佳地,所述遷移任務由客戶端發送,所述遷移任務包括第一系統的標識資訊、用戶在第一系統的身份資訊、待遷移資料在第一系統中的檔案資訊、第二系統的標識資訊、用戶在第二系統的身份資訊。
較佳地,在確定屬於獲取資料的各上層介面,以及屬於同步資料的各上層介面的步驟之後,還包括:針對第一系統調用身份驗證的上層介面,並由所述身份驗證的上層介面通過抽象介面類別調用第一系統的底層操作介面,對用戶在第一系統的身份資訊進行驗證;針對第二系統調用身份驗證的上層介面,並由所述身份驗證的上層介面通過抽象介面類別調用第二系統的底層操作介面,對用戶在第二系統的身份資訊進行驗證。
本申請還公開了一種資料遷移裝置,其特徵在於,包括:任務接收模組,適於接收將第一系統中的資料遷移至第二系統的遷移任務;遷移模組,適於調用對應所述遷移任務的各上層介面,並由各上層介面通過抽象介面類別調用第一系統和第二系統的底層操作介面,以將第一系統的資料遷移至第二
系統。
較佳地,所述遷移模組,包括:上層介面確定子模組,適於確定屬於獲取資料的各上層介面,以及屬於同步資料的各上層介面;資料獲取子模組,適於對於屬於獲取資料的各上層介面,通過抽象介面類別調用第一系統的底層操作介面,以從第一系統獲取資料;資料同步子模組,適於對於屬於同步資料的各上層介面,通過抽象介面類別調用第二系統的底層操作介面,以將從第一系統獲取的資料同步至第二系統。
較佳地,所述資料獲取子模組,包括:第一底層操作介面確定子模組,適於對於屬於獲取資料的各上層介面中的第一上層介面,以抽象介面類別中與第一上層介面對應的第一抽象類別介面作為底層操作介面以直接調用;所述第一上層介面為各系統通用的介面;第一底層操作介面調用子模組,適於對於屬於獲取資料的各上層介面中的第二上層介面,通過抽象介面類別生成針對第一系統的第一介面類別,在所述第一介面類別中調用與各第二上層介面對應的底層操作介面;所述第二上層介面不為各系統通用的介面。
較佳地,所述資料同步子模組,包括:第二底層操作介面確定子模組,適於對於屬於同步資料的各上層介面中的第三上層介面,以抽象介面類別中與第三上層介面對應的第二抽象類別介面作為底層操作介面
以直接調用;所述第三上層介面為各系統通用的介面;第二底層操作介面調用子模組,適於對於屬於同步資料的各上層介面中的第四上層介面,通過抽象介面類別生成針對第二系統的第二介面類別,在所述第二介面類別中調用與各第四上層介面對應的底層操作介面;所述第四上層介面不為各系統通用的介面。
較佳地,所述資料獲取子模組,包括:元資料獲取子模組,適於由管理組件的掃描器執行獲取元資料的上層介面,所述獲取元資料的上層介面通過抽象類別介面調用第一系統的獲取元資料的底層操作介面,從第一系統獲取所述遷移任務對應的各元資料;任務分發子模組,適於由管理組件的分發器,基於各元資料生成同步任務並分發給各工作組件的接收器;實際資料獲取子模組,適於由工作組件的接收器根據接收到同步任務,執行獲取實際資料的上層介面,所述獲取實際資料的上層介面通過抽象類別介面調用第一系統的獲取實際資料的底層獲取介面,從第一系統獲取所述遷移任務的實際資料。
較佳地,所述資料同步子模組,包括:實際資料同步子模組,適於由工作組件的同步器執行同步資料的各上層介面,所述同步資料的各上層介面通過抽象介面類別調用第二系統的底層操作介面,將所述實際資料同步至第二系統。
較佳地,所述管理組件在集群的一台伺服器中,所述
工作組件在集群的各台伺服器中。
較佳地,所述任務分發子模組,包括:資料量大小提取子模組,適於提取元資料中記錄的資料量大小;第一元資料分發子模組,適於如果元資料中記錄的資料量小於第一閾值,直接將所述元資料作為同步任務分發給管理組件所在的伺服器中的工作組件的接收器;第二元資料分發子模組,適於如果元資料記錄的資料量不小於第一閾值,則將所述元資料作為同步任務分發給負載最小的伺服器中的工作組件的接收器。
較佳地,所述任務分發子模組,包括:資料量大小提取子模組,適於提取元資料中記錄的資料量大小;第一元資料分發子模組,適於如果元資料中記錄的資料量小於第一閾值,直接將所述元資料作為同步任務分發給管理組件所在的伺服器中的工作組件的接收器;第三元資料分發子模組,適於如果元資料中記錄的資料量不小於第一閾值但是小於第二閾值時,則將所述元資料生成同步任務分發給負載最小的伺服器中的工作組件的接收器;元資料切分子模組,適於如果元資料中記錄的資料量不小於第二閾值時,則調用對大檔案切片的上層介面,所述對大檔案切片的上層介面通過抽象介面類別調用第二系統的對大檔案切片的底層操作介面,將所述元資料對應的
的資料位置開始,重新進入遷移模組。
較佳地,當第一系統為客戶端檔案系統時,在任務接收模組之前,還包括:應用程式安裝模組,適於在客戶端中安裝應用程式,所述應用程式針對指定檔案模擬各底層操作介面。
較佳地,在所述遷移模組之後,還包括:資料監控模組,適於監控客戶端檔案系統是否與最近一次遷移到第二系統的資料出現變更;如果出現變更,則進入變更資料同步模組;變更資料同步模組,適於調用對應所述遷移任務的各上層介面,並由各上層介面通過抽象介面類別調用第一系統和第二系統的底層操作介面,以將客戶端檔案系統的變更資料同步至第二系統。
較佳地,在所述資料獲取子模組之後,還包括:簽名子模組,適於調用簽名的上層介面,並由所述簽名的上層介面調用第一系統的簽名的底層操作介面,對所述資料進行簽名;進一步的,在所述資料同步子模組之後,還包括:簽名驗證子模組,適於調用簽名認證的上層介面,並由所簽名認證的上層介面調用第二系統的簽名認證的底層操作介面,對所述資料進行簽名驗證。
較佳地,在所述遷移模組之後,還包括:第一檔案列表獲取模組,適於針對第一系統調用檔案列表的上層介面,並由所述調用檔案列表的上層介面通過
大檔案切片;將對所述元資料的不同切片的切片資訊生成同步任務,並分發給負載低的多個伺服器的工作組件的接收器。
較佳地,所述集群的各台伺服器之間採用JGroups通信協定傳輸資料。
較佳地,所述實際資料同步子模組,包括:第一實際資料同步子模組,適於由工作組件的同步器根據限速指令,調用與限速指令相應的執行緒執行同步資料的各上層介面,所述同步資料的各上層介面通過抽象介面類別調用第二系統的底層操作介面,將所述實際資料同步至第二系統。
較佳地,在所述遷移模組之後,還包括:遷移判斷模組,適於判斷將第一系統中的資料遷移至第二系統是否成功;如果失敗,則重複執行遷移模組,直至重試次數達到重試閾值或者在重試閾值內成功。
較佳地,在所述遷移模組之後,還包括:暫停指令判斷模組,適於判斷是否接收到暫停指令;如果接收到暫停指令,則進入暫停記錄子模組;暫停記錄模組,適於暫停將第一系統的資料遷移至第二系統,並記錄暫停時刻第一系統中已遷移的資料位置;則進一步的,在所述暫停指令判斷模組之後,還包括:重啟指令判斷模組,適於判斷是否接收到重啟指令;如果接收到重啟指令,則根據暫停時刻第一系統中已遷移
抽象介面類別調用第一系統的底層操作介面,獲取第一系統的檔案列表;第二檔案列表獲取模組,適於針對第二系統調用檔案列表的上層介面,並由所述調用檔案列表的上層介面通過抽象介面類別調用第二系統的底層操作介面,獲取第二系統的檔案列表;差異提示模組,適於比較第一系統的檔案列表和第二系統的檔案列表,並將兩者之間的差異提示給客戶端。
較佳地,所述遷移任務由客戶端發送,所述遷移任務包括第一系統的標識資訊、用戶在第一系統的身份資訊、待遷移資料在第一系統中的檔案資訊、第二系統的標識資訊、用戶在第二系統的身份資訊。
較佳地,在所述上層介面確定子模組之後,還包括:第一身份驗證模組,適於針對第一系統調用身份驗證的上層介面,並由所述身份驗證的上層介面通過抽象介面類別調用第一系統的底層操作介面,對用戶在第一系統的身份資訊進行驗證;第二身份驗證模組,適於針對第二系統調用身份驗證的上層介面,並由所述身份驗證的上層介面通過抽象介面類別調用第二系統的底層操作介面,對用戶在第二系統的身份資訊進行驗證。
本申請實施例包括以下優點:本申請實施例,接收將第一系統中的資料遷移至第二系統的遷移任務;然後調用對應所述遷移任務的各上層介
面,並由各上層介面通過抽象介面類別調用第一系統和第二系統的底層操作介面,以將第一系統的資料遷移至第二系統。
首先,實現了任意兩個資料端可以進行雙向的資料傳輸和遷移。
其次,本申請所述的資料遷移技術具有良好的擴展功能,可以實現將任意的資料終端,包括尚未支援資料遷移的雲儲存產品,如百度對象儲存、金山對象儲存,與其它任意一個資料端進行資料的雙向傳輸遷移。
310‧‧‧任務接收模組
320‧‧‧遷移模組
410‧‧‧任務接收模組
420‧‧‧遷移模組
421‧‧‧上層介面確定子模組
422‧‧‧資料獲取子模組
4221‧‧‧元資料獲取子模組
4222‧‧‧任務分發子模組
4223‧‧‧實際資料獲取子模組
423‧‧‧資料同步子模組
4231‧‧‧實際資料同步子模組
圖1是本申請的一種資料遷移方法實施例的步驟流程圖;圖1A是本申請的一種五個系統進行資料遷移的示意圖;圖1B是本申請的一種五個系統的資料遷移過程介面調用示意圖;圖2是本申請的一種資料遷移方法實施例的步驟流程圖;圖2C是本申請的一種資料遷移結構示意圖;圖2D是本申請的一種分散式模式資料遷移資料流程示意圖;圖3是本申請的一種資料遷移裝置實施例的結構框圖;
圖4是本申請的一種資料遷移裝置實施例的結構框圖。
為使本申請的上述目的、特徵和優點能夠更加明顯易懂,下面結合附圖和具體實施方式對本申請作進一步詳細的說明。
本申請實施例的核心構思之一在於,接收將第一系統中的資料遷移至第二系統的遷移任務;所述第一系統和第二系統為多個系統中的任意兩個系統,然後調用對應所述遷移任務的各上層介面,並由各上層介面通過抽象介面類別調用第一系統和第二系統的底層操作介面,以將第一系統的資料遷移至第二系統。
首先,實現了任意兩個資料端可以進行雙向的資料傳輸和遷移,包括資料端內部的bucket間遷移。
其次,本申請所述的資料遷移技術具有良好的擴展功能,可以實現將任意的資料終端,包括尚未支援資料遷移的雲儲存產品,如百度對象儲存、金山對象儲存,與其它任意一個資料端進行資料的雙向傳輸遷移。
參照圖1,示出了本申請的一種資料遷移方法實施例的步驟流程圖,具體可以包括如下步驟:步驟110,接收將第一系統中的資料遷移至第二系統
的遷移任務;所述第一系統和第二系統為多個系統中的任意兩個系統。
本申請的一種資料遷移方法是將一個系統中的資料遷移至另一個系統的方法,是針對多個系統中的任意兩個系統。其中的系統可以是具有儲存功能的伺服器,或者儲存空間、雲儲存產品等,例如客戶端檔案系統(Local)、AWS(Amazon Web Services,亞馬遜雲服務)的S3、阿里雲的OSS(Object Storage Service,對象儲存服務)、微軟雲計算平台Azure的儲存資料服務(Blob)、七牛雲儲存(QiNiu)等。如圖1A為前述五個系統進行資料遷移的示意圖。可以看出有,多個系統中的任意兩個系統可以進行雙向的資料傳輸和遷移,包括系統內部的不同儲存區間(bucket)之間的資料遷移。其中,Bucket是一個用戶用來管理所儲存對象的儲存空間,類似於檔案系統裡面的根目錄或者磁碟分割。而且本申請的資料遷移方法具有良好的擴展功能,對於其它尚未加入圖1A所示五個系統的雲儲存產品,如百度對象儲存(Baidu Object Storage,BOS)、金山對象儲存(Kingsoft Standard Storage Service,KS3)等,也可以很方便地加入,並且可以跟其它任意一個系統進行資料的雙向傳輸與遷移。
為了區分兩個系統,可以定義將第一系統中的資料遷移至第二系統。其中的第一系統和第二系統可以為兩個相同類型的系統,例如都為阿里雲的OSS,那麼此時是將一個OSS的資料遷移至另一個OSS,比如將一個地區的
OSS中的資料遷移至另一個地區的OSS中;當然,第一系統和第二系統也可以為兩個不同類型的系統,例如分別為OSS和Blob,那麼此時是將OSS的資料遷移至Blob,或者也可以為同一系統中的兩個不同的儲存區,那麼此時是將同一系統中的一個儲存區間的資料遷移至另一個儲存區間。
對於具體的第一系統和第二系統,以及遷移資料,例如是將第一系統中的全部資料遷移至第二系統,還是只遷移一部分,可以在遷移任務中設定。接收資料遷移任務的伺服器可以從遷移任務中獲取上述資訊。
在本申請的另一個較佳的實施例中,所述遷移任務由客戶端發送,所述遷移任務包括第一系統的標識資訊、用戶在第一系統的身份資訊、待遷移資料在第一系統中的檔案資訊、第二系統的標識資訊、用戶在第二系統的身份資訊。其中,第一系統的標識資訊是指可以唯一標識第一系統的資訊,例如第一系統的訪問功能變數名稱等;用戶在第一系統的身份資訊是指當前第一系統用戶的身份資訊,例如用戶名等;第二系統的標識資訊是指可以唯一標識第二系統的資訊,例如第二系統的IP位址等;用戶在第二系統的身份資訊是指當前第二系統用戶的身份資訊,例如用戶名等;待遷移資料在第一系統中的檔案資訊可以包括待遷移資料儲存在第一系統中的檔案的名稱、儲存位置、資料大小等資訊。
在實際應用中,本申請實施例可以在客戶端中提供一
個遷移配置頁面,用戶可以在該遷移配置頁面中配置相關資訊,作為被遷移對象的第一系統的標識資訊、用戶在第一系統的身份資訊、待遷移資料在第一系統中的檔案資訊、作為遷移目標對象的第二系統的標識資訊、用戶在第二系統的身份資訊,當然還包括遷移對象標識。其中,如果用戶需要遷移第一系統的全部資料,則可以配置遷移對象標識為all,all標識遷移第一系統的全部資料;如果用戶需要遷移某個或者某些個檔案,則可以配置該檔案或者該幾個檔案在第一儲存系統中的儲存路徑作為遷移對象標識。當然,還可以配置其他需求的資訊,比如有的儲存系統是分區域,比如北京有一個儲存中心,上海有一個儲存中心,那麼還可以配置該儲存系統所在區域Region。具體的配置項可以根據需求設置,本申請實施例不對其加以限制。
步驟120,調用對應所述遷移任務的各上層介面,並由各上層介面通過抽象介面類別調用第一系統和第二系統的底層操作介面,以將第一系統的資料遷移至第二系統。
在本申請實施例中,可以將多個伺服器連接起來形成一個大的處理集群。整個集群有一台控制節點(Master)伺服器和多台工作節點(Slave)伺服器,Master用以接收將第一系統中的資料遷移至第二系統的遷移任務,然後可以通過合理的分發策略,把接收到的遷移任務分發給Slave進行處理。Slave處理完接收到的遷移任務後,可以把遷移結果回饋給Master。當然,本申請實施例也可以用
單台伺服器實現資料的遷移。較佳的本申請數量採樣前述集群的方式。
如圖1B為對前述五個系統的資料遷移過程介面調用示意圖。其中,上層(Peer)介面定義了每個具體的進行資料遷移的系統都必須具有的功能。例如,get(),put(),分別是指下載、上傳資料,這是進行實際資料傳輸需要調用的介面;
mkRoot(),rmRoot():建立、刪除根目錄。操作的對象就是系統中的Bucket;Bucket儲存空間,是一個用戶用來管理所儲存Object的儲存空間,類似於檔案系統裡面的根目錄或者磁碟分割。
getObj(),getAllObjs():獲取單個元資料、獲取全部元資料,主要就是利用這些介面,獲取要傳輸的資料的元資料;元資料Metadata作為實際儲存資料的描述型資料,只包含一些基礎資訊,如:標識資料唯一性的Key、資料大小、時間戳記等。
beginPartPut(),partPut(),endPartPut():主要處理中斷點續傳、大檔案的切片傳輸功能;rm(),rmAll():刪除單個資料,刪除全部資料。
其中,對於某一些上層介面,如getAllObjs(),rmAll(),它們的實現是通過調用其它底層操作介面如getObj(),rm()來實現,這對於任何一個進行資料遷移的系統來說都是通用的,可以在圖1B中所示的抽象介面類別(AbstractPeer)層中實現。
所以在本申請實施例中,可以在AbstractPeer這一層實現調用底層操作介面,例如圖1B中的Local、OSS、S3、QiNiu、Blob構成的底層的操作介面。所以,可以調用對應遷移任務的各上層介面,並由各上層介面通過抽象介面類別調用第一系統和第二系統的底層操作介面,以將第一系統的資料遷移至第二系統。
例如,若某一遷移任務是要將Local中的資料遷移至OSS,則可以調用對應該遷移任務的各上層介面,包括用以獲取Local中資料的上層介面和用以將獲取的資料同步到OSS中的上層介面,然後首先可以由獲取Local中資料的上層介面通過與之對應的抽象介面類別依次調用Local中的getObj()介面、get()介面,以獲取Local中的遷移資料,然後可以由用以將獲取的資料同步到OSS中的上層介面通過與之對應的抽象介面類別依次調用OSS中的put()介面,將從Local中獲取的遷移資料傳輸至OSS。
由於本申請設置一個統一的上層介面層peer,在其中構建了各種操作介面。又構建了一個抽象介面類別層AbstractPeer,該抽象介面類別層可以繼承上層介面層。然後對於各個儲存系統(如前述Local、OSS、S3、QiNiu、Blob)本身的底層操作介面,可以繼承該AbstractPeer,從而可以實現各個系統之間互相遷移資料的過程。同時,由於有抽象介面類別層AbstractPeer,對於新的儲存系統,只需要將其底層的底層操作介面層繼承抽象介面類別層AbstractPeer,即可實現該新的儲存系統
與之前的其他任意一個儲存系統之間的資料遷移過程。
在本申請的另一個較佳的實施例中,步驟120包括:子步驟121,確定屬於獲取資料的各上層介面,以及屬於同步資料的各上層介面。
在本申請實施例中,定義用以從第一系統中獲取資料的上層介面為屬於獲取資料的上層介面,用以將獲取的資料同步至第二系統的上層介面為屬於同步資料的上層介面。在實際應用中,根據具體需求的不同,屬於獲取資料的上層介面和屬於同步資料的上層介面都可能為一個或多個上層介面,對此本申請實施例不加以限制。
在實際應用中,接收到一個遷移任務後,首先要確定去某個儲存系統獲取資料要調用的各上層介面,以及將資料儲存至另一系統要調用的上傳介面。
比如,對於遷移任務中包括了要從中遷移資料的第一系統的標識資訊,以及待遷移的一個檔案的檔案資訊,如果不需要中斷點續傳,則需要調用圖1B的peer中的上層介面getObj()獲取元資料,還要調用圖1B的peer中上層介面get()獲取實際資料,那麼getObj()和get()屬於獲取資料的上層介面。當然實際應用中,還可以包括對第一系統的用戶身份資訊,如用戶在第一系統中的帳戶名和密碼,進行身份驗證的上層介面。
而對於第二系統,由於該檔案是從第一系統遷移過來,通常情況下第二系統是沒有相應資料夾的,那麼需要調用圖1B的peer中的mkRoot()建立目錄,以及圖1B的
peer中的put()上傳資料。那麼mkRoot()和put()屬於同步資料的上層介面。當然實際應用中,還可以包括對第二系統的用戶身份資訊,如用戶在第二系統中的帳戶名和密碼,進行身份驗證的上層介面。
子步驟122,對於屬於獲取資料的各上層介面,通過抽象介面類別調用第一系統的底層操作介面,以從第一系統獲取資料。
如前述,在實際應用中,上層介面是通過抽象介面類別調用第一系統的底層操作介面,以將第一系統的資料遷移至第二系統。在將第一系統的資料遷移至第二系統的過程中包括從第一系統中獲取資料。此時,可以利用屬於獲取資料的各上層介面,通過抽象介面類別調用第一系統的底層操作介面,以從第一系統獲取資料。
在實際應用中,本申請實施例的伺服器可以將第一系統的標識資訊作為參數之一傳給獲取資料的上層介面,那麼上層介面再調用抽象介面類別,抽象介面類別則可以根據該標識資訊去調用第一系統的相應的底層操作介面。
在本申請的另一個較佳的實施例中,子步驟122包括:子步驟1221,對於屬於獲取資料的各上層介面中的第一上層介面,以抽象介面類別中與第一上層介面對應的第一抽象類別介面作為底層操作介面以直接調用;所述第一上層介面為各系統通用的介面。
在實際應用中,對於屬於獲取資料的各上層介面中包
括的各系統通用的介面,例如,getAllObjs(),rmAll(),可以稱為第一上層介面。它們的實現是通過調用其它底層操作介面來實現的,因此對於屬於獲取資料的各上層介面中的第一上層介面,可以以抽象介面類別中與第一上層介面對應的第一抽象類別介面作為底層操作介面以直接調用。
例如,對於第一上層介面getAllObjs(),在抽象介面類別中第一抽象類別介面getAllObjs()是通過調用底層操作介面getObj()實現的,所以,此時可以直接將第一抽象類別介面getAllObjs()作為底層操作介面調用,相當於調用了底層操作介面getObj()。
本申請實施例的伺服器可以將第一系統的標識資訊作為參數之一傳給獲取資料的上層介面,那麼上層介面再調用抽象介面類別,如果抽象介面類別中有該上層介面對應的第一抽象類別介面,則該第一抽象類別介面可以根據該標識資訊等參數執行。
子步驟1222,對於屬於獲取資料的各上層介面中的第二上層介面,通過抽象介面類別生成針對第一系統的第一介面類別,在所述第一介面類別中調用與各第二上層介面對應的底層操作介面;所述第二上層介面不為各系統通用的介面。
而對於為各系統通用的各上層介面,可以稱為第二上層介面,對於此類上層介面,則需要通過抽象介面類別生成針對第一系統的第一介面類別,然後在第一介面類別中
調用與各第二上層介面對應的底層操作介面。
本申請實施例的伺服器可以將第一系統的標識資訊作為參數之一傳給獲取資料的上層介面,那麼上層介面再調用抽象介面類別,如果抽象介面類別中沒有該上層介面對應的第一抽象類別介面,則由抽象介面類別根據該標識資訊生成對應第一系統的第一介面類別,然後在該第一介面類別中調用上層介面對應的底層介面。
子步驟123,對於屬於同步資料的各上層介面,通過抽象介面類別調用第二系統的底層操作介面,以將從第一系統獲取的資料同步至第二系統。
如前述,在實際應用中,上層介面是通過抽象介面類別調用第一系統的底層操作介面,以將第一系統的資料遷移至第二系統。在將第一系統的資料遷移至第二系統的過程中包括將從第一系統獲取的資料同步至第二系統。此時,可以利用屬於同步資料的各上層介面,通過抽象介面類別調用第二系統的底層操作介面,以將從第一系統獲取的資料同步至第二系統。
在實際應用中,本申請實施例的伺服器可以將第二系統的標識資訊作為參數之一傳給獲取資料的上層介面,那麼上層介面再調用抽象介面類別,如果抽象介面類別中沒有對應該上層介面的第一抽象類別介面,抽象介面類別則可以根據該標識資訊去調用第二系統的相應的底層操作介面。
在本申請實施例中,對於步驟122,在第一系統的獲
取資料的底層操作介面獲取到需要遷移到第二系統的實質資料後,本申請實施例可以直接將該實質資料傳給第二系統的同步資料的儲存介面,從而可以實現兩個儲存系統內部的bucket間的遷移。比如,在調用第一系統的get()獲取到資料後,直接將該資料傳給第二系統的put(),其處理過程均在記憶體中進行,那麼該資料則直接遷移到第二系統,不會儲存到本地磁片中。在實際應用中,本申請實施例可以設定一個第一函數監控get()是否獲取到資料,如果獲取到資料,則將該資料傳給put()。在本申請實施例中,獲取到資料的底層介面傳輸給同步資料的底層操作介面後,在獲取到資料的底層介面和同步資料的底層操作之間架構了一個傳輸管道,用於傳輸兩類介面之間的資料,其每份資料傳輸後,不會在本機存放區,也不會累積到記憶體中。
在本申請的另一個較佳的實施例中,子步驟123包括:子步驟1231,對於屬於同步資料的各上層介面中的第三上層介面,以抽象介面類別中與第三上層介面對應的第二抽象類別介面作為底層操作介面以直接調用;所述第三上層介面為各系統通用的介面。
此時,將屬於同步資料的各上層介面中各系統通用的上層介面稱為第三上層介面,以抽象介面類別中與第三上層介面對應的第二抽象類別介面作為底層操作介面以直接調用。本申請實施例的伺服器可以將第二系統的標識資訊
作為參數之一傳給獲取資料的上層介面,那麼上層介面再調用抽象介面類別,如果抽象介面類別中有該上層介面對應的第二抽象類別介面,則該第二抽象類別介面可以根據該標識資訊等參數執行。該步驟與前述的步驟1221類似,在此不再贅述。
子步驟1232,對於屬於同步資料的各上層介面中的第四上層介面,通過抽象介面類別生成針對第二系統的第二介面類別,在所述第二介面類別中調用與各第四上層介面對應的底層操作介面;所述第四上層介面不為各系統通用的介面。
此時,將屬於同步資料的各上層介面中不為各系統通用的上層介面稱為第四上層介面,通過抽象介面類別生成針對第二系統的第二介面類別,在所述第二介面類別中調用與各第四上層介面對應的底層操作介面。在實際應用中,本申請實施例的伺服器可以將第二系統的標識資訊作為參數之一傳給獲取資料的上層介面,如果抽象介面類別中沒有對應該上層介面的第二抽象類別介面,那麼上層介面再調用抽象介面類別,抽象介面類別則可以根據該標識資訊去調用第二系統的相應的底層操作介面。該步驟與前述的步驟1222類似,在此不再贅述。
在本申請的另一個較佳的實施例中,在步驟120之後,還包括:步驟130,判斷將第一系統中的資料遷移至第二系統是否成功;如果失敗,則重複執行步驟120,直至重試次
數達到重試閾值或者在重試閾值內成功。
在實際應用中,在資料遷移的過程中可能會出現干擾或錯誤等,導致資料遷移不成功,所以在本申請實施例中,會判斷將將第一系統中的資料遷移至第二系統是否成功,所謂遷移成功,是指將需要遷移指令中需要進行遷移的資料全部遷移至第二系統中。具體地,可以通過判斷已經遷移的資料大小是否等於遷移指令中設定的資料大小,或者是其他現有的可用技術比較已經遷移的資料和遷移指令中設定的資料是否一致,對此本申請實施例不加以限定。
當然,判斷將第一系統中的資料遷移至第二系統是否成功可以採用多種方式,比如:可以通過監控第一系統下載成功與否的通知,以及監控第二系統上傳成功與否的通知,如果收到任意一個不成功的通知,則確認遷移失敗。當然,還有其他方式,本申請實施例不對其加以限制。
而且,在本申請實施例中,可以設置一個重試閾值,如果重試的次數超過重試閾值仍未成功遷移,則放棄執行當前遷移任務,進而可以檢查遷移不成功的原因。重試閾值可以根據需求設定,對此本申請實施例不加以限定。
在本申請的另一個較佳的實施例中,在步驟120之後,還包括:步驟140,判斷是否接收到暫停指令;如果接收到暫停指令,則進入步驟150。
在資料遷移過程中,若因為某些原因需要暫停資料遷
移,則此時可以發送暫停指令至執行遷移指令的伺服器。所以,可以判斷是否接收到暫停指令。
步驟150,暫停將第一系統的資料遷移至第二系統,並記錄暫停時刻第一系統中已遷移的資料位置。
如果接收到暫停指令,則會暫停繼續將第一系統的資料遷移至第二系統,同時,為了避免在再次開始將第一系統的資料遷移至第二系統時,又從初始情況開始,將第一系統中已經遷移至第二系統的資料再次重複遷移至第二系統,從而浪費時間,可以在暫停將第一系統的資料遷移至第二系統的同時,記錄暫停時刻第一系統中已遷移的資料位置,以便從已遷移的資料位置開始,繼續進行資料遷移。
在實際應用中,本申請實施例中,也可以調用暫停的上層介面,然後通過抽象介面類別分別調用第一系統的暫停的底層操作介面和第二系統的暫停的底層操作介面,實現遷移暫停過程。
步驟160,判斷是否接收到重啟指令;如果接收到重啟指令,則根據暫停時刻第一系統中已遷移的資料位置開始,重新進入步驟120。
在接收到暫停指令之後,可以進一步判斷判斷是否接收到重啟指令,如果接收到重啟指令,則根據暫停時刻第一系統中已遷移的資料位置開始,重新執行調用對應所述遷移任務的各上層介面,並由各上層介面通過抽象介面類別調用第一系統和第二系統的底層操作介面,以將第一系
統的資料遷移至第二系統。此時第一系統的資料是指第一系統中的尚未被遷移至第二系統中的資料。
在實際應用中,本申請實施例中,也可以調用重啟的上層介面,然後通過抽象介面類別分別調用第一系統的重啟的底層操作介面和第二系統的重啟的底層操作介面,實現遷移暫停。
在本申請的另一個較佳的實施例中,當第一系統為客戶端檔案系統時,在步驟110之前,還包括:步驟100,在客戶端中安裝應用程式,所述應用程式針對指定檔案模擬各底層操作介面。
若第一系統為客戶端檔案系統,那麼此時將客戶端檔案系統中的資料遷移至第二系統,可以理解為將客戶端檔案系統中的資料備份至第二系統。對於客戶端而言,本申請為了實現客戶端與各個系統之間是互通的,為了適應圖1B的邏輯架構,本申請可以通過在客戶端中安裝應用程式,為客戶提供服務。所以,在本申請實施例中,若第一系統為客戶端檔案系統,則首先在客戶端中安裝應用程式,所述應用程式針對指定檔案模擬各底層操作介面,如圖1B中的local下的各個底層操作介面。進而,客戶端用戶可以通過訪問應用程式,調用可編輯該應用程式對應的指定檔案的各底層操作介面。
在本申請的另一個較佳的實施例中,在步驟120之後,還包括:步驟170,監控客戶端檔案系統是否與最近一次遷移
到第二系統的資料出現變更;如果出現變更,則進入步驟180。
在實際應用中,客戶端的應用程式可能會被多個用戶多次登錄,而且在登錄過程中,可以對客戶端檔案系統中的資料進行修改,如若客戶端檔案系統中的資料被變更,則相應地需要將變更部分更新至第二系統中。所以,針對客戶端檔案系統,可以監控客戶端檔案系統是否與最近一次遷移到第二系統的資料出現變更,如果出現變更,則需要將變更更新至第二系統中,具體地,可以調用對應所述遷移任務的各上層介面,並由各上層介面通過抽象介面類別調用第一系統和第二系統的底層操作介面,以將客戶端檔案系統的變更資料同步至第二系統。
步驟180,調用對應所述遷移任務的各上層介面,並由各上層介面通過抽象介面類別調用第一系統和第二系統的底層操作介面,以將客戶端檔案系統的變更資料同步至第二系統。
在本申請的另一個較佳的實施例中,在子步驟122之後,還包括:子步驟124,調用簽名的上層介面,並由所述簽名的上層介面調用第一系統的簽名的底層操作介面,對所述資料進行簽名。
在本申請實施例中,為了保證資料遷移前後的一致性,亦即保證在執行完一次資料遷移任務,是將第一系統中的遷移資料完整的遷移至第二系統中,可以首先對第一
系統中的需要進行遷移的資料進行簽名,以標識需要遷移至第二系統的資料。具體地,可以調用簽名的上層介面,並由簽名的上層介面調用第一系統的簽名的底層操作介面,對所述資料進行簽名。可以在第一系統中對資料進行簽名,也可以在將資料移出第一系統,且尚未同步至第二系統時,對資料進行簽名,對此本申請實施例不加以限定。
進一步地,在子步驟123之後,還包括:子步驟125,調用簽名認證的上層介面,並由所簽名認證的上層介面調用第二系統的簽名認證的底層操作介面,對所述資料進行簽名驗證。
理論上,若將需要遷移至第二系統中資料進行簽名,則在資料遷移至第二系統後,可以對已遷移的資料進行簽名驗證。若簽名驗證成功,則表明已遷移至第二系統中的資料與第一系統中需要遷移至第二系統中的資料一致,而若簽名驗證不成功,例如已遷移至第二系統中的部分資料與其在第一系統中的簽名不對應等情況,則表明此時遷移失敗,可以重複執行步驟120,直至重試次數達到重試閾值或者在重試閾值內成功。
具體地,可以調用簽名認證的上層介面,並由所簽名認證的上層介面調用第二系統的簽名認證的底層操作介面,對資料進行簽名驗證。
在本申請的另一個較佳的實施例中,在步驟120之後,還包括:
步驟190,針對第一系統調用檔案列表的上層介面,並由所述調用檔案列表的上層介面通過抽象介面類別調用第一系統的底層操作介面,獲取第一系統的檔案列表。
步驟1110,針對第二系統調用檔案列表的上層介面,並由所述調用檔案列表的上層介面通過抽象介面類別調用第二系統的底層操作介面,獲取第二系統的檔案列表。
步驟1120,比較第一系統的檔案列表和第二系統的檔案列表,並將兩者之間的差異提示給客戶端。
在本申請的另一個較佳的實施例中,在子步驟121之後,還包括:子步驟126,針對第一系統調用身份驗證的上層介面,並由所述身份驗證的上層介面通過抽象介面類別調用第一系統的底層操作介面,對用戶在第一系統的身份資訊進行驗證。
子步驟127,針對第二系統調用身份驗證的上層介面,並由所述身份驗證的上層介面通過抽象介面類別調用第二系統的底層操作介面,對用戶在第二系統的身份資訊進行驗證。
在本申請實施例中,可以接收將第一系統中的資料遷移至第二系統的遷移任務,所述第一系統和第二系統為多個系統中的任意兩個系統,然後調用對應所述遷移任務的各上層介面,並由各上層介面通過抽象介面類別調用第一系統和第二系統的底層操作介面,以將第一系統的資料遷
移至第二系統。
從而實現了任意兩個資料端可以進行雙向的資料傳輸和遷移;其次,本申請所述的資料遷移技術具有良好的擴展功能,可以實現將任意的資料終端,包括尚未支援資料遷移的雲儲存產品,如百度對象儲存、金山對象儲存,與其它任意一個資料端進行資料的雙向傳輸遷移。
參照圖2,示出了本申請的一種資料遷移方法實施例的步驟流程圖,具體可以包括如下步驟:步驟210,接收將第一系統中的資料遷移至第二系統的遷移任務;所述第一系統和第二系統為多個系統中的任意兩個系統。
如圖1A中的示例,用戶可以選擇其中的任意兩個系統,將其中一個系統作為第一系統,另一個作為第二系統。
步驟220,確定屬於獲取資料的各上層介面,以及屬於同步資料的各上層介面。
步驟230,由管理組件的掃描器執行獲取元資料的上層介面,所述獲取元資料的上層介面通過抽象類別介面調用第一系統的獲取元資料的底層操作介面,從第一系統獲取所述遷移任務對應的各元資料。
如圖2C為本申請的一個資料遷移結構示意圖。其由兩大獨立的組件構成:Master和Slave。Master主要負責
掃描資料來源和任務分發,Slave負責接收任務,並執行真正的資料遷移工作。Master包括掃描器(Scanner)、分發器(Dispatcher);Slave包括接收器(Receiver)、同步器(Syncer)。在本申請實施例中,可以稱由掃描器、分發器構成的Master為管理組件,由接收器和同步器構成的Slave為工作組件。該結構既可以在單機環境運行,也支援分散式資料傳輸。在單機模式下,Master和Slave作為一個進程內的兩個組件同時提供服務,而在分散式模式下,整個集群裡面有一台伺服器中同時存在Master和Slave,其餘的伺服器中只存在Slave;或者是集群裡面有一台伺服器中只存在Master,其餘的伺服器中只存在Slave。因為Master本身並不佔用太多記憶體空間,所以Master和Slave可以共存於一個伺服器中,以節省集群中的伺服器成本。本申請實施例較佳的採樣集群的方式,即一個帶Master+Slave的伺服器和各個帶Slave的伺服器。
其中,掃描器負責遍歷獲取資料來源的元資料(metadata),並存放到佇列“Metadata Queue(元資料佇列)”裡面。Metadata作為實際儲存資料的描述型資料,只包含一些基礎資訊,如:標識資料唯一性的Key、資料量大小、時間戳記等。另外,在本申請另一個較佳的實施例中,Metadata Queue可以為阻塞佇列,阻塞佇列與普通佇列的區別在於,當佇列是空的時,從佇列中獲取資料的操作將會被阻塞,或者當佇列是滿時,往佇列裡添加
資料的操作會被阻塞。同樣,試圖往已滿的阻塞佇列中添加新資料的執行緒同樣也會被阻塞,直到其他的執行緒使佇列重新變得空閒起來,如從佇列中移除一個或者多個資料,或者完全清空佇列。則在資料遷移的過程中,首先將元資料按序存放至阻塞佇列,直至阻塞佇列已滿,然後依次將阻塞佇列中的元資料移出並同步至第二系統,每移出一個元資料則相應地可以從第一系統中提取一個元資料存入阻塞佇列,從而可以有效的均衡資料遷移的速度。
在本申請實施例中,管理組件的掃描器可以執行獲取元資料的上層介面,進而獲取元資料的上層介面可以通過抽象類別介面調用第一系統的獲取元資料的底層操作介面,從第一系統獲取當前遷移任務對應的各元資料。
分發器負責從Scanner的Metadata Queue裡面取出metadata,根據分發演算法,把metadata作為任務派送給Slave組件的接收器(Receiver)。每分發一個任務都會進行記錄,Slave完成一個任務後都會彙報給Master進行匯總,Master可以即時知道當前整個集群裡面所有Slave節點的任務數和伺服器負載情況。
其中,在單機模式下可以直接把任務分發給本機的Slave;而在分散式模式下Dispatcher的分發演算法,可以如下:如果資料小於1MB,就直接分發給本伺服器的Slave。因為對於小資料而言,通過網路分發到其它伺服器執行,所耗費的總時間還不如直接在本伺服器執行。
伺服器接收器負責接收來自Dispatcher分發的任務,存放在自己的Metadata Queue裡面,等待處理。
同步器真正執行資料傳輸的組件。它不斷地從Receiver的Metadata Queue裡面獲取要傳輸資料的metadata,放到不同的工作執行緒池裡面執行傳輸任務。
其中,工作執行緒池是一種多執行緒處理形式,處理過程中將任務添加到佇列,然後在創建執行緒後自動啟動這些任務。執行緒池執行緒都是後台執行緒。使用工作執行緒池的好處包括:減少在創建和銷毀執行緒上所花的時間以及系統資源的消耗;如不使用執行緒池,有可能造成系統創建大量執行緒而導致消耗過多系統記憶體以及需要在不同執行緒之間“過度切換”。
在本申請實施例中,工作執行緒池(Work Thread Pool)可以有兩個,一個負責處理比較小的資料,一次性可以完成整個元資料對應的檔案的傳輸。另一個則負責處理比較大的資料,例如接收比較大的元資料對應的大檔案的切片資料,對於大檔案而言,需要把所有切片傳輸完成後,才能在第二系統中完成整個大檔案的拼接還原,其中,可以預置一個閾值,若元資料小於該閾值,則由負責處理比較小的資料的工作執行緒池處理該元資料,若元資料不小於該閾值,則由負責處理比較大的資料的工作執行緒池處理該元資料。當然,工作執行緒池可以只有一個,對全部資料統一處理,例如若不對大檔案進行切片處理,對此本申請實施例不加以限定。
如圖2D為分散式模式資料遷移資料流程示意圖。其中,將雲儲存A中的資料遷移至雲儲存B,主要可以分為以下四步:
(1)Scanner掃描資料來源“雲儲存A”,獲取metadata。
(2)Dispatcher從Scanner獲取metadata,根據分發演算法派送給Slave的Receiver。
(3)Syncer從Receiver獲取metadata,開始真正的資料傳輸。從資料來源“雲儲存A”下載獲取實際資料,不經過任何中間檔案保存,直接上傳到目的資料端“雲儲存B”,實現端到端的直接傳輸。
(4)Sycner把每個傳輸結果回傳給Receiver,Receiver再彙報給Master的Dispatcher進行匯總處理。
在本申請另一個較佳的實施例中,所述管理組件在集群的一台伺服器中,所述工作組件在集群的各台伺服器中。
在本申請另一個較佳的實施例中,所述集群的各台伺服器之間採用JGroups通信協定傳輸資料。
JGroups由純Java編寫實現,是一個可靠的訊息傳播工具包。利用它可以簡單地構建起一個多節點的通信集群,各個節點間可以互相通信,進行協作。利用JGroups,用戶可以自己搭建一個對等節點網路,或者是Master-Slave的集群模式。
本申請的分散式集群,採用的是Master-Slave模式。
利用JGroups的發現協議,只要預先在每個節點配置好Master節點的IP+埠地址,然後約定好一個統一的集群名稱。先啟動Master節點後,再依次啟動各個Slave節點,這樣每個Slave節點就都能發現找到Master節點並自動加入到這個集群裡面。如果某個Slave節點退出,利用JGroups的FD(Failure detection)協議能夠自動探測到該退出的Slave節點,並把該節點的資訊從整個集群中移除。
在實際應用中,JGroups提供兩種訊息傳播機制:
(1)位元組流的訊息直傳。一個節點可以往另外一個節點傳送的位元組(byte)流資料。這種模式一般需要發送端先把要傳輸的資料序列化成byte陣列,然後在接收端再反序列化回資料。
(2)類別方法的直接RPC(Remote Procedure Call Protocol,遠端程序呼叫協議)調用。JGroups支持在一個節點直接遠端調用另外一個節點裡面某個類別的方法,就跟普通的方法調用一樣。這種方法可以避免對於訊息的序列化處理,更加方便。
因此,本申請的Dispatcher和Receiver之間的資料傳輸就是通過JGroups的RPC功能來實現的。
步驟240,由管理組件的分發器,基於各元資料生成同步任務並分發給各工作組件的接收器。
同步任務是資料遷移任務的一種,同步任務中同樣可以包括第一系統的標識資訊、用戶在第一系統的身份資
訊、待遷移資料在第一系統中的檔案資訊、第二系統的標識資訊、用戶在第二系統的身份資訊。其中的待遷移資料是指個元資料。
在本申請另一個較佳的實施例中,步驟240,包括:子步驟241,提取元資料中記錄的資料量大小。
如前述,在各元資料中可以包含資料量大小的參數,因此,可以直接從元資料中提取其中記錄的資料量大小。
子步驟242,如果元資料中記錄的資料量小於第一閾值,直接將所述元資料作為同步任務分發給管理組件所在的伺服器中的工作組件的接收器。
如果元資料中記錄的資料量小於第一閾值,則說明該元資料不會給伺服器增加過多的負載量,所以可以直接將該元資料作為同步任務分發給管理組件所在的伺服器中的工作組件的接收器。其中,第一閾值可以根據需求設定,對此本申請實施例不加以限定。
比如,如果資料小於1MB,Dispatcher就直接分發給本伺服器的Slave的Receiver。因為對於小資料而言,通過網路分發到其它伺服器執行,所耗費的總時間還不如直接在本伺服器執行。
子步驟243,如果元資料記錄的資料量不小於第一閾值,則將所述元資料作為同步任務分發給負載最小的伺服器中的工作組件的接收器。
對於分散式模式下的資料遷移,如果元資料記錄的資料量不小於第一閾值,此時為了均衡集群中各伺服器的負
載量,即讓各伺服器的負載量不會相差太大,可以將該元資料作為同步任務分發給負載最小的伺服器中的工作組件的接收器。
比如,如果資料大於等於1MB,Dispatcher就將該資料分發給其他伺服器的slave的Receiver。
在本申請另一個較佳的實施例中,步驟240,包括:子步驟241,提取元資料中記錄的資料量大小。
子步驟242,如果元資料中記錄的資料量小於第一閾值,直接將所述元資料作為同步任務分發給管理組件所在的伺服器中的工作組件的接收器。
子步驟243,如果元資料中記錄的資料量不小於第一閾值但是小於第二閾值時,則將所述元資料生成同步任務分發給負載最小的伺服器中的工作組件的接收器。
在本申請實施例中,為了避免過大的元資料在傳輸的過程中效率太低,所以可以另外設置一個第二閾值,同樣的,第二閾值可以根據需求設定,但是第二閾值必須大於第一閾值,對此本申請實施例不加以限定。
如果元資料中記錄的資料量不小於第一閾值但是小於第二閾值時,則將元資料生成同步任務分發給負載最小的伺服器中的工作組件的接收器。
子步驟244,如果元資料中記錄的資料量不小於第二閾值時,則調用對大檔案切片的上層介面,所述對大檔案切片的上層介面通過抽象介面類別調用第二系統的對大檔案切片的底層操作介面,將所述元資料對應的大檔案
切片。
而若元資料中記錄的資料量不小於第二閾值,則說明此時該元資料的資料量過大,為了保證資料遷移的速度,可以將該元資料對應的大檔案進行切片處理,將大檔案分為若干個較小的切片,相當於將元資料分為相應個數的資料切片。具體地,可以通過調用對大檔案切片的上層介面,對大檔案切片的上層介面可以通過抽象介面類別調用第二系統的對大檔案切片的底層操作介面,將所述元資料對應的大檔案切片。
其中,可以將大檔案分成若干個資料量大小相同的切片,也可以隨機切成若干個資料量大小不完全相同的切片,但是需要保證各切片的資料量小於第二閾值,若其中存在資料量不小於第二閾值的切片,則需要對該切片再次進行分切。而且,每次切片的數量可以根據需求設定,對此本申請實施例不加以限定。
子步驟245,將對所述元資料的不同切片的切片資訊生成同步任務,並分發給負載低的多個伺服器的工作組件的接收器。
在將元資料對應的大檔案切片後,則可以對該元資料的不同切片的切片資訊,亦即各切片中包含的資料,生成不同的同步任務,然後可以按照當前集群中各伺服器的負載從低到高的順序,分別將各同步任務分發給負載從低到高,對應同步任務個數的伺服器的工作組件的接收器。例如,若生成5個同步任務,則按照當前集群中各伺服器的
負載從低到高的順序,選出負載最低的5個伺服器,然後將5個同步任務分別分發到5個伺服器的工作組件的接收器,使每個伺服器的工作組件的接收器都接收到一個同步任務,且任意兩個伺服器的工作組件的接收器接收到的同步任務不為同一個同步任務。
其中,可以隨機將5個同步任務分發到5個伺服器的工作組件的接收器,也可以按照一定順序,例如按照同步任務的資料量從大到小,伺服器的負載從低到高的對應關係,將5個同步任務分發到5個伺服器的工作組件的接收器,對此本申請實施例不加以限定。
步驟250,由工作組件的接收器根據接收到同步任務,執行獲取實際資料的上層介面,所述獲取實際資料的上層介面通過抽象類別介面調用第一系統的獲取實際資料的底層獲取介面,從第一系統獲取所述遷移任務的實際資料。
在本申請實施例中,同步任務中包含了待遷移的元資料第一系統中的檔案資訊,但是同步任務中並不包含待遷移的元資料,亦即當前同步任務所需要遷移的實際資料。同步任務所需要遷移的實際資料仍儲存於第一系統中。所以,需要從第一系統中獲取同步任務所需要遷移的實際資料,具體地,可以由負責執行該同步任務的伺服器的工作組件的接收器在收到同步任務後,執行獲取實際資料的上層介面,獲取實際資料的上層介面即可以通過抽象類別介面調用第一系統的獲取實際資料的底層獲取介面,從第一
系統獲取遷移任務的實際資料,亦即同步任務所需要遷移的實際資料。
步驟260,由工作組件的同步器執行同步資料的各上層介面,所述同步資料的各上層介面通過抽象介面類別調用第二系統的底層操作介面,將所述實際資料同步至第二系統。
在獲取了同步任務對用需要遷移的實際資料之後,即可以將實際資料同步至第二系統,具體地,可以由工作組件的同步器執行同步資料的各上層介面,同步資料的各上層介面即可以通過抽象介面類別調用第二系統的底層操作介面,將所述實際資料同步至第二系統。
在本申請另一個較佳的實施例中,步驟260,包括:子步驟261,由工作組件的同步器根據限速指令,調用與限速指令相應的執行緒執行同步資料的各上層介面,所述同步資料的各上層介面通過抽象介面類別調用第二系統的底層操作介面,將所述實際資料同步至第二系統。
為了調節資料遷移過程中的資料傳輸速度,在本申請實施例中,可以輸入限速指令,其中包含需要可以接受的資料遷移過程中的資料傳輸速度,其可以為具體的限速數值,也可以為一個速度範圍,進而可以由工作組件的同步器根據限速指令,調用與限速指令相應的執行緒執行同步資料的各上層介面,同步資料的各上層介面可以通過抽象介面類別調用第二系統的底層操作介面,將所述實際資料
按照限速數值的速度或者是以速度範圍內的資料傳輸速遞將實際資料同步至第二系統。其中,與限速指令相應的執行緒可以存在於前述的工作執行緒池中,也可以為另外創建的一個執行緒,對此本申請實施例不加以限定。
在本申請實施例中,可以接收將第一系統中的資料遷移至第二系統的遷移任務,所述第一系統和第二系統為多個系統中的任意兩個系統,然後調用對應所述遷移任務的各上層介面,並由各上層介面通過抽象介面類別調用第一系統和第二系統的底層操作介面,以將第一系統的資料遷移至第二系統。
從而實現了任意兩個資料端可以進行雙向的資料傳輸和遷移,包括資料端內部的bucket間遷移。其次,本申請所述的資料遷移技術具有良好的擴展功能,可以實現將任意的資料終端,包括尚未支援資料遷移的雲儲存產品,如百度對象儲存、金山對象儲存,與其它任意一個資料端進行資料的雙向傳輸遷移。
另外,本申請可以支援分散式資料傳輸,可以極大提升資料遷移的效率。比以第一系統和第二系統為兩個地區的OSS為例,從一個地區OSS的一個bucket的資料傳輸到另一個地區的bucket中,測試方法採用普通網路路徑,先從一個bucket下載出來,通過內網路鏈路,再上傳儲存到另外一個bucket。其傳輸採用分散式集群環境:阿里雲杭州ECS(Elastic Compute Service,雲伺服器),單台伺服器配置為4核CPU、4G記憶體、500Mbps內網
頻寬,總共5個節點。其測試示例圖下表(一):
其中,效率一列單位是MB/s(兆位元每秒)。
可以看到,隨著資料規模的增加,本申請的分散式傳輸的效率優勢更加明顯,跟集群的節點規模成正比例關係。
需要說明的是,對於方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領域技術人員應該知悉,本申請實施例並不受所描述的動作順序的限制,因為依據本申請實施例,某些步驟可以採用其他順序或者同時進行。其次,本領域技術人員也應該知悉,說明書中所描述的實施例均屬於較佳實施例,所涉及的動作並不一定是本申請實施例所必須的。
參照圖3,示出了本申請的一種資料遷移裝置實施例的結構框圖,具體可以包括如下模組:任務接收模組310,適於接收將第一系統中的資料遷移至第二系統的遷移任務;所述第一系統和第二系統為多
個系統中的任意兩個系統。
遷移模組320,適於調用對應所述遷移任務的各上層介面,並由各上層介面通過抽象介面類別調用第一系統和第二系統的底層操作介面,以將第一系統的資料遷移至第二系統。
在本申請另一個較佳的實施例中,所述遷移模組320,包括:上層介面確定子模組,適於確定屬於獲取資料的各上層介面,以及屬於同步資料的各上層介面。
資料獲取子模組,適於對於屬於獲取資料的各上層介面,通過抽象介面類別調用第一系統的底層操作介面,以從第一系統獲取資料。
資料同步子模組,適於對於屬於同步資料的各上層介面,通過抽象介面類別調用第二系統的底層操作介面,以將從第一系統獲取的資料同步至第二系統。
在本申請另一個較佳的實施例中,所述資料獲取子模組,包括:第一底層操作介面確定子模組,適於對於屬於獲取資料的各上層介面中的第一上層介面,以抽象介面類別中與第一上層介面對應的第一抽象類別介面作為底層操作介面以直接調用;所述第一上層介面為各系統通用的介面。
第一底層操作介面調用子模組,適於對於屬於獲取資料的各上層介面中的第二上層介面,通過抽象介面類
別生成針對第一系統的第一介面類別,在所述第一介面類別中調用與各第二上層介面對應的底層操作介面;所述第二上層介面不為各系統通用的介面。
在本申請另一個較佳的實施例中,所述資料同步子模組,包括:第二底層操作介面確定子模組,適於對於屬於同步資料的各上層介面中的第三上層介面,以抽象介面類別中與第三上層介面對應的第二抽象類別介面作為底層操作介面以直接調用;所述第三上層介面為各系統通用的介面。
第二底層操作介面調用子模組,適於對於屬於同步資料的各上層介面中的第四上層介面,通過抽象介面類別生成針對第二系統的第二介面類別,在所述第二介面類別中調用與各第四上層介面對應的底層操作介面;所述第四上層介面不為各系統通用的介面。
在本申請另一個較佳的實施例中,在所述遷移模組320之後,還包括:遷移判斷模組,適於判斷將第一系統中的資料遷移至第二系統是否成功;如果失敗,則重複執行遷移模組,直至重試次數達到重試閾值或者在重試閾值內成功。
在本申請另一個較佳的實施例中,在所述遷移模組320之後,還包括:暫停指令判斷模組,適於判斷是否接收到暫停指令;如果接收到暫停指令,則進入暫停記錄子模組。
暫停記錄模組,適於暫停將第一系統的資料遷移至第二系統,並記錄暫停時刻第一系統中已遷移的資料位置。
則進一步的,在所述暫停指令判斷模組之後,還包括:重啟指令判斷模組,適於判斷是否接收到重啟指令;如果接收到重啟指令,則根據暫停時刻第一系統中已遷移的資料位置開始,重新進入遷移模組。
在本申請另一個較佳的實施例中,當第一系統為客戶端檔案系統時,在任務接收模組310之前,還包括:應用程式安裝模組300,適於在客戶端中安裝應用程式,所述應用程式針對指定檔案模擬各底層操作介面。
在本申請另一個較佳的實施例中,在所述遷移模組320之後,還包括:資料監控模組,適於監控客戶端檔案系統是否與最近一次遷移到第二系統的資料出現變更;如果出現變更,則進入變更資料同步模組。
變更資料同步模組,適於調用對應所述遷移任務的各上層介面,並由各上層介面通過抽象介面類別調用第一系統和第二系統的底層操作介面,以將客戶端檔案系統的變更資料同步至第二系統。
在本申請另一個較佳的實施例中,在所述資料獲取子模組之後,還包括:簽名子模組,適於調用簽名的上層介面,並由所述簽名的上層介面調用第一系統的簽名的底層操作介面,
對所述資料進行簽名。
進一步的,在所述資料同步子模組之後,還包括:簽名驗證子模組,適於調用簽名認證的上層介面,並由所簽名認證的上層介面調用第二系統的簽名認證的底層操作介面,對所述資料進行簽名驗證。
在本申請另一個較佳的實施例中,在所述遷移模組320之後,還包括:第一檔案列表獲取模組,適於針對第一系統調用檔案列表的上層介面,並由所述調用檔案列表的上層介面通過抽象介面類別調用第一系統的底層操作介面,獲取第一系統的檔案列表。
第二檔案列表獲取模組,適於針對第二系統調用檔案列表的上層介面,並由所述調用檔案列表的上層介面通過抽象介面類別調用第二系統的底層操作介面,獲取第二系統的檔案列表。
差異提示模組,適於比較第一系統的檔案列表和第二系統的檔案列表,並將兩者之間的差異提示給客戶端。
在本申請另一個較佳的實施例中,在所述上層介面確定子模組之後,還包括:第一身份驗證模組,適於針對第一系統調用身份驗證的上層介面,並由所述身份驗證的上層介面通過抽象介面類別調用第一系統的底層操作介面,對用戶在第一系統的身份資訊進行驗證。
第二身份驗證模組,適於針對第二系統調用身份
驗證的上層介面,並由所述身份驗證的上層介面通過抽象介面類別調用第二系統的底層操作介面,對用戶在第二系統的身份資訊進行驗證。
本申請實施例可以接收將第一系統中的資料遷移至第二系統的遷移任務;所述第一系統和第二系統為多個系統中的任意兩個系統,然後調用對應所述遷移任務的各上層介面,並由各上層介面通過抽象介面類別調用第一系統和第二系統的底層操作介面,以將第一系統的資料遷移至第二系統。
首先,實現了任意兩個資料端可以進行雙向的資料傳輸和遷移,包括資料端內部的bucket間遷移。
其次,本申請所述的資料遷移技術具有良好的擴展功能,可以實現將任意的資料終端,包括尚未支援資料遷移的雲儲存產品,如百度對象儲存、金山對象儲存,與其它任意一個資料端進行資料的雙向傳輸遷移。
參照圖4,示出了本申請的一種資料遷移裝置實施例的結構框圖,具體可以包括如下模組:任務接收模組410,適於接收將第一系統中的資料遷移至第二系統的遷移任務;所述第一系統和第二系統為多個系統中的任意兩個系統。
遷移模組420,適於調用對應所述遷移任務的各上層介面,並由各上層介面通過抽象介面類別調用第一系統和
第二系統的底層操作介面,以將第一系統的資料遷移至第二系統。具體包括:上層介面確定子模組421,適於確定屬於獲取資料的各上層介面,以及屬於同步資料的各上層介面。
資料獲取子模組422,適於對於屬於獲取資料的各上層介面,通過抽象介面類別調用第一系統的底層操作介面,以從第一系統獲取資料。具體包括:元資料獲取子模組4221,適於由管理組件的掃描器執行獲取元資料的上層介面,所述獲取元資料的上層介面通過抽象類別介面調用第一系統的獲取元資料的底層操作介面,從第一系統獲取所述遷移任務對應的各元資料。
任務分發子模組4222,適於由管理組件的分發器,基於各元資料生成同步任務並分發給各工作組件的接收器。
在本申請另一個較佳的實施例中,所述任務分發子模組4222,包括:資料量大小提取子模組,適於提取元資料中記錄的資料量大小。
第一元資料分發子模組,適於如果元資料中記錄的資料量小於第一閾值,直接將所述元資料作為同步任務分發給管理組件所在的伺服器中的工作組件的接收器。
第二元資料分發子模組,適於如果元資料記錄的資料量不小於第一閾值,則將所述元資料作為同步任務分
發給負載最小的伺服器中的工作組件的接收器。
在本申請另一個較佳的實施例中,所述任務分發子模組4222,包括:資料量大小提取子模組,適於提取元資料中記錄的資料量大小。
第一元資料分發子模組,適於如果元資料中記錄的資料量小於第一閾值,直接將所述元資料作為同步任務分發給管理組件所在的伺服器中的工作組件的接收器。
第三元資料分發子模組,適於如果元資料中記錄的資料量不小於第一閾值但是小於第二閾值時,則將所述元資料生成同步任務分發給負載最小的伺服器中的工作組件的接收器。
元資料切分子模組,適於如果元資料中記錄的資料量不小於第二閾值時,則調用對大檔案切片的上層介面,所述對大檔案切片的上層介面通過抽象介面類別調用第二系統的對大檔案切片的底層操作介面,將所述元資料對應的大檔案切片。
將對所述元資料的不同切片的切片資訊生成同步任務,並分發給負載低的多個伺服器的工作組件的接收器。
實際資料獲取子模組4223,適於由工作組件的接收器根據接收到同步任務,執行獲取實際資料的上層介面,所述獲取實際資料的上層介面通過抽象類別介面調用第一系統的獲取實際資料的底層獲取介面,從第一系統獲
取所述遷移任務的實際資料。
資料同步子模組423,適於對於屬於同步資料的各上層介面,通過抽象介面類別調用第二系統的底層操作介面,以將從第一系統獲取的資料同步至第二系統。具體包括:實際資料同步子模組4231,適於由工作組件的同步器執行同步資料的各上層介面,所述同步資料的各上層介面通過抽象介面類別調用第二系統的底層操作介面,將所述實際資料同步至第二系統。
在本申請另一個較佳的實施例中,所述實際資料同步子模組4231,包括:第一實際資料同步子模組,適於由工作組件的同步器根據限速指令,調用與限速指令相應的執行緒執行同步資料的各上層介面,所述同步資料的各上層介面通過抽象介面類別調用第二系統的底層操作介面,將所述實際資料同步至第二系統。
在本申請實施例中,可以接收將第一系統中的資料遷移至第二系統的遷移任務,所述第一系統和第二系統為多個系統中的任意兩個系統,然後調用對應所述遷移任務的各上層介面,並由各上層介面通過抽象介面類別調用第一系統和第二系統的底層操作介面,以將第一系統的資料遷移至第二系統。
從而實現了任意兩個資料端可以進行雙向的資料傳輸和遷移,包括資料端內部的bucket間遷移。其次,本申
請所述的資料遷移技術具有良好的擴展功能,可以實現將任意的資料終端,包括尚未支援資料遷移的雲儲存產品,如百度對象儲存、金山對象儲存,與其它任意一個資料端進行資料的雙向傳輸遷移。
另外,本申請同時支援單機資料傳輸以及分散式資料傳輸,可以極大提升資料遷移的效率。
對於裝置實施例而言,由於其與方法實施例基本相似,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。
本說明書中的各個實施例均採用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。
本領域內的技術人員應明白,本申請實施例的實施例可提供為方法、裝置、或電腦程式產品。因此,本申請實施例可採用完全硬體實施例、完全軟體實施例、或結合軟體和硬體方面的實施例的形式。而且,本申請實施例可採用在一個或多個其中包含有電腦可用程式碼的電腦可用同步媒體(包括但不限於磁片同步器、CD-ROM、光學同步器等)上實施的電腦程式產品的形式。
在一個典型的配置中,所述電腦設備包括一個或多個處理器(CPU)、輸入/輸出介面、網路介面和記憶體。記憶體可能包括電腦可讀媒體中的非永久性同步器,隨機存取同步器(RAM)和/或非易失性記憶體等形式,如唯讀同步器(ROM)或快閃記憶體(flash RAM)。記憶體是電腦可讀
媒體的示例。電腦可讀媒體包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現資訊同步。資訊可以是電腦可讀指令、資料結構、程式的模組或其他資料。電腦的同步媒體的例子包括,但不限於相變記憶體(PRAM)、靜態隨機存取同步器(SRAM)、動態隨機存取同步器(DRAM)、其他類型的隨機存取同步器(RAM)、唯讀同步器(ROM)、電可擦除可程式設計唯讀同步器(EEPROM)、快閃記憶體或其他記憶體技術、唯讀光碟唯讀同步器(CD-ROM)、數位多功能光碟(DVD)或其他光學同步、磁盒式磁帶,磁帶磁片同步或其他磁性同步設備或任何其他非傳輸媒體,可用於同步可以被計算設備訪問的資訊。按照本文中的界定,電腦可讀媒體不包括非持續性的電腦可讀媒體(transitory media),如調製的資料信號和載波。
本申請實施例是參照根據本申請實施例的方法、終端設備(系統)、和電腦程式產品的流程圖和/或方框圖來描述的。應理解可由電腦程式指令實現流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合。可提供這些電腦程式指令到通用電腦、專用電腦、嵌入式處理機或其他可程式設計資料處理終端設備的處理器以產生一個伺服器,使得通過電腦或其他可程式設計資料處理終端設備的處理器執行的指令產生用於實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些電腦程式指令也可同步在能引導電腦或其他可程式設計資料處理終端設備以特定方式工作的電腦可讀同步器中,使得同步在該電腦可讀同步器中的指令產生包括指令裝置的製造品,該指令裝置實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些電腦程式指令也可裝載到電腦或其他可程式設計資料處理終端設備上,使得在電腦或其他可程式設計終端設備上執行一系列操作步驟以產生電腦實現的處理,從而在電腦或其他可程式設計終端設備上執行的指令提供用於實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
儘管已描述了本申請實施例的較佳實施例,但本領域內的技術人員一旦得知了基本創造性概念,則可對這些實施例做出另外的變更和修改。所以,所附申請專利範圍意欲解釋為包括較佳實施例以及落入本申請實施例範圍的所有變更和修改。
最後,還需要說明的是,在本文中,諸如第一和第二等之類的關係術語僅僅用來將一個實體或者操作與另一個實體或操作區分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關係或者順序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者終端設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或
者終端設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,並不排除在包括所述要素的過程、方法、物品或者終端設備中還存在另外的相同要素。
以上對本申請所提供的一種資料遷移方法和一種資料遷移裝置,進行了詳細介紹,本文中應用了具體個例對本申請的原理及實施方式進行了闡述,以上實施例的說明只是用於幫助理解本申請的方法及其核心思想;同時,對於本領域的一般技術人員,依據本申請的思想,在具體實施方式及應用範圍上均會有改變之處,綜上所述,本說明書內容不應理解為對本申請的限制。
Claims (26)
- 一種資料遷移方法,其特徵在於,包括:管理組件接收由客戶端發送的將第一系統中的資料遷移至第二系統的遷移任務;調用對應該遷移任務的各上層介面,並由各上層介面通過抽象介面類別調用第一系統和第二系統的底層操作介面,以將第一系統的資料遷移至第二系統,此步驟包括:確定屬於獲取資料的各上層介面,以及屬於同步資料的各上層介面;由該管理組件的掃描器執行獲取元資料的上層介面,該獲取元資料的上層介面通過抽象類別介面調用第一系統的獲取元資料的底層操作介面,從第一系統獲取該遷移任務對應的各元資料;由該管理組件的分發器,基於各元資料生成同步任務並分發給各工作組件的接收器;由該工作組件的接收器根據接收到同步任務,執行獲取實際資料的上層介面,該獲取實際資料的上層介面通過抽象類別介面調用第一系統的獲取實際資料的底層獲取介面,從第一系統獲取該遷移任務的實際資料;由該工作組件的同步器執行該同步資料的各上層介面,該同步資料的各上層介面通過抽象介面類別調用第二系統的底層操作介面,將該實際資料同步至第二系統,其中,該管理組件在集群的一台伺服器中,該工作組件在集群的各台伺服器中。
- 根據申請專利範圍第1項所述的方法,其中,所述由該管理組件的分發器,基於各元資料生成同步任務並分發給各工作組件的接收器的步驟,包括:提取元資料中記錄的資料量大小;如果該元資料中記錄的資料量小於第一閾值,直接將該元資料作為同步任務分發給該管理組件所在的伺服器中的工作組件的接收器;如果該元資料記錄的資料量不小於第一閾值,則將該元資料作為同步任務分發給負載最小的伺服器中的工作組件的接收器。
- 根據申請專利範圍第1項所述的方法,其中,所述由該管理組件的分發器,基於各元資料生成同步任務並分發給各工作組件的接收器的步驟,包括:提取元資料中記錄的資料量大小;如果該元資料中記錄的資料量小於第一閾值,直接將該元資料作為同步任務分發給該管理組件所在的伺服器中的工作組件的接收器;如果該元資料中記錄的資料量不小於第一閾值但是小於第二閾值時,則將該元資料生成同步任務分發給負載最小的伺服器中的工作組件的接收器;如果該元資料中記錄的資料量不小於第二閾值時,則調用對大檔案切片的上層介面,該對大檔案切片的上層介面通過抽象介面類別調用第二系統的對大檔案切片的底層操作介面,將該元資料對應的大檔案切片; 將對該元資料的不同切片的切片資訊生成同步任務,並分發給負載低的多個伺服器的工作組件的接收器。
- 根據申請專利範圍第2項所述的方法,其中,該集群的各台伺服器之間採用JGroups通信協定傳輸資料。
- 根據申請專利範圍第1項所述的方法,其中,所述由該工作組件的同步器執行該同步資料的各上層介面,該同步資料的各上層介面通過抽象介面類別調用第二系統的底層操作介面,將該實際資料同步至第二系統的步驟,包括:由該工作組件的同步器根據限速指令,調用與限速指令相應的執行緒執行該同步資料的各上層介面,該同步資料的各上層介面通過抽象介面類別調用第二系統的底層操作介面,將該實際資料同步至第二系統。
- 根據申請專利範圍第1項所述的方法,其中,調用對應該遷移任務的各上層介面,並由各上層介面通過抽象介面類別調用第一系統和第二系統的底層操作介面,以將第一系統的資料遷移至第二系統的步驟之後,還包括:判斷將第一系統中的資料遷移至第二系統是否成功;如果失敗,則重複執行調用對應該遷移任務的各上層介面,並由各上層介面通過抽象介面類別調用第一系統和第二系統的底層操作介面,以將第一系統的資料遷移至第二系統的步驟,直至重試次數達到重試閾值或者在重試閾值內成功。
- 根據申請專利範圍第1項所述的方法,其中,在調 用對應該遷移任務的各上層介面,並由各上層介面通過抽象介面類別調用第一系統和第二系統的底層操作介面,以將第一系統的資料遷移至第二系統的過程中,還包括:判斷是否接收到暫停指令;如果接收到該暫停指令,則暫停將第一系統的資料遷移至第二系統,並記錄暫停時刻第一系統中已遷移的資料位置;則進一步的,在暫停將第一系統的資料遷移至第二系統之後,還包括:判斷是否接收到重啟指令;如果接收到該重啟指令,則根據暫停時刻第一系統中已遷移的資料位置開始,重新調用對應該遷移任務的各上層介面,通過抽象介面類別調用第一系統和第二系統的底層操作介面,以將第一系統的資料遷移至第二系統的步驟。
- 根據申請專利範圍第1項所述的方法,其中,當第一系統為客戶端檔案系統時,在接收將第一系統中的資料遷移至第二系統的遷移任務的步驟之前,還包括:在該客戶端中安裝應用程式,該應用程式針對指定檔案模擬各底層操作介面。
- 根據申請專利範圍第8項所述的方法,其中,所述調用對應該遷移任務的各上層介面,並由各上層介面通過抽象介面類別調用第一系統和第二系統的底層操作介面,以將第一系統的資料遷移至第二系統的步驟之後,還包 括:監控該客戶端檔案系統是否與最近一次遷移到第二系統的資料出現變更;如果出現變更,則調用對應該遷移任務的各上層介面,並由各上層介面通過抽象介面類別調用第一系統和第二系統的底層操作介面,以將該客戶端檔案系統的變更資料同步至第二系統。
- 根據申請專利範圍第1項所述的方法,其中,所述從第一系統獲取該遷移任務的實際資料的步驟之後,還包括:調用簽名的上層介面,並由該簽名的上層介面調用第一系統的簽名的底層操作介面,對該實際資料進行簽名;進一步的,所述將該實際資料同步至第二系統的步驟之後,還包括:調用簽名認證的上層介面,並由所簽名認證的上層介面調用第二系統的簽名認證的底層操作介面,對該實際資料進行簽名驗證。
- 根據申請專利範圍第1項所述的方法,其中,在調用對應該遷移任務的各上層介面,並由各上層介面通過抽象介面類別調用第一系統和第二系統的底層操作介面,以將第一系統的資料遷移至第二系統的步驟之後,還包括:針對第一系統調用檔案列表的上層介面,並由所述調用該檔案列表的上層介面通過抽象介面類別調用第一系統 的底層操作介面,獲取第一系統的檔案列表;針對第二系統調用該檔案列表的上層介面,並由所述調用該檔案列表的上層介面通過抽象介面類別調用第二系統的底層操作介面,獲取第二系統的檔案列表;比較所獲取的該第一系統的檔案列表和該第二系統的檔案列表,並將兩者之間的差異提示給該客戶端。
- 根據申請專利範圍第1項所述的方法,其中,該遷移任務包括第一系統的標識資訊、用戶在第一系統的身份資訊、待遷移資料在第一系統中的檔案資訊、第二系統的標識資訊、用戶在第二系統的身份資訊。
- 根據申請專利範圍第12項所述的方法,其中,在所述確定屬於獲取資料的各上層介面,以及屬於同步資料的各上層介面的步驟之後,還包括:針對第一系統調用身份驗證的上層介面,並由該身份驗證的上層介面通過抽象介面類別調用第一系統的底層操作介面,對用戶在第一系統的身份資訊進行驗證;針對第二系統調用該身份驗證的上層介面,並由該身份驗證的上層介面通過抽象介面類別調用第二系統的底層操作介面,對用戶在第二系統的身份資訊進行驗證。
- 一種資料遷移裝置,其特徵在於,包括:任務接收模組,適於由管理組件接收由客戶端發送的將第一系統中的資料遷移至第二系統的遷移任務;遷移模組,適於調用對應該遷移任務的各上層介面,並由各上層介面通過抽象介面類別調用第一系統和第二系 統的底層操作介面,以將第一系統的資料遷移至第二系統,此模組包括:上層介面確定子模組,適於確定屬於該獲取資料的各上層介面,以及屬於該同步資料的各上層介面;資料獲取子模組,適於對於屬於該獲取資料的各上層介面,通過抽象介面類別調用第一系統的底層操作介面,以從第一系統獲取資料,此模組包括:元資料獲取子模組,適於由該管理組件的掃描器執行獲取元資料的上層介面,該獲取元資料的上層介面通過抽象類別介面調用第一系統的獲取元資料的底層操作介面,從第一系統獲取該遷移任務對應的各元資料;任務分發子模組,適於由該管理組件的分發器,基於各元資料生成同步任務並分發給各工作組件的接收器;實際資料獲取子模組,適於由該工作組件的接收器根據接收到同步任務,執行獲取實際資料的上層介面,該獲取實際資料的上層介面通過抽象類別介面調用第一系統的獲取實際資料的底層獲取介面,從第一系統獲取該遷移任務的實際資料;資料同步子模組,適於對於屬於該同步資料的各上層介面,通過抽象介面類別調用第二系統的底層操作介面,以將從第一系統獲取的資料同步至第二系統,此模組包括:實際資料同步子模組,適於由該工作組件的 同步器執行該同步資料的各上層介面,該同步資料的各上層介面通過抽象介面類別調用第二系統的底層操作介面,將該實際資料同步至第二系統,其中,該管理組件在集群的一台伺服器中,該工作組件在集群的各台伺服器中。
- 根據申請專利範圍第14項所述的裝置,其中,該任務分發子模組,包括:資料量大小提取子模組,適於提取元資料中記錄的資料量大小;第一元資料分發子模組,適於如果該元資料中記錄的資料量小於第一閾值,直接將該元資料作為同步任務分發給該管理組件所在的伺服器中的工作組件的接收器;第二元資料分發子模組,適於如果該元資料記錄的資料量不小於第一閾值,則將該元資料作為同步任務分發給負載最小的伺服器中的工作組件的接收器。
- 根據申請專利範圍第14項所述的裝置,其中,該任務分發子模組,包括:資料量大小提取子模組,適於提取元資料中記錄的資料量大小;第一元資料分發子模組,適於如果該元資料中記錄的資料量小於第一閾值,直接將該元資料作為同步任務分發給該管理組件所在的伺服器中的工作組件的接收器;第三元資料分發子模組,適於如果該元資料中記錄的資料量不小於第一閾值但是小於第二閾值時,則將該元資 料生成同步任務分發給負載最小的伺服器中的工作組件的接收器;元資料切分子模組,適於如果該元資料中記錄的資料量不小於第二閾值時,則調用對大檔案切片的上層介面,該對大檔案切片的上層介面通過抽象介面類別調用第二系統的對大檔案切片的底層操作介面,將該元資料對應的大檔案切片;將對該元資料的不同切片的切片資訊生成同步任務,並分發給負載低的多個伺服器的工作組件的接收器。
- 根據申請專利範圍第15項所述的裝置,其中,該集群的各台伺服器之間採用JGroups通信協定傳輸資料。
- 根據申請專利範圍第14項所述的裝置,其中,該實際資料同步子模組,包括:第一實際資料同步子模組,適於由該工作組件的同步器根據限速指令,調用與限速指令相應的執行緒執行該同步資料的各上層介面,該同步資料的各上層介面通過抽象介面類別調用第二系統的底層操作介面,將該實際資料同步至第二系統。
- 根據申請專利範圍第14項所述的裝置,其中,在該遷移模組之後,還包括:遷移判斷模組,適於判斷將第一系統中的資料遷移至第二系統是否成功;如果失敗,則重複執行該遷移模組,直至重試次數達到重試閾值或者在重試閾值內成功。
- 根據申請專利範圍第14項所述的裝置,其中,在 該遷移模組之後,還包括:暫停指令判斷模組,適於判斷是否接收到暫停指令;如果接收到該暫停指令,則進入暫停記錄子模組;暫停記錄模組,適於暫停將第一系統的資料遷移至第二系統,並記錄暫停時刻第一系統中已遷移的資料位置;則進一步的,在該暫停指令判斷模組之後,還包括:重啟指令判斷模組,適於判斷是否接收到重啟指令;如果接收到該重啟指令,則根據暫停時刻第一系統中已遷移的資料位置開始,重新進入該遷移模組。
- 根據申請專利範圍第14項所述的裝置,其中,當第一系統為客戶端檔案系統時,在該任務接收模組之前,還包括:應用程式安裝模組,適於在該客戶端中安裝應用程式,該應用程式針對指定檔案模擬各底層操作介面。
- 根據申請專利範圍第21項所述的裝置,其中,在該遷移模組之後,還包括:資料監控模組,適於監控該客戶端檔案系統是否與最近一次遷移到第二系統的資料出現變更;如果出現變更,則進入變更資料同步模組;變更資料同步模組,適於調用對應該遷移任務的各上層介面,並由各上層介面通過抽象介面類別調用第一系統和第二系統的底層操作介面,以將該客戶端檔案系統的變更資料同步至第二系統。
- 根據申請專利範圍第14項所述的裝置,其中,在 該資料獲取子模組之後,還包括:簽名子模組,適於調用簽名的上層介面,並由該簽名的上層介面調用第一系統的簽名的底層操作介面,對該從第一系統獲取的資料進行簽名;進一步的,在該資料同步子模組之後,還包括:簽名驗證子模組,適於調用簽名認證的上層介面,並由所簽名認證的上層介面調用第二系統的簽名認證的底層操作介面,對該從第一系統獲取的資料進行簽名驗證。
- 根據申請專利範圍第14項所述的裝置,其中,在該遷移模組之後,還包括:第一檔案列表獲取模組,適於針對第一系統調用檔案列表的上層介面,並由所述調用該檔案列表的上層介面通過抽象介面類別調用第一系統的底層操作介面,獲取第一系統的檔案列表;第二檔案列表獲取模組,適於針對第二系統調用該檔案列表的上層介面,並由所述調用該檔案列表的上層介面通過抽象介面類別調用第二系統的底層操作介面,獲取第二系統的檔案列表;差異提示模組,適於比較所獲取的該第一系統的檔案列表和該第二系統的檔案列表,並將兩者之間的差異提示給該客戶端。
- 根據申請專利範圍第14項所述的裝置,其中,該遷移任務包括第一系統的標識資訊、用戶在第一系統的身份資訊、待遷移資料在第一系統中的檔案資訊、第二系統 的標識資訊、用戶在第二系統的身份資訊。
- 根據申請專利範圍第25項所述的裝置,其中,在該上層介面確定子模組之後,還包括:第一身份驗證模組,適於針對第一系統調用身份驗證的上層介面,並由該身份驗證的上層介面通過抽象介面類別調用第一系統的底層操作介面,對用戶在第一系統的身份資訊進行驗證;第二身份驗證模組,適於針對第二系統調用該身份驗證的上層介面,並由該身份驗證的上層介面通過抽象介面類別調用第二系統的底層操作介面,對用戶在第二系統的身份資訊進行驗證。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610202889.0 | 2016-03-31 | ||
CN201610202889.0A CN107291750B (zh) | 2016-03-31 | 2016-03-31 | 一种数据迁移方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201741901A TW201741901A (zh) | 2017-12-01 |
TWI739804B true TWI739804B (zh) | 2021-09-21 |
Family
ID=59963473
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106105966A TWI739804B (zh) | 2016-03-31 | 2017-02-22 | 資料遷移方法和裝置 |
Country Status (4)
Country | Link |
---|---|
US (3) | US11354283B2 (zh) |
CN (1) | CN107291750B (zh) |
TW (1) | TWI739804B (zh) |
WO (1) | WO2017167100A1 (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107291750B (zh) | 2016-03-31 | 2020-11-06 | 阿里巴巴集团控股有限公司 | 一种数据迁移方法和装置 |
CN108021647B (zh) * | 2017-11-30 | 2020-10-16 | 苏州浪潮智能科技有限公司 | 一种文件迁移方法、系统、介质及设备 |
CN109358899B (zh) * | 2018-12-05 | 2021-07-30 | 江苏风云科技服务有限公司 | 共享货架中资源版本的更新方法及装置 |
CN112019585A (zh) * | 2019-05-31 | 2020-12-01 | 北京车和家信息技术有限公司 | 云存储管理方法、系统、电子设备及计算机可读存储介质 |
CN112073811B (zh) * | 2019-06-10 | 2023-02-28 | 海信视像科技股份有限公司 | 一种文件传输调度方法及显示设备 |
CN110413418B (zh) * | 2019-06-25 | 2022-04-05 | 北京三快在线科技有限公司 | 缓存同步装置及方法,缓存同步系统、电子设备 |
CN111459415B (zh) * | 2020-04-15 | 2023-05-23 | 腾讯云计算(长沙)有限责任公司 | 跨云数据迁移方法、装置、设备及存储介质 |
CA3214827A1 (en) * | 2020-05-29 | 2022-11-28 | Pollen, Inc. | Rerouting resources for management platforms |
US11954532B2 (en) | 2020-05-29 | 2024-04-09 | Pollen, Inc. | Reconciling resource management platforms |
CN112905984A (zh) * | 2021-03-09 | 2021-06-04 | 浙江网商银行股份有限公司 | 权限控制方法、装置及电子设备 |
CN113312147B (zh) * | 2021-06-11 | 2022-12-30 | 中国科学技术大学 | 一种对象存储跨集群海量数据迁移方法及系统 |
CN114579180B (zh) * | 2022-04-28 | 2022-08-09 | 北京聚通达科技股份有限公司 | 数据迁移的方法、装置、电子设备及存储介质 |
CN115134349B (zh) * | 2022-06-06 | 2024-02-23 | 蚂蚁区块链科技(上海)有限公司 | 一种执行传输任务的方法、装置、介质及设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7448022B1 (en) * | 2004-02-10 | 2008-11-04 | Prasad Ram | Dynamic software composition in a component-based software system |
US7624283B2 (en) * | 2006-02-13 | 2009-11-24 | International Business Machines Corporation | Protocol for trusted platform module recovery through context checkpointing |
US20100274825A1 (en) * | 2009-04-23 | 2010-10-28 | Hitachi, Ltd. | Data migration system and data migration method |
EP1012691B1 (en) * | 1997-09-16 | 2011-08-31 | Microsoft Corporation | Encrypting file system and method |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0011954D0 (en) * | 2000-05-17 | 2000-07-05 | Univ Surrey | Protocol stacks |
US20040098419A1 (en) * | 2002-11-18 | 2004-05-20 | International Business Machines Corporation | Method and apparatus for a migration assistant |
US7805583B1 (en) * | 2003-04-23 | 2010-09-28 | Emc Corporation | Method and apparatus for migrating data in a clustered computer system environment |
CN100571281C (zh) * | 2007-06-29 | 2009-12-16 | 清华大学 | 海量数据分级存储方法 |
CN101282345B (zh) * | 2008-03-03 | 2011-12-07 | 北京航空航天大学 | 一种基于形式化描述和状态迁移的xml转换方法 |
JP5284905B2 (ja) * | 2009-08-12 | 2013-09-11 | 富士通株式会社 | データ移行方法、及びプログラム |
US20110296025A1 (en) * | 2010-03-30 | 2011-12-01 | Jason Lieblich | Systems and methods for facilitating migration and adoption of an alternative computing infrastructure |
US8645653B2 (en) * | 2010-10-14 | 2014-02-04 | Hitachi, Ltd | Data migration system and data migration method |
US8370300B2 (en) * | 2011-05-05 | 2013-02-05 | Hitachi, Ltd. | Method and apparatus of data protection |
CN103019614B (zh) * | 2011-09-23 | 2015-11-25 | 阿里巴巴集团控股有限公司 | 分布式存储系统管理装置及方法 |
US8914381B2 (en) * | 2012-02-16 | 2014-12-16 | Apple Inc. | Correlation filter |
CN103856724B (zh) * | 2012-12-05 | 2017-03-29 | 成都索贝数码科技股份有限公司 | 一种制作应急系统 |
US9098364B2 (en) * | 2013-07-09 | 2015-08-04 | Oracle International Corporation | Migration services for systems |
CN104424283A (zh) * | 2013-08-30 | 2015-03-18 | 阿里巴巴集团控股有限公司 | 一种数据迁移的系统和数据迁移的方法 |
US9461969B2 (en) * | 2013-10-01 | 2016-10-04 | Racemi, Inc. | Migration of complex applications within a hybrid cloud environment |
CN103605728B (zh) * | 2013-11-18 | 2016-10-12 | 浪潮(北京)电子信息产业有限公司 | 一种数据分级存储方法及系统 |
US10313243B2 (en) * | 2015-02-24 | 2019-06-04 | Commvault Systems, Inc. | Intelligent local management of data stream throttling in secondary-copy operations |
US20160253339A1 (en) * | 2015-02-26 | 2016-09-01 | Bittitan, Inc. | Data migration systems and methods including archive migration |
US10324914B2 (en) * | 2015-05-20 | 2019-06-18 | Commvalut Systems, Inc. | Handling user queries against production and archive storage systems, such as for enterprise customers having large and/or numerous files |
US10157196B2 (en) * | 2015-08-12 | 2018-12-18 | Salesforce.Com, Inc. | Intra-platform data migration |
US10331656B2 (en) * | 2015-09-25 | 2019-06-25 | Microsoft Technology Licensing, Llc | Data migration validation |
US10496291B2 (en) * | 2015-12-18 | 2019-12-03 | Sap Se | Maintaining data integrity during data migration |
CN107291750B (zh) | 2016-03-31 | 2020-11-06 | 阿里巴巴集团控股有限公司 | 一种数据迁移方法和装置 |
-
2016
- 2016-03-31 CN CN201610202889.0A patent/CN107291750B/zh active Active
-
2017
- 2017-02-22 TW TW106105966A patent/TWI739804B/zh active
- 2017-03-22 WO PCT/CN2017/077722 patent/WO2017167100A1/zh active Application Filing
-
2018
- 2018-09-28 US US16/147,376 patent/US11354283B2/en active Active
-
2022
- 2022-04-15 US US17/659,448 patent/US11940965B2/en active Active
-
2024
- 2024-02-26 US US18/587,138 patent/US20240193136A1/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1012691B1 (en) * | 1997-09-16 | 2011-08-31 | Microsoft Corporation | Encrypting file system and method |
US7448022B1 (en) * | 2004-02-10 | 2008-11-04 | Prasad Ram | Dynamic software composition in a component-based software system |
US7624283B2 (en) * | 2006-02-13 | 2009-11-24 | International Business Machines Corporation | Protocol for trusted platform module recovery through context checkpointing |
US20100274825A1 (en) * | 2009-04-23 | 2010-10-28 | Hitachi, Ltd. | Data migration system and data migration method |
Also Published As
Publication number | Publication date |
---|---|
US20190034422A1 (en) | 2019-01-31 |
WO2017167100A1 (zh) | 2017-10-05 |
TW201741901A (zh) | 2017-12-01 |
US11354283B2 (en) | 2022-06-07 |
US20240193136A1 (en) | 2024-06-13 |
US11940965B2 (en) | 2024-03-26 |
CN107291750A (zh) | 2017-10-24 |
US20220245101A1 (en) | 2022-08-04 |
CN107291750B (zh) | 2020-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI739804B (zh) | 資料遷移方法和裝置 | |
KR102628362B1 (ko) | 컨테이너화된 환경에서 클러스터의 라이브 마이그레이션 | |
US11243953B2 (en) | Mapreduce implementation in an on-demand network code execution system and stream data processing system | |
US10725826B1 (en) | Serializing duration-limited task executions in an on demand code execution system | |
US10445140B1 (en) | Serializing duration-limited task executions in an on demand code execution system | |
AU2017363366B2 (en) | On-demand code execution in a localized device coordinator | |
US11422844B1 (en) | Client-specified network interface configuration for serverless container management service | |
US11392422B1 (en) | Service-managed containers for container orchestration service | |
EP3127018B1 (en) | Geographically-distributed file system using coordinated namespace replication | |
US20170331867A1 (en) | Method, device and system for pushing file | |
RU2653292C2 (ru) | Перенос служб через границы кластеров | |
Han et al. | {MetaSync}: File Synchronization Across Multiple Untrusted Storage Services | |
US10318347B1 (en) | Virtualized tasks in an on-demand network code execution system | |
CN107368369B (zh) | 分布式容器管理方法及系统 | |
EP3545408A1 (en) | Localized device coordinator with on-demand code execution capabilities | |
CN108200211B (zh) | 集群中镜像文件下载的方法、节点和查询服务器 | |
CN112468310B (zh) | 流媒体集群节点管理方法、装置及存储介质 | |
US11372654B1 (en) | Remote filesystem permissions management for on-demand code execution | |
Hao | Edge computing on low availability devices with K3S in a smart home IoT system | |
US11442943B1 (en) | Error-causing record isolation for data stream processing | |
US20230315543A1 (en) | Tightly coupled parallel applications on a serverless computing system | |
US20230315541A1 (en) | Tightly coupled parallel applications on a serverless computing system | |
Casciaro | Development of a local cloud system based on P2P file sharing: the myP2PSync file synchronization system | |
CN114510316A (zh) | 一种轻量化边缘云安全组的方法及系统 | |
CN116233057A (zh) | 数据传输方法、云中心、边缘节点及存储介质 |