TWI805380B - Method for performing simple storage service seamless migration using index objects, host device, and storage server - Google Patents

Method for performing simple storage service seamless migration using index objects, host device, and storage server Download PDF

Info

Publication number
TWI805380B
TWI805380B TW111119488A TW111119488A TWI805380B TW I805380 B TWI805380 B TW I805380B TW 111119488 A TW111119488 A TW 111119488A TW 111119488 A TW111119488 A TW 111119488A TW I805380 B TWI805380 B TW I805380B
Authority
TW
Taiwan
Prior art keywords
storage
index
server
objects
storage server
Prior art date
Application number
TW111119488A
Other languages
Chinese (zh)
Other versions
TW202234258A (en
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
Priority claimed from US17/167,095 external-priority patent/US11516287B2/en
Application filed by 香港商希瑞科技股份有限公司 filed Critical 香港商希瑞科技股份有限公司
Publication of TW202234258A publication Critical patent/TW202234258A/en
Application granted granted Critical
Publication of TWI805380B publication Critical patent/TWI805380B/en

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/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]
    • 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
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

A method for performing Simple Storage Service (S3) seamless migration using index objects and associated apparatus are provided. The method includes: in response to a request of migrating user data of a user of the storage server from a remote S3-compatible server into the storage server, during an index stage, utilizing an index-object-based S3 migration management module among multiple program modules running on a host device within the storage server to create and store multiple index objects into a storage device layer of the storage server, and migrate respective Access Control Lists (ACLs) of the multiple normal objects to the storage server; and during a data stage, utilizing the index-object-based S3 migration management module to trigger one or more migration agents to migrate object data.

Description

利用索引物件來進行簡易儲存服務無縫遷移的方法、主裝置以及儲存伺服器Method, main device and storage server for seamless migration of simple storage service by using index object

本發明係有關於記憶體控制,且尤指利用索引物件來進行簡易儲存服務(simple storage service, S3)無縫遷移的方法以及設備(apparatus),其中該設備的範例可包含:整個儲存伺服器、儲存伺服器內的主裝置、主裝置內的處理電路以及運行在處理電路中對應於該方法的一個或多個程式模組的至少一處理器/處理器核心(例如:中央處理器(central processing unit, CPU)/中央處理器核心),但是本發明不限於此。The present invention relates to memory control, and more particularly to a method and an apparatus for seamlessly migrating a simple storage service (S3) using an index object, wherein an example of the apparatus may include: an entire storage server , a main device in the storage server, a processing circuit in the main device, and at least one processor/processor core (for example: a central processing unit (central processing unit)) running in the processing circuit corresponding to one or more program modules of the method processing unit, CPU)/central processing unit core), but the present invention is not limited thereto.

伺服器可用於雲端運算(cloud computing),例如,儲存伺服器可用來實作遠端儲存(例如:能夠為使用者儲存資料的雲端)。當使用舊公有雲(public cloud)的使用者發現此公有雲幾乎已滿或存取速度很慢時,該使用者可能需要尋找新雲,在現有技術中已經提出了一種資料遷移方法,以嘗試將資料從舊的公有雲複製到另一個公有雲,然而,可能會出現一些問題,例如,該資料遷移方法通常先複製資料,包括舊公有雲中開始時間點之前的所有資料,然後再進行端點切換等等,因此可能會錯誤地複製應刪除的資料(例如在開始時間點之後已被使用者刪除的資料)到另一個公有雲。此外,根據該資料遷移方法的建議,先複製資料可能需要很長時間(例如幾個月),尤其,此資料遷移方法不適用於私有雲(private cloud),如果使用者希望使用私有雲作為新雲,則在相關技術中似乎找不到用來將資料從舊雲遷移至私有雲的合適解決方案,因此,需要一種新穎的架構來進行針對私有雲的簡易儲存服務無縫遷移(例如,從任一個公有/私有雲至一私有雲的簡易儲存服務無縫遷移),以允許使用者在資料遷移過程中正常地且順暢地存取資料。The server can be used for cloud computing (cloud computing), for example, the storage server can be used to implement remote storage (eg: the cloud that can store data for users). When the user who uses the old public cloud (public cloud) finds that the public cloud is almost full or the access speed is very slow, the user may need to find a new cloud. A data migration method has been proposed in the prior art to try Copying data from an old public cloud to another public cloud, however, some problems may arise, for example, this method of data migration usually first copies data, including all data in the old public cloud before the start time point, and then performs port Point switching, etc., so that data that should be deleted (for example, data that has been deleted by the user after the start time point) may be mistakenly copied to another public cloud. In addition, according to the suggestion of this data migration method, it may take a long time (such as several months) to copy the data first. In particular, this data migration method is not suitable for private cloud (private cloud). cloud, it seems that there is no suitable solution for migrating data from the old cloud to the private cloud in related technologies. Therefore, a novel architecture is needed to perform seamless migration of simple storage services for Easy storage service seamless migration from any public/private cloud to a private cloud) to allow users to access data normally and smoothly during the data migration process.

因此,本發明的目的之一在於揭露一種利用索引物件來進行簡易儲存服務無縫遷移的方法,並且揭露相關設備(例如儲存伺服器、儲存伺服器中的主裝置等等),以解決上述問題。Therefore, one of the objectives of the present invention is to disclose a method for seamlessly migrating simple storage services using index objects, and to disclose related devices (such as storage servers, master devices in storage servers, etc.) to solve the above problems .

本發明的另一目的在於揭露一種利用索引物件來進行簡易儲存服務無縫遷移的方法,並且揭露相關設備(例如儲存伺服器、儲存伺服器中的主裝置等等),以在不引入副作用的情況下或藉由不太可能引入副作用的方式來達到最佳性能。Another object of the present invention is to disclose a method for seamlessly migrating simple storage services by using index objects, and to disclose related devices (such as storage servers, master devices in storage servers, etc.), so as not to introduce side effects Optimal performance under certain circumstances or in a way that is less likely to introduce side effects.

本發明的至少一實施例揭露了一種利用索引物件來進行簡易儲存服務無縫遷移的方法,其中該方法係應用於一儲存伺服器,該方法可包含:因應自一遠端簡易儲存服務相容(S3-compatible)伺服器遷移該儲存伺服器的一使用者的使用者資料至該儲存伺服器的一要求,於該使用者資料之一遷移的多個階段中的一索引階段(index stage)中,利用在該儲存伺服器中的一主裝置上運行的多個程式模組中的一基於索引物件(index-object-based)的簡易儲存服務遷移管理模組來創建並儲存多個索引物件至該儲存伺服器的一儲存裝置層,以作為在該儲存伺服器中的該使用者資料的多個常態物件(normal object)的各自的代表,並且遷移該多個常態物件的各自的存取控制列表(access control lists, ACLs)至該儲存伺服器以作為該多個索引物件的各自的存取控制列表,以最小化該多個常態物件中任一常態物件的任一改變影響該使用者資料之該遷移的正確性的機率,其中該儲存伺服器包含有該主裝置以及該儲存裝置層,該儲存裝置層包含有耦接於該主裝置的至少一儲存裝置,該主裝置係用來控制該儲存伺服器的操作,且該至少一儲存裝置係用來為該儲存伺服器儲存資訊;以及於該多個階段中的該索引階段之後的一資料階段(data stage)中,利用該基於索引物件的簡易儲存服務遷移管理模組來觸發一個或多個遷移代理程式(migration agent),以自該遠端簡易儲存服務相容伺服器遷移該多個常態物件中的一組常態物件的各自的物件資料至該儲存伺服器的該儲存裝置層,以作為在該多個索引物件中的一組索引物件的各自的替換,以完成該使用者資料之該遷移。At least one embodiment of the present invention discloses a method for seamless migration of simple storage services using index objects, wherein the method is applied to a storage server, and the method may include: A request by a (S3-compatible) server to migrate user data of a user of the storage server to the storage server, at an index stage of one of stages of a migration of the user data In, using an index-object-based simple storage service migration management module among a plurality of program modules running on a main device in the storage server to create and store a plurality of index objects to a storage layer of the storage server as respective representations of normal objects of the user data in the storage server, and migrating respective accesses of the normal objects access control lists (ACLs) to the storage server as respective ACLs for the plurality of indexed objects to minimize any change in any one of the plurality of normal objects affecting the user Probability of correctness of the migration of data, wherein the storage server includes the main device and the storage device layer, the storage device layer includes at least one storage device coupled to the main device, the main device is used for controlling the operation of the storage server, and the at least one storage device is used to store information for the storage server; and in a data stage following the indexing stage of the plurality of stages, using the The Simple Storage Service migration management module for indexing objects to trigger one or more migration agents (migration agents) to migrate each of a group of normal objects among the plurality of normal objects from the remote Simple Storage Service compatible server The object data of the user data is transferred to the storage device layer of the storage server as respective replacements of a group of index objects in the plurality of index objects to complete the migration of the user data.

除了上述的方法,本發明亦揭露了一種主裝置,該主裝置可包含用來控制該主裝置以在一儲存伺服器中進行基於索引物件的簡易儲存服務遷移管理的一處理電路,其中該儲存伺服器包含有該主裝置以及一儲存裝置層,該儲存裝置層包含有耦接至該主裝置的至少一儲存裝置,該主裝置係用來控制該儲存伺服器的操作,且上述至少一儲存裝置係用來為該儲存伺服器儲存資訊,例如,因應自一遠端簡易儲存服務相容伺服器遷移該儲存伺服器的一使用者的一使用者資料至該儲存伺服器的一要求,於該使用者資料之一遷移的多個階段中的一索引階段中,運行在該處理電路上的多個程式模組中的一基於索引物件的簡易儲存服務遷移管理模組創建並儲存多個索引物件至該儲存裝置層,以作為在該儲存伺服器中的該使用者資料的多個常態物件的各自的代表,並且將該多個常態物件的各自的存取控制列表遷移至該儲存伺服器,以作為該多個索引物件的各自的存取控制列表,以最小化該多個常態物件中任一常態物件的任一改變影響該使用者資料之該遷移的正確性的機率;以及於該多個階段中的該索引階段之後的一資料階段中,該基於索引物件的簡易儲存服務遷移管理模組觸發一個或多個遷移代理程式,以自該遠端簡易儲存服務相容伺服器遷移該多個常態物件中的一組常態物件的各自的物件資料至該儲存伺服器的該儲存裝置層,以作為在該多個索引物件中的一組索引物件的各自的替換,以完成該使用者資料之該遷移。In addition to the above-mentioned method, the present invention also discloses a host device, which may include a processing circuit for controlling the host device to perform simple storage service migration management based on index objects in a storage server, wherein the storage The server includes the main device and a storage device layer, the storage device layer includes at least one storage device coupled to the main device, the main device is used to control the operation of the storage server, and the at least one storage The device is used to store information for the storage server, for example, in response to a request to migrate a user profile of a user of the storage server from a remote Simple Storage Service compatible server to the storage server, in During an indexing phase of one of the phases of migration of the user data, an index object-based simple storage service migration management module among the program modules running on the processing circuit creates and stores multiple indexes objects to the storage device layer as respective representations of the plurality of normal objects of the user data in the storage server, and migrate the respective access control lists of the plurality of normal objects to the storage server , as the respective access control lists of the plurality of index objects, to minimize the chance that any change in any normal object of the plurality of normal objects affects the correctness of the migration of the user data; and in the In a data stage following the indexing stage of the plurality of stages, the index object-based SIMS migration management module triggers one or more migration agents to migrate the Respective object data of a group of normal objects among the plurality of normal objects to the storage device layer of the storage server as a respective replacement of a group of index objects among the plurality of index objects to complete the user The transfer of data.

除了上述的方法,本發明亦揭露了一種儲存伺服器,該儲存伺服器可包含一主裝置以及一儲存裝置層,其中該主裝置係用來控制該儲存伺服器的操作,例如,該主裝置可包含用來控制該主裝置以進行在該儲存伺服器中的基於索引物件的簡易儲存服務遷移管理的一處理電路。此外,該儲存裝置層可包含用來為該儲存伺服器儲存資訊的至少一儲存裝置,例如,因應自一遠端簡易儲存服務相容伺服器遷移該儲存伺服器的一使用者的一使用者資料至該儲存伺服器的一要求,於該使用者資料之一遷移的多個階段中的一索引階段中,運行在該處理電路上的多個程式模組中的一基於索引物件的簡易儲存服務遷移管理模組創建並儲存多個索引物件至該儲存裝置層,以作為在該儲存伺服器中的該使用者資料的多個常態物件的各自的代表,並且將該多個常態物件的各自的存取控制列表遷移至該儲存伺服器,以作為該多個索引物件的各自的存取控制列表,以最小化該多個常態物件中任一常態物件的任一改變影響該使用者資料之該遷移的正確性的機率;以及於該多個階段中的該索引階段之後的一資料階段中,該基於索引物件的簡易儲存服務遷移管理模組觸發一個或多個遷移代理程式,以自該遠端簡易儲存服務相容伺服器遷移該多個常態物件中的一組常態物件的各自的物件資料至該儲存伺服器的該儲存裝置層,以作為在該多個索引物件中的一組索引物件的各自的替換,以完成該使用者資料之該遷移。In addition to the above method, the present invention also discloses a storage server, the storage server may include a master device and a storage device layer, wherein the master device is used to control the operation of the storage server, for example, the master device A processing circuit may be included for controlling the host device to perform index object-based simple storage service migration management in the storage server. In addition, the storage device layer may include at least one storage device for storing information for the storage server, for example, a user in response to migrating a user of the storage server from a remote Simple Storage Service compatible server A request for data to the storage server, during an indexing phase of one of the phases of migration of the user data, an indexed object-based simple storage in program modules running on the processing circuit The service migration management module creates and stores a plurality of index objects to the storage device layer as respective representations of the plurality of normal objects of the user data in the storage server, and the respective representations of the plurality of normal objects The access control list of the plurality of normal objects is migrated to the storage server as the respective access control lists of the plurality of index objects, so as to minimize any change of any normal object in the plurality of normal objects affecting the user data a probability of correctness of the migration; and in a data phase after the index phase of the plurality of phases, the index object-based storage services migration management module triggers one or more migration agents from the Remote Simple Storage Service compliant server migrating respective object data of a group of normal objects among the plurality of normal objects to the storage layer of the storage server as a set of indexes among the plurality of index objects The respective replacement of the objects to complete the migration of the user data.

本發明的方法以及相關設備可以利用索引物件來進行簡易儲存服務無縫遷移,在一索引階段/時期(stage/phase)(例如一短時間期間(period))之後,本發明的方法和相關設備可以在一資料階段/時期中以較小的開銷(overhead)來進行無縫遷移,其中資料階段/時期的開銷通常小於索引階段/時期的開銷。The method and related devices of the present invention can use index objects to perform seamless migration of simple storage services. Seamless migration can be performed with less overhead in a data phase/epoch, where the overhead of the data phase/epoch is usually smaller than that of the index phase/epoch.

本發明的實施例揭露了一種利用索引物件來進行簡易儲存服務無縫遷移的方法以及設備,例如,該方法以及相關設備可使用一種新穎的簡易儲存服務無縫遷移架構來進行存取控制,且尤指,可進行針對私有雲的簡易儲存服務無縫遷移,例如自任一個公有/私有雲至一私有雲的簡易儲存服務無縫遷移(例如資料遷移的目標雲(destination cloud)),以允許使用者在資料遷移過程中正常地且順暢地存取資料。為了更好地理解,一第一雲,例如簡易儲存服務相容儲存(例如其可能幾乎已滿並且存取速度可能很慢),以及一第二雲,例如根據該方法所實作的Bigtera儲存,可以分別作為該任一個公有/私有雲以及該私有雲(例如目標雲)的範例,但是本發明不限於此。此外,當在第一時間點T1開始遷移時,該方法以及相關設備可以先於自第一時間點T1開始的一索引階段,例如INDEX階段(例如一索引時期,諸如INDEX時期),在該第二雲中創建索引物件(例如虛擬索引物件(dummy index object)),並且可以於自第二時間點T2(例如當完成創建該索引物件時的時間點)開始的一資料階段,例如DATA階段(例如一資料時期,諸如DATA時期),自該第一雲遷移(例如轉移)物件資料至該第二雲。在某些實施例中,簡易儲存服務無縫遷移架構可以利用一個或多個遷移代理程式(agent)來進行物件遷移,此外,該設備可包含儲存伺服器的至少一部分(例如一部分或全部),例如,該設備可包含儲存伺服器的一部分,諸如在儲存伺服器中的主裝置或位於主裝置內的相關控制電路(例如在對應於該方法的一個或多個程式模組上運行的處理電路與相關電路),在另一個範例中,該設備可包含整個儲存伺服器,根據針對儲存伺服器的某些實施例,INDEX時期可代表一短時間期間(例如數小時或幾天),而DATA時期可代表一長時間期間(例如幾個星期)。The embodiment of the present invention discloses a method and device for seamless migration of simple storage services by using index objects. For example, the method and related devices can use a novel seamless migration architecture of simple storage services for access control, and In particular, seamless migration of simple storage services for private clouds, such as from any public/private cloud to a private cloud (such as a destination cloud for data migration), can be performed to allow the use of Ordinary and smooth access to data during the data migration process. For better understanding, a first cloud, such as Simple Storage Service compliant storage (for example, it may be almost full and access speed may be slow), and a second cloud, such as Bigtera storage implemented according to the method , can be used as an example of any public/private cloud and the private cloud (such as the target cloud), respectively, but the present invention is not limited thereto. In addition, when the migration starts at the first time point T1, the method and related devices may be preceded by an index phase starting from the first time point T1, such as the INDEX phase (for example, an index period, such as the INDEX period). Create an index object (such as a virtual index object (dummy index object)) in the second cloud, and can start a data phase from the second time point T2 (such as the time point when the index object is created), such as the DATA phase ( For example a data period, such as a DATA period), object data is migrated (eg transferred) from the first cloud to the second cloud. In some embodiments, the simple storage service seamless migration architecture can utilize one or more migration agent programs (agent) to perform object migration, and in addition, the device can include at least a part (for example, a part or all) of the storage server, For example, the apparatus may comprise a portion of a storage server, such as a host device within the storage server or associated control circuitry within the host device (eg, processing circuitry running on one or more program modules corresponding to the method and associated circuitry), in another example, the device may contain the entire storage server, according to some embodiments for storage servers, the INDEX period may represent a short period of time (such as hours or days), and the DATA An epoch may represent a long period of time (eg, several weeks).

第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的系統磁碟。1 is a schematic diagram of a storage server 10 according to an embodiment of the present invention, the storage server 10 includes a main device 50, and includes at least one storage device, such as one or more storage devices (such as a plurality of storage devices 90 ), the plurality of storage devices 90 are coupled to the main device 50, according to the present embodiment, the main device 50 can be used to control the operation of the storage server 10, and the plurality of storage devices 90 can be used to store information for the storage server 10. As shown in FIG. 1, the main device 50 may include a processing circuit 52 (for example, at least one processor/processor core and related circuits such as random access memory (random access memory, RAM) for controlling the operation of the main device 50. , bus bars, etc.), used to couple a plurality of storage devices 90 and couple storage or memory devices located on the main device 50 (such as one or more traditional hard disk drives (hard disk drive, HDD) and/or At least one storage interface circuit 54 of one or more solid state drives (SSD), and a network interface circuit 58 for coupling the host device 50 to at least one network. The storage or memory device may include at least one storage device (eg, one or more storage devices), which may be collectively referred to as storage device 56, for example, storage device 56 may include a set of storage devices, wherein one of the set of storage devices stores The device can be used as a system disk of the main device 50, and other storage devices of the set of storage devices can be used to store user data for the main device 50, but the present invention is not limited thereto. In another example, the storage device 56 may include a storage device, and this storage device may be used as a system disk of the main device 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)可分別作為上述的主裝置以及其中的相關電路/模組/裝置(例如對應於該方法且運行一個或多個程式模組的處理電路以及相關電路)的範例。According to this embodiment, the processing circuit 52 of the running program module 52P (especially the index object-based simple storage service migration management module 53 corresponding to the method) can control the operation of the main device 50 according to the method, for example, control The main device 50 can perform simple storage service migration management based on index objects in the storage server 10, and the storage interface circuit 54 can conform to one or more standards (such as one or more Serial Advanced Technology Attachment, Serial ATA or SATA) standard, Peripheral Component Interconnect (PCI) standard, Peripheral Component Interconnect Express (PCIe) standard, Non-Volatile Memory Storage Device (Non-Volatile Memory Express, NVMe ) standard, non-volatile memory storage device external access (NVMe-over-Fabrics, NVMeoF) standard, small computer system interface (Small Computer System Interface, SCSI) standard, universal flash memory storage (Universal Flash Storage, UFS ) standard, etc.), and can communicate according to one or more standards to allow the processing circuit 52 running the program module 52P to access the storage device 56 and the plurality of storage devices 90 through the storage interface circuit 54. In addition, the network The road interface circuit 58 can be used to provide a wired or wireless network connection, and one or more client devices corresponding to one or more users can be connected to the storage server 10 (such as the storage device therein) through the wired or wireless network. device 56 and a plurality of storage devices 90) to access (for example, read or write) user data. For a better understanding, the main device 50 shown in the left half of FIG. 1 and the related circuits/modules/devices in this architecture (such as the processing circuit 52 and the storage interface circuit 54 running the program module 52P) can be respectively As an example of the above-mentioned main device and related circuits/modules/devices therein (for example, a processing circuit and related circuits corresponding to the method and running one or more program modules).

在第1圖所示的架構中,儲存伺服器10可被繪示為包含有主裝置50以及耦接於主裝置50的複數個儲存裝置90,但是本發明不限於此,例如,主裝置50可另包含有用來安裝主裝置50的元件(例如第1圖所示的處理電路52、儲存介面電路54、網路介面電路58等等)的外殼/機殼(例如電腦機殼,其可以由金屬及/或一種或多種其他材料所製成)以及複數個儲存裝置90的至少一部分(例如一部分或全部),又例如,儲存伺服器10可另包含有耦接於主裝置50以及複數個儲存裝置90的至少一部分(例如一部分或全部)之間的至少一個切換電路(switch circuit)(例如一個或多個切換電路),用來進行主裝置50以及上述的複數個儲存裝置90的至少一部分之間的訊號切換(signal switching)。In the architecture shown in FIG. 1, the storage server 10 can be shown as including a main device 50 and a plurality of storage devices 90 coupled to the main device 50, but the present invention is not limited thereto. For example, the main device 50 It may additionally include a shell/casing (such as a computer casing, which may be composed of metal and/or one or more other materials) and at least a part (such as a part or all) of a plurality of storage devices 90, and for another example, the storage server 10 may further include a plurality of storage devices coupled to the main device 50 and At least one switching circuit (switch circuit) (such as one or more switching circuits) between at least a part (such as a part or all) of the device 90 is used to switch between the main device 50 and at least a part of the above-mentioned plurality of storage devices 90 Between the signal switching (signal switching).

根據某些實施例,運行程式模組52P的處理電路52或儲存介面電路54可以設定(configure)複數個儲存裝置90的至少一部分(例如一部分或全部),以形成儲存池(storage pool)架構,但是本發明不限於此,根據某些實施例,運行程式模組52P的處理電路52或儲存介面電路54可以設定複數個儲存裝置90的至少一部分(例如一部分或全部),以形成儲存伺服器10的容錯式磁碟陣列(Redundant Array of Independent Disks, RAID)(例如全快閃陣列(All Flash Array, AFA))。According to some embodiments, the processing circuit 52 or the storage interface circuit 54 of the running program module 52P can configure at least a part (for example, a part or all) of the plurality of storage devices 90 to form a storage pool (storage pool) architecture, But the present invention is not limited thereto. According to some embodiments, the processing circuit 52 or the storage interface circuit 54 of the running program module 52P can set at least a part (for example, a part or all) of a plurality of storage devices 90 to form a storage server 10 fault-tolerant disk array (Redundant Array of Independent Disks, RAID) (such as All Flash Array (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),但是本發明不限於此。FIG. 2 is a schematic diagram of some implementation details of the storage device in the storage server 10 shown in FIG. 1 according to an embodiment of the present invention, wherein the storage device 100 can be used as a storage device of any one of the plurality of storage devices 90 For example, in particular, each storage device of the plurality of storage devices 90 may be implemented according to the architecture of the storage device 100, but the present invention is not limited thereto. The storage device 100 can be used to provide storage space to the main device 50. Under the control of the main device 50, one or more client devices can access (for example, read or write) user data in the storage space. The main device 50 Examples of the storage device 100 may include but not limited to: personal computers (such as desktop computers or notebook computers), examples of the storage device 100 may include but not limited to: solid state drives and various types of embedded memory devices (such as flash memory storage or embedded multi media card (embedded multi media card, EMMC) standard, etc.). According to this embodiment, the storage device 100 may include a controller (such as a memory controller 110), and further includes a non-volatile memory 120, wherein the controller is used to control the operation of the storage device 100 and access non-volatile memory. The volatile memory 120 and the non-volatile memory 120 are used to store information. The non-volatile memory 120 may include at least one non-volatile memory element (such as one or more non-volatile memory elements), Such as a plurality of non-volatile memory elements 120-1, 120-2, ..., and 122-N, wherein "N" can represent a positive integer greater than one, for example, the non-volatile memory 120 can be a flash memory Body, and the plurality of non-volatile memory elements 120-1, 120-2, ..., and 122-N can be a plurality of flash memory chips (chip) or a plurality of flash memory bare crystals (die), But the present invention is not limited thereto.

根據本實施例,記憶體控制器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進行通訊。According to this embodiment, the memory controller 110 can be used to control the access of the non-volatile memory 120, so that the host device 50 can access the non-volatile memory 120 through the memory controller 110, so as to store the non-volatile memory 120 in the storage server 10 access management, as shown in Figure 2, the memory controller 110 may include a processing circuit (such as a microprocessor 112), a storage unit (such as a read-only memory (read-only memory, ROM) 112M) , a control logic circuit 114 , a random access memory 116 and a transmission interface circuit 118 , wherein the above components can be coupled to each other through a bus bar. The random access memory 116 is implemented by a static random access memory (static RAM, SRAM), but the present invention is not limited thereto, the random access memory 116 can be used to provide internal storage space to the memory controller 110. For example, the random access memory 116 can be used as a buffer memory to buffer data. In addition, the read-only memory 112M of this embodiment is used to store the program code 112C, and the microprocessor 112 is used to execute The program code 112C controls the operation of the memory controller 110 to control the access of the non-volatile memory 120 to allow the host device 50 to access the non-volatile memory 120 through the memory controller 110 . It should be noted that, in some examples, program code 112C may be stored in random access memory 116 or any type of memory. In addition, control logic 114 may be used to control non-volatile memory 120 and may include Data protection circuitry (not shown) for protecting data and/or performing error correction, but the invention is not limited thereto, and transmission interface circuitry 118 may conform to a particular communication standard (e.g., Serial Advanced Technology Attachment standard, External Component Interconnect standard , Rapid External Component Interconnect Standard, Non-Volatile Memory Storage Device Standard, Non-Volatile Memory Storage Device External Access Standard, Small Computer System Interface Standard, Universal Flash Memory Storage Standard, etc.), and can be based on the A specific communication standard is used to communicate, for example, the storage device 100 communicates with the host device 50 , wherein the storage interface circuit 54 can meet the specific communication standard to communicate with the host device 50 and the storage device 100 .

根據某些實施例,主裝置50可傳輸複數個主機命令以及相對應的複數個邏輯位址給記憶體控制器110,以存取儲存裝置100,記憶體控制器110接收該複數個主機命令以及該複數個邏輯位址,並且將該複數個主機命令轉換為複數個記憶體操作命令(為簡潔起見,可以稱為複數個操作命令),並且進一步地藉由該複數個操作命令來控制非揮發性記憶體120以在非揮發性記憶體120內有著複數個實體位址的儲存單元(例如資料頁面)上進行讀取、寫入/編程等等,其中該複數個實體位址可與該複數個邏輯位址相關聯,當記憶體控制器110在複數個非揮發性記憶體元件120-1、120-2、…、以及122-N的任一個非揮發性記憶體元件122-n(“n”可代表[1, N]區間中的任一個整數)上進行一抹除(erase)操作時,非揮發性記憶體元件122-n的多個區塊的至少一區塊可被抹除,其中該些區塊的每一個區塊可包含有多個頁面(例如資料頁面),以及一存取操作(例如讀取或寫入)可在一個或多個頁面上被進行。According to some embodiments, the host device 50 can transmit a plurality of host commands and corresponding logical addresses to the memory controller 110 to access the storage device 100, and the memory controller 110 receives the plurality of host commands and The plurality of logical addresses, and convert the plurality of host commands into a plurality of memory operation commands (for the sake of brevity, can be called a plurality of operation commands), and further use the plurality of operation commands to control non- The volatile memory 120 can read, write/program, etc. on storage units (such as data pages) with a plurality of physical addresses in the non-volatile memory 120, wherein the plurality of physical addresses can be associated with the The plurality of logical addresses are associated, when the memory controller 110 is in any non-volatile memory element 122-n ( "n" can represent any integer in the range [1, N]), when performing an erase operation on at least one block of multiple blocks of the non-volatile memory element 122-n can be erased , wherein each of the blocks may contain multiple pages (eg, data pages), and an access operation (eg, read or write) may be performed on one or more pages.

根據某些實施例,儲存伺服器10(例如主裝置50)可根據Ceph解決方案來操作,以使儲存伺服器10透過軟體定義成為分散式儲存系統的一部分,最佳地,複數個儲存系統(例如多個儲存伺服器{10},諸如儲存伺服器10)可用來形成分散式儲存系統的資源池(resource pool),以支持像是具有某些特徵(feature)(例如容錯、自動故障轉移控制等等)的各種類型的存取,諸如區塊裝置型(例如在分散式儲存系統中用來存取一模擬區塊裝置(emulated block device))、檔案系統型(例如在分散式儲存系統中用來存取一檔案系統)以及物件型(例如在分散式儲存系統中用來在物件命名空間(object namespace)內存取一物件),但是本發明不限於此。舉例來說,一檔案可在分散式儲存系統內被儲存為物件命名空間中的一物件,又例如,對應於某位址的一資料區塊可在分散式儲存系統內被儲存為物件命名空間中的一物件,為了執行分散式儲存系統的特徵,除了資料(例如使用者資料)外,儲存伺服器10可用來儲存額外資訊(例如元資料(metadata)以及日誌(journal))。According to some embodiments, the storage server 10 (such as the main device 50) can operate according to the Ceph solution, so that the storage server 10 can be defined by software as part of a distributed storage system, preferably a plurality of storage systems ( For example, a plurality of storage servers {10}, such as storage server 10, can be used to form a resource pool (resource pool) of a distributed storage system to support such as having certain features (features) (such as fault tolerance, automatic failover control etc.), such as block device type (e.g. used to access an emulated block device in a distributed storage system), file system type (e.g. in a distributed storage system used to access a file system) and object type (for example, used to access an object in an object namespace (object namespace) in a distributed storage system), but the present invention is not limited thereto. For example, a file can be stored as an object in the object namespace in the distributed storage system, and for example, a data block corresponding to a certain address can be stored as an object namespace in the distributed storage system One of the objects, in order to implement the characteristics of the distributed storage system, in addition to the data (such as user data), the storage server 10 can be used to store additional information (such as metadata (metadata) and log (journal)).

第3圖為根據本發明一實施例之利用索引物件來進行簡易儲存服務無縫遷移之方法的基於索引物件之遷移控制方案,其中該方法可應用於儲存伺服器10。儲存伺服器10可充當第二雲的角色,以及可視為資料遷移的目的地(destination),而遠端簡易儲存服務相容伺服器可充當第一雲的角色,以及可視為資料遷移的來源端(source),例如,在第一時間點T1之前,使用者可在遠端簡易儲存服務相容伺服器中存取(例如讀取或寫入)資料,並且發現他/她在遠端簡易儲存服務相容伺服器中的個人儲存容量幾乎用完,且可能會受到遠端簡易儲存服務相容伺服器之性能低下的困擾。FIG. 3 is an index object-based migration control scheme of a method for seamlessly migrating simple storage services using index objects according to an embodiment of the present invention, wherein the method can be applied to the storage server 10 . The storage server 10 can act as the second cloud, and can be regarded as the destination (destination) of data migration, while the remote simple storage service compatible server can act as the role of the first cloud, and can be regarded as the source of data migration (source), for example, before the first point in time T1, a user can access (for example, read or write) data in a remote simple storage service compatible server, and finds that he/she is in remote simple storage The personal storage capacity in the service compatible server is almost exhausted and may suffer from poor performance of the remote simple storage service compatible server.

因應自遠端簡易儲存服務相容伺服器遷移儲存伺服器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)自該來源端代理至該使用者。In response to a request to migrate the user data of the user of the storage server 10 from the remote simple storage service compatible server to the storage server 10, in the indexing phase (such as the INDEX phase) of the multiple phases of user data migration ) period (such as migrating user data from a remote Simple Storage Service compatible server to the storage server 10 according to the user's request), the index-based object-based simple The storage service migration management module 53 can create and store multiple index objects (such as virtual objects without object data) to the storage device layer (storage device layer) of the storage server 10 as user data in the storage server 10 Respective representatives of a plurality of normal objects (normal objects), and migrate the respective access control lists (Access Control List, ACL) of the plurality of normal objects to the storage server 10, as the respective storage of the plurality of index objects taking the control list as if the indexed objects were normal objects to minimize the chance that any change in any one of the normal objects would affect the correctness of the migration of the user data, wherein the storage device The layer includes at least one storage device (eg, one or more storage devices) coupled to the main device 50 , such as a plurality of storage devices 90 . By migrating the respective access control lists of multiple normal objects to the storage server 10 as the respective access control lists of multiple index objects, the simple storage service migration management module 53 based on index objects can utilize multiple index object to simulate (emulate) multiple normal objects, for example, the destination (such as storage server 10) can start migration at the first time point T1, after the first time point T1, when the user sends any other request When sending to a destination (such as storage server 10) to attempt any change to any normal object, based on whether one or more predetermined conditions are met (such as whether any other requirement meets one or more predetermined rules), the storage server The device 10 can optionally proxy (for example, forward (forward)) any other request to the source end (for example, a remote Simple Storage Service compatible server) and respond to a response (response) corresponding to any other request ) is proxied from the source to the user.

於多個階段中索引階段之後的資料階段(例如DATA階段)的期間,基於索引物件的簡易儲存服務遷移管理模組53可觸發一個或多個其它程式模組(例如一個或多個遷移代理程式),以自遠端簡易儲存服務相容伺服器將多個常態物件中一組常態物件的各自的物件資料遷移至儲存伺服器10的儲存裝置層,以作為多個索引物件中一組索引物件的各自的替換,以完成使用者資料之遷移,舉例來說,目的地(例如儲存伺服器10)可在第二時間點T2開始資料階段,並且在時間點T3完成遷移,假設於資料階段的期間,使用者將任一個其它要求傳送至目的地(例如儲存伺服器10),以嘗試對任一個常態物件進行任何更改,相似地,基於是否滿足一個或多個預定條件(例如任一個其它要求是否符合一個或多個預定規則),儲存伺服器10可選擇性地將任一個其它要求代理(例如轉發)至來源端(例如遠端簡易儲存服務相容伺服器)且將相對應於任一個其它要求的該回應自該來源端代理(例如轉發)至該使用者,舉例來說,當任一個其它要求是一物件獲取(Get-object)要求(例如“GetObject”)時,儲存伺服器10可為該要求在該使用者以及該來源端之間代理(例如轉發),且尤指為某些其各自的物件資料還未被遷移至該目的地(例如於遷移的期間,當儲存伺服器10接收到物件獲取要求時,該些索引物件的各自的物件資料還未被複製至該目的地,並且需要被複製至該目的地)的索引代理(例如轉發)該要求。為了更好地理解,當任一個其它要求不存在時(例如使用者沒有在時間點T1以及T3的期間傳送任一個其它要求),該組常態物件可包含所有的多個常態物件,並且該組索引物件可包含所有的多個索引物件。During the data phase (such as the DATA phase) following the index phase in the multiple phases, the index object-based simple storage service migration management module 53 can trigger one or more other program modules (such as one or more migration agent programs ), to migrate the respective object data of a group of normal objects among the plurality of normal objects from the remote simple storage service compatible server to the storage device layer of the storage server 10 as a group of index objects among the plurality of index objects To complete the migration of user data, for example, the destination (such as storage server 10) can start the data phase at the second time point T2 and complete the migration at time point T3, assuming that the data phase Meanwhile, the user sends any other request to the destination (e.g. storage server 10) to attempt any changes to any normal object, similarly based on whether one or more predetermined conditions (e.g. any other request conform to one or more predetermined rules), the storage server 10 can optionally proxy (for example, forward) any other request to the source end (for example, a remote Simple Storage Service compatible server) and will correspond to any The response to other requests is proxied (e.g., forwarded) from the source to the user, for example, when any other request is a Get-object request (e.g., "GetObject"), the storage server 10 may proxy (e.g. forward) the request between the user and the source, and especially for some of their respective object data that has not yet been migrated to the destination (e.g. during migration, when the storage server 10 When an object acquisition request is received, the index agent (for example, forwards) the request for which the respective object data of the indexed objects has not been copied to the destination and needs to be copied to the destination. For better understanding, when any other request does not exist (for example, the user does not send any other request during time points T1 and T3), the set of normal objects may contain all of the plurality of normal objects, and the set of An index object can contain all of the multiple index objects.

只要不妨礙本發明的實作,藉由以下程式模組中的一個或多個程式模組可以實作一個或多個遷移代理程式: (1)運行在處理電路52上的程式模組52P中的一個或多個程式模組; As long as the implementation of the present invention is not hindered, one or more migration agent programs can be implemented by one or more program modules in the following program modules: (1) one or more program modules in the program module 52P running on the processing circuit 52;

(2)對於在主裝置50中具有多個處理電路{52}的多節點(multi-node)架構的情況下,在多個處理電路{52}中運行在一個或多個其它處理電路上的一個或多個程式模組,其中多個處理電路{52}包含有處理電路52;以及(2) In the case of a multi-node architecture with a plurality of processing circuits {52} in the main device 50, among the plurality of processing circuits {52} running on one or more other processing circuits one or more program modules, wherein the plurality of processing circuits {52} includes processing circuit 52; and

(3)對於在儲存伺服器10中具有多個主裝置{50}的多主機(multi-host)架構的情況下,在多個主裝置{50}中一個或多個其它主裝置的運行在一個或多個相對應的處理電路上的一個或多個程式模組,其中多個主裝置{50}包含有主裝置50;(3) In the case of a multi-host architecture with a plurality of host devices {50} in the storage server 10, one or more other host devices among the plurality of host devices {50} run on One or more program modules on one or more corresponding processing circuits, wherein the plurality of main devices {50} include the main device 50;

但是本發明不限於此。But the present invention is not limited thereto.

根據某些實施例,該方法以及相關設備可以用以利用Ceph的軟體庫(例如“librados”軟體庫)來進行針對Ceph架構的某些基本操作,其中Ceph的軟體庫可以用來向客戶端應用程式提供對基於物件的可靠自動化分散式物件儲存(reliable autonomic distributed object store, RADOS)儲存系統的直接存取,並且為某些Ceph的特徵(例如可靠自動化分散式物件儲存區塊裝置(RADOS block device, RBD)、可靠自動化分散式物件儲存閘道器(RADOS gateway, RGW)、Ceph檔案系統等等)提供一基礎,以及可靠自動化分散式物件儲存可以為Ceph分散式儲存系統的一部分,且可以視為與Ceph物件儲存叢集(cluster)互動的工具程式(utility),但是本發明不限於此。According to some embodiments, the method and related devices can be used to perform certain basic operations on the Ceph architecture using Ceph software libraries (such as the "librados" software library) that can be used to provide client applications Provides direct access to object-based reliable automated distributed object store (RADOS) storage systems, and supports certain Ceph features (such as reliable automated distributed object store block device (RADOS block device, RBD), reliable automated distributed object storage gateway (RADOS gateway, RGW), Ceph file system, etc.) provide a basis, and reliable automated distributed object storage can be part of the Ceph distributed storage system, and can be regarded as A utility for interacting with a Ceph object storage cluster, but the invention is not limited thereto.

第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)來被存取。針對某些簡易儲存服務特徵,每一個遠端簡易儲存服務相容伺服器以及Figure 4 is a schematic diagram of some related operations of the migration control scheme based on index objects shown in Figure 3 according to an embodiment of the present invention, the first cloud and the second cloud (for better understanding, respectively marked as "simple "Storage Service Compatible Storage" and "Bigtera Storage") can be used as examples of remote simple storage service compatible server and storage server 10 respectively, and users can use a client device (such as a simple storage service client, for simplicity For the sake of sake, marked as "S3 client") to access the remote Simple Storage Service compatible server and the storage server 10 respectively, for example, each of the remote Simple Storage Service compatible server and the storage server 10 can Provides simple storage services and can be compatible with simple storage services, and especially can provide object storage to handle large amounts of unstructured data, and can be based on the application program interface (representational state transfer, REST) of the presentation layer ( application program interface, API) (such as a network service (web service) application program interface that conforms to the constraints of the presentation layer state transition architecture, such as a presentation layer state transition application program interface (RESTful API)) and by using the hypertext transfer protocol ( hypertext transfer protocol, HTTP)/hypertext transfer protocol secure (hypertext transfer protocol secure, HTTPS) to be accessed. For certain Simple Storage Service features, each remote Simple Storage Service compatible server and

儲存伺服器10可以用來在一貯體(bucket)(例如物件的容器(container))中儲存一個或多個物件,並且一個或多個物件的任一個物件可包含一檔案以及可選擇性地包含任一個描述該檔案的元資料,其中任一個物件的物件前置碼(prefix)可包含一個或多個符號“/”,以支持資料夾概念(folder concept),以模擬一資料夾,此外,每一個遠端簡易儲存服務相容伺服器以及儲存伺服器10可具備至少一Ceph物件閘道器(為簡潔起見,標示為“閘道器”),諸如構建在librados之上以提供有著一表現層狀態轉換之閘道器的應用程式給Ceph儲存叢集的至少一物件儲存介面,其中該至少一Ceph物件閘道器支持遠端簡易儲存服務相容伺服器以及儲存伺服器10為簡易儲存服務相容以及Swift相容。如第4圖下半部所示,於使用者資料遷移的期間(為簡潔起見,標示為空心箭頭中的“資料”),使用者可將任一個其它要求(例如GET要求)傳送(藉由利用簡易儲存服務客戶端)至儲存伺服器10,以要求使用者資料的部分資料,儲存伺服器10可以將任一個其它要求(例如GET要求)代理(例如轉發)至遠端簡易儲存服務相容伺服器,並且代理(例如轉發)對應於該任一個其它要求(例如自遠端簡易儲存服務相容伺服器至使用者(例如使用者的簡易儲存服務客戶端)的部分資料,為簡潔起見,在一些用虛線表示的箭頭上標示為“資料”)的該回應。為簡潔起見,本實施例的類似內容在此不再重複詳細描述。The storage server 10 can be used to store one or more objects in a bucket (such as a container of objects), and any one of the one or more objects can include a file and optionally Contains any metadata describing the file. The object prefix of any object can contain one or more symbols "/" to support the folder concept (folder concept) to simulate a folder. In addition , each Remote Simple Storage Service compliant server and storage server 10 may have at least one Ceph Object Gateway (labeled "Gateway" for brevity), such as built on top of librados to provide Application of a presentation layer state transition gateway to at least one object storage interface of a Ceph storage cluster, wherein the at least one Ceph object gateway supports a remote simple storage service compatible server and the storage server 10 is simple storage Service compatible and Swift compatible. As shown in the lower part of Figure 4, during user data migration (for brevity, marked as "data" in the hollow arrow), the user can send any other request (such as a GET request) (by borrowing By using the simple storage service client) to the storage server 10 to request part of the user data, the storage server 10 can proxy (for example, forward) any other request (such as a GET request) to the remote simple storage service server, and proxies (eg forwards) part of the data corresponding to that one of the other requests (eg, from a remote Simple Storage Service compatible server to the user (eg, the user's Simple Storage Service client), for brevity See this response labeled "Information" on some of the dotted arrows). For the sake of brevity, similar content in this embodiment will not be repeatedly described in detail here.

根據某些實施例,在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)。According to some embodiments, in the INDEX stage (for example, the INDEX period), under default conditions, each index object of the plurality of index objects can be created to have a source (source, src) object (for example, in the first certain attributes of a corresponding object in the cloud, such as a normal object, wherein the index object acts as a representative of the normal object), and these attributes may include the last modification time (last -modified-time, mtime) (e.g. source modification time (src-mtime), such as bigtera-scr-mtime), size of source object (e.g. source size (src-size), such as bigtera-src-size), and source object The entity tag (entity tag, Etag) (for example, a file hash (file hash) for integrity checking, such as MD5 sum), such as the source entity tag (src-etagt), such as bigtera-src-etag).

第5圖為根據本發明一實施例之關於第3圖所示之基於索引物件的遷移控制方案的一些物件以及一些相關特徵的示意圖,於使用者資料遷移的期間,來源端(例如遠端簡易儲存服務相容伺服器)可包含一個或多個貯體(例如物件的一個或多個容器),諸如遠端貯體(remote bucket),並且該目的地(例如儲存伺服器10)可包含一個或多個貯體(例如物件的一個或多個容器),諸如遠端貯體上方顯示的該貯體,其中該要求以及該回應分別代表藉由儲存伺服器10自使用者(例如使用者的簡易儲存服務客戶端)接收的該要求以及藉由儲存伺服器10回傳至使用者(例如使用者的簡易儲存服務客戶端)的該回應,舉例來說,遠端貯體可包含多個常態物件,為了更好地理解,顯示在遠端貯體中的小圓圈。此外,該目的地的該貯體可包含多個索引物件的至少一部分(例如一部分或全部),且尤指一個或多個常態物件,其取決於該遷移的過程(例如該遷移完成的百分比,諸如1%、2%等等。)及/或任一個其它要求的存在。FIG. 5 is a schematic diagram of some objects and some related features of the index object-based migration control scheme shown in FIG. 3 according to an embodiment of the present invention. During user data migration, the source (such as remote simple storage service compatible server) may contain one or more storage bodies (e.g., one or more containers of objects), such as a remote storage body (remote bucket), and the destination (e.g., storage server 10) may contain a or multiple storage bodies (such as one or more containers of objects), such as the storage body shown above the remote storage body, wherein the request and the response represent the storage server 10 from the user (such as the user's The request received by the simple storage service client) and the response sent back to the user (such as the user's simple storage service client) by the storage server 10, for example, the remote storage body may include multiple normal Objects, for better understanding, are shown as small circles in the distal reservoir. In addition, the repository of the destination may contain at least a portion (eg, a portion or all) of indexed objects, and in particular one or more normal objects, depending on the progress of the migration (eg, the percentage of the migration completed, such as 1%, 2%, etc.) and/or the existence of any other requirement.

在遷移上述多個索引物件的至少一部分的任一個索引物件的物件資料之前,儲存伺服器10可將目的地的貯體設置為具有與遠端貯體名稱(例如遠端貯體的貯體名稱)相同的貯體名稱,並且具有與遠端使用者憑證(credential)(例如遠端貯體的使用者憑證)相同的使用者憑證,且尤指具有虛假使用(fake usage)資訊,諸如虛假使用(例如大小、物件數量等等)的資訊,以作為遷移階段(例如索引階段以及資料階段)的暫時使用者資訊。一開始時,在遷移任一個索引物件的物件資料之前,儲存伺服器10可先在目的地的貯體中創建具有暫時屬性的多個索引物件諸如虛擬(dummy)索引物件(例如沒有物件資料的虛擬物件),當多個常態物件中的一常態物件已經被遷移至該目的地或針對該常態物件的某個操作在該目的地上已經被進行時(例如該常態物件的物件資料已經被遷移,或者使用者已經覆寫該常態物件),該常態物件可存在於該貯體中(如第5圖所示),此外,對於多個索引物件的每個索引物件,暫時屬性可包含: (1)來源物件最後修改時間(例如來源物件的最後修改時間),諸如bigtera-src-mtime; Before migrating the object data of any one index object of at least a part of the plurality of index objects, the storage server 10 can set the storage body of the destination to have ) with the same repository name, and has the same user credential as the remote user credential (eg, the remote repository's user credential), and especially has fake usage information, such as fake usage (such as size, number of objects, etc.) as temporary user information for migration phases (such as index phase and data phase). At the beginning, before migrating the object data of any index object, the storage server 10 can first create a plurality of index objects with temporary attributes such as virtual (dummy) index objects (such as dummy index objects) in the destination storage body (for example, no object data virtual object), when a normal object among multiple normal objects has been migrated to the destination or an operation on the normal object has been performed on the destination (for example, the object data of the normal object has been migrated, or the user has overridden the normal object), the normal object may exist in the container (as shown in Figure 5), and, for each index object of the plurality of index objects, the temporary properties may include: (1) The last modification time of the source object (for example, the last modification time of the source object), such as bigtera-src-mtime;

(2)來源物件大小(例如來源物件的大小),諸如bigtera-src-size;(2) The size of the source object (for example, the size of the source object), such as bigtera-src-size;

(3)來源物件實體標籤(例如來源物件的實體標籤),諸如bigtera-src-etag;(3) Source object entity tags (such as source object entity tags), such as bigtera-src-etag;

其中這些暫時屬性的任一個屬性(例如每一個屬性)可被實作為一擴展屬性(x-attribute/XATTR/xattr),但是本發明不限於此,一旦來源物件的物件資料被遷移至目的地或使用者在該目的地覆寫該物件資料,該目的地(例如儲存伺服器10)可將上述所列出的暫時屬性移除,為簡潔起見,本實施例的類似內容在此不再重複詳細描述。Any one of these temporary attributes (for example, each attribute) can be implemented as an extended attribute (x-attribute/XATTR/xattr), but the present invention is not limited thereto. Once the object data of the source object is migrated to the destination or The user overwrites the object data at the destination, and the destination (such as the storage server 10) can remove the temporary attributes listed above. For the sake of brevity, the similar content of this embodiment will not be repeated here A detailed description.

根據某些實施例,以第5圖右上方所示的常態物件作為來源物件的範例,當來源物件的物件資料被遷移至目的地或使用者在該目的地覆寫該物件資料時,儲存伺服器10可以使充當常態物件之代表的索引物件無效化(例如藉由移除其暫時屬性)及/或將索引物件替換為在該目的地的該貯體中的常態物件,但是本發明不限於此。According to some embodiments, taking the normal object shown in the upper right of FIG. 5 as an example of the source object, when the object data of the source object is migrated to the destination or the user overwrites the object data at the destination, the storage server The implementer 10 may invalidate indexed objects that represent normal objects (e.g., by removing their temporary attributes) and/or replace indexed objects with normal objects in the repository at the destination, but the invention is not limited to this.

通常來說,更改一物件的存取控制列表不會改變該物件的修改時間,相關技術的資料遷移方法似乎在提出時沒有考慮這一點,因此不能適當地處理已刪除物件、唯讀物件等等。本發明的方法和相關設備可以在各種狀況中的任一狀況下適當地操作,其中更進一步的實作細節會在以下實施例中描述。Generally speaking, changing an object's access control list will not change the modification time of the object. The related art data migration method does not seem to take this into account when it is proposed, so it cannot properly handle deleted objects, read-only objects, etc. . The method and associated apparatus of the present invention may suitably operate under any of a variety of conditions, further implementation details of which are described in the following examples.

第6圖為根據本發明一實施例之利用索引物件來進行簡易儲存服務無縫遷移之方法的遷移代理控制方案的示意圖,因應將使用者資料自遠端簡易儲存服務相容伺服器遷移至儲存伺服器10的要求,於多個階段中的索引階段之前的一設置(set-up)階段(例如設置時期)的期間,儲存伺服器10可利用基於索引物件的簡易儲存服務遷移管理模組53來進行使用者資料之遷移的預處理,舉例來說,該預處理可包含步驟S01~S05的操作,但是本發明不限於此。Fig. 6 is a schematic diagram of a migration agent control scheme of a method for seamlessly migrating simple storage services using index objects according to an embodiment of the present invention, in response to migrating user data from remote simple storage service compatible servers to storage According to the requirements of the server 10, the storage server 10 can use the simple storage service migration management module 53 based on the index object during a set-up phase (such as the setup period) before the index phase among the multiple phases. To carry out the pre-processing of the user data migration, for example, the pre-processing may include the operations of steps S01-S05, but the present invention is not limited thereto.

在步驟S01中,基於索引物件的簡易儲存服務遷移管理模組53,例如,可以在要求觸發後立即為一組簡易儲存服務使用者(例如一單一使用者,諸如上述的使用者,或者包含有上述之使用者的多個使用者)開始進行簡易儲存服務遷移。In step S01, the index object-based simple storage service migration management module 53, for example, can provide a group of simple storage service users (such as a single user, such as the above-mentioned users, or include Multiple users of the above-mentioned users) start simple storage service migration.

在步驟S02中,基於索引物件的簡易儲存服務遷移管理模組53可以遷移各自的使用者憑證以及該組簡易儲存服務使用者的各自的設定(例如配額 (quota))。In step S02 , the index object-based simple storage service migration management module 53 can migrate respective user credentials and respective settings (such as quotas) of the group of simple storage service users.

在步驟S03中,基於索引物件的簡易儲存服務遷移管理模組53可以在目的地中針對該組使用者的每一使用者創建一個或多個貯體,並且設置相關遷移資訊,例如,該遷移資訊可包含代理參數(例如用來代理(例如轉發)的遠端使用者憑證)以及其他代理參數,以引導該目的地(例如儲存伺服器10)來將任一個其它要求代理(例如轉發)至來源端(例如遠端簡易儲存服務相容伺服器),並且將對應於該任一個其它要求的回應自該來源端代理(例如轉發)至使用者。In step S03, the index object-based simple storage service migration management module 53 can create one or more storage bodies for each user of the group of users in the destination, and set related migration information, for example, the migration The information may include proxy parameters (eg, remote user credentials to proxy (eg, forward) to) and other proxy parameters to direct the destination (eg, storage server 10) to proxy (eg, forward) any other request to an origin (eg, a remote Simple Storage Service compatible server), and proxies (eg, forwards) a response corresponding to the any other request from the origin to the user.

在步驟S04中,針對該一個或多個貯體的每一貯體,基於索引物件的簡易儲存服務遷移管理模組53可以遷移來源端之一相對應遠端貯體的貯體存取控制列表(bucket ACL)、貯體元資料(bucket metadata)以及貯體配額(bucket quota),以作為該一個或多個貯體的此一貯體的貯體存取控制列表、貯體元資料以及貯體配額。In step S04, for each of the one or more storages, the index object-based simple storage service migration management module 53 can migrate the storage access control list of one of the source terminals corresponding to the remote storage. (bucket ACL), storage metadata (bucket metadata), and storage quota (bucket quota), as the storage access control list, storage metadata and storage body quota.

在步驟S05中,基於索引物件的簡易儲存服務遷移管理模組53可以切換至少一端點,以自遠端簡易儲存服務相容伺服器的至少一叢集中存取使用者資料至儲存伺服器10中的至少一叢集。In step S05, the index object-based simple storage service migration management module 53 can switch at least one endpoint to access user data from at least one cluster of remote simple storage service compatible servers to the storage server 10 At least one cluster of .

在步驟S06中,在設置階段之後,基於索引物件的簡易儲存服務遷移管理模組53可以為該一個或多個貯體的該每一貯體來創建一索引貯體工作(例如INDEX工作),以進行來源端之相對應的遠端貯體至該一個或多個貯體的該貯體的遷移,例如,基於索引物件的簡易儲存服務遷移管理模組53可以將該貯體設至索引階段(例如INDEX階段)。In step S06, after the setup phase, the index object-based simple storage service migration management module 53 may create an index storage job (such as an INDEX job) for each of the one or more storages, In order to migrate the corresponding remote storage of the source to the storage of the one or more storages, for example, the simple storage service migration management module 53 based on the index object can set the storage to the index stage (eg INDEX stage).

為了更好地理解,一個或多個遷移代理程式的任一個遷移代理程式(例如每一個代理程式)可以視為實際進行物件遷移的程式模組,例如,基於索引物件的簡易儲存服務遷移管理模組53可以創建多個工作類型(例如相對應於索引階段的多個索引工作(例如多個INDEX工作)以及相對應於資料階段的多個資料工作(例如多個的DATA工作)),且尤指傳送及/或分配多個工作類型至一個或多個遷移代理程式,以分別進行資料階段以及索引階段的操作。假設該一個或多個代理程式包含多個代理程式,該多個代理程式可以分別被實作以在多個叢集節點上運行,其中一代理程式運行在多個叢集節點的每一個叢集節點上,因此,基於索引物件的簡易儲存服務遷移管理模組53可以同時借助於一個或多個遷移代理程式(例如多個遷移代理程式)來並行地將使用者資料(例如該物件的各自的物件資料)自來源端遷移至目的地。For better understanding, any one of one or more migration agents (e.g., each agent) can be viewed as a program module that actually performs object migration, e.g., the Simple Storage Service migration management module based on indexed objects Group 53 can create multiple job types (such as multiple index jobs corresponding to the index stage (such as multiple INDEX jobs) and multiple data jobs corresponding to the data stage (such as multiple DATA jobs)), and especially Refers to sending and/or assigning multiple job types to one or more migration agents for data phase and index phase operations respectively. Assuming that the one or more agent programs comprise a plurality of agent programs, the plurality of agent programs may be respectively implemented to run on a plurality of cluster nodes, wherein an agent program runs on each cluster node of the plurality of cluster nodes, Therefore, the migration management module 53 of the simple storage service based on index objects can transfer user data (such as the respective object data of the object) in parallel by means of one or more migration agent programs (such as multiple migration agent programs) Migrate from source to destination.

在步驟S07中,基於索引物件的簡易儲存服務遷移管理模組53可以藉由一個或多個遷移代理程式中的某個代理程式來執行INDEX工作,以為來源端之每一個物件(例如多個常態物件的每一個常態物件)進行以下操作: (1) 創建具有暫時屬性(例如來源物件最後修改時間,諸如bigtera-src-mtime;來源物件大小,諸如bigtera-src-size;以及來源物件實體標籤,諸如bigtera-src-etag)的一虛擬物件(例如不具有物件資料的一物件),以作為多個索引物件中的其中一個索引物件,其中暫時屬性可以為來源端之該每一個物件的虛假屬性(例如虛假最後修改時間、虛假實體標籤諸如虛假檔案雜湊以及虛假大小),而不是來源端之該每一個物件的真實屬性,因此可以視為特殊屬性; In step S07, the index object-based simple storage service migration management module 53 can use one or more migration agent programs to execute the INDEX work for each object (such as multiple normal Every normal object of the object) does the following: (1) Create a virtual object with temporal properties (such as source object last modification time, such as bigtera-src-mtime; source object size, such as bigtera-src-size; and source object entity tag, such as bigtera-src-etag) (e.g. an object with no object data) as one of multiple index objects, where the temporal attributes can be false attributes of each object at the source (e.g. false last-modified time, false entity tags such as false file hash and false size), rather than the real attributes of each object at the source, so they can be regarded as special attributes;

(2)自來源端將該物件的物件存取控制列表遷移至目的地;(2) migrating the object access control list of the object from the source to the destination;

其中多個索引物件的所有索引物件係在步驟S07的所有操作完成之後被創建。All the index objects among the plurality of index objects are created after all the operations in step S07 are completed.

當索引工作(例如INDEX工作)完成時,基於索引物件的簡易儲存服務遷移管理模組53可以為該一個或多個貯體的該每一個貯體創建一資料工作(例如DATA工作),以進行來源端的相對應之遠端貯體至該一個或多個貯體的此一貯體的遷移。When an index job (such as an INDEX job) is completed, the index object-based simple storage service migration management module 53 can create a data job (such as a DATA job) for each of the one or more storage bodies to perform Migration of the corresponding distal reservoir of the origin to the one reservoir of the one or more reservoirs.

在步驟S08中,針對該一個或多個貯體的該每一個貯體,基於索引物件的簡易儲存服務遷移管理模組53可以藉由一個或多個遷移代理程式的某個代理程式來執行DATA工作,以為來源端的每一個物件(例如於不存在任一個其它要求的情況下,多個常態物件的每一個常態物件;或者於存在任一個其它要求的情況下,該組常態物件的每一個常態物件,其中該任一個其它要求可能導致在該目的地中覆寫某個物件,以作為該貯體中的一常態物件)進行以下操作: (1)自該來源端遷移該物件的物件資料至該目的地; In step S08, for each of the one or more storage bodies, the index object-based simple storage service migration management module 53 can execute DATA by an agent program of one or more migration agent programs. work for each object at the source (e.g. each normal object of multiple normal objects if no other requirement exists, or each normal object of the set of normal objects if any other requirement exists object, where any other requirement may cause an object to be overwritten in the destination as a normal object in the repository) do the following: (1) migrating the object data of the object from the source to the destination;

其中該遷移代理程式可遷移該貯體配額的最新版本(例如於不存在任一個其它要求的情況下,相對應的遠端貯體的原始貯體配額;或者於存在任一個其它要求的情況下,因應使用者做出的任何更改而更新的貯體配額)以作為在該工作結束時該貯體的貯體配額,例如,基於索引物件的簡易儲存服務遷移管理模組53可將該貯體設至資料階段(例如DATA階段)。Wherein the migration agent program may migrate the latest version of the storage quota (for example, in the absence of any other requirements, the original storage quota of the corresponding remote storage; or in the presence of any other requirements , the storage quota updated in response to any changes made by the user) as the storage quota of the storage at the end of the job, for example, the index object based simple storage service migration management module 53 can use the storage Set to data stage (eg DATA stage).

在相對應於該組簡易儲存服務使用者的所有貯體中,當該些貯體的一貯體於索引階段(例如INDEX階段)中正在處理時,該些貯體的另一貯體可於資料階段(例如DATA階段)中正在處理。假設該一個或多個貯體包含多個貯體,當該多個貯體的一貯體於索引階段(例如INDEX階段)中正在處理時,該多個貯體的另一貯體可於資料階段(例如DATA階段)中正在處理,為簡潔起見,本實施例的類似內容在此不再重複詳細描述。Of all the repositories corresponding to the group of simple storage service users, while one of the repositories is being processed in an indexing phase (eg, an INDEX phase), another of those repositories is available at Processing is in progress in the data phase (eg DATA phase). Assuming the one or more buckets comprise multiple buckets, while one bucket of the multiple buckets is being processed in an indexing phase (eg, an INDEX phase), another bucket of the multiple buckets is available in the data stage (such as the DATA stage), and for the sake of brevity, similar content in this embodiment will not be described in detail here.

根據某些實施例,索引階段(例如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)可以將該任一個其它要求代理至遠端位置(例如來源端,諸如遠端簡易儲存服務相容伺服器),並且將代理回應(例如對應於該任一個其它要求的回應)回傳至客戶端裝置,為簡潔起見,這些實施例的類似內容在此不再重複詳細描述。According to some embodiments, the index phase (such as the INDEX phase) may be much shorter than the data phase (such as the DATA phase). In this index phase, the simple storage service migration management module 53 based on the index object can pass the The migration agent program performs INDEX work to list remote objects (such as multiple normal objects at the source) for creating virtual objects and migrating object access control lists. Since any other requirement may exist in the indexing phase (such as the INDEX phase), different situations need to be considered, such as a first situation in which the index object has not been created, and a second situation in which the storage server 10 is creating the index object, etc. etc., for example, processing for PUT/POST requests should be done at a local site (e.g. destination, such as storage server 10), and storage server 10 can do this processing for PUT/POST requests and At the same time, the PUT/POST request is proxied to a remote site (for example, the source, such as a remote Simple Storage Service compatible server), so that the storage usage and the object list (List-Objects) request ( For example ListObjects request) is correct. A user may overwrite one or more objects during an index phase (such as the INDEX phase) if any other requirement exists in that phase. If an index object is overwritten by a user, the object is no longer an Index object, so the migration agent will not migrate object data for this object in the data phase (such as DATA phase), in addition, before the data phase (such as DATA phase), all indexed objects may have been created (including their object access control list). In the data stage (such as the DATA stage), the index object-based simple storage service migration management module 53 can perform the DATA work through the migration agent program in step S08 to list local objects (such as objects in local locations, such as index object), and migrate object data for each local object. Generally speaking, most operations can be performed normally, except GET/HEAD object request, in order to solve competition hazard (racing hazard), storage server 10 can use atomic (atomic) operation to create index object and by this index object To migrate data (such as object data of multiple normal objects on the source side), for example, when the migration agent is creating index objects or migrating data about index objects, if a target object of the PUT operation already exists or does not have the above temporary attribute, the PUT operation is canceled, which means that the user has overwritten the object. For proxying (e.g., forwarding) indexed objects in a reliable automated distributed object storage gateway, in the presence of any other requirement, when a client device (e.g., a simple storage service client) operates on an indexed object or While the repository for the destination is in the INDEX phase, it may be desirable that the destination (e.g. storage server 10) can proxy any other request to a remote location (e.g. source, such as a remote Simple Storage Service container server), and return the proxy response (for example, the response corresponding to any other request) to the client device. For the sake of brevity, the similar content of these embodiments will not be described in detail here again.

第7圖為第1圖所示之具備基於索引物件的簡易儲存服務遷移管理模組53的Ceph物件儲存架構之範例的示意圖,第1圖所示之運行在處理電路52上的程式模組52P可包含一Ceph物件閘道器模組(為簡潔起見,在第7圖中標示為“Ceph物件閘道器”),其中該Ceph物件閘道器模組包含一些子模組,諸如一可靠自動化分散式物件儲存閘道器模組(為簡潔起見以及更好地理解,標示為“RADOS閘道器”)以及librados軟體庫(為簡潔起見,標示為“librados”),並且基於索引物件的簡易儲存服務遷移管理模組53係在可靠自動化分散式物件儲存閘道器模組中被實作,根據本實施例,客戶端裝置(標示為“客戶端”)可以通過超文本傳輸協定(例如簡易儲存服務或Swift應用程式介面)(為簡潔起見,標示為“HTTP(S3或Swift API)”)來存取儲存伺服器10,儲存伺服器10可以藉由多節點架構、多主機架構等等來實作,但是本發明不限於此。FIG. 7 is a schematic diagram of an example of a Ceph object storage architecture with an index object-based simple storage service migration management module 53 shown in FIG. 1, and a program module 52P running on the processing circuit 52 shown in FIG. 1 may contain a Ceph Object Gateway module (labeled "Ceph Object Gateway" in Figure 7 for brevity), where the Ceph Object Gateway module contains submodules such as a reliable Automated decentralized object storage gateway module (labeled "RADOS Gateway" for brevity and better understanding) and librados software library (labeled "librados" for brevity) and index based The Simple Storage Service Migration Management Module 53 for Objects is implemented in the Reliable Automated Distributed Object Storage Gateway Module. According to this embodiment, a client device (labeled as "Client") can communicate via Hypertext Transfer Protocol (such as Simple Storage Service or Swift API) (for brevity, marked as "HTTP (S3 or Swift API)") to access the storage server 10, the storage server 10 can use multi-node architecture, multi-host architecture, etc., but the present invention is not limited thereto.

如第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)),為簡潔起見,該些實施例的類似內容在此不再重複詳細描述。As shown in FIG. 7, a reliable automated distributed object storage of the storage server 10 (for example, an object-based storage system for reliable automated distributed object storage) may include passing through at least one public network (such as one or a plurality of public networks) to be coupled to a plurality of object storage device (object storage device, OSD) nodes (for brevity, marked as "OSD nodes") of the main device 50 shown in FIG. 1, and also include Other parts of the Ceph object storage architecture, such as at least one cluster network (cluster network) (for example, one or more cluster networks) coupled to the plurality of object storage device nodes, an odd number of monitors that constitute a quorum (Quorum) monitor and so on. The at least one public network can be used to achieve a first predetermined speed such as gigabits per second (labeled "1G" for brevity), and the at least one clustered network can be used to achieve a second predetermined speed such as 10 billion bits per second (marked as "10G" for the sake of brevity), wherein the second predetermined speed has as many bits per second as possible, and the plurality of object storage device nodes may include journal (journal ) (e.g. various types of journaling, such as object storage device journaling, etc.) (just a bunch of disks/drives, JBOD)), for the sake of brevity, the similar content of these embodiments will not be described in detail again here.

針對簡易儲存服務表現層狀態轉換的應用程式介面/操作,簡易儲存服務動作之物件相關操作的範例可包含但不限於: (1)物件列出要求(例如ListObjects request); Examples of object-related operations for simple storage service actions may include, but are not limited to: (1) Object list request (such as ListObjects request);

(2)物件頭(Head-Object)要求(例如用來獲取物件屬性的HeadObject request);(2) Head-Object requirements (such as HeadObject request used to obtain object properties);

(3)物件獲取要求(例如GetObject request);(3) Object acquisition request (such as GetObject request);

(4)物件獲取存取控制列表(Get-Object-ACL)要求(例如GetObjectaACL request);(4) Object access control list (Get-Object-ACL) request (eg GetObjectaACL request);

(5)物件放置(Put-Object)要求(例如PutObject request);(5) Object placement (Put-Object) request (such as PutObject request);

(6)創建多成分上傳(Create-Multipart-Upload)要求(例如CreateMultipartUpload request);(6) Create a multipart upload (Create-Multipart-Upload) request (eg CreateMultipartUpload request);

(7)完成多成分上傳(Complete-Multipart-Upload)要求(例如CompleteMultipartUpload request);(7) Complete multi-component upload (Complete-Multipart-Upload) requirements (such as CompleteMultipartUpload request);

(8)物件放置存取控制列表(Put-Object-ACL)要求(例如PutObjectACL request);(8) Object placement access control list (Put-Object-ACL) request (such as PutObjectACL request);

(9)物件刪除(Delete-Object)要求(例如DeleteObject request);(9) Object deletion (Delete-Object) request (such as DeleteObject request);

其中某些後續實施例可能專注在上述列出的物件相關操作上。Some of the subsequent embodiments may focus on operations related to the objects listed above.

第8圖為根據本發明一實施例之利用索引物件來進行簡易儲存服務無縫遷移之方法的物件列出控制方案的示意圖,如第8圖所示,於使用者資料遷移的期間用來處理一個或多個物件列出要求的一工作流程可包含步驟S10~S14,其中S14可包含一些子步驟諸如步驟S14A~S14C。Fig. 8 is a schematic diagram of an object listing control scheme of a method for seamlessly migrating simple storage services using index objects according to an embodiment of the present invention. As shown in Fig. 8, it is used for processing during user data migration A workflow for listing one or more objects may include steps S10-S14, wherein S14 may include some sub-steps such as steps S14A-S14C.

在步驟S10中,儲存伺服器10(例如基於索引物件的簡易儲存服務遷移管理模組53)可自使用者接收在一個或多個物件列出要求中的一物件列出要求。In step S10 , the storage server 10 (such as the index object-based simple storage service migration management module 53 ) may receive an object listing request among one or more object listing requests from the user.

在步驟S11中,因應該物件列出要求,基於索引物件的簡易儲存服務遷移管理模組53可檢查在儲存伺服器10的儲存裝置層中的至少一貯體中對應於該物件列出要求的一貯體(例如目的地的貯體)是否在索引階段(例如INDEX階段)中正在被處理,其中該至少一貯體可代表為物件的至少一容器(例如一個或多個容器),如果是,進入步驟S12;如果否,則進入步驟S14(例如步驟S14A),舉例來說,該物件列出要求要求列出該貯體的物件。In step S11, in response to the object listing request, the index object-based simple storage service migration management module 53 may check the storage corresponding to the object listing request in at least one storage in the storage device layer of the storage server 10 Whether a bucket (eg, destination's bucket) is being processed in an indexing phase (eg, INDEX phase), where the at least one bucket may represent at least one container (eg, one or more containers) of objects, if so , go to step S12; if not, go to step S14 (for example, step S14A), for example, the object listing request requires listing the object of the storage body.

在步驟S12中,因應該貯體在索引階段(例如INDEX階段)中正在被處理,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10來將該物件列出要求代理(例如轉發)至來源端(例如遠端簡易儲存服務相容伺服器)。In step S12, because the storage body is being processed in the index phase (such as the INDEX phase), the simple storage service migration management module 53 based on the index object can control the storage server 10 to list the object to the request agent (such as Forwarding) to the source (such as a remote Simple Storage Service compatible server).

在步驟S13中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10來自該來源端(例如遠端簡易儲存服務相容伺服器)將對應於該物件列出要求的回應代理(例如轉發)至使用者。In step S13, the index object-based simple storage service migration management module 53 can control the storage server 10 to list the response agent corresponding to the object from the source (such as a remote simple storage service compatible server) (e.g. forward) to the user.

在步驟S14中,因應該貯體在索引階段(例如INDEX階段)中沒有正在被處理,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以根據該物件列出要求來進行至少一常態動作,無需將該物件列出要求代理(例如轉發)至來源端(例如遠端簡易儲存服務相容伺服器),例如,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以根據一相關存取控制列表檢查是否通過來選擇性地將一本地物件列出結果(例如本地位置的一本地物件列出結果,諸如在本地位置執行該物件列出要求的結果)回傳至使用者。In step S14, since the storage body is not being processed in the index phase (for example, the INDEX phase), the index object-based simple storage service migration management module 53 can control the storage server 10 to perform At least one normal action, no need to list the object and request proxy (such as forwarding) to the source (such as a remote simple storage service compatible server), for example, the simple storage service migration management module 53 based on the index object can control the storage The server 10 optionally passes a local object listing result (eg, a local object listing result for the local location, such as the result of executing the object listing request at the local location) according to an associated ACL check. returned to the user.

在步驟S14A中,基於索引物件的簡易儲存服務遷移管理模組53可檢查該存取控制列表檢查是否通過,如果是,進入步驟S14B;如果否,則進入步驟S14C,例如,當存取控制列表指示使用者擁有將物件列出要求應用至該貯體的權限(例如執行物件列出要求的獲取結果的權限)時,基於索引物件的簡易儲存服務遷移管理模組53可判斷該存取控制列表檢查通過,又例如,當存取控制列表指示使用者不擁有將物件列出要求應用至該貯體的權限(例如執行物件列出要求的獲取結果的權限)時,基於索引物件的簡易儲存服務遷移管理模組53可判斷該存取控制列表檢查不通過。In step S14A, the index object-based simple storage service migration management module 53 can check whether the access control list check is passed, if yes, enter step S14B; if not, then enter step S14C, for example, when the access control list When indicating that the user has the authority to apply the object list request to the storage body (for example, the authority to execute the object list request to obtain the result), the index object-based simple storage service migration management module 53 can determine the access control list Check passed, and for example, when the access control list indicates that the user does not have the permission to apply the object list request to the storage (such as the permission to execute the object list request to get the result), the simple storage service based on the index object The migration management module 53 may determine that the ACL check fails.

在步驟S14B中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10來將本地物件列出結果回傳至使用者。In step S14B, the index object-based simple storage service migration management module 53 can control the storage server 10 to return the local object list result to the user.

在步驟S14C中,基於索引物件的簡易儲存服務遷移管理模組53可控制In step S14C, the index object-based simple storage service migration management module 53 can control

儲存伺服器10來阻止將本地物件列出結果回傳至使用者。The storage server 10 prevents the local object listing result from being returned to the user.

為了更好地理解,該方法可利用第8圖所示之工作流程來說明,但是本發明不限於此,根據某些實施例,第8圖所示之工作流程中的一個或多個步驟可被添加、刪除、或更改,例如,該工作流程的至少一部分(例如一部分或全部)可被執行多次,且尤指包含有檢查操作的任一個步驟可被執行多次,以分別產生多個檢查結果,以分別觸發一些後續步驟的執行。For better understanding, the method can be described using the workflow shown in FIG. 8, but the present invention is not limited thereto. According to some embodiments, one or more steps in the workflow shown in FIG. 8 can be be added, deleted, or changed, e.g., at least a part (eg, part or all) of the workflow may be performed multiple times, and in particular any step including an inspection operation may be performed multiple times to generate multiple Check the results to individually trigger the execution of some subsequent steps.

第9圖為根據本發明一實施例之利用索引物件來進行簡易儲存服務無縫遷移之方法的物件頭控制方案的示意圖,如第9圖所示,於使用者資料遷移的期間用來處理一個或多個物件頭要求的一工作流程可包含步驟S20~S28、S29A以及S29B,其中步驟S25可包含一些子步驟(例如S25A~S25C),以及步驟S27可包含一些子步驟(例如S27A~S27C)。Figure 9 is a schematic diagram of the object header control scheme of the method for seamless migration of simple storage services using index objects according to an embodiment of the present invention. As shown in Figure 9, it is used to process a user data during migration A workflow required by or multiple object headers may include steps S20~S28, S29A, and S29B, wherein step S25 may include some sub-steps (such as S25A~S25C), and step S27 may include some sub-steps (such as S27A~S27C) .

在步驟S20中,儲存伺服器(例如基於索引物件的簡易儲存服務遷移管理模組53)可自使用者接收一個或多個物件頭要求的一個物件頭要求,例如,該物件頭要求要求獲取目的地的貯體中一物件的物件屬性,並且該物件可視為該物件頭要求的一目標物件,物件屬性可包含: (1)物件最後修改時間,諸如該物件的最後修改時間; In step S20, the storage server (for example, the index object-based simple storage service migration management module 53) may receive an object header request of one or more object header requests from the user, for example, the object header request requests an acquisition purpose The object attribute of an object in the storage body of the land, and the object can be regarded as a target object required by the object header. The object attribute can include: (1) The last modification time of the object, such as the last modification time of the object;

(2)物件實體標籤,諸如該物件的實體標籤(例如檔案雜湊);(2) Object entity label, such as the entity label of the object (eg file hash);

(3)物件大小,諸如該物件的大小;(3) The size of the object, such as the size of the object;

其中這些屬性可以藉由一HTTP HEAD要求而被擷取。Wherein these attributes can be retrieved by an HTTP HEAD request.

在步驟S21中,因應該物件頭要求,基於索引物件的簡易儲存服務遷移管理模組53可檢查在儲存伺服器10的儲存裝置層中上述至少一貯體之中的對應於該物件頭要求之一貯體(例如目的地的貯體)是否在索引階段(例如INDEX階段)中正在被處理,如果是,進去步驟S22;如果否;則進入步驟S26。In step S21, in response to the object header request, the index object-based simple storage service migration management module 53 can check the at least one storage in the storage device layer of the storage server 10 that corresponds to the object header request. Whether a storage body (such as the storage body of the destination) is being processed in the index phase (such as the INDEX phase), if yes, go to step S22; if not; then go to step S26.

在步驟S22中,因應該貯體在索引階段(例如INDEX階段)中正在被處理,基於索引物件的簡易儲存服務遷移管理模組53可檢查該物件(例如該物件頭要求的該目標物件)是否存在,如果是,進入步驟S23;如果否,則進去步驟S28。In step S22, because the storage body is being processed in the index phase (such as the INDEX phase), the index object-based simple storage service migration management module 53 can check whether the object (such as the target object required by the object header) is Exist, if yes, go to step S23; if not, go to step S28.

在步驟S23中,因應該物件的存在,基於索引物件的簡易儲存服務遷移管理模組53可檢查該物件(例如該物件頭要求的該目標物件)是否仍為一索引物件,如果是,進入步驟S24;如果否,則進去步驟S27(例如步驟S27A)。In step S23, due to the existence of the object, the index object-based simple storage service migration management module 53 can check whether the object (such as the target object required by the object header) is still an index object, and if so, enter the step S24; if not, go to step S27 (eg step S27A).

在步驟S24中,因應該物件仍為一索引物件,基於索引物件的簡易儲存服務遷移管理模組53可檢查該物件的物件存取控制列表是否被遷移;如果是In step S24, because the object is still an index object, the index object-based simple storage service migration management module 53 can check whether the object access control list of the object has been migrated; if so

,進入步驟S25(例如步驟S25A);如果否,則進入步驟S29A,舉例來說,在創建一虛擬物件(例如上述的虛擬物件)以及遷移該物件存取控制列表之間通常會有一短時間延遲,因此基於索引物件的簡易儲存服務遷移管理模組53可在該工作流程中進行步驟S24的檢查操作,以遵守存取控制方針。, go to step S25 (such as step S25A); if no, go to step S29A, for example, there is usually a short time delay between creating a virtual object (such as the above-mentioned virtual object) and migrating the object access control list Therefore, the index object-based simple storage service migration management module 53 can perform the checking operation of step S24 in the workflow to comply with the access control policy.

在步驟S25中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以根據該物件頭要求來進行至少一特殊動作,例如,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以選擇性地根據一相關存取控制列表檢查是否通過來將記錄在該索引物件(例如在步驟S23中提到的該索引物件)的特殊屬性(例如來源修改時間,諸如bigtera-src-mtime、來源實體標籤,諸如bigtera-src-etag、以及來源大小,諸如bigtera-src-size)中的屬性回傳至使用者。In step S25, the index object-based simple storage service migration management module 53 can control the storage server 10 to perform at least one special action according to the object header requirements, for example, the index object-based simple storage service migration management module 53 The storage server 10 may be controlled to selectively check whether a specific attribute (such as a source modification time, such as attributes in bigtera-src-mtime, source entity tags such as bigtera-src-etag, and source size such as bigtera-src-size) are returned to the consumer.

在步驟S25A中,基於索引物件的簡易儲存服務遷移管理模組53可檢查該存取控制列表檢查是否通過,如果是,進入步驟S25B;如果否,則進入步驟S25C,例如,當該存取控制列表指示使用者擁有將物件頭要求應用於該物件的權限(例如獲取執行該物件頭要求之結果的權限)時,基於索引物件的簡易儲存服務遷移管理模組53可判斷該存取控制列表檢查通過,又例如,當該存取控制列表指示使用者不擁有將物件頭要求應用於該物件的權限(例如獲取執行該物件頭要求之結果的權限)時,基於索引物件的簡易儲存服務遷移管理模組53可判斷該存取控制列表不通過。In step S25A, the index object-based simple storage service migration management module 53 can check whether the access control list check is passed, if yes, enter step S25B; if not, then enter step S25C, for example, when the access control list When the list indicates that the user has the authority to apply the object header request to the object (for example, the authority to obtain the result of executing the object header request), the index object-based simple storage service migration management module 53 can determine the access control list check By, for example, when the access control list indicates that the user does not have the right to apply the object header request to the object (such as the right to obtain the result of executing the object header request), the simple storage service migration management based on the index object The module 53 may determine that the ACL is not passed.

在步驟S25B中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以將記錄在該索引物件(例如在步驟S23中提到的該索引物件)之特殊屬性中的屬性回傳至使用者。In step S25B, the index object-based simple storage service migration management module 53 can control the storage server 10 to return the attributes recorded in the special attributes of the index object (such as the index object mentioned in step S23) to sent to the user.

在步驟S25C中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以阻止將記錄在該索引物件(例如在步驟S23中提到的該索引物件)之特殊屬性中的屬性回傳至使用者。In step S25C, the index object-based simple storage service migration management module 53 can control the storage server 10 to prevent the attributes that will be recorded in the special attributes of the index object (such as the index object mentioned in step S23) returned to the user.

在步驟S26中,因應該貯體在索引階段(例如INDEX階段)中沒有正在被處理,基於索引物件的簡易儲存服務遷移管理模組53可檢查該物件(例如該物件頭要求的該目標物件)是否仍為一索引物件,如果是,進入步驟S25(例如步驟S25A);如果否,則進入步驟S27(例如步驟S27A),針對步驟S26以及S27之間的部分工作流程,在資料階段(例如DATA階段)中,所有物件存取控制列表已經被遷移,因此無需再次獲取遠端物件存取控制列表。In step S26, because the storage body is not being processed in the index phase (such as the INDEX phase), the index object-based simple storage service migration management module 53 can check the object (such as the target object required by the object header) Is it still an index object? If yes, go to step S25 (such as step S25A); stage), all object access control lists have been migrated, so there is no need to obtain remote object access control lists again.

在步驟S27中,因應該物件(例如該物件頭要求的該目標物件)已不再是一索引物件(例如該物件成為一常態物件),基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以根據該物件頭要求來進行至少一常態動作,例如,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以根據一相關存取控制列表檢查是否通過來選擇性地將該物件的本地元資料(例如本地位置的該物件之元資料)回傳至使用者。In step S27, because the object (for example, the target object required by the object header) is no longer an index object (for example, the object has become a normal object), the index object-based simple storage service migration management module 53 can control The storage server 10 can perform at least one normal operation according to the request of the object header, for example, the simple storage service migration management module 53 based on the index object can control the storage server 10 to select according to a relevant access control list check Optionally returns the object's local metadata (eg, the object's metadata at the local location) to the user.

在步驟S27A中,基於索引物件的簡易儲存服務遷移管理模組53可檢查存取控制列表檢查是否通過,如果是,進入步驟S27B;如果否,則進入步驟S27C,例如,步驟S27A的操作可相似於步驟S25A的操作。In step S27A, the index object-based simple storage service migration management module 53 can check whether the access control list check is passed, if yes, enter step S27B; if not, then enter step S27C, for example, the operation of step S27A can be similar Operation in step S25A.

在步驟S27 B中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以將該物件的該本地元資料回傳至使用者。In step S27B, the index object-based simple storage service migration management module 53 can control the storage server 10 to return the local metadata of the object to the user.

在步驟S27C中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以阻止將該物件的該本地元資料回傳至使用者。In step S27C, the index object-based simple storage service migration management module 53 can control the storage server 10 to prevent the local metadata of the object from being returned to the user.

在步驟S28中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以將該要求(例如物件頭要求)代理(例如轉發)至來源端/遠端位置(例如遠端簡易儲存服務相容伺服器),以使該遠端位置檢查該物件存取控制列表。In step S28, the index object-based simple storage service migration management module 53 can control the storage server 10 to proxy (for example forward) the request (for example, object header request) to the source/remote location (for example, remote simple storage service compatible server) to have the remote location check the object access control list.

在步驟S29中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以將對應於該物件頭要求的回應代理(例如轉發)至使用者。In step S29 , the index object-based simple storage service migration management module 53 can control the storage server 10 to proxy (for example, forward) the response corresponding to the object header request to the user.

在步驟S29E中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以回傳一錯誤通知(例如’503 Service Unavailable’),例如,由於遷移代理程式在極短時間內會遷移存取控制列表,此操作可通知客戶端稍後再嘗試。In step S29E, the index object-based simple storage service migration management module 53 can control the storage server 10 to return an error notification (such as '503 Service Unavailable'), for example, because the migration agent program will Migrate the ACL, which tells the client to try again later.

為了更好地理解,該方法可利用第9圖所示之工作流程來說明,但是本發明不限於此,根據某些實施例,第9圖所示之工作流程中的一個或多個步驟可被添加、刪除、或更改,例如,該工作流程的至少一部分(例如一部分或全部)可被執行多次,且尤指包含有檢查操作的任一個步驟可被執行多次,以分別產生多個檢查結果,以分別觸發一些後續步驟的執行。For better understanding, the method can be described using the workflow shown in FIG. 9, but the present invention is not limited thereto. According to some embodiments, one or more steps in the workflow shown in FIG. 9 can be be added, deleted, or changed, e.g., at least a part (eg, part or all) of the workflow may be performed multiple times, and in particular any step including an inspection operation may be performed multiple times to generate multiple Check the results to individually trigger the execution of some subsequent steps.

第10圖為根據本發明一實施例之利用索引物件來進行簡易儲存服務無縫遷移之方法的物件獲取控制方案的示意圖,如第10圖所示,於使用者資料遷移的期間用來處理一個或多個物件獲取要求的一工作流程可包含步驟S30~S36,其中步驟S36可包含一些子步驟(例如S36A~S36C)。Figure 10 is a schematic diagram of the object acquisition control scheme of the method for seamless migration of simple storage services using index objects according to an embodiment of the present invention. As shown in Figure 10, it is used to process a user data during migration A workflow for acquiring one or more objects may include steps S30-S36, wherein step S36 may include some sub-steps (such as S36A-S36C).

在步驟S30中,儲存伺服器10(例如基於索引物件的簡易儲存服務遷移管理模組53)可自使用者接收一個或多個物件獲取要求中的一物件獲取要求,例如,該物件獲取要求要求獲取有著屬性的物件資料,諸如目的地之貯體中的一物件的物件資料以及該物件的物件屬性,並且此物件可視為該物件獲取要求的一目標物件。In step S30, the storage server 10 (such as the index object-based simple storage service migration management module 53) may receive one or more object acquisition requests from the user, for example, the object acquisition request Obtain object data with attributes, such as the object data of an object in the destination storage and the object attributes of the object, and this object can be regarded as a target object of the object retrieval request.

在步驟S31中,因應該物件獲取要求,基於索引物件的簡易儲存服務遷移管理模組53可檢查儲存伺服器之儲存裝置層中的上述至少一貯體中對應於該物件獲取要求的一貯體(例如目的地的貯體)是否在索引階段(例如INDEX階段)中正在被處理,如果是,進入步驟S32;如果否,則進入步驟S33。In step S31, in response to the object acquisition request, the index object-based simple storage service migration management module 53 may check the at least one storage body in the storage device layer of the storage server corresponding to the object acquisition request Whether (such as the storage body of the destination) is being processed in the indexing stage (such as the INDEX stage), if yes, go to step S32; if not, go to step S33.

在步驟S32中,因應該貯體在索引階段(例如INDEX階段)中正在被處理,基於索引物件的簡易儲存服務遷移管理模組53可檢查該物件(例如該物件獲取要求的該目標物件)是否存在,如果是,進入步驟S33;如果否,則進入步驟S34。針對步驟S32以及S34 之間的部分工作流程,該物件不存在之原因的範例可包含:該索引物件還未被創建;以及該索引物件已經被使用者刪除。In step S32, because the storage body is being processed in the index phase (such as the INDEX phase), the index object-based simple storage service migration management module 53 can check whether the object (such as the target object of the object acquisition request) is Yes, if yes, go to step S33; if not, go to step S34. For some workflows between steps S32 and S34 , examples of the reason why the object does not exist may include: the index object has not been created; and the index object has been deleted by the user.

在步驟S33中,基於索引物件的簡易儲存服務遷移管理模組53可檢查該物件(例如該物件獲取要求的該目標物件)是否仍為一索引物件,如果是,進入步驟S34;如果否,則進入步驟S36(例如步驟S36A)。In step S33, the index object-based simple storage service migration management module 53 can check whether the object (such as the target object of the object acquisition request) is still an index object, if yes, go to step S34; if not, then Go to step S36 (for example, step S36A).

在步驟S34中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以將該要求(例如該物件獲取要求)代理(例如轉發)至來源端/遠端位置(例如遠端簡易儲存服務相容伺服器)。In step S34, the index object-based simple storage service migration management module 53 can control the storage server 10 to proxy (for example forward) the request (for example, the object acquisition request) to the source/remote location (for example, the remote Simple Storage Service compatible server).

在步驟S35中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以將對應於該物件獲取要求的回應代理(例如轉發)至使用者。In step S35 , the index object-based simple storage service migration management module 53 can control the storage server 10 to proxy (for example, forward) the response corresponding to the object acquisition request to the user.

在步驟S36中,因應該物件(例如該物件獲取要求的該目標物件)不再是一索引物件(例如該物件成為一常態物件),基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以根據該物件獲取要求來進行至少一常態動作,例如,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以根據一相關存取控制列表檢查是否通過來選擇性地將該物件的本地資料(例如本地位置的該物件之該資料)回傳至使用者。In step S36, in response to the object (for example, the target object requested by the object) is no longer an index object (for example, the object becomes a normal object), the index object-based simple storage service migration management module 53 can control the storage The server 10 performs at least one normal action according to the object acquisition request. For example, the simple storage service migration management module 53 based on the index object can control the storage server 10 to check whether it is passed according to a related access control list. Local data of the object (eg, the data of the object at the local location) is returned to the user.

在步驟S36A中,基於索引物件的簡易儲存服務遷移管理模組53可檢查該存取控制列表檢查是否通過,如果是,進入步驟S36B;如果否,則進入步驟S36C,例如,當該存取控制列表指示使用者擁有將該物件獲取要求應用於該物件的權限(例如獲取執行該物件獲取要求之結果的權限)時,基於索引物件的簡易儲存服務遷移管理模組53可判斷該存取控制列表檢查通過,又例如,當該存取控制列表指示使用者不擁有將該物件獲取要求應用於該物件的權限(例如獲取執行該物件獲取要求之結果的權限)時,基於索引物件的簡易儲存服務遷移管理模組53可判斷該存取控制列表不通過。In step S36A, the index object-based simple storage service migration management module 53 can check whether the access control list check is passed, if yes, enter step S36B; if not, then enter step S36C, for example, when the access control list When the list indicates that the user has the authority to apply the object acquisition request to the object (for example, the authority to obtain the result of executing the object acquisition request), the index object-based simple storage service migration management module 53 can determine the access control list Check passed, and for example, when the access control list indicates that the user does not have the permission to apply the object get request to the object (such as the permission to obtain the result of executing the object get request), the simple storage service based on the index object The migration management module 53 may determine that the ACL is not passed.

在步驟S36B中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以將該物件的該本地資料回傳至使用者。In step S36B, the index object-based simple storage service migration management module 53 can control the storage server 10 to return the local data of the object to the user.

在步驟S36C中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10阻止將該物件的該本地資料回傳至使用者。In step S36C, the index object-based simple storage service migration management module 53 can control the storage server 10 to prevent the local data of the object from being returned to the user.

為了更好地理解,該方法可利用第10圖所示之工作流程來說明,但是本發明不限於此,根據某些實施例,第10圖所示之工作流程中的一個或多個步驟可被添加、刪除、或更改,例如,該工作流程的至少一部分(例如一部分或全部)可被執行多次,且尤指包含有檢查操作的任一個步驟可被執行多次,以分別產生多個檢查結果,以分別觸發一些後續步驟的執行。For better understanding, the method can be described using the workflow shown in FIG. 10, but the present invention is not limited thereto. According to some embodiments, one or more steps in the workflow shown in FIG. 10 can be be added, deleted, or changed, e.g., at least a part (eg, part or all) of the workflow may be performed multiple times, and in particular any step including an inspection operation may be performed multiple times to generate multiple Check the results to individually trigger the execution of some subsequent steps.

第11圖為根據本發明一實施例之利用索引物件來進行簡易儲存服務無縫遷移之方法的物件獲取存取控制列表控制方案的示意圖,如第11圖所示,於使用者資料遷移的期間用來處理一個或多個物件獲取存取控制列表要求的一工作流程可包含步驟S40~S48,其中步驟S45可包含一些子步驟(例如S45A~S45C)。Figure 11 is a schematic diagram of the object acquisition access control list control scheme of the method for seamless migration of simple storage services using index objects according to an embodiment of the present invention, as shown in Figure 11, during the period of user data migration A workflow for processing one or more objects to obtain an ACL request may include steps S40-S48, wherein step S45 may include some sub-steps (eg S45A-S45C).

在步驟S40中,儲存伺服器10(例如基於索引物件的簡易儲存服務遷移管理模組53)可自使用者接收在一個或多個物件獲取存取控制列表要求中的一物件獲取存取控制列表要求,例如,該物件獲取存取控制列表要求要求獲取物件存取控制列表(例如目的地的貯體中一貯體的存取控制列表),並且此物件可視為該物件獲取存取控制列表要求的一目標物件。In step S40, the storage server 10 (such as the indexed object-based simple storage service migration management module 53) may receive an object acquisition ACL in one or more object acquisition ACL requests from the user Requires, e.g., the object get ACL request requires a get object ACL (eg, the ACL of a bin in the destination's bin), and this object can be considered as the object get ACL request A target object of .

在步驟S41中,因應該物件獲取存取控制列表要求,基於索引物件的簡易儲存服務遷移管理模組53可檢查儲存伺服器10的儲存裝置層中的上述至少一貯體中對應於該物件獲取存取控制列表要求的一貯體(例如目的地的貯體)是否在索引階段(例如INDEX階段)中正在被處理,如果是,進入步驟S42;如果否,則進入步驟S45(例如步驟S45A)。In step S41, in response to the request of the object to obtain the access control list, the simple storage service migration management module 53 based on the index object can check the above-mentioned at least one storage body in the storage device layer of the storage server 10 corresponding to the object obtained Whether a storage body (such as the storage body of the destination) required by the access control list is being processed in the index phase (such as the INDEX phase), if yes, enter step S42; if not, then enter step S45 (such as step S45A) .

在步驟S42中,因應該貯體在索引階段(例如INDEX階段)中正在被處理,基於索引物件的簡易儲存服務遷移管理模組53可檢查該物件(例如該物件獲取存取控制列表要求的該目標物件)是否存在,如果是,進入步驟S43;如果否,則進入步驟S46。In step S42, because the storage body is being processed in the index phase (such as the INDEX phase), the simple storage service migration management module 53 based on the index object can check the object (such as the object to obtain the access control list requirements) target object) exists, if yes, go to step S43; if not, go to step S46.

在步驟S43中,基於索引物件的簡易儲存服務遷移管理模組53可檢查該物件(例如該物件獲取存取控制列表要求的該目標物件)是否仍為一索引物件,如果是,進入步驟S44;如果否,則進入步驟S45(例如步驟S45A)。In step S43, the index object-based simple storage service migration management module 53 can check whether the object (such as the target object required by the object to obtain the access control list) is still an index object, and if so, proceed to step S44; If not, go to step S45 (eg step S45A).

在步驟S44中,因應該物件仍為一索引物件,基於索引物件的簡易儲存服務遷移管理模組53可檢查該物件的物件存取控制列表是否被遷移,如果是,進入步驟S45(例如步驟S45A);如果否,則進入步驟S48。In step S44, because the object is still an index object, the index object-based simple storage service migration management module 53 can check whether the object access control list of the object has been migrated, and if so, enter step S45 (such as step S45A ); if not, go to step S48.

在步驟S45中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以根據該物件獲取存取控制列表要求來進行至少一常態動作,例如,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以根據一相關存取控制列表檢查是否通過來選擇性地將該物件的本地存取控制列表(例如本地位置的該物件之存取控制列表)回傳至使用者。In step S45, the index object-based simple storage service migration management module 53 can control the storage server 10 to perform at least one normal operation according to the object’s access control list request, for example, the index object-based simple storage service migration The management module 53 may control the storage server 10 to selectively return the local ACL of the object (eg, the ACL of the object at the local location) to the user.

在步驟S45A中,基於索引物件的簡易儲存服務遷移管理模組53可檢查該存取控制列表檢查是否通過,如果是,進入步驟S45B;如果否,則進入步驟S45C,例如,當存取控制列表指示使用者擁有將該物件獲取存取控制列表要求應用於該物件的權限(例如獲取執行該物件獲取存取控制列表要求之結果的權限)時,基於索引物件的簡易儲存服務遷移管理模組53可判斷該存取控制列表檢查通過,又例如,當存取控制列表指示使用者不擁有將該物件獲取存取控制列表要求應用於該物件的權限(例如獲取執行該物件獲取存取控制列表要求之結果的權限)時,基於索引物件的簡易儲存服務遷移管理模組53可判斷該存取控制列表檢查不通過。In step S45A, the index object-based simple storage service migration management module 53 can check whether the access control list check is passed, if yes, enter step S45B; if not, then enter step S45C, for example, when the access control list When indicating that the user has the permission to apply the object's access control list request to the object (for example, to obtain the permission to execute the object's access control list request result), the index object-based simple storage service migration management module 53 It can be judged that the access control list check is passed. For example, when the access control list indicates that the user does not have the permission to apply the object's access control list request to the object (such as obtaining and executing the object's access control list request In the case of the authority of the result), the index object-based simple storage service migration management module 53 may determine that the access control list check fails.

在步驟S45B中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以將該物件的本地存取控制列表回傳至使用者。In step S45B, the index object-based simple storage service migration management module 53 can control the storage server 10 to return the local access control list of the object to the user.

在步驟S45C中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以阻止將該物件的本地存取控制列表回傳至使用者。In step S45C, the index object-based simple storage service migration management module 53 can control the storage server 10 to prevent the local ACL of the object from being sent back to the user.

在步驟S46中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以將該要求(例如該物件獲取存取控制列表要求)代理(例如轉發)至來源端/遠端位置(例如遠端簡易儲存服務相容伺服器)。In step S46, the indexed object-based simple storage service migration management module 53 can control the storage server 10 to proxy (e.g. forward) the request (e.g. the object obtain access control list request) to the source end/remote location (eg Remote Simple Storage Service compatible server).

在步驟S47中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以將對應於該物件獲取存取控制列表要求的回應代理(例如轉發)至使用者。In step S47 , the indexed object-based simple storage service migration management module 53 can control the storage server 10 to proxy (for example, forward) the response corresponding to the object's access control list request to the user.

在步驟S48中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以回傳一錯誤通知(例如’503 Service Unavailable’)。In step S48, the index object-based simple storage service migration management module 53 can control the storage server 10 to return an error notification (such as '503 Service Unavailable').

為了更好地理解,該方法可利用第11圖所示之工作流程來說明,但是本發明不限於此,根據某些實施例,第11圖所示之工作流程中的一個或多個步驟可被添加、刪除、或更改,例如,該工作流程的至少一部分(例如一部分或全部)可被執行多次,且尤指包含有檢查操作的任一個步驟可被執行多次,以分別產生多個檢查結果,以分別觸發一些後續步驟的執行。For better understanding, the method can be described using the workflow shown in FIG. 11, but the present invention is not limited thereto. According to some embodiments, one or more steps in the workflow shown in FIG. 11 can be be added, deleted, or changed, e.g., at least a part (eg, part or all) of the workflow may be performed multiple times, and in particular any step including an inspection operation may be performed multiple times to generate multiple Check the results to individually trigger the execution of some subsequent steps.

第12圖為根據本發明一實施例之利用索引物件來進行簡易儲存服務無縫遷移之方法的物件放置控制方案的示意圖,如第12圖所示,於使用者資料遷移的期間用來處理一個或多個物件資料寫入相關要求(例如一個或多個物件放置要求、一個或多個創建多成分上傳要求、以及一個或多個完成多成分上傳要求)的一工作流程可包含步驟S50~S58,其中步驟S56可包含一些子步驟(例如S56A~S56C)。Fig. 12 is a schematic diagram of an object placement control scheme for a method for seamlessly migrating simple storage services using index objects according to an embodiment of the present invention. As shown in Fig. 12, it is used to process a user data during migration A workflow for writing one or more object data related requirements (such as one or more object placement requirements, one or more creation multi-component upload requirements, and one or more completion multi-component upload requirements) may include steps S50-S58 , wherein step S56 may include some sub-steps (eg S56A~S56C).

在步驟S50中,儲存伺服器10(例如基於索引物件的簡易儲存服務遷移管理模組53)可自使用者接收在一個或多個物件資料寫入相關要求(例如一個或多個放置要求、一個或多個創建多成分上傳要求、以及一個或多個完成多成分上傳要求)中的一物件資料寫入相關要求(例如一物件放置/創建多成分上傳/完成多成分上傳要求,諸如一物件放置要求、一創建多部分上傳要求簡或者一完成多部分上傳要求),舉例來說,該物件資料寫入相關要求要求將一物件寫入至目的地的貯體,並且此物件可視為該物件資料寫入相關要求的一目標物件。In step S50, the storage server 10 (such as the index object-based simple storage service migration management module 53) may receive from the user one or more object data writing related requests (such as one or more placement requests, one or multiple CREATE MULTI-COMPONENT UPLOAD requests, and one or more COMPLETE MULTI-COMPONENT UPLOAD requests) in an object data write related request (e.g. an object put/create multipart upload/complete multipart upload request such as an object put request, a create multipart upload request or a complete multipart upload request), for example, the object data write related request requires writing an object to the destination's bucket, and this object can be considered as the object data A target object for writing related requests.

在步驟S51中,因應該物件資料寫入相關要求,基於索引物件的簡易儲存服務遷移管理模組53可檢查儲存伺服器10之儲存裝置層中的上述至少一貯體中對應於該物件資料寫入相關要求的一貯體(例如目的地的貯體)是否在索引階段(例如INDEX階段)中正在被處理,如果是,進入步驟S52;如果否,則進入步驟S56(例如步驟S56A)。In step S51, in response to the request for writing the object data, the index object-based simple storage service migration management module 53 may check the above-mentioned at least one storage body in the storage device layer of the storage server 10 corresponding to the object data writing Whether a storage body (such as the storage body of the destination) of the relevant request is being processed in the index phase (such as the INDEX phase), if yes, enter step S52; if not, then enter step S56 (such as step S56A).

在步驟S52中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以將該要求(例如該物件資料寫入相關要求)代理(例如轉發)至來源端(例如遠端簡易儲存服務相容伺服器),以使遠端簡易儲存服務相容伺服器檢查該物件存取控制列表。In step S52, the index object-based simple storage service migration management module 53 can control the storage server 10 to proxy (for example forward) the request (for example, the request for writing the object data) to the source end (for example, the remote simple Storage service compatible server) to have the remote Simple Storage service compatible server check the object access control list.

在步驟S53中,基於索引物件的簡易儲存服務遷移管理模組53可控制該要求(例如該物件資料寫入相關要求)是否成功而沒有任何錯誤,如果是(例如接收自該來源端的回應,諸如對應於該物件資料寫入相關要求的回應,指示沒有錯誤發生),進入步驟S54;如果否(例如接收自該來源端的回應,諸如對應於該物件資料寫入相關要求的回應,係指示一個或多個錯誤的一錯誤回應),則進入步驟S57。In step S53, the index object-based simple storage service migration management module 53 can control whether the request (for example, the request for writing the object data) is successful without any error, and if it is (for example, a response received from the source, such as Corresponding to the response to the object data write-related request, indicating that no error occurs), enter step S54; if not (for example, the response received from the source, such as the response corresponding to the object data write-related request, indicates one or multiple errors (one error response), then go to step S57.

在步驟S54中,基於索引物件的簡易儲存服務遷移管理模組53可檢查該物件(例如該物件資料寫入相關要求的該目標物件)是否存在,如果是,進入步驟S55;如果否,則進入步驟S56(例如步驟S56A)。In step S54, the index object-based simple storage service migration management module 53 can check whether the object (for example, the target object required to write the object data) exists, if yes, go to step S55; if not, go to Step S56 (for example, step S56A).

在步驟S55中,基於索引物件的簡易儲存服務遷移管理模組53可檢查該物件的物件存取控制列表是否被遷移,如果是,進入步驟S56(例如步驟S56A);如果否,則進入步驟S58。In step S55, the index object-based simple storage service migration management module 53 can check whether the object access control list of the object has been migrated, if yes, go to step S56 (such as step S56A); if not, go to step S58 .

在步驟S56中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以根據該物件資料寫入相關要求來進行至少一常態動作,例如,基於索引物件的簡易儲存服務遷移管理模組53可根據一相關存取控制列表檢查是否通過來選擇性地將資料(例如該物件資料寫入相關要求所攜帶的該物件資料)寫入為該物件的該物件資料。In step S56, the index object-based simple storage service migration management module 53 can control the storage server 10 to perform at least one normal operation according to the object data writing related requirements, for example, the index object-based simple storage service migration management The module 53 can selectively write data (such as the object data carried in the object data writing related request) as the object data of the object according to a related access control list check.

在步驟S56A中,基於索引物件的簡易儲存服務遷移管理模組53可檢查該存取控制列表檢查是否通過,如果是,進入步驟S56B;如果否,則進入步驟S56C,例如,當存取控制列表指示使用者擁有將該物件資料寫入相關要求應用於該物件的權限(將該物件資料寫入相關要求所攜帶的該物件資料寫入的權限)時,基於索引物件的簡易儲存服務遷移管理模組53可判斷該存取控制列表檢查通過,又例如,當存取控制列表指示使用者不擁有將該物件資料寫入相關要求應用於該物件的權限(將該物件資料寫入相關要求所攜帶的該物件資料寫入的權限)時,基於索引物件的簡易儲存服務遷移管理模組53可判斷該存取控制列表檢查不通過。In step S56A, the index object-based simple storage service migration management module 53 can check whether the access control list check is passed, if yes, enter step S56B; if not, then enter step S56C, for example, when the access control list When indicating that the user has the permission to write the object data to the relevant request and apply it to the object (the permission to write the object data to the object data carried by the relevant request), the migration management module of the simple storage service based on the index object Group 53 can determine that the access control list check is passed, and for example, when the access control list indicates that the user does not have the authority to apply the object data to the relevant request (write the object data to the relevant request carried The object data write permission), the index object-based simple storage service migration management module 53 can determine that the access control list check fails.

在步驟S56B中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以將該資料(例如該物件資料寫入相關要求所攜帶的該物件資料)寫入為該物件的該物件資料。In step S56B, the index object-based simple storage service migration management module 53 can control the storage server 10 to write the data (for example, the object data carried in the request for writing the object data) into the object’s Object data.

在步驟S56C中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以阻止將該資料(例如該物件資料寫入相關要求所攜帶的該物件資料)寫入為該物件的該物件資料。In step S56C, the index object-based simple storage service migration management module 53 can control the storage server 10 to prevent the data (for example, the object data carried in the object data writing request) from being written into the object. The object data.

在步驟S57中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以將對應於該物件資料寫入相關要求的該錯誤回應代理(例如轉發)至使用者。In step S57, the index object-based simple storage service migration management module 53 can control the storage server 10 to proxy (for example forward) the error response corresponding to the object data writing request to the user.

在步驟S58中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以自來源端將該物件的物件存取控制列表遷移至目的地。In step S58, the index object-based simple storage service migration management module 53 can control the storage server 10 to migrate the object ACL of the object from the source to the destination.

為了更好地理解,該方法可利用第12圖所示之工作流程來說明,但是本發明不限於此,根據某些實施例,第12圖所示之工作流程中的一個或多個步驟可被添加、刪除、或更改,例如,該工作流程的至少一部分(例如一部分或全部)可被執行多次,且尤指包含有檢查操作的任一個步驟可被執行多次,以分別產生多個檢查結果,以分別觸發一些後續步驟的執行。For better understanding, the method can be described using the workflow shown in FIG. 12, but the present invention is not limited thereto. According to some embodiments, one or more steps in the workflow shown in FIG. 12 can be be added, deleted, or changed, e.g., at least a part (eg, part or all) of the workflow may be performed multiple times, and in particular any step including an inspection operation may be performed multiple times to generate multiple Check the results to individually trigger the execution of some subsequent steps.

第13圖為根據本發明一實施例之利用索引物件來進行簡易儲存服務無縫遷移之方法的物件放置存取控制列表控制方案的示意圖,如第13圖所示,於使用者資料遷移的期間用來處理一個或多個物件放置存取控制列表要求的一工作流程可包含步驟S60~S65,其中步驟S64可包含一些子步驟(例如S64A~S64C)。Figure 13 is a schematic diagram of the object placement access control list control scheme of the method for seamless migration of simple storage services using index objects according to an embodiment of the present invention, as shown in Figure 13, during the period of user data migration A workflow for processing one or more object placement ACL requests may include steps S60-S65, wherein step S64 may include some sub-steps (eg, S64A-S64C).

在步驟S60中,儲存伺服器10(例如基於索引物件的簡易儲存服務遷移管理模組53)可自使用者接收一個或多個物件放置存取控制列表要求的一物件放置存取控制列表要求,例如,該物件放置存取控制列表要求要求寫入或者更新物件存取控制列表(例如在目的地之貯體中一物件的存取控制列表),並且此物件可視為該物件放置存取控制列表要求的一目標物件。In step S60, the storage server 10 (for example, the index object-based simple storage service migration management module 53) may receive an object placement ACL request of one or more object placement ACL requests from the user, For example, the object placement ACL request requires writing or updating the object ACL (such as the ACL of an object in the destination's storage), and the object can be considered the object placement ACL A target object requested.

在步驟S61中,因應該物件放置存取控制列表要求,基於索引物件的簡易儲存服務遷移管理模組53可檢查在儲存伺服器10之儲存裝置層中的上述至少一貯體中對應於該物件放置存取控制列表要求的一貯體(例如目的地的貯體)是否在索引階段(例如INDEX階段)中正在被處理,如果是,進入步驟S62,如果否,則進入步驟S64(例如步驟S64A)。In step S61, in response to the object placement ACL request, the simple storage service migration management module 53 based on the index object can check that the above-mentioned at least one storage body in the storage device layer of the storage server 10 corresponds to the object Whether a storage body (such as the storage body of the destination) that places the ACL request is being processed in the index phase (such as the INDEX phase), if yes, enter step S62, if not, then enter step S64 (such as step S64A ).

在步驟S62中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以將該要求(例如物件放置存取控制列表要求)代理(例如轉發)至來源端(例如遠端簡易儲存服務相容伺服器)。In step S62, the index object-based simple storage service migration management module 53 can control the storage server 10 to proxy (for example forward) the request (for example, object placement ACL request) to the source end (for example, remote simple storage compatible server).

在步驟S63中,基於索引物件的簡易儲存服務遷移管理模組53可檢查該要求(例如物件放置存取控制列表要求)是否成功而沒有任何錯誤,如果是(例如自來源端接收的回應,諸如對應於該物件放置存取控制列表要求的回應,指示沒有錯誤發生),進入步驟S64(例如步驟S64A);如果否(例如自來源端接收的回應,諸如對應於該物件放置存取控制列表要求的回應,係為指示一個或多個錯誤的一錯誤回應(error response)),則進入步驟S65。In step S63, the index object-based simple storage service migration management module 53 can check whether the request (such as the object placement ACL request) is successful without any error, and if so (such as a response received from the source, such as A response corresponding to the object placement ACL request indicating that no error occurs), proceed to step S64 (such as step S64A); if not (such as a response received from the source, such as corresponding to the object placement ACL request The response is an error response (error response) indicating one or more errors), then enter step S65.

在步驟S64中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以根據該物件放置存取控制列表要求來進行至少一常態動作,例如,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以根據一相關存取控制列表檢查是否通過來選擇性地更新有著該物件放置存取控制列表要求所攜帶之新/最新的存取控制列表的該物件存取控制列表(例如該目標物件的該存取控制列表)。In step S64, the index object-based simple storage service migration management module 53 can control the storage server 10 to perform at least one normal operation according to the object placement ACL request, for example, the index object-based simple storage service migration The management module 53 can control the storage server 10 to selectively update the object storage with the new/up-to-date ACL carried by the object placement ACL request according to whether an associated ACL check is passed or not. access control list (such as the access control list for the target object).

在步驟S64A中,基於索引物件的簡易儲存服務遷移管理模組53可檢查該存取控制列表檢查是否通過,如果是,進入步驟S64B;如果否,則進入步驟S64C,例如,當存取控制列表指示使用者擁有將該物件放置存取控制列表要求應用於該物件的權限(例如寫入或者更新該物件存取控制列表的權限)時,基於索引物件的簡易儲存服務遷移管理模組53可判斷該存取控制列表檢查通過,又例如,當存取控制列表指示使用者不擁有將該物件放置存取控制列表要求應用於該物件的權限(例如寫入或者更新該物件存取控制列表的權限)時,基於索引物件的簡易儲存服務遷移管理模組53可判斷該存取控制列表檢查不通過。In step S64A, the index object-based simple storage service migration management module 53 can check whether the access control list check is passed, if yes, enter step S64B; if not, then enter step S64C, for example, when the access control list When indicating that the user has the permission to place the object in the access control list (such as the permission to write or update the object's access control list), the index object-based simple storage service migration management module 53 can determine The ACL check passes, and for example, when the ACL indicates that the user does not have the permission to put the object on the ACL request to apply to the object (such as permission to write or update the ACL on the object ), the index object-based simple storage service migration management module 53 may determine that the ACL check fails.

在步驟S64B中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以更新有著該物件放置存取控制列表要求所攜帶之該新的存取控制列表的該物件存取控制列表(例如該目標物件的該存取控制列表)。In step S64B, the index object-based simple storage service migration management module 53 can control the storage server 10 to update the object ACL with the new ACL carried in the object placement ACL request list (such as the access control list for the target object).

在步驟S64C中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以將對應於該物件放置存取控制列表要求的該錯誤回應代理(例如轉發)至使用者。In step S64C, the index object-based simple storage service migration management module 53 can control the storage server 10 to proxy (for example forward) the error response corresponding to the object placement ACL request to the user.

為了更好地理解,該方法可利用第13圖所示之工作流程來說明,但是本發明不限於此,根據某些實施例,第13圖所示之工作流程中的一個或多個步驟可被添加、刪除、或更改,例如,該工作流程的至少一部分(例如一部分或全部)可被執行多次,且尤指包含有檢查操作的任一個步驟可被執行多次,以分別產生多個檢查結果,以分別觸發一些後續步驟的執行。For better understanding, the method can be described using the workflow shown in FIG. 13, but the present invention is not limited thereto. According to some embodiments, one or more steps in the workflow shown in FIG. 13 can be be added, deleted, or changed, e.g., at least a part (eg, part or all) of the workflow may be performed multiple times, and in particular any step including an inspection operation may be performed multiple times to generate multiple Check the results to individually trigger the execution of some subsequent steps.

第14圖為根據本發明一實施例之利用索引物件來進行簡易儲存服務無縫遷移之方法的物件刪除控制方案的示意圖,如第14圖所示,於使用者資料遷移的期間用來處理一個或多個物件刪除要求的一工作流程可包含步驟S70~S75,其中步驟S74可包含一些子步驟(例如S74A~S74D)。Figure 14 is a schematic diagram of the object deletion control scheme of the method for seamless migration of simple storage services using index objects according to an embodiment of the present invention. As shown in Figure 14, it is used to process a user data migration period A workflow of one or more object deletion requests may include steps S70-S75, wherein step S74 may include some sub-steps (eg S74A-S74D).

在步驟S70中,儲存伺服器10(例如基於索引物件的簡易儲存服務遷移管理模組53)可自使用者接收在一個或多個物件刪除要求的一物件刪除要求,例如,該物件刪除要求要求刪除在目的地之貯體中的一物件,並且此物件可視為該物件刪除要求的一目標物件。In step S70, the storage server 10 (for example, the index object-based simple storage service migration management module 53) may receive an object deletion request in one or more object deletion requests from the user, for example, the object deletion request request An object in the destination bucket is deleted, and this object can be regarded as a target object of the object deletion request.

在步驟S71中,因應該物件刪除要求,基於索引物件的簡易儲存服務遷移管理模組53可檢查在儲存伺服器10之儲存裝置層中的上述至少一貯體中對應於該物件刪除要求的一貯體(例如目的地的貯體)是否在索引階段(例如INDEX階段)中正在被處理,如果是,進入步驟S72,如果否,則進入步驟S74(例如步驟S74A)。In step S71, in response to the object deletion request, the index object-based simple storage service migration management module 53 may check the at least one storage body in the storage device layer of the storage server 10 corresponding to the object deletion request. Whether the storage body (such as the storage body of the destination) is being processed in the index phase (such as the INDEX phase), if yes, go to step S72, if not, then go to step S74 (such as step S74A).

在步驟S72中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以將該要求(例如物件刪除要求)代理(例如轉發)至來源端(例如遠端簡易儲存服務相容伺服器)。In step S72, the index object-based simple storage service migration management module 53 can control the storage server 10 to proxy (for example forward) the request (for example, an object deletion request) to the source end (for example, a remote simple storage service compatible server).

在步驟S73中,基於索引物件的簡易儲存服務遷移管理模組53可檢查該要求(例如物件刪除要求)是否成功而沒有任何錯誤,如果是(例如自來源端接收的回應,諸如對應於該物件刪除要求的回應,指示沒有錯誤發生),進入步驟S74(例如步驟S74A);如果否(例如自來源端接收的回應,諸如對應於該物件刪除要求的回應,係為指示一個或多個錯誤的一錯誤回應),則進入步驟S75。In step S73, the index object-based simple storage service migration management module 53 can check whether the request (e.g. object deletion request) is successful without any error, if yes (e.g. the response received from the source, such as corresponding to the object delete request response, indicating that no error occurs), enter step S74 (such as step S74A); if not (for example, the response received from the source, such as the response corresponding to the object deletion request, is an indication of one or more errors - error response), then go to step S75.

在步驟S74中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以根據該物件刪除要求來進行至少一常態動作,例如,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以至少根據一相關存取控制列表檢查是否通過來選擇性地刪除該物件(例如該目標物件),又例如,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以至少根據該物件是否存在來選擇性地刪除該物件(例如該目標物件),較佳地,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以根據一第一條件以及一第二條件是否被滿足來選擇性地刪除該物件(例如該目標物件),其中該第一條件代表該存取控制列表檢查通過,以及該第二條件代表該物件存在。In step S74, the index object-based simple storage service migration management module 53 can control the storage server 10 to perform at least one normal operation according to the object deletion request, for example, the index object-based simple storage service migration management module 53 The storage server 10 can be controlled to selectively delete the object (such as the target object) according to at least one related access control list check, and for example, the simple storage service migration management module 53 based on the index object can control the storage The server 10 selectively deletes the object (such as the target object) at least according to whether the object exists. Preferably, the simple storage service migration management module 53 based on the index object can control the storage server 10 according to a first The object (eg, the target object) is selectively deleted if a condition and a second condition are met, wherein the first condition represents that the ACL check is passed, and the second condition represents that the object exists.

在步驟S74A中,基於索引物件的簡易儲存服務遷移管理模組53可檢查該存取控制列表檢查是否通過,如果是,進入步驟S74B;如果否,則進入步驟S74D,例如,當存取控制列表指示使用者擁有將該物件刪除要求應用於該物件的權限(例如刪除該物件的權限)時,基於索引物件的簡易儲存服務遷移管理模組53可判斷該存取控制列表檢查通過,又例如,當存取控制列表指示使用者不擁有將該物件刪除要求應用於該物件的權限(例如刪除該物件的權限)時,基於索引物件的簡易儲存服務遷移管理模組53可判斷該存取控制列表檢查不通過。In step S74A, the index object-based simple storage service migration management module 53 can check whether the access control list check is passed, if yes, enter step S74B; if not, then enter step S74D, for example, when the access control list When indicating that the user has the permission to apply the object deletion request to the object (for example, the permission to delete the object), the index object-based simple storage service migration management module 53 can determine that the ACL check is passed, and for example, When the access control list indicates that the user does not have the authority to apply the object deletion request to the object (for example, the authority to delete the object), the index object-based simple storage service migration management module 53 can determine the access control list Check failed.

在步驟S74B中,基於索引物件的簡易儲存服務遷移管理模組53可檢查該物件(例如該物件刪除要求的該目標物件)是否存在,如果是,進入步驟S74C;如果否,則進入步驟S74D。In step S74B, the index object-based simple storage service migration management module 53 can check whether the object (for example, the target object requested by the object deletion) exists, if yes, go to step S74C; if not, go to step S74D.

在步驟S74C中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以刪除該物件(例如該目標物件)。In step S74C, the index object-based simple storage service migration management module 53 can control the storage server 10 to delete the object (such as the target object).

在步驟S74D中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以阻止刪除該物件(例如該目標物件)。In step S74D, the index object-based simple storage service migration management module 53 can control the storage server 10 to prevent deletion of the object (such as the target object).

在步驟S75中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以將對應於該物件刪除要求的該錯誤回應代理(例如轉發)至使用者。In step S75 , the index object-based simple storage service migration management module 53 can control the storage server 10 to delegate (for example, forward) the error response corresponding to the object deletion request to the user.

為了更好地理解,該方法可利用第14圖所示之工作流程來說明,但是本發明不限於此,根據某些實施例,第14圖所示之工作流程中的一個或多個步驟可被添加、刪除、或更改,例如,該工作流程的至少一部分(例如一部分或全部)可被執行多次,且尤指包含有檢查操作的任一個步驟可被執行多次,以分別產生多個檢查結果,以分別觸發一些後續步驟的執行。此外,步驟S74A以及S74B的組合可用來檢查該第一條件以及該第二條件是否都被滿足,分別被步驟S74A以及S74B檢查的條件可被交換,例如,基於索引物件的簡易儲存服務遷移管理模組53可檢查在步驟S74A中的該第二條件是否被滿足,且檢查在步驟S74B中的該第一條件是否被滿足,如果該第一條件以及該第二條件都被滿足(例如該存取控制列表檢查通過以及該物件存在),進入步驟S74C;否則,進入步驟S74D。 表一   索引階段 資料階段 GET 物件 如果物件不存在或者有“來源修改時間”則代理 如果物件有“來源修改時間”則代理 GET 物件存取控制列表; HEAD 物件 如果物件不存在則代理 允許 PUT 物件存取控制列表 代理,並且寫入至本地 允許 DELETE 物件 代理,並且刪除本地物件(如果存在) 允許 列出物件 代理 允許 上傳物件 代理,並且寫入至本地 允許 For better understanding, the method can be described using the workflow shown in FIG. 14, but the present invention is not limited thereto. According to some embodiments, one or more steps in the workflow shown in FIG. 14 can be be added, deleted, or changed, e.g., at least a part (eg, part or all) of the workflow may be performed multiple times, and in particular any step including an inspection operation may be performed multiple times to generate multiple Check the results to individually trigger the execution of some subsequent steps. In addition, the combination of steps S74A and S74B can be used to check whether the first condition and the second condition are satisfied, the conditions respectively checked by steps S74A and S74B can be exchanged, for example, based on the simple storage service migration management model of index objects Group 53 can check whether the second condition in step S74A is satisfied, and check whether the first condition in step S74B is satisfied, if both the first condition and the second condition are satisfied (such as the access If the control list check is passed and the object exists), go to step S74C; otherwise, go to step S74D. Table I index phase data stage GET object If the object does not exist or has an "origin modification time" then the delegate If the object has an "Origin Modified Time" then the delegate GET object ACL; HEAD object Proxy if object does not exist allow PUT Object ACL Proxy, and write to the local allow DELETE object Proxy, and delete local objects (if present) allow list objects acting allow upload object Proxy, and write to the local allow

表一繪示了在索引階段(例如INDEX階段)以及資料階段(例如DATA階段)中儲存伺服器10的可靠自動化分散式物件儲存閘道器動作之簡單行為的一些範例,其中該些要求,諸如GET物件、GET物件存取控制列表、HEAD物件、PUT物件存取控制列表、DELETE物件、列出物件、以及上傳物件(在表一的左半部中列出),分別代表一個或多個物件獲取要求、一個或多個物件獲取存取控制列表要求、一個或多個物件頭要求、一個或多個物件放置存取控制列表要求、一個或多個物件刪除要求、一個或多個物件列出要求、以及一個或多個物件資料寫入相關要求(例如一個或多個物件放置要求、一個或多個創建多成分上傳要求、以及一個或多個完成多成分上傳要求)。在基於索引物件的簡易儲存服務遷移管理模組53的控制下,儲存伺服器10可正確地並且有效地操作,為了更好地理解,在上述實施例中描述的一些操作可被簡單總結於表一的“ 索引階段”以及“ 資料階段”的欄位中。 Table 1 depicts some examples of simple behaviors of the reliable automated distributed object storage gateway actions of the storage server 10 in the index phase (e.g. INDEX phase) and data phase (e.g. DATA phase), where the requirements, such as GET object, GET object ACL, HEAD object, PUT object ACL, DELETE object, list object, and upload object (listed in the left half of Table 1), each representing one or more objects get request, get ACL request for one or more objects, request for one or more object headers, put ACL request for one or more objects, delete request for one or more objects, list one or more objects request, and one or more object data write-related requests (eg, one or more object placement requests, one or more create multi-component upload requests, and one or more complete multi-component upload requests). Under the control of the simple storage service migration management module 53 based on index objects, the storage server 10 can operate correctly and effectively. For better understanding, some operations described in the above embodiments can be briefly summarized in the table In the " Index Phase " and " Data Phase " fields of one.

舉例來說,在索引階段中,當任一個其它要求代表物件獲取要求時,如果該目標物件不存在或者有著最後修改時間(例如來源修改時間),則儲存伺服器10可將此要求代理至來源端;當任一個其它要求代表物件獲取存取控制列表要求以及物件頭要求的任一個時,如果該目標物件不存在,則儲存伺服器10可將此要求代理至來源端;當任一個其它要求代表物件放置存取控制列表要求時,儲存伺服器10可將此要求代理至來源端,以其將此要求所攜帶的物件存取控制列表寫入至本地位置(例如目的地,諸如儲存伺服器10);當任一個其它要求代表物件刪除要求時,儲存伺服器10可將此要求代理至來源端,並且如果目標物件存在,則刪除本地物件(例如該目標物件);當任一個其它要求代表物件列出要求時,儲存伺服器10可將此要求代理至來源端;以及當任一個其它要求代表物件資料寫入相關要求(例如物件放置要求、創建多部分上傳要求、或者完成多部分上傳要求)時,儲存伺服器10可將此要求代理至來源端,並且將此要求所攜帶的物件資料寫入至本地位置(例如目的地,諸如儲存伺服器10)。在資料階段中,當任一個其它要求代表物件獲取要求時,如果該目標物件有著最後修改時間(例如來源修改時間),則儲存伺服器10可代理此要求;以及當任一個其它要求代表在所有的這些要求中其餘要求的任一個時,儲存伺服器10可允許此要求的相關處理,無需將該要求代理至來源端。For example, during the indexing phase, when any other request represents an object fetch request, the storage server 10 may proxy the request to the source if the target object does not exist or has a last modification time (e.g., source modification time) end; when any other request represents any one of the object acquisition access control list request and the object header request, if the target object does not exist, the storage server 10 can proxy this request to the source end; when any other request When placing an ACL request on behalf of an object, the storage server 10 may proxy the request to the source, so that it writes the ACL of the object carried by the request to a local location (for example, a destination, such as a storage server 10); when any other request represents an object deletion request, the storage server 10 may proxy the request to the source and, if the target object exists, delete the local object (such as the target object); when any other request represents The storage server 10 may proxy the request to the origin when an object listing is requested; and when any other request represents an object data write related request (such as an object placement request, create a multipart upload request, or complete a multipart upload request ), the storage server 10 can proxy the request to the source, and write the object data carried in the request to a local location (eg, the destination, such as the storage server 10 ). In the data phase, when any other request represents an object acquisition request, the storage server 10 may proxy the request if the target object has a last modification time (e.g., source modification time); For any of the remaining of these requests, the storage server 10 may allow the associated processing of the request without proxying the request to the origin.

因為索引階段僅需花費很短的時間,並且因為基於索引物件的簡易儲存服務遷移管理模組53可以於使用者遷移的期間借助該方法之各種的控制方案來適當地控制儲存伺服器10,儲存伺服器10可以簡單地針對私有雲來進行簡易儲存服務無縫遷移(例如,從任一個公有/私有雲至一私有雲的簡易儲存服務無縫遷移),以允許使用者於資料遷移期間正常地且順暢地存取資料,在基於索引物件的簡易儲存服務遷移管理模組53的控制下,儲存伺服器10可以正確地遷移使用者資料,同時適當地處理任一個其它要求(如果存在),因此不會產生任何錯誤資料(例如由於相關技術之不正確遷移管理而導致的錯誤資料,通常是在使用者於遷移期間更改(例如寫入、覆寫、刪除等等)某些東西的情況下被發現),藉此使使用者之遷移變得無縫,為簡潔起見,本實施例的類似內容在此不再重複詳細描述。 以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。 Because the indexing phase takes only a short time, and because the index object-based simple storage service migration management module 53 can properly control the storage server 10 during user migration by means of various control schemes of the method, storage The server 10 can simply perform seamless migration of simple storage services for private clouds (for example, seamless migration of simple storage services from any public/private cloud to a private cloud), so as to allow users to normally And access data smoothly, under the control of the simple storage service migration management module 53 based on index objects, the storage server 10 can correctly migrate user data, and at the same time properly handle any other requests (if any), so Does not generate any erroneous data (for example due to incorrect migration management of related technologies, usually when the user changes (such as writes, overwrites, deletes, etc.) something during the migration Discovery), so as to make the migration of users seamless. For the sake of brevity, similar content in this embodiment will not be described in detail here. The above descriptions are only preferred embodiments of the present invention, and all equivalent changes and modifications made according to the scope of the patent application of the present invention shall fall within the scope of the present invention.

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:步驟 50: Main device 52: Processing circuit 52P: Program module 53: Simple storage service migration management module based on index objects 54: storage interface circuit 56: storage device 58: Network interface circuit 90: Multiple storage devices 100: storage device 110: Memory controller 112: Microprocessor 112C: code 112M: read-only memory 114: Control logic circuit 116: random access memory 118: Transmission interface circuit 120: Non-volatile memory 122-1~122-N: Non-volatile memory components T1~T3: time point 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: step

第1圖為根據本發明一實施例之儲存伺服器的示意圖。 第2圖為根據本發明一實施例之第1圖所示的儲存伺服器中之儲存裝置的一些實作細節的示意圖。 第3圖為根據本發明一實施例之利用索引物件來進行簡易儲存服務無縫遷移之方法的基於索引物件之遷移控制方案。 第4圖為根據本發明一實施例之第3圖所示之基於索引物件的遷移控制方案的一些相關操作的示意圖。 第5圖為根據本發明一實施例之關於第3圖所示之基於索引物件的遷移控制方案的一些物件以及一些相關特徵的示意圖。 第6圖為根據本發明一實施例之利用索引物件來進行簡易儲存服務無縫遷移之方法的遷移代理控制方案的示意圖。 第7圖為第1圖所示之具備基於索引物件的簡易儲存服務遷移管理模組的Ceph物件儲存架構之範例的示意圖。 第8圖為根據本發明一實施例之利用索引物件來進行簡易儲存服務無縫遷移之方法的物件列出控制方案的示意圖。 第9圖為根據本發明一實施例之利用索引物件來進行簡易儲存服務無縫遷移之方法的物件頭控制方案的示意圖。 第10圖為根據本發明一實施例之利用索引物件來進行簡易儲存服務無縫遷移之方法的物件獲取控制方案的示意圖。 第11圖為根據本發明一實施例之利用索引物件來進行簡易儲存服務無縫遷移之方法的物件獲取存取控制列表控制方案的示意圖。 第12圖為根據本發明一實施例之利用索引物件來進行簡易儲存服務無縫遷移之方法的物件放置控制方案的示意圖。 第13圖為根據本發明一實施例之利用索引物件來進行簡易儲存服務無縫遷移之方法的物件放置存取控制列表控制方案的示意圖。 第14圖為根據本發明一實施例之利用索引物件來進行簡易儲存服務無縫遷移之方法的物件刪除控制方案的示意圖。 FIG. 1 is a schematic diagram of a storage server according to an embodiment of the present invention. FIG. 2 is a schematic diagram of some implementation details of the storage device in the storage server shown in FIG. 1 according to an embodiment of the present invention. FIG. 3 is an index object-based migration control scheme of a method for seamlessly migrating simple storage services using index objects according to an embodiment of the present invention. FIG. 4 is a schematic diagram of some related operations of the migration control scheme based on index objects shown in FIG. 3 according to an embodiment of the present invention. FIG. 5 is a schematic diagram of some objects and some related features of the index object-based migration control scheme shown in FIG. 3 according to an embodiment of the present invention. FIG. 6 is a schematic diagram of a migration agent control scheme of a method for seamlessly migrating simple storage services using index objects according to an embodiment of the present invention. FIG. 7 is a schematic diagram of an example of a Ceph object storage architecture with an index object-based simple storage service migration management module shown in FIG. 1 . FIG. 8 is a schematic diagram of an object listing control scheme of a method for seamlessly migrating simple storage services using index objects according to an embodiment of the present invention. FIG. 9 is a schematic diagram of an object header control scheme of a method for seamless migration of simple storage services using index objects according to an embodiment of the present invention. FIG. 10 is a schematic diagram of an object acquisition control scheme of a method for seamlessly migrating simple storage services using index objects according to an embodiment of the present invention. FIG. 11 is a schematic diagram of an object acquisition ACL control scheme of a method for seamlessly migrating simple storage services using index objects according to an embodiment of the present invention. FIG. 12 is a schematic diagram of an object placement control scheme of a method for seamlessly migrating simple storage services using index objects according to an embodiment of the present invention. FIG. 13 is a schematic diagram of an object placement ACL control scheme of a method for seamlessly migrating simple storage services using index objects according to an embodiment of the present invention. FIG. 14 is a schematic diagram of an object deletion control scheme of a method for seamlessly migrating simple storage services using index objects according to an embodiment of the present invention.

T1~T3:時間點 T1~T3: time point

Claims (7)

一種利用索引物件來進行簡易儲存服務無縫遷移的方法,該方法係應用於一儲存伺服器,該方法包含有:因應自一遠端簡易儲存服務相容伺服器遷移該儲存伺服器的一使用者的一使用者資料至該儲存伺服器的一要求,於該使用者資料之一遷移的多個階段中的一索引階段中,利用在該儲存伺服器中的一主裝置上運行的多個程式模組中的一基於索引物件的簡易儲存服務遷移管理模組來創建並儲存多個索引物件至該儲存伺服器的一儲存裝置層,以作為在該儲存伺服器中的該使用者資料的多個常態物件的各自的代表,並且遷移該多個常態物件的各自的存取控制列表至該儲存伺服器以作為該多個索引物件的各自的存取控制列表,以最小化該多個常態物件中任一常態物件的任一改變影響該使用者資料之該遷移的正確性的機率,其中該儲存伺服器包含有該主裝置以及該儲存裝置層,該儲存裝置層包含有耦接於該主裝置的至少一儲存裝置,該主裝置係用來控制該儲存伺服器的操作,且該至少一儲存裝置係用來為該儲存伺服器儲存資訊。 A method for seamlessly migrating simple storage services using index objects, the method is applied to a storage server, the method includes: responding to a user migrating the storage server from a remote simple storage service compatible server A request of a user data of a user to the storage server utilizes multiple An index object-based simple storage service migration management module in the program module to create and store multiple index objects to a storage device layer of the storage server as the user data in the storage server Respective representations of a plurality of normal objects, and migrating respective ACLs of the plurality of normal objects to the storage server as respective ACLs of the plurality of indexed objects, to minimize the plurality of normal objects Any change in any normal object in the object affects the probability of the correctness of the migration of the user data, wherein the storage server includes the main device and the storage device layer, the storage device layer includes a device coupled to the At least one storage device of the main device, the main device is used to control the operation of the storage server, and the at least one storage device is used to store information for the storage server. 如申請專利範圍第1項所述之方法,另包含有:於該多個階段中的該索引階段之後的一資料階段中,利用該基於索引物件的簡易儲存服務遷移管理模組以自該遠端簡易儲存服務相容伺服器遷移該多個常態物件中的一組常態物件的各自的物件資料至該儲存伺服器的該儲存裝置層。 The method described in item 1 of the scope of the patent application further includes: in a data stage after the index stage among the multiple stages, using the simple storage service migration management module based on index objects to migrate from the remote The client Simple Storage Service compatible server migrates the respective object data of a group of normal objects among the plurality of normal objects to the storage device layer of the storage server. 如申請專利範圍第1項所述之方法,另包含有:因應自該遠端簡易儲存服務相容伺服器遷移該使用者資料至該儲存伺服器 的該要求,於該多個階段中的該索引階段之前的一設置階段中,利用該基於索引物件的簡易儲存服務遷移管理模組來進行該使用者資料之該遷移的預處理。 The method described in item 1 of the scope of the patent application also includes: in response to migrating the user data from the remote simple storage service compatible server to the storage server According to the requirement, in a setting stage before the indexing stage among the multiple stages, the pre-processing of the migration of the user data is performed by using the index object-based simple storage service migration management module. 一種主裝置(host device),設置於一儲存伺服器中,包含有:一處理電路,用來控制該主裝置以在一儲存伺服器中進行基於索引物件的簡易儲存服務遷移管理,其中該儲存伺服器包含有該主裝置以及一儲存裝置層,該儲存裝置層包含有耦接至該主裝置的至少一儲存裝置,該主裝置係用來控制該儲存伺服器的操作,且該至少一儲存裝置係用來為該儲存伺服器儲存資訊,其中:因應自一遠端簡易儲存服務相容伺服器遷移該儲存伺服器的一使用者的一使用者資料至該儲存伺服器的一要求,於該使用者資料之一遷移的多個階段中的一索引階段中,運行在該處理電路上的多個程式模組中的一基於索引物件的簡易儲存服務遷移管理模組創建並儲存多個索引物件至該儲存裝置層,以作為在該儲存伺服器中的該使用者資料的多個常態物件的各自的代表,並且將該多個常態物件的各自的存取控制列表遷移至該儲存伺服器,以作為該多個索引物件的各自的存取控制列表,以最小化該多個常態物件中任一常態物件的任一改變影響該使用者資料之該遷移的正確性的機率。 A host device (host device), which is set in a storage server, includes: a processing circuit, used to control the host device to perform simple storage service migration management based on index objects in a storage server, wherein the storage The server includes the main device and a storage device layer, the storage device layer includes at least one storage device coupled to the main device, the main device is used to control the operation of the storage server, and the at least one storage The device is used to store information for the storage server, wherein: in response to a request to migrate a user data of a user of the storage server from a remote Simple Storage Service compatible server to the storage server, at During an indexing phase of one of the phases of migration of the user data, an index object-based simple storage service migration management module among the program modules running on the processing circuit creates and stores multiple indexes objects to the storage device layer as respective representations of the plurality of normal objects of the user data in the storage server, and migrate the respective access control lists of the plurality of normal objects to the storage server , as the respective access control lists of the plurality of index objects, so as to minimize the probability that any change of any normal object in the plurality of normal objects affects the correctness of the migration of the user data. 如申請專利範圍第4項所述之主裝置,其中於該多個階段中的該索引階段之後的一資料階段中,該基於索引物件的簡易儲存服務遷移管理模組自該遠端簡易儲存服務相容伺服器遷移該多個常態物件中的一組常態物 件的各自的物件資料至該儲存伺服器的該儲存裝置層。 The main device as described in item 4 of the scope of the patent application, wherein in a data stage after the index stage among the multiple stages, the index object-based simple storage service migration management module is transferred from the remote simple storage service A compatible server migrates a set of normal objects in the plurality of normal objects the respective object data of the object to the storage device layer of the storage server. 一種儲存伺服器,包含有:一主裝置,用來控制該儲存伺服器的操作,該主裝置包含有:一處理電路,用來控制該主裝置以進行在該儲存伺服器中的基於索引物件的簡易儲存服務遷移管理;以及一儲存裝置層,包含有:至少一儲存裝置,耦接至該主裝置,用來為該儲存伺服器儲存資訊;其中:因應自一遠端簡易儲存服務相容伺服器遷移該儲存伺服器的一使用者的一使用者資料至該儲存伺服器的一要求,於該使用者資料之一遷移的多個階段中的一索引階段中,運行在該處理電路上的多個程式模組中的一基於索引物件的簡易儲存服務遷移管理模組創建並儲存多個索引物件至該儲存裝置層,以作為在該儲存伺服器中的該使用者資料的多個常態物件的各自的代表,並且將該多個常態物件的各自的存取控制列表遷移至該儲存伺服器,以作為該多個索引物件的各自的存取控制列表,以最小化該多個常態物件中任一常態物件的任一改變影響該使用者資料之該遷移的正確性的機率。 A storage server includes: a main device for controlling the operation of the storage server, the main device includes: a processing circuit for controlling the main device to perform index-based object in the storage server Simple storage service migration management; and a storage device layer, including: at least one storage device, coupled to the main device, used to store information for the storage server; wherein: compatible with a remote simple storage service A request by the server to migrate a user data of a user of the storage server to the storage server is run on the processing circuit during an indexing phase of a plurality of phases of migration of the user data An index object-based simple storage service migration management module among a plurality of program modules creates and stores index objects to the storage device layer as regularities of the user data in the storage server objects, and migrate the respective ACLs of the plurality of normal objects to the storage server as the respective ACLs of the plurality of indexed objects to minimize the plurality of normal objects The probability that any change in any of the normal objects affects the correctness of the migration of the user data. 如申請專利範圍第6項所述之儲存伺服器,其中於該多個階段中的該索引階段之後的一資料階段中,該基於索引物件的簡易儲存服務遷移管理模組自該遠端簡易儲存服務相容伺服器遷移該多個常態物件中的一組常態物件的各自的物件資料至該儲存伺服器的該儲存裝置層。 The storage server as described in item 6 of the scope of the patent application, wherein in a data stage after the index stage among the multiple stages, the index object-based simple storage service migration management module is transferred from the remote simple storage The service compatible server migrates the respective object data of a group of normal objects among the plurality of normal objects to the storage device layer of the storage server.
TW111119488A 2020-04-29 2021-04-27 Method for performing simple storage service seamless migration using index objects, host device, and storage server TWI805380B (en)

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,095 2021-02-04
US17/167,095 US11516287B2 (en) 2020-04-29 2021-02-04 Method and apparatus for performing simple storage service seamless migration using index objects

Publications (2)

Publication Number Publication Date
TW202234258A TW202234258A (en) 2022-09-01
TWI805380B true TWI805380B (en) 2023-06-11

Family

ID=78161177

Family Applications (2)

Application Number Title Priority Date Filing Date
TW110115045A TWI769796B (en) 2020-04-29 2021-04-27 Method for performing simple storage service seamless migration using index objects, host device, and storage server
TW111119488A TWI805380B (en) 2020-04-29 2021-04-27 Method for performing simple storage service seamless migration using index objects, host device, and storage server

Family Applications Before (1)

Application Number Title Priority Date Filing Date
TW110115045A TWI769796B (en) 2020-04-29 2021-04-27 Method for performing simple storage service seamless migration using index objects, host device, and storage server

Country Status (2)

Country Link
CN (1) CN113568567B (en)
TW (2) TWI769796B (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI709865B (en) * 2019-02-01 2020-11-11 香港商希瑞科技股份有限公司 Operation and maintenance data reading device and reading method thereof

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110109891B (en) * 2018-01-18 2023-04-21 伊姆西Ip控股有限责任公司 Method, apparatus and storage medium for data migration
CN110765156A (en) * 2018-07-09 2020-02-07 慧荣科技股份有限公司 Linked list searching device and method
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
CN110196851B (en) * 2019-05-09 2024-05-10 腾讯科技(深圳)有限公司 Data storage method, device, equipment and storage medium

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI709865B (en) * 2019-02-01 2020-11-11 香港商希瑞科技股份有限公司 Operation and maintenance data reading device and reading method thereof

Also Published As

Publication number Publication date
CN113568567B (en) 2023-10-24
CN113568567A (en) 2021-10-29
TWI769796B (en) 2022-07-01
TW202141289A (en) 2021-11-01
TW202234258A (en) 2022-09-01

Similar Documents

Publication Publication Date Title
TWI782487B (en) Method for performing simple storage service seamless migration using index objects, host device, and storage server
US9996421B2 (en) Data storage method, data storage apparatus, and storage device
JP5007350B2 (en) Apparatus and method for hardware-based file system
JP6328432B2 (en) Gateway device, file server system, and file distribution method
JP2019101703A (en) Storage system and control software arrangement method
US11516287B2 (en) Method and apparatus for performing simple storage service seamless migration using index objects
JP2007133471A (en) Storage device, and method for restoring snapshot
CN113220729B (en) Data storage method and device, electronic equipment and computer readable storage medium
WO2019148841A1 (en) Distributed storage system, data processing method and storage node
CN109407975B (en) Data writing method, computing node and distributed storage system
JP6653370B2 (en) Storage system
JP3848268B2 (en) Computer system, computer apparatus, data access method and program in computer system
US10997026B1 (en) Dynamic data placement for replicated raid in a storage system
TWI805380B (en) Method for performing simple storage service seamless migration using index objects, host device, and storage server
JPWO2015141219A1 (en) Storage system, control device, data access method and program
JP2017208113A (en) Data storage method, data storage apparatus, and storage device
KR101589122B1 (en) Method and System for recovery of iSCSI storage system used network distributed file system
WO2024119924A1 (en) Process migration method, apparatus and system
US20240143620A1 (en) Object access based on tracking of objects and replication policies
US20230105531A1 (en) Executable Objects in a Distributed Storage System
JP6589500B2 (en) Information processing terminal, shared file system, shared file method, and shared file program
JP2005301560A (en) Cluster file server
US20170308542A1 (en) File system configuration data storage