IP Library Granted Patent US 11,221,790
Granted Patent B2
US 11,221,790 · App. 16/334,658 · Granted Jan 11, 2022

Storage system

Inventor: Tomohiro Yoshihara (Tokyo, JP)
Assignee: HITACHI LTD.
G06F3/0655G06F3/061G06F3/067G06F3/0614G06F3/0679G06F3/0689
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,221,790
App. No.
16/334,658
Granted
Jan 11, 2022
Kind
B2
Abstract

A plurality of storage drives, for managing data. includes: transmitting a first data update command which specifies a first address, and first new data to a first storage drive included in the plurality of storage drives; updating a sequence number of the first address managed in the first storage drive in response to the first data update command; transmitting a first redundant data update command which specifies a second address of old redundant data, data for updating the old redundant data, and the updated sequence number, to a second storage drive which stores the old redundant data associated with the first address and which is included in the plurality of storage drives; updating the old redundant data based on the data for updating the old redundant data; and updating a sequence number of the second address managed in the second storage drive according to the updated sequence number.

Claims (53)

1. A storage system, comprising:

a plurality of storage drives; and

a controller,

wherein the controller receives, from a host, a first write request which specifies a first address and first new data associated with the first write request; and transmits a first data update command which specifies a second address and the first new data to a first storage drive included in the plurality of storage drives,

the first storage drive updates a managed sequence number of the second address in response to the first data update command; and transmits the updated sequence number to the controller,

the controller transmits a first redundant data update command which specifies a third address of old redundant data, data for updating the old redundant data, and the updated sequence number, to a second storage drive which stores the old redundant data associated with the second address and which is included in the plurality of storage drives, and

the second storage drive updates the old redundant data based on the data for updating the old redundant data; and updates the managed sequence number of the third address according to the updated sequence number,

wherein the controller

receives, from the first storage drive, information indicating whether processing of a previous write request for the first address is completed; and

when the processing of the previous write request is not completed, causes the first storage drive to execute processing of the first data update command after completing the processing of the previous write request.

2. The storage system according to claim 1 ,

wherein the first storage drive transmits intermediate redundant data generated based on the first new data and old data of the second address to the controller, in which the data for updating the old redundant data is the intermediate redundant data; and

wherein the second storage drive generates new redundant data based on the old redundant data and the intermediate redundant data.

3. The storage system according to claim 1 ,

wherein the controller determines whether the data at the second address matches with the redundant data at the third address based on a comparison result between the sequence number of the second address and the sequence number of the third address; and

updates the redundant data so as to match the data at the second address when the data at the second address and the redundant data at the third address do not match.

4. The storage system according to claim 1 ,

wherein the controller returns a completion response to the first write request to the host after transmitting the data for updating the old redundant data to the second storage drive.

5. The storage system according to claim 1 ,

wherein, in order to complete the processing of the previous write request, the controller

receives the sequence number of the second address from the first storage drive;

receives the sequence number of the third address from the second storage drive;

compares the sequence number of the second address with the sequence number of the third address;

causes the first storage drive to determine new data of a previous data update command at the second address by causing the second storage drive to execute an update corresponding to a previous redundant data update command at the third address when the comparison result indicates a mismatch; and

causes the first storage drive to determine the new data of the previous data update command at the second address without causing the second storage drive to execute the update at the third address when the comparison result indicates a match.

6. The storage system according to claim 1 ,

wherein the controller transmits the first new data to the second storage drive before transmitting the first redundant data update command; and

returns a completion response to the first write request to the host after transmitting the first new data to the first storage drive and the second storage drive, and before transmitting the first redundant data update command.

7. The storage system according to claim 1 ,

wherein the controller

reads the old redundant data from the third address of the second storage drive; and

generates new redundant data based on the old redundant data and the first new data, in which the data for updating the old redundant data is the new redundant data.

8. A storage system, comprising:

a plurality of storage drives; and

a controller,

wherein the controller receives, from a host, a first write request which specifies a first address and first new data associated with the first write request;

and transmits a first data update command which specifies a second address and the first new data to a first storage drive included in the plurality of storage drives,

the first storage drive updates a managed sequence number of the second address in response to the first data update command; and transmits the updated sequence number to the controller,

the controller transmits a first redundant data update command which specifies a third address of old redundant data, data for updating the old redundant data, and the updated sequence number, to a second storage drive which stores the old redundant data associated with the second address and which is included in the plurality of storage drives, and

the second storage drive updates the old redundant data based on the data for updating the old redundant data; and updates the managed sequence number of the third address according to the updated sequence number,

wherein the first storage drive transmits intermediate redundant data venerated based on the first new data and old data of the second address to the controller, in which the data for updating the old redundant data is the intermediate redundant data,

wherein the second storage drive generates new redundant data based on the old redundant data and the intermediate redundant data, and

wherein the first storage drive returns the intermediate redundant data and the updated sequence number to the controller in response to the first data update command.

9. A storage system, comprising:

a plurality of storage drives; and

a controller,

wherein the controller receives, from a host, a first write request which specifies a first address and first new data associated with the first write request; and transmits a first data update command which specifies a second address and the first new data to a first storage drive included in the plurality of storage drives,

the first storage drive updates a managed sequence number of the second address in response to the first data update command; and transmits the updated sequence number to the controller,

the controller transmits a first redundant data update command which specifies a third address of old redundant data, data for updating the old redundant data, and the updated sequence number, to a second storage drive which stores the old redundant data associated with the second address and which is included in the plurality of storage drives, and

the second storage drive updates the old redundant data based on the data for updating the old redundant data; and updates the managed sequence number of the third address according to the updated sequence number,

wherein the controller returns a completion response to the first write request to the host after transmitting the data for updating the old redundant data to the second storage drive, and

wherein the controller returns the completion response to the first write request to the host, receives a redundant data update completion notification of the third address from the second storage drive, and then transmits a new data determination command to the first storage drive, and

the first storage drive determines the first new data as data stored in the second address in response to the new data determination command.

Assignments (3)
COMPANY SPLIT Recorded Aug 20, 2024
From: HITACHI, LTD.
To: HITACHI VANTARA, LTD.
Reel/Frame 069518/0761 →
CORRECTIVE ASSIGNMENT TO CORRECT THE RECEIVING PARTY NAME PREVIOUSLY RECORDED AT REEL: 048670 FRAME: 0770. ASSIGNOR(S) HEREBY CONFIRMS THE ASSINGMENT. Recorded Nov 3, 2021
From: YOSHIHARA, TOMOHIRO
To: HITACHI, LTD.
Reel/Frame 058790/0732 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 22, 2019
From: YOSHIHARA, TOMOHIRO
To: HITACHI LTD.
Reel/Frame 048670/0770 →
Continuity (1)
Related Publication 20210286547A1 · Sep 16, 2021