# US 2021/0344752 A1 · Method and apparatus for performing simple storage service seamless migration using index objects

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2021/0344752 A1
- Document ID: US20210344752A1
- Status: Published application
- Kind: A1
- Application number: 17/167,096
- Filed: 2021-02-04
- Published: 2021-11-04
- Earliest claimed: 2020-04-29
- Assignees: Silicon Motion Technology (Hong Kong) Limited
- Applicants: Silicon Motion Technology (Hong Kong) Limited
- Inventors: Chi-En Chang; Kuan-Kai Chiu
- Web page: https://patentgrep.com/patent/US20210344752A1

## CPC

- G06F 21/6218: {to a system of files or objects, e.g. local or distributed file system or database}
- H04L 67/1095: Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
- G06F 3/061: {Improving I/O performance}
- G06F 3/0619: {in relation to data integrity, e.g. data losses, bit errors}
- G06F 3/0622: {in relation to access}
- G06F 3/0647: {Migration mechanisms}
- G06F 3/0659: {Command handling arrangements, e.g. command buffers, queues, command scheduling}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F 16/215: Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
- G06F 16/2228: {Indexing structures}
- G06F 21/78: to assure secure storage of data (address-based protection against unauthorised use of memory G06F12/14; record carriers for use with machines and with at least a part designed to carry digital markings G06K19/00)
- H04L 63/101: {Access control lists [ACL]}
- H04L 67/02: based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L 67/1097: for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
- G06F 2221/2141: Access rights, e.g. capability lists, access control lists, access tables, access matrices
- H04L 63/0281: {Proxies}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## 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 to be respective representatives of multiple normal objects of the user data at the storage server, and migrate respective Access Control Lists (ACLs) of the multiple normal objects to the storage server to be respective ACLs of the multiple index objects; 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.

## Claims

### Claim 1

A method for performing Simple Storage Service (S3) seamless migration using index objects, the method being applied to a storage server, the method comprising:
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 among multiple stages of the migration of the user data, 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 to be respective representatives of multiple normal objects of the user data at the storage server, and migrate respective Access Control Lists (ACLs) of the multiple normal objects to the storage server to be respective ACLs of the multiple index objects, for minimizing probability of any change of any normal object of the multiple normal objects affecting correctness of the migration of the user data, wherein the storage server comprises the host device and the storage device layer, the storage device layer comprises at least one storage device that is coupled to the host device, the host device is arranged to control operations of the storage server, and said at least one storage device is arranged to store information for the storage server; and
during a data stage after the index stage among the multiple stages, utilizing the index-object-based S3 migration management module to trigger one or more migration agents to migrate respective object data of a set of normal objects among the multiple normal objects from the remote S3-compatible server into the storage device layer of the storage server as respective replacements of a set of index objects among the multiple index objects, for completing the migration of the user data;
wherein under control of the index-object-based S3 migration management module, the storage server is configured to operate according at least one working flow for handling any other request.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
in response to the request of migrating the user data from the remote S3-compatible server into the storage server, during a set-up stage before the index stage among the multiple stages, utilizing the index-object-based S3 migration management module to perform pre-processing of the migration of the user data.

### Claim 3 (depends on 2)

The method of claim 2, wherein the pre-processing comprises switching at least one endpoint for accessing the user data from at least one cluster of the remote S3-compatible server to at least one cluster of the storage server.

### Claim 4 (depends on 1)

The method of claim 1, wherein the respective ACLs of the multiple normal objects are migrated to the storage server to be the respective ACLs of the multiple index objects, as if the multiple index objects are the multiple normal objects, for minimizing probability of any change of any normal object of the multiple normal objects affecting correctness of the migration of the user data.

### Claim 5 (depends on 1)

The method of claim 1, wherein among the at least one working flow for handling any other request, a working flow for handling one or more object-data-writing-related requests during the migration of the user data comprises:
receiving an object-data-writing-related request among the one or more object-data-writing-related requests from the user;
in response to the object-data-writing-related request, checking whether a bucket corresponding to the object-data-writing-related request among at least one bucket in the storage device layer is currently handled in the index stage, wherein the at least one bucket represents at least one container for objects;
in response to the bucket being currently handled in the index stage, controlling the storage server to proxy the object-data-writing-related request to the remote S3-compatible server;
checking whether the object-data-writing-related request succeeds without any error, to generate a checking result, wherein a response corresponding to the object-data-writing-related request is received from the remote S3-compatible server, and is utilized for determining the checking result;
in response to the checking result representing that the object-data-writing-related request succeeds without any error, checking whether a target object of the object-data-writing-related request exists; and
in response to existence of the target object, checking whether an ACL of the target object is migrated, for selectively performing at least one normal action according to the object-data-writing-related request, having no need to proxy the object-data-writing-related request to the remote S3-compatible server.

### Claim 6 (depends on 5)

The method of claim 5, wherein the at least one normal action comprises:
controlling the storage server to selectively write object data carried by the object-data-writing-related request as object data of the target object according to whether an associated ACL check passes, wherein if the associated ACL check passes, the storage server writes the object data carried by the object-data-writing-related request as the object data of the target object, otherwise, the storage server prevents from writing the object data carried by the object-data-writing-related request as the object data of the target object.

### Claim 7 (depends on 5)

The method of claim 5, wherein controlling the storage server to proxy the object-data-writing-related request to the remote S3-compatible server further comprises:
controlling the storage server to proxy the object-data-writing-related request to the remote S3-compatible server, to make the remote S3-compatible server check an ACL of the target object, for generating the response corresponding to the object-data-writing-related request.

### Claim 8 (depends on 5)

The method of claim 5, wherein the object-data-writing-related request represents any of a Put-Object request, a Create-Multipart-Upload request, and a Complete-Multipart-Upload request.

### Claim 9 (depends on 5)

The method of claim 5, wherein at least one portion of the working flow for handling the one or more object-data-writing-related requests during the migration of the user data is executed multiple times; at least one step comprising at least one checking operation is executed multiple times to generate multiple checking results, respectively, to trigger execution of subsequent steps, respectively; and the working flow for handling the one or more object-data-writing-related requests during the migration of the user data further comprises:
in response to another checking result representing that the object-data-writing-related request does not succeed without any error, controlling the storage server to proxy an error response corresponding to the object-data-writing-related request to the user.

### Claim 10 (depends on 1)

The method of claim 1, wherein at least one portion of the working flow for handling the one or more object-data-writing-related requests during the migration of the user data is executed multiple times; and at least one step comprising at least one checking operation is executed multiple times to generate multiple checking results, respectively, to trigger execution of subsequent steps, respectively.

### Claim 11 (depends on 1)

The method of claim 1, wherein a working flow for handling one or more Put-Object-ACL requests during the migration of the user data comprises:
receiving a Put-Object-ACL request among the one or more Put-Object-ACL requests from the user;
in response to the Put-Object-ACL request, checking whether a bucket corresponding to the Put-Object-ACL request among at least one bucket in the storage device layer is currently handled in the index stage, wherein the at least one bucket represents at least one container for objects;
in response to the bucket being currently handled in the index stage, controlling the storage server to proxy the Put-Object-ACL request to the remote S3-compatible server;
checking whether the Put-Object-ACL request succeeds without any error, to generate a checking result, wherein a response corresponding to the Put-Object-ACL request is received from the remote S3-compatible server, and is utilized for determining the checking result; and
in response to the checking result representing that the Put-Object-ACL request succeeds without any error, controlling the storage server to perform at least one normal action according to the Put-Object-ACL request, having no need to proxy the Put-Object-ACL request to the remote S3-compatible server.

### Claim 12 (depends on 11)

The method of claim 11, wherein the at least one normal action comprises:
controlling the storage server to selectively update an old ACL of the target object with a new ACL carried by the Put-Object-ACL request according to whether an associated ACL check passes, wherein if the associated ACL check passes, the storage server updates the old ACL of the target object with the new ACL carried by the Put-Object-ACL request, otherwise, the storage server prevents from updating the old ACL of the target object with the new ACL carried by the Put-Object-ACL request.

### Claim 13 (depends on 1)

The method of claim 1, wherein a working flow for handling one or more Delete-Object requests during the migration of the user data comprises:
receiving a Delete-Object request among the one or more Delete-Object requests from the user;
in response to the Delete-Object request, checking whether a bucket corresponding to the Delete-Object request among at least one bucket in the storage device layer is currently handled in the index stage, wherein the at least one bucket represents at least one container for objects;
in response to the bucket being currently handled in the index stage, controlling the storage server to proxy the Delete-Object request to the remote S3-compatible server;
checking whether the Delete-Object request succeeds without any error, to generate a checking result, wherein a response corresponding to the Delete-Object request is received from the remote S3-compatible server, and is utilized for determining the checking result; and
in response to the checking result representing that the Delete-Object request succeeds without any error, controlling the storage server to perform at least one normal action according to the Delete-Object request, having no need to proxy the Delete-Object request to the remote S3-compatible server.

### Claim 14 (depends on 13)

The method of claim 13, wherein the at least one normal action comprises:
controlling the storage server to selectively delete the target object at least according to whether an associated ACL check passes.

### Claim 15 (depends on 14)

The method of claim 14, wherein controlling the storage server to selectively delete the target object at least according to whether the associated ACL check passes further comprises:
controlling the storage server to selectively delete the target object according to whether both of a first condition and a second condition are satisfied, wherein the first condition represents that the associated ACL check passes, and the second condition represents that the target object exists, wherein if both of the first condition and the second condition are satisfied, the storage server deletes the target object, otherwise, the storage server prevents from deleting the target object.

### Claim 16 (depends on 1)

The method of claim 1, wherein the storage server is implemented as a private cloud, and the remote S3-compatible server is implemented as a public cloud or another private cloud.

### Claim 17 (depends on 1)

The method of claim 1, wherein the any other request is asking for making at least one change to the user data.

### Claim 18

A host device, comprising:
a processing circuit, arranged to control the host device to perform index-object-based S3 migration management in a storage server, wherein the storage server comprises the host device and a storage device layer, the storage device layer comprises at least one storage device that is coupled to the host device, the host device is arranged to control operations of the storage server, and said at least one storage device is arranged to store information for the storage server, wherein:
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 among multiple stages of the migration of the user data, an index-object-based S3 migration management module among multiple program modules running on the processing circuit creates and stores multiple index objects into the storage device layer to be respective representatives of multiple normal objects of the user data at the storage server, and migrates respective Access Control Lists (ACLs) of the multiple normal objects to the storage server to be respective ACLs of the multiple index objects, for minimizing probability of any change of any normal object of the multiple normal objects affecting correctness of the migration of the user data; and
during a data stage after the index stage among the multiple stages, the index-object-based S3 migration management module triggers one or more migration agents to migrate respective object data of a set of normal objects among the multiple normal objects from the remote S3-compatible server into the storage device layer of the storage server as respective replacements of a set of index objects among the multiple index objects, for completing the migration of the user data;
wherein under control of the index-object-based S3 migration management module, the storage server is configured to operate according at least one working flow for handling any other request.

### Claim 19 (depends on 18)

The host device of claim 18, further comprising:
a casing, arranged to install multiple components of the host device and said at least one storage device, wherein the multiple components of the host device comprise the processing circuit.

### Claim 20

A storage server, comprising:
a host device, arranged to control operations of the storage server, the host device comprising:
a processing circuit, arranged to control the host device to perform index-object-based S3 migration management in the storage server; and
a storage device layer, comprising:
at least one storage device, coupled to the host device, arranged to store information for the storage server;
wherein:
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 among multiple stages of the migration of the user data, an index-object-based S3 migration management module among multiple program modules running on the processing circuit creates and stores multiple index objects into the storage device layer to be respective representatives of multiple normal objects of the user data at the storage server, and migrates respective Access Control Lists (ACLs) of the multiple normal objects to the storage server to be respective ACLs of the multiple index objects, for minimizing probability of any change of any normal object of the multiple normal objects affecting correctness of the migration of the user data; and
during a data stage after the index stage among the multiple stages, the index-object-based S3 migration management module triggers one or more migration agents to migrate respective object data of a set of normal objects among the multiple normal objects from the remote S3-compatible server into the storage device layer of the storage server as respective replacements of a set of index objects among the multiple index objects, for completing the migration of the user data;
wherein under control of the index-object-based S3 migration management module, the storage server is configured to operate according at least one working flow for handling any other request.
