TWI769796B - 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
TWI769796B
TWI769796B TW110115045A TW110115045A TWI769796B TW I769796 B TWI769796 B TW I769796B TW 110115045 A TW110115045 A TW 110115045A TW 110115045 A TW110115045 A TW 110115045A TW I769796 B TWI769796 B TW I769796B
Authority
TW
Taiwan
Prior art keywords
storage
server
index
storage server
objects
Prior art date
Application number
TW110115045A
Other languages
Chinese (zh)
Other versions
TW202141289A (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 TW202141289A publication Critical patent/TW202141289A/en
Application granted granted Critical
Publication of TWI769796B publication Critical patent/TWI769796B/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

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, host device and storage server for seamless migration of simple storage services using index objects

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

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

本發明的另一目的在於揭露一種利用索引物件來進行簡易儲存服務無縫遷移的方法,並且揭露相關設備(例如儲存伺服器、儲存伺服器中的主裝置等等),以在不引入副作用的情況下或藉由不太可能引入副作用的方式來達到最佳性能。Another object of the present invention is to disclose a method for using index objects to perform seamless migration of simple storage services, and to disclose related devices (such as storage servers, master devices in storage servers, etc.), so as not to introduce side effects Optimal performance is achieved 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: in response to compatibility from a remote simple storage service (S3-compatible) server to migrate user data of a user of the storage server to a request to the storage server, in an index stage of a plurality of stages of migration of the user data , utilizes an index-object-based simple storage service migration management module in a plurality of program modules running on a host device in the storage server to create and store a plurality of index objects to a storage device layer of the storage server as respective representatives of the normal objects of the user data in the storage server, and migrate the respective accesses of the normal objects access control lists (ACLs) to the storage server as respective access control lists of the plurality of index objects to minimize any change of any one of the plurality of normal objects affecting the user The probability of correctness of the migration of data, wherein the storage server includes the host device and the storage device layer, the storage device layer including at least one storage device coupled to the host device, the host device 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 based an easy storage service migration management module for indexing objects to trigger one or more migration agents to migrate respective ones of a set of normal objects of the plurality of normal objects from the remote easy storage service compatible server to the storage device layer of the storage server as respective replacements of a set of index objects among the plurality of index objects to complete the migration of the user data.

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

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

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

本發明的實施例揭露了一種利用索引物件來進行簡易儲存服務無縫遷移的方法以及設備,例如,該方法以及相關設備可使用一種新穎的簡易儲存服務無縫遷移架構來進行存取控制,且尤指,可進行針對私有雲的簡易儲存服務無縫遷移,例如自任一個公有/私有雲至一私有雲的簡易儲存服務無縫遷移(例如資料遷移的目標雲(destination cloud)),以允許使用者在資料遷移過程中正常地且順暢地存取資料。為了更好地理解,一第一雲,例如簡易儲存服務相容儲存(例如其可能幾乎已滿並且存取速度可能很慢),以及一第二雲,例如根據該方法所實作的Bigtera儲存,可以分別作為該任一個公有/私有雲以及該私有雲(例如目標雲)的範例,但是本發明不限於此。此外,當在第一時間點T1開始遷移時,該方法以及相關設備可以先於自第一時間點T1開始的一索引階段,例如INDEX階段(例如一索引時期,諸如INDEX時期),在該第二雲中創建索引物件(例如虛擬索引物件(dummy index object)),並且可以於自第二時間點T2(例如當完成創建該索引物件時的時間點)開始的一資料階段,例如DATA階段(例如一資料時期,諸如DATA時期),自該第一雲遷移(例如轉移)物件資料至該第二雲。在某些實施例中,簡易儲存服務無縫遷移架構可以利用一個或多個遷移代理程式(agent)來進行物件遷移,此外,該設備可包含儲存伺服器的至少一部分(例如一部分或全部),例如,該設備可包含儲存伺服器的一部分,諸如在儲存伺服器中的主裝置或位於主裝置內的相關控制電路(例如在對應於該方法的一個或多個程式模組上運行的處理電路與相關電路),在另一個範例中,該設備可包含整個儲存伺服器,根據針對儲存伺服器的某些實施例,INDEX時期可代表一短時間期間(例如數小時或幾天),而DATA時期可代表一長時間期間(例如幾個星期)。Embodiments of the present invention disclose a method and device for performing seamless migration of simple storage services using index objects. For example, the method and related devices can use a novel seamless migration framework for simple storage services for access control, and In particular, seamless migration of simple storage services for private clouds, such as seamless migration of simple storage services from any public/private cloud to a private cloud (such as the destination cloud for data migration), allows the use of Users can access data normally and smoothly during the data migration process. For better understanding, a first cloud, such as Easy Storage Service compliant storage (eg it may be almost full and access may be slow), and a second cloud such as Bigtera storage implemented according to the method , which can be used as examples of the public/private cloud and the private cloud (eg, the target cloud), respectively, but the present invention is not limited thereto. Furthermore, when the migration starts at the first point in time T1, the method and related apparatus may precede an indexing phase, such as an INDEX phase (eg, an indexing period, such as an INDEX period), starting from the first point in time T1, at the first An index object (such as a dummy index object) is created in the second cloud, and can be in a data stage, such as a DATA stage ( For example, a data epoch, such as a DATA epoch, migrates (eg, transfers) object data from the first cloud to the second cloud. In some embodiments, the simple storage service seamless migration framework may utilize one or more migration agents to perform object migration, and the device may include at least a portion (eg, a portion or all) of the storage server, For example, the apparatus may include a portion of a storage server, such as a host device in the storage server or associated control circuitry located within the host device (eg, processing circuitry running on one or more program modules corresponding to the method) and related circuitry), in another example, the device may include an entire storage server, according to some embodiments for storage servers, the INDEX period may represent a short period of time (eg, hours or days), while the DATA A period 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的系統磁碟。FIG. 1 is a schematic diagram of a storage server 10 according to an embodiment of the present invention. The storage server 10 includes a host device 50 and includes at least one storage device, such as one or more storage devices (eg, a plurality of storage devices 90 ). ), a plurality of storage devices 90 are coupled to the main device 50 . According to this 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, host device 50 may include processing circuitry 52 (eg, at least one processor/processor core and associated circuitry such as random access memory (RAM)) for controlling the operation of host device 50 , bus, etc.), used to couple to a plurality of storage devices 90 and to a storage or memory device (eg, one or more conventional hard disk drives (HDDs) and/or coupled to the host device 50 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. A 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 in which one of the set of storage devices stores The device can be used as the system disk of the main device 50, and other storage devices of the group of storage devices can be used to store user data for the main device 50, but the invention is not limited to this. In another example, the storage device 56 may contain a storage device, and this storage device may be used as the system disk of the master 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 host device 50 performs simple storage service migration management based on index objects in the storage server 10, and the storage interface circuit 54 may conform to one or more standards (eg, one or more Serial Advanced Technology Attachments, Serial ATA or SATA) standard, Peripheral Component Interconnect (PCI) standard, Peripheral Component Interconnect Express (PCIe) standard, 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 Storage (Universal Flash Storage, UFS) standard ) 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 interface circuit 58 can be used to provide 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 (eg, the storage server 10 therein) through the wired or wireless network device 56 and a plurality of storage devices 90) to access (eg, read or write) user data. For better understanding, the host device 50 shown in the left half of FIG. 1 and the related circuits/modules/devices in the architecture (eg, the processing circuit 52 and the storage interface circuit 54 of the running program module 52P) can be respectively As an example of the above-described host device and associated circuits/modules/devices therein (eg, processing circuits and associated 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 may be shown as including the 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 A casing/casing (eg, a computer casing, which may be composed of metal and/or one or more other materials) and at least a part (eg, a part or all) of the plurality of storage devices 90 , for example, the storage server 10 may further include a plurality of storage devices coupled to the host device 50 and At least one switch circuit (eg, one or more switch circuits) between at least a portion (eg, a portion or all) of the device 90 for performing the switching between the host device 50 and at least a portion of the plurality of storage devices 90 described above signal switching between.

根據某些實施例,運行程式模組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 may configure at least a portion (eg, a portion or all) of the plurality of storage devices 90 to form a storage pool structure, However, 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 (eg, a part or all) of the plurality of storage devices 90 to form the 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 the 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 host device 50 . Under the control of the host device 50 , one or more client devices can access (eg, read or write) user data in the storage space. The host device 50 Examples of the storage device 100 may include, but are not limited to, personal computers (such as desktop computers or notebook computers), and examples of the storage device 100 may include, but are not limited to, solid-state drives and various types of embedded memory devices (such as Flash memory storage or embedded multimedia memory card (embedded multi media card, EMMC) standard, etc.). According to this embodiment, the storage device 100 may include a controller (eg, the memory controller 110 ), and further include a non-volatile memory 120 , wherein the controller is used to control the operation of the storage device 100 and access the non-volatile memory 120 . 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 (eg, one or more non-volatile memory elements), Such as a plurality of non-volatile memory elements 120-1, 120-2, ..., and 122-N, where "N" may represent a positive integer greater than one, for example, the non-volatile memory 120 may be a flash memory The body, and the plurality of non-volatile memory elements 120-1, 120-2, . . . , and 122-N may be a plurality of flash memory chips or a plurality of flash memory dies, However, the present invention is not limited to this.

根據本實施例,記憶體控制器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 the present embodiment, the memory controller 110 can be used to control the access of the non-volatile memory 120 , so as to allow the host device 50 to access the non-volatile memory 120 through the memory controller 110 to store the server 10 As shown in FIG. 2, the memory controller 110 may include a processing circuit (eg, a microprocessor 112 ), a storage unit (eg, a read-only memory (ROM) 112M) , the control logic circuit 114, the random access memory 116, and the transmission interface circuit 118, wherein the above-mentioned elements can be coupled to each other by a bus bar. The random access memory 116 is implemented by a static random access memory (static RAM, SRAM), but the invention is not limited to this, the random access memory 116 can be used to provide internal storage space for the memory controller 110. For example, the random access memory 116 can be used as a buffer memory for buffering data, in addition, the ROM 112M of this embodiment is used to store the code 112C, and the microprocessor 112 is used to execute the 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 . Note that, in some examples, the code 112C may be stored in random access memory 116 or any type of memory. Additionally, control logic 114 may be used to control non-volatile memory 120, and may include A data protection circuit (not shown) for data protection and/or error correction, but the invention is not limited thereto, the transmission interface circuit 118 may conform to a specific communication standard (eg, Serial Advanced Technology Attachment standard, External Component Interconnection standard) , Fast 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 for communication, for example, for the storage device 100 to communicate with the host device 50 , wherein the storage interface circuit 54 can conform to the specific communication standard for the host device 50 to communicate with 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 may transmit a plurality of host commands and a plurality of 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 the plurality of host commands are converted into a plurality of memory operation commands (for brevity, may be referred to as a plurality of operation commands), and the plurality of operation commands are further used to control the non-volatile memory. The volatile memory 120 is used for reading, writing/programming, etc., on storage units (eg, data pages) within the non-volatile memory 120 having a plurality of physical addresses, wherein the plurality of physical addresses may be associated with the A plurality of logical addresses are associated, when the memory controller 110 is in any one of the non-volatile memory elements 122-n ( "n" may represent any integer in the range [1, N]), when an erase operation is performed on the non-volatile memory device 122-n, at least one block of the plurality of blocks can be erased , where 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, storage server 10 (eg, host device 50 ) may operate according to a Ceph solution, such that storage server 10 is defined in software as part of a distributed storage system, preferably a plurality of storage systems ( For example, multiple storage servers {10}, such as storage server 10, can be used to form a resource pool of a distributed storage system to support features such as fault tolerance, automatic failover control etc.) various types of access, such as block device type (for example in a distributed storage system to access an emulated block device), file system type (for example in a distributed storage system used to access a file system) and object type (eg, used to access an object in an object namespace in a distributed storage system), but the invention is not limited thereto. For example, a file can be stored as an object in an object namespace in a distributed storage system, and for example, a block of data corresponding to an address can be stored in a distributed storage system as an object namespace In order to implement features of a distributed storage system, the storage server 10 may be used to store additional information (eg, metadata and journals) in addition to data (eg, user data).

第3圖為根據本發明一實施例之利用索引物件來進行簡易儲存服務無縫遷移之方法的基於索引物件之遷移控制方案,其中該方法可應用於儲存伺服器10。儲存伺服器10可充當第二雲的角色,以及可視為資料遷移的目的地(destination),而遠端簡易儲存服務相容伺服器可充當第一雲的角色,以及可視為資料遷移的來源端(source),例如,在第一時間點T1之前,使用者可在遠端簡易儲存服務相容伺服器中存取(例如讀取或寫入)資料,並且發現他/她在遠端簡易儲存服務相容伺服器中的個人儲存容量幾乎用完,且可能會受到遠端簡易儲存服務相容伺服器之性能低下的困擾。FIG. 3 is a migration control scheme based on an index object of a method for using an index object to perform seamless migration of a simple storage service according to an embodiment of the present invention, wherein the method can be applied to the storage server 10 . The storage server 10 can play the role of the second cloud and can be regarded as the destination of data migration, while the remote simple storage service compatible server can play the role of the first cloud and can be regarded as the source of data migration (source), for example, before the first time point T1, the user can access (eg read or write) data in the remote easy storage service compatible server, and find that he/she is in the remote easy storage The personal storage capacity in the service compatible server is almost exhausted and may be plagued by 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 to the storage server 10 from the remote simple storage service compatible server, the indexing phase (eg, the INDEX phase) in the multiple phases of user data migration ) (for example, according to the user's request, the user data is migrated from the remote simple storage service compatible server to the storage server 10), the index object-based simple storage in the program module 52P running on the processing circuit 52 The storage service migration management module 53 can create and store a plurality of index objects (eg, virtual objects without object data) to the storage device layer of the storage server 10 to serve as user data in the storage server 10 The respective representatives of the plurality of normal objects (normal objects), and the respective access control lists (Access Control List, ACL) of the plurality of normal objects are migrated to the storage server 10 to serve as the respective storage of the plurality of index objects. Take the control list as if the plurality of index objects are a plurality of normal 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, wherein the storage device A layer includes at least one storage device (eg, one or more storage devices), such as a plurality of storage devices 90 , coupled to host device 50 . By migrating the respective ACLs of the plurality of normal objects to the storage server 10 as the respective ACLs of the plurality of index objects, the simple storage service migration management module 53 based on the index objects can utilize many index objects to emulate multiple normal objects. For example, the destination (eg, the storage server 10 ) can start to migrate at the first time point T1. After the first time point T1, when the user sends any other request When sent to a destination (eg, storage server 10 ) to attempt any changes to any of the normal objects, the storage server is based on whether one or more predetermined conditions are met (eg, whether any other requirement meets one or more predetermined rules) The server 10 can selectively proxy (eg, forward) any other request to the source (eg, a remote Easy Storage Service compatible server) and will respond with a response to any other request ) 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 (eg, the DATA phase) that follows the index phase in the various phases, the index object-based simple storage service migration management module 53 may trigger one or more other program modules (eg, one or more migration agent programs). ) 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 10 from the remote simple storage service compatible server, so as to be used as a group of index objects among the plurality of index objects to complete the migration of user data, for example, the destination (eg, 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 In the meantime, the user transmits any other request to the destination (eg, the storage server 10 ) in an attempt to make any changes to any of the normal objects, similarly, based on whether one or more predetermined conditions (eg, any other request) are met conforms to one or more predetermined rules), the storage server 10 may selectively proxy (eg forward) any other request to the source (eg, a remote simple storage service compatible server) and will correspond to any one The response to other requests is forwarded (eg, forwarded) from the source to the user, for example, when any other request is a Get-object request (eg, "GetObject"), the storage server 10 may proxy (eg, forward) the request between the user and the source, especially if some of its respective object data has not been migrated to the destination (eg, during migration, when the storage server 10 When an object acquisition request is received, the respective object data of the index objects have not been copied to the destination and need to be copied to the destination) of the indexing agent (eg forwarding) the request. For better understanding, when any other request does not exist (eg, the user does not transmit any other request during the time points T1 and T3), the group of normal objects may include all of the plurality of normal objects, and the group An index object can contain all multiple index objects.

只要不妨礙本發明的實作,藉由以下程式模組中的一個或多個程式模組可以實作一個或多個遷移代理程式: (1)運行在處理電路52上的程式模組52P中的一個或多個程式模組; (2)對於在主裝置50中具有多個處理電路{52}的多節點(multi-node)架構的情況下,在多個處理電路{52}中運行在一個或多個其它處理電路上的一個或多個程式模組,其中多個處理電路{52}包含有處理電路52;以及 (3)對於在儲存伺服器10中具有多個主裝置{50}的多主機(multi-host)架構的情況下,在多個主裝置{50}中一個或多個其它主裝置的運行在一個或多個相對應的處理電路上的一個或多個程式模組,其中多個主裝置{50}包含有主裝置50; 但是本發明不限於此。One or more migration agents may be implemented by one or more of the following program modules as long as they do not interfere with the practice of the present invention: (1) one or more program modules in the program modules 52P running on the processing circuit 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} operating on one or more other processing circuits one or more program modules, wherein the plurality of processing circuits {52} include the processing circuit 52; and (3) In the case of a multi-host architecture with multiple master devices {50} in the storage server 10, the operation of one or more other master devices in the multiple master devices {50} is One or more program modules on one or more corresponding processing circuits, wherein the plurality of master devices {50} include the master device 50; However, the present invention is not limited to this.

根據某些實施例,該方法以及相關設備可以用以利用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 apparatus can be used to utilize Ceph's software library (eg "librados" software library) to perform certain basic operations for the Ceph architecture, wherein the Ceph software library can be used to provide client applications Provides direct access to an object-based reliable autonomic distributed object store (RADOS) storage system, and is a feature of certain Cephs (such as a reliable autonomic distributed object store (RADOS block device, RADOS) RBD), Reliable Automated Distributed Object Storage Gateway (RADOS gateway, RGW), Ceph File System, etc.) provide a foundation, 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)來被存取。針對某些簡易儲存服務特徵,每一個遠端簡易儲存服務相容伺服器以及FIG. 4 is a schematic diagram of some related operations of the index object-based migration control scheme shown in FIG. 3 according to an embodiment of the present invention. "Storage Service Compatible Storage" and "Bigtera Storage") can be used as examples of the Remote Simple Storage Service Compatible Server and the Storage Server 10, respectively. For the sake of example, labeled as "S3 client") respectively access the remote easy storage service compatible server and the storage server 10, for example, each remote easy storage service compatible server and the storage server 10 can Provides and is compatible with simple storage services, especially object storage, to handle large amounts of unstructured data, and can be implemented through a representational state transfer (REST) based application programming interface ( application program interface, API) (such as a web service application program interface that adheres to the constraints of the presentation-level state transition architecture, such as a presentation-level state transition application programming interface (RESTful API)) and by utilizing the hypertext transfer protocol ( hypertext transfer protocol (HTTP)/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 may be used to store one or more objects in a bucket (eg, a container of objects), and any of the one or more objects may contain a file and optionally Contains any metadata describing the file, where the object prefix of any object may contain one or more symbols "/" to support the folder concept to simulate a folder, and , each remote simple storage service compatible server and storage server 10 may have at least one Ceph object gateway (labeled "gateway" for brevity), such as built on librados to provide A gateway application representing layer state transition provides at least one object storage interface to the 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 a simple storage Service compatible and Swift compatible. As shown in the bottom half of Figure 4, during the migration of user data (marked as "data" in the open arrow for brevity), the user may send any other request (eg, a GET request) (by From using the simple storage service client) to the storage server 10 to request part of the user data, the storage server 10 can proxy (eg forward) any other request (eg, GET request) to the remote simple storage service partner. Container server, and proxy (eg forwarding) corresponding to any other request (such as part of the data from the remote ESS compatible server to the user (eg the user's ESS client), for brevity See, on some dashed arrows labeled "Data") this response. For the sake of brevity, the similar content of this embodiment will not be repeated 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 an INDEX stage (eg, INDEX period), by default, each index object of the plurality of index objects may be created to have a source (src) object (eg, in the first Certain attributes of a corresponding object in the cloud, such as a normal object, where the index object acts as a representative of the normal object, and the attributes may include the last modification time (last modified time) of the source object -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 (Etag) (eg a 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 the migration of user data, the source end (such as the remote simple A storage service compliant server) may contain one or more buckets (eg, one or more containers of objects), such as a remote bucket, and the destination (eg, storage server 10) may contain a or receptacles (eg, one or more containers of objects), such as the one shown above the distal receptacle, wherein the request and the response, respectively, represent a The request received by the simple storage service client) and the response returned by the storage server 10 to the user (such as the user's simple storage service client), for example, the remote storage may contain a plurality of 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 index items, and in particular one or more normal items, depending on the process of the migration (eg, the percentage of the migration complete, such as 1%, 2%, etc.) and/or the presence of any other requirement.

在遷移上述多個索引物件的至少一部分的任一個索引物件的物件資料之前,儲存伺服器10可將目的地的貯體設置為具有與遠端貯體名稱(例如遠端貯體的貯體名稱)相同的貯體名稱,並且具有與遠端使用者憑證(credential)(例如遠端貯體的使用者憑證)相同的使用者憑證,且尤指具有虛假使用(fake usage)資訊,諸如虛假使用(例如大小、物件數量等等)的資訊,以作為遷移階段(例如索引階段以及資料階段)的暫時使用者資訊。一開始時,在遷移任一個索引物件的物件資料之前,儲存伺服器10可先在目的地的貯體中創建具有暫時屬性的多個索引物件諸如虛擬(dummy)索引物件(例如沒有物件資料的虛擬物件),當多個常態物件中的一常態物件已經被遷移至該目的地或針對該常態物件的某個操作在該目的地上已經被進行時(例如該常態物件的物件資料已經被遷移,或者使用者已經覆寫該常態物件),該常態物件可存在於該貯體中(如第5圖所示),此外,對於多個索引物件的每個索引物件,暫時屬性可包含: (1)來源物件最後修改時間(例如來源物件的最後修改時間),諸如bigtera-src-mtime; (2)來源物件大小(例如來源物件的大小),諸如bigtera-src-size; (3)來源物件實體標籤(例如來源物件的實體標籤),諸如bigtera-src-etag;Before migrating the object data of any one of the index objects of at least a part of the plurality of index objects, the storage server 10 may set the destination store to have the same name as the remote store name (eg, the store name of the remote store) ) the same store name and having the same user credentials as a remote user credential (e.g. user credentials of a remote store) and especially having fake usage information, such as fake usage (such as size, number of objects, etc.) to serve as temporary user information for migration phases (eg, indexing and data phases). Initially, before migrating the object data of any index object, the storage server 10 may first create a plurality of index objects with temporary attributes such as dummy index objects (eg, without object data) in the destination storage. virtual object), when a normal object among a plurality of 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 storage (as shown in Figure 5), in addition, for each index object of a plurality of index objects, the temporary attributes may contain: (1) The last modification time of the source object (such as the last modification time of the source object), such as bigtera-src-mtime; (2) The size of the source object (such as the size of the source object), such as bigtera-src-size; (3) Entity tags of source objects (such as entity tags of source objects), such as bigtera-src-etag;

其中這些暫時屬性的任一個屬性(例如每一個屬性)可被實作為一擴展屬性(x-attribute/XATTR/xattr),但是本發明不限於此,一旦來源物件的物件資料被遷移至目的地或使用者在該目的地覆寫該物件資料,該目的地(例如儲存伺服器10)可將上述所列出的暫時屬性移除,為簡潔起見,本實施例的類似內容在此不再重複詳細描述。Wherein any of these temporary attributes (eg each attribute) can be implemented as an extended attribute (x-attribute/XATTR/xattr), but the invention is not limited to this, 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 (for example, the storage server 10 ) can remove the temporary attributes listed above. For the sake of brevity, similar contents of this embodiment are not repeated here. 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 device 10 may invalidate an index object that is a representative of a normal object (eg, by removing its temporary attributes) and/or replace the index object with a normal object in the store at the destination, but the invention is not limited to this.

通常來說,更改一物件的存取控制列表不會改變該物件的修改時間,相關技術的資料遷移方法似乎在提出時沒有考慮這一點,因此不能適當地處理已刪除物件、唯讀物件等等。本發明的方法和相關設備可以在各種狀況中的任一狀況下適當地操作,其中更進一步的實作細節會在以下實施例中描述。Generally speaking, changing the ACL of an object does not change the modification time of the object, and the data migration method of the related art does not seem to take this into account when 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 examples below.

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

在步驟S01中,基於索引物件的簡易儲存服務遷移管理模組53,例如,可以在要求觸發後立即為一組簡易儲存服務使用者(例如一單一使用者,諸如上述的使用者,或者包含有上述之使用者的多個使用者)開始進行簡易儲存服務遷移。In step S01, the simple storage service migration management module 53 based on the index object, for example, can be a group of simple storage service users (for example, a single user, such as the above-mentioned user, or includes a group of simple storage service users immediately after the request is triggered. 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 (eg, quota) 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 storages in the destination for each user of the group of users, and set relevant migration information, for example, the migration The information may include proxy parameters (eg, remote user credentials to proxy (eg, forward)) and other proxy parameters to direct the destination (eg, storage server 10 ) to proxy (eg, forward) any other request to A source (eg, a remote Easy Storage Service compatible server), and forwards a response corresponding to any other request from the source proxy (eg, forwarding) to the user.

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

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

在步驟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 (eg, an INDEX job) for each of the one or more storages, To perform the migration of the corresponding remote storage of the source end to the storage of the one or more storages, for example, the simple storage service migration management module 53 based on the indexing object can set the storage to the indexing stage (eg INDEX stage).

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

在步驟S07中,基於索引物件的簡易儲存服務遷移管理模組53可以藉由一個或多個遷移代理程式中的某個代理程式來執行INDEX工作,以為來源端之每一個物件(例如多個常態物件的每一個常態物件)進行以下操作: (1) 創建具有暫時屬性(例如來源物件最後修改時間,諸如bigtera-src-mtime;來源物件大小,諸如bigtera-src-size;以及來源物件實體標籤,諸如bigtera-src-etag)的一虛擬物件(例如不具有物件資料的一物件),以作為多個索引物件中的其中一個索引物件,其中暫時屬性可以為來源端之該每一個物件的虛假屬性(例如虛假最後修改時間、虛假實體標籤諸如虛假檔案雜湊以及虛假大小),而不是來源端之該每一個物件的真實屬性,因此可以視為特殊屬性; (2)自來源端將該物件的物件存取控制列表遷移至目的地;In step S07, the simple storage service migration management module 53 based on the index object can perform the INDEX work by one of the one or more migration agents, so that each object at the source (eg, a plurality of normal object) does the following: (1) Create a virtual object with temporal properties (eg source object last modified time, such as bigtera-src-mtime; source object size, such as bigtera-src-size; and source object entity tag, such as bigtera-src-etag) (for example, an object without object data) as one of the index objects among multiple index objects, where temporary attributes can be false attributes of each object at the source (such as false last modified time, false entity tags such as fake file hash and fake size), rather than the real attributes of each object at the source, and thus can be considered special attributes; (2) Migrate the object access control list of the object from the source end to the destination;

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

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

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

其中該遷移代理程式可遷移該貯體配額的最新版本(例如於不存在任一個其它要求的情況下,相對應的遠端貯體的原始貯體配額;或者於存在任一個其它要求的情況下,因應使用者做出的任何更改而更新的貯體配額)以作為在該工作結束時該貯體的貯體配額,例如,基於索引物件的簡易儲存服務遷移管理模組53可將該貯體設至資料階段(例如DATA階段)。where the migration agent can migrate the latest version of the storage quota (eg, in the absence of any other requirement, the original storage quota of the corresponding remote storage; or in the presence of any other requirement) , the storage quota updated in response to any changes made by the user) as the storage quota for 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階段)中正在處理,為簡潔起見,本實施例的類似內容在此不再重複詳細描述。Among all the reservoirs corresponding to the set of Easy Storage Service users, while one of the reservoirs is being processed in the indexing phase (eg, the INDEX phase), the other one of the reservoirs is available at is being processed in a data phase (eg DATA phase). Assuming that the one or more bins contain multiple bins, when one bin of the multiple bins is being processed in an indexing stage (eg, the INDEX stage), another bin of the multiple bins is available in the data is being processed in a stage (for example, a DATA stage), and for the sake of brevity, the similar content of this embodiment will not be repeated 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 indexing phase (eg, the INDEX phase) may be much shorter than the data phase (eg, the DATA phase). During the indexing phase, the simple storage service migration management module 53 based on the indexed object may The migration agent performs INDEX work to first list remote objects (such as multiple normal objects at the source end) for creating virtual objects and migrating object ACLs. Since any other requirements may exist during the indexing phase (eg, the INDEX phase), different situations need to be considered, such as a first situation where the index object has not been created, and a second situation where the storage server 10 is creating an index object, etc. etc., for example, processing for PUT/POST requests should take place at a local site (eg, a destination such as storage server 10), and storage server 10 can perform this processing for PUT/POST requests and Also proxy the PUT/POST request to a remote site (e.g. origin, such as a Remote Simple Storage Service compatible server) for storage usage and List-Objects requests ( e.g. ListObjects request) results are correct. In the event that any other requirement exists in the indexing phase (eg, the INDEX phase) where the user can overwrite one or more objects, if an indexing object is overwritten by the user, the object is no longer an object index object, so the migration agent will not migrate object data for that object in the data phase (such as the DATA phase), in addition, before the data phase (such as the DATA phase), all index objects may have been created (including their object access control list). In the data phase (eg, the DATA phase), the indexed object-based simple storage service migration management module 53 may perform DATA work by the migration agent in step S08 to list local objects (eg, objects in local locations, such as index object), and migrates the object data for each local object. Generally speaking, most operations can be performed normally, except for GET/HEAD object requirements, in order to solve the racing hazard, the storage server 10 can use atomic (atomic) operations to create index objects and by the index objects To migrate data (such as the object data of multiple normal objects at the source), for example, when the migration agent is creating an index object or migrating data about an index object, 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 (eg, forwarding) index objects in a reliable automated distributed object storage gateway, in the presence of any other requirements, when a client device (eg, a simple storage service client) operates on an index object or While the store for the destination is in the INDEX phase, it may be required that the destination (eg, storage server 10 ) can proxy any other request to a remote location (eg, a source, such as a remote simple storage service) server), and transmits 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.

第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 the Ceph object storage architecture with the index object-based simple storage service migration management module 53 shown in FIG. 1 , and the program module 52P running on the processing circuit 52 shown in FIG. 1 Can include a Ceph Object Gateway module (labeled "Ceph Object Gateway" in Figure 7 for brevity), where the Ceph Object Gateway module includes sub-modules, such as a reliable Automated decentralized object storage gateway module (denoted "RADOS gateway" for brevity and better understanding) and librados software library (denoted "librados" for brevity), and index-based Object Simple Storage Service Migration Management Module 53 is implemented in the Reliable Automated Distributed Object Storage Gateway module. According to this embodiment, client devices (labeled as "clients") can use the Hypertext Transfer Protocol (eg Simple Storage Service or Swift Application Programming Interface) (labeled as "HTTP (S3 or Swift API)" for brevity) to access storage server 10, which can use multi-node architecture, multi-host architecture and the like, 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 (eg, an object-based storage system of a reliable automated distributed object storage) of the storage server 10 may include at least one public network (eg, one or multiple public networks) to couple to multiple object storage device (OSD) nodes (labeled "OSD nodes" for brevity) of the host device 50 shown in FIG. 1, and also include Other parts of the Ceph object storage architecture, such as at least one cluster network (eg, one or more cluster networks) coupled to the plurality of object storage device nodes, an odd number of monitors constituting a 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 (designated "1G" for brevity), and the at least one cluster network can be used to achieve a second predetermined speed such as Ten gigabits per second (denoted "10G" for brevity), where the second predetermined speed is as many bits per second as possible, the plurality of object storage device nodes may include journals for ) (e.g. various types of journals, such as object storage device journaling, etc.), some solid state drives, and more traditional hard drives, and especially include non-fault-tolerant disk array drive architectures such as cluster disks/drives (just a bunch of disks/drives, JBOD)), for the sake of brevity, the similar content of these embodiments will not be repeated in detail here.

針對簡易儲存服務表現層狀態轉換的應用程式介面/操作,簡易儲存服務動作之物件相關操作的範例可包含但不限於: (1)物件列出要求(例如ListObjects request); (2)物件頭(Head-Object)要求(例如用來獲取物件屬性的HeadObject request); (3)物件獲取要求(例如GetObject request); (4)物件獲取存取控制列表(Get-Object-ACL)要求(例如GetObjectaACL request); (5)物件放置(Put-Object)要求(例如PutObject request); (6)創建多成分上傳(Create-Multipart-Upload)要求(例如CreateMultipartUpload request); (7)完成多成分上傳(Complete-Multipart-Upload)要求(例如CompleteMultipartUpload request); (8)物件放置存取控制列表(Put-Object-ACL)要求(例如PutObjectACL request); (9)物件刪除(Delete-Object)要求(例如DeleteObject request); 其中某些後續實施例可能專注在上述列出的物件相關操作上。For the application programming interface/operation of the state transition of the simple storage service presentation layer, the examples of the object-related operations of the simple storage service action may include but are not limited to: (1) Object listing request (such as ListObjects request); (2) Object header (Head-Object) requirements (for example, the HeadObject request used to obtain object properties); (3) Object acquisition request (such as GetObject request); (4) The object obtains the access control list (Get-Object-ACL) request (for example, GetObjectaACL request); (5) Object placement (Put-Object) requirements (such as PutObject request); (6) Create a multi-component upload (Create-Multipart-Upload) request (such as CreateMultipartUpload request); (7) Complete multi-component upload (Complete-Multipart-Upload) requirements (for example, CompleteMultipartUpload request); (8) Object placement access control list (Put-Object-ACL) request (for example, PutObjectACL request); (9) Object deletion (Delete-Object) request (such as DeleteObject request); Some of these subsequent embodiments may focus on the object-related operations 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 using index objects to perform seamless migration of simple storage services according to an embodiment of the present invention. As shown in FIG. 8, it is used for processing during user data migration. A workflow of one or more object listing requirements 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 (eg, the simple storage service migration management module 53 based on indexed objects) 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 simple storage service migration management module 53 based on the index object may check for the object listing request corresponding to the object listing in at least one of the storages in the storage device layer of the storage server 10 Whether a reservoir (eg, a destination's reservoir) is being processed in an indexing phase (eg, an INDEX phase), where the at least one reservoir may represent at least one container (eg, one or more containers) of the item, and if so , go to step S12 ; if not, go to step S14 (eg, step S14A), for example, the object lists the object that requires the storage body to be listed.

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

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

在步驟S14中,因應該貯體在索引階段(例如INDEX階段)中沒有正在被處理,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以根據該物件列出要求來進行至少一常態動作,無需將該物件列出要求代理(例如轉發)至來源端(例如遠端簡易儲存服務相容伺服器),例如,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以根據一相關存取控制列表檢查是否通過來選擇性地將一本地物件列出結果(例如本地位置的一本地物件列出結果,諸如在本地位置執行該物件列出要求的結果)回傳至使用者。In step S14 , since the storage is not being processed in the indexing phase (eg, the INDEX phase), the simple storage service migration management module 53 based on the indexed object can control the storage server 10 to perform processing according to the object listing request At least one normal action, no need to list the object and request an agent (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 selectively lists a local object listing result (eg, a local object listing result at the local location, such as the result of executing the object listing request at the local location) based on whether a related ACL check is passed or not. Post back 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 ACL check is passed, and if so, go to step S14B; if not, go to step S14C, for example, when the ACL When indicating that the user has the permission to apply the object listing request to the storage (for example, the permission to execute the obtaining result of the object listing request), the simple storage service migration management module 53 based on the index object can determine the ACL The check is passed, for another example, when the ACL indicates that the user does not have the permission to apply the object listing request to the store (such as the permission to execute the fetch result of the object listing request), the simple storage service based on the index object The migration management module 53 can 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 listing result to the user.

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

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

為了更好地理解,該方法可利用第8圖所示之工作流程來說明,但是本發明不限於此,根據某些實施例,第8圖所示之工作流程中的一個或多個步驟可被添加、刪除、或更改,例如,該工作流程的至少一部分(例如一部分或全部)可被執行多次,且尤指包含有檢查操作的任一個步驟可被執行多次,以分別產生多個檢查結果,以分別觸發一些後續步驟的執行。For better understanding, the method may 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 may be is added, deleted, or changed, for example, at least a part (eg, part or all) of the workflow may be performed multiple times, and in particular any step that includes a check operation may be performed multiple times to generate multiple Check the results to trigger the execution of some subsequent steps, respectively.

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

在步驟S20中,儲存伺服器(例如基於索引物件的簡易儲存服務遷移管理模組53)可自使用者接收一個或多個物件頭要求的一個物件頭要求,例如,該物件頭要求要求獲取目的地的貯體中一物件的物件屬性,並且該物件可視為該物件頭要求的一目標物件,物件屬性可包含: (1)物件最後修改時間,諸如該物件的最後修改時間; (2)物件實體標籤,諸如該物件的實體標籤(例如檔案雜湊); (3)物件大小,諸如該物件的大小; 其中這些屬性可以藉由一HTTP HEAD要求而被擷取。In step S20 , the storage server (eg, the simple storage service migration management module 53 based on indexed objects) may receive an object header request from one or more object header requests from the user, for example, the object header request requires the acquisition purpose The object properties of an object in the storage of the ground, and the object can be regarded as a target object required by the object header, and the object properties can include: (1) The last modification time of the object, such as the last modification time of the object; (2) Object entity tag, such as the object's entity tag (eg file hash); (3) the size of the item, such as the size of the item; Where 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 may 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 (eg, the storage of the destination) is being processed in the indexing stage (eg, the INDEX stage), if so, go to step S22; if not; go to step S26.

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

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

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

,進入步驟S25(例如步驟S25A);如果否,則進入步驟S29A,舉例來說,在創建一虛擬物件(例如上述的虛擬物件)以及遷移該物件存取控制列表之間通常會有一短時間延遲,因此基於索引物件的簡易儲存服務遷移管理模組53可在該工作流程中進行步驟S24的檢查操作,以遵守存取控制方針。, go to step S25 (eg 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 virtual object) and migrating the object ACL Therefore, the simple storage service migration management module 53 based on the index object can perform the check 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 request, for example, the index object-based simple storage service migration management module 53 The storage server 10 can be controlled to selectively record in the index object (such as the index object mentioned in step S23 ) a special attribute (such as a source modification time, such as The attributes in bigtera-src-mtime, source entity tags, such as bigtera-src-etag, and source size, such as bigtera-src-size) are passed back 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, go to step S25B; if not, go to step S25C, for example, when the access control When the list indicates that the user has the permission to apply the object header request to the object (eg, the permission to obtain the result of executing the object header request), the index object-based simple storage service migration management module 53 can determine the ACL check By, for example, when the ACL indicates that the user does not have the permission to apply the object header request to the object (eg, the permission to obtain the result of executing the object header request), the simple storage service migration management based on the index object The module 53 can determine that the access control list fails.

在步驟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 (eg, the index object mentioned in step S23 ) back to to the user.

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

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

在步驟S27中,因應該物件(例如該物件頭要求的該目標物件)已不再是一索引物件(例如該物件成為一常態物件),基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以根據該物件頭要求來進行至少一常態動作,例如,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以根據一相關存取控制列表檢查是否通過來選擇性地將該物件的本地元資料(例如本地位置的該物件之元資料)回傳至使用者。In step S27, since the object (eg, the target object requested by the object header) is no longer an index object (eg, the object becomes a normal object), the simple storage service migration management module 53 based on the index object can control the The storage server 10 performs at least one normal action according to the object header 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 the selection is passed according to a related access control list. The object's local metadata (such as the object's local location's metadata) is automatically returned 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 ACL check is passed, and if so, go to step S27B; if not, go to step S27C, for example, the operation of step S27A can be similar operation in step S25A.

在步驟S27 B中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以將該物件的該本地元資料回傳至使用者。In step S27B, the simple storage service migration management module 53 based on the index object 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 (eg forward) the request (eg, object header request) to the source/remote location (eg, remote simple Storage Services Compliant Server) to enable the remote location to check the object ACL.

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

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

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

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

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

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

在步驟S32中,因應該貯體在索引階段(例如INDEX階段)中正在被處理,基於索引物件的簡易儲存服務遷移管理模組53可檢查該物件(例如該物件獲取要求的該目標物件)是否存在,如果是,進入步驟S33;如果否,則進入步驟S34。針對步驟S32以及S34 之間的部分工作流程,該物件不存在之原因的範例可包含:該索引物件還未被創建;以及該索引物件已經被使用者刪除。In step S32, since the storage is being processed in the indexing phase (eg, the INDEX phase), the simple storage service migration management module 53 based on the indexed object can check whether the object (eg, the target object of the object acquisition request) is If yes, go to step S33; if not, go to step S34. For part of the workflow between steps S32 and S34, examples of the reasons 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 (for example, the target object of the object acquisition request) is still an index object, if so, go to step S34; if not, then Proceed to step S36 (eg, 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 (eg forward) the request (eg, the object acquisition request) to the source/remote location (eg, remote Simple Storage Service compatible server).

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

在步驟S36中,因應該物件(例如該物件獲取要求的該目標物件)不再是一索引物件(例如該物件成為一常態物件),基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以根據該物件獲取要求來進行至少一常態動作,例如,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以根據一相關存取控制列表檢查是否通過來選擇性地將該物件的本地資料(例如本地位置的該物件之該資料)回傳至使用者。In step S36, since the object (eg, the target object of the object acquisition request) is no longer an index object (eg, the object becomes a normal object), the simple storage service migration management module 53 based on the index object 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 selectively check whether the access control list is passed or not. Local data for the object (such as the data for 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, go to step S36B; if not, go to step S36C, for example, when the access control When the list indicates that the user has the permission to apply the object acquisition request to the object (eg, the permission to obtain the result of executing the object acquisition request), the simple storage service migration management module 53 based on the index object can determine the access control list The check is passed, for example, when the ACL indicates that the user does not have the right to apply the object acquisition request to the object (such as the right to obtain the result of executing the object acquisition request), the simple storage service based on the index object The migration management module 53 can determine that the access control list fails.

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

在步驟S36C中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10阻止將該物件的該本地資料回傳至使用者。In step S36C, the simple storage service migration management module 53 based on the index object 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 may be illustrated using the workflow shown in FIG. 10, but the invention is not limited thereto. According to some embodiments, one or more steps in the workflow shown in FIG. 10 may be is added, deleted, or changed, for example, at least a part (eg, part or all) of the workflow may be performed multiple times, and in particular any step that includes a check operation may be performed multiple times to generate multiple Check the results to trigger the execution of some subsequent steps, respectively.

第11圖為根據本發明一實施例之利用索引物件來進行簡易儲存服務無縫遷移之方法的物件獲取存取控制列表控制方案的示意圖,如第11圖所示,於使用者資料遷移的期間用來處理一個或多個物件獲取存取控制列表要求的一工作流程可包含步驟S40~S48,其中步驟S45可包含一些子步驟(例如S45A~S45C)。FIG. 11 is a schematic diagram of an object acquisition ACL control scheme of a method for using index objects to perform seamless migration of simple storage services according to an embodiment of the present invention. As shown in FIG. 11, during 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 (eg, the simple storage service migration management module 53 based on the index object) may obtain an ACL from an object in one or more object obtain ACL requests received from the user request, for example, the object get access control list request request to get the object access control list (such as the access control list of a bank in the destination's store), and this object can be regarded as the object get access control list request of a target object.

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

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

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

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

在步驟S45中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以根據該物件獲取存取控制列表要求來進行至少一常態動作,例如,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以根據一相關存取控制列表檢查是否通過來選擇性地將該物件的本地存取控制列表(例如本地位置的該物件之存取控制列表)回傳至使用者。In step S45, the simple storage service migration management module 53 based on the index object can control the storage server 10 to perform at least one normal action according to the request for obtaining the ACL for the object, for example, the simple storage service migration based on the index object The management module 53 can 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 relevant ACL check whether it passes or not. 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 ACL check is passed, if yes, go to step S45B; if not, go to step S45C, for example, when the ACL check is passed Indicates that the user has the permission to apply the ACL request for the object to the object (for example, the permission to execute the result of the ACL request for the object), the index object-based simple storage service migration management module 53 It can be determined that the ACL check is passed, and for example, when the ACL indicates that the user does not have the authority to apply the ACL request for the object to the object (for example, get the ACL request to execute the object) When the access control list check is not passed, the simple storage service migration management module 53 based on the index object can determine that the ACL check is not passed.

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

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

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

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

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

第12圖為根據本發明一實施例之利用索引物件來進行簡易儲存服務無縫遷移之方法的物件放置控制方案的示意圖,如第12圖所示,於使用者資料遷移的期間用來處理一個或多個物件資料寫入相關要求(例如一個或多個物件放置要求、一個或多個創建多成分上傳要求、以及一個或多個完成多成分上傳要求)的一工作流程可包含步驟S50~S58,其中步驟S56可包含一些子步驟(例如S56A~S56C)。FIG. 12 is a schematic diagram of an object placement control scheme of a method for using index objects to perform seamless migration of simple storage services according to an embodiment of the present invention. As shown in FIG. 12, it is used to process an object during user data migration. A workflow for writing related requirements of one or more object data (such as one or more object placement requirements, one or more create multi-component upload requirements, and one or more complete 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 (eg, the simple storage service migration management module 53 based on indexed objects) may receive from the user a request for writing data in one or more objects (eg, one or more placement requests, a One or more Create Multi-Component Upload Requests, and one or more Complete Multi-Component Upload Requests) related requests (e.g. an Object Placement/Create Multi-Component Upload/Complete Multi-Component Upload requests, such as an Object Placement request, a creation of a multi-part upload request, or a completion of a multi-part upload request), for example, the object data write related request requires an object to be written to the destination storage, and this object can be regarded as the object data Write a target object of the relevant request.

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

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

在步驟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 object data writing related request) is successful without any error, if so (for example, a response received from the source, such as Corresponding to the response to the relevant request for object data writing, indicating that no error has occurred), go to step S54; if no (for example, a response received from the source, such as a response corresponding to the relevant request for object data writing, indicating one or multiple errors and one error response), then go to step S57.

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

在步驟S55中,基於索引物件的簡易儲存服務遷移管理模組53可檢查該物件的物件存取控制列表是否被遷移,如果是,進入步驟S56(例如步驟S56A);如果否,則進入步驟S58。In step S55, the simple storage service migration management module 53 based on the index object can check whether the object ACL of the object has been migrated, and if so, go to step S56 (eg, 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 action according to the object data writing requirements, for example, the index object-based simple storage service migration management The module 53 can selectively write data (eg, the object data carried by the object data write related request) as the object data of the object by checking whether it passes or not according to a related access control list.

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

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

在步驟S56C中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以阻止將該資料(例如該物件資料寫入相關要求所攜帶的該物件資料)寫入為該物件的該物件資料。In step S56C, the simple storage service migration management module 53 based on the index object can control the storage server 10 to prevent the data (such as the object data carried by the object data writing in the relevant request) from being written as the object's 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 (eg forward) the error response corresponding to the object data writing related request to the user.

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

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

第13圖為根據本發明一實施例之利用索引物件來進行簡易儲存服務無縫遷移之方法的物件放置存取控制列表控制方案的示意圖,如第13圖所示,於使用者資料遷移的期間用來處理一個或多個物件放置存取控制列表要求的一工作流程可包含步驟S60~S65,其中步驟S64可包含一些子步驟(例如S64A~S64C)。FIG. 13 is a schematic diagram of an object placement ACL control scheme of a method for using index objects to perform seamless migration of simple storage services according to an embodiment of the present invention. As shown in FIG. 13, during 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 (eg, the simple storage service migration management module 53 based on indexed objects) may receive an object placement ACL request from the user of one or more object placement ACL requests, For example, the object placement ACL request requires writing or updating an object ACL (such as an object's ACL in the destination's storage), and this object can be considered as 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 the at least one storage in the storage device layer of the storage server 10 corresponding to the object Whether a bank (eg, the bank of the destination) requested by the put ACL is being processed in the index phase (eg, the INDEX phase), if so, go to step S62, if not, go to step S64 (eg, 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 (eg forward) the request (eg, the object placement ACL request) to the source (eg, the remote simple storage service 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 (eg, the object placement ACL request) is successful without any error, and if so (eg, a response received from the source, such as Corresponding to the response of the object placement ACL request, indicating that no error occurs), go to step S64 (eg, step S64A); if not (eg, a response received from the source, such as corresponding to the object placement ACL request) The response is an error response indicating one or more errors), then go to 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 action according to the object placement ACL request, for example, 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/latest ACL carried by the object placement ACL request according to whether an associated ACL check is passed or not. Fetch a control list (eg, 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 ACL check is passed, and if so, go to step S64B; if not, go to step S64C, for example, when the access control list When indicating that the user has the permission to apply the object's ACL request to the object (for example, the permission to write or update the object's ACL), the simple storage service migration management module 53 based on the index object can determine The ACL check is passed, for example, when the ACL indicates that the user does not have the permission to place the ACL request on the object (such as the permission to write or update the ACL of the object) ), the simple storage service migration management module 53 based on the index object can 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 access control with the new access control list carried by the object placement access control list request A list (eg, the ACL 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 (eg forward) the error response corresponding to the object placement ACL request to the user.

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

第14圖為根據本發明一實施例之利用索引物件來進行簡易儲存服務無縫遷移之方法的物件刪除控制方案的示意圖,如第14圖所示,於使用者資料遷移的期間用來處理一個或多個物件刪除要求的一工作流程可包含步驟S70~S75,其中步驟S74可包含一些子步驟(例如S74A~S74D)。FIG. 14 is a schematic diagram of an object deletion control scheme of a method for using index objects to perform seamless migration of simple storage services according to an embodiment of the present invention. As shown in FIG. 14, it is used to process an object during user data migration. A workflow for deleting requests for or multiple objects 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 (eg, the simple storage service migration management module 53 based on indexed objects) may receive an object deletion request in one or more object deletion requests from the user, for example, the object deletion request request Deletes an object in the storage of the destination, 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 simple storage service migration management module 53 based on the index object may check for an object corresponding to the object deletion request in the at least one storage in the storage device layer of the storage server 10 . Whether the storage (eg, the storage of the destination) is being processed in the index phase (eg, the INDEX phase), if so, go to step S72, if not, proceed to step S74 (eg, step S74A).

在步驟S72中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以將該要求(例如物件刪除要求)代理(例如轉發)至來源端(例如遠端簡易儲存服務相容伺服器)。In step S72, the simple storage service migration management module 53 based on the index object 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 easy 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 (eg, the object deletion request) is successful without any error, and if so (eg, a response received from the source, such as corresponding to the object) The response to the deletion request, indicating that no errors have occurred), go to step S74 (eg, step S74A); if no (eg, the response received from the source, such as the response corresponding to the object deletion request, indicates one or more errors) an 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 action 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 (eg, the target object) based on at least a related ACL check whether it passes or not. Also, 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 (eg, the target object) according to at least whether the object exists. Preferably, the simple storage service migration management module 53 based on the index object can control the storage server 10 to A condition is satisfied to selectively delete the object (eg, the target object), wherein the first condition indicates that the ACL check is passed, and the second condition indicates 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 ACL check is passed, if yes, go to step S74B; if not, go to step S74D, for example, when the ACL check is passed When indicating that the user has the authority to apply the object deletion request to the object (for example, the authority to delete the object), the simple storage service migration management module 53 based on the index object can determine that the ACL check is passed, and for example, When the access control list indicates that the user does not have the right to apply the object deletion request to the object (eg, the right 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 simple storage service migration management module 53 based on the indexed object can check whether the object (for example, the target object of the object deletion request) exists, if yes, go to step S74C; if not, go to step S74D.

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

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

在步驟S75中,基於索引物件的簡易儲存服務遷移管理模組53可控制儲存伺服器10以將對應於該物件刪除要求的該錯誤回應代理(例如轉發)至使用者。In step S75, the index object-based simple storage service migration management module 53 can control the storage server 10 to proxy (eg 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 may be described using the workflow shown in FIG. 14, but the invention is not limited thereto. According to some embodiments, one or more steps in the workflow shown in FIG. 14 may be is added, deleted, or changed, for example, at least a part (eg, part or all) of the workflow may be performed multiple times, and especially any step that includes a check operation may be performed multiple times, to generate multiple Check the results to trigger the execution of some subsequent steps, respectively. In addition, the combination of steps S74A and S74B can be used to check whether the first condition and the second condition are both satisfied, and the conditions checked by steps S74A and S74B respectively can be exchanged, for example, a simple storage service migration management model based on index objects Group 53 may check whether the second condition is satisfied in step S74A, and check whether the first condition is satisfied in step S74B, if both the first condition and the second condition are satisfied (eg, the access If the control list is checked and the object exists), go to step S74C; otherwise, go to step S74D. Table I indexing stage data stage GET object Proxy if the object does not exist or has a "source modified time" Proxy if object has "source modified time" GET object ACL; HEAD object Proxy if object does not exist allow PUT object access control list proxy, and write to local allow DELETE object proxy, and deletes the local object (if it exists) allow list objects acting allow upload object proxy, and write to local allow

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

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

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

第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 using index objects to perform seamless migration of simple storage services according to an embodiment of the present invention. FIG. 4 is a schematic diagram of some related operations of the index object-based migration control scheme 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 performing seamless migration of simple storage services by 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 using index objects to perform seamless migration of simple storage services according to an embodiment of the present invention. FIG. 9 is a schematic diagram of an object header control scheme of a method for using index objects to perform seamless migration of simple storage services according to an embodiment of the present invention. FIG. 10 is a schematic diagram of an object acquisition control scheme of a method for using index objects to perform seamless migration of simple storage services 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 using index objects to perform seamless migration of simple storage services according to an embodiment of the present invention. FIG. 12 is a schematic diagram of an object placement control scheme of a method for using index objects to perform seamless migration of simple storage services 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 using index objects to perform seamless migration of simple storage services according to an embodiment of the present invention. FIG. 14 is a schematic diagram of an object deletion control scheme of a method for using index objects to perform seamless migration of simple storage services according to an embodiment of the present invention.

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

Claims (18)

一種利用索引物件來進行簡易儲存服務無縫遷移的方法,該方法係應用於一儲存伺服器,該方法包含有: 因應自一遠端簡易儲存服務相容伺服器遷移該儲存伺服器的一使用者的一使用者資料至該儲存伺服器的一要求,於該使用者資料之一遷移的多個階段中的一索引階段中,利用在該儲存伺服器中的一主裝置上運行的多個程式模組中的一基於索引物件的簡易儲存服務遷移管理模組來創建並儲存多個索引物件至該儲存伺服器的一儲存裝置層,以作為在該儲存伺服器中的該使用者資料的多個常態物件的各自的代表,並且遷移該多個常態物件的各自的存取控制列表至該儲存伺服器以作為該多個索引物件的各自的存取控制列表,以最小化該多個常態物件中任一常態物件的任一改變影響該使用者資料之該遷移的正確性的機率,其中該儲存伺服器包含有該主裝置以及該儲存裝置層,該儲存裝置層包含有耦接於該主裝置的至少一儲存裝置,該主裝置係用來控制該儲存伺服器的操作,且該至少一儲存裝置係用來為該儲存伺服器儲存資訊;以及 於該多個階段中的該索引階段之後的一資料階段中,利用該基於索引物件的簡易儲存服務遷移管理模組來觸發一個或多個遷移代理程式,以自該遠端簡易儲存服務相容伺服器遷移該多個常態物件中的一組常態物件的各自的物件資料至該儲存伺服器的該儲存裝置層,以作為在該多個索引物件中的一組索引物件的各自的替換,以完成該使用者資料之該遷移。A method for seamless migration of simple storage services using index objects, the method is applied to a storage server, and the method includes: In response to a request to migrate a user data of a user of the storage server to the storage server from a remote simple storage service compatible server, in one of multiple stages of a migration of the user data During the indexing phase, a simple storage service migration management module based on indexing objects among a plurality of program modules running on a host device in the storage server is used to create and store a plurality of indexing objects to the storage server a storage device layer in the storage server to serve as the respective representatives of the plurality of normal objects of the user data in the storage server, and to migrate the respective ACLs of the plurality of normal objects to the storage server as the the respective ACLs of the plurality of index objects to minimize the probability that any change of any one of the plurality of normal objects affects the correctness of the migration of the user data, wherein the storage server includes There is the host device and the storage device layer, the storage device layer includes at least one storage device coupled to the host device, the host device is used to control the operation of the storage server, and the at least one storage device is used for to store information for the storage server; and In a data phase following the indexing phase of the plurality of phases, utilizing the index object-based easy storage service migration management module to trigger one or more migration agents to be compatible from the remote easy storage service The server migrates the respective object data of a set of normal objects in the plurality of normal objects to the storage device layer of the storage server as respective replacements of a set of index objects in the plurality of index objects to Complete the migration of the user data. 如申請專利範圍第1項所述之方法,另包含有: 因應自該遠端簡易儲存服務相容伺服器遷移該使用者資料至該儲存伺服器的該要求,於該多個階段中的該索引階段之前的一設置階段中,利用該基於索引物件的簡易儲存服務遷移管理模組來進行該使用者資料之該遷移的預處理。The method described in Item 1 of the scope of the patent application further includes: In response to the request to migrate the user data from the remote simple storage service compliant server to the storage server, in a setup phase before the indexing phase of the plurality of phases, the index object-based simple The storage service migration management module performs preprocessing of the migration of the user data. 如申請專利範圍第2項所述之方法,其中該預處理包含將用以存取該使用者資料之至少一端點由該遠端簡易儲存服務相容伺服器的至少一叢集切換至該儲存伺服器的至少一叢集。2. The method of claim 2, wherein the preprocessing comprises switching at least one endpoint for accessing the user data from at least one cluster of remote easy storage service compatible servers to the storage server at least one cluster of devices. 如申請專利範圍第1項所述之方法,其中該多個常態物件的該各自的存取控制列表被遷移至該儲存伺服器以作為該多個索引物件的該各自的存取控制列表,宛如該多個索引物件係為該多個常態物件,以最小化該多個常態物件中任一常態物件的任一改變影響該使用者資料之該遷移的正確性的機率。The method of claim 1, wherein the respective ACLs of the plurality of normal objects are migrated to the storage server as the respective ACLs of the plurality of index objects, as if The plurality of index objects are the plurality of normal objects, so as to minimize the probability that any change of any one of the plurality of normal objects affects the accuracy of the migration of the user data. 如申請專利範圍第1項所述之方法,其中在該使用者資料之該遷移的期間用來處理一個或多個物件列表要求的一工作流程包含有: 自該使用者接收在該一個或多個物件列表要求中的一物件列表要求; 因應該物件列表要求,檢查在該儲存裝置層中的至少一貯體中對應於該物件列表要求的一貯體在該索引階段中是否正在被處理,其中該至少一貯體代表為物件的至少一容器;以及 因應該貯體在該索引階段中正在被處理,控制該儲存伺服器以將該物件列表要求代理至該遠端簡易儲存服務相容伺服器。The method of claim 1, wherein a workflow for processing one or more object list requests during the migration of the user data comprises: receiving from the user an object list request in the one or more object list requests; In response to the object list request, checking whether a store corresponding to the object list request in at least one store in the storage device layer is being processed in the indexing phase, wherein the at least one store represents at least one of the objects a container; and Since the store is being processed in the indexing phase, the storage server is controlled to proxy the object list request to the remote simple storage service compatible server. 如申請專利範圍第5項所述之方法,其中在該使用者資料之該遷移的期間用來處理該一個或多個物件列表要求的該工作流程另包含有: 在控制該儲存伺服器以將該物件列表要求代理至該遠端簡易儲存服務相 容伺服器之後,控制該儲存伺服器以將相對應於該物件列表的一回應自該遠端簡易儲存服務相容伺服器代理至該使用者。The method of claim 5, wherein the workflow for processing the one or more object list requests during the migration of the user data further comprises: After controlling the storage server to proxy the object list request to the remote simple storage service compatible server, controlling the storage server to send a response corresponding to the object list from the remote simple storage service server The container server proxies to this user. 如申請專利範圍第5項所述之方法,其中檢查該貯體在該索引階段中是否正在被處理的步驟被執行多次以分別產生一第一檢查結果以及一第二檢查結果,其中該第一檢查結果指示該貯體在該索引階段中正在被處理,以及該第二檢查結果指示該貯體在該索引階段中沒有正在被處理;控制該儲存伺服器以將該物件列表要求代理至該遠端簡易儲存服務相容伺服器的步驟會因應該第一檢查結果而被執行;以及在該使用者資料之該遷移的期間用來處理該一個或多個物件列表要求的該工作流程另包含有: 因應該第二檢查結果,控制該儲存伺服器以根據該物件列表要求進行至少一常態動作,而無需將該物件列表要求代理至該遠端簡易儲存服務相容伺服器。The method of claim 5, wherein the step of checking whether the storage is being processed in the indexing phase is performed multiple times to generate a first check result and a second check result, respectively, wherein the first check result is a check result indicates that the store is being processed during the indexing phase, and the second check result indicates that the store is not being processed during the indexing phase; controlling the storage server to proxy the object list request to the The steps of the remote simple storage service compatible server are performed in response to the first check result; and the workflow for processing the one or more object list requests during the migration of the user data further includes Have: In response to the second check result, the storage server is controlled to perform at least one normal action according to the object list request without proxying the object list request to the remote simple storage service compatible server. 如申請專利範圍第7項所述之方法,其中該至少一常態動作包含有: 控制該儲存伺服器以根據一相關聯的存取控制列表檢查是否通過來選擇性地將一本地物件列表結果回傳至該使用者,其中如果該相關聯的存取控制列表檢查通過,該儲存伺服器將該本地物件列表結果回傳至該使用者,否則,該儲存伺服器阻止將該本地物件列表結果回傳至該使用者。The method of claim 7, wherein the at least one normal action includes: Controlling the storage server to selectively return a local object list result to the user according to whether an associated ACL check passes, wherein if the associated ACL check passes, the storage The server returns the local object list result to the user, otherwise, the storage server prevents the local object list result from being returned to the user. 如申請專利範圍第1項所述之方法,其中在該使用者資料之該遷移的期間用來處理一個或多個物件頭要求的一工作流程包含有: 自該使用者接收在該一個或多個物件頭要求中的一物件頭要求; 因應該物件頭要求,檢查在該儲存裝置層中的至少一貯體中對應於該物件頭要求的一貯體在該索引階段中是否正在被處理,其中該至少一貯體代表為物件的至少一容器; 因應該貯體在該索引階段中正在被處理,檢查該物件頭要求的一目標物件是否存在; 因應該目標物件的存在,檢查該目標物件是否仍為一索引物件;以及 因應該目標物件仍為該索引物件,檢查該目標物件的一物件存取控制列表是否被遷移至該儲存伺服器,以根據該物件頭要求來選擇性地進行至少一預定動作,而無需將該物件頭要求代理至該遠端簡易儲存服務相容伺服器。The method of claim 1, wherein a workflow for processing one or more object header requests during the migration of the user data comprises: receiving an object header request from the one or more object header requests from the user; In response to the object header request, checking whether a reservoir corresponding to the object header request is being processed in the indexing phase of at least one reservoir in the storage device layer, wherein the at least one reservoir represents at least one of the object headers. a container; checking for the existence of a target object requested by the object header as the store is being processed during the indexing phase; checking whether the target object is still an index object due to the existence of the target object; and Since the target object is still the index object, check whether an object access control list of the target object has been migrated to the storage server, so as to selectively perform at least one predetermined action according to the object header request without requiring the Object header request proxy to this Remote Simple Storage Service compatible server. 如申請專利範圍第9項所述之方法,其中該至少一預定動作包含有: 控制該儲存伺服器以根據一相關聯的存取控制列表檢查是否通過來選擇性地將該索引物件的複數個暫時屬性中所記錄的複數個屬性回傳至該使用者,其中如果該相關聯的存取控制列表檢查通過,該儲存伺服器將該索引物件的該複數個暫時屬性中所記錄的該複數個屬性回傳至該使用者,否則,該儲存伺服器阻止將該索引物件的該複數個暫時屬性中所記錄的該複數個屬性回傳至該使用者。The method of claim 9, wherein the at least one predetermined action includes: controlling the storage server to selectively return to the user a plurality of attributes recorded in a plurality of temporary attributes of the indexed object according to an associated access control list check, wherein if the associated access control list is passed If the ACL check is passed, the storage server returns the plurality of attributes recorded in the plurality of temporary attributes of the index object to the user; otherwise, the storage server blocks the The plurality of attributes recorded in the plurality of temporary attributes are returned to the user. 如申請專利範圍第1項所述之方法,其中在該使用者資料之該遷移的期間用來處理一個或多個物件獲取要求的一工作流程包含有: 自該使用者接收在該一個或多個物件獲取要求中的一物件獲取要求; 因應該物件獲取要求,檢查在該儲存裝置層中的至少一貯體中對應於該物件獲取要求的一貯體在該索引階段中是否正在被處理,其中該至少一貯體代表為物件的至少一容器; 因應該貯體在該索引階段中正在被處理,檢查該物件獲取要求的一目標物件是否存在; 因應該目標物件的存在,檢查該目標物件是否仍為一索引物件;以及 因應該目標物件仍為該索引物件,控制該儲存伺服器以根據該物件獲取要求來進行至少一常態動作,而無需將該物件獲取要求代理至該遠端簡易儲存服務相容伺服器。The method of claim 1, wherein a workflow for processing one or more object acquisition requests during the migration of the user data comprises: receiving an object acquisition request from the one or more object acquisition requests from the user; In response to the object acquisition request, checking whether a bank corresponding to the object acquisition request is being processed in the indexing phase in at least one of the storage device layers, wherein the at least one bank represents at least one of the object's a container; checking for the existence of a target object of the object acquisition request as the store is being processed during the indexing phase; checking whether the target object is still an index object due to the existence of the target object; and Since the target object is still the index object, the storage server is controlled to perform at least one normal action according to the object acquisition request, without proxying the object acquisition request to the remote simple storage service compatible server. 如申請專利範圍第11項所述之方法,其中該至少一常態動作包含有: 控制該儲存伺服器以根據一相關聯的存取控制列表檢查是否通過來選擇性地將該目標物件的本地資料回傳至該使用者,其中如果該相關聯的存取控制列表檢查通過,該儲存伺服器將該本地資料回傳至該使用者,否則,該儲存伺服器阻止將該本地資料回傳至該使用者,其中該本地資料代表在該儲存伺服器中的該目標物件的物件資料。The method of claim 11, wherein the at least one normal action includes: controlling the storage server to selectively return local data of the target object to the user according to whether an associated ACL check passes, wherein if the associated ACL check passes, the The storage server returns the local data to the user, otherwise the storage server prevents the local data from being passed back to the user, where the local data represents the object data of the target object in the storage server . 如申請專利範圍第1項所述之方法,其中在該使用者資料之該遷移的期間用來處理一個或多個物件獲取存取控制列表要求的一工作流程包含有: 自該使用者接收在該一個或多個物件獲取存取控制列表要求中的一物件獲取存取控制列表要求; 因應該物件獲取存取控制列表要求,檢查在該儲存裝置層中的至少一貯體中對應於該物件獲取存取控制列表要求的一貯體在該索引階段中是否正在被處理,其中該至少一貯體代表為物件的至少一容器; 因應該貯體在該索引階段中正在被處理,檢查該物件獲取存取控制列表要求的一目標物件是否存在; 因應該目標物件的存在,檢查該目標物件是否仍為一索引物件;以及 因應該目標物件仍為該索引物件,檢查該目標物件的一物件存取控制列表是否被遷移至該儲存伺服器,以根據該物件獲取存取控制列表要求來選擇性地進行至少一常態動作,而無需將該物件獲取存取控制列表要求代理至該遠端簡易儲存服務相容伺服器。The method of claim 1, wherein a workflow for processing one or more object access control list requests during the migration of the user data comprises: receiving an object get ACL request from the user in the one or more object get ACL requests; In response to the object get ACL request, checking whether a memory corresponding to the object get ACL request is being processed in the indexing phase in at least one of the banks in the storage layer, wherein the at least one a receptacle represents at least one container for the article; checking for the existence of a target object requested by the object to obtain an ACL because the store is being processed during the indexing phase; checking whether the target object is still an index object due to the existence of the target object; and Since the target object is still the index object, checking whether an object access control list of the target object has been migrated to the storage server, so as to selectively perform at least one normal action according to the request for obtaining the access control list of the object, There is no need for the object to obtain an access control list request proxy to the remote simple storage service compliant server. 如申請專利範圍第13項所述之方法,其中該至少一常態動作包含有: 控制該儲存伺服器以根據一相關聯的存取控制列表檢查是否通過來選擇性地將該目標物件的一本地存取控制列表回傳至該使用者,其中如果該相關聯的存取控制列表檢查通過,該儲存伺服器將該本地存取控制列表回傳至該使用者,否則,該儲存伺服器阻止將該本地存取控制列表回傳至該使用者,其中該本地存取控制列表代表在該儲存伺服器中的該目標物件的一存取控制列表。The method of claim 13, wherein the at least one normal action includes: Controlling the storage server to selectively return a local ACL for the target object to the user based on an associated ACL check, wherein if the associated ACL If the check is passed, the storage server returns the local access control list to the user; otherwise, the storage server prevents the local access control list from being returned to the user, wherein the local access control list represents An access control list for the target object in the storage server. 如申請專利範圍第1項所述之方法,其中該儲存伺服器被實作為一私有雲,以及該遠端簡易儲存服務相容伺服器被實作為一公有雲或另一私有雲。The method of claim 1, wherein the storage server is implemented as a private cloud, and the remote simple storage service compatible server is implemented as a public cloud or another private cloud. 一種主裝置,包含有: 一處理電路,用來控制該主裝置以在一儲存伺服器中進行基於索引物件的簡易儲存服務遷移管理,其中該儲存伺服器包含有該主裝置以及一儲存裝置層,該儲存裝置層包含有耦接至該主裝置的至少一儲存裝置,該主裝置係用來控制該儲存伺服器的操作,且該至少一儲存裝置係用來為該儲存伺服器儲存資訊,其中: 因應自一遠端簡易儲存服務相容伺服器遷移該儲存伺服器的一使用者的一使用者資料至該儲存伺服器的一要求,於該使用者資料之一遷移的多個階段中的一索引階段中,運行在該處理電路上的多個程式模組中的一基於索引物件的簡易儲存服務遷移管理模組創建並儲存多個索引物件至該儲存裝置層,以作為在該儲存伺服器中的該使用者資料的多個常態物件的各自的代表,並且將該多個常態物件的各自的存取控制列表遷移至該儲存伺服器,以作為該多個索引物件的各自的存取控制列表,以最小化該多個常態物件中任一常態物件的任一改變影響該使用者資料之該遷移的正確性的機率;以及 於該多個階段中的該索引階段之後的一資料階段中,該基於索引物件的簡易儲存服務遷移管理模組觸發一個或多個遷移代理程式,以自該遠端簡易儲存服務相容伺服器遷移該多個常態物件中的一組常態物件的各自的物件資料至該儲存伺服器的該儲存裝置層,以作為在該多個索引物件中的一組索引物件的各自的替換,以完成該使用者資料之該遷移。A main device comprising: 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 server includes the host device and a storage device layer, the storage device layer includes a at least one storage device coupled to the host device, the host 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, wherein: In response to a request to migrate a user data of a user of the storage server to the storage server from a remote simple storage service compatible server, in one of multiple stages of a migration of the user data In the indexing phase, a simple storage service migration management module based on indexing objects among a plurality of program modules running on the processing circuit creates and stores a plurality of indexing objects to the storage device layer as the storage server the respective representatives of the plurality of normal objects in the user data, and migrate the respective access control lists of the plurality of normal objects to the storage server as the respective access controls of the plurality of index objects a list to minimize the chance that any change in any one of the plurality of normal objects affects the correctness of the migration of the user data; and In a data phase subsequent to the indexing phase of the plurality of phases, the index object-based easy storage service migration management module triggers one or more migration agents from the remote easy storage service compatible server Migrating the respective object data of a set of normal objects in the plurality of normal objects to the storage device layer of the storage server as respective replacements of a set of index objects in the plurality of index objects to complete the This migration of user data. 如申請專利範圍第16項所述之主裝置,其另包含有: 一機殼,用來安裝該主裝置的多個組件以及該至少一儲存裝置,其中該主裝置的該多個組件包含有該處理電路。The main device as described in item 16 of the claimed scope further includes: A casing is used to install a plurality of components of the main device and the at least one storage device, wherein the plurality of components of the main device include the processing circuit. 一種儲存伺服器,包含有: 一主裝置,用來控制該儲存伺服器的操作,該主裝置包含有: 一處理電路,用來控制該主裝置以進行在該儲存伺服器中的基於索引物件的簡易儲存服務遷移管理;以及 一儲存裝置層,包含有: 至少一儲存裝置,耦接至該主裝置,用來為該儲存伺服器儲存資訊; 其中: 因應自一遠端簡易儲存服務相容伺服器遷移該儲存伺服器的一使用者的一使用者資料至該儲存伺服器的一要求,於該使用者資料之一遷移的多個階段中的一索引階段中,運行在該處理電路上的多個程式模組中的一基於索引物件的簡易儲存服務遷移管理模組創建並儲存多個索引物件至該儲存裝置層,以作為在該儲存伺服器中的該使用者資料的多個常態物件的各自的代表,並且將該多個常態物件的各自的存取控制列表遷移至該儲存伺服器,以作為該多個索引物件的各自的存取控制列表,以最小化該多個常態物件中任一常態物件的任一改變影響該使用者資料之該遷移的正確性的機率;以及 於該多個階段中的該索引階段之後的一資料階段中,該基於索引物件的簡易儲存服務遷移管理模組觸發一個或多個遷移代理程式,以自該遠端簡易儲存服務相容伺服器遷移該多個常態物件中的一組常態物件的各自的物件資料至該儲存伺服器的該儲存裝置層,以作為在該多個索引物件中的一組索引物件的各自的替換,以完成該使用者資料之該遷移。A storage server, including: A main device for controlling the operation of the storage server, the main device includes: a processing circuit for controlling the host device for easy storage service migration management based on index objects in the storage server; and A storage device layer, including: at least one storage device, coupled to the host device, for storing information for the storage server; in: In response to a request to migrate a user data of a user of the storage server to the storage server from a remote simple storage service compatible server, in one of multiple stages of a migration of the user data In the indexing phase, a simple storage service migration management module based on indexing objects among a plurality of program modules running on the processing circuit creates and stores a plurality of indexing objects to the storage device layer as the storage server the respective representatives of the plurality of normal objects in the user data, and migrate the respective access control lists of the plurality of normal objects to the storage server as the respective access controls of the plurality of index objects a list to minimize the chance that any change in any one of the plurality of normal objects affects the correctness of the migration of the user data; and In a data phase subsequent to the indexing phase of the plurality of phases, the index object-based easy storage service migration management module triggers one or more migration agents from the remote easy storage service compatible server Migrating the respective object data of a set of normal objects in the plurality of normal objects to the storage device layer of the storage server as respective replacements of a set of index objects in the plurality of index objects to complete the This migration of user data.
TW110115045A 2020-04-29 2021-04-27 Method for performing simple storage service seamless migration using index objects, host device, and storage server TWI769796B (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 US11516287B2 (en) 2020-04-29 2021-02-04 Method and apparatus for performing simple storage service seamless migration using index objects
US17/167,095 2021-02-04

Publications (2)

Publication Number Publication Date
TW202141289A TW202141289A (en) 2021-11-01
TWI769796B true TWI769796B (en) 2022-07-01

Family

ID=78161177

Family Applications (2)

Application Number Title Priority Date Filing Date
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
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

Family Applications Before (1)

Application Number Title Priority Date Filing Date
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

Country Status (2)

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

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW202006551A (en) * 2018-07-09 2020-02-01 慧榮科技股份有限公司 Apparatus and method and computer program product for controlling data access

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
US10884662B2 (en) * 2018-08-06 2021-01-05 Silicon Motion, Inc. Method for performing storage control in a storage server, associated memory device and memory controller thereof, and associated storage server
CN111522499B (en) * 2019-02-01 2023-08-08 香港商希瑞科技股份有限公司 Operation data reading device and reading method thereof
CN110196851A (en) * 2019-05-09 2019-09-03 腾讯科技(深圳)有限公司 A kind of date storage method, device, equipment and storage medium

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW202006551A (en) * 2018-07-09 2020-02-01 慧榮科技股份有限公司 Apparatus and method and computer program product for controlling data access
TWI685743B (en) * 2018-07-09 2020-02-21 慧榮科技股份有限公司 Apparatus and method and computer program product for controlling data access

Also Published As

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

Similar Documents

Publication Publication Date Title
TWI782487B (en) Method for performing simple storage service seamless migration using index objects, host device, and storage server
JP4809040B2 (en) Storage apparatus and snapshot restore method
JP5007350B2 (en) Apparatus and method for hardware-based file system
US9996421B2 (en) Data storage method, data storage apparatus, and storage device
CN106446159B (en) A kind of method of storage file, the first virtual machine and name node
WO2019148841A1 (en) Distributed storage system, data processing method and storage node
CN109407975B (en) Data writing method, computing node and distributed storage system
US11516287B2 (en) Method and apparatus for performing simple storage service seamless migration using index objects
JP5556025B2 (en) Storage system
JP2004334481A (en) Virtualized information management apparatus
JP6033420B2 (en) Storage system and storage system control method
TWI769796B (en) Method for performing simple storage service seamless migration using index objects, host device, and storage server
US11947419B2 (en) Storage device with data deduplication, operation method of storage device, and operation method of storage server
KR101589122B1 (en) Method and System for recovery of iSCSI storage system used network distributed file system
US20240143620A1 (en) Object access based on tracking of objects and replication policies
JP6589500B2 (en) Information processing terminal, shared file system, shared file method, and shared file program
JP2015069246A (en) Computer system including virtual file system
US20170308542A1 (en) File system configuration data storage