TWI608368B - 資料拷貝技術 - Google Patents

資料拷貝技術 Download PDF

Info

Publication number
TWI608368B
TWI608368B TW105108514A TW105108514A TWI608368B TW I608368 B TWI608368 B TW I608368B TW 105108514 A TW105108514 A TW 105108514A TW 105108514 A TW105108514 A TW 105108514A TW I608368 B TWI608368 B TW I608368B
Authority
TW
Taiwan
Prior art keywords
file
partition
storage device
processor
file system
Prior art date
Application number
TW105108514A
Other languages
English (en)
Other versions
TW201706883A (zh
Inventor
提摩太 費雷希
麥可 費雷克
拉洽瑞 塔漢娜寇斯
Original Assignee
惠普發展公司有限責任合夥企業
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 惠普發展公司有限責任合夥企業 filed Critical 惠普發展公司有限責任合夥企業
Publication of TW201706883A publication Critical patent/TW201706883A/zh
Application granted granted Critical
Publication of TWI608368B publication Critical patent/TWI608368B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/128Details of file system snapshots on the file-level, e.g. snapshot creation, administration, deletion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/1727Details of free space management performed by the file system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

資料拷貝技術
本發明係有關於資料拷貝技術。
發明背景
寫入時拷貝(COW)檔案系統,諸如一B樹檔案系統(BTRFS)、Zettabyte檔案系統(ZFS®)、QNX®6檔案系統(QNX6FS)、等等,可包含有一檔案的多個版本。例如,一COW檔案系統可包含有多個子卷、多個快照、或類似者,以及不同的子卷或快照可以包含有該檔案的不同版本。多個子卷或快照可能包含有對同一檔案的引用。
依據本發明之一實施例,係特地提出一種系統,其包含有:一儲存裝置;一檔案建立組件以建立一空白檔案在該儲存裝置上;一區塊拷貝組件以編輯該空白檔案來包含一啟動分區的一區塊對區塊拷貝;以及一邏輯拷貝組件以把自一根分區判定為活的資料拷貝到該空白檔案,其中該根分區包含有一儲存檔案之活的及未被引用的版本。
100、200‧‧‧系統
110、210‧‧‧檔案建立組件
120、220‧‧‧區塊拷貝組件
130、230‧‧‧邏輯拷貝組件
150、250‧‧‧儲存裝置
240‧‧‧分區組件
300、400‧‧‧流程圖
302~308、402~414‧‧‧方塊
500、600‧‧‧電腦可讀取媒體
502、602‧‧‧處理器
510、610‧‧‧啟動記錄產生
520、620‧‧‧元資料樹追蹤
530、630‧‧‧檔案系統寫入
622‧‧‧快照追蹤
640‧‧‧分區建立
642‧‧‧自由空間比較
644‧‧‧分區縮小
646‧‧‧分區表寫入
650‧‧‧映像檔案建立
652‧‧‧歸零檔案建立
圖1係可把資料拷貝在一儲存裝置上之一系統示例的方塊圖。
圖2係可把資料拷貝在一儲存裝置上之另一系統示例的方塊圖。
圖3係用於把資料拷貝在一第一儲存裝置上之一種方法示例的流程圖。
圖4係用於把資料拷貝在一第一儲存裝置上之另一種方法示例的流程圖。
圖5係包含有指令以拷貝資料之一種電腦可讀取媒體示例的方塊圖。
圖6係包含有指令以拷貝資料之另一種電腦可讀取媒體示例的方塊圖。
較佳實施例之詳細說明
一使用者可能希望把資料拷貝在一儲存裝置上。例如,在一種情境中,一使用者可能希望定制在一裝置上的軟體或特徵,並擷取在該裝置上該資料的一映像。該使用者可能希望建立包含有完整檔案系統之一可啟動映像,使得該使用者可以將該映像部署到數個裝置上。
該檔案系統可能具有包含有多個檔案版本的多個子卷或快照。該檔案系統可能包含有元資料,其用於追蹤哪些子卷或快照引用每一個檔案及每一個檔案有多少引用。與未被引用檔案相關聯的儲存空間可被收回。未被引用的檔案可以保留在該檔案系統上直到該空間被回收為止。
如本文所使用的,活資料係資料,包括元資料, 其被檔案系統元資料來引用;未被引用的資料係資料,包括元資料,其不被檔案系統元資料來引用。例如,一BTRFS可包括具有一根節點的樹狀結構的元資料。可從一根節點使用在該樹中之一路徑到達的資料係活資料,及無法從該根節點到達的資料係未被引用的資料。
該使用者可能希望拷貝一啟動分區及一根分區,其包含有一檔案系統同時包含有跨越子卷或快照之檔案的多個版本。然而,該使用者可能不希望拷貝存在於該檔案系統中之未被引用的檔案和未使用的空間。例如,包含該檔案系統的一分區可能會顯著地大於在該檔案系統中由活資料所佔用的空間,因為有該未使用的空間和未被引用的檔案。因此,把整個分區以區塊對區塊地拷貝到一映像檔案將是耗時的且會導致出一浪費空間的映像檔案。此外,接收該經區塊對區塊拷貝的映像檔案的該等裝置將會浪費掉由未被引用檔案所佔用之回收空間的資源。該資料的一檔案拷貝將無法擷取該資料之所有的活版本且無法重建該檔案系統的該結構。一檔案拷貝也將無法適當地拷貝一啟動分區。
如本文所使用的,區塊對區塊拷貝是指可維持該結構以及經拷貝資料之該等內容的拷貝動作。例如,來自一來源之每一區塊的該等內容可被拷貝到在一目的地的一對應區塊。該等區塊的相對位置可在拷貝過程中被維護。一區塊對區塊的拷貝也可被稱為一種扇區對扇區的拷貝。
本文所公開的是能夠正確地拷貝包含有檔案之 多個版本的一啟動分區及一根分區的示例實現方式。該使用者可以重建該啟動分區和根分區而不用拷貝未被引用的檔案和未使用的空間以節省時間、空間、和資源(例如,處理時間、在儲存裝置上的磨損和損耗、等等)。當部署該啟動分區和根分區至眾多裝置上時,該節省量可能是巨大的。
圖1係把資料拷貝在一儲存裝置150上之一系統100示例的一方塊圖。該儲存裝置150可以包括一啟動分區,其可以包含一啟動記錄、一核心、一啟動載入器、等等,及一根分區,其可含有一檔案系統。該系統100可包括一檔案建立組件110,其可在該儲存裝置150上建立一空白檔案。例如,該檔案建立組件110可使用一/裝置/零介面來建立一全為零的檔案。該檔案建立組件可在該儲存裝置150上建立該空白檔案,或可以在另一儲存裝置上建立該空白檔案。該空白檔案可被編輯以建立可部署在其他裝置上的一映像檔案。
如本文所使用的,「組件」一詞係指是硬體(例如,一處理器諸如一積體電路或其他的電路)的組合及軟體(例如,編程諸如機器或處理器可執行指令、命令、或程式碼諸如韌體、程式編程、或目的碼)。硬體和軟體的一種組合僅包括硬體(即,沒有軟體元件的一硬體元件諸如一特定應用積體電路(ASIC)),在硬體託管的軟體(例如,儲存在一處理器可讀記憶體諸如隨機存取記憶體(RAM)、一硬碟或固態硬碟、電阻式記憶體、或光學媒體諸如一數位影音光碟(DVD)的軟體模組、及/或由處理器執行或解譯)、或在硬 體託管的硬體和軟體。
該系統100可以包括一區塊拷貝組件120。該區塊拷貝組件120可區塊對區塊地拷貝該啟動分區的內容到該空白檔案。該塊拷貝組件120可以拷貝儲存在啟動分區上所有的資料並維持該資料的順序。因此,一旦該區塊拷貝組件120已完成拷貝動作,該空白檔案可能包含該啟動分區之一相同且完全的拷貝。當該映像被部署到另一儲存裝置上時,該儲存裝置能夠啟動該拷貝的啟動分區。
一邏輯拷貝組件130可把在該根分區上的該檔案系統拷貝到該空白檔案。該邏輯拷貝組件130可附加該根分區在該啟動分區之後。該檔案系統可以包括多個子卷或快照,並且可以包括檔案的多個版本。該等檔案的該等多個版本可以包括該檔案的活版本和未被檔案系統元資料引用的該檔案版本。在一示例中,該檔案系統係一COW檔案系統。該邏輯拷貝組件130可在該拷貝中包括該活資料、包括活元資料,但可能不包括未被引用的資料。該邏輯拷貝組件130可拷貝該等多個子卷或快照並可能把一檔案的多個活版本拷貝到該空白映像檔案。
在一示例中,該檔案系統可包含有指出活子卷或快照的元資料。該元資料還可以指出哪個元資料是活元資料。該元資料可包含有一引用計數器其指出每一塊資料,包括元資料被引用多少次,若它不是完全沒被引用的話。該邏輯拷貝組件130可基於該引用計數器是否具一非零值來判定活資料。可替代地,或另外地,該元資料可以以一 樹狀結構來組織。該邏輯拷貝組件130可判定資料是活的若它可由遍歷該樹狀結構來被找到。該邏輯拷貝組件130也把從該根節點遍歷該樹狀結構所找到的該根節點和該資料,包括元資料,拷貝到該空白檔案。
圖2係把資料拷貝在一儲存裝置250上之另一系統200示例的方塊圖。該系統200可以包括一分區組件240。該分區組件240可以在該儲存裝置250上建立一新的分區以持有一映像檔案。該分區組件240可判定在該儲存裝置250上還有多少可用的自由空間。該分區組件240也可判定有多少空間被在該儲存裝置250上的啟動及/或根分區所佔用。在一實例中,該分區組件240可以判定該根分區所佔用的空間,而不用區分在一檔案系統中的活資料和未被引用的資料。可替代地,或另外地,該分區組件240可判定由活資料所佔用的空間。例如,該分區組件240可以初步判定該佔用的空間而不用區分活資料和未被引用的資料,但後來可判定由活資料所佔用的空間,若需要這樣做的話。
該分區組件240可比較該自由空間與該佔用的空間,以判定在自由空間中是否有足夠的空間來儲存包含有該等根和啟動分區之拷貝的一映像檔案。例如,該分區組件240可判定該自由空間是否超過該等啟動和根分區所佔用的空間再加上一預定的偏移量。該偏移量可保證該映像檔案不會在拷貝期間變為滿的。該分區組件240執行該比較可以基於由活資料和未被引用資料所佔用的空間、基於由活資料所佔用的空間、最初基於活資料和未被引用資料但 隨後基於活資料若該分區組件最初檢測到空間不足的話、或類似者。若沒有足夠的空間,該分區組件240和該系統200可中止建立該分區和映像檔案,詢問該映像檔案的一新目的地、或類似者。否則,該分區組件240可以繼續進行建立該分區。
該分區組件240可以縮小該根分區以建立一未經分區的空間。例如,該分區組件240可以指示檔案系統來減少它在該分區中正在使用的該儲存量,並且可以調整該等根分區邊界來建立該未經分區的空間。該等根分區邊界的修改可經由移除一分區並以新的邊界來重建該分區、在一分區表中編輯該等邊界、或類似者。該分區組件240可以調整該等分區邊界使得該未經分區的空間會大到足以持有該映像檔案。該分區組件240可以使用該未經分區的空間建立一新的分區。一檔案建立組件210可以在該新分區上建立一將被使用來作為一映像檔案的空白檔案。
該系統200可包括一區塊拷貝組件220。該區塊拷貝組件220可編輯在該新分區上所建立的該映像檔案來包含該啟動分區的一種區塊對區塊拷貝。該系統200還可以包括一邏輯拷貝組件230。該邏輯拷貝組件230可編輯該映像檔案以包含來自該根分區的之該檔案系統的一拷貝。該邏輯拷貝組件230可編輯該映像檔案以包含來自該檔案系統的活資料,但不包含將被垃圾回收之未被引用的資料、或來自該檔案系統中未被使用的空間。該映像檔案可被部署到其他儲存裝置以建立包含有該拷貝檔案系統之可啟動的 儲存裝置。
圖3係用於把資料拷貝在一第一儲存裝置上之一種方法示例的流程圖300。一處理器可以執行該方法。在方塊302,該流程圖300包含有從該第一儲存裝置讀出一啟動記錄。在方塊304,該啟動記錄被區塊對區塊地寫入到一第二儲存裝置。該啟動記錄的該讀出和寫入可精確地從該第一儲存裝置到該第二儲存裝置保持該啟動記錄的組職和內容。因此,該第二儲存裝置會是可啟動的,若除其他之外使用該啟動記錄。在一示例實現方式中,圖1的該區塊拷貝組件可讀出和寫入該啟動記錄。
方塊306包括產生數個命令用於重建儲存在該第一儲存裝置上的一檔案系統。例如,該檔案系統可以包含有數個子卷或快照,其可包含有檔案的多個版本,並且可包含有由多個子卷或快照所引用的檔案。產生該等數個命令用於重建該檔案系統可以包括產生一串流,其包含有來自該檔案系統的資料以及命令用於在該資料中建立檔案之多個版本、用於產生來自多個子卷或快照對檔案的引用、或類似者。在一示例實現方式中,具有BTRFS之一第一儲存裝置的數個命令可以使用由BTRFS所提供的一Send命令來產生。
在方塊308,該等數個命令被執行以在該第二儲存裝置上重建該檔案系統。在該第二儲存裝置上該經重建的檔案系統可以包含有來自在該第一儲存裝置上該檔案系統的該活資料。當被執行時,該等數個命令可能不會從該 第一儲存裝置重建未被引用的資料。因此,該第二儲存裝置可以包含來自該第一儲存裝置的活資料,但沒有未被引用的資料。當被執行時,該等數個命令也可以從該第一儲存裝置重建該等子卷或快照。在一示例實現方式中,來自具有BTRFS之一第一儲存裝置的數個命令可以使用由BTRFS所提供一Receive命令來執行。參照圖1,在一實現方式中該邏輯拷貝組件130可以產生及執行該等數個命令。在該啟動記錄已被寫入且該等數個命令已被執行之後,該第二儲存裝置係可啟動的及包含有沒有未被引用資料之一完整的檔案系統。
圖4係用於把資料拷貝在一第一儲存裝置上之另一種方法示例的流程圖400。在方塊402,該流程圖400可包括判定是否有空間來儲存一映像檔案在該第一儲存裝置上。判定是否有空間可包含有判定在該第一儲存裝置上的自由空間和在該第一儲存裝置上經佔用的空間。該經佔用的空間可以包括由在該第一儲存裝置上啟動記錄所佔用的空間和在該第一儲存裝置由一檔案系統所佔用的空間。該經佔用的空間可以是由活資料所佔用的空間、由活資料和未被引用資料所佔用的空間、或類似者。該自由空間可以與該經佔用的空間作比較以判定該自由空間是否大到足以持有該經佔用空間的一映像檔案(例如,該自由空間是否大於該經佔用的空間加上一偏移量)。若該第一儲存裝置不夠大到可持有它,則可請求該映像檔案的一新目的地,或者該方法可被中止。
在方塊404,一新的分區可被建立在該第一儲存裝置上。具有自由空間之一現有的分區可被縮小來產生未經分區的空間。該現有分區的縮小可藉由請求該檔案系統重新排列會阻礙該分區縮小之任何資料以及調整該分區邊界。該現有分區可能被縮小以足以有空間用於一新的分區來持有該啟動記錄和該檔案系統的一映像檔案。該未經分區的空間可被使用於建立該新的分區。參看圖2,在一實現方式中一分區組件240可判定是否有足夠的自由空間、縮小現有的分區、以及建立該新的分區。
方塊406可以包含有讀取來自該第一儲存裝置中的一啟動記錄。在方塊408,該啟動記錄可被方塊對方塊地被儲存到一映像檔案。儲存可包括建立該映像檔案,或該映像檔案可能已被預先建立。儲存該啟動記錄到該映像檔案可以包含有儲存該映像檔案在該新的分區上。該儲存的資料相對於從該第一儲存裝置所讀出的啟動記錄可能具有一相同的組織和相同的內容。因此,當該映像檔案被部署到其他的裝置時,該啟動記錄會仍然是可啟動的。在一示例實現方式中,圖2的該方塊拷貝組件220可讀出該啟動記錄並方塊對方塊地儲存該啟動記錄到該映像檔案。
方塊410包括產生數個命令用於在該第一儲存裝置上重建一檔案系統。在方塊412中,該等數個命令可以被執行以重建該檔案系統在該映像檔案中。產生該等數個命令可以包括產生一串流其包括來自該檔案系統的資料及命令以重建該檔案系統的該結構。例如,該檔案系統可以包 括多個子卷或快照,其可引用一相同的檔案或一檔案的不同版本。當該等命令被執行時,可能會重建該檔案之該等不同的版本以及在子卷或快照與在該映像檔案中檔案之間該等正確的引用。該等命令可以從在該映像檔案中的該檔案系統重建活資料,而無需從在該映像檔案中的該檔案系統重建未被引用的資料。
方塊414可以包括把該映像檔案寫入到一第二儲存裝置。該映像檔案可以包括從該第一儲存裝置被區塊對區塊讀出和寫入的該啟動記錄以及使用該等產生的命令經重建的該檔案系統。把該映像檔案寫入到該第二儲存裝置可以使得該第二儲存裝置變成可啟動的並致使該第二儲存裝置可具有來自該檔案系統之該結構和活資料的一完整拷貝。在該映像檔案已被寫入之後,該第二儲存裝置可能沒有來自該檔案系統之未被引用的資料。
圖5係一種電腦可讀取媒體500之一實例的方塊圖,其包含有指令,當由一處理器502執行時,致使該處理器502可拷貝資料。該電腦可讀取媒體500可以是一種非暫時性的電腦可讀取媒體,諸如一依電性電腦可讀取媒體(例如,依電性RAM、一處理器快取、一處理器暫存器、等等),一非依電性電腦可讀取媒體(例如,一磁性儲存裝置、一光儲存裝置、一紙式儲存裝置、快閃記憶體、唯讀記憶體、非依電性RAM、等等)、及/或類似者。該處理器502可以是一個一般用途處理器或特殊用途邏輯,諸如一微處理器、一數位信號處理器、一微控制器、一ASIC、一現場可規劃 閘陣列(FPGA)、一可規劃陣列邏輯(PAL)、一可規劃邏輯陣列(PLA)、一可規劃邏輯裝置(PLD)、等等。
該電腦可讀取媒體500可以包含有一啟動記錄產生模組510。如本文所使用的,一模組(在一些示例中被稱為一軟體模組)係一組指令,當由一處理器執行或解讀或儲存在一處理器可讀取媒體時,實現一組件或執行一方法。該啟動記錄產生模組510可包含有致使該處理器502產生一啟動記錄在一映像檔案中的指令。該啟動記錄產生模組510可致使該處理器502藉由產生與在另一位置中一啟動記錄完全相同的啟動記錄來產生該啟動記錄。可替代地,或另外地,該啟動記錄產生模組510可致使該處理器502根據預定規則而不用依賴於在其他位置中一啟動記錄來產生該啟動記錄。該啟動記錄產生模組510可致使該處理器502在該映像檔案中佈局該啟動記錄使得該映像檔案被部署於其上之一儲存裝置將是可啟動的。例如,在該映像檔案中該啟動記錄的位置以及該啟動記錄之該組織可致使該啟動記錄被寫入到一啟動分區並且當該映像檔案被部署到一儲存裝置上時有一適當的結構用於啟動。參照圖1,該啟動記錄產生模組510,當由該處理器502執行時,可以實現一區塊拷貝組件120。
該電腦可讀取媒體500可以包含有一元資料樹追蹤模組520其致使該處理器502可追蹤一元資料樹以找到在一檔案系統(例如,一COW檔案系統)中的活資料。該元資料樹可包括一根節點。由隨著經過該元資料樹的一路徑所 發現的活資料可被包括在該檔案系統的一映像中。不能由隨著經過該元資料樹的一路徑所到達的資料可以不用被包括在該映像中。例如,該COW檔案系統可寫入新的資料,添加從該根節點到該新資料的一路徑,然後刪除到該舊資料的一路徑。該舊資料可存在直到該空間被回收為止。然而,該舊資料可能無法從該根節點到達,所以它不被包括在由追蹤該元資料樹所找到的活資料中。
該電腦可讀取媒體500可包含有一檔案系統寫入模組530,其致使該處理器502把該COW檔案系統寫入到該映像檔案。該檔案系統寫入模組530可致使該處理器502把透過追蹤該元資料樹所找到的活資料寫入到該映像檔案。該檔案系統寫入模組530可致使該處理器502不把無法從根節點到達的資料寫入到該映像檔案。一最終的映像檔案可包含有一啟動記錄,該啟動記錄將可使用來啟動該映像檔案被部署於其上的裝置。該最終的映像檔案也會包含有一完整COW檔案系統,其可包含有多個子卷或快照,但沒有來自該原來COW檔案系統中之未被引用的資料和未被使用的空間。當在該處理器502上執行時,該元資料樹追蹤模組520和該檔案系統寫入模組530可以實現一邏輯拷貝組件130。
圖6係另一種實例電腦可讀取媒體600之一方塊圖,其包含有指令,當由一處理器602執行時,致使該處理器602可拷貝資料。一第一分區可以包含一COW檔案系統。該電腦可讀取媒體600可包含有一分區建立模組640其致使 該處理器602建立一第二分區。該分區建立模組640可以包含有一自由空間比較模組642其致使該處理器602把含有該COW檔案系統之一儲存裝置上所佔用的空間與可用的自由空間做比較,以判定是否有足夠的空間來建立包含有該COW檔案系統之一映像檔案的一第二分區。在一示例實方式現中,該自由空間比較模組642致使該處理器602增加一偏移量給該經佔用的空間,並判定自由空間是否超出所得的總和。該自由空間比較模組642致使該處理器602可把該自由空間與由在該COW檔案系統中活資料所佔用的空間作比較、與由在該COW檔案系統中活資料和未被引用資料所佔用的該空間作比較、或類似者。
該分區建立模組640可包含有致使該處理器602縮小該第一分區的一分區縮小模組644。若有足夠的空間可建立具有該COW檔案系統之一映像檔案的一新的分區,該分區縮小模組644可致使該處理器602縮小該第一分區以建立一未經分區的空間。在一示例實現方式中,該分區縮小模組644可致使該處理器602縮小該第一分區以回應於該自由空間超過該佔用的空間加上該偏移量。該分區縮小模組644可致使該處理器602縮小該第一分區直到在一新的分區上有足夠的空間可用於該COW檔案系統的一映像檔案為止。該分區縮小模組644可致使該處理器602縮小該第一分區,藉由使該處理器602指示該COW檔案系統來調整自身大小並致使該處理器602來更新分區表。該分區建立模組640可包含有一分區表寫入模組646其致使該處理器602使用由 縮小該第一分區所提供之該未經分區空間來產生第二分區。該分區表寫入模組646可更新該分區表以產生該第二分區。參看圖2,該分區建立模組640,當由該處理器602執行時,可以實現該分區建立模組240。
該電腦可讀取媒體600可包含有一映像檔案建立模組650其致使該處理器602建立一映像檔案在該第二分區上。該映像檔案建立模組650可以包含有一歸零檔案建立模組652,該模組致使該處理器602建立可稍後進行編輯以包含該映像檔案之所欲內容的一經歸零的映像檔案。例如,該映像檔案建立模組650可致使該處理器602在該映像檔案中產生一啟動記錄或把一COW檔案系統寫入到該映像檔案之前建立該映像檔案在該第二分區上。當該處理器602執行時,該映像檔案建立模組650可以實現圖2的該檔案建立組件210。
該電腦可讀取媒體600可以包含有一啟動記錄產生模組610其致使該處理器602產生一啟動記錄在該映像檔案中。例如,該啟動記錄產生模組610可致使該處理器602基於在另一位置中的一啟動記錄來產生該啟動記錄、使用預定規則來產生該啟動記錄、或類似者。當由該處理器602執行時,該啟動記錄產生模組610可實現圖2的該區塊拷貝組件220。
該電腦可讀取媒體600可包含有一元資料樹追蹤模組620其致使該處理器602追蹤一元資料樹來找到在一COW檔案系統中的活資料。該元資料樹追蹤模組620可包含 有一快照追蹤模組622其致使該處理器602追蹤該元資料樹來找到與在該COW檔案系統上一經選定快照或子卷相關聯的活資料。例如,一使用者可能已指出一特定的快照或子卷將被寫入到該映像檔案而不是該整個檔案系統。因此,該快照追蹤模組622可致使該處理器602找到在該元資料樹中該使用者指出的快照或子卷,然後找到與該快照或子卷相關聯的活資料。可替代地,或者另外地,該元資料樹追蹤模組620可致使該處理器602追蹤該元資料樹以找到與該COW檔案系統相關聯之所有的活資料。
該電腦可讀取媒體600可包含有一檔案系統寫入模組630其致使該處理器602把該COW檔案系統寫入到該映像檔案。該檔案系統寫入模組630可致使該處理器602寫入由該元資料樹追蹤模組所確認的該資料。例如,該檔案系統寫入模組630可致使該處理器602把與一快照或子卷相關聯的活資料寫入到該映像檔案或把與該COW檔案系統相關聯之所有的活資料寫入到該映像檔案。該檔案系統寫入模組630可以寫入所有必要的元資料以對該映像檔案有一完整的、功能性的歸檔系統而不論是否一單一快照或子卷或所有的活資料正被寫入。該產生的映像檔案可包含有來自該COW檔案系統的一啟動記錄和活資料,但沒有未被引用的資料。當由該處理器602執行時,該元資料樹追蹤模組620和該檔案系統寫入模組630可以實現該邏輯拷貝組件230。
以上的描述係本發明內容之各種原理和實現方式的說明。一旦上述的公開被完全地理解,各種變化和修 改對本領域的習知技藝者而言將變得是顯而易見的。因此,本申請的範圍應該只由以下所附的申請專利範圍來決定。
100‧‧‧系統
110‧‧‧檔案建立組件
120‧‧‧區塊拷貝組件
130‧‧‧邏輯拷貝組件
150‧‧‧儲存裝置

Claims (15)

  1. 一種資料拷貝系統,其包含有:一儲存裝置;一檔案建立組件,用以建立一空白檔案在該儲存裝置上;一區塊拷貝組件,用以編輯該空白檔案來包含一啟動分區的一區塊對區塊拷貝;以及一邏輯拷貝組件,用以把自一根分區判定為活的資料拷貝到該空白檔案,其中該根分區包含有一儲存檔案之活的和未被引用的版本。
  2. 如請求項1之系統,其中該啟動分區和該根分區被儲存在該儲存裝置上。
  3. 如請求項2之系統,更包含有一分區組件,用以:判定該儲存裝置的自由空間超過該儲存裝置被佔用的空間再加上一偏移量;縮小該根分區以建立一未經分區的空間;以及使用該未經分區的空間建立一新的分區,其中該檔案建立組件將產生該空白檔案在該新的分區上。
  4. 如請求項1之系統,其中該根分區包含有一寫入時拷貝檔案系統,且其中該寫入時拷貝檔案系統包含有該儲存檔案之該等活的和未被引用的版本。
  5. 如請求項1之系統,其中自該根分區被判定為活的該資料包含有數個子卷。
  6. 一種資料拷貝方法,其包含有:使用一處理器從一第一儲存裝置讀出一啟動記錄;使用該處理器把該啟動記錄區塊對區塊地寫入到一第二儲存裝置;使用該處理器產生用於重建儲存在該第一儲存裝置上的一檔案系統之數個命令;以及使用該處理器執行該等數個命令以重建該檔案系統在該第二儲存裝置上。
  7. 如請求項6之方法,更包含有保存該啟動記錄到一映像檔案,其中把該啟動記錄寫入到該第二儲存裝置包含有把該映像檔案寫入到該第二儲存裝置,以及其中執行該等數個命令以重建該檔案系統在該第二儲存裝置上包含有執行該等數個命令以重建該檔案系統在該映像檔案中並把該映像檔案寫入到該第二儲存裝置。
  8. 如請求項7之方法,更包含有判定有一空間以儲存該映像檔案在該第一儲存裝置上,其中把該啟動記錄保存到該映像檔案包含有把該映像檔案保存到該第一儲存裝置。
  9. 如請求項8之方法,更包含有在該第一儲存裝置上建立大得足以保有該映像檔案之一分區,其中把該啟動記錄保存到該映像檔案包含有把該映像檔案保存到該分區。
  10. 如請求項6之方法,其中該檔案系統包含有數個快照。
  11. 一種包含有指令之電腦可讀儲存媒體,該等指令在由一處理器執行時,致使該處理器: 產生一啟動記錄於一映像檔案中;追蹤一元資料樹以在一寫入時拷貝檔案系統中找到活資料;以及把該寫入時拷貝檔案系統寫入到該映像檔案,其中由該元資料樹所引用的該活資料被寫入到該映像檔案。
  12. 如請求項11之電腦可讀儲存媒體,其中一第一分區包含有該寫入時拷貝檔案系統,以及其中該等指令在由該處理器執行時,致使該處理器在產生該啟動記錄於該映像檔案中之前,建立該映像檔案在一第二分區上。
  13. 如請求項12之電腦可讀儲存媒體,其中該等指令在由該處理器執行時,致使該處理器:把包含有該寫入時拷貝檔案系統之一儲存裝置上之自由空間與已佔用的空間作比較;回應於該自由空間超過該佔用的空間再加上一偏移量,縮小該第一分區以產生一未經分區的空間;以及使用該未經分區的空間建立該第二分區。
  14. 如請求項12之電腦可讀儲存媒體,其中該等指令在由該處理器執行時,致使該處理器建立該映像檔案為一零化檔案。
  15. 如請求項11之電腦可讀儲存媒體,其中該等指令在由該處理器執行時,致使該處理器追蹤該元資料樹以找出與該寫入時拷貝檔案系統上之一選定快照相關聯的活資料以及把與該選定快照相關聯的該活資料寫入到該映像檔案。
TW105108514A 2015-05-15 2016-03-18 資料拷貝技術 TWI608368B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2015/031104 WO2016186617A1 (en) 2015-05-15 2015-05-15 Data copying

Publications (2)

Publication Number Publication Date
TW201706883A TW201706883A (zh) 2017-02-16
TWI608368B true TWI608368B (zh) 2017-12-11

Family

ID=57318958

Family Applications (1)

Application Number Title Priority Date Filing Date
TW105108514A TWI608368B (zh) 2015-05-15 2016-03-18 資料拷貝技術

Country Status (3)

Country Link
US (1) US11294657B2 (zh)
TW (1) TWI608368B (zh)
WO (1) WO2016186617A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115480798B (zh) * 2021-06-15 2023-06-16 荣耀终端有限公司 操作系统升级方法、设备、存储介质及计算机程序产品

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5819292A (en) * 1993-06-03 1998-10-06 Network Appliance, Inc. Method for maintaining consistent states of a file system and for creating user-accessible read-only copies of a file system
US6615365B1 (en) * 2000-03-11 2003-09-02 Powerquest Corporation Storing a computer disk image within an imaged partition
TW201007577A (en) * 2008-08-15 2010-02-16 Qnap Systems Inc Embedded system with capability of recovering operation system and recovery method for the same
TWI475489B (zh) * 2012-06-28 2015-03-01 Ind Tech Res Inst 複製虛擬機器的記憶體資料的方法、其電腦程式產品以及電腦系統

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5487160A (en) * 1992-12-04 1996-01-23 At&T Global Information Solutions Company Concurrent image backup for disk storage system
US6144992A (en) * 1997-05-09 2000-11-07 Altiris, Inc. Method and system for client/server and peer-to-peer disk imaging
US6665779B1 (en) * 1998-12-24 2003-12-16 Roxio, Inc. Image backup method for backing up disk partitions of a storage device
US6804774B1 (en) * 2000-05-12 2004-10-12 Hewlett-Packard Development Company, L.P. Software image transition aid comprising building a disk image based on identified hardware
US20040073783A1 (en) * 2001-01-08 2004-04-15 Gordon Ritchie Computer system with operating system on a ram-disk
US7565517B1 (en) * 2002-04-03 2009-07-21 Symantec Corporation Retargeting a captured image to new hardware while in a pre-boot environment
US6857011B2 (en) * 2002-10-31 2005-02-15 Paragon Development Systems, Inc. Method of remote imaging
US20050044548A1 (en) * 2003-08-20 2005-02-24 John Page Efficient replication of embedded operating system with a write filter and overlay partition
US7614051B2 (en) * 2003-12-16 2009-11-03 Microsoft Corporation Creating file systems within a file in a storage technology-abstracted manner
US7757228B1 (en) * 2004-02-26 2010-07-13 Landesk Software Limited Systems and methods for writing an image to a computer system
US7370234B2 (en) * 2004-10-14 2008-05-06 International Business Machines Corporation Method for system recovery
CN101243413B (zh) * 2005-06-24 2013-08-14 信科索尔特公司 用于对备份映像进行虚拟化的系统和方法
US20070180206A1 (en) * 2006-01-18 2007-08-02 Craft Julie L Method of updating a duplicate copy of an operating system on the same disk
US8151263B1 (en) * 2006-03-31 2012-04-03 Vmware, Inc. Real time cloning of a virtual machine
US20080104588A1 (en) * 2006-10-27 2008-05-01 Barber Michael J Creation of temporary virtual machine clones of multiple operating systems
WO2008092031A2 (en) * 2007-01-24 2008-07-31 Vir2Us, Inc. Computer system architecture having isolated file system management for secure and reliable data processing
US8244681B2 (en) * 2008-06-09 2012-08-14 Symantec Operating Corporation Creating synthetic backup images on a remote computer system
US20100115004A1 (en) * 2008-10-21 2010-05-06 Moxa Inc. Backup system that stores boot data file of embedded system in different strorage sections and method thereof
US9542409B2 (en) * 2008-11-26 2017-01-10 Red Hat, Inc. Deduplicated file system
US8478799B2 (en) 2009-06-26 2013-07-02 Simplivity Corporation Namespace file system accessing an object store
US8032498B1 (en) * 2009-06-29 2011-10-04 Emc Corporation Delegated reference count base file versioning
US8752039B1 (en) * 2009-08-19 2014-06-10 Juniper Networks, Inc. Dynamic upgrade of operating system in a network device
CA2775210C (en) 2009-10-30 2016-05-31 Rayan Zachariassen Real-time data transformation to access foreign data sources
US8756598B1 (en) * 2010-03-31 2014-06-17 Netapp, Inc. Diskless virtual machine cloning by separately cloning a virtual drive and configuration data of a source virtual machine for combination into a cloned virtual machine
US9767274B2 (en) * 2011-11-22 2017-09-19 Bromium, Inc. Approaches for efficient physical to virtual disk conversion
US8140907B2 (en) 2010-06-29 2012-03-20 International Business Machines Corporation Accelerated virtual environments deployment troubleshooting based on two level file system signature
US8650158B2 (en) * 2010-09-10 2014-02-11 International Business Machines Corporation File cloning across different filesets
US8490088B2 (en) * 2010-09-10 2013-07-16 International Business Machines Corporation On demand virtual machine image streaming
US8990618B2 (en) 2010-12-10 2015-03-24 Mitel Networks Corporation Partial fault tolerance in an embedded appliance
JP5775177B2 (ja) * 2011-09-14 2015-09-09 株式会社日立製作所 クローンファイル作成方法と、それを用いたファイルシステム
US20130159257A1 (en) * 2011-12-20 2013-06-20 Netapp, Inc. Systems, Method, and Computer Program Products Providing Sparse Snapshots
WO2013102506A2 (en) 2012-01-02 2013-07-11 International Business Machines Corporation Method and system for backup and recovery
US9317511B2 (en) 2012-06-19 2016-04-19 Infinidat Ltd. System and method for managing filesystem objects
US10049117B2 (en) 2013-09-12 2018-08-14 International Business Machines Corporation Defragmentation-less deduplication
US20160041782A1 (en) * 2014-08-07 2016-02-11 Randall Deetz Storage Device Copying of a larger system to a smaller system
GB2531295A (en) * 2014-10-15 2016-04-20 Ibm A data block based backup method
US9696919B1 (en) * 2015-03-31 2017-07-04 EMC IP Holding Company LLC Source/copy reference tracking with block pointer sets

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5819292A (en) * 1993-06-03 1998-10-06 Network Appliance, Inc. Method for maintaining consistent states of a file system and for creating user-accessible read-only copies of a file system
US6615365B1 (en) * 2000-03-11 2003-09-02 Powerquest Corporation Storing a computer disk image within an imaged partition
TW201007577A (en) * 2008-08-15 2010-02-16 Qnap Systems Inc Embedded system with capability of recovering operation system and recovery method for the same
TWI475489B (zh) * 2012-06-28 2015-03-01 Ind Tech Res Inst 複製虛擬機器的記憶體資料的方法、其電腦程式產品以及電腦系統

Also Published As

Publication number Publication date
US11294657B2 (en) 2022-04-05
US20180052674A1 (en) 2018-02-22
TW201706883A (zh) 2017-02-16
WO2016186617A1 (en) 2016-11-24

Similar Documents

Publication Publication Date Title
KR101442370B1 (ko) 다수 캐스케이드식 백업 프로세스
US7631158B2 (en) Disk snapshot method using a copy-on-write table in a user space
KR101384438B1 (ko) 데이터를 사전 각색하는 방법 및 컴퓨터 판독가능 매체
US10872017B2 (en) Restoring a file system object
CN102096616B (zh) 逻辑对象数据的复制方法以及相关装置
JP2003177947A5 (zh)
CN105593829B (zh) 从原始映像备份中排除文件系统对象的方法、系统及介质
JP4755244B2 (ja) 情報生成方法、情報生成プログラム及び情報生成装置
JP2017531892A (ja) ブロックレベル記憶デバイスのスナップショットを実行するための改善された装置および方法
CN111158858A (zh) 一种虚拟机的克隆方法和装置,及计算机可读存储介质
EP2669806A1 (en) Storage system
TWI608368B (zh) 資料拷貝技術
US20090112951A1 (en) Apparatus and method of managing files and memory device
US20050240584A1 (en) Data protection using data distributed into snapshots
US8738571B1 (en) Extended recycle bin
US9009430B2 (en) Restoration of data from a backup storage volume
WO2016080949A1 (en) Snapshot backup
US7865472B1 (en) Methods and systems for restoring file systems
US10423494B2 (en) Trimming unused blocks from a versioned image backup of a source storage that is stored in a sparse storage
JP2004362221A (ja) ハードディスクバックアップリカバリーシステム、およびハードディスクバックアップリカバリー方法、および情報処理装置
US10318204B2 (en) Information processing device and information processing method for writing plurality of files on recording medium
US10152492B1 (en) Extended recycle bin for versioning
KR101995460B1 (ko) Ext 파일 관리 구조의 파일단위 단편화 제거 시스템 및 방법
CN111309526A (zh) 文件备份、恢复方法及其装置
WO2017050029A1 (zh) 一种数据块处理的方法、装置及设备

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees