TWI782487B - 利用索引物件來進行簡易儲存服務無縫遷移的方法、主裝置以及儲存伺服器 - Google Patents

利用索引物件來進行簡易儲存服務無縫遷移的方法、主裝置以及儲存伺服器 Download PDF

Info

Publication number
TWI782487B
TWI782487B TW110113682A TW110113682A TWI782487B TW I782487 B TWI782487 B TW I782487B TW 110113682 A TW110113682 A TW 110113682A TW 110113682 A TW110113682 A TW 110113682A TW I782487 B TWI782487 B TW I782487B
Authority
TW
Taiwan
Prior art keywords
storage
request
server
index
migration
Prior art date
Application number
TW110113682A
Other languages
English (en)
Other versions
TW202141295A (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 TW202141295A publication Critical patent/TW202141295A/zh
Application granted granted Critical
Publication of TWI782487B publication Critical patent/TWI782487B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/215Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0281Proxies

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本發明揭露了一種利用索引物件來進行簡易儲存服務無縫遷移的方法以及相關設備,該方法包含有:因應自遠端簡易儲存服務相容伺服器遷移儲存伺服器的使用者的使用者資料至儲存伺服器的要求,於索引階段中,利用在儲存伺服器中的主裝置上運行的多個程式模組中的基於索引物件的簡易儲存服務遷移管理模組來創建並儲存多個索引物件至儲存伺服器的儲存裝置層,並且遷移多個常態物件的各自的存取控制列表至該儲存伺服器;以及於資料階段中,利用基於索引物件的簡易儲存服務遷移管理模組來觸發一個或多個遷移代理程式以遷移物件資料。

Description

利用索引物件來進行簡易儲存服務無縫遷移的方法、主裝置 以及儲存伺服器
本發明係有關於記憶體控制,且尤指利用索引物件來進行簡易儲存服務(simple storage service,S3)無縫遷移的方法以及設備(apparatus),其中該設備的範例可包含:整個儲存伺服器、儲存伺服器內的主裝置、主裝置內的處理電路以及運行在處理電路中對應於該方法的一個或多個程式模組的至少一處理器/處理器核心(例如:中央處理器(central processing unit,CPU)/中央處理器核心),但是本發明不限於此。
伺服器可用於雲端運算(cloud computing),例如,儲存伺服器可用來實作遠端儲存(例如:能夠為使用者儲存資料的雲端)。當使用舊公有雲(public cloud)的使用者發現此公有雲幾乎已滿或存取速度很慢時,該使用者可能需要尋找新雲,在現有技術中已經提出了一種資料遷移方法,以嘗試將資料從舊的公有雲複製到另一個公有雲,然而,可能會出現一些問題,例如,該資料遷移方法通常先複製資料,包括舊公有雲中開始時間點之前的所有資料,然後再進行端點切換等等,因此可能會錯誤地複製應刪除的資料(例如在開始時間點之後 已被使用者刪除的資料)到另一個公有雲。此外,根據該資料遷移方法的建議,先複製資料可能需要很長時間(例如幾個月),尤其,此資料遷移方法不適用於私有雲(private cloud),如果使用者希望使用私有雲作為新雲,則在相關技術中似乎找不到用來將資料從舊雲遷移至私有雲的合適解決方案,因此,需要一種新穎的架構來進行針對私有雲的簡易儲存服務無縫遷移(例如,從任一個公有/私有雲至一私有雲的簡易儲存服務無縫遷移),以允許使用者在資料遷移過程中正常地且順暢地存取資料。
因此,本發明的目的之一在於揭露一種利用索引物件來進行簡易儲存服務無縫遷移的方法,並且揭露相關設備(例如儲存伺服器、儲存伺服器中的主裝置等等),以解決上述問題。
本發明的另一目的在於揭露一種利用索引物件來進行簡易儲存服務無縫遷移的方法,並且揭露相關設備(例如儲存伺服器、儲存伺服器中的主裝置等等),以在不引入副作用的情況下或藉由不太可能引入副作用的方式來達到最佳性能。
本發明的至少一實施例揭露了一種利用索引物件來進行簡易儲存服務無縫遷移的方法,其中該方法係應用於一儲存伺服器,該方法可包含:因應自一遠端簡易儲存服務相容(S3-compatible)伺服器遷移該儲存伺服器的一使用者的使用者資料至該儲存伺服器的一要求,於該使用者資料之一遷移的多個階段中的一索引階段(index stage)中,利用在該儲存伺服器中的一主裝置上運行的多個程式模組中的一基於索引物件(index-object-based)的簡易儲存服務遷移管理 模組來創建並儲存多個索引物件至該儲存伺服器的一儲存裝置層,以作為在該儲存伺服器中的該使用者資料的多個常態物件(normal object)的各自的代表,並且遷移該多個常態物件的各自的存取控制列表(access control lists,ACLs)至該儲存伺服器以作為該多個索引物件的各自的存取控制列表,以最小化該多個常態物件中任一常態物件的任一改變影響該使用者資料之該遷移的正確性的機率,其中該儲存伺服器包含有該主裝置以及該儲存裝置層,該儲存裝置層包含有耦接於該主裝置的至少一儲存裝置,該主裝置係用來控制該儲存伺服器的操作,且該至少一儲存裝置係用來為該儲存伺服器儲存資訊;以及於該多個階段中的該索引階段之後的一資料階段(data stage)中,利用該基於索引物件的簡易儲存服務遷移管理模組來觸發一個或多個遷移代理程式(agent),以自該遠端簡易儲存服務相容伺服器遷移該多個常態物件中的一組常態物件的各自的物件資料至該儲存伺服器的該儲存裝置層,以作為在該多個索引物件中的一組索引物件的各自的替換,以完成該使用者資料之該遷移。
除了上述的方法,本發明亦揭露了一種主裝置,該主裝置可包含用來控制該主裝置以在一儲存伺服器中進行基於索引物件的簡易儲存服務遷移管理的一處理電路,其中該儲存伺服器包含有該主裝置以及一儲存裝置層,該儲存裝置層包含有耦接至該主裝置的至少一儲存裝置,該主裝置係用來控制該儲存伺服器的操作,且上述至少一儲存裝置係用來為該儲存伺服器儲存資訊,例如,因應自一遠端簡易儲存服務相容伺服器遷移該儲存伺服器的一使用者的一使用者資料至該儲存伺服器的一要求,於該使用者資料之一遷移的多個階段中的一索引階段中,運行在該處理電路上的多個程式模組中的一基於索引物件的簡易儲存服務遷移管理模組創建並儲存多個索引物件至該儲存裝置層,以作為在該儲存伺服器中的該使用者資料的多個常態物件的各自的代表,並且將該多 個常態物件的各自的存取控制列表遷移至該儲存伺服器,以作為該多個索引物件的各自的存取控制列表,以最小化該多個常態物件中任一常態物件的任一改變影響該使用者資料之該遷移的正確性的機率;以及於該多個階段中的該索引階段之後的一資料階段中,該基於索引物件的簡易儲存服務遷移管理模組觸發一個或多個遷移代理程式,以自該遠端簡易儲存服務相容伺服器遷移該多個常態物件中的一組常態物件的各自的物件資料至該儲存伺服器的該儲存裝置層,以作為在該多個索引物件中的一組索引物件的各自的替換,以完成該使用者資料之該遷移。
除了上述的方法,本發明亦揭露了一種儲存伺服器,該儲存伺服器可包含一主裝置以及一儲存裝置層,其中該主裝置係用來控制該儲存伺服器的操作,例如,該主裝置可包含用來控制該主裝置以進行在該儲存伺服器中的基於索引物件的簡易儲存服務遷移管理的一處理電路。此外,該儲存裝置層可包含用來為該儲存伺服器儲存資訊的至少一儲存裝置,例如,因應自一遠端簡易儲存服務相容伺服器遷移該儲存伺服器的一使用者的一使用者資料至該儲存伺服器的一要求,於該使用者資料之一遷移的多個階段中的一索引階段中,運行在該處理電路上的多個程式模組中的一基於索引物件的簡易儲存服務遷移管理模組創建並儲存多個索引物件至該儲存裝置層,以作為在該儲存伺服器中的該使用者資料的多個常態物件的各自的代表,並且將該多個常態物件的各自的存取控制列表遷移至該儲存伺服器,以作為該多個索引物件的各自的存取控制列表,以最小化該多個常態物件中任一常態物件的任一改變影響該使用者資料之該遷移的正確性的機率;以及於該多個階段中的該索引階段之後的一資料階段中,該基於索引物件的簡易儲存服務遷移管理模組觸發一個或多個遷移代理程式,以自該遠端簡易儲存服務相容伺服器遷移該多個常態物件中的一組常態物 件的各自的物件資料至該儲存伺服器的該儲存裝置層,以作為在該多個索引物件中的一組索引物件的各自的替換,以完成該使用者資料之該遷移。
本發明的方法以及相關設備可以利用索引物件來進行簡易儲存服務無縫遷移,在一索引階段/時期(stage/phase)(例如一短時間期間(period))之後,本發明的方法和相關設備可以在一資料階段/時期中以較小的開銷(overhead)來進行無縫遷移,其中資料階段/時期的開銷通常小於索引階段/時期的開銷。
50:主裝置
52:處理電路
52P:程式模組
53:基於索引物件的簡易儲存服務遷移管理模組
54:儲存介面電路
56:儲存裝置
58:網路介面電路
90:複數個儲存裝置
100:儲存裝置
110:記憶體控制器
112:微處理器
112C:程式碼
112M:唯讀記憶體
114:控制邏輯電路
116:隨機存取記憶體
118:傳輸介面電路
120:非揮發性記憶體
122-1~122-N:非揮發性記憶體元件
T1~T3:時間點
S01~S08,S10~S14,S20~S29,S30~S36,S40~S48,S50~58,S60~S65,S70~S75,S14A,S14B,S14C,S25A,S25B,S25C,S27A,S S27B,S27C,S29E,S36A,S36B,S36C,S45A,S45B,S45C,S56A,S56B,S56C,S64A,S64B,S64C,S74A,S74B,S74C:步驟
第1圖為根據本發明一實施例之儲存伺服器的示意圖。
第2圖為根據本發明一實施例之第1圖所示的儲存伺服器中之儲存裝置的一些實作細節的示意圖。
第3圖為根據本發明一實施例之利用索引物件來進行簡易儲存服務無縫遷移之方法的基於索引物件之遷移控制方案。
第4圖為根據本發明一實施例之第3圖所示之基於索引物件的遷移控制方案的一些相關操作的示意圖。
第5圖為根據本發明一實施例之關於第3圖所示之基於索引物件的遷移控制方案的一些物件以及一些相關特徵的示意圖。
第6圖為根據本發明一實施例之利用索引物件來進行簡易儲存服務無縫遷移之方法的遷移代理控制方案的示意圖。
第7圖為第1圖所示之具備基於索引物件的簡易儲存服務遷移管理模組的Ceph物件儲存架構之範例的示意圖。
第8圖為根據本發明一實施例之利用索引物件來進行簡易儲存服務無縫遷移之 方法的物件列出控制方案的示意圖。
第9圖為根據本發明一實施例之利用索引物件來進行簡易儲存服務無縫遷移之方法的物件頭控制方案的示意圖。
第10圖為根據本發明一實施例之利用索引物件來進行簡易儲存服務無縫遷移之方法的物件獲取控制方案的示意圖。
第11圖為根據本發明一實施例之利用索引物件來進行簡易儲存服務無縫遷移之方法的物件獲取存取控制列表控制方案的示意圖。
第12圖為根據本發明一實施例之利用索引物件來進行簡易儲存服務無縫遷移之方法的物件放置控制方案的示意圖。
第13圖為根據本發明一實施例之利用索引物件來進行簡易儲存服務無縫遷移之方法的物件放置存取控制列表控制方案的示意圖。
第14圖為根據本發明一實施例之利用索引物件來進行簡易儲存服務無縫遷移之方法的物件刪除控制方案的示意圖。
本發明的實施例揭露了一種利用索引物件來進行簡易儲存服務無縫遷移的方法以及設備,例如,該方法以及相關設備可使用一種新穎的簡易儲存服務無縫遷移架構來進行存取控制,且尤指,可進行針對私有雲的簡易儲存服務無縫遷移,例如自任一個公有/私有雲至一私有雲的簡易儲存服務無縫遷移(例如資料遷移的目標雲(destination cloud)),以允許使用者在資料遷移過程中正常地且順暢地存取資料。為了更好地理解,一第一雲,例如簡易儲存服務相容儲存(例如其可能幾乎已滿並且存取速度可能很慢),以及一第二雲,例如根據該方法所實作的Bigtera儲存,可以分別作為該任一個公有/私有雲以及該私有雲(例如目標雲)的範例,但是本發明不限於此。此外,當在第一時間點T1開始遷移 時,該方法以及相關設備可以先於自第一時間點T1開始的一索引階段,例如INDEX階段(例如一索引時期,諸如INDEX時期),在該第二雲中創建索引物件(例如虛擬索引物件(dummy index object)),並且可以於自第二時間點T2(例如當完成創建該索引物件時的時間點)開始的一資料階段,例如DATA階段(例如一資料時期,諸如DATA時期),自該第一雲遷移(例如轉移)物件資料至該第二雲。在某些實施例中,簡易儲存服務無縫遷移架構可以利用一個或多個遷移代理程式(migration agent)來進行物件遷移,此外,該設備可包含儲存伺服器的至少一部分(例如一部分或全部),例如,該設備可包含儲存伺服器的一部分,諸如在儲存伺服器中的主裝置或位於主裝置內的相關控制電路(例如在對應於該方法的一個或多個程式模組上運行的處理電路與相關電路),在另一個範例中,該設備可包含整個儲存伺服器,根據針對儲存伺服器的某些實施例,INDEX時期可代表一短時間期間(例如數小時或幾天),而DATA時期可代表一長時間期間(例如幾個星期)。
第1圖為根據本發明一實施例之儲存伺服器10的示意圖,儲存伺服器10包含有主裝置50,且包含有至少一儲存裝置,例如一個或多個儲存裝置(例如複數個儲存裝置90),複數個儲存裝置90係耦接至主裝置50,根據本實施例,主裝置50可用來控制儲存伺服器10的操作,並且複數個儲存裝置90可以用來為儲存伺服器10儲存資訊。如第1圖所示,主裝置50可包含用來控制主裝置50之操作的處理電路52(例如至少一處理器/處理器核心以及相關電路諸如隨機存取記憶體(random access memory,RAM)、匯流排等等)、用來耦接複數個儲存裝置90並耦接位在主裝置50上的儲存或記憶體裝置(例如一個或多個傳統硬碟(hard disk drive,HDD)及/或一個或多個固態硬碟(solid state drive,SSD))的至少一儲存介面電路54,以及用來將主裝置50耦接至至少一網路的網路介面電路58。儲存 或記憶體裝置可包含至少一儲存裝置(例如一個或多個儲存裝置),其可統稱為儲存裝置56,例如,儲存裝置56可包含一組儲存裝置,其中該組儲存裝置的其中一個儲存裝置可被使用以作為主裝置50的系統磁碟,並且該組儲存裝置的其他儲存裝置可以用來為主裝置50儲存使用者資料,但是本發明不限於此,在另一個範例中,儲存裝置56可包含一個儲存裝置,並且此儲存裝置可被使用以作為主裝置50的系統磁碟。
根據本實施例,運行程式模組52P的處理電路52(尤指對應於該方法的基於索引物件的簡易儲存服務遷移管理模組53)可根據該方法來控制主裝置50的操作,例如,控制主裝置50以在儲存伺服器10中進行基於索引物件的簡易儲存服務遷移管理,並且儲存介面電路54可符合一個或多個標準(例如一個或多個串行先進技術附件(Serial Advanced Technology Attachment,Serial ATA或SATA)標準、外部組件互連(Peripheral Component Interconnect,PCI)標準、快速外部組件互連(Peripheral Component Interconnect Express,PCIe)標準、非揮發性記憶體儲存裝置(Non-Volatile Memory Express,NVMe)標準、非揮發性記憶體儲存裝置外接存取(NVMe-over-Fabrics,NVMeoF)標準、小型電腦系統介面(Small Computer System Interface,SCSI)標準、通用快閃記憶體儲存(Universal Flash Storage,UFS)標準等等),且可根據一個或多個標準來進行通訊,以允許運行程式模組52P的處理電路52藉由儲存介面電路54存取儲存裝置56以及複數個儲存裝置90,此外,網路介面電路58可用來提供有線或無線網絡連接,且相對應於一個或多個使用者的一個或多個客戶端裝置可藉由該有線或無線網絡連接在儲存伺服器10(例如其中的儲存裝置56以及複數個儲存裝置90)中存取(例如讀取或寫入)使用者資料。為了更好地理解,第1圖左半部所示的主裝置50以及在該架構中的相關電路/模組/裝置(例如運行程式模組52P的處理電路52以及儲存 介面電路54)可分別作為上述的主裝置以及其中的相關電路/模組/裝置(例如對應於該方法且運行一個或多個程式模組的處理電路以及相關電路)的範例。
在第1圖所示的架構中,儲存伺服器10可被繪示為包含有主裝置50以及耦接於主裝置50的複數個儲存裝置90,但是本發明不限於此,例如,主裝置50可另包含有用來安裝主裝置50的元件(例如第1圖所示的處理電路52、儲存介面電路54、網路介面電路58等等)的外殼/機殼(例如電腦機殼,其可以由金屬及/或一種或多種其他材料所製成)以及複數個儲存裝置90的至少一部分(例如一部分或全部),又例如,儲存伺服器10可另包含有耦接於主裝置50以及複數個儲存裝置90的至少一部分(例如一部分或全部)之間的至少一個切換電路(switch circuit)(例如一個或多個切換電路),用來進行主裝置50以及上述的複數個儲存裝置90的至少一部分之間的訊號切換(signal switching)。
根據某些實施例,運行程式模組52P的處理電路52或儲存介面電路54可以設定(configure)複數個儲存裝置90的至少一部分(例如一部分或全部),以形成儲存池(storage pool)架構,但是本發明不限於此,根據某些實施例,運行程式模組52P的處理電路52或儲存介面電路54可以設定複數個儲存裝置90的至少一部分(例如一部分或全部),以形成儲存伺服器10的容錯式磁碟陣列(Redundant Array of Independent Disks,RAID)(例如全快閃陣列(All Flash Array,AFA))。
第2圖為根據本發明一實施例之第1圖所示的儲存伺服器10中之儲存裝置的一些實作細節的示意圖,其中儲存裝置100可作為複數個儲存裝置90中任一個儲存裝置的範例,尤其,複數個儲存裝置90的每一個儲存裝置可根據儲存裝置100的架構來實作,但是本發明不限於此。儲存裝置100可用來提供儲存空 間給主裝置50,在主裝置50的控制下,一個或多個客戶端裝置可以在儲存空間中存取(例如讀取或寫入)使用者資料,主裝置50的範例可包含但不限於:個人電腦(例如桌上型電腦或筆記型電腦),儲存裝置100的範例可包含但不限於:固態硬碟以及各種類型的嵌入式記憶體裝置(例如符合通用快閃記憶體儲存或嵌入式多媒體記憶卡(embedded multi media card,EMMC)標準等等)。根據本實施例,儲存裝置100可包含有一控制器(例如記憶體控制器110),並且另包含有非揮發性記憶體120,其中該控制器係用來控制儲存裝置100的操作以及存取非揮發性記憶體120,以及非揮發性記憶體120係用來儲存資訊,非揮發性記憶體120可包含有至少一非揮發性記憶體元件(例如一個或多個非揮發性記憶體元件),諸如複數個非揮發性記憶體元件120-1、120-2、...、以及122-N,其中“N”可代表大於一的正整數,例如,非揮發性記憶體120可以為一快閃記憶體,以及複數個非揮發性記憶體元件120-1、120-2、...、以及122-N可以為複數個快閃記憶體晶片(chip)或複數個快閃記憶體裸晶(die),但是本發明不限於此。
根據本實施例,記憶體控制器110可用來控制非揮發性記憶體120的存取,以允許主裝置50透過記憶體控制器110來存取非揮發性記憶體120,以在儲存伺服器10中進行存取管理,如第2圖所示,記憶體控制器110可包含有一處理電路(例如微處理器112)、一儲存單元(例如唯讀記憶體(read-only memory,ROM)112M)、控制邏輯電路114、隨機存取記憶體116以及傳輸介面電路118,其中上述元件可藉由一匯流排互相耦接。隨機存取記憶體116係藉由一靜態隨機存取記憶體(static RAM,SRAM)來實作,但是本發明不限於此,隨機存取記憶體116可用來提供內部儲存空間給記憶體控制器110,例如,隨機存取記憶體116可被使用為一緩衝記憶體以緩衝資料,此外,本實施例的唯讀記憶體112M係用來儲存程式碼112C,以及微處理器112係用來執行程式碼112C以控制記憶體控制器 110的操作,以控制非揮發性記憶體120的存取,以允許主裝置50透過記憶體控制器110來存取非揮發性記憶體120。要注意的是,在某些範例中,程式碼112C可儲存在隨機存取記憶體116或任一類型的記憶體,此外,控制邏輯電路114可用來控制非揮發性記憶體120,並且可包含用來保護資料及/或進行錯誤校正的資料保護電路(未顯示),但是本發明不限於此,傳輸介面電路118可符合一特定通訊標準(例如串行先進技術附件標準、外部組件互連標準、快速外部組件互連標準、非揮發性記憶體儲存裝置標準、非揮發性記憶體儲存裝置外接存取標準、小型電腦系統介面標準、通用快閃記憶體儲存標準等等),並且可根據該特定通訊標準來進行通訊,例如,為儲存裝置100來與主裝置50進行通訊,其中儲存介面電路54可符合該特定通訊標準,以為主裝置50來與儲存裝置100進行通訊。
根據某些實施例,主裝置50可傳輸複數個主機命令以及相對應的複數個邏輯位址給記憶體控制器110,以存取儲存裝置100,記憶體控制器110接收該複數個主機命令以及該複數個邏輯位址,並且將該複數個主機命令轉換為複數個記憶體操作命令(為簡潔起見,可以稱為複數個操作命令),並且進一步地藉由該複數個操作命令來控制非揮發性記憶體120以在非揮發性記憶體120內有著複數個實體位址的儲存單元(例如資料頁面)上進行讀取、寫入/編程等等,其中該複數個實體位址可與該複數個邏輯位址相關聯,當記憶體控制器110在複數個非揮發性記憶體元件120-1、120-2、...、以及122-N的任一個非揮發性記憶體元件122-n(“n”可代表[1,N]區間中的任一個整數)上進行一抹除(erase)操作時,非揮發性記憶體元件122-n的多個區塊的至少一區塊可被抹除,其中該些區塊的每一個區塊可包含有多個頁面(例如資料頁面),以及一存取操作(例如讀取或寫入)可在一個或多個頁面上被進行。
根據某些實施例,儲存伺服器10(例如主裝置50)可根據Ceph解決方案來操作,以使儲存伺服器10透過軟體定義成為分散式儲存系統的一部分,最佳地,複數個儲存系統(例如多個儲存伺服器{10},諸如儲存伺服器10)可用來形成分散式儲存系統的資源池(resource pool),以支持像是具有某些特徵(feature)(例如容錯、自動故障轉移控制等等)的各種類型的存取,諸如區塊裝置型(例如在分散式儲存系統中用來存取一模擬區塊裝置(emulated block device))、檔案系統型(例如在分散式儲存系統中用來存取一檔案系統)以及物件型(例如在分散式儲存系統中用來在物件命名空間(object namespace)內存取一物件),但是本發明不限於此。舉例來說,一檔案可在分散式儲存系統內被儲存為物件命名空間中的一物件,又例如,對應於某位址的一資料區塊可在分散式儲存系統內被儲存為物件命名空間中的一物件,為了執行分散式儲存系統的特徵,除了資料(例如使用者資料)外,儲存伺服器10可用來儲存額外資訊(例如元資料(metadata)以及日誌(journal))。
第3圖為根據本發明一實施例之利用索引物件來進行簡易儲存服務無縫遷移之方法的基於索引物件之遷移控制方案,其中該方法可應用於儲存伺服器10。儲存伺服器10可充當第二雲的角色,以及可視為資料遷移的目的地(destination),而遠端簡易儲存服務相容伺服器可充當第一雲的角色,以及可視為資料遷移的來源端(source),例如,在第一時間點T1之前,使用者可在遠端簡易儲存服務相容伺服器中存取(例如讀取或寫入)資料,並且發現他/她在遠端簡易儲存服務相容伺服器中的個人儲存容量幾乎用完,且可能會受到遠端簡易儲存服務相容伺服器之性能低下的困擾。
因應自遠端簡易儲存服務相容伺服器遷移儲存伺服器10之使用者的使用者資料至儲存伺服器10的一要求,於使用者資料之遷移的多個階段中的索引階段(例如INDEX階段)的期間(例如根據使用者的要求,自遠端簡易儲存服務相容伺服器遷移使用者資料至儲存伺服器10),運行在處理電路52上的程式模組52P中的基於索引物件的簡易儲存服務遷移管理模組53可創建以及儲存多個索引物件(例如沒有物件資料的虛擬物件)至儲存伺服器10的儲存裝置層(storage device layer),以作為儲存伺服器10中的使用者資料的多個常態物件(normal object)的各自的代表,並且遷移多個常態物件的各自的存取控制列表(Access Control List,ACL)至儲存伺服器10,以作為多個索引物件的各自的存取控制列表,宛如多個索引物件係為多個常態物件,以最小化該多個常態物件中任一常態物件的任一改變影響該使用者資料之該遷移的正確性的機率,其中儲存裝置層包含有耦接至主裝置50的至少一儲存裝置(例如一個或多個儲存裝置),諸如複數個儲存裝置90。藉由將多個常態物件的各自的存取控制列表遷移至儲存伺服器10,以作為多個索引物件的各自的存取控制列表,基於索引物件的簡易儲存服務遷移管理模組53可利用多個索引物件來模擬(emulate)多個常態物件,例如,目的地(例如儲存伺服器10)可以在第一時間點T1開始遷移,在第一時間點T1之後,當使用者將任一個其它要求傳送至目的地(例如儲存伺服器10)以嘗試對任一個常態物件進行任何更改時,基於是否滿足一個或多個預定條件(例如任一個其它要求是否符合一個或多個預定規則),儲存伺服器10可選擇性地代理(proxy)(例如轉發(forward))任一個其它要求至來源端(例如遠端簡易儲存服務相容伺服器)並將相對應於任一個其它要求的一回應(response)自該來源端代理至該使用者。
於多個階段中索引階段之後的資料階段(例如DATA階段)的期間, 基於索引物件的簡易儲存服務遷移管理模組53可觸發一個或多個其它程式模組(例如一個或多個遷移代理程式),以自遠端簡易儲存服務相容伺服器將多個常態物件中一組常態物件的各自的物件資料遷移至儲存伺服器10的儲存裝置層,以作為多個索引物件中一組索引物件的各自的替換,以完成使用者資料之遷移,舉例來說,目的地(例如儲存伺服器10)可在第二時間點T2開始資料階段,並且在時間點T3完成遷移,假設於資料階段的期間,使用者將任一個其它要求傳送至目的地(例如儲存伺服器10),以嘗試對任一個常態物件進行任何更改,相似地,基於是否滿足一個或多個預定條件(例如任一個其它要求是否符合一個或多個預定規則),儲存伺服器10可選擇性地將任一個其它要求代理(例如轉發)至來源端(例如遠端簡易儲存服務相容伺服器)且將相對應於任一個其它要求的該回應自該來源端代理(例如轉發)至該使用者,舉例來說,當任一個其它要求是一物件獲取(Get-object)要求(例如“GetObject”)時,儲存伺服器10可為該要求在該使用者以及該來源端之間代理(例如轉發),且尤指為某些其各自的物件資料還未被遷移至該目的地(例如於遷移的期間,當儲存伺服器10接收到物件獲取要求時,該些索引物件的各自的物件資料還未被複製至該目的地,並且需要被複製至該目的地)的索引代理(例如轉發)該要求。為了更好地理解,當任一個其它要求不存在時(例如使用者沒有在時間點T1以及T3的期間傳送任一個其它要求),該組常態物件可包含所有的多個常態物件,並且該組索引物件可包含所有的多個索引物件。
只要不妨礙本發明的實作,藉由以下程式模組中的一個或多個程式模組可以實作一個或多個遷移代理程式:(1)運行在處理電路52上的程式模組52P中的一個或多個程式模組;(2)對於在主裝置50中具有多個處理電路{52}的多節點(multi-node) 架構的情況下,在多個處理電路{52}中運行在一個或多個其它處理電路上的一個或多個程式模組,其中多個處理電路{52}包含有處理電路52;以及(3)對於在儲存伺服器10中具有多個主裝置{50}的多主機(multi-host)架構的情況下,在多個主裝置{50}中一個或多個其它主裝置的運行在一個或多個相對應的處理電路上的一個或多個程式模組,其中多個主裝置{50}包含有主裝置50;但是本發明不限於此。
根據某些實施例,該方法以及相關設備可以用以利用Ceph的軟體庫(例如“librados”軟體庫)來進行針對Ceph架構的某些基本操作,其中Ceph的軟體庫可以用來向客戶端應用程式提供對基於物件的可靠自動化分散式物件儲存(reliable autonomic distributed object store,RADOS)儲存系統的直接存取,並且為某些Ceph的特徵(例如可靠自動化分散式物件儲存區塊裝置(RADOS block device,RBD)、可靠自動化分散式物件儲存閘道器(RADOS gateway,RGW)、Ceph檔案系統等等)提供一基礎,以及可靠自動化分散式物件儲存可以為Ceph分散式儲存系統的一部分,且可以視為與Ceph物件儲存叢集(cluster)互動的工具程式(utility),但是本發明不限於此。
第4圖為根據本發明一實施例之第3圖所示之基於索引物件的遷移控制方案的一些相關操作的示意圖,第一雲以及第二雲(為了更好地理解,分別標示為“簡易儲存服務相容儲存”以及“Bigtera儲存”)可分別作為遠端簡易儲存服務相容伺服器以及儲存伺服器10的範例,使用者可以透過一客戶端裝置(例如簡易儲存服務客戶端,為簡潔起見,標示為“S3客戶端”)分別存取遠端簡易儲存服務相容伺服器以及儲存伺服器10,舉例來說,每一個遠端簡易儲存服務相 容伺服器以及儲存伺服器10可以提供簡易儲存服務且可以為簡易儲存服務相容,且尤指可以提供物件儲存,以處理大量的非結構化資料,並且可以通過基於表現層狀態轉換(representational state transfer,REST)的應用程式介面(application program interface,API)(例如遵守表現層狀態轉換架構限制的網路服務(web service)應用程式介面,諸如表現層狀態轉換的應用程式介面(RESTful API))以及藉由利用超文本傳輸協定(hypertext transfer protocol,HTTP)/超文本傳輸安全協定(hypertext transfer protocol secure,HTTPS)來被存取。針對某些簡易儲存服務特徵,每一個遠端簡易儲存服務相容伺服器以及儲存伺服器10可以用來在一貯體(bucket)(例如物件的容器(container))中儲存一個或多個物件,並且一個或多個物件的任一個物件可包含一檔案以及可選擇性地包含任一個描述該檔案的元資料,其中任一個物件的物件前置碼(prefix)可包含一個或多個符號“/”,以支持資料夾概念(folder concept),以模擬一資料夾,此外,每一個遠端簡易儲存服務相容伺服器以及儲存伺服器10可具備至少一Ceph物件閘道器(為簡潔起見,標示為“閘道器”),諸如構建在librados之上以提供有著一表現層狀態轉換之閘道器的應用程式給Ceph儲存叢集的至少一物件儲存介面,其中該至少一Ceph物件閘道器支持遠端簡易儲存服務相容伺服器以及儲存伺服器10為簡易儲存服務相容以及Swift相容。如第4圖下半部所示,於使用者資料遷移的期間(為簡潔起見,標示為空心箭頭中的“資料”),使用者可將任一個其它要求(例如GET要求)傳送(藉由利用簡易儲存服務客戶端)至儲存伺服器10,以要求使用者資料的部分資料,儲存伺服器10可以將任一個其它要求(例如GET要求)代理(例如轉發)至遠端簡易儲存服務相容伺服器,並且代理(例如轉發)對應於該任一個其它要求(例如自遠端簡易儲存服務相容伺服器至使用者(例如使用者的簡易儲存服務客戶端)的部分資料,為簡潔起見,在一些用虛線表示的箭頭上標示為“資料”)的該回應。為簡潔起見, 本實施例的類似內容在此不再重複詳細描述。
根據某些實施例,在INDEX階段(例如INDEX時期)中,於預設情況下,該多個索引物件的每個索引物件可以被創建以具有一來源(source,src)物件(例如在第一雲中的一相對應的物件,諸如一常態物件,其中該索引物件係充當該常態物件的代表的角色)的某些屬性(attribute),並且該些屬性可包含來源物件的最後修改時間(last-modified-time,mtime)(例如來源修改時間(src-mtime),諸如bigtera-scr-mtime)、來源物件的大小(例如來源大小(src-size),諸如bigtera-src-size)以及來源物件的實體標籤(entity tag,Etag)(例如用於完整性檢查的一檔案雜湊(file hash),諸如MD5 sum),例如來源實體標籤(src-etagt),諸如bigtera-src-etag)。
第5圖為根據本發明一實施例之關於第3圖所示之基於索引物件的遷移控制方案的一些物件以及一些相關特徵的示意圖,於使用者資料遷移的期間,來源端(例如遠端簡易儲存服務相容伺服器)可包含一個或多個貯體(例如物件的一個或多個容器),諸如遠端貯體(remote bucket),並且該目的地(例如儲存伺服器10)可包含一個或多個貯體(例如物件的一個或多個容器),諸如遠端貯體上方顯示的該貯體,其中該要求以及該回應分別代表藉由儲存伺服器10自使用者(例如使用者的簡易儲存服務客戶端)接收的該要求以及藉由儲存伺服器10回傳至使用者(例如使用者的簡易儲存服務客戶端)的該回應,舉例來說,遠端貯體可包含多個常態物件,為了更好地理解,顯示在遠端貯體中的小圓圈。此外,該目的地的該貯體可包含多個索引物件的至少一部分(例如一部分或全部),且尤指一個或多個常態物件,其取決於該遷移的過程(例如該遷移完成的百分比,諸如1%、2%等等。)及/或任一個其它要求的存在。
在遷移上述多個索引物件的至少一部分的任一個索引物件的物件資料之前,儲存伺服器10可將目的地的貯體設置為具有與遠端貯體名稱(例如遠端貯體的貯體名稱)相同的貯體名稱,並且具有與遠端使用者憑證(credential)(例如遠端貯體的使用者憑證)相同的使用者憑證,且尤指具有虛假使用(fake usage)資訊,諸如虛假使用(例如大小、物件數量等等)的資訊,以作為遷移階段(例如索引階段以及資料階段)的暫時使用者資訊。一開始時,在遷移任一個索引物件的物件資料之前,儲存伺服器10可先在目的地的貯體中創建具有暫時屬性的多個索引物件諸如虛擬(dummy)索引物件(例如沒有物件資料的虛擬物件),當多個常態物件中的一常態物件已經被遷移至該目的地或針對該常態物件的某個操作在該目的地上已經被進行時(例如該常態物件的物件資料已經被遷移,或者使用者已經覆寫該常態物件),該常態物件可存在於該貯體中(如第5圖所示),此外,對於多個索引物件的每個索引物件,暫時屬性可包含:(1)來源物件最後修改時間(例如來源物件的最後修改時間),諸如bigtera-src-mtime;(2)來源物件大小(例如來源物件的大小),諸如bigtera-src-size;(3)來源物件實體標籤(例如來源物件的實體標籤),諸如bigtera-src-etag;其中這些暫時屬性的任一個屬性(例如每一個屬性)可被實作為一擴展屬性(x-attribute/XATTR/xattr),但是本發明不限於此,一旦來源物件的物件資料被遷移至目的地或使用者在該目的地覆寫該物件資料,該目的地(例如儲存伺服器10)可將上述所列出的暫時屬性移除,為簡潔起見,本實施例的類似內容在此不再重複詳細描述。
根據某些實施例,以第5圖右上方所示的常態物件作為來源物件的範例,當來源物件的物件資料被遷移至目的地或使用者在該目的地覆寫該物件資料時,儲存伺服器10可以使充當常態物件之代表的索引物件無效化(例如藉由移除其暫時屬性)及/或將索引物件替換為在該目的地的該貯體中的常態物件,但是本發明不限於此。
通常來說,更改一物件的存取控制列表不會改變該物件的修改時間,相關技術的資料遷移方法似乎在提出時沒有考慮這一點,因此不能適當地處理已刪除物件、唯讀物件等等。本發明的方法和相關設備可以在各種狀況中的任一狀況下適當地操作,其中更進一步的實作細節會在以下實施例中描述。
第6圖為根據本發明一實施例之利用索引物件來進行簡易儲存服務無縫遷移之方法的遷移代理控制方案的示意圖,因應將使用者資料自遠端簡易儲存服務相容伺服器遷移至儲存伺服器10的要求,於多個階段中的索引階段之前的一設置(set-up)階段(例如設置時期)的期間,儲存伺服器10可利用基於索引物件的簡易儲存服務遷移管理模組53來進行使用者資料之遷移的預處理,舉例來說,該預處理可包含步驟S01~S05的操作,但是本發明不限於此。
在步驟S01中,基於索引物件的簡易儲存服務遷移管理模組53,例如,可以在要求觸發後立即為一組簡易儲存服務使用者(例如一單一使用者,諸如上述的使用者,或者包含有上述之使用者的多個使用者)開始進行簡易儲存服務遷移。
在步驟S02中,基於索引物件的簡易儲存服務遷移管理模組53可以遷 移各自的使用者憑證以及該組簡易儲存服務使用者的各自的設定(例如配額(quota))。
在步驟S03中,基於索引物件的簡易儲存服務遷移管理模組53可以在目的地中針對該組使用者的每一使用者創建一個或多個貯體,並且設置相關遷移資訊,例如,該遷移資訊可包含代理參數(例如用來代理(例如轉發)的遠端使用者憑證)以及其他代理參數,以引導該目的地(例如儲存伺服器10)來將任一個其它要求代理(例如轉發)至來源端(例如遠端簡易儲存服務相容伺服器),並且將對應於該任一個其它要求的回應自該來源端代理(例如轉發)至使用者。
在步驟S04中,針對該一個或多個貯體的每一貯體,基於索引物件的簡易儲存服務遷移管理模組53可以遷移來源端之一相對應遠端貯體的貯體存取控制列表(bucket ACL)、貯體元資料(bucket metadata)以及貯體配額(bucket quota),以作為該一個或多個貯體的此一貯體的貯體存取控制列表、貯體元資料以及貯體配額。
在步驟S05中,基於索引物件的簡易儲存服務遷移管理模組53可以切換至少一端點,以自遠端簡易儲存服務相容伺服器的至少一叢集中存取使用者資料至儲存伺服器10中的至少一叢集。
在步驟S06中,在設置階段之後,基於索引物件的簡易儲存服務遷移管理模組53可以為該一個或多個貯體的該每一貯體來創建一索引貯體工作(例如INDEX工作),以進行來源端之相對應的遠端貯體至該一個或多個貯體的該貯 體的遷移,例如,基於索引物件的簡易儲存服務遷移管理模組53可以將該貯體設至索引階段(例如INDEX階段)。
為了更好地理解,一個或多個遷移代理程式的任一個遷移代理程式(例如每一個代理程式)可以視為實際進行物件遷移的程式模組,例如,基於索引物件的簡易儲存服務遷移管理模組53可以創建多個工作類型(例如相對應於索引階段的多個索引工作(例如多個INDEX工作)以及相對應於資料階段的多個資料工作(例如多個的DATA工作)),且尤指傳送及/或分配多個工作類型至一個或多個遷移代理程式,以分別進行資料階段以及索引階段的操作。假設該一個或多個代理程式包含多個代理程式,該多個代理程式可以分別被實作以在多個叢集節點上運行,其中一代理程式運行在多個叢集節點的每一個叢集節點上,因此,基於索引物件的簡易儲存服務遷移管理模組53可以同時借助於一個或多個遷移代理程式(例如多個遷移代理程式)來並行地將使用者資料(例如該物件的各自的物件資料)自來源端遷移至目的地。
在步驟S07中,基於索引物件的簡易儲存服務遷移管理模組53可以藉由一個或多個遷移代理程式中的某個代理程式來執行INDEX工作,以為來源端之每一個物件(例如多個常態物件的每一個常態物件)進行以下操作:(1)創建具有暫時屬性(例如來源物件最後修改時間,諸如bigtera-src-mtime;來源物件大小,諸如bigtera-src-size;以及來源物件實體標籤,諸如bigtera-src-etag)的一虛擬物件(例如不具有物件資料的一物件),以作為多個索引物件中的其中一個索引物件,其中暫時屬性可以為來源端之該每一個物件的虛假屬性(例如虛假最後修改時間、虛假實體標籤諸如虛假檔案雜湊以及虛假大小),而不是來源端之該每一個物件的真實屬性,因此可以視為特殊屬性; (2)自來源端將該物件的物件存取控制列表遷移至目的地;其中多個索引物件的所有索引物件係在步驟S07的所有操作完成之後被創建。
當索引工作(例如INDEX工作)完成時,基於索引物件的簡易儲存服務遷移管理模組53可以為該一個或多個貯體的該每一個貯體創建一資料工作(例如DATA工作),以進行來源端的相對應之遠端貯體至該一個或多個貯體的此一貯體的遷移。
在步驟S08中,針對該一個或多個貯體的該每一個貯體,基於索引物件的簡易儲存服務遷移管理模組53可以藉由一個或多個遷移代理程式的某個代理程式來執行DATA工作,以為來源端的每一個物件(例如於不存在任一個其它要求的情況下,多個常態物件的每一個常態物件;或者於存在任一個其它要求的情況下,該組常態物件的每一個常態物件,其中該任一個其它要求可能導致在該目的地中覆寫某個物件,以作為該貯體中的一常態物件)進行以下操作:(1)自該來源端遷移該物件的物件資料至該目的地;其中該遷移代理程式可遷移該貯體配額的最新版本(例如於不存在任一個其它要求的情況下,相對應的遠端貯體的原始貯體配額;或者於存在任一個其它要求的情況下,因應使用者做出的任何更改而更新的貯體配額)以作為在該工作結束時該貯體的貯體配額,例如,基於索引物件的簡易儲存服務遷移管理模組53可將該貯體設至資料階段(例如DATA階段)。
在相對應於該組簡易儲存服務使用者的所有貯體中,當該些貯體的一貯體於索引階段(例如INDEX階段)中正在處理時,該些貯體的另一貯體可 於資料階段(例如DATA階段)中正在處理。假設該一個或多個貯體包含多個貯體,當該多個貯體的一貯體於索引階段(例如INDEX階段)中正在處理時,該多個貯體的另一貯體可於資料階段(例如DATA階段)中正在處理,為簡潔起見,本實施例的類似內容在此不再重複詳細描述。
根據某些實施例,索引階段(例如INDEX階段)可能比資料階段(例如DATA階段)短很多,在該索引階段中,基於索引物件的簡易儲存服務遷移管理模組53可藉由步驟S07中的遷移代理程式來執行INDEX工作,以先列出遠端物件(例如來源端的多個常態物件),以進行創建虛擬物件以及遷移物件存取控制列表的操作。因為在索引階段(例如INDEX階段)中任一個其它要求可能存在,需要考慮不同情況,諸如索引物件還未被創建的一第一情況,以及儲存伺服器10正在創建索引物件的一第二情況等等,舉例來說,針對PUT/POST要求的處理應在本地位置(local site)(例如目的地,諸如儲存伺服器10)進行,以及儲存伺服器10可進行針對PUT/POST要求的該處理並且同時將該PUT/POST要求代理至遠端位置(remote site)(例如來源端,諸如遠端簡易儲存服務相容伺服器),以使貯體使用情況以及物件列出(List-Objects)要求(例如ListObjects request)的結果正確。在任一個其它要求存在於索引階段(例如INDEX階段)中的情況下,使用者可以在該階段中覆寫一個或多個物件,如果一索引物件被使用者覆寫,則該物件不再是一索引物件,因此遷移代理程式不會為該物件在資料階段(例如DATA階段)中遷移物件資料,此外,在資料階段(例如DATA階段)之前,所有索引物件可能已經被創建(包含其物件存取控制列表)。在資料階段(例如DATA階段)中,基於索引物件的簡易儲存服務遷移管理模組53可藉由步驟S08中的遷移代理程式來執行DATA工作,以列出本地物件(例如本地位置的物件,諸如索引物件),並且為每一個本地物件遷移物件資料。通常來說,大部分操作 可以正常地被進行,除了GET/HEAD物件要求,為了解決競爭危害(racing hazard),儲存伺服器10可利用原子(atomic)操作來創建索引物件以及藉由該索引物件來遷移資料(例如來源端的多個常態物件的物件資料),舉例來說,當遷移代理程式正在創建索引物件或遷移關於索引物件的資料時,如果PUT操作的一目標物件已經存在或沒有上述暫時屬性,則該PUT操作係被取消,其代表使用者已經覆寫該物件。針對代理(例如轉發)位在可靠自動化分散式物件儲存閘道器中的索引物件,在任一個其它要求存在的情況下,當客戶端裝置(例如簡易儲存服務客戶端)操作在一索引物件上或者該目的地的該貯體正處於INDEX階段中時,可能需要該目的地(例如儲存伺服器10)可以將該任一個其它要求代理至遠端位置(例如來源端,諸如遠端簡易儲存服務相容伺服器),並且將代理回應(例如對應於該任一個其它要求的回應)回傳至客戶端裝置,為簡潔起見,這些實施例的類似內容在此不再重複詳細描述。
第7圖為第1圖所示之具備基於索引物件的簡易儲存服務遷移管理模組53的Ceph物件儲存架構之範例的示意圖,第1圖所示之運行在處理電路52上的程式模組52P可包含一Ceph物件閘道器模組(為簡潔起見,在第7圖中標示為“Ceph物件閘道器”),其中該Ceph物件閘道器模組包含一些子模組,諸如一可靠自動化分散式物件儲存閘道器模組(為簡潔起見以及更好地理解,標示為“RADOS閘道器”)以及librados軟體庫(為簡潔起見,標示為“librados”),並且基於索引物件的簡易儲存服務遷移管理模組53係在可靠自動化分散式物件儲存閘道器模組中被實作,根據本實施例,客戶端裝置(標示為“客戶端”)可以通過超文本傳輸協定(例如簡易儲存服務或Swift應用程式介面)(為簡潔起見,標示為“HTTP(S3或Swift API)”)來存取儲存伺服器10,儲存伺服器10可以藉由多節點架構、多主機架構等等來實作,但是本發明不限於此。
如第7圖所示,儲存伺服器10的一可靠自動化分散式物件儲存(例如可靠自動化分散式物件儲存之基於物件的儲存系統)可包含通過至少一公共網路(public network)(例如一個或多個公共網路)來耦接至第1圖所示之主裝置50的多個物件儲存裝置(object storage device,OSD)節點(為簡潔起見,標示為“OSD節點”),並且另包含Ceph物件儲存架構的其它部分架構,諸如耦接至該多個物件儲存裝置節點的至少一叢集網路(cluster network)(例如一個或多個叢集網路)、構成仲裁(Quorum)的奇數個監視器(monitor)等等。該至少一公共網路可用來達成一第一預定速度諸如每秒十億位元(為簡潔起見,標示為“1G”),以及該至少一叢集網路可用來達到一第二預定速度諸如每秒一百億位元(為簡潔起見,標示為“10G”),其中該第二預定速度之每秒的位元越多越好,該多個物件儲存裝置節點可包含供日誌(journal)(例如多種類型的日誌,諸如物件儲存裝置日誌等等)使用的一些固態硬碟,以及更多的傳統硬碟,且尤指包含非容錯式磁碟陣列驅動架構,諸如集束磁碟/驅動器(just a bunch of disks/drives,JBOD)),為簡潔起見,該些實施例的類似內容在此不再重複詳細描述。
針對簡易儲存服務表現層狀態轉換的應用程式介面/操作,簡易儲存服務動作之物件相關操作的範例可包含但不限於:(1)物件列出要求(例如ListObjects request);(2)物件頭(Head-Object)要求(例如用來獲取物件屬性的HeadObject request);(3)物件獲取要求(例如GetObject request);(4)物件獲取存取控制列表(Get-Object-ACL)要求(例如GetObjectaACL request); (5)物件放置(Put-Object)要求(例如PutObject request);(6)創建多成分上傳(Create-Multipart-Upload)要求(例如CreateMultipartUpload request);(7)完成多成分上傳(Complete-Multipart-Upload)要求(例如CompleteMultipartUpload request);(8)物件放置存取控制列表(Put-Object-ACL)要求(例如PutObjectACL request);(9)物件刪除(Delete-Object)要求(例如DeleteObject request);其中某些後續實施例可能專注在上述列出的物件相關操作上。
第8圖為根據本發明一實施例之利用索引物件來進行簡易儲存服務無縫遷移之方法的物件列出控制方案的示意圖,如第8圖所示,於使用者資料遷移的期間用來處理一個或多個物件列出要求的一工作流程可包含步驟S10~S14,其中S14可包含一些子步驟諸如步驟S14A~S14C。
在步驟S10中,儲存伺服器10(例如基於索引物件的簡易儲存服務遷移管理模組53)可自使用者接收在一個或多個物件列出要求中的一物件列出要求。
在步驟S11中,因應該物件列出要求,基於索引物件的簡易儲存服務遷移管理模組53可檢查在儲存伺服器10的儲存裝置層中的至少一貯體中對應於該物件列出要求的一貯體(例如目的地的貯體)是否在索引階段(例如INDEX階段)中正在被處理,其中該至少一貯體可代表為物件的至少一容器(例如一個或多個容器),如果是,進入步驟S12;如果否,則進入步驟S14(例如步驟 S14A),舉例來說,該物件列出要求要求列出該貯體的物件。
在步驟S12中,因應該貯體在索引階段(例如INDEX階段)中正在被處理,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10來將該物件列出要求代理(例如轉發)至來源端(例如遠端簡易儲存服務相容伺服器)。
在步驟S13中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10來自該來源端(例如遠端簡易儲存服務相容伺服器)將對應於該物件列出要求的回應代理(例如轉發)至使用者。
在步驟S14中,因應該貯體在索引階段(例如INDEX階段)中沒有正在被處理,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以根據該物件列出要求來進行至少一常態動作,無需將該物件列出要求代理(例如轉發)至來源端(例如遠端簡易儲存服務相容伺服器),例如,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以根據一相關存取控制列表檢查是否通過來選擇性地將一本地物件列出結果(例如本地位置的一本地物件列出結果,諸如在本地位置執行該物件列出要求的結果)回傳至使用者。
在步驟S14A中,基於索引物件的簡易儲存服務遷移管理模組53可檢查該存取控制列表檢查是否通過,如果是,進入步驟S14B;如果否,則進入步驟S14C,例如,當存取控制列表指示使用者擁有將物件列出要求應用至該貯體的權限(例如執行物件列出要求的獲取結果的權限)時,基於索引物件的簡易儲存服務遷移管理模組53可判斷該存取控制列表檢查通過,又例如,當存取控 制列表指示使用者不擁有將物件列出要求應用至該貯體的權限(例如執行物件列出要求的獲取結果的權限)時,基於索引物件的簡易儲存服務遷移管理模組53可判斷該存取控制列表檢查不通過。
在步驟S14B中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10來將本地物件列出結果回傳至使用者。
在步驟S14C中,基於索引物件的簡易儲存服務遷移管理模組53可控制
儲存伺服器10來阻止將本地物件列出結果回傳至使用者。
為了更好地理解,該方法可利用第8圖所示之工作流程來說明,但是本發明不限於此,根據某些實施例,第8圖所示之工作流程中的一個或多個步驟可被添加、刪除、或更改,例如,該工作流程的至少一部分(例如一部分或全部)可被執行多次,且尤指包含有檢查操作的任一個步驟可被執行多次,以分別產生多個檢查結果,以分別觸發一些後續步驟的執行。
第9圖為根據本發明一實施例之利用索引物件來進行簡易儲存服務無縫遷移之方法的物件頭控制方案的示意圖,如第9圖所示,於使用者資料遷移的期間用來處理一個或多個物件頭要求的一工作流程可包含步驟S20~S28、S29A以及S29B,其中步驟S25可包含一些子步驟(例如S25A~S25C),以及步驟S27可包含一些子步驟(例如S27A~S27C)。
在步驟S20中,儲存伺服器(例如基於索引物件的簡易儲存服務遷移 管理模組53)可自使用者接收一個或多個物件頭要求的一個物件頭要求,例如,該物件頭要求要求獲取目的地的貯體中一物件的物件屬性,並且該物件可視為該物件頭要求的一目標物件,物件屬性可包含:(1)物件最後修改時間,諸如該物件的最後修改時間;(2)物件實體標籤,諸如該物件的實體標籤(例如檔案雜湊);(3)物件大小,諸如該物件的大小;其中這些屬性可以藉由一HTTP HEAD要求而被擷取。
在步驟S21中,因應該物件頭要求,基於索引物件的簡易儲存服務遷移管理模組53可檢查在儲存伺服器10的儲存裝置層中上述至少一貯體之中的對應於該物件頭要求之一貯體(例如目的地的貯體)是否在索引階段(例如INDEX階段)中正在被處理,如果是,進去步驟S22;如果否;則進入步驟S26。
在步驟S22中,因應該貯體在索引階段(例如INDEX階段)中正在被處理,基於索引物件的簡易儲存服務遷移管理模組53可檢查該物件(例如該物件頭要求的該目標物件)是否存在,如果是,進入步驟S23;如果否,則進去步驟S28。
在步驟S23中,因應該物件的存在,基於索引物件的簡易儲存服務遷移管理模組53可檢查該物件(例如該物件頭要求的該目標物件)是否仍為一索引物件,如果是,進入步驟S24;如果否,則進去步驟S27(例如步驟S27A)。
在步驟S24中,因應該物件仍為一索引物件,基於索引物件的簡易儲存服務遷移管理模組53可檢查該物件的物件存取控制列表是否被遷移;如果是 ,進入步驟S25(例如步驟S25A);如果否,則進入步驟S29A,舉例來說,在創建一虛擬物件(例如上述的虛擬物件)以及遷移該物件存取控制列表之間通常會有一短時間延遲,因此基於索引物件的簡易儲存服務遷移管理模組53可在該工作流程中進行步驟S24的檢查操作,以遵守存取控制方針。
在步驟S25中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以根據該物件頭要求來進行至少一特殊動作,例如,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以選擇性地根據一相關存取控制列表檢查是否通過來將記錄在該索引物件(例如在步驟S23中提到的該索引物件)的特殊屬性(例如來源修改時間,諸如bigtera-src-mtime、來源實體標籤,諸如bigtera-src-etag、以及來源大小,諸如bigtera-src-size)中的屬性回傳至使用者。
在步驟S25A中,基於索引物件的簡易儲存服務遷移管理模組53可檢查該存取控制列表檢查是否通過,如果是,進入步驟S25B;如果否,則進入步驟S25C,例如,當該存取控制列表指示使用者擁有將物件頭要求應用於該物件的權限(例如獲取執行該物件頭要求之結果的權限)時,基於索引物件的簡易儲存服務遷移管理模組53可判斷該存取控制列表檢查通過,又例如,當該存取控制列表指示使用者不擁有將物件頭要求應用於該物件的權限(例如獲取執行該物件頭要求之結果的權限)時,基於索引物件的簡易儲存服務遷移管理模組53可判斷該存取控制列表不通過。
在步驟S25B中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以將記錄在該索引物件(例如在步驟S23中提到的該索引物件) 之特殊屬性中的屬性回傳至使用者。
在步驟S25C中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以阻止將記錄在該索引物件(例如在步驟S23中提到的該索引物件)之特殊屬性中的屬性回傳至使用者。
在步驟S26中,因應該貯體在索引階段(例如INDEX階段)中沒有正在被處理,基於索引物件的簡易儲存服務遷移管理模組53可檢查該物件(例如該物件頭要求的該目標物件)是否仍為一索引物件,如果是,進入步驟S25(例如步驟S25A);如果否,則進入步驟S27(例如步驟S27A),針對步驟S26以及S27之間的部分工作流程,在資料階段(例如DATA階段)中,所有物件存取控制列表已經被遷移,因此無需再次獲取遠端物件存取控制列表。
在步驟S27中,因應該物件(例如該物件頭要求的該目標物件)已不再是一索引物件(例如該物件成為一常態物件),基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以根據該物件頭要求來進行至少一常態動作,例如,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以根據一相關存取控制列表檢查是否通過來選擇性地將該物件的本地元資料(例如本地位置的該物件之元資料)回傳至使用者。
在步驟S27A中,基於索引物件的簡易儲存服務遷移管理模組53可檢查存取控制列表檢查是否通過,如果是,進入步驟S27B;如果否,則進入步驟S27C,例如,步驟S27A的操作可相似於步驟S25A的操作。
在步驟S27B中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以將該物件的該本地元資料回傳至使用者。
在步驟S27C中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以阻止將該物件的該本地元資料回傳至使用者。
在步驟S28中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以將該要求(例如物件頭要求)代理(例如轉發)至來源端/遠端位置(例如遠端簡易儲存服務相容伺服器),以使該遠端位置檢查該物件存取控制列表。
在步驟S29中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以將對應於該物件頭要求的回應代理(例如轉發)至使用者。
在步驟S29E中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以回傳一錯誤通知(例如’503 Service Unavailable’),例如,由於遷移代理程式在極短時間內會遷移存取控制列表,此操作可通知客戶端稍後再嘗試。
為了更好地理解,該方法可利用第9圖所示之工作流程來說明,但是本發明不限於此,根據某些實施例,第9圖所示之工作流程中的一個或多個步驟可被添加、刪除、或更改,例如,該工作流程的至少一部分(例如一部分或全部)可被執行多次,且尤指包含有檢查操作的任一個步驟可被執行多次,以分別產生多個檢查結果,以分別觸發一些後續步驟的執行。
第10圖為根據本發明一實施例之利用索引物件來進行簡易儲存服務無縫遷移之方法的物件獲取控制方案的示意圖,如第10圖所示,於使用者資料遷移的期間用來處理一個或多個物件獲取要求的一工作流程可包含步驟S30~S36,其中步驟S36可包含一些子步驟(例如S36A~S36C)。
在步驟S30中,儲存伺服器10(例如基於索引物件的簡易儲存服務遷移管理模組53)可自使用者接收一個或多個物件獲取要求中的一物件獲取要求,例如,該物件獲取要求要求獲取有著屬性的物件資料,諸如目的地之貯體中的一物件的物件資料以及該物件的物件屬性,並且此物件可視為該物件獲取要求的一目標物件。
在步驟S31中,因應該物件獲取要求,基於索引物件的簡易儲存服務遷移管理模組53可檢查儲存伺服器之儲存裝置層中的上述至少一貯體中對應於該物件獲取要求的一貯體(例如目的地的貯體)是否在索引階段(例如INDEX階段)中正在被處理,如果是,進入步驟S32;如果否,則進入步驟S33。
在步驟S32中,因應該貯體在索引階段(例如INDEX階段)中正在被處理,基於索引物件的簡易儲存服務遷移管理模組53可檢查該物件(例如該物件獲取要求的該目標物件)是否存在,如果是,進入步驟S33;如果否,則進入步驟S34。針對步驟S32以及S34之間的部分工作流程,該物件不存在之原因的範例可包含:該索引物件還未被創建;以及該索引物件已經被使用者刪除。
在步驟S33中,基於索引物件的簡易儲存服務遷移管理模組53可檢查 該物件(例如該物件獲取要求的該目標物件)是否仍為一索引物件,如果是,進入步驟S34;如果否,則進入步驟S36(例如步驟S36A)。
在步驟S34中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以將該要求(例如該物件獲取要求)代理(例如轉發)至來源端/遠端位置(例如遠端簡易儲存服務相容伺服器)。
在步驟S35中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以將對應於該物件獲取要求的回應代理(例如轉發)至使用者。
在步驟S36中,因應該物件(例如該物件獲取要求的該目標物件)不再是一索引物件(例如該物件成為一常態物件),基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以根據該物件獲取要求來進行至少一常態動作,例如,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以根據一相關存取控制列表檢查是否通過來選擇性地將該物件的本地資料(例如本地位置的該物件之該資料)回傳至使用者。
在步驟S36A中,基於索引物件的簡易儲存服務遷移管理模組53可檢查該存取控制列表檢查是否通過,如果是,進入步驟S36B;如果否,則進入步驟S36C,例如,當該存取控制列表指示使用者擁有將該物件獲取要求應用於該物件的權限(例如獲取執行該物件獲取要求之結果的權限)時,基於索引物件的簡易儲存服務遷移管理模組53可判斷該存取控制列表檢查通過,又例如,當該存取控制列表指示使用者不擁有將該物件獲取要求應用於該物件的權限(例如獲取執行該物件獲取要求之結果的權限)時,基於索引物件的簡易儲存服務 遷移管理模組53可判斷該存取控制列表不通過。
在步驟S36B中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以將該物件的該本地資料回傳至使用者。
在步驟S36C中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10阻止將該物件的該本地資料回傳至使用者。
為了更好地理解,該方法可利用第10圖所示之工作流程來說明,但是本發明不限於此,根據某些實施例,第10圖所示之工作流程中的一個或多個步驟可被添加、刪除、或更改,例如,該工作流程的至少一部分(例如一部分或全部)可被執行多次,且尤指包含有檢查操作的任一個步驟可被執行多次,以分別產生多個檢查結果,以分別觸發一些後續步驟的執行。
第11圖為根據本發明一實施例之利用索引物件來進行簡易儲存服務無縫遷移之方法的物件獲取存取控制列表控制方案的示意圖,如第11圖所示,於使用者資料遷移的期間用來處理一個或多個物件獲取存取控制列表要求的一工作流程可包含步驟S40~S48,其中步驟S45可包含一些子步驟(例如S45A~S45C)。
在步驟S40中,儲存伺服器10(例如基於索引物件的簡易儲存服務遷移管理模組53)可自使用者接收在一個或多個物件獲取存取控制列表要求中的一物件獲取存取控制列表要求,例如,該物件獲取存取控制列表要求要求獲取物件存取控制列表(例如目的地的貯體中一貯體的存取控制列表),並且此物件 可視為該物件獲取存取控制列表要求的一目標物件。
在步驟S41中,因應該物件獲取存取控制列表要求,基於索引物件的簡易儲存服務遷移管理模組53可檢查儲存伺服器10的儲存裝置層中的上述至少一貯體中對應於該物件獲取存取控制列表要求的一貯體(例如目的地的貯體)是否在索引階段(例如INDEX階段)中正在被處理,如果是,進入步驟S42;如果否,則進入步驟S45(例如步驟S45A)。
在步驟S42中,因應該貯體在索引階段(例如INDEX階段)中正在被處理,基於索引物件的簡易儲存服務遷移管理模組53可檢查該物件(例如該物件獲取存取控制列表要求的該目標物件)是否存在,如果是,進入步驟S43;如果否,則進入步驟S46。
在步驟S43中,基於索引物件的簡易儲存服務遷移管理模組53可檢查該物件(例如該物件獲取存取控制列表要求的該目標物件)是否仍為一索引物件,如果是,進入步驟S44;如果否,則進入步驟S45(例如步驟S45A)。
在步驟S44中,因應該物件仍為一索引物件,基於索引物件的簡易儲存服務遷移管理模組53可檢查該物件的物件存取控制列表是否被遷移,如果是,進入步驟S45(例如步驟S45A);如果否,則進入步驟S48。
在步驟S45中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以根據該物件獲取存取控制列表要求來進行至少一常態動作,例如,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以根據 一相關存取控制列表檢查是否通過來選擇性地將該物件的本地存取控制列表(例如本地位置的該物件之存取控制列表)回傳至使用者。
在步驟S45A中,基於索引物件的簡易儲存服務遷移管理模組53可檢查該存取控制列表檢查是否通過,如果是,進入步驟S45B;如果否,則進入步驟S45C,例如,當存取控制列表指示使用者擁有將該物件獲取存取控制列表要求應用於該物件的權限(例如獲取執行該物件獲取存取控制列表要求之結果的權限)時,基於索引物件的簡易儲存服務遷移管理模組53可判斷該存取控制列表檢查通過,又例如,當存取控制列表指示使用者不擁有將該物件獲取存取控制列表要求應用於該物件的權限(例如獲取執行該物件獲取存取控制列表要求之結果的權限)時,基於索引物件的簡易儲存服務遷移管理模組53可判斷該存取控制列表檢查不通過。
在步驟S45B中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以將該物件的本地存取控制列表回傳至使用者。
在步驟S45C中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以阻止將該物件的本地存取控制列表回傳至使用者。
在步驟S46中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以將該要求(例如該物件獲取存取控制列表要求)代理(例如轉發)至來源端/遠端位置(例如遠端簡易儲存服務相容伺服器)。
在步驟S47中,基於索引物件的簡易儲存服務遷移管理模組53可控制 儲存伺服器10以將對應於該物件獲取存取控制列表要求的回應代理(例如轉發)至使用者。
在步驟S48中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以回傳一錯誤通知(例如’503 Service Unavailable’)。
為了更好地理解,該方法可利用第11圖所示之工作流程來說明,但是本發明不限於此,根據某些實施例,第11圖所示之工作流程中的一個或多個步驟可被添加、刪除、或更改,例如,該工作流程的至少一部分(例如一部分或全部)可被執行多次,且尤指包含有檢查操作的任一個步驟可被執行多次,以分別產生多個檢查結果,以分別觸發一些後續步驟的執行。
第12圖為根據本發明一實施例之利用索引物件來進行簡易儲存服務無縫遷移之方法的物件放置控制方案的示意圖,如第12圖所示,於使用者資料遷移的期間用來處理一個或多個物件資料寫入相關要求(例如一個或多個物件放置要求、一個或多個創建多成分上傳要求、以及一個或多個完成多成分上傳要求)的一工作流程可包含步驟S50~S58,其中步驟S56可包含一些子步驟(例如S56A~S56C)。
在步驟S50中,儲存伺服器10(例如基於索引物件的簡易儲存服務遷移管理模組53)可自使用者接收在一個或多個物件資料寫入相關要求(例如一個或多個放置要求、一個或多個創建多成分上傳要求、以及一個或多個完成多成分上傳要求)中的一物件資料寫入相關要求(例如一物件放置/創建多成分上傳/完成多成分上傳要求,諸如一物件放置要求、一創建多部分上傳要求簡或者 一完成多部分上傳要求),舉例來說,該物件資料寫入相關要求要求將一物件寫入至目的地的貯體,並且此物件可視為該物件資料寫入相關要求的一目標物件。
在步驟S51中,因應該物件資料寫入相關要求,基於索引物件的簡易儲存服務遷移管理模組53可檢查儲存伺服器10之儲存裝置層中的上述至少一貯體中對應於該物件資料寫入相關要求的一貯體(例如目的地的貯體)是否在索引階段(例如INDEX階段)中正在被處理,如果是,進入步驟S52;如果否,則進入步驟S56(例如步驟S56A)。
在步驟S52中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以將該要求(例如該物件資料寫入相關要求)代理(例如轉發)至來源端(例如遠端簡易儲存服務相容伺服器),以使遠端簡易儲存服務相容伺服器檢查該物件存取控制列表。
在步驟S53中,基於索引物件的簡易儲存服務遷移管理模組53可控制該要求(例如該物件資料寫入相關要求)是否成功而沒有任何錯誤,如果是(例如接收自該來源端的回應,諸如對應於該物件資料寫入相關要求的回應,指示沒有錯誤發生),進入步驟S54;如果否(例如接收自該來源端的回應,諸如對應於該物件資料寫入相關要求的回應,係指示一個或多個錯誤的一錯誤回應),則進入步驟S57。
在步驟S54中,基於索引物件的簡易儲存服務遷移管理模組53可檢查該物件(例如該物件資料寫入相關要求的該目標物件)是否存在,如果是,進入步驟S55;如果否,則進入步驟S56(例如步驟S56A)。
在步驟S55中,基於索引物件的簡易儲存服務遷移管理模組53可檢查該物件的物件存取控制列表是否被遷移,如果是,進入步驟S56(例如步驟S56A);如果否,則進入步驟S58。
在步驟S56中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以根據該物件資料寫入相關要求來進行至少一常態動作,例如,基於索引物件的簡易儲存服務遷移管理模組53可根據一相關存取控制列表檢查是否通過來選擇性地將資料(例如該物件資料寫入相關要求所攜帶的該物件資料)寫入為該物件的該物件資料。
在步驟S56A中,基於索引物件的簡易儲存服務遷移管理模組53可檢查該存取控制列表檢查是否通過,如果是,進入步驟S56B;如果否,則進入步驟S56C,例如,當存取控制列表指示使用者擁有將該物件資料寫入相關要求應用於該物件的權限(將該物件資料寫入相關要求所攜帶的該物件資料寫入的權限)時,基於索引物件的簡易儲存服務遷移管理模組53可判斷該存取控制列表檢查通過,又例如,當存取控制列表指示使用者不擁有將該物件資料寫入相關要求應用於該物件的權限(將該物件資料寫入相關要求所攜帶的該物件資料寫入的權限)時,基於索引物件的簡易儲存服務遷移管理模組53可判斷該存取控制列表檢查不通過。
在步驟S56B中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以將該資料(例如該物件資料寫入相關要求所攜帶的該物件資料)寫入為該物件的該物件資料。
在步驟S56C中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以阻止將該資料(例如該物件資料寫入相關要求所攜帶的該物件資料)寫入為該物件的該物件資料。
在步驟S57中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以將對應於該物件資料寫入相關要求的該錯誤回應代理(例如轉發)至使用者。
在步驟S58中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以自來源端將該物件的物件存取控制列表遷移至目的地。
為了更好地理解,該方法可利用第12圖所示之工作流程來說明,但是本發明不限於此,根據某些實施例,第12圖所示之工作流程中的一個或多個步驟可被添加、刪除、或更改,例如,該工作流程的至少一部分(例如一部分或全部)可被執行多次,且尤指包含有檢查操作的任一個步驟可被執行多次,以分別產生多個檢查結果,以分別觸發一些後續步驟的執行。
第13圖為根據本發明一實施例之利用索引物件來進行簡易儲存服務無縫遷移之方法的物件放置存取控制列表控制方案的示意圖,如第13圖所示,於使用者資料遷移的期間用來處理一個或多個物件放置存取控制列表要求的一工作流程可包含步驟S60~S65,其中步驟S64可包含一些子步驟(例如S64A~S64C)。
在步驟S60中,儲存伺服器10(例如基於索引物件的簡易儲存服務遷移管理模組53)可自使用者接收一個或多個物件放置存取控制列表要求的一物件放置存取控制列表要求,例如,該物件放置存取控制列表要求要求寫入或者更新物件存取控制列表(例如在目的地之貯體中一物件的存取控制列表),並且此物件可視為該物件放置存取控制列表要求的一目標物件。
在步驟S61中,因應該物件放置存取控制列表要求,基於索引物件的簡易儲存服務遷移管理模組53可檢查在儲存伺服器10之儲存裝置層中的上述至少一貯體中對應於該物件放置存取控制列表要求的一貯體(例如目的地的貯體)是否在索引階段(例如INDEX階段)中正在被處理,如果是,進入步驟S62,如果否,則進入步驟S64(例如步驟S64A)。
在步驟S62中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以將該要求(例如物件放置存取控制列表要求)代理(例如轉發)至來源端(例如遠端簡易儲存服務相容伺服器)。
在步驟S63中,基於索引物件的簡易儲存服務遷移管理模組53可檢查該要求(例如物件放置存取控制列表要求)是否成功而沒有任何錯誤,如果是(例如自來源端接收的回應,諸如對應於該物件放置存取控制列表要求的回應,指示沒有錯誤發生),進入步驟S64(例如步驟S64A);如果否(例如自來源端接收的回應,諸如對應於該物件放置存取控制列表要求的回應,係為指示一個或多個錯誤的一錯誤回應(error response)),則進入步驟S65。
在步驟S64中,基於索引物件的簡易儲存服務遷移管理模組53可控制 儲存伺服器10以根據該物件放置存取控制列表要求來進行至少一常態動作,例如,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以根據一相關存取控制列表檢查是否通過來選擇性地更新有著該物件放置存取控制列表要求所攜帶之新/最新的存取控制列表的該物件存取控制列表(例如該目標物件的該存取控制列表)。
在步驟S64A中,基於索引物件的簡易儲存服務遷移管理模組53可檢查該存取控制列表檢查是否通過,如果是,進入步驟S64B;如果否,則進入步驟S64C,例如,當存取控制列表指示使用者擁有將該物件放置存取控制列表要求應用於該物件的權限(例如寫入或者更新該物件存取控制列表的權限)時,基於索引物件的簡易儲存服務遷移管理模組53可判斷該存取控制列表檢查通過,又例如,當存取控制列表指示使用者不擁有將該物件放置存取控制列表要求應用於該物件的權限(例如寫入或者更新該物件存取控制列表的權限)時,基於索引物件的簡易儲存服務遷移管理模組53可判斷該存取控制列表檢查不通過。
在步驟S64B中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以更新有著該物件放置存取控制列表要求所攜帶之該新的存取控制列表的該物件存取控制列表(例如該目標物件的該存取控制列表)。
在步驟S64C中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以將對應於該物件放置存取控制列表要求的該錯誤回應代理(例如轉發)至使用者。
為了更好地理解,該方法可利用第13圖所示之工作流程來說明,但是本發明不限於此,根據某些實施例,第13圖所示之工作流程中的一個或多個步驟可被添加、刪除、或更改,例如,該工作流程的至少一部分(例如一部分或全部)可被執行多次,且尤指包含有檢查操作的任一個步驟可被執行多次,以分別產生多個檢查結果,以分別觸發一些後續步驟的執行。
第14圖為根據本發明一實施例之利用索引物件來進行簡易儲存服務無縫遷移之方法的物件刪除控制方案的示意圖,如第14圖所示,於使用者資料遷移的期間用來處理一個或多個物件刪除要求的一工作流程可包含步驟S70~S75,其中步驟S74可包含一些子步驟(例如S74A~S74D)。
在步驟S70中,儲存伺服器10(例如基於索引物件的簡易儲存服務遷移管理模組53)可自使用者接收在一個或多個物件刪除要求的一物件刪除要求,例如,該物件刪除要求要求刪除在目的地之貯體中的一物件,並且此物件可視為該物件刪除要求的一目標物件。
在步驟S71中,因應該物件刪除要求,基於索引物件的簡易儲存服務遷移管理模組53可檢查在儲存伺服器10之儲存裝置層中的上述至少一貯體中對應於該物件刪除要求的一貯體(例如目的地的貯體)是否在索引階段(例如INDEX階段)中正在被處理,如果是,進入步驟S72,如果否,則進入步驟S74(例如步驟S74A)。
在步驟S72中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以將該要求(例如物件刪除要求)代理(例如轉發)至來源端(例 如遠端簡易儲存服務相容伺服器)。
在步驟S73中,基於索引物件的簡易儲存服務遷移管理模組53可檢查該要求(例如物件刪除要求)是否成功而沒有任何錯誤,如果是(例如自來源端接收的回應,諸如對應於該物件刪除要求的回應,指示沒有錯誤發生),進入步驟S74(例如步驟S74A);如果否(例如自來源端接收的回應,諸如對應於該物件刪除要求的回應,係為指示一個或多個錯誤的一錯誤回應),則進入步驟S75。
在步驟S74中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以根據該物件刪除要求來進行至少一常態動作,例如,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以至少根據一相關存取控制列表檢查是否通過來選擇性地刪除該物件(例如該目標物件),又例如,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以至少根據該物件是否存在來選擇性地刪除該物件(例如該目標物件),較佳地,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以根據一第一條件以及一第二條件是否被滿足來選擇性地刪除該物件(例如該目標物件),其中該第一條件代表該存取控制列表檢查通過,以及該第二條件代表該物件存在。
在步驟S74A中,基於索引物件的簡易儲存服務遷移管理模組53可檢查該存取控制列表檢查是否通過,如果是,進入步驟S74B;如果否,則進入步驟S74D,例如,當存取控制列表指示使用者擁有將該物件刪除要求應用於該物件的權限(例如刪除該物件的權限)時,基於索引物件的簡易儲存服務遷移管理模組53可判斷該存取控制列表檢查通過,又例如,當存取控制列表指示使用 者不擁有將該物件刪除要求應用於該物件的權限(例如刪除該物件的權限)時,基於索引物件的簡易儲存服務遷移管理模組53可判斷該存取控制列表檢查不通過。
在步驟S74B中,基於索引物件的簡易儲存服務遷移管理模組53可檢查該物件(例如該物件刪除要求的該目標物件)是否存在,如果是,進入步驟S74C;如果否,則進入步驟S74D。
在步驟S74C中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以刪除該物件(例如該目標物件)。
在步驟S74D中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以阻止刪除該物件(例如該目標物件)。
在步驟S75中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以將對應於該物件刪除要求的該錯誤回應代理(例如轉發)至使用者。
為了更好地理解,該方法可利用第14圖所示之工作流程來說明,但是本發明不限於此,根據某些實施例,第14圖所示之工作流程中的一個或多個步驟可被添加、刪除、或更改,例如,該工作流程的至少一部分(例如一部分或全部)可被執行多次,且尤指包含有檢查操作的任一個步驟可被執行多次,以分別產生多個檢查結果,以分別觸發一些後續步驟的執行。此外,步驟S74A以及S74B的組合可用來檢查該第一條件以及該第二條件是否都被滿足,分別被 步驟S74A以及S74B檢查的條件可被交換,例如,基於索引物件的簡易儲存服務遷移管理模組53可檢查在步驟S74A中的該第二條件是否被滿足,且檢查在步驟S74B中的該第一條件是否被滿足,如果該第一條件以及該第二條件都被滿足(例如該存取控制列表檢查通過以及該物件存在),進入步驟S74C;否則,進入步驟S74D。
Figure 110113682-A0305-02-0050-1
表一繪示了在索引階段(例如INDEX階段)以及資料階段(例如DATA階段)中儲存伺服器10的可靠自動化分散式物件儲存閘道器動作之簡單行為的 一些範例,其中該些要求,諸如GET物件、GET物件存取控制列表、HEAD物件、PUT物件存取控制列表、DELETE物件、列出物件、以及上傳物件(在表一的左半部中列出),分別代表一個或多個物件獲取要求、一個或多個物件獲取存取控制列表要求、一個或多個物件頭要求、一個或多個物件放置存取控制列表要求、一個或多個物件刪除要求、一個或多個物件列出要求、以及一個或多個物件資料寫入相關要求(例如一個或多個物件放置要求、一個或多個創建多成分上傳要求、以及一個或多個完成多成分上傳要求)。在基於索引物件的簡易儲存服務遷移管理模組53的控制下,儲存伺服器10可正確地並且有效地操作,為了更好地理解,在上述實施例中描述的一些操作可被簡單總結於表一的“索引階段”以及“資料階段”的欄位中。
舉例來說,在索引階段中,當任一個其它要求代表物件獲取要求時,如果該目標物件不存在或者有著最後修改時間(例如來源修改時間),則儲存伺服器10可將此要求代理至來源端;當任一個其它要求代表物件獲取存取控制列表要求以及物件頭要求的任一個時,如果該目標物件不存在,則儲存伺服器10可將此要求代理至來源端;當任一個其它要求代表物件放置存取控制列表要求時,儲存伺服器10可將此要求代理至來源端,以其將此要求所攜帶的物件存取控制列表寫入至本地位置(例如目的地,諸如儲存伺服器10);當任一個其它要求代表物件刪除要求時,儲存伺服器10可將此要求代理至來源端,並且如果目標物件存在,則刪除本地物件(例如該目標物件);當任一個其它要求代表物件列出要求時,儲存伺服器10可將此要求代理至來源端;以及當任一個其它要求代表物件資料寫入相關要求(例如物件放置要求、創建多部分上傳要求、或者完成多部分上傳要求)時,儲存伺服器10可將此要求代理至來源端,並且將此要求所攜帶的物件資料寫入至本地位置(例如目的地,諸如儲存伺服器10)。在 資料階段中,當任一個其它要求代表物件獲取要求時,如果該目標物件有著最後修改時間(例如來源修改時間),則儲存伺服器10可代理此要求;以及當任一個其它要求代表在所有的這些要求中其餘要求的任一個時,儲存伺服器10可允許此要求的相關處理,無需將該要求代理至來源端。
因為索引階段僅需花費很短的時間,並且因為基於索引物件的簡易儲存服務遷移管理模組53可以於使用者遷移的期間借助該方法之各種的控制方案來適當地控制儲存伺服器10,儲存伺服器10可以簡單地針對私有雲來進行簡易儲存服務無縫遷移(例如,從任一個公有/私有雲至一私有雲的簡易儲存服務無縫遷移),以允許使用者於資料遷移期間正常地且順暢地存取資料,在基於索引物件的簡易儲存服務遷移管理模組53的控制下,儲存伺服器10可以正確地遷移使用者資料,同時適當地處理任一個其它要求(如果存在),因此不會產生任何錯誤資料(例如由於相關技術之不正確遷移管理而導致的錯誤資料,通常是在使用者於遷移期間更改(例如寫入、覆寫、刪除等等)某些東西的情況下被發現),藉此使使用者之遷移變得無縫,為簡潔起見,本實施例的類似內容在此不再重複詳細描述。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
T1~T3:時間點

Claims (20)

  1. 一種利用索引物件來進行簡易儲存服務無縫遷移的方法,該方法係應用於一儲存伺服器,該方法包含有:因應自一遠端簡易儲存服務相容伺服器遷移該儲存伺服器的一使用者的一使用者資料至該儲存伺服器的一要求,於該使用者資料之一遷移的多個階段中的一索引階段中,利用在該儲存伺服器中的一主裝置上運行的多個程式模組中的一基於索引物件的簡易儲存服務遷移管理模組來創建並儲存多個索引物件至該儲存伺服器的一儲存裝置層,以作為在該儲存伺服器中的該使用者資料的多個常態物件的各自的代表,並且遷移該多個常態物件的各自的存取控制列表至該儲存伺服器以作為該多個索引物件的各自的存取控制列表,以最小化該多個常態物件中任一常態物件的任一改變影響該使用者資料之該遷移的正確性的機率,其中該多個常態物件中所述任一常態物件的所述任一改變影響該使用者資料之該遷移的所述正確性的所述機率代表所述任一常態物件的所述任一改變導致該使用者資料之該遷移發生錯誤之機率,該儲存伺服器包含有該主裝置以及該儲存裝置層,該儲存裝置層包含有耦接於該主裝置的至少一儲存裝置,該主裝置係用來控制該儲存伺服器的操作,且該至少一儲存裝置係用來為該儲存伺服器儲存資訊;以及於該多個階段中的該索引階段之後的一資料階段中,利用該基於索引物件的簡易儲存服務遷移管理模組來觸發一個或多個遷移代理程式,以自該遠端簡易儲存服務相容伺服器遷移該多個常態物件中的一組常態物件的各自的物件資料至該儲存伺服器的該儲存裝置層,以作為在該多個索引物件中的一組索引物件的各自的替換,以完成該使用者資料之該遷移,其中,觸發該一個或多個遷移代理程式包含: 創建相對應於該資料階段的至少一工作,且傳送該至少一工作至該一個或多個遷移代理程式中之任一遷移代理程式,以利用所述任一遷移代理程式進行物件遷移;其中在該基於索引物件的簡易儲存服務遷移管理模組的控制下,該儲存伺服器係用來根據至少一工作流程來操作以處理任一其它要求。
  2. 如申請專利範圍第1項所述之方法,另包含有:因應自該遠端簡易儲存服務相容伺服器遷移該使用者資料至該儲存伺服器的該要求,於該多個階段中的該索引階段之前的一設置階段中,利用該基於索引物件的簡易儲存服務遷移管理模組來進行該使用者資料之該遷移的預處理。
  3. 如申請專利範圍第2項所述之方法,其中該預處理包含將用以存取該使用者資料之至少一端點由該遠端簡易儲存服務相容伺服器的至少一叢集切換至該儲存伺服器的至少一叢集。
  4. 如申請專利範圍第1項所述之方法,其中該多個常態物件的該各自的存取控制列表被遷移至該儲存伺服器以作為該多個索引物件的該各自的存取控制列表,宛如該多個索引物件係為該多個常態物件,以最小化該多個常態物件中所述任一常態物件的所述任一改變影響該使用者資料之該遷移的所述正確性的所述機率。
  5. 如申請專利範圍第1項所述之方法,其中在用來處理任一其它要求的該至少一工作流程中,於該使用者資料之該遷移的期間用來處理一個或多 個物件資料寫入相關要求的一工作流程包含有:自該使用者接收在該一個或多個物件資料寫入相關要求的一物件資料寫入相關要求;因應該物件資料寫入相關要求,檢查在該儲存裝置層中的至少一貯體中對應於該物件資料寫入相關要求的一貯體在該索引階段中是否正在被處理,其中該至少一貯體代表為物件的至少一容器;因應該貯體在該索引階段中正在被處理,控制該儲存伺服器以將該物件資料寫入相關要求代理至該遠端簡易儲存服務相容伺服器;檢查該物件資料寫入相關要求是否成功而沒有任一錯誤,以產生一檢查結果,其中對應於該物件資料寫入相關要求的一回應係自該遠端簡易儲存服務相容伺服器被接收,並且係被利用來決定該檢查結果;因應該檢查結果表示該物件資料寫入相關要求成功而沒有任一錯誤,檢查該物件資料寫入相關要求的一目標物件是否存在;以及因應該目標物件的存在,檢查該目標物件的一存取控制列表是否被遷移,以根據該物件資料寫入相關要求來選擇性地進行至少一常態動作,而不需要將該物件資料寫入相關要求代理至該遠端簡易儲存服務相容伺服器。
  6. 如申請專利範圍第5項所述之方法,其中該至少一常態動作包含有:控制該儲存伺服器以根據一相關聯的存取控制列表檢查是否通過來選擇性地將該物件資料寫入相關要求所攜帶的物件資料寫入以作為該目標物件的一物件資料,其中如果該相關聯的存取控制列表檢查通過,該儲存伺服器將該物件資料寫入相關要求所攜帶的該物件資料寫入以作為該目標物件的該物件資料,否則,該儲存伺服器阻止將該物件資料寫入相關要求所攜帶的該物件資料寫入以作為該目標物件的該物件資料。
  7. 如申請專利範圍第5項所述之方法,其中控制該儲存伺服器以將該物件資料寫入相關要求代理至該遠端簡易儲存服務相容伺服器另包含有:控制該儲存伺服器以將該物件資料寫入相關要求代理至該遠端簡易儲存服務相容伺服器,以使該遠端簡易儲存服務相容伺服器檢查該目標物件的一存取控制列表,以產生對應於該物件資料寫入相關要求的該回應。
  8. 如申請專利範圍第5項所述之方法,其中該物件資料寫入相關要求代表一放置物件要求、一創建多成分上傳要求以及一完成多成分上傳要求的任一。
  9. 如申請專利範圍第5項所述之方法,其中於該使用者資料之該遷移的期間用來處理該一個或多個物件資料寫入相關要求的該工作流程的至少一部分被執行多次;包含有至少一檢查操作的至少一步驟被執行多次以分別產生多個檢查結果,以使後續步驟分別因應該多個檢查結果而被執行;以及於該使用者資料之該遷移的期間用來處理該一個或多個物件資料寫入相關要求的該工作流程另包含有:因應另一檢查結果表示該物件資料寫入相關要求並未成功而沒有任一錯誤,控制該儲存伺服器以將對應於該物件資料寫入相關要求的一錯誤回應代理至該使用者。
  10. 如申請專利範圍第1項所述之方法,其中於該使用者資料的該遷移的期間用來處理該一個或多個物件資料寫入相關要求的該工作流程的至少一部分被執行多次;以及包含有至少一檢查操作的至少一步驟被執行多次以 分別產生多個檢查結果,以使後續步驟分別因應該多個檢查結果而被執行。
  11. 如申請專利範圍第1項所述之方法,其中於該使用者資料之該遷移的期間用來處理一個或多個放置物件存取控制列表要求的一工作流程包含有:自該使用者接收在該一個或多個放置物件存取控制列表要求中的一放置物件存取控制列表要求;因應該放置物件存取控制列表要求,檢查在儲存裝置層中的至少一貯體中對應於該放置物件存取控制列表要求的一貯體在該索引階段中是否正在被處理,其中該至少一貯體代表為物件的至少一容器;因應該貯體在該索引階段中正在被處理,控制該儲存伺服器以將該放置物件存取控制列表要求代理至該遠端簡易儲存服務相容伺服器;檢查該放置物件存取控制列表要求是否成功而沒有任一錯誤,以產生一檢查結果,其中對應於該放置物件存取控制列表要求的一回應係自該遠端簡易儲存服務相容伺服器被接收,且係被利用來決定該檢查結果;以及因應該檢查結果表示該放置物件存取控制列表要求成功而沒有任一錯誤,控制該儲存伺服器以根據該放置物件存取控制列表要求來進行至少一常態動作,而不需要將該放置物件存取控制列表要求代理至該遠端簡易儲存服務相容伺服器。
  12. 如申請專利範圍第11項所述之方法,其中該至少一常態動作包含有:控制該儲存伺服器以根據一相關聯的存取控制列表檢查是否通過來選擇性 地將該放置物件存取控制列表要求的一目標物件的一舊的存取控制列表更新為該放置物件存取控制列表要求所攜帶的一新的存取控制列表,其中如果該相關聯的存取控制列表檢查通過,該儲存伺服器將該目標物件的該舊的存取控制列表更新為該放置物件存取控制列表要求所攜帶的該新的存取控制列表,否則,該儲存伺服器阻止將該目標物件的該舊的存取控制列表更新為該放置物件存取控制列表要求所攜帶的該新的存取控制列表。
  13. 如申請專利範圍第1項所述之方法,其中於該使用者資料之該遷移的期間用來處理一個或多個刪除物件要求的一工作流程包含有:自該使用者接收在該一個或多個刪除物件要求中的一刪除物件要求;因應該刪除物件要求,檢查在儲存裝置層中的至少一貯體中對應於該刪除物件要求的一貯體在該索引階段中是否正在被處理,其中該至少一貯體代表為物件的至少一容器;因應該貯體在該索引階段中正在被處理,控制該儲存伺服器以將該刪除物件要求代理至該遠端簡易儲存服務相容伺服器;檢查該刪除物件要求是否成功而沒有任一錯誤,以產生一檢查結果,其中對應於該刪除物件要求的一回應係自該遠端簡易儲存服務相容伺服器被接收,且係被利用來決定該檢查結果;以及因應該檢查結果表示該刪除物件要求成功而沒有任一錯誤,控制該儲存伺服器以根據該刪除物件要求來進行至少一常態動作,而不需要將該刪除物件要求代理至該遠端簡易儲存服務相容伺服器。
  14. 如申請專利範圍第13項所述之方法,其中該至少一常態動作包含 有:控制該儲存伺服器以至少根據一相關聯的存取控制列表檢查是否通過來選擇性地刪除該刪除物件要求的一目標物件。
  15. 如申請專利範圍第14項所述之方法,其中控制該儲存伺服器以至少根據該相關聯的存取控制列表檢查是否通過來選擇性地刪除該目標物件另包含有:控制該儲存伺服器以根據一第一條件以及一第二條件是否兩者皆被滿足來選擇性地刪除該目標物件,其中該第一條件代表該相關聯的存取控制列表檢查通過,以及該第二條件代表該目標物件存在,其中如果該第一條件以及該第二條件兩者皆被滿足,該儲存伺服器刪除該目標物件,否則,該儲存伺服器阻止刪除該目標物件。
  16. 如申請專利範圍第1項所述之方法,其中該儲存伺服器被實作為一私有雲,以及該遠端簡易儲存服務相容伺服器被實作為一公有雲或另一私有雲。
  17. 如申請專利範圍第1項所述之方法,其中該任一其它要求係要求對該使用者資料進行至少一更改。
  18. 一種主裝置,包含有:一處理電路,用來控制該主裝置以在一儲存伺服器中進行基於索引物件的簡易儲存服務遷移管理,其中該儲存伺服器包含有該主裝置以及一儲存裝置層,該儲存裝置層包含有耦接至該主裝置的至少一儲存裝置, 該主裝置係用來控制該儲存伺服器的操作,且該至少一儲存裝置係用來為該儲存伺服器儲存資訊,其中:因應自一遠端簡易儲存服務相容伺服器遷移該儲存伺服器的一使用者的一使用者資料至該儲存伺服器的一要求,於該使用者資料之一遷移的多個階段中的一索引階段中,運行在該處理電路上的多個程式模組中的一基於索引物件的簡易儲存服務遷移管理模組創建並儲存多個索引物件至該儲存裝置層,以作為在該儲存伺服器中的該使用者資料的多個常態物件的各自的代表,並且將該多個常態物件的各自的存取控制列表遷移至該儲存伺服器,以作為該多個索引物件的各自的存取控制列表,以最小化該多個常態物件中任一常態物件的任一改變影響該使用者資料之該遷移的正確性的機率,其中該多個常態物件中所述任一常態物件的所述任一改變影響該使用者資料之該遷移的所述正確性的所述機率代表所述任一常態物件的所述任一改變導致該使用者資料之該遷移發生錯誤之機率;以及於該多個階段中的該索引階段之後的一資料階段中,該基於索引物件的簡易儲存服務遷移管理模組觸發一個或多個遷移代理程式,以自該遠端簡易儲存服務相容伺服器遷移該多個常態物件中的一組常態物件的各自的物件資料至該儲存伺服器的該儲存裝置層,以作為在該多個索引物件中的一組索引物件的各自的替換,以完成該使用者資料之該遷移,其中,觸發該一個或多個遷移代理程式包含:創建相對應於該資料階段的至少一工作,且傳送該至少一工作至該一個或多個遷移代理程式中之任一遷移代理程式,以利用 所述任一遷移代理程式進行物件遷移;其中在該基於索引物件的簡易儲存服務遷移管理模組的控制下,該儲存伺服器係用來根據至少一工作流程來操作以處理任一其它要求。
  19. 如申請專利範圍第18項所述之主裝置,其另包含有:一機殼,用來安裝該主裝置的多個組件以及該至少一儲存裝置,其中該主裝置的該多個組件包含有該處理電路。
  20. 一種儲存伺服器,包含有:一主裝置,用來控制該儲存伺服器的操作,該主裝置包含有:一處理電路,用來控制該主裝置以進行在該儲存伺服器中的基於索引物件的簡易儲存服務遷移管理;以及一儲存裝置層,包含有:至少一儲存裝置,耦接至該主裝置,用來為該儲存伺服器儲存資訊;其中:因應自一遠端簡易儲存服務相容伺服器遷移該儲存伺服器的一使用者的一使用者資料至該儲存伺服器的一要求,於該使用者資料之一遷移的多個階段中的一索引階段中,運行在該處理電路上的多個程式模組中的一基於索引物件的簡易儲存服務遷移管理模組創建並儲存多個索引物件至該儲存裝置層,以作為在該儲存伺服器中的該使用者資料的多個常態物件的各自的代表,並且將該多個常態物件的各自的存取控制列表遷移至該儲存伺服器,以作為該多個索引物件的各自的存取控制列表,以最小化該多個常態物件中任一常態物件的任一改變影響該 使用者資料之該遷移的正確性的機率,其中該多個常態物件中所述任一常態物件的所述任一改變影響該使用者資料之該遷移的所述正確性的所述機率代表所述任一常態物件的所述任一改變導致該使用者資料之該遷移發生錯誤之機率;以及於該多個階段中的該索引階段之後的一資料階段中,該基於索引物件的簡易儲存服務遷移管理模組觸發一個或多個遷移代理程式,以自該遠端簡易儲存服務相容伺服器遷移該多個常態物件中的一組常態物件的各自的物件資料至該儲存伺服器的該儲存裝置層,以作為在該多個索引物件中的一組索引物件的各自的替換,以完成該使用者資料之該遷移,其中,觸發該一個或多個遷移代理程式包含:創建相對應於該資料階段的至少一工作,且傳送該至少一工作至該一個或多個遷移代理程式中之任一遷移代理程式,以利用所述任一遷移代理程式進行物件遷移;其中在該基於索引物件的簡易儲存服務遷移管理模組的控制下,該儲存伺服器係用來根據至少一工作流程來操作以處理任一其它要求。
TW110113682A 2020-04-29 2021-04-16 利用索引物件來進行簡易儲存服務無縫遷移的方法、主裝置以及儲存伺服器 TWI782487B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202063017001P 2020-04-29 2020-04-29
US63/017,001 2020-04-29
US17/167,096 US11297137B2 (en) 2020-04-29 2021-02-04 Method and apparatus for performing simple storage service seamless migration using index objects
US17/167,096 2021-02-04

Publications (2)

Publication Number Publication Date
TW202141295A TW202141295A (zh) 2021-11-01
TWI782487B true TWI782487B (zh) 2022-11-01

Family

ID=78161210

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110113682A TWI782487B (zh) 2020-04-29 2021-04-16 利用索引物件來進行簡易儲存服務無縫遷移的方法、主裝置以及儲存伺服器

Country Status (3)

Country Link
US (2) US11297137B2 (zh)
CN (1) CN113568566B (zh)
TW (1) TWI782487B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11405409B2 (en) * 2019-04-29 2022-08-02 Hewlett Packard Enterprise Development Lp Threat-aware copy data management
US11297137B2 (en) 2020-04-29 2022-04-05 Silicon Motion Technology (Hong Kong) Limited Method and apparatus for performing simple storage service seamless migration using index objects
US11516287B2 (en) * 2020-04-29 2022-11-29 Silicon Motion Technology (Hong Kong) Limited Method and apparatus for performing simple storage service seamless migration using index objects
US11928228B2 (en) * 2020-09-25 2024-03-12 EMC IP Holding Company LLC Facilitating an object protocol based access of data within a multiprotocol environment
US20230022226A1 (en) * 2021-07-22 2023-01-26 Vmware, Inc. Automated storage access control for clusters
CN115145497B (zh) * 2022-09-06 2022-11-29 深圳市杉岩数据技术有限公司 一种基于分布式存储的卷数据在线迁移方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200728992A (en) * 2006-01-20 2007-08-01 Hon Hai Prec Ind Co Ltd System and method for synchronizing file indexes in remote terminals
TW201403452A (zh) * 2009-01-23 2014-01-16 Infortrend Technology Inc 遠端非同步資料卷複製的方法及其裝置
US20190129802A1 (en) * 2017-11-02 2019-05-02 EMC IP Holding Company LLC Backup within a file system using a persistent cache layer to tier data to cloud storage
CN110659255A (zh) * 2018-06-28 2020-01-07 武汉斗鱼网络科技有限公司 一种数据迁移方法、装置、***以及存储介质

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10965742B2 (en) * 2012-02-13 2021-03-30 SkyKick, Inc. Migration project automation, e.g., automated selling, planning, migration and configuration of email systems
US9893964B2 (en) * 2014-04-28 2018-02-13 Nicira, Inc. System for aggregating statistics relating to a logical forwarding element
US20170315875A1 (en) * 2016-04-29 2017-11-02 Netapp, Inc. Namespace policy based deduplication indexes
CN110765156A (zh) 2018-07-09 2020-02-07 慧荣科技股份有限公司 链表搜索装置及方法
US10884662B2 (en) * 2018-08-06 2021-01-05 Silicon Motion, Inc. Method for performing storage control in a storage server, associated memory device and memory controller thereof, and associated storage server
CN111522499B (zh) 2019-02-01 2023-08-08 香港商希瑞科技股份有限公司 运维数据读取装置及其读取方法
CN110377580B (zh) * 2019-07-25 2022-02-01 中国工商银行股份有限公司 一种数据迁移方法、装置及设备
US11516287B2 (en) 2020-04-29 2022-11-29 Silicon Motion Technology (Hong Kong) Limited Method and apparatus for performing simple storage service seamless migration using index objects
US11297137B2 (en) 2020-04-29 2022-04-05 Silicon Motion Technology (Hong Kong) Limited Method and apparatus for performing simple storage service seamless migration using index objects

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200728992A (en) * 2006-01-20 2007-08-01 Hon Hai Prec Ind Co Ltd System and method for synchronizing file indexes in remote terminals
TW201403452A (zh) * 2009-01-23 2014-01-16 Infortrend Technology Inc 遠端非同步資料卷複製的方法及其裝置
US20190129802A1 (en) * 2017-11-02 2019-05-02 EMC IP Holding Company LLC Backup within a file system using a persistent cache layer to tier data to cloud storage
CN110659255A (zh) * 2018-06-28 2020-01-07 武汉斗鱼网络科技有限公司 一种数据迁移方法、装置、***以及存储介质

Also Published As

Publication number Publication date
US20210344752A1 (en) 2021-11-04
US11297137B2 (en) 2022-04-05
CN113568566A (zh) 2021-10-29
US20220182445A1 (en) 2022-06-09
CN113568566B (zh) 2023-08-29
TW202141295A (zh) 2021-11-01
US11509716B2 (en) 2022-11-22

Similar Documents

Publication Publication Date Title
TWI782487B (zh) 利用索引物件來進行簡易儲存服務無縫遷移的方法、主裝置以及儲存伺服器
JP6708929B2 (ja) ストレージ制御装置、ストレージシステムおよびストレージ制御プログラム
US9996421B2 (en) Data storage method, data storage apparatus, and storage device
JP4809040B2 (ja) ストレージ装置及びスナップショットのリストア方法
US11516287B2 (en) Method and apparatus for performing simple storage service seamless migration using index objects
US20060156030A1 (en) Data processing system and method
JP6652647B2 (ja) ストレージシステム
CN109407975B (zh) 写数据方法与计算节点以及分布式存储***
CN112748865B (zh) 用于存储管理的方法、电子设备和计算机程序产品
US10997026B1 (en) Dynamic data placement for replicated raid in a storage system
US10191690B2 (en) Storage system, control device, memory device, data access method, and program recording medium
TWI805380B (zh) 利用索引物件來進行簡易儲存服務無縫遷移的方法、主裝置以及儲存伺服器
US11238010B2 (en) Sand timer algorithm for tracking in-flight data storage requests for data replication
WO2024119924A1 (zh) 进程的迁移方法、装置及***
JP6589500B2 (ja) 情報処理端末、共有ファイルシステム、共有ファイル方法および共有ファイルプログラム
JP2005301560A (ja) クラスタファイルサーバ
US20170308542A1 (en) File system configuration data storage