# US 10,372,384 B2 · Method and system for managing storage system using first and second communication areas

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

- Number: US 10,372,384 B2
- Document ID: US10372384B2
- Status: Granted
- Kind: B2
- Application number: 15/630,863
- Filed: 2017-06-22
- Published: 2017-12-28
- Granted: 2019-08-06
- Earliest claimed: 2016-06-22
- Assignees: EMC IP Holding Company LLC
- Applicants: EMC IP Holding Company LLC
- Inventors: Yousheng Liu; Jamin Jianbin Kang; Xinlei Xu; Ruiyong Jia; Jian Gao; Lifeng Yang
- Web page: https://patentgrep.com/patent/US10372384B2

## CPC

- G06F 3/0689: {Disk arrays, e.g. RAID, JBOD}
- G06F 3/0614: {Improving the reliability of storage systems}
- G06F 3/0617: {in relation to availability}
- G06F 3/0632: {by initialisation or re-initialisation of storage systems}
- G06F 3/0655: {Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices}
- G06F 3/0658: {Controller construction arrangements}
- G06F 9/526: {Mutual exclusion algorithms}
- G06F 9/544: {Buffers; Shared memory; Pipes}
- G06F 11/0757: {by exceeding a time limit, i.e. time-out, e.g. watchdogs}
- G06F 11/1076: {Parity data used in redundant arrays of independent storages, e.g. in RAID systems}
- G06F 11/1662: {the resynchronized component or unit being a persistent storage device (re-synchronization of failed mirror storage G06F11/2082; rebuild or reconstruction of parity RAID storage G06F11/1008)}
- G06F 11/2089: {Redundant storage control functionality}
- G06F 13/3625: {using a time dependent access}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Embodiments of the present invention provide a method and a system for managing a storage system. In one embodiment of the present invention, there is provided a method for managing a storage system, where the storage system comprises a first controller, a second controller, a first communication area as well as a second communication area. The method comprising: with respect to a storage device in the storage system, in response to the first controller successfully accessing the storage device, writing to the first communication area a first state that indicates a state relationship between the first controller and the storage device, where the first communication area is readable and writable to the first controller and readable to the second controller, reading from the second communication area a second state that indicates a state relationship between the second controller and the storage device, where the second communication area is readable to the first controller and readable and writable to the second controller; and in response to the second state indicating that the second controller successfully accesses the storage device, initializing the storage system. In one embodiment of the present invention, there is further provided a corresponding system and apparatus.

## Claims

### Claim 1

A method for managing a storage system, the storage system comprising a first controller, a second controller, and a plurality of storage devices configured as a redundant array of independent disks (RAID), the method comprising: with respect to a storage device in the storage system,
in response to the first controller successfully accessing the storage device, writing to a first communication area a first state that indicates a state relationship between the first controller and the storage device, the first communication area being deployed across the RAID such that state data including the first state is recoverable in the event of failure of one of the storage devices, the first communication area being readable and writable to the first controller and readable to the second controller;
reading from a second communication area a second state that indicates a state relationship between the second controller and the storage device, the second communication area being deployed across the RAID such that the state data including the second state is recoverable in the event of failure of one of the storage devices, the second communication area being readable to the first controller and readable and writable to the second controller; and
in response to the second state, indicating that the second controller successfully accesses the storage device, initializing the storage system.

### Claim 2 (depends on 1)

The method according to claim 1, further comprising:
in response to the first controller successfully initializing the storage device, setting a first heartbeat timer in the first communication area; and
periodically reading the second state from the second communication area before the first heartbeat timer expires.

### Claim 3 (depends on 2)

The method according to claim 2, further comprising: resetting the first communication area in response to the first heartbeat timer expiring.

### Claim 4 (depends on 1)

The method according to claim 1, wherein the method further comprises: with respect to each of the plurality of storage devices,
initializing the storage system in response to the second state, associated with the each storage device, indicating the second controller successfully accesses the each storage device.

### Claim 5 (depends on 4)

The method according to claim 4, wherein the initializing the storage system comprises:
setting the first state associated with one storage device of the plurality of storage devices as “recovering,” and setting the first state associated with other storage device of the plurality of storage devices as “active;”
recovering, based on data in the other storage device whose first state is “active,” data in the storage device whose first state is “recovering;” and
updating the first state from “recovering” to “active”.

### Claim 6 (depends on 5)

The method according to claim 5, wherein the recovering, based on data in the other storage device whose first state is “active,” data in the storage device whose first state is “recovering” comprises:
locking a storage area across the plurality of storage devices; and
in the storage area, recovering data in the storage device whose first state is “recovering,” based on data in the other storage device whose first state is “active”.

### Claim 7 (depends on 6)

The method according to claim 6, wherein the locking the storage area across the plurality of storage devices comprises:
writing to the first communication area a first lock flag associated, with the storage area;
reading from the second communication area a second lock flag associated with the storage area; and
in response to the second lock flag indicating the storage area is not locked by the second controller, locking the storage area by the first controller.

### Claim 8 (depends on 5)

The method according to claim 5, further comprising: in response to the first state indicating the first controller cannot access an offline storage device among the plurality of storage devices,
in response to the first controller receiving a write request, writing data associated with the write request to an online storage device that is accessible to the first controller; and
writing a notification message to the first communication area to notify the second controller to synchronize data from the online storage device to the offline storage device.

### Claim 9 (depends on 8)

The method according to claim 8, further comprising: in response to the second controller reading the notification message from the first communication area,
calculating parity data based on data associated with the write request and written to the online device: and
writing the parity data to the offline device.

### Claim 10 (depends on 5)

The method according to claim 5, further comprising:
in response to one storage device among the plurality of storage devices failing, adding a backup storage device to the storage system and updating the first state associated with the backup storage device as “recovering:”
recovering data in the storage device whose first state is “recovering,” based on data in the other storage device whose first state is “active;” and
updating the first state associated with the backup storage device from “recovering” to “active”.

### Claim 11

A system for managing a storage system, comprising:
one or more processors;
a memory coupled to at least one processor of the one or more processors:
computer program instructions stored in the memory which, when executed by the at least one processor, cause the system to execute a method for managing a storage system, the method comprising; in a storage system comprising a first controller, a second controller, and a plurality of storage devices configured as a redundant array of independent disks (RAID), with respect to a storage device in the storage system,
in response to the first controller successfully accessing the storage device, writing to a first communication area a first state that indicates a state relationship between the first controller and the storage device, the first communication area being deployed across the RAID such that state data including the first state is recoverable in the event of failure of one of the storage devices, the first communication area being readable and writable to the first controller and readable to the second controller;
reading from a second communication area a second state that indicates a state relationship between the second controller and the storage device, the second communication area being deployed across the RAID such that the state data including the second state is recoverable in the event of failure of one of the storage devices, the second communication area being readable to the first controller and readable and writable to the second controller; and
initializing the storage system in response to the second state indicating that the second controller successfully accesses the storage device.

### Claim 12 (depends on 11)

The system according to claim 11, the method further comprising:
in response to the first controller successfully initializing the storage device, setting a first heartbeat, timer in the first communication area; and
periodically reading the second state from the second communication area before the first heartbeat timer expires.

### Claim 13 (depends on 12)

The system according to claim 12, the method further comprising: resetting the first communication area in response to the first heartbeat timer expiring.

### Claim 14 (depends on 11)

The system according to claim 11, wherein the method further comprises: with respect to each of the plurality of storage devices,
initializing the storage system in response to the second state, associated with the each storage device, indicating the second controller successfully accesses the each storage device.

### Claim 15 (depends on 14)

The system according to claim 14, wherein the initializing the storage system comprises:
setting the first state associated with one storage device of the plurality of storage devices as “recovering,” and setting the first state associated with other storage device of the plurality of storage devices as “active;”
recovering, based on data in the other storage device whose first state is “active,” data in the storage device whose first state is “recovering;” and
updating the first state from “recovering” to “active”.

### Claim 16 (depends on 15)

The system according to claim 15, wherein the recovering, based on data in the other storage device whose first state is “active,” data in the storage device whose first state is “recovering” comprises:
locking a storage area across the plurality of storage devices; and
in the storage area, recovering data in the storage device whose first state is “recovering,” based on data in the other storage device whose first state is “active”.

### Claim 17 (depends on 16)

The system according to claim 16, wherein the locking the storage area across the plurality of storage devices comprises:
writing to the first communication area a first lock flag associated with the storage area;
reading from the second communication area a second lock flag associated with the storage area; and
in response to the second lock flag indicating the storage area is not locked by the second controller, locking the storage area by the first controller.

### Claim 18 (depends on 15)

The system according to claim 15, wherein the method further comprises: in response to the first state indicating the first controller cannot access an offline storage device among the plurality of storage devices, in response to the first controller receiving a write request, writing data associated with the write request to an online storage device that is accessible to the first controller; and
writing a notification message to the first communication area to notify the second controller to synchronize data from the online storage device to the offline storage device.

### Claim 19 (depends on 18)

The system according to claim 18, the method further comprising: in response to the second controller reading the notification message from the first communication area,
calculating parity data based on data associated with the write request and written to the online device; and
writing the parity data to the offline device.

### Claim 20 (depends on 15)

The system according to claim 15, the method further comprising:
in response to one storage device among the plurality of storage devices failing, adding a backup storage device to the storage system and updating the first state associated with the backup storage device as “recovering;”
recovering data in the storage device whose first state is “recovering,” based on data in the other storage device whose first state is “active;” and
updating the first state associated with the backup storage device from “recovering” to “active”.
