JP6924671B2 - Data write request processing method and storage array - Google Patents

Data write request processing method and storage array Download PDF

Info

Publication number
JP6924671B2
JP6924671B2 JP2017202523A JP2017202523A JP6924671B2 JP 6924671 B2 JP6924671 B2 JP 6924671B2 JP 2017202523 A JP2017202523 A JP 2017202523A JP 2017202523 A JP2017202523 A JP 2017202523A JP 6924671 B2 JP6924671 B2 JP 6924671B2
Authority
JP
Japan
Prior art keywords
data
cache
controller
address
switching device
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
JP2017202523A
Other languages
Japanese (ja)
Other versions
JP2018010698A (en
Inventor
巍 ▲張▼
巍 ▲張▼
先▲紅▼ ▲呂▼
先▲紅▼ ▲呂▼
明昌 魏
明昌 魏
▲陳▼怡 ▲張▼
▲陳▼怡 ▲張▼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 JP2016520021A external-priority patent/JP6231669B2/en
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to JP2017202523A priority Critical patent/JP6924671B2/en
Publication of JP2018010698A publication Critical patent/JP2018010698A/en
Application granted granted Critical
Publication of JP6924671B2 publication Critical patent/JP6924671B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は、情報技術の分野に関し、特に、データ書込み要求処理方法及びストレージアレイに関する。 The present invention relates to the field of information technology, and more particularly to data write request processing methods and storage arrays.

ストレージアレイは通常、1つのエンジンを含み、1つのエンジンが2つのコントローラを含み、これは通常、二重コントローラ構造と呼ばれる。図1に示すように、ストレージアレイは、入出力マネージャAと、入出力マネージャBと、コントローラAと、コントローラBとを含む。入出力マネージャAはコントローラAに接続され、入出力マネージャBはコントローラBに接続される。コントローラAは、周辺コンポーネント相互接続エクスプレス(Peripheral Component Interconnect express,PCIe)スイッチAと、中央処理装置(Central Processing Unit,CPU)Aと、メモリAとを備え;コントローラBは、周辺コンポーネント相互接続エクスプレス(Peripheral Component Interconnect express,PCIe)スイッチBと、中央処理装置(Central Processing Unit,CPU)Bと、メモリBとを備える。PCIeスイッチAはPCIeスイッチBに接続される。図1に示すストレージアレイにおいて、入出力マネージャAはデータ書込み要求を受信する。データ書込み要求のターゲット論理ユニット(Logical Unit,LU)は、コントローラAにホーミングされる。すなわち、コントローラAは、データ書込み要求において保持されるデータをターゲットLUに書き込む。入出力マネージャAは、コントローラAのPCIeスイッチAを介してCPU Aにデータ書込み要求を送信し、CPU Aは、データ書込み要求において保持されるデータ及びメタデータをメモリAに書き込む。CPU Aは、メモリA内のデータ及びメタデータをストレージアレイの設定に従ってハードディスクに書き込む。 A storage array typically includes one engine, one engine containing two controllers, which is commonly referred to as a dual controller structure. As shown in FIG. 1, the storage array includes an input / output manager A, an input / output manager B, a controller A, and a controller B. The I / O manager A is connected to the controller A, and the I / O manager B is connected to the controller B. The controller A includes a peripheral component interconnect express (PCIe) switch A, a central processing unit (CPU) A, and a memory A; the controller B is a peripheral component interconnect express (PCIe). It includes a Peripheral Controller Input Express (PCIe) switch B, a central processing unit (CPU) B, and a memory B. The PCIe switch A is connected to the PCIe switch B. In the storage array shown in FIG. 1, the input / output manager A receives a data write request. The target logical unit (LU) of the data write request is homing to the controller A. That is, the controller A writes the data held in the data write request to the target LU. The input / output manager A transmits a data write request to the CPU A via the PCIe switch A of the controller A, and the CPU A writes the data and the metadata held in the data write request to the memory A. The CPU A writes the data and metadata in the memory A to the hard disk according to the settings of the storage array.

ストレージアレイにおける上記のデータ書込みプロセスは、コントローラのCPU計算能力及びコントローラのメモリリソースを消費し、ストレージアレイの性能に深刻に影響を及ぼす。 The above data writing process in the storage array consumes the CPU computing power of the controller and the memory resources of the controller, and seriously affects the performance of the storage array.

本発明の実施形態は、データ書込み要求処理方法及びストレージアレイを提供する。 Embodiments of the present invention provide a data write request processing method and a storage array.

第1の態様によれば、本発明の一実施形態は、データ書込み要求処理方法を提供し、本方法は、ストレージアレイに適用され、ストレージアレイは、入出力マネージャと、スイッチングデバイスと、第1のコントローラと、第1のキャッシュデバイスとを備え、入出力マネージャはスイッチングデバイスに接続され;第1のコントローラはスイッチングデバイスに接続され;第1のキャッシュデバイスはスイッチングデバイスに接続され;スイッチングデバイスはストレージアレイ内のハードディスクに接続され;本方法は:
入出力マネージャによって、データ書込み要求を、スイッチングデバイスを介して第1のコントローラに送信するステップと;
第1のコントローラによって、データ書込み要求に従って、第1のキャッシュデバイスにおける書き込まれるデータに対し割り当てられる第1のキャッシュアドレスを取得するステップと;
第1のコントローラによって、第1のキャッシュデバイスの識別子及び第1のキャッシュアドレスを、スイッチングデバイスを介して入出力マネージャに送信するステップと;
入出力マネージャによって、第1のキャッシュデバイスの識別子及び第1のキャッシュアドレスに従って、書き込まれるデータを、スイッチングデバイスを介して第1のキャッシュアドレスに書き込むステップと;
を含む。
According to a first aspect, one embodiment of the present invention provides a data write request processing method, the method being applied to a storage array, the storage array being the input / output manager, the switching device, and the first. The controller and the first cache device are provided, the I / O manager is connected to the switching device; the first controller is connected to the switching device; the first cache device is connected to the switching device; the switching device is the storage. Connected to the hard disk in the array;
With the step of sending a data write request to the first controller via the switching device by the I / O manager;
With the step of acquiring the first cache address assigned to the data written in the first cache device according to the data write request by the first controller;
The step of transmitting the identifier of the first cache device and the first cache address to the input / output manager via the switching device by the first controller;
With the step of writing the data written by the input / output manager to the first cache address via the switching device according to the identifier of the first cache device and the first cache address;
including.

本発明の第1の態様を参照して、第1の可能な実施方式において、データ書込み要求は、書き込まれるデータのアドレスを保持し;本方法は:
第1のキャッシュデバイスによって送信される、書き込まれるデータの書込みに成功したことを示す応答を、入出力マネージャによって受信するステップと;
入出力マネージャによって、スイッチングデバイスを介して、第1のコントローラに、書き込まれるデータが第1のキャッシュアドレスに書き込まれることを通知するステップと;
第1のコントローラによって、通知に従って、書き込まれるデータのアドレスと、第1のキャッシュデバイスの識別子と、第1のキャッシュアドレスとの間の対応関係を確立するステップと;
を更に含む。
With reference to the first aspect of the invention, in the first possible embodiment, the data write request retains the address of the data to be written;
With the step of receiving the response by the I / O manager indicating that the data to be written was successfully written, which is sent by the first cache device;
The step of notifying the first controller that the data to be written is written to the first cache address by the input / output manager via the switching device;
The step of establishing a correspondence between the address of the data written by the first controller, the identifier of the first cache device, and the first cache address according to the notification;
Is further included.

本発明の第1の態様を参照して、第2の可能な実施方式において、ストレージアレイは第2のキャッシュデバイスを更に備え、第2のキャッシュデバイスはスイッチングデバイスに接続され、本方法は:
第1のコントローラによって、データ書込み要求に従って、第2のキャッシュデバイスにおける書き込まれるデータに対し割り当てられる第2のキャッシュアドレスを取得するステップと;
第1のコントローラによって、第2のキャッシュデバイスの識別子及び第2のキャッシュアドレスを、スイッチングデバイスを介して入出力マネージャに送信するステップと;
入出力マネージャによって、第2のキャッシュデバイスの識別子及び第2のキャッシュアドレスに従って、書き込まれるデータを、スイッチングデバイスを介して第2のキャッシュアドレスに書き込むステップと;
を更に含む。
With reference to the first aspect of the invention, in a second possible embodiment, the storage array further comprises a second cache device, the second cache device is connected to a switching device, the method:
With the step of acquiring the second cache address assigned to the data written in the second cache device according to the data write request by the first controller;
The step of transmitting the identifier of the second cache device and the second cache address to the input / output manager via the switching device by the first controller;
With the step of writing the data written by the input / output manager to the second cache address via the switching device according to the identifier of the second cache device and the second cache address;
Is further included.

本発明の第1の態様を参照して、第3の可能な実施方式において、ストレージアレイは第2のキャッシュデバイスを更に備え、第2のキャッシュデバイスはスイッチングデバイスに接続され、本方法は:
第1のコントローラによって、データ書込み要求に従って、第2のキャッシュデバイスにおける書き込まれるデータに対し割り当てられる第2のキャッシュアドレスを取得するステップと;
第1のコントローラによって、スイッチングデバイスを介してデータ書込み命令を第1のキャッシュデバイスに送信するステップであって、データ書込み命令は、第2のキャッシュデバイスの識別子及び第2のキャッシュアドレスを保持する、ステップと;
第1のキャッシュデバイスによって、データ書込み命令に従って、書き込まれるデータを、スイッチングデバイスを介して第2のキャッシュアドレスに書き込むステップと;
を更に含む。
With reference to the first aspect of the invention, in a third possible embodiment, the storage array further comprises a second cache device, the second cache device is connected to a switching device, the method:
With the step of acquiring the second cache address assigned to the data written in the second cache device according to the data write request by the first controller;
A step of transmitting a data write instruction to the first cache device via the switching device by the first controller, wherein the data write instruction holds the identifier of the second cache device and the second cache address. With steps;
With the step of writing the data written by the first cache device to the second cache address via the switching device according to the data write instruction;
Is further included.

本発明の第1の態様を参照して、第4の可能な実施方式において、データ書込み要求は、書き込まれるデータのアドレスを保持し、書き込まれるデータのアドレスは、書き込まれるデータが位置するターゲット論理ユニットLUの識別子と、書き込まれるデータの論理ブロックアドレスと、書き込まれるデータの長さとを含み;入出力マネージャによって、データ書込み要求を、スイッチングデバイスを介して第1のコントローラに送信するステップは:
入出力マネージャによって、ターゲットLUの識別子に従って、入出力マネージャに記憶されているターゲットLUとコントローラとの間のホーミング関係を問い合わせ、第1のコントローラがターゲットLUのホームコントローラであると判断するステップと;
入出力マネージャによって、データ書込み要求を、スイッチングデバイスを介して第1のコントローラに送信するステップと;
を特に含む。
With reference to the first aspect of the present invention, in a fourth possible embodiment, the data write request holds the address of the data to be written, and the address of the data to be written is the target logic in which the data to be written is located. The unit LU identifier, the logical block address of the data to be written, and the length of the data to be written are included; the step of sending a data write request by the I / O manager to the first controller via the switching device is:
The step of inquiring the homing relationship between the target LU and the controller stored in the I / O manager by the I / O manager according to the identifier of the target LU, and determining that the first controller is the home controller of the target LU;
With the step of sending a data write request to the first controller via the switching device by the I / O manager;
In particular.

本発明の第1の態様を参照して、第5の可能な実施方式において、データ書込み要求は、書き込まれるデータのアドレスを保持し、書き込まれるデータのアドレスは、書き込まれるデータが位置するターゲット論理ユニットLUの識別子と、書き込まれるデータの論理ブロックアドレスと、書き込まれるデータの長さとを含み;ストレージアレイは第2のコントローラを更に備え、第2のコントローラはスイッチングデバイスに接続され;入出力マネージャによって、データ書込み要求を、スイッチングデバイスを介して第1のコントローラに送信するステップは:
入出力マネージャによって、データ書込み要求を、スイッチングデバイスを介して第2のコントローラに送信するステップと;
第2のコントローラによって、ターゲットLUの識別子に従って、第1のコントローラがターゲットLUのホームコントローラであると判断するステップと;
第2のコントローラによって、データ書込み要求を、スイッチングデバイスを介して第1のコントローラに送信するステップと;
を特に含む。
With reference to the first aspect of the present invention, in a fifth possible embodiment, the data write request holds the address of the data to be written, and the address of the data to be written is the target logic in which the data to be written is located. Includes the identifier of the unit LU, the logical block address of the data to be written, and the length of the data to be written; the storage array further comprises a second controller, which is connected to the switching device; by the I / O manager. , The step of sending a data write request to the first controller via the switching device is:
With the step of sending a data write request to the second controller via the switching device by the I / O manager;
The step of determining that the first controller is the home controller of the target LU according to the identifier of the target LU by the second controller;
With the step of transmitting a data write request to the first controller via the switching device by the second controller;
In particular.

第2の態様によれば、本発明の一実施形態はストレージアレイを提供し、ストレージアレイは、入出力マネージャと、スイッチングデバイスと、第1のコントローラと、第1のキャッシュデバイスとを備え、入出力マネージャはスイッチングデバイスに接続され;第1のコントローラはスイッチングデバイスに接続され;第1のキャッシュデバイスはスイッチングデバイスに接続され;スイッチングデバイスはストレージアレイ内のハードディスクに接続され;
入出力マネージャは、データ書込み要求を、スイッチングデバイスを介して第1のコントローラに送信するように構成され;
第1のコントローラは、データ書込み要求に従って、第1のキャッシュデバイスにおける書き込まれるデータに対し割り当てられる第1のキャッシュアドレスを取得し、第1のキャッシュデバイスの識別子及び第1のキャッシュアドレスを、スイッチングデバイスを介して入出力マネージャに送信するように構成され;
入出力マネージャは、第1のキャッシュデバイスの識別子及び第1のキャッシュアドレスに従って、書き込まれるデータを、スイッチングデバイスを介して第1のキャッシュアドレスに書き込むように更に構成される。
According to a second aspect, one embodiment of the invention provides a storage array, the storage array comprising an input / output manager, a switching device, a first controller, and a first cache device. The output manager is connected to the switching device; the first controller is connected to the switching device; the first cache device is connected to the switching device; the switching device is connected to the hard disk in the storage array;
The I / O manager is configured to send data write requests through the switching device to the first controller;
The first controller acquires the first cache address assigned to the data written in the first cache device according to the data write request, and sets the identifier of the first cache device and the first cache address as the switching device. It is configured to send to the I / O manager via
The I / O manager is further configured to write the data to be written to the first cache address via the switching device according to the identifier of the first cache device and the first cache address.

本発明の第2の態様を参照して、第1の可能な実施方式において、データ書込み要求は、書き込まれるデータのアドレスを保持し;
入出力マネージャは、第1のキャッシュデバイスによって送信される、書き込まれるデータの書込みに成功したことを示す応答を受信するように更に構成され;
入出力マネージャは、スイッチングデバイスを介して、第1のコントローラに、書き込まれるデータが第1のキャッシュアドレスに書き込まれることを通知するように更に構成され;
第1のコントローラは、通知に従って、書き込まれるデータのアドレスと、第1のキャッシュデバイスの識別子と、第1のキャッシュアドレスとの間の対応関係を確立するように更に構成される。
With reference to the second aspect of the invention, in the first possible embodiment, the data write request retains the address of the data to be written;
The I / O manager is further configured to receive a response sent by the first cache device indicating that the data to be written has been successfully written;
The I / O manager is further configured to notify the first controller via the switching device that the data to be written will be written to the first cache address;
The first controller is further configured to establish a correspondence between the address of the data to be written, the identifier of the first cache device, and the first cache address in accordance with the notification.

本発明の第2の態様を参照して、第2の可能な実施方式において、ストレージアレイは第2のキャッシュデバイスを更に備え、第2のキャッシュデバイスはスイッチングデバイスに接続され;
第1のコントローラは、データ書込み要求に従って、第2のキャッシュデバイスにおける書き込まれるデータに対し割り当てられる第2のキャッシュアドレスを取得するように更に構成され;
第1のコントローラは、第2のキャッシュデバイスの識別子及び第2のキャッシュアドレスを、スイッチングデバイスを介して入出力マネージャに送信するように更に構成され;
入出力マネージャは、第2のキャッシュデバイスの識別子及び第2のキャッシュアドレスに従って、書き込まれるデータを、スイッチングデバイスを介して第2のキャッシュアドレスに書き込むように更に構成される。
With reference to a second aspect of the invention, in a second possible embodiment, the storage array further comprises a second cache device, the second cache device being connected to a switching device;
The first controller is further configured to obtain a second cache address assigned to the data written in the second cache device in response to a data write request;
The first controller is further configured to send the identifier of the second cache device and the second cache address to the I / O manager via the switching device;
The I / O manager is further configured to write the data to be written to the second cache address via the switching device according to the identifier of the second cache device and the second cache address.

本発明の第2の態様を参照して、第3の可能な実施方式において、ストレージアレイは第2のキャッシュデバイスを更に備え、ここで、第2のキャッシュデバイスはスイッチングデバイスに接続され;
第1のコントローラは、データ書込み要求に従って、第2のキャッシュデバイスにおける書き込まれるデータに対し割り当てられる第2のキャッシュアドレスを取得するように更に構成され;
第1のコントローラは、スイッチングデバイスを介してデータ書込み命令を第1のキャッシュデバイスに送信するように更に構成され、データ書込み命令は、第2のキャッシュデバイスの識別子及び第2のキャッシュアドレスを保持し;
第1のキャッシュデバイスは、データ書込み命令に従って、書き込まれるデータを、スイッチングデバイスを介して第2のキャッシュアドレスに書き込むように構成される。
With reference to a second aspect of the invention, in a third possible embodiment, the storage array further comprises a second cache device, where the second cache device is connected to a switching device;
The first controller is further configured to obtain a second cache address assigned to the data written in the second cache device in response to a data write request;
The first controller is further configured to send a data write instruction via the switching device to the first cache device, which holds the identifier of the second cache device and the second cache address. ;
The first cache device is configured to write the data to be written to the second cache address via the switching device in accordance with the data write instruction.

本発明の第2の態様を参照して、第4の可能な実施方式において、データ書込み要求は、書き込まれるデータのアドレスを保持し、書き込まれるデータのアドレスは、書き込まれるデータが位置するターゲット論理ユニットLUの識別子と、書き込まれるデータの論理ブロックアドレスと、書き込まれるデータの長さとを含み;入出力マネージャが、データ書込み要求を、スイッチングデバイスを介して第1のコントローラに送信することは:
入出力マネージャによって、ターゲットLUの識別子に従って、入出力マネージャに記憶されているターゲットLUとコントローラとの間のホーミング関係を問い合わせ、第1のコントローラがターゲットLUのホームコントローラであると判断することと;
入出力マネージャによって、データ書込み要求を、スイッチングデバイスを介して第1のコントローラに送信することと;
を特に含む。
With reference to the second aspect of the present invention, in a fourth possible embodiment, the data write request holds the address of the data to be written, and the address of the data to be written is the target logic in which the data to be written is located. It includes the identifier of the unit LU, the logical block address of the data to be written, and the length of the data to be written; the I / O manager may send a data write request to the first controller via the switching device:
The I / O manager queries the homing relationship between the target LU and the controller stored in the I / O manager according to the identifier of the target LU, and determines that the first controller is the home controller of the target LU;
Sending a data write request through the switching device to the first controller by the I / O manager;
In particular.

本発明の第2の態様を参照して、第5の可能な実施方式において、データ書込み要求は、書き込まれるデータのアドレスを保持し、書き込まれるデータのアドレスは、書き込まれるデータが位置するターゲット論理ユニットLUの識別子と、書き込まれるデータの論理ブロックアドレスと、書き込まれるデータの長さとを含み;ストレージアレイは第2のコントローラを更に備え、第2のコントローラはスイッチングデバイスに接続され;入出力マネージャが、データ書込み要求を、スイッチングデバイスを介して第1のコントローラに送信することは:
入出力マネージャによって、データ書込み要求を、スイッチングデバイスを介して第2のコントローラに送信することと;
第2のコントローラによって、ターゲットLUの識別子に従って、第1のコントローラがターゲットLUのホームコントローラであると判断することと;
第2のコントローラによって、データ書込み要求を、スイッチングデバイスを介して第1のコントローラに送信することと;
を特に含む。
With reference to the second aspect of the present invention, in a fifth possible embodiment, the data write request holds the address of the data to be written, and the address of the data to be written is the target logic in which the data to be written is located. Includes the identifier of the unit LU, the logical block address of the data to be written, and the length of the data to be written; the storage array further comprises a second controller, which is connected to the switching device; the I / O manager Sending a data write request to the first controller via the switching device is:
Sending a data write request through the switching device to the second controller by the I / O manager;
The second controller determines that the first controller is the home controller of the target LU according to the identifier of the target LU;
Sending a data write request to the first controller via the switching device by the second controller;
In particular.

本発明の実施形態において提供されるデータ書込み要求処理方法及びストレージアレイによれば、コントローラがスイッチングデバイスを介してキャッシュデバイスに接続され、入出力マネージャがスイッチングデバイスを介してコントローラに接続され、入出力マネージャがスイッチングデバイスを介してキャッシュデバイスに接続される。コントローラは、データ書込み要求に従って、書き込まれるデータのためにキャッシュデバイスからキャッシュアドレスを取得し、コントローラは、キャッシュデバイスの識別子及びキャッシュアドレスを、スイッチングデバイスを介して入出力マネージャに送信し、入出力マネージャは、スイッチングデバイスを介して、書き込まれるデータをキャッシュアドレスに書き込み、それによって、コントローラのCPU計算リソース及びコントローラのメモリリソースを節約し、データ書込み効率を改善する。 According to the data write request processing method and storage array provided in the embodiments of the present invention, the controller is connected to the cache device via the switching device, and the input / output manager is connected to the controller via the switching device for input / output. The manager is connected to the cache device through the switching device. The controller obtains the cache address from the cache device for the data to be written according to the data write request, and the controller sends the cache device identifier and cache address to the I / O manager via the switching device, and the I / O manager Writes the data to be written to the cache address via the switching device, thereby saving the controller's CPU computing resources and the controller's memory resources and improving data write efficiency.

本発明の実施形態における技術的解決策をより明確に説明するために、以下において、実施形態を説明するのに必要とされる添付の図面を簡単に紹介する。以下の説明における添付の図面は、本発明のいくつかの実施形態を示すにすぎず、これらの添付の図面から他の図面を更に導出することができる。 In order to more clearly explain the technical solution in the embodiments of the present invention, the accompanying drawings required to illustrate the embodiments will be briefly introduced below. The accompanying drawings in the following description merely show some embodiments of the present invention, and other drawings can be further derived from these attached drawings.

従来技術におけるストレージアレイの構成図である。It is a block diagram of the storage array in the prior art. 本発明の一実施形態によるストレージアレイの構成図である。It is a block diagram of the storage array by one Embodiment of this invention. 本発明の一実施形態によるデータ書込み要求の処理のフローチャートである。It is a flowchart of processing of the data write request by one Embodiment of this invention. 本発明の一実施形態によるデータ書込み要求の処理のフローチャートである。It is a flowchart of processing of the data write request by one Embodiment of this invention. 本発明の一実施形態によるデータ読出し要求の処理のフローチャートである。It is a flowchart of the process of the data read request by one Embodiment of this invention. データブロックの固有値インデックスセットの概略図である。It is a schematic diagram of the eigenvalue index set of a data block. 本発明の一実施形態によるデータ重複排除処理のフローチャートである。It is a flowchart of data deduplication processing by one Embodiment of this invention.

以下において、本発明の実施形態における添付の図面を参照して、本発明の実施形態における技術的解決策を明確に説明する。明らかに、説明される実施形態は、本発明の実施形態のうちのいくつかにすぎず、全てではない。本発明の実施形態に基づいて得られる全ての他の実施形態が本発明の保護範囲内にあるものとする。 Hereinafter, the technical solution according to the embodiment of the present invention will be clearly described with reference to the accompanying drawings according to the embodiment of the present invention. Obviously, the embodiments described are only some, but not all, of the embodiments of the present invention. It is assumed that all other embodiments obtained based on the embodiments of the present invention are within the scope of protection of the present invention.

図2に示すストレージアレイ等の、本発明の実施形態において提供されるストレージアレイは、入出力マネージャAと、コントローラAと、入出力マネージャBと、コントローラBと、スイッチングデバイスAと、スイッチングデバイスBと、キャッシュデバイスMとを備える。コントローラAは、CPU Aと、メモリAとを備え、CPU Aはバスを介してメモリAと通信し;コントローラBは、CPU Bと、メモリBとを備え、CPU Bはバスを介してメモリBと通信する。入出力マネージャAはスイッチングデバイスA及びスイッチングデバイスBに接続され、入出力マネージャBはスイッチングデバイスA及びスイッチングデバイスBに接続される。スイッチングデバイスAはスイッチングデバイスBに相互接続される。スイッチングデバイスA及びスイッチングデバイスBは共にキャッシュデバイスMに接続される。キャッシュデバイスMについては以下で詳細に説明する。コントローラAはスイッチングデバイスA及びスイッチングデバイスBに接続され、コントローラBはスイッチングデバイスA及びスイッチングデバイスBに接続される。上記の説明に基づいて、スイッチングデバイスA及びスイッチングデバイスBの周囲に、入出力マネージャA、入出力マネージャB、コントローラA及びコントローラBによって、完全に相互接続されたアーキテクチャが形成される。図2に示すストレージアレイにおいて、スイッチングデバイスAは全てのハードディスクに接続され、スイッチングデバイスBも全てのハードディスクに接続される。コントローラA及びコントローラBは共に、図2に示す全てのハードディスクと通信する。特に、コントローラAは、スイッチングデバイスAを介して全てのハードディスクと通信し、コントローラBは、スイッチングデバイスBを介して全てのハードディスクと通信する。コントローラAは、ハードディスクを仮想化して、ホストAに利用可能な論理ユニットLU Aを形成するように構成される。LU AはホストAに搭載され、ホストAはコントローラAを介してLU Aに対しデータアクセスオペレーションを実行する。ここで、LU AはコントローラAにホーミングされ、すなわち、コントローラAはLU Aのホームコントローラである。同様に、コントローラBは、ハードディスクを仮想化して、ホストBに利用可能な論理ユニットLU Bを形成するように構成される。LU BはホストBに搭載され、ホストBはコントローラBを介してLU Bに対しデータアクセスオペレーションを実行する。ここで、LU BはコントローラBにホーミングされると述べられ、すなわち、コントローラBはLU Bのホームコントローラである。ここでのホストは、物理ホスト(又は物理サーバと呼ばれる)であっても、仮想ホスト(又は仮想サーバと呼ばれる)であってもよい。論理ユニットLUは一般的に、業界における論理ユニット番号(Logical Unit Number,LUN)と呼ばれる。LUNをホストに割り当てることは、実際には、LUの識別子をホストに割り当てることを指し、それによってLUがホストに搭載される。したがって、LU及びLUNはここでは同じものを意味する。図2に示すストレージアレイにおいて、スイッチングデバイスA及びBは、PCIeスイッチングデバイス、不揮発性メモリエクスプレス伝送バス(Non−Volatile Memory express,NVMe)スイッチングデバイス、シリアル接続スモールコンピュータシステムインターフェース(Serial attached SCSI,SAS)スイッチングデバイス等であってもよく、これは本発明の実施形態によって制限されるものではない。スイッチングデバイスA及びBがPCIeスイッチングデバイスであるとき、PCIeスイッチングデバイスに接続されるハードディスクは、PCIeプロトコルインターフェースを有するハードディスクであり;スイッチングデバイスA及びBがNVMeスイッチングデバイスであるとき、NVMeスイッチングデバイスに接続されるハードディスクは、NVMeプロトコルインターフェースを有するハードディスクであり;スイッチングデバイスA及びBがSASスイッチングデバイスであるとき、SASスイッチングデバイスに接続されるハードディスクは、SASプロトコルインターフェースを有するハードディスクである。図2に示すハードディスクは、機械的ハードディスク、ソリッドステートディスク(Solid State Disk,SSD)、又は他の媒体のハードディスクであってもよい。図2に示すストレージアレイにおけるハードディスクに関して、異なるディスクのストレージ媒体は異なってもよく、それによってハイブリッドハードディスクストレージアレイが形成されるが、これは本発明の実施形態によって制限されるものではない。 The storage array provided in the embodiment of the present invention, such as the storage array shown in FIG. 2, includes an input / output manager A, a controller A, an input / output manager B, a controller B, a switching device A, and a switching device B. And a cache device M. The controller A includes a CPU A and a memory A, and the CPU A communicates with the memory A via a bus; the controller B includes a CPU B and a memory B, and the CPU B has a memory B via a bus. Communicate with. The input / output manager A is connected to the switching device A and the switching device B, and the input / output manager B is connected to the switching device A and the switching device B. The switching device A is interconnected to the switching device B. Both the switching device A and the switching device B are connected to the cache device M. The cache device M will be described in detail below. The controller A is connected to the switching device A and the switching device B, and the controller B is connected to the switching device A and the switching device B. Based on the above description, a fully interconnected architecture is formed around the switching device A and the switching device B by the I / O manager A, the I / O manager B, the controller A and the controller B. In the storage array shown in FIG. 2, the switching device A is connected to all hard disks, and the switching device B is also connected to all hard disks. Both controller A and controller B communicate with all the hard disks shown in FIG. In particular, the controller A communicates with all the hard disks via the switching device A, and the controller B communicates with all the hard disks via the switching device B. The controller A is configured to virtualize the hard disk to form a logical unit LU A that can be used by the host A. The LU A is mounted on the host A, and the host A executes a data access operation to the LU A via the controller A. Here, LU A is homing to controller A, that is, controller A is LU A's home controller. Similarly, the controller B is configured to virtualize the hard disk to form a logical unit LU B that can be used by the host B. The LU B is mounted on the host B, and the host B executes a data access operation to the LU B via the controller B. Here, it is stated that LU B is homing to controller B, i.e. controller B is the home controller of LU B. The host here may be a physical host (or is called a physical server) or a virtual host (or is called a virtual server). The logical unit LU is generally referred to as a logical unit number (LUN) in the industry. Assigning a LUN to a host actually means assigning an identifier for the LU to the host, thereby mounting the LU on the host. Therefore, LU and LUN mean the same thing here. In the storage array shown in FIG. 2, the switching devices A and B are a PCIe switching device, a non-volatile memory express (NVMe) switching device, and a serial attached small computer system interface (Serial Attached SCSI, SAS). It may be a switching device or the like, and this is not limited by the embodiment of the present invention. When the switching devices A and B are PCIe switching devices, the hard disk connected to the PCIe switching device is a hard disk having a PCIe protocol interface; when the switching devices A and B are NVMe switching devices, they are connected to the NVMe switching device. The hard disk to be used is a hard disk having an NVMe protocol interface; when switching devices A and B are SAS switching devices, the hard disk connected to the SAS switching device is a hard disk having a SAS protocol interface. The hard disk shown in FIG. 2 may be a mechanical hard disk, a solid state disk (SSD), or a hard disk of another medium. With respect to the hard disks in the storage array shown in FIG. 2, the storage media of different disks may be different, thereby forming a hybrid hard disk storage array, but this is not limited by the embodiments of the present invention.

キャッシュデバイスMは、特に、揮発性ストレージ媒体、又は相変化メモリ(Phase Change Memory,PCM)等の不揮発性ストレージ媒体によって形成されたストレージデバイスであっても、キャッシュデバイスとして用いるのに適した別の不揮発性ストレージ媒体であってもよく、これは本発明の実施形態によって制限されるものではない。キャッシュデバイスMはデータをキャッシュするように構成される。以下において、本発明の特定の実施形態を参照してキャッシュデバイスMについて記載する。本発明の実施形態において、スイッチングデバイスAがPCIeスイッチングデバイスであり、スイッチングデバイスBがPCIeスイッチングデバイスであり、ハードディスクがPCIeプロトコルインターフェースを有するSSDであることが例として用いられる。 The cache device M is another storage device suitable for use as a cache device, even if it is a storage device formed of a volatile storage medium or a non-volatile storage medium such as a phase change memory (PCM). It may be a non-volatile storage medium, which is not limited by embodiments of the present invention. The cache device M is configured to cache data. Hereinafter, the cache device M will be described with reference to the specific embodiment of the present invention. In the embodiment of the present invention, a case where the switching device A is a PCIe switching device, the switching device B is a PCIe switching device, and the hard disk is an SSD having a PCIe protocol interface is used as an example.

図2に示すストレージアレイにおいて、入出力マネージャAは、ホストによって送信されるデータ書込み要求を受信する。一実施方式において、コントローラAは入出力マネージャAのホームコントローラである。したがって、入出力マネージャAはホストによって送信されるデータオペレーション要求を受信する。入出力マネージャAの要求送信ポリシーが変更されない場合、要求はデータオペレーション要求に従ってデフォルトでコントローラAに送信され、このため、コントローラAは入出力マネージャAのホームコントローラと呼ばれる。本発明の一実施形態では、入出力マネージャAはホストによって送信されたデータ書込み要求を受信し、このデータ書込み要求をPCIeスイッチングデバイスA又はPCIeスイッチングデバイスBを介してコントローラAに送信する。要求が転送される際に介する特定のPCIeスイッチングデバイスに関しては、予め設定した規則に従って判断されてもよい。PCIeスイッチングデバイスが選択されると、入出力マネージャAはその後、このPCIeスイッチングデバイスを介してコントローラAと通信する。当然ながら、入出力マネージャAはPCIeスイッチングデバイスをランダムに選択してコントローラAと通信してもよく、これは本発明の実施形態によって制限されるものではない。本発明の実施形態は、入出力マネージャAがPCIeスイッチングデバイスAを選択してコントローラAと通信する例を用いる。 In the storage array shown in FIG. 2, the input / output manager A receives the data write request transmitted by the host. In one embodiment, the controller A is the home controller of the I / O manager A. Therefore, the I / O manager A receives the data operation request sent by the host. If the request transmission policy of the I / O manager A is not changed, the request is sent to the controller A by default according to the data operation request, so that the controller A is called the home controller of the I / O manager A. In one embodiment of the invention, the I / O manager A receives the data write request transmitted by the host and transmits the data write request to the controller A via the PCIe switching device A or the PCIe switching device B. With respect to the particular PCIe switching device through which the request is transferred, it may be determined according to preset rules. When the PCIe switching device is selected, the input / output manager A then communicates with the controller A via the PCIe switching device. Of course, the input / output manager A may randomly select a PCIe switching device to communicate with the controller A, which is not limited by the embodiments of the present invention. An embodiment of the present invention uses an example in which the input / output manager A selects a PCIe switching device A and communicates with the controller A.

入出力マネージャAによって受信されるデータ書込み要求は、書き込まれるデータのアドレスを保持する。書き込まれるデータのアドレスは、書き込まれるデータのターゲットLUの識別子と、書き込まれるデータの論理ブロックアドレス(Logical Block Address,LBA)と、書き込まれるデータの長さとを含む。入出力マネージャAは、コントローラAにデータ書込み要求を送信する。コントローラAはデータ書込み要求を受信し、書き込まれるデータのアドレスにおける書き込まれるデータのターゲットLUの識別子に従って、コントローラAがターゲットLUのホームコントローラであるか否かを判断する。 The data write request received by the I / O manager A holds the address of the data to be written. The address of the data to be written includes the identifier of the target LU of the data to be written, the logical block address (Logical Block Address, LBA) of the data to be written, and the length of the data to be written. The input / output manager A transmits a data write request to the controller A. The controller A receives the data write request and determines whether or not the controller A is the home controller of the target LU according to the identifier of the target LU of the data to be written at the address of the data to be written.

コントローラAがターゲットLUのホームコントローラであるとき、すなわち、ターゲットLUはハードディスクを仮想化することによってコントローラAにより生成され、ホストに提供される。コントローラAは、書き込まれるデータをキャッシュするのに用いられるキャッシュデバイスを判断する。このキャッシュデバイスは、本発明のこの実施形態ではキャッシュデバイスMである。実施方式は以下のとおりである:コントローラAは、データ書込み要求に従って、書き込まれるデータにキャッシュアドレスを割り当てるようにキャッシュデバイスMに命令し、キャッシュデバイスMは書き込まれるデータの長さに従ってキャッシュアドレスを割り当てる。コントローラAは、書き込まれるデータに対しキャッシュデバイスMによって割り当てられるキャッシュアドレスを取得する(これ以降、書き込まれるデータに対しキャッシュデバイスMによって割り当てられるキャッシュアドレスを、キャッシュアドレスMと呼び、一実施方式において、キャッシュアドレスは開始アドレス及び長さを含む)。コントローラAは、キャッシュデバイスMの識別子及びキャッシュアドレスMを、PCIeスイッチングデバイスAを介して入出力マネージャAに送信する。入出力マネージャAは、コントローラAによって送信されたキャッシュデバイスMの識別子及びキャッシュアドレスMを受信し、書き込まれるデータを、キャッシュデバイスMの識別子及びキャッシュアドレスMに従ってキャッシュアドレスMに書き込む(又は書き込まれるデータをキャッシュアドレスMに直接書き込んでもよい)。コントローラAは、書き込まれるデータに対し割り当てられるキャッシュアドレスMのみを取得し、入出力マネージャAは、書き込まれるデータを、PCIeスイッチングデバイスAを介してキャッシュアドレスMに直接書き込む。これは、従来技術と比較して、コントローラAのCPU計算リソース及びコントローラAのメモリリソースを節約し、データ書込み効率を改善する。 When the controller A is the home controller of the target LU, that is, the target LU is generated by the controller A by virtualizing the hard disk and provided to the host. The controller A determines the cache device used to cache the data to be written. This cache device is the cache device M in this embodiment of the present invention. The implementation method is as follows: The controller A instructs the cache device M to assign a cache address to the data to be written according to the data write request, and the cache device M assigns the cache address according to the length of the data to be written. .. The controller A acquires a cache address assigned by the cache device M for the data to be written (hereinafter, the cache address assigned by the cache device M for the data to be written is called a cache address M, and in one implementation method, the cache address M is used. The cache address includes the start address and length). The controller A transmits the identifier of the cache device M and the cache address M to the input / output manager A via the PCIe switching device A. The input / output manager A receives the cache device M identifier and cache address M transmitted by the controller A, and writes (or writes data) the data to be written to the cache address M according to the cache device M identifier and cache address M. May be written directly to the cache address M). The controller A acquires only the cache address M assigned to the data to be written, and the input / output manager A writes the data to be written directly to the cache address M via the PCIe switching device A. This saves the CPU computing resource of the controller A and the memory resource of the controller A as compared with the prior art, and improves the data writing efficiency.

コントローラAは、書き込まれるデータのアドレスと、キャッシュデバイスMの識別子と、キャッシュアドレスMとの間の対応関係を確立し、したがって、書き込まれるデータを読み出すとき、コントローラAは、書き込まれるデータのキャッシュアドレスMを入出力マネージャAに送信し、入出力マネージャAは、書き込まれるデータのキャッシュアドレスMから、書き込まれるデータを読み出してもよく(又は書き込まれるデータのキャッシュアドレスMから、書き込まれるデータを直接読み出してもよく)、それによって、コントローラAのCPU計算リソース及びコントローラAのメモリリソースを節約し、データ読出し効率を改善する。 The controller A establishes a correspondence between the address of the data to be written, the identifier of the cache device M, and the cache address M, and therefore, when reading the data to be written, the controller A is the cache address of the data to be written. M is transmitted to the input / output manager A, and the input / output manager A may read the data to be written from the cache address M of the data to be written (or directly read the data to be written from the cache address M of the data to be written). It may save CPU computing resources of controller A and memory resources of controller A, thereby improving data read efficiency.

条件が満たされた後、ストレージアレイがデータ重複排除を行わない場合、キャッシュデバイスMは書き込まれるデータをストレージアレイのターゲットSSDに記憶する。ターゲットSSDは、書き込まれるデータを記憶するためのSSDを指す。書き込まれるデータをターゲットSSDに書き込む特定のプロセスは以下であってもよい:コントローラAはキャッシュデバイスMの識別子及びキャッシュアドレスMを、PCIeスイッチングデバイスA又はPCIeスイッチングデバイスBを介してターゲットSSDのコントローラに送信する。ターゲットSSDのコントローラは、キャッシュデバイスMの識別子及びキャッシュアドレスMに従って、PCIeスイッチングデバイスA又はPCIeスイッチングデバイスBを介して、キャッシュアドレスMから書き込まれるデータを直接読み出し、書き込まれるデータを記憶する。ターゲットSSDのコントローラは、ターゲットSSDにおける書き込まれるデータの記憶アドレスを、PCIeスイッチングデバイスA又はPCIeスイッチングデバイスBを介してコントローラAに送信する。ターゲットSSDにおける書き込まれるデータの記憶アドレスは、ターゲットSSDのコントローラの識別子と、ターゲットSSDに書き込まれるデータを記憶するための論理記憶アドレスとを含む。コントローラAは、書き込まれるデータのアドレスと、ターゲットSSDに書き込まれるデータの記憶アドレスとの間の対応関係を確立する。 If the storage array does not perform data deduplication after the conditions are met, the cache device M stores the data to be written in the target SSD of the storage array. The target SSD refers to an SSD for storing the data to be written. The specific process of writing the data to be written to the target SSD may be as follows: Controller A sends the cache device M identifier and cache address M to the controller of the target SSD via the PCIe switching device A or PCIe switching device B. Send. The controller of the target SSD directly reads the data written from the cache address M via the PCIe switching device A or the PCIe switching device B according to the identifier of the cache device M and the cache address M, and stores the written data. The controller of the target SSD transmits the storage address of the data written in the target SSD to the controller A via the PCIe switching device A or the PCIe switching device B. The storage address of the data written in the target SSD includes the identifier of the controller of the target SSD and the logical storage address for storing the data written in the target SSD. The controller A establishes a correspondence between the address of the data to be written and the storage address of the data to be written to the target SSD.

上記のプロセスは特に図3に示される。 The above process is particularly shown in FIG.

ステップ301:ホストはデータ書込み要求を入出力マネージャAに送信する。 Step 301: The host sends a data write request to the I / O manager A.

入出力マネージャAは、ストレージアレイ内の入出力受信管理デバイスであり、ホストによって送信されるデータオペレーション要求を受信し、データオペレーション要求をコントローラに転送する役割を果たす。本発明の一実施形態では、ホストは、書き込まれるデータのアドレスを保持するデータ書込み要求を入出力マネージャAに送信する。例示的に、スモールコンピュータシステムインターフェース(Small Computer System Interface,SCSI)プロトコル、すなわちSCSIプロトコルデータ書込み要求が、データ書込み要求のために用いられてもよい。当然ながら、他のプロトコルが用いられてもよく、これは本発明の実施形態によって制限されるものではない。 The input / output manager A is an input / output / reception management device in the storage array, and plays a role of receiving the data operation request transmitted by the host and transferring the data operation request to the controller. In one embodiment of the invention, the host sends a data write request holding the address of the data to be written to the I / O manager A. Illustratively, a Small Computer System Interface (SCSI) protocol, ie, a SCSI protocol data write request, may be used for a data write request. Of course, other protocols may be used, which are not limited by embodiments of the invention.

ステップ302:データ書込み要求をコントローラAに送信する。 Step 302: Send a data write request to controller A.

本発明のこの実施形態では、入出力マネージャAは通常、特定のコントローラと通信する。入出力マネージャAは、複数の方式で、例えばコントローラの負荷に従って、又は特定の経路選択アルゴリズムに従ってコントローラとの対応関係を確立してもよいが、これは本発明によって制限されるものではない。入出力マネージャAは、データ書込み要求を受信し、このデータ書込み要求を、PCIeスイッチングデバイスA又はPCIeスイッチングデバイスBを介してコントローラAに送信する。本発明のこの実施形態において、入出力マネージャAがデータ書込み要求を受信し、データ書込み要求を、PCIeスイッチングデバイスAを介してコントローラAに送信することが例として用いられる。 In this embodiment of the invention, the I / O manager A typically communicates with a particular controller. The input / output manager A may establish a correspondence with the controller in a plurality of methods, for example, according to the load of the controller or according to a specific route selection algorithm, but this is not limited by the present invention. The input / output manager A receives the data write request and transmits the data write request to the controller A via the PCIe switching device A or the PCIe switching device B. In this embodiment of the present invention, it is used as an example that the input / output manager A receives the data write request and transmits the data write request to the controller A via the PCIe switching device A.

ステップ303:コントローラAは書き込まれるデータのキャッシュアドレスを取得する。 Step 303: Controller A acquires the cache address of the data to be written.

コントローラAは、入出力マネージャAによって送信されるデータ書込み要求を受信し、書き込まれるデータをキャッシュするのに用いられるキャッシュデバイスを判断する。これは、本発明のこの実施形態では、キャッシュデバイスMである。一実施方式において、キャッシュデバイスMは、キャッシュアドレスのセグメントをコントローラAに割り当てる。キャッシュアドレスのセグメントにおいて、コントローラAは、書き込まれるデータの長さに従って、書き込まれるデータに対しキャッシュアドレスMを割り当てる。別の実施方式では、コントローラAは、PCIeスイッチングデバイスA又はPCIeスイッチングデバイスBを介して命令をキャッシュデバイスMに送信する。命令は、書き込まれるデータの長さを保持し、キャッシュデバイスMに、書き込まれるデータに対しキャッシュアドレスを割り当てるように命令する。コントローラAは、キャッシュアドレスMを取得する。 The controller A receives the data write request transmitted by the I / O manager A and determines the cache device used to cache the written data. This is the cache device M in this embodiment of the present invention. In one embodiment, the cache device M allocates a segment of cache address to the controller A. In the cache address segment, controller A assigns cache address M to the data to be written according to the length of the data to be written. In another embodiment, the controller A transmits an instruction to the cache device M via the PCIe switching device A or the PCIe switching device B. The instruction holds the length of the data to be written and instructs the cache device M to assign a cache address to the data to be written. The controller A acquires the cache address M.

ステップ304:キャッシュデバイスMの識別子及びキャッシュアドレスMを送信する。 Step 304: The identifier of the cache device M and the cache address M are transmitted.

コントローラAは、キャッシュアドレスMを取得し、キャッシュデバイスMの識別子及びキャッシュアドレスMを、PCIeスイッチングデバイスAを介して入出力マネージャAに送信する。キャッシュデバイスMの識別子はデバイスアドレスである。 The controller A acquires the cache address M and transmits the identifier of the cache device M and the cache address M to the input / output manager A via the PCIe switching device A. The identifier of the cache device M is the device address.

ステップ305:ホストは書き込まれるデータを入出力マネージャAに送信する。 Step 305: The host sends the data to be written to the I / O manager A.

入出力マネージャAは、コントローラAによって送信されたキャッシュデバイスMの識別子及びキャッシュアドレスMを受信し、ホストによって送信された書き込まれるデータを受信する。 The I / O manager A receives the identifier and cache address M of the cache device M transmitted by the controller A, and receives the written data transmitted by the host.

ステップ306:書き込まれるデータをキャッシュアドレスMに書き込む。 Step 306: Write the data to be written to the cache address M.

入出力マネージャAは、キャッシュデバイスMの識別子及びキャッシュアドレスMに従って、書き込まれるデータを、PCIeスイッチングデバイスAを介してキャッシュアドレスMに直接書き込む。入出力マネージャAは、PCIeスイッチングデバイスAを介して、キャッシュデバイスMによって送信される、書き込まれるデータの書込みに成功したことを示す応答を受信する。入出力マネージャAは、データ書込み要求が完了したことを示す応答をホストに送信し、書込み要求動作が完了したことをホストに通知する。 The input / output manager A writes the data to be written directly to the cache address M via the PCIe switching device A according to the identifier of the cache device M and the cache address M. The input / output manager A receives a response, which is transmitted by the cache device M, indicating that the data to be written has been successfully written, via the PCIe switching device A. The I / O manager A sends a response indicating that the data write request is completed to the host, and notifies the host that the write request operation is completed.

ステップ307:コントローラAに、書き込まれるデータがキャッシュアドレスMに書き込まれることを通知する。 Step 307: Notify the controller A that the data to be written is written to the cache address M.

入出力マネージャAは、書き込まれるデータをキャッシュアドレスMに書き込むことに成功し、コントローラAに、書き込まれるデータがキャッシュアドレスMに書き込まれることを通知する。 The input / output manager A succeeds in writing the data to be written to the cache address M, and notifies the controller A that the data to be written is written to the cache address M.

ステップ308:コントローラAは、書き込まれるデータのアドレスと、キャッシュデバイスMと、キャッシュアドレスMとの間の対応関係を確立する。 Step 308: Controller A establishes a correspondence between the address of the data to be written, the cache device M, and the cache address M.

コントローラAは、入出力マネージャAによって送信される通知を受信し、書き込まれるデータのアドレスと、キャッシュデバイスMと、キャッシュアドレスMとの間の対応関係を確立する。 The controller A receives the notification transmitted by the input / output manager A, and establishes a correspondence relationship between the address of the data to be written, the cache device M, and the cache address M.

キャッシュデバイスMは、書き込まれるデータに対しキャッシュアドレスMを割り当て、それによって、書き込まれるデータのアドレスと、キャッシュアドレスMとの間の対応関係を確立する。キャッシュデバイスMは、コントローラAによって送信されたキャッシュアドレス割当て命令から、書き込まれるデータのアドレスを取得してもよく、キャッシュアドレスMを割り当てた後、キャッシュデバイスMは、書き込まれるデータのアドレスと、キャッシュアドレスMとの間の対応関係を確立する。別の実施方式では、キャッシュデバイスMは、ターゲットLUの排他的キャッシュデバイスであり、ターゲットLUのデータをキャッシュするためにのみ用いられ、したがって、キャッシュデバイスMは、デフォルトで、ターゲットLUと、ターゲットLUにおけるLBAと、キャッシュアドレスとの間の対応関係を保存する。キャッシュデバイスMは、デフォルトで、ターゲットLUと、ターゲットLUにおけるLBAと、キャッシュデバイスMのキャッシュアドレスのセグメントとの間の対応関係を保存する。キャッシュアドレスのこのセグメントにおいて、キャッシュデバイスMは、書き込まれるデータに対しキャッシュアドレスMを割り当てる。 The cache device M assigns a cache address M to the data to be written, thereby establishing a correspondence between the address of the data to be written and the cache address M. The cache device M may acquire the address of the data to be written from the cache address allocation instruction transmitted by the controller A, and after allocating the cache address M, the cache device M may obtain the address of the data to be written and the cache. Establish a correspondence with the address M. In another embodiment, the cache device M is the exclusive cache device for the target LU and is only used to cache the data in the target LU, thus the cache device M is, by default, the target LU and the target LU. Stores the correspondence between the LBA and the cache address in. By default, the cache device M stores the correspondence between the target LU, the LBA in the target LU, and the segment of the cache address of the cache device M. In this segment of cache address, cache device M assigns cache address M to the data to be written.

ストレージアレイの信頼性を改善するために、また、書き込まれるデータの複数のコピーをキャッシュするために、図1に示す従来技術において、入出力マネージャAは書き込まれるデータを送信し、CPU Aは、書き込まれるデータをメモリAに書き込み、CPU AはメモリAから書き込まれるデータを読み出し、書き込まれるデータを、PCIeスイッチAを介してPCIeスイッチBに送信する。PCIeスイッチBは、書き込まれるデータをCPU Bに送信し、CPU Bは書き込まれるデータをメモリBに書き込む。本発明のこの実施形態では、キャッシュデバイスMにおける書き込まれるデータの喪失を防ぐために、ストレージアレイは書き込まれるデータを複数のキャッシュデバイスにキャッシュする。したがって、書き込まれるデータが2つのキャッシュデバイスにキャッシュされることが例として用いられる。図2に示すストレージアレイは、キャッシュデバイスNを更に備える。PCIeスイッチングデバイスA及びPCIeスイッチングデバイスBは共にキャッシュデバイスNに接続される。したがって、コントローラAは、入出力マネージャAによって送信されるデータ書込み要求を受信し、キャッシュデバイスMが書き込まれるデータをキャッシュする一次キャッシュデバイスとしての役割を果たすと判断し、キャッシュデバイスNが書き込まれるデータをキャッシュする二次キャッシュデバイスとしての役割を果たすと判断する。コントローラAは、書き込まれるデータに対し割り当てられ、キャッシュデバイスM及びキャッシュデバイスN内に位置するキャッシュアドレスを取得する。一実施方式において、コントローラAは、命令をキャッシュデバイスM及びキャッシュデバイスNのそれぞれに送信する。命令は、キャッシュデバイスM及びキャッシュデバイスNの双方に、書き込まれるデータに対しキャッシュアドレスを割り当てるように命令するのに用いられる。命令は、書き込まれるデータの長さを保持する。キャッシュデバイスMによって、書き込まれるデータに対し割り当てられるキャッシュアドレスは、キャッシュアドレスMと呼ばれ、キャッシュデバイスNによって、書き込まれるデータに対し割り当てられるキャッシュアドレスは、キャッシュアドレスNと呼ばれる。コントローラAはキャッシュアドレスM及びキャッシュアドレスNを取得する。コントローラAは、キャッシュデバイスMの識別子及びキャッシュアドレスMを、PCIeスイッチングデバイスAを介して入出力マネージャAに送信し、キャッシュデバイスNの識別子及びキャッシュアドレスNを、PCIeスイッチングデバイスAを介して入出力マネージャAに送信する。特定の実施態様では、コントローラAは、キャッシュデバイスMの識別子及びキャッシュアドレスM、並びにキャッシュデバイスNの識別子及びキャッシュアドレスNを、1つのメッセージを介して、又は2つのメッセージをそれぞれ介して入出力マネージャAに送信することができ、これはここでは制限されない。別の実施方式では、キャッシュデバイスMは、キャッシュアドレスの排他的セグメントをコントローラAに対し割り当てる。この排他的セグメントは、ホームコントローラAのLUのデータをキャッシュするためにのみ用いられる。キャッシュデバイスMのキャッシュアドレスのこのセグメントにおいて、コントローラAは、書き込まれるデータに対しキャッシュアドレスMを直接割り当てる。キャッシュデバイスNは、キャッシュアドレスの排他的セグメントをコントローラAに対し割り当て、キャッシュデバイスNのキャッシュアドレスのこのセグメントにおいて、コントローラAは、書き込まれるデータに対しキャッシュアドレスNを直接割り当てる。 In order to improve the reliability of the storage array and to cache multiple copies of the data to be written, in the prior art shown in FIG. 1, the I / O manager A transmits the data to be written and the CPU A. The data to be written is written to the memory A, the CPU A reads the data to be written from the memory A, and transmits the written data to the PCIe switch B via the PCIe switch A. The PCIe switch B transmits the data to be written to the CPU B, and the CPU B writes the data to be written to the memory B. In this embodiment of the present invention, the storage array caches the written data in a plurality of cache devices in order to prevent the loss of the written data in the cache device M. Therefore, it is used as an example that the data to be written is cached in two cache devices. The storage array shown in FIG. 2 further includes a cache device N. Both the PCIe switching device A and the PCIe switching device B are connected to the cache device N. Therefore, the controller A receives the data write request transmitted by the input / output manager A, determines that the cache device M plays a role as a primary cache device for caching the data to be written, and determines that the data to which the cache device N is written. It is judged that it plays a role as a secondary cache device that caches. The controller A is assigned to the data to be written and acquires a cache address located in the cache device M and the cache device N. In one embodiment, the controller A transmits an instruction to each of the cache device M and the cache device N. The instruction is used to instruct both the cache device M and the cache device N to assign a cache address to the data to be written. The instruction holds the length of the data to be written. The cache address assigned to the data written by the cache device M is called the cache address M, and the cache address assigned to the data written by the cache device N is called the cache address N. The controller A acquires the cache address M and the cache address N. The controller A transmits the identifier and cache address M of the cache device M to the input / output manager A via the PCIe switching device A, and inputs and outputs the identifier and cache address N of the cache device N via the PCIe switching device A. Send to manager A. In a particular embodiment, the controller A transfers the identifier and cache address M of the cache device M and the identifier and cache address N of the cache device N via one message or via two messages, respectively. It can be sent to A, which is not limited here. In another embodiment, the cache device M allocates an exclusive segment of the cache address to the controller A. This exclusive segment is only used to cache the data in the LU of home controller A. In this segment of the cache address of the cache device M, the controller A directly assigns the cache address M to the data to be written. The cache device N assigns an exclusive segment of the cache address to the controller A, and in this segment of the cache address of the cache device N, the controller A directly assigns the cache address N to the data to be written.

入出力マネージャAは、キャッシュデバイスMの識別子及びキャッシュアドレスM、並びにキャッシュデバイスNの識別子及びキャッシュアドレスNを受信する。入出力マネージャAは、キャッシュデバイスMの識別子及びキャッシュアドレスMに従って、書き込まれるデータを、PCIeスイッチングデバイスAを介してキャッシュアドレスMに直接書き込み、入出力マネージャAは、キャッシュデバイスNの識別子及びキャッシュアドレスNに従って、書き込まれるデータを、PCIeスイッチングデバイスAを介してキャッシュアドレスNに直接書き込む。入出力マネージャAは、PCIeスイッチングデバイスAを介して、書き込まれるデータがキャッシュアドレスMに書き込まれることに成功したことを示す応答を受信し、コントローラAに、書き込まれるデータのアドレスと、キャッシュデバイスMの識別子と、キャッシュアドレスMとの間の対応関係を確立するように命令する。同様に、コントローラAは、書き込まれるデータのアドレスと、キャッシュデバイスNの識別子と、キャッシュアドレスNとの間の対応関係を確立する。 The input / output manager A receives the identifier and cache address M of the cache device M, and the identifier and cache address N of the cache device N. The input / output manager A writes the data to be written directly to the cache address M via the PCIe switching device A according to the identifier and the cache address M of the cache device M, and the input / output manager A writes the identifier and the cache address of the cache device N. According to N, the data to be written is written directly to the cache address N via the PCIe switching device A. The input / output manager A receives a response indicating that the data to be written has been successfully written to the cache address M via the PCIe switching device A, and the address of the data to be written to the controller A and the cache device M are received. Command to establish a correspondence between the identifier of and the cache address M. Similarly, the controller A establishes a correspondence between the address of the data to be written, the identifier of the cache device N, and the cache address N.

別の実施方式では、コントローラAは、キャッシュデバイスMの識別子及びキャッシュアドレスMを、PCIeスイッチングデバイスAを介して入出力マネージャAに送信する。入出力マネージャAは、キャッシュデバイスMの識別子及びキャッシュアドレスMを受信する。入出力マネージャAは、書き込まれるデータを、キャッシュデバイスMの識別子及びキャッシュアドレスMに従って、PCIeスイッチングデバイスA又はPCIeスイッチングデバイスBを介してキャッシュアドレスMに直接書き込む。コントローラAは、データ書込み命令を、PCIeスイッチングデバイスA又はPCIeスイッチングデバイスBを介してキャッシュデバイスMに送信する。データ書込み命令は、キャッシュデバイスNの識別子及びキャッシュアドレスNを保持する。キャッシュデバイスMは書き込まれるデータをキャッシュし、キャッシュデバイスMは、書き込まれるデータを、データ書込み命令に従って、PCIeスイッチングデバイスA又はPCIeスイッチングデバイスBを介してキャッシュアドレスNに直接書き込む。 In another embodiment, the controller A transmits the cache device M identifier and cache address M to the I / O manager A via the PCIe switching device A. The input / output manager A receives the identifier of the cache device M and the cache address M. The input / output manager A writes the data to be written directly to the cache address M via the PCIe switching device A or the PCIe switching device B according to the identifier and the cache address M of the cache device M. The controller A transmits a data write instruction to the cache device M via the PCIe switching device A or the PCIe switching device B. The data write instruction holds the identifier of the cache device N and the cache address N. The cache device M caches the data to be written, and the cache device M writes the written data directly to the cache address N via the PCIe switching device A or the PCIe switching device B according to the data write instruction.

コントローラAは、入出力マネージャAが、キャッシュデバイスM及びキャッシュデバイスNへの書き込まれるデータの書込みを実施するように、書き込まれるデータに対し割り当てられるキャッシュアドレスM及びキャッシュアドレスNのみを取得すればよく、それによって、コントローラAのCPU計算リソース及びコントローラAのメモリリソースを節約し、データ書込み効率を改善する。 The controller A need only acquire the cache address M and the cache address N assigned to the written data so that the input / output manager A writes the data to be written to the cache device M and the cache device N. As a result, the CPU computing resource of the controller A and the memory resource of the controller A are saved, and the data writing efficiency is improved.

別の場合、入出力マネージャAはホストのデータ書込み要求を受信する。データ書込み要求は書き込まれるデータのアドレスを保持する。入出力マネージャAは、PCIeスイッチングデバイスAによって転送することにより、データ書込み要求をコントローラAに送信する。コントローラAは、入出力マネージャAによって送信されたデータ書込み要求を受信し、データ書込み要求内に保持されるターゲットLUの識別子に従って、コントローラAがターゲットLUのホームコントローラでないと判断する。特定の実施形態が図4に示される。 In another case, the I / O manager A receives the host data write request. The data write request holds the address of the data to be written. The input / output manager A transmits a data write request to the controller A by transferring the data by the PCIe switching device A. The controller A receives the data write request transmitted by the I / O manager A, and determines that the controller A is not the home controller of the target LU according to the identifier of the target LU held in the data write request. A particular embodiment is shown in FIG.

ステップ401:ホストがデータ書込み要求を入出力マネージャAに送信する。 Step 401: The host sends a data write request to the I / O manager A.

ホストはデータ書込み要求を入出力マネージャAに送信する。データ書込み要求は書き込まれるデータのアドレスを保持する。 The host sends a data write request to the I / O manager A. The data write request holds the address of the data to be written.

ステップ402:データ書込み要求をコントローラAに送信する。 Step 402: Send a data write request to controller A.

本発明のこの実施形態において、コントローラAは入出力マネージャAのホームコントローラである。入出力マネージャAはデータ書込み要求を受信し、データ書込み要求をPCIeスイッチングデバイスA又はPCIeスイッチングデバイスBを介してコントローラAに送信する。本発明のこの実施形態において、入出力マネージャAがデータ書込み要求を受信し、データ書込み要求を、PCIeスイッチングデバイスAを介してコントローラAに送信することが例として用いられる。 In this embodiment of the present invention, the controller A is the home controller of the I / O manager A. The input / output manager A receives the data write request and transmits the data write request to the controller A via the PCIe switching device A or the PCIe switching device B. In this embodiment of the present invention, it is used as an example that the input / output manager A receives the data write request and transmits the data write request to the controller A via the PCIe switching device A.

ステップ403:コントローラAがターゲットLUのホームコントローラでないと判断する。 Step 403: It is determined that the controller A is not the home controller of the target LU.

コントローラAは、入出力マネージャAによって送信されるデータ書込み要求を受信し、データ書込み要求において保持される書き込まれるデータのターゲットLUの識別子に従って、コントローラAがターゲットLUのホームコントローラでないと判断する。コントローラAは、コントローラとLUとの間の対応関係を問い合わせ、コントローラBがターゲットLUのホームコントローラであると判断する。 The controller A receives the data write request transmitted by the input / output manager A, and determines that the controller A is not the home controller of the target LU according to the identifier of the target LU of the data to be written held in the data write request. The controller A inquires about the correspondence between the controller and the LU, and determines that the controller B is the home controller of the target LU.

ステップ404:データ書込み要求をコントローラBに送信する。 Step 404: Send a data write request to controller B.

コントローラAは、PCIeスイッチングデバイスA又はPCIeスイッチングデバイスBを介してデータ書込み要求をコントローラBに送信する。この実施形態では、PCIeスイッチングデバイスBがデータ書込み要求をコントローラBに転送することが例として用いられる。 The controller A transmits a data write request to the controller B via the PCIe switching device A or the PCIe switching device B. In this embodiment, the PCIe switching device B transfers a data write request to the controller B as an example.

ステップ405:書き込まれるデータのキャッシュアドレスを取得する。 Step 405: Acquire the cache address of the data to be written.

コントローラBは、コントローラAによって送信されるデータ書込み要求を受信し、書き込まれるデータをキャッシュするのに用いられるキャッシュデバイスを判断する。本発明のこの実施形態では、これはキャッシュデバイスMである。特定の実施方式については、コントローラAがキャッシュデバイスMから書き込まれるデータのキャッシュアドレスを取得する方式を参照されたい。 The controller B receives the data write request transmitted by the controller A and determines the cache device used to cache the written data. In this embodiment of the invention, this is the cache device M. For a specific implementation method, refer to a method in which the controller A acquires the cache address of the data written from the cache device M.

ステップ406:キャッシュデバイスMの識別子及びキャッシュアドレスMをコントローラAに送信する。 Step 406: The identifier of the cache device M and the cache address M are transmitted to the controller A.

コントローラBは、キャッシュアドレスMを取得し、キャッシュデバイスMの識別子及びキャッシュアドレスMを、PCIeスイッチングデバイスBを介してコントローラAに送信する。別の実施方式では、キャッシュデバイスMの識別子及びキャッシュアドレスMも、PCIeスイッチングデバイスA又はPCIeスイッチングデバイスBを介してコントローラAに直接送信されてもよい。 The controller B acquires the cache address M and transmits the identifier of the cache device M and the cache address M to the controller A via the PCIe switching device B. In another embodiment, the cache device M identifier and cache address M may also be transmitted directly to the controller A via the PCIe switching device A or the PCIe switching device B.

ステップ407:キャッシュデバイスMの識別子及びキャッシュアドレスMを入出力マネージャAに送信する。 Step 407: The identifier of the cache device M and the cache address M are transmitted to the I / O manager A.

コントローラAは、コントローラBによって送信されたキャッシュデバイスMの識別子及びキャッシュアドレスMを受信し、書き込まれるデータのキャッシュアドレスMを、PCIeスイッチングデバイスを介して送信する。 The controller A receives the identifier and cache address M of the cache device M transmitted by the controller B, and transmits the cache address M of the data to be written via the PCIe switching device.

ステップ408:ホストは書き込まれるデータを入出力マネージャAに送信する。 Step 408: The host sends the data to be written to the I / O manager A.

入出力マネージャAはキャッシュデバイスMの識別子及びキャッシュアドレスMを受信し、ホストによって送信されたデータ書込み要求に応答する。ホストは、書き込まれるデータを入出力マネージャAに送信する。 The I / O manager A receives the identifier of the cache device M and the cache address M, and responds to the data write request transmitted by the host. The host sends the written data to the I / O manager A.

ステップ409:書き込まれるデータをキャッシュアドレスMに書き込む。 Step 409: Write the data to be written to the cache address M.

入出力マネージャAは、ホストによって送信された書き込まれるデータを受信し、キャッシュデバイスMの識別子及びキャッシュアドレスMに従って、書き込まれるデータを、PCIeスイッチングデバイスAを介してキャッシュアドレスMに直接書き込む。入出力マネージャAは、PCIeスイッチングデバイスAを介して、キャッシュデバイスMによって送信された、書き込まれるデータの書込みに成功したことを示す応答を受信する。入出力マネージャAは、データ書込み要求が完了したことを示す応答をホストに送信し、書込み要求動作が完了したことをホストに通知する。 The input / output manager A receives the written data transmitted by the host, and writes the written data directly to the cache address M via the PCIe switching device A according to the identifier of the cache device M and the cache address M. The input / output manager A receives a response indicating that the data to be written has been successfully written, which is transmitted by the cache device M, via the PCIe switching device A. The I / O manager A sends a response indicating that the data write request is completed to the host, and notifies the host that the write request operation is completed.

ステップ410:コントローラBに、書き込まれるデータがキャッシュアドレスMに書き込まれることを通知する。 Step 410: Notify the controller B that the data to be written is written to the cache address M.

入出力マネージャAは、書き込まれるデータをキャッシュアドレスMに書き込むことに成功し、コントローラBに、書き込まれるデータがキャッシュアドレスMに書き込まれることを通知する。これは特に、入出力マネージャAが通知を、PCIeスイッチングデバイスAを介してコントローラAに転送すること、及びコントローラAが、通知を、PCIeスイッチングデバイスBを介してコントローラBに転送すること;又は、入出力マネージャAが、通知を、PCIeスイッチングデバイスA又はPCIeスイッチングデバイスBを介してコントローラBに直接送信することを含む。 The input / output manager A succeeds in writing the data to be written to the cache address M, and notifies the controller B that the data to be written is written to the cache address M. This is in particular that the I / O manager A forwards the notification to the controller A via the PCIe switching device A, and the controller A forwards the notification to the controller B via the PCIe switching device B; The input / output manager A includes transmitting the notification directly to the controller B via the PCIe switching device A or the PCIe switching device B.

ステップ411:コントローラBは、書き込まれるデータのアドレスと、キャッシュデバイスMと、キャッシュアドレスMとの間の対応関係を確立する。 Step 411: The controller B establishes a correspondence between the address of the data to be written, the cache device M, and the cache address M.

コントローラBは、入出力マネージャAによって送信される通知に従って、書き込まれるデータのアドレスと、キャッシュデバイスMと、キャッシュアドレスMとの間の対応関係を確立する。 The controller B establishes a correspondence relationship between the address of the data to be written, the cache device M, and the cache address M according to the notification transmitted by the input / output manager A.

キャッシュデバイスMが、書き込まれるデータのアドレスとキャッシュアドレスMとの間の対応関係をどのように確立するかについては、上記の実施形態における説明を参照し、ここでは詳細を繰り返し説明することはしない。 Regarding how the cache device M establishes the correspondence between the address of the data to be written and the cache address M, the description in the above embodiment is referred to, and the details are not repeatedly described here. ..

キャッシュデバイスNは、書き込まれるデータに対しキャッシュアドレスNを割り当て、それによって、書き込まれるデータのアドレスと、キャッシュアドレスNとの間の対応関係を確立する。キャッシュデバイスNは、コントローラAによって送信されたキャッシュアドレス割当て命令から、書き込まれるデータのアドレスを取得してもよく、キャッシュアドレスNを割り当てた後、キャッシュデバイスNは、書き込まれるデータのアドレスと、キャッシュアドレスNとの間の対応関係を確立する。 The cache device N assigns a cache address N to the data to be written, thereby establishing a correspondence between the address of the data to be written and the cache address N. The cache device N may acquire the address of the data to be written from the cache address allocation instruction transmitted by the controller A, and after allocating the cache address N, the cache device N sets the address of the data to be written and the cache. Establish a correspondence with the address N.

キャッシュデバイスMにキャッシュされる書き込まれるデータの喪失を防ぐために、コントローラAが書き込まれるデータのターゲットLUのホームコントローラでないシナリオにおいて、書き込まれるデータが、キャッシュとしての役割を果たす複数のキャッシュデバイスを必要とするとき、入出力マネージャAは、データ書込み要求をコントローラBに送信する。そのプロセスについては、上記の実施形態における説明を参照されたい。コントローラBによって、書き込まれるデータのキャッシュアドレスを取得するプロセスについては、コントローラAが書き込まれるデータのターゲットLUのホームコントローラであり、コントローラAが複数のキャッシュデバイスのキャッシュアドレスを取得するシナリオを参照されたい。他のステップについても、上記の実施形態における説明を参照し、ここでは詳細を繰り返し説明することはしない。 In order to prevent the loss of the written data cached in the cache device M, the written data requires a plurality of cache devices that act as caches in a scenario in which the controller A is not the home controller of the target LU of the written data. At that time, the I / O manager A sends a data write request to the controller B. For the process, refer to the description in the above embodiment. For the process of acquiring the cache address of the data to be written by the controller B, refer to the scenario in which the controller A is the home controller of the target LU of the data to be written and the controller A acquires the cache addresses of a plurality of cache devices. .. The other steps will also be referred to in the above embodiments, and the details will not be repeated here.

ホストがデータをストレージアレイに書き込んだ後、ホストは書き込まれたデータにアクセスし、すなわち、データ読出し要求を送信する。特定のプロセスが図5に示される。 After the host writes the data to the storage array, the host accesses the written data, i.e. sends a data read request. The specific process is shown in FIG.

ステップ501:データ読出し要求を送信する。 Step 501: Send a data read request.

ホストが、データ読出し要求を入出力マネージャAに送信する。データ読出し要求は、読み出されるデータのアドレスを保持する。読み出されるデータのアドレスは、読み出されるデータが位置する論理ユニットLUの識別子と、読み出されるデータのLBAと、読み出されるデータの長さとを含む。特に、ホストは、SCSIプロトコルを用いることによって、データ読出し要求を入出力マネージャAに送信してもよいが、これは本発明によって制限されるものではない。説明を容易にするために、ここで読み出されるデータは、上記で説明した書き込まれるデータである。 The host sends a data read request to the I / O manager A. The data read request holds the address of the data to be read. The address of the data to be read includes the identifier of the logical unit LU in which the data to be read is located, the LBA of the data to be read, and the length of the data to be read. In particular, the host may send a data read request to the I / O manager A by using the SCSI protocol, but this is not limited by the present invention. For ease of explanation, the data read here is the data to be written as described above.

ステップ502:データ読出し要求をコントローラAに送信する。 Step 502: Send a data read request to controller A.

入出力マネージャAは、ホストによって送信されたデータ読出し要求を受信し、データ読出し要求を、PCIeスイッチングデバイスAを介してコントローラAに送信する。 The input / output manager A receives the data read request transmitted by the host, and transmits the data read request to the controller A via the PCIe switching device A.

ステップ503:コントローラAは、キャッシュデバイスMの識別子及びキャッシュアドレスMを入出力マネージャAに送信する。 Step 503: The controller A transmits the identifier of the cache device M and the cache address M to the I / O manager A.

コントローラAが、読み出されるデータが位置するLUのホームコントローラであり、読み出されるデータがキャッシュデバイスM等のキャッシュデバイスにおいてキャッシュされるとき、データ読出し要求に従って、読み出されるデータのアドレスと、キャッシュデバイスの識別子と、キャッシュアドレスとの間の対応関係が問い合わせされ、読み出されるデータをキャッシュデバイスMにキャッシュするのに用いられるキャッシュアドレスMが判断される。読み出されるデータが依然としてキャッシュデバイスM内にキャッシュされているとき、キャッシュデバイスM内の読み出されるデータのキャッシュアドレスはキャッシュアドレスMである。コントローラAは、キャッシュデバイスMの識別子及びキャッシュアドレスMを、PCIeスイッチングデバイスAを介して入出力マネージャAに送信する。 When the controller A is the home controller of the LU in which the data to be read is located and the data to be read is cached in a cache device such as the cache device M, the address of the data to be read and the identifier of the cache device are obtained according to the data read request. The correspondence between the data and the cache address is inquired, and the cache address M used to cache the read data in the cache device M is determined. When the data to be read is still cached in the cache device M, the cache address of the data to be read in the cache device M is the cache address M. The controller A transmits the identifier of the cache device M and the cache address M to the input / output manager A via the PCIe switching device A.

ステップ504:キャッシュアドレスMから読み出されるデータを読み出す。 Step 504: Read the data read from the cache address M.

入出力マネージャAは、キャッシュデバイスMの識別子及びキャッシュアドレスMに従って、PCIeスイッチングデバイスAを介してキャッシュアドレスMから読み出されるデータを直接読み出す。 The input / output manager A directly reads the data read from the cache address M via the PCIe switching device A according to the identifier of the cache device M and the cache address M.

ステップ505:読み出されるデータを返す。 Step 505: Returns the data to be read.

入出力マネージャAは、キャッシュアドレスMから読み出されるデータを読み出し、読み出されるデータをホストに返す。 The input / output manager A reads the data read from the cache address M and returns the read data to the host.

入出力マネージャAが、データ読出し要求に従って、読み出されるデータのクエリ要求を、PCIeスイッチングデバイスAを介してコントローラAに送信し、コントローラAが、読み出されるデータが位置するLUのホームコントローラでないとき、コントローラAは、読み出されるデータが位置するLUとホームコントローラとの間の対応関係を問い合わせ、コントローラBが、読み出されるデータが位置するLUのホームコントローラであると判断する。コントローラAは、読み出されるデータのクエリ要求を、PCIeスイッチングデバイスBを介してコントローラBに送信する。上記の書き込まれるデータが依然として、ここで言及される読み出されるデータであることが例として用いられる。したがって、読み出されるデータのアドレスは、上記で記載した書き込まれるデータのアドレスである。読み出されるデータが依然としてキャッシュデバイスM内にキャッシュされているとき、キャッシュデバイスM内の読み出されるデータのキャッシュアドレスはキャッシュアドレスMである。コントローラBは、書き込まれるデータのアドレスと、キャッシュデバイスMの識別子と、キャッシュアドレスMとの間の対応関係を問い合わせ、読み出されるデータをキャッシュするキャッシュデバイスMの識別子及びキャッシュアドレスMを判断し、キャッシュデバイスMの識別子及びキャッシュアドレスMを、PCIeスイッチングデバイスBを介してコントローラAに送信する。コントローラAは、キャッシュデバイスMの識別子及びキャッシュアドレスMを、PCIeスイッチングデバイスAを介して入出力マネージャAに送信する。コントローラBも、キャッシュデバイスMの識別子及びキャッシュアドレスMを、PCIeスイッチングデバイスA又はPCIeスイッチングデバイスBを介して入出力マネージャAに直接送信してもよい。後続の読出し動作については、上記の実施形態における読出し動作を参照し、ここでは詳細を繰り返し説明することはしない。 The input / output manager A sends a query request for the data to be read to the controller A via the PCIe switching device A in accordance with the data read request, and when the controller A is not the home controller of the LU in which the data to be read is located, the controller A inquires about the correspondence between the LU in which the data to be read is located and the home controller, and determines that the controller B is the home controller of the LU in which the data to be read is located. The controller A transmits a query request for the data to be read to the controller B via the PCIe switching device B. It is used as an example that the above written data is still the read data referred to herein. Therefore, the address of the data to be read is the address of the data to be written described above. When the data to be read is still cached in the cache device M, the cache address of the data to be read in the cache device M is the cache address M. The controller B inquires about the correspondence between the address of the data to be written, the identifier of the cache device M, and the cache address M, determines the identifier and cache address M of the cache device M that caches the read data, and caches the cache. The device M identifier and cache address M are transmitted to the controller A via the PCIe switching device B. The controller A transmits the identifier of the cache device M and the cache address M to the input / output manager A via the PCIe switching device A. The controller B may also transmit the identifier of the cache device M and the cache address M directly to the input / output manager A via the PCIe switching device A or the PCIe switching device B. For the subsequent read operation, refer to the read operation in the above embodiment, and the details will not be described repeatedly here.

上記の書き込まれるデータが依然としてここで言及される読み出されるデータであることが例として用いられる。したがって、読み出されるデータのアドレスは、上記で記載した書き込まれるデータのアドレスである。読み出されるデータが既にターゲットSSDに記憶されているとき、読み出されるデータが位置するLUのホームコントローラが、読み出されるデータのアドレス(書き込まれるデータのアドレス)と、ターゲットSSDにおける読み出されるデータの記憶アドレスとの間の対応関係を問い合わせ、ターゲットSSDにおける読み出されるデータの記憶アドレスを取得し、ターゲットSSDにおける読み出されるデータの記憶アドレスを、PCIeスイッチングデバイスA又はPCIeスイッチングデバイスBを介して入出力マネージャAに送信する。ターゲットSSDにおける読み出されるデータの記憶アドレスは、ターゲットSSDのコントローラの識別子と、ターゲットSSDにおける読み出されるデータの論理記憶アドレスとを含む。入出力マネージャAは、ターゲットSSDにおける読み出されるデータの記憶アドレスに従って、PCIeスイッチングデバイスA又はPCIeスイッチングデバイスBを介して直接、ターゲットSSDにおける読み出されるデータの論理記憶アドレスから読み出されるデータを読み出す。 It is used as an example that the above written data is still the read data referred to herein. Therefore, the address of the data to be read is the address of the data to be written described above. When the data to be read is already stored in the target SSD, the home controller of the LU where the data to be read is located has the address of the data to be read (the address of the data to be written) and the storage address of the data to be read in the target SSD. Inquire about the correspondence between the two, acquire the storage address of the data to be read in the target SSD, and transmit the storage address of the data to be read in the target SSD to the input / output manager A via the PCIe switching device A or the PCIe switching device B. do. The storage address of the data to be read in the target SSD includes the identifier of the controller of the target SSD and the logical storage address of the data to be read in the target SSD. The input / output manager A reads the data read from the logical storage address of the data read in the target SSD directly via the PCIe switching device A or the PCIe switching device B according to the storage address of the data read in the target SSD.

上記の実施形態において、読み出されるデータがターゲットSSDにおいて部分的に保存され、上記で記載したように本発明のこの実施形態においてキャッシュデバイスMに部分的にキャッシュされているとき、入出力マネージャAは、キャッシュデバイスにおける読み出されるデータのキャッシュアドレスに従ってPCIeスイッチングデバイスA又はPCIeスイッチングデバイスBを介してキャッシュアドレスからデータを直接読み出し;入出力マネージャAは、ターゲットSSDのコントローラの識別子及びターゲットSSD内の読み出されるデータの論理記憶アドレスに従ってPCIeスイッチングデバイスA又はPCIeスイッチングデバイスBを介してターゲットSSD内の論理記憶アドレスからデータを直接読み出す。これについてはここでは詳細に説明しない。 In the above embodiment, when the data to be read is partially stored in the target SSD and partially cached in the cache device M in this embodiment of the invention as described above, the I / O Manager A The data is read directly from the cache address via the PCIe switching device A or the PCIe switching device B according to the cache address of the data read in the cache device; the input / output manager A reads the controller identifier of the target SSD and the read in the target SSD. Data is read directly from the logical storage address in the target SSD via the PCIe switching device A or the PCIe switching device B according to the logical storage address of the data. This is not described in detail here.

複数のキャッシュデバイスが、読み出されるデータをキャッシュする動作を実行するとき、通常、読み出されるデータが位置するLUのホームコントローラが、入出力マネージャAに、読み出されるデータ及びキャッシュアドレスMをキャッシュする一次キャッシュデバイスMの識別子を返す。他の手続き的動作については、上記の実施形態における読出し動作を参照し、ここでは詳細を繰り返し説明することはしない。 When a plurality of cache devices execute an operation of caching the data to be read, the home controller of the LU in which the data to be read is usually located is a primary cache that caches the data to be read and the cache address M in the input / output manager A. Returns the device M identifier. For other procedural operations, the read operation in the above embodiment is referred to, and the details are not repeatedly described here.

ストレージアレイにおいて、データ重複排除が行われる。これは、ストレージ空間を節約し、ストレージコストを低減することができる。本発明の実施形態による図2に示すストレージアレイにおいて、ホストはデータ書込み要求を入出力マネージャAに送信し、データ書込み要求は書き込まれるデータのアドレスを保持する。入出力マネージャAは、データ書込み要求を、PCIeスイッチングデバイスAを介してコントローラAに送信する。コントローラAが書き込まれるデータのターゲットLUのホームコントローラであるとき、コントローラAはキャッシュデバイスMの識別子及びキャッシュアドレスMを入出力マネージャAに提供する。入出力マネージャAは、書き込まれるデータを、キャッシュデバイスMの識別子及びキャッシュアドレスMに従って、PCIeスイッチングデバイスA又はPCIeスイッチングデバイスBを介してキャッシュアドレスMに直接書き込む。 Data deduplication is performed in the storage array. This can save storage space and reduce storage costs. In the storage array shown in FIG. 2 according to the embodiment of the present invention, the host sends a data write request to the I / O manager A, and the data write request holds the address of the data to be written. The input / output manager A transmits a data write request to the controller A via the PCIe switching device A. When the controller A is the home controller of the target LU of the data to be written, the controller A provides the identifier of the cache device M and the cache address M to the input / output manager A. The input / output manager A writes the data to be written directly to the cache address M via the PCIe switching device A or the PCIe switching device B according to the identifier and the cache address M of the cache device M.

キャッシュデバイスMにキャッシュされる書き込まれるデータがストレージアレイのSSDに記憶される前に、データ重複排除が行われる。これは、ストレージ空間を効果的に節約し、ストレージ空間の利用率を改善することができる。図2に示すストレージアレイを例として用いると、ストレージアレイSSDに記憶されるデータに関して、データがキャッシュデバイスMによってSSD内に記憶される前に、データ重複排除が実行される。データ重複排除技術は、予め設定された規則に従ってデータをデータブロックに分割し、各データブロックの固有値を計算することである。データブロックの固有値は通常、ハッシュ(Hash)アルゴリズムを用いることによって計算される。ハッシュ演算は、データブロックに対して行われ、ハッシュ値が得られ、このハッシュ値は固有値として用いられる。一般的なハッシュアルゴリズムは、MD5、SHA1、SHA−256、SHA−512等を含む。例えば、データブロックAの固有値がSSDに既に記憶されたデータブロックBの固有値と同じである場合、データブロックA及びデータブロックBは同一である。したがって、重複データブロックAはキャッシュデバイスMから削除され、SSDにデータブロックBを記憶するための論理記憶アドレスが、SSD内のデータブロックAの論理記憶アドレスとして用いられる。 Data deduplication is performed before the data to be written cached in the cache device M is stored in the SSD of the storage array. This can effectively save storage space and improve storage space utilization. Using the storage array shown in FIG. 2 as an example, data deduplication is executed for the data stored in the storage array SSD before the data is stored in the SSD by the cache device M. The data deduplication technique divides data into data blocks according to preset rules and calculates the eigenvalues of each data block. The eigenvalues of a data block are usually calculated by using the Hash algorithm. The hash operation is performed on the data block to obtain a hash value, and this hash value is used as an eigenvalue. Common hash algorithms include MD5, SHA1, SHA-256, SHA-512 and the like. For example, when the eigenvalue of the data block A is the same as the eigenvalue of the data block B already stored in the SSD, the data block A and the data block B are the same. Therefore, the duplicate data block A is deleted from the cache device M, and the logical storage address for storing the data block B in the SSD is used as the logical storage address of the data block A in the SSD.

特定の実施態様では、データブロックの固有値の比較がコントローラによって実施される。データ重複排除はストレージアレイにおいて行われ、各一意のデータブロックが固有値を有するので、多くの固有値が生成される。ストレージアレイ内のコントローラ間の均衡を実施するために、各コントローラは、ハッシュ分布アルゴリズム等のデータブロック固有値分布アルゴリズムに従って、いくつかのデータブロックの固有値を比較する役割を果たす。このようにして、各コントローラは、データブロック固有値分布アルゴリズムに従ってストレージアレイ内に記憶されたいくつかの一意のデータの固有値インデックスのみを維持する。いくつかの一意のデータの固有値インデックスは、固有値インデックスセットと呼ばれる。コントローラは、SSDに書き込まれることになるデータブロックの固有値のための固有値インデックスセットを問い合わせ、固有値が固有値インデックスセット内の固有値と同じであるか否かを判断する。例えば、コントローラAは、固有値分布アルゴリズムに従って固有値インデックスセットAを維持する必要があり、したがって、コントローラAが固有値インデックスセットA内の全ての固有値のホームコントローラであるか;又は固有値インデックスセットAからの固有値がデータブロックXの固有値と同じであるコントローラが、データブロックXの固有値のホームコントローラ及び固有値インデックスセットA内の全ての固有値のホームコントローラの双方である。 In certain embodiments, the controller performs a comparison of the eigenvalues of the data blocks. Data deduplication is done in the storage array and each unique data block has eigenvalues, so many eigenvalues are generated. To achieve equilibrium between the controllers in the storage array, each controller serves to compare the eigenvalues of several data blocks according to a data block eigenvalue distribution algorithm, such as a hash distribution algorithm. In this way, each controller maintains only the eigenvalue index of some unique data stored in the storage array according to the data block eigenvalue distribution algorithm. The eigenvalue index of some unique data is called the eigenvalue index set. The controller queries the eigenvalue index set for the eigenvalues of the data blocks that will be written to the SSD and determines if the eigenvalues are the same as the eigenvalues in the eigenvalue index set. For example, controller A must maintain eigenvalue index set A according to the eigenvalue distribution algorithm, so is controller A the home controller for all eigenvalues in eigenvalue index set A; or eigenvalues from eigenvalue index set A. The controller in which is the same as the eigenvalue of the data block X is both the eigenvalue home controller of the data block X and the eigenvalue home controller of all the eigenvalues in the eigenvalue index set A.

特に、固有値インデックスセットは、図6に示す固有値インデックスによって形成される。例えば、固有値1のインデックスは、固有値1と、データブロック記憶アドレス1と、基準カウントとを含む。データブロック記憶アドレス1は、SSD A内の一意のデータブロックCの記憶アドレス、又はキャッシュデバイス内のデータブロックCの記憶アドレスを表すのに用いられる。SSD A内のデータブロックCの記憶アドレスは、SSD Aのコントローラの識別子と、SSD A内に記憶されるデータブロックCの論理記憶アドレスとを含んでもよい。キャッシュデバイス内のデータブロックCの記憶アドレスは、キャッシュデバイスの識別子と、キャッシュアドレスとを含む。固有値1はデータブロックCの固有値を表す。基準カウントは、固有値1を有するデータブロックの量を表す。例えば、データブロックAがストレージアレイ内に初めて記憶されるとき、固有値1を有するデータブロックの量が1である場合、基準カウントは1である。同じ固有値1を有するデータブロックDがSSD内に再び記憶されるとき、データブロックDは、データ重複排除の原理に従ってSSD内に保存されないが、基準カウントは1だけ増加し、2に更新される。要約すると、固有値インデックス内のデータブロック記憶アドレスは、キャッシュデバイス内のデータブロックの記憶アドレスであるか、又はターゲットハードディスク内のデータブロックの記憶アドレスである。キャッシュデバイス内のデータブロックの記憶アドレスは、キャッシュデバイスの識別子と、キャッシュデバイスにおけるデータブロックのキャッシュアドレスとを含み;ターゲットハードディスクにおけるデータブロックの記憶アドレスは、ターゲットハードディスクのコントローラの識別子と、ターゲットハードディスク内のデータブロックを記憶するための論理記憶アドレスとを含む。図6に示す固有値インデックスは、例示的な実施態様にすぎず、固有値インデックスはマルチレベルインデックスであってもよい。インデックスは、データ重複排除のために用いることができる任意の形態のインデックスであってもよく、これは本発明のこの実施形態によって制限されるものではない。 In particular, the eigenvalue index set is formed by the eigenvalue indexes shown in FIG. For example, the index of eigenvalue 1 includes the eigenvalue 1, the data block storage address 1, and the reference count. The data block storage address 1 is used to represent the storage address of the unique data block C in the SSD A or the storage address of the data block C in the cache device. The storage address of the data block C in the SSD A may include the identifier of the controller of the SSD A and the logical storage address of the data block C stored in the SSD A. The storage address of the data block C in the cache device includes the identifier of the cache device and the cache address. The eigenvalue 1 represents the eigenvalue of the data block C. The reference count represents the amount of data blocks having an eigenvalue of 1. For example, when the data block A is stored in the storage array for the first time, if the amount of the data block having the eigenvalue 1 is 1, the reference count is 1. When the data block D having the same unique value 1 is stored in the SSD again, the data block D is not stored in the SSD according to the principle of data deduplication, but the reference count is increased by 1 and updated to 2. In summary, the data block storage address in the eigenvalue index is either the storage address of the data block in the cache device or the storage address of the data block in the target hard disk. The storage address of the data block in the cache device includes the cache device identifier and the cache address of the data block in the cache device; the data block storage address in the target hard disk includes the controller identifier of the target hard disk and in the target hard disk. Contains a logical storage address for storing data blocks of. The eigenvalue index shown in FIG. 6 is merely an exemplary embodiment, and the eigenvalue index may be a multi-level index. The index may be any form of index that can be used for data deduplication, which is not limited by this embodiment of the invention.

図2に示すストレージアレイにおいて、コントローラAが、キャッシュデバイスM内にキャッシュされるデータブロックのターゲットLUのホームコントローラとしての役割を果たすことが例として用いられる。上記の実施形態を参照すると、データ書込み要求を受信した後、入出力マネージャAは、コントローラAからキャッシュデバイスMの識別子及びキャッシュアドレスMを取得する。入出力マネージャAは、書き込まれるデータを、キャッシュデバイスMの識別子及びキャッシュアドレスMに従って、PCIeスイッチングデバイスA又はPCIeスイッチングデバイスBを介してキャッシュアドレスMに直接書き込む。コントローラAは、書き込まれるデータのアドレスと、キャッシュデバイスMの識別子と、キャッシュアドレスMとの間の対応関係を確立する。ホームコントローラAのLUにキャッシュされたデータがキャッシュデバイスMからSSDに書き込まれるとき、キャッシュアドレスMにおけるデータが例として用いられる。通常、データ重複排除が行われているとき、データブロックの固有値が計算される必要がある。データブロックの固有値を計算するために、データは、データブロックを取得するために、固有の規則に従ってまず分割される必要がある。データブロックへの分割のための2つの方法、すなわち、固定長のデータブロックにデータを分割すること、又は可変長のデータブロックにデータを分割することが存在してもよい。本発明のこの実施形態において、データが固定長のデータブロックに分割されることが例として用いられる。例えば、データは、4KBの大きさのデータブロックに分割される。例示的に、キャッシュアドレスMに書き込まれる、書き込まれるデータは、4KBの大きさのいくつかのデータブロックに分割される。コントローラAは、各データブロックのLUの識別子と、データブロックのLBAと、データブロックの長さとを記録する。データブロックのLUの識別子、データブロックのLBA、及びデータブロックの長さは、これ以降、データブロック記憶アドレスと呼ばれる。4KBの大きさのいくつかのデータブロック内のデータブロックXを例として用いて(ここで、データブロックXは重複排除されることになるデータブロック(data block to be deduplicated)と呼ばれ、短縮して、重複排除されるデータブロック(to−be−deduplicated data block)としても知られる)、コントローラAは、PCIeスイッチングデバイスA又はPCIeスイッチングデバイスBを介してデータブロック固有値要求をキャッシュデバイスMに送信する。固有値要求は、データブロックXのアドレスを含む。キャッシュデバイスMは、データ重複排除を実行するために、PCIeスイッチングデバイスA又はPCIeスイッチングデバイスBを介してデータブロックXの固有値をコントローラAに送信する。図7に示すように、特定のプロセスは以下を含む: In the storage array shown in FIG. 2, it is used as an example that the controller A plays a role as a home controller of the target LU of the data block cached in the cache device M. Referring to the above embodiment, after receiving the data write request, the input / output manager A acquires the identifier of the cache device M and the cache address M from the controller A. The input / output manager A writes the data to be written directly to the cache address M via the PCIe switching device A or the PCIe switching device B according to the identifier and the cache address M of the cache device M. The controller A establishes a correspondence relationship between the address of the data to be written, the identifier of the cache device M, and the cache address M. When the data cached in the LU of the home controller A is written from the cache device M to the SSD, the data at the cache address M is used as an example. Normally, when data deduplication is taking place, the eigenvalues of the data blocks need to be calculated. In order to calculate the eigenvalues of a data block, the data must first be divided according to the unique rules to get the data block. There may be two methods for dividing into data blocks, namely dividing the data into fixed-length data blocks or dividing the data into variable-length data blocks. In this embodiment of the invention, it is used as an example that the data is divided into fixed length data blocks. For example, the data is divided into data blocks with a size of 4KB. Illustratively, the data to be written, which is written to the cache address M, is divided into several data blocks having a size of 4KB. The controller A records the LU identifier of each data block, the LBA of the data block, and the length of the data block. The LU identifier of the data block, the LBA of the data block, and the length of the data block are hereafter referred to as the data block storage address. Using the data block X in some data blocks with a size of 4KB as an example (where the data block X is called a data block to be deduplicated) and shortened. The controller A transmits a data block unique value request to the cache device M via the PCIe switching device A or the PCIe switching device B (also known as a to-be-deduplicated data block). .. The eigenvalue request includes the address of the data block X. The cache device M transmits the unique value of the data block X to the controller A via the PCIe switching device A or the PCIe switching device B in order to perform data deduplication. As shown in Figure 7, certain processes include:

ステップ701:キャッシュデバイスMがデータブロックXの固有値を計算する。 Step 701: The cache device M calculates the eigenvalues of the data block X.

コントローラAが、キャッシュデバイスMに、データブロックXの固有値を取得する命令を送信する。命令はデータブロックXのアドレスを保持する。キャッシュデバイスMは、コントローラAによって送信されたデータブロックXの固有値を取得する命令を受信する。この場合、キャッシュデバイスMは、データブロックXのアドレスと、キャッシュアドレスBとの間の対応関係を記憶し、データブロックXの固有値を取得する命令内に保持されているデータブロックXのアドレスに従ってデータブロックXを判断し、データブロックXの固有値を計算し、キャッシュアドレスXにデータブロックXの固有値をキャッシュする。 The controller A transmits an instruction to acquire the eigenvalue of the data block X to the cache device M. The instruction holds the address of the data block X. The cache device M receives an instruction to acquire the eigenvalue of the data block X transmitted by the controller A. In this case, the cache device M stores the correspondence between the address of the data block X and the cache address B, and data according to the address of the data block X held in the instruction for acquiring the unique value of the data block X. The block X is determined, the unique value of the data block X is calculated, and the unique value of the data block X is cached in the cache address X.

ステップ702:データブロックXの固有値をコントローラAに送信する。 Step 702: The eigenvalue of the data block X is transmitted to the controller A.

キャッシュデバイスMは、データブロックXの固有値を取得し、データブロックXの固有値の応答メッセージを、データブロックXが位置するLUのホームコントローラAに送信する。データブロックXの固有値の応答メッセージは、データブロックXの固有値を保持する。更に、データブロックXの固有値の応答メッセージは、データブロックXの固有値をキャッシュするキャッシュデバイスMの識別子と、キャッシュデバイスMにおけるデータブロックXの固有値のキャッシュアドレスXとを更に保持する。 The cache device M acquires the eigenvalue of the data block X and transmits a response message of the eigenvalue of the data block X to the home controller A of the LU in which the data block X is located. The response message of the eigenvalue of the data block X holds the eigenvalue of the data block X. Further, the response message of the unique value of the data block X further holds the identifier of the cache device M that caches the unique value of the data block X and the cache address X of the unique value of the data block X in the cache device M.

ステップ703:固有値分布アルゴリズムに従って、データブロックXの固有値のホームコントローラを判断する。 Step 703: Determine the home controller for the eigenvalues of the data block X according to the eigenvalue distribution algorithm.

ステップ704:コントローラAはローカル固有値インデックスセットAを問い合わせる。 Step 704: Controller A queries the local eigenvalue index set A.

コントローラAがデータブロックXの固有値のホームコントローラであるとき、コントローラAはローカル固有値インデックスセットAを問い合わせ、固有値インデックスセットA内に、データブロックXの固有値と同じ固有値が存在するか否かを判断する。 When the controller A is the home controller of the eigenvalues of the data block X, the controller A queries the local eigenvalue index set A and determines whether or not the same eigenvalues as the eigenvalues of the data block X exist in the eigenvalue index set A. ..

データブロックXの固有値と同じ固有値が固有値インデックスセットA内に存在するとき、ステップ705a及び706aが実行される。図6に示すように、データブロックXの固有値は固有値1と同じである。すなわち、データブロックXはデータブロックAと同じである。 Steps 705a and 706a are executed when the same eigenvalues as the eigenvalues of the data block X exist in the eigenvalue index set A. As shown in FIG. 6, the eigenvalue of the data block X is the same as the eigenvalue 1. That is, the data block X is the same as the data block A.

ステップ705a:コントローラAは、固有値1のインデックスにおける基準カウントを更新する。 Step 705a: Controller A updates the reference count at the index of eigenvalue 1.

固有値1のインデックスにおける基準カウントは1であり、すなわち、データブロックAのみがストレージアレイ内に存在する。データブロックXの固有値は固有値1と同じであることがわかり、したがって、基準カウントが2に更新される。 The reference count at the index of eigenvalue 1 is 1, i.e., only data block A is present in the storage array. It turns out that the eigenvalues of the data block X are the same as the eigenvalues 1, so the reference count is updated to 2.

ステップ706a:コントローラAは、キャッシュデバイスMに、データブロックXを削除するように命令する。 Step 706a: Controller A instructs cache device M to delete the data block X.

コントローラAは、キャッシュデバイスMに、データブロックXを削除するように命令する。コントローラAは、データブロックXのアドレスと、データブロックXの固有値との間の対応関係を確立するか、又はコントローラAは、データブロックXのアドレスと、データブロックXの固有値と、データブロックAの記憶アドレスとの間の対応関係を確立する。 The controller A instructs the cache device M to delete the data block X. The controller A establishes a correspondence between the address of the data block X and the unique value of the data block X, or the controller A has the address of the data block X, the unique value of the data block X, and the unique value of the data block A. Establish a correspondence with the storage address.

ステップ704において、データブロックXが重複データブロックであると判断される。したがって、データブロックXはSSD内に保存される必要がなく、キャッシュデバイスMはデータブロックXを削除するように命令される。 In step 704, the data block X is determined to be a duplicate data block. Therefore, the data block X does not need to be stored in the SSD, and the cache device M is instructed to delete the data block X.

固有値インデックスセットA内にデータブロックXの固有値と同じ固有値が存在しないとき、ステップ705b、706b、707、708、709及び710が実行される。 Steps 705b, 706b, 707, 708, 709 and 710 are executed when the same eigenvalues as the eigenvalues of the data block X do not exist in the eigenvalue index set A.

ステップ705b:キャッシュデバイスM内にキャッシュされるデータブロックXのキャッシュアドレスBを取得する。 Step 705b: Acquire the cache address B of the data block X cached in the cache device M.

コントローラAは、キャッシュデバイスMにおけるデータブロックXの固有値のキャッシュアドレスXに従って、キャッシュデバイスMからPCIeスイッチングデバイスAを介してデータブロックXのキャッシュアドレスBを取得する。 The controller A acquires the cache address B of the data block X from the cache device M via the PCIe switching device A according to the cache address X of the unique value of the data block X in the cache device M.

ステップ706b:キャッシュデバイスMの識別子及びキャッシュアドレスBをターゲットSSDのコントローラに送信する。 Step 706b: The identifier of the cache device M and the cache address B are transmitted to the controller of the target SSD.

コントローラAは、キャッシュデバイスMの識別子とキャッシュアドレスBを取得し、キャッシュデバイスMの識別子及びキャッシュアドレスBを、PCIeスイッチングデバイスA又はPCIeスイッチングデバイスBを介してターゲットSSDのコントローラに送信する。 The controller A acquires the identifier of the cache device M and the cache address B, and transmits the identifier of the cache device M and the cache address B to the controller of the target SSD via the PCIe switching device A or the PCIe switching device B.

ステップ707:ターゲットSSDのコントローラは、キャッシュアドレスBからデータブロックXを読み出す。 Step 707: The controller of the target SSD reads the data block X from the cache address B.

ターゲットSSDのコントローラは、キャッシュデバイスMの識別子及びキャッシュアドレスBを受信し、キャッシュデバイスMの識別子及びキャッシュアドレスBに従って、PCIeスイッチングデバイスA又はPCIeスイッチングデバイスBを介して、キャッシュアドレスBからデータブロックXを直接読み出す。 The controller of the target SSD receives the identifier of the cache device M and the cache address B, and according to the identifier and the cache address B of the cache device M, the data block X from the cache address B via the PCIe switching device A or the PCIe switching device B. Is read directly.

ステップ708:ターゲットSSDのコントローラは、ターゲットSSDにおけるデータブロックXの記憶アドレスをコントローラAに送信する。 Step 708: The controller of the target SSD transmits the storage address of the data block X in the target SSD to the controller A.

ターゲットSSDのコントローラは、キャッシュアドレスBからデータブロックXを読み出し、データブロックXをターゲットSSD内に記憶する。ターゲットSSDのコントローラは、ターゲットSSDにおけるデータブロックXの記憶アドレスを、PCIeスイッチングデバイスAを介してコントローラAに送信する。ターゲットSSD内のデータブロックXの記憶アドレスは、ターゲットSSDのコントローラの識別子と、ターゲットSSDにおけるデータブロックXを記憶するための論理記憶アドレスとを含む。 The controller of the target SSD reads the data block X from the cache address B and stores the data block X in the target SSD. The controller of the target SSD transmits the storage address of the data block X in the target SSD to the controller A via the PCIe switching device A. The storage address of the data block X in the target SSD includes the identifier of the controller of the target SSD and the logical storage address for storing the data block X in the target SSD.

ステップ709:コントローラAは、データブロックXの固有値インデックスを確立する。 Step 709: Controller A establishes an eigenvalue index for data block X.

コントローラAは、ターゲットSSDにおけるデータブロックXの記憶アドレスを受信し、データブロックXの固有値インデックスを確立し、基準カウントを1にセットする。コントローラAは、データブロックXのアドレスと、データブロックXの固有値と、ターゲットSSDにおけるデータブロックXの記憶アドレスとの間の対応関係を確立する。コントローラAもデータブロックXの固有値のキャッシュアドレスXを記録する必要がある。データブロックXの固有値がSSD内に記憶されるとき、コントローラAは、ターゲットSSDにおけるデータブロックXの固有値の記憶アドレスも記録する必要がある。 The controller A receives the storage address of the data block X in the target SSD, establishes the eigenvalue index of the data block X, and sets the reference count to 1. The controller A establishes a correspondence relationship between the address of the data block X, the eigenvalue of the data block X, and the storage address of the data block X in the target SSD. The controller A also needs to record the cache address X of the eigenvalue of the data block X. When the eigenvalue of the data block X is stored in the SSD, the controller A also needs to record the storage address of the eigenvalue of the data block X in the target SSD.

別の事例では、コントローラAはデータブロックXの固有値のホームコントローラではないが、単に、データブロックXが位置するLUのホームコントローラである。本発明のこの実施形態では、コントローラBがデータブロックXの固有値のホームコントローラであることが例として用いられ、コントローラAは、データブロックXの固有値をPCIeスイッチングデバイスA又はPCIeスイッチングデバイスBを介してコントローラBに送信する。コントローラBは、コントローラAによって送信されるデータブロックXの固有値を受信し、コントローラBの固有値インデックスセットBを問い合わせる。コントローラBが、固有値インデックスセットA内にデータブロックXの固有値と同じ固有値が存在すること、例えば、データブロックRの固有値がデータブロックXの固有値と同じであることを見つけると、コントローラBは、キャッシュデバイスMにデータブロックXを削除するように命令する。これは特に、コントローラBが、削除命令を、PCIeスイッチングデバイスBを介してコントローラAに送信することを含む。コントローラAは、削除命令を、PCIeスイッチングデバイスAを介してキャッシュデバイスMに送信し、キャッシュデバイスMはデータブロックXを削除する。コントローラBは、データブロックXの固有値と同じ固有値のインデックスの基準カウントを更新し、すなわち、基準カウントを1だけ増加させる。データブロックRが既にSSDに記憶されているとき、データブロックRのインデックスにおけるデータブロックRの記憶アドレスは、データブロックRを記憶するSSDのコントローラの識別子、及びデータブロックRをSSDに記憶するための論理記憶アドレスを含む。データブロックRがキャッシュデバイス内にあるとき、データブロックRのインデックスにおけるデータブロックRの記憶アドレスは、キャッシュデバイスの識別子及びキャッシュアドレスを含む。コントローラAは、データブロックXのアドレスと、データブロックXの固有値と、データブロックXの固有値のホームコントローラBのアドレスとの間の対応関係を確立し、したがって、コントローラAは、各データブロックのアドレスと、データブロックの固有値と、データブロックの記憶アドレスとの間の対応関係を必要とせず、コントローラAによって記憶されるデータ量が効率的に低減される。代替的に、コントローラAは、データブロックXのアドレスと、データブロックXの固有値と、データブロックRの記憶アドレスとの間の対応関係を確立する。その後データブロックXを読み出すとき、コントローラAは、データブロックXのアドレスと、データブロックXの固有値と、データブロックRの記憶アドレスとの間の対応関係を問い合わせることによって、データブロックRの記憶アドレスを直接判断することができ、入出力マネージャAは、PCIeスイッチングデバイスA又はPCIeスイッチングデバイスBを介して、データブロックRの記憶アドレスからデータブロックXを直接読み出し、それによってデータ読出し効率を改善する。 In another example, the controller A is not the home controller of the eigenvalues of the data block X, but is simply the home controller of the LU where the data block X is located. In this embodiment of the present invention, it is used as an example that the controller B is a home controller of the eigenvalue of the data block X, and the controller A transfers the eigenvalue of the data block X via the PCIe switching device A or the PCIe switching device B. Send to controller B. The controller B receives the eigenvalue of the data block X transmitted by the controller A and queries the eigenvalue index set B of the controller B. When the controller B finds that the eigenvalues of the data block X are the same as the eigenvalues of the data block X in the eigenvalue index set A, for example, the controller B finds that the eigenvalues of the data block R are the same as the eigenvalues of the data block X. Instruct device M to delete data block X. This specifically includes the controller B transmitting a delete instruction to the controller A via the PCIe switching device B. The controller A transmits a deletion instruction to the cache device M via the PCIe switching device A, and the cache device M deletes the data block X. The controller B updates the reference count of the index of the same eigenvalue as the eigenvalue of the data block X, that is, increases the reference count by one. When the data block R is already stored in the SSD, the storage address of the data block R in the index of the data block R is the identifier of the controller of the SSD that stores the data block R and the data block R for storing the data block R in the SSD. Includes logical storage address. When the data block R is in the cache device, the storage address of the data block R in the index of the data block R includes the identifier of the cache device and the cache address. The controller A establishes a correspondence between the address of the data block X, the unique value of the data block X, and the address of the home controller B of the unique value of the data block X, so that the controller A is the address of each data block. And, the correspondence between the unique value of the data block and the storage address of the data block is not required, and the amount of data stored by the controller A is efficiently reduced. Alternatively, the controller A establishes a correspondence between the address of the data block X, the eigenvalues of the data block X, and the storage address of the data block R. After that, when reading the data block X, the controller A obtains the storage address of the data block R by inquiring about the correspondence between the address of the data block X, the unique value of the data block X, and the storage address of the data block R. The input / output manager A can directly determine, and the input / output manager A directly reads the data block X from the storage address of the data block R via the PCIe switching device A or the PCIe switching device B, thereby improving the data reading efficiency.

コントローラAが、単に、データブロックXが位置するLUのホームコントローラであるが、データブロックXの固有値のホームコントローラではないとき、コントローラBは、データブロックXの固有値と同じ固有値が固有値インデックスセットB内に存在しないことを見つけ、コントローラBは、PCIeスイッチングデバイスBを介してコントローラAに要求を送信することによって、キャッシュデバイスMにおけるデータブロックXのキャッシュアドレスBを取得する。コントローラAは、PCIeスイッチングデバイスAを介してキャッシュデバイスMに要求を送信する。キャッシュデバイスMは、キャッシュデバイスMの識別子及びキャッシュアドレスBをコントローラBに送信する。コントローラBは、キャッシュデバイスMの識別子及びキャッシュアドレスBを、PCIeスイッチングデバイスA又はPCIeスイッチングデバイスBを介して(ここで、PCIeスイッチングデバイスAが例として用いられる)ターゲットSSDのコントローラに送信する。ターゲットSSDのコントローラは、キャッシュデバイスMの識別子及びキャッシュアドレスBに従って、PCIeスイッチングデバイスA又はPCIeスイッチングデバイスBを介して、キャッシュアドレスBからデータブロックXを直接読み出し、データブロックXをターゲットSSDに記憶する。ターゲットSSDのコントローラは、ターゲットSSD内のデータブロックXの記憶アドレスを、PCIeスイッチングデバイスA又はPCIeスイッチングデバイスBを介してコントローラBに送信する。コントローラBは、ターゲットSSD内のデータブロックXの記憶アドレスを受信し、データブロックXの固有値インデックスを確立し、インデックス内の基準カウントを1にセットする。コントローラBも、データブロックXの固有値のキャッシュアドレスXを記録する必要がある。データブロックXの固有値がSSDに記憶されるとき、コントローラBもデータブロックXの固有値の記憶アドレスをSSDに記録する必要がある。 When the controller A is simply the home controller of the LU in which the data block X is located, but is not the home controller of the eigenvalues of the data block X, the controller B has the same eigenvalues as the eigenvalues of the data block X in the eigenvalue index set B. The controller B obtains the cache address B of the data block X in the cache device M by sending a request to the controller A via the PCIe switching device B. The controller A transmits a request to the cache device M via the PCIe switching device A. The cache device M transmits the identifier of the cache device M and the cache address B to the controller B. The controller B transmits the identifier of the cache device M and the cache address B to the controller of the target SSD via the PCIe switching device A or the PCIe switching device B (where the PCIe switching device A is used as an example). The controller of the target SSD directly reads the data block X from the cache address B via the PCIe switching device A or the PCIe switching device B according to the identifier of the cache device M and the cache address B, and stores the data block X in the target SSD. .. The controller of the target SSD transmits the storage address of the data block X in the target SSD to the controller B via the PCIe switching device A or the PCIe switching device B. The controller B receives the storage address of the data block X in the target SSD, establishes the eigenvalue index of the data block X, and sets the reference count in the index to 1. The controller B also needs to record the cache address X of the eigenvalue of the data block X. When the eigenvalue of the data block X is stored in the SSD, the controller B also needs to record the storage address of the eigenvalue of the data block X in the SSD.

コントローラBは、ターゲットSSDにおけるデータブロックXの記憶アドレスを受信し、コントローラAに通知を送信する。通知は、ターゲットSSDにおけるデータブロックXの記憶アドレスを保持する。コントローラAは、コントローラBによって送信される通知に従って、データブロックXのアドレスと、固有値と、ターゲットSSDにおけるデータブロックXの記憶アドレスとの間の対応関係を確立する。別の実施方式では、コントローラAが、単に、データブロックXが位置するLUのホームコントローラであるが、データブロックXの固有値のホームコントローラではないとき、コントローラAは、データブロックXのアドレスと、データブロックXの固有値と、コントローラBのアドレスとの間の対応関係を確立する。 The controller B receives the storage address of the data block X in the target SSD and transmits a notification to the controller A. The notification holds the storage address of the data block X in the target SSD. The controller A establishes a correspondence between the address of the data block X, the eigenvalue, and the storage address of the data block X in the target SSD according to the notification transmitted by the controller B. In another embodiment, when controller A is simply the home controller of the LU in which the data block X is located, but not the home controller of the unique value of the data block X, the controller A is the address of the data block X and the data. Establish a correspondence between the unique value of block X and the address of controller B.

本発明のこの実施形態におけるストレージアレイに従って、キャッシュデバイスは、データブロックXのフィンガープリントの計算を実施する。これは、コントローラの計算リソースを節約する。データブロックXをターゲットSSDに記憶するプロセスの間、コントローラはキャッシュデバイスMの識別子及びキャッシュアドレスBのみを提供し、ターゲットSSDのコントローラはキャッシュアドレスBからデータブロックXを直接読み出す。これは、コントローラの計算リソース及びメモリリソースを節約し、ストレージアレイの性能を改善する。 According to the storage array in this embodiment of the present invention, the cache device performs the calculation of the fingerprint of the data block X. This saves the controller's computational resources. During the process of storing the data block X in the target SSD, the controller provides only the cache device M identifier and cache address B, and the controller of the target SSD reads the data block X directly from the cache address B. This saves controller computing and memory resources and improves storage array performance.

図2に示すストレージアレイに基づいて、上記のデータ重複排除動作に従ってデータがSSDに書き込まれる。入出力マネージャAがデータブロックXのアドレスを保持するデータ読出し要求、例えばデータブロックXを読み出すことの要求を受信すると、入出力マネージャAは、PCIeスイッチングデバイスAを介してデータ読出し要求をコントローラAに送信する。コントローラAは、コントローラAが、データブロックXが位置するLUのホームコントローラであると判断する。一実施方式において、コントローラAは、データブロックXのアドレスと、読み出されるデータブロックXの固有値と、ターゲットSSDにおけるデータブロックXの記憶アドレスとの間の対応関係を検索して、ターゲットSSDにおけるデータブロックXの記憶アドレスを判断する。コントローラAは、ターゲットSSDにおけるデータブロックXの記憶アドレスを、PCIeスイッチングデバイスAを介して入出力マネージャAに送信する。入出力マネージャAは、ターゲットSSDにおける読み出されるデータブロック、すなわちデータブロックXの記憶アドレスに従って、PCIeスイッチングデバイスA又はPCIeスイッチングデバイスBを介して、ターゲットSSDにおけるデータブロックXの論理記憶アドレスからデータブロックXを直接読み出す。別の実施方式では、コントローラAは、データブロックXのアドレスと、データブロックXの固有値と、データブロックXの固有値のホームコントローラのアドレスとの間の対応関係を検索して、データブロックXの固有値のホームコントローラBを判断し、コントローラBにおけるデータブロックXの固有値インデックスを問い合わせて、ターゲットSSDにおけるデータブロックXの記憶アドレスを判断するか;又は、データブロックXの固有値のホームコントローラBを判断し、コントローラBにおけるデータブロックXの固有値と同じ固有値を有するデータブロックの固有値インデックスを問い合わせて、データブロックXの固有値と同じ固有値を有するデータブロックの記憶アドレスを判断し、次に、データブロックXの固有値と同じ固有値を有するデータブロックの記憶アドレスからデータを読み出す。コントローラAが、データブロックXが位置するLUのホームコントローラ、及びデータブロックXの固有値のホームコントローラの双方であるとき、別の実施方式では、コントローラAは、読み出されるデータブロックXのアドレスと、データブロックXの固有値との間の対応関係を検索し、データブロックXの固有値に従って、コントローラAによって維持される固有値インデックスセットAを問い合わせて、読み出されるデータブロックXの記憶アドレスを判断し、次に、読み出されるデータブロックXの記憶アドレスを入出力マネージャAに送信する。入出力マネージャAは、PCIeスイッチングデバイスA又はPCIeスイッチングデバイスBを介してデータブロックXの記憶アドレスからデータブロックを読み出す。 Based on the storage array shown in FIG. 2, data is written to the SSD according to the above data deduplication operation. When the I / O manager A receives a data read request holding the address of the data block X, for example, a request to read the data block X, the I / O manager A sends a data read request to the controller A via the PCIe switching device A. Send. The controller A determines that the controller A is the home controller of the LU in which the data block X is located. In one embodiment, the controller A searches for a correspondence between the address of the data block X, the unique value of the data block X to be read, and the storage address of the data block X in the target SSD, and searches for the correspondence between the data block in the target SSD. Determine the storage address of X. The controller A transmits the storage address of the data block X in the target SSD to the input / output manager A via the PCIe switching device A. The input / output manager A uses the data block X read from the target SSD, that is, the data block X from the logical storage address of the data block X in the target SSD via the PCIe switching device A or the PCIe switching device B according to the storage address of the data block X. Is read directly. In another embodiment, controller A searches for a correspondence between the address of data block X, the unique value of data block X, and the home controller address of the unique value of data block X, and finds the unique value of data block X. The home controller B of the data block X is determined and the unique value index of the data block X in the controller B is queried to determine the storage address of the data block X in the target SSD; or the home controller B of the unique value of the data block X is determined. The eigenvalue index of the data block having the same eigenvalue as the eigenvalue of the data block X in the controller B is queried to determine the storage address of the data block having the same eigenvalue as the eigenvalue of the data block X, and then the eigenvalue of the data block X and Data is read from the storage address of the data block having the same unique value. When the controller A is both the home controller of the LU in which the data block X is located and the home controller of the unique value of the data block X, in another embodiment, the controller A has the address of the data block X to be read and the data. The correspondence with the unique value of block X is searched, the unique value index set A maintained by the controller A is queried according to the unique value of data block X, the storage address of the data block X to be read is determined, and then the storage address of the data block X to be read is determined. The storage address of the data block X to be read is transmitted to the input / output manager A. The input / output manager A reads a data block from the storage address of the data block X via the PCIe switching device A or the PCIe switching device B.

図2に示すストレージアレイに書き込まれるデータが複数のキャッシュデバイスに書き込まれる場合において、データ重複排除動作が実行されているとき、データ重複排除は、キャッシュデバイスのうちの1つにおけるデータに対してのみ実行される。特に、データ重複排除は、一次キャッシュデバイスにおけるデータに対して実行することができるか、又はデータをキャッシュする複数のキャッシュデバイスの負荷に従って、データ重複排除動作を実行するためにキャッシュデバイスのうちの1つが選択されるが、これは本発明のこの実施形態によって制限されるものではない。 When the data written to the storage array shown in FIG. 2 is written to a plurality of cache devices and the data deduplication operation is executed, the data deduplication is performed only for the data in one of the cache devices. Will be executed. In particular, data deduplication can be performed on the data in the primary cache device, or one of the cache devices to perform a data deduplication operation according to the load of multiple cache devices that cache the data. One is selected, but this is not limited by this embodiment of the invention.

本発明のこの実施形態において、別の実施事例では、入出力マネージャとコントローラとの間に必ずしもホーミングの概念が存在しない。すなわち、コントローラAは入出力マネージャAのホームコントローラではない。各入出力マネージャは、LUと、LUがホーミングされるコントローラとの間の対応関係を保存する。入出力マネージャは、データオペレーション要求において保持されるターゲットLUの識別子に従って、ターゲットLUの識別子とホームコントローラとの間の対応関係を問い合わせて、ターゲットLUのホームコントローラを判断し、PCIeスイッチングデバイスA又はPCIeスイッチングデバイスBを介してターゲットLUのホームコントローラに要求を直接送信する。更に、任意のPCIeスイッチングデバイスを介して、コントローラ間で、又はコントローラとSSDとの間で、又は入出力マネージャとコントローラとの間で、又は入出力マネージャとSSDとの間で、又はキャッシュデバイスとコントローラとの間で、又はキャッシュデバイスとSSDとの間で通信が行われてもよい。本発明のこの実施形態において、ターゲットハードディスクにおける記憶アドレスにデータブロックXを記憶するための論理記憶アドレスは、ターゲットハードディスクにデータブロックXを記憶するための論理ブロックアドレスを指し、特に、本発明の実施形態では、ターゲットSSDにデータブロックXを記憶するための論理ブロックアドレスを指す。 In this embodiment of the invention, in another embodiment, the concept of homing does not necessarily exist between the I / O manager and the controller. That is, the controller A is not the home controller of the I / O manager A. Each I / O manager stores a correspondence between the LU and the controller on which the LU is homing. The I / O manager inquires about the correspondence between the target LU identifier and the home controller according to the target LU identifier held in the data operation request, determines the home controller of the target LU, and determines the PCIe switching device A or PCIe. The request is sent directly to the home controller of the target LU via the switching device B. In addition, via any PCIe switching device, between controllers, between controllers and SSDs, between I / O managers and controllers, or between I / O managers and SSDs, or with cache devices. Communication may occur between the controller or between the cache device and the SSD. In this embodiment of the present invention, the logical storage address for storing the data block X in the storage address on the target hard disk refers to the logical block address for storing the data block X on the target hard disk, and in particular, the embodiment of the present invention. In the form, it refers to a logical block address for storing the data block X in the target SSD.

本発明のこの実施形態において、図2は、2つのコントローラ、2つのスイッチングデバイス、2つの入出力マネージャ及び1つのキャッシュデバイスのみを示す。しかしながら、特定の実施態様において、コントローラ、スイッチングデバイス、入出力マネージャ及びキャッシュデバイスの量は、必要に応じて設定されて、柔軟に拡張されてもよい。任意の入出力マネージャが任意のスイッチングデバイスを介して任意のコントローラに接続されるか、又は任意の入出力マネージャが任意のスイッチングデバイスを介して任意のハードディスクに接続されるか、又は任意の入出力マネージャが任意のスイッチングデバイスを介して任意のキャッシュデバイスに接続される。任意のコントローラが任意のスイッチングデバイスを介して任意のコントローラに接続されるか、又は任意のコントローラが任意のスイッチングデバイスを介して任意のハードディスクに接続されるか、又は任意のコントローラが任意のスイッチングデバイスを介して任意のキャッシュデバイスに接続される。任意のキャッシュデバイスがスイッチングデバイスを介して任意のハードディスクに接続される。任意のスイッチングデバイスを介して接続された任意の2つのデバイス間で双方向通信が実施される。任意の2つのスイッチングデバイスが直接接続される。本発明のこの実施形態において提供されるストレージアレイアーキテクチャにおいて、論理的に、コントローラは併せてコントローラプレーンと呼ばれ、スイッチングデバイスは併せてスイッチングプレーンと呼ばれ、ハードディスクは併せてストレージプレーンと呼ばれ、入出力マネージャは併せて入出力管理プレーンと呼ばれ、キャッシュデバイスは併せてキャッシュプレーンと呼ばれる。本発明のこの実施形態において提供されるアーキテクチャにおいて、データ読出し及び書込み制御は、データ読出し及び書込みと分離される。コントローラはデータ読出し及び書込み制御を実施するが、データ読出し及び書込み(又は換言すれば、読出し及び書込みデータ)はコントローラを通過しない。これは、コントローラのCPU計算リソース及びコントローラのメモリリソースを節約し、データ書込み効率を改善し、ストレージアレイのデータ処理効率を改善する。本発明のこの実施形態におけるストレージアレイアーキテクチャは、コントローラ及びハードディスク等のデバイスの拡張を実施することができ、コントローラ、スイッチングデバイス、ハードディスク等はストレージアレイの性能要件に従って柔軟に追加されてもよい。 In this embodiment of the invention, FIG. 2 shows only two controllers, two switching devices, two I / O managers and one cache device. However, in certain embodiments, the amount of controllers, switching devices, I / O managers and cache devices may be set and flexibly expanded as needed. Any I / O manager is connected to any controller via any switching device, or any I / O manager is connected to any hard disk via any switching device, or any I / O The manager is connected to any cache device via any switching device. Any controller is connected to any controller via any switching device, or any controller is connected to any hard disk via any switching device, or any controller is any switching device. Connected to any cache device via. Any cache device is connected to any hard disk via a switching device. Bidirectional communication is carried out between any two devices connected via any switching device. Any two switching devices are directly connected. In the storage array architecture provided in this embodiment of the invention, logically, the controllers are collectively referred to as the controller plane, the switching devices are collectively referred to as the switching plane, and the hard disks are collectively referred to as the storage plane. The I / O manager is collectively referred to as the I / O management plane, and the cache device is collectively referred to as the cache plane. In the architecture provided in this embodiment of the invention, data read and write control is separated from data read and write. The controller performs data read and write control, but data read and write (or in other words, read and write data) does not pass through the controller. This saves the CPU computing resources of the controller and the memory resources of the controller, improves the data write efficiency, and improves the data processing efficiency of the storage array. The storage array architecture in this embodiment of the present invention can carry out expansion of devices such as controllers and hard disks, and controllers, switching devices, hard disks and the like may be flexibly added according to the performance requirements of the storage array.

当然ながら、本発明のこの実施形態における技術的解決策は、ストレージアレイが1つの入出力マネージャ、1つのコントローラ、1つのスイッチングデバイス、1つのキャッシュデバイス及びいくつかのハードディスクを含むシナリオにも適用可能である。このシナリオにおいてストレージアレイにデータを書き込む方式については、上記の実施形態における説明を参照されたい。データ重複排除がストレージアレイにおいて実行されるシナリオについては、上記の実施形態における説明を参照されたい。ストレージアレイにおいて実行されるデータ読出し動作については、上記の実施形態における説明を参照されたい。当然ながら、ストレージアレイは2つのコントローラ及び1つのスイッチングデバイスを含んでもよく、2つのコントローラはスイッチングデバイスに接続される。そのようなシナリオにおけるデータ書込み動作、データ重複排除動作、及びデータ読出し動作については、上記の実施形態における説明を参照し、ここでは詳細を繰り返し説明することはしない。 Of course, the technical solution in this embodiment of the invention is also applicable to scenarios where the storage array includes one I / O manager, one controller, one switching device, one cache device and some hard disks. Is. For the method of writing data to the storage array in this scenario, refer to the description in the above embodiment. See description in the above embodiments for scenarios where data deduplication is performed on the storage array. For the data read operation performed in the storage array, refer to the description in the above embodiment. Of course, the storage array may include two controllers and one switching device, the two controllers being connected to the switching device. Regarding the data writing operation, the data deduplication operation, and the data reading operation in such a scenario, the description in the above-described embodiment is referred to, and the details are not repeatedly described here.

本発明のこの実施形態において、デバイスAは、キャッシュアドレスAからデータを読み出し(又は換言すれば、キャッシュアドレスAから直接データを読み出し)、デバイスBの識別子及びキャッシュアドレスAに従って、PCIeスイッチングデバイスA又はPCIeスイッチングデバイスBを介してデータをキャッシュアドレスAに書き込む(又は換言すれば、データをキャッシュアドレスAに直接書き込む)。そのような実施方式は、ダイレクトメモリアクセス(Direct Memory Access,DMA)技術によって実施されてもよく、デバイスA及びデバイスBは、特に本発明のこの実施形態におけるDMAアクセスを実行するデバイスを表す。 In this embodiment of the invention, device A reads data from cache address A (or, in other words, reads data directly from cache address A), and according to device B identifier and cache address A, PCIe switching device A or Data is written to cache address A via the PCIe switching device B (or in other words, data is written directly to cache address A). Such an embodiment may be implemented by Direct Memory Access (DMA) technology, where device A and device B specifically represent a device that performs DMA access in this embodiment of the invention.

コントローラは、デバイスBのキャッシュアドレスを取得し、デバイスBの識別子及びデバイスBのキャッシュアドレスをPCIeスイッチングデバイスA又はPCIeスイッチングデバイスBを介してデバイスCに送信する。コントローラは、デバイスBと通信して、PCIeスイッチングデバイスA又はPCIeスイッチングデバイスBを介してキャッシュアドレスを取得し、デバイスBの識別子を既に学習しているので、キャッシュアドレスが取得され、デバイスBの識別子及びデバイスBのキャッシュアドレスがデバイスCに送信されてもよい。当然ながら、コントローラはデバイスBの識別子及びキャッシュアドレスも取得してもよい。デバイスBの識別子は、デバイスBのアドレス、又はデバイスを一意に識別する別の識別子であってもよい。 The controller acquires the cache address of the device B and transmits the identifier of the device B and the cache address of the device B to the device C via the PCIe switching device A or the PCIe switching device B. The controller communicates with the device B to acquire the cache address via the PCIe switching device A or the PCIe switching device B, and has already learned the identifier of the device B. Therefore, the cache address is acquired and the identifier of the device B is obtained. And the cache address of device B may be transmitted to device C. Of course, the controller may also obtain the device B identifier and cache address. The identifier of device B may be the address of device B or another identifier that uniquely identifies the device.

当業者は、本明細書において開示される実施形態を参照して記載される例示的なユニット及びアルゴリズムステップは、電子ハードウェアによって、又はコンピュータソフトウェア及び電子ハードウェアの組み合わせによって実施されてもよいことを認識することができる。機能がハードウェアによって実行されるか又はソフトウェアによって実行されるかは、技術的解決策の特定の応用形態及び設計制約条件に依拠する。当業者は、異なる方法を用いて、特定の用途毎に記載された機能を実施することができるが、実施が本発明の範囲を超えているとみなされるべきでない。 Those skilled in the art will appreciate that the exemplary units and algorithmic steps described with reference to the embodiments disclosed herein may be performed by electronic hardware or by a combination of computer software and electronic hardware. Can be recognized. Whether a function is performed by hardware or software depends on the particular application and design constraints of the technical solution. One of ordinary skill in the art can use different methods to perform the functions described for a particular application, but the practice should not be considered beyond the scope of the present invention.

便宜上及び簡単な説明のために、上記のシステム、装置及びユニットの詳細な動作プロセスについては、上記の方法の実施形態における対応するプロセスを参照し、ここでは詳細を繰り返し説明することはしないことが、当業者によって明確に理解されることができる。 For convenience and brief description, the detailed operating processes of the above systems, devices and units will be referred to in reference to the corresponding processes in embodiments of the above methods, and the details may not be repeated herein. , Can be clearly understood by those skilled in the art.

本出願において提供されるいくつかの実施形態において、開示されるシステム及び方法は他の方式で実施されてもよいことが理解されるべきである。例えば、記載された装置の実施形態は例示にすぎない。例えば、ユニット分割は単に論理機能分割であり、実際の実施態様では他の分割であってもよい。例えば、複数のユニット又はコンポーネントが組み合わされるか若しくは別のシステムに統合されてもよく、又はいくつかの特徴が無視されるか若しくは実行されなくてもよい。更に、表示又は検討される相互結合又は直接結合又は通信接続は、いくつかのインターフェースを通じて実施されてもよい。装置又はユニット間の間接結合又は通信接続は、電子的に、機械的に、又は他の形態で実施されてもよい。 It should be understood that in some embodiments provided in this application, the disclosed systems and methods may be implemented in other ways. For example, the embodiments of the devices described are merely exemplary. For example, the unit division is simply a logical function division, and may be another division in an actual embodiment. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not implemented. In addition, the interconnected or direct coupled or communication connections displayed or considered may be implemented through several interfaces. Indirect coupling or communication connections between devices or units may be performed electronically, mechanically, or in other forms.

別個の部分として記載されるユニットは、物理的に別個であっても別個でなくてもよく、ユニットとして表示される部分は物理的ユニットであっても物理的ユニットでなくてもよく、1つの位置に位置してもよく、又は複数のネットワークユニット上に分散されてもよい。ユニットのうちのいくつか又は全ては、実施形態の解決策の目的を達成する実際の必要性に従って選択されてもよい。 A unit described as a separate part may or may not be physically separate, and the part displayed as a unit may be a physical unit or not a physical unit. It may be located in a location or distributed over multiple network units. Some or all of the units may be selected according to the actual need to achieve the objectives of the solution of the embodiment.

更に、本発明の実施形態における機能ユニットは、1つの処理ユニットに統合されてもよく、又はユニットの各々が物理的に単独で存在してもよく、又は2つ以上のユニットが1つのユニットに統合される。 Further, the functional units according to the embodiments of the present invention may be integrated into one processing unit, or each of the units may exist physically alone, or two or more units may be combined into one unit. Will be integrated.

機能がソフトウェア機能ユニットの形態で実施され、独立した製品として販売されるか又は用いられるとき、機能はコンピュータ可読不揮発性ストレージ媒体に記憶されてもよい。そのような理解に基づいて、本発明の技術的解決策を本質的に、又は従来技術に寄与する部分を、又は技術的解決策のうちのいくつかを、ソフトウェア製品の形態で実施してもよい。ソフトウェア製品は、不揮発性ストレージ媒体に記憶され、コンピュータデバイス(パーソナルコンピュータ、サーバ、又はネットワークデバイスであってもよい)に、本発明の実施形態に記載の方法のステップのうちの全て又はいくつかを実行するように命令するための複数の命令を含む。上記の不揮発性ストレージ媒体は:USBフラッシュドライブ、リムーバブルハードディスク、リードオンリメモリ(Read−Only Memory,ROM)、磁気ディスク又は光ディスク等の、プログラムコードを記憶することができる任意の媒体を含む。 When a function is performed in the form of a software functional unit and sold or used as a stand-alone product, the function may be stored in a computer-readable non-volatile storage medium. Based on such an understanding, the technical solutions of the present invention may be implemented in the form of software products, either essentially or in part that contributes to the prior art, or some of the technical solutions. good. The software product is stored in a non-volatile storage medium and the computer device (which may be a personal computer, server, or network device) is subjected to all or some of the steps of the method described in the embodiments of the present invention. Includes multiple instructions to instruct to execute. The above-mentioned non-volatile storage medium includes any medium capable of storing a program code, such as a USB flash drive, a removable hard disk, a read-only memory (ROM), a magnetic disk or an optical disk.

Claims (6)

入出力マネージャと、スイッチングデバイスと、第1のコントローラと、第1のキャッシュデバイスと、第2のキャッシュデバイスとを備えるストレージアレイにおいて、データ書込み要求を処理するための方法であって、前記入出力マネージャ、前記第1のコントローラ、前記第1のキャッシュデバイス及び前記第2のキャッシュデバイスは前記スイッチングデバイスに接続され、前記スイッチングデバイスは前記ストレージアレイ内のストレージユニットに接続され、前記方法は、
前記入出力マネージャによって、データ書込み要求を、前記スイッチングデバイスを介して前記第1のコントローラに送信するステップと、
前記第1のコントローラによって、前記データ書込み要求のために、前記データ書込み要求のデータを記憶するための前記第1のキャッシュデバイス内の第1のキャッシュアドレス及び前記第2のキャッシュデバイス内の第2のキャッシュアドレスを取得するステップと、
前記第1のコントローラによって、前記第1のキャッシュデバイスの識別子、前記第1のキャッシュアドレス、前記第2のキャッシュデバイスの識別子及び前記第2のキャッシュアドレスを、前記スイッチングデバイスを介して前記入出力マネージャに送信するステップと、
前記入出力マネージャによって、前記第1のキャッシュデバイスの前記識別子及び前記第1のキャッシュアドレスに従って、前記データ書込み要求の前記データを、前記スイッチングデバイスを介して前記第1のキャッシュアドレスに書き込み、前記第2のキャッシュデバイスの前記識別子及び前記第2のキャッシュアドレスに従って、前記データ書込み要求の前記データを、前記スイッチングデバイスを介して前記第2のキャッシュアドレスに書き込むステップと、
前記第1のキャッシュデバイスによって、前記第1のキャッシュアドレスの前記データを前記ストレージユニットに記憶するステップと、
を含む、方法。
A method for processing a data write request in a storage array including an input / output manager, a switching device, a first controller, a first cache device, and a second cache device. manager, said first controller, said first cache device and the second cache devices connected to the switching device, the switching device is connected to the storage unit in the storage array, before SL method,
A step of transmitting a data write request to the first controller via the switching device by the input / output manager.
The first cache address in the first cache device for storing the data of the data write request and the second cache device in the second cache device for the data write request by the first controller. Steps to get the cache address of
The first controller transfers the identifier of the first cache device, the first cache address, the identifier of the second cache device, and the second cache address to the input / output manager via the switching device. And the steps to send to
The input / output manager writes the data of the data write request to the first cache address via the switching device according to the identifier of the first cache device and the first cache address, and the first cache address. A step of writing the data of the data write request to the second cache address via the switching device according to the identifier of the cache device 2 and the second cache address.
A step of storing the data of the first cache address in the storage unit by the first cache device, and
Including methods.
前記データ書込み要求は、前記データのアドレスを含み、前記方法は、
前記第1のキャッシュデバイスによって送信される、前記データの書込みに成功したことを示す応答を、前記入出力マネージャによって受信するステップと、
前記入出力マネージャから、前記スイッチングデバイスを介して、前記第1のコントローラに、前記データが前記第1のキャッシュアドレスに書き込まれるという通知を送信するステップと、
前記第1のコントローラによって、前記通知に従って、前記データの前記アドレスと、前記第1のキャッシュデバイスの前記識別子と、前記第1のキャッシュアドレスとの間の対応関係を確立するステップと、
を更に含む、請求項1に記載の方法。
The data write request includes the address of the data, and the method
A step of receiving a response by the input / output manager indicating that the data has been successfully written, which is transmitted by the first cache device, and
A step of transmitting a notification from the input / output manager to the first controller via the switching device that the data is written to the first cache address.
A step of establishing a correspondence between the address of the data, the identifier of the first cache device, and the first cache address by the first controller according to the notification.
The method according to claim 1, further comprising.
前記データ書込み要求は、前記データのアドレスを保持し、前記データの前記アドレスは、前記データが位置するターゲット論理ユニット(LU)の識別子と、前記データの論理ブロックアドレスと、前記データの長さとを含み、前記方法は、
前記入出力マネージャによって、前記ターゲットLUの前記識別子に従って、前記入出力マネージャに記憶されている前記ターゲットLUと前記第1のコントローラとの間のホーミング関係を問い合わせ、前記第1のコントローラが前記ターゲットLUのホームコントローラであると識別するステップと、
前記入出力マネージャによって、前記データ書込み要求を、前記スイッチングデバイスを介して前記第1のコントローラに送信するステップと、
を更に含む、請求項1に記載の方法。
The data write request holds the address of the data, and the address of the data includes the identifier of the target logical unit (LU) in which the data is located, the logical block address of the data, and the length of the data. Including, said method
The input / output manager inquires about the homing relationship between the target LU stored in the input / output manager and the first controller according to the identifier of the target LU, and the first controller asks the target LU. And the steps to identify it as a home controller
A step of transmitting the data write request to the first controller via the switching device by the input / output manager.
The method according to claim 1, further comprising.
ストレージアレイであって、前記ストレージアレイは、入出力マネージャと、スイッチングデバイスと、第1のコントローラと、第1のキャッシュデバイスと、第2のキャッシュデバイスとを備え、前記入出力マネージャ、前記第1のコントローラ、前記第1のキャッシュデバイス及び前記第2のキャッシュデバイスは前記スイッチングデバイスに接続され、前記スイッチングデバイスは前記ストレージアレイ内のストレージユニットに接続され、
前記入出力マネージャは、データ書込み要求を、前記スイッチングデバイスを介して前記第1のコントローラに送信するように構成され、
前記第1のコントローラは、前記データ書込み要求のデータを記憶するための前記第1のキャッシュデバイス内の第1のキャッシュアドレス及び前記第2のキャッシュデバイス内の第2のキャッシュアドレスを取得し、前記第1のキャッシュデバイスの識別子、前記第1のキャッシュアドレス、前記第2のキャッシュデバイスの識別子及び前記第2のキャッシュアドレスを、前記スイッチングデバイスを介して前記入出力マネージャに送信するように構成され、
前記入出力マネージャは、前記第1のキャッシュデバイスの前記識別子及び前記第1のキャッシュアドレスに従って、前記データを、前記スイッチングデバイスを介して前記第1のキャッシュアドレスに書き込み、前記第2のキャッシュデバイスの前記識別子及び前記第2のキャッシュアドレスに従って、前記データ書込み要求の前記データを、前記スイッチングデバイスを介して前記第2のキャッシュアドレスに書き込むように更に構成され
前記第1のキャッシュデバイスは、前記第1のキャッシュアドレスの前記データを前記ストレージユニットに記憶するように更に構成される、ストレージアレイ。
A storage array, the storage array comprising an input / output manager, a switching device, a first controller, a first cache device, and a second cache device, the input / output manager, the first. The controller, the first cache device and the second cache device are connected to the switching device, and the switching device is connected to a storage unit in the storage array .
The input / output manager is configured to send a data write request to the first controller via the switching device.
The first controller acquires a first cache address in the first cache device and a second cache address in the second cache device for storing the data of the data write request, and obtains the second cache address. The identifier of the first cache device, the first cache address, the identifier of the second cache device, and the second cache address are configured to be transmitted to the input / output manager via the switching device.
The input / output manager writes the data to the first cache address via the switching device according to the identifier of the first cache device and the first cache address, and the second cache device. According to the identifier and the second cache address, the data of the data write request is further configured to write to the second cache address via the switching device .
The first cache device is a storage array further configured to store the data at the first cache address in the storage unit.
前記データ書込み要求は、前記データのアドレスを保持し、
前記入出力マネージャは、前記第1のキャッシュデバイスから、前記データの書込みに成功したことを示す応答を受信し、前記スイッチングデバイスを介して、前記第1のコントローラに、前記データが前記第1のキャッシュアドレスに書き込まれるという通知を送信するように更に構成され、
前記第1のコントローラは、前記通知に従って、前記データの前記アドレスと、前記第1のキャッシュデバイスの前記識別子と、前記第1のキャッシュアドレスとの間の対応関係を確立するように更に構成される、請求項に記載のストレージアレイ。
The data write request holds the address of the data and
The input / output manager receives a response from the first cache device indicating that the data has been successfully written, and the data is sent to the first controller via the switching device. Further configured to send a notification that it will be written to the cache address,
The first controller is further configured to establish a correspondence between the address of the data, the identifier of the first cache device, and the first cache address in accordance with the notification. , The storage array according to claim 4.
前記データ書込み要求は、前記データのアドレスを保持し、前記データの前記アドレスは、前記データが位置するターゲット論理ユニット(LU)の識別子と、前記データの論理ブロックアドレスと、前記データの長さとを含み、前記入出力マネージャは、前記ターゲットLUの前記識別子に従って、前記入出力マネージャに記憶されている前記ターゲットLUと前記第1のコントローラとの間のホーミング関係を問い合わせ、前記第1のコントローラが前記ターゲットLUのホームコントローラであると識別し、前記データ書込み要求を、前記スイッチングデバイスを介して前記第1のコントローラに送信するように更に構成される、請求項に記載のストレージアレイ。 The data write request holds the address of the data, and the address of the data includes the identifier of the target logical unit (LU) in which the data is located, the logical block address of the data, and the length of the data. Including, the input / output manager inquires about the homing relationship between the target LU and the first controller stored in the input / output manager according to the identifier of the target LU, and the first controller makes the said. The storage array according to claim 4 , further configured to identify the home controller of the target LU and transmit the data write request to the first controller via the switching device.
JP2017202523A 2014-09-15 2017-10-19 Data write request processing method and storage array Active JP6924671B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017202523A JP6924671B2 (en) 2014-09-15 2017-10-19 Data write request processing method and storage array

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2016520021A JP6231669B2 (en) 2014-09-15 2014-09-15 Data write request processing method and storage array
JP2017202523A JP6924671B2 (en) 2014-09-15 2017-10-19 Data write request processing method and storage array

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2016520021A Division JP6231669B2 (en) 2014-09-15 2014-09-15 Data write request processing method and storage array

Publications (2)

Publication Number Publication Date
JP2018010698A JP2018010698A (en) 2018-01-18
JP6924671B2 true JP6924671B2 (en) 2021-08-25

Family

ID=60993839

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017202523A Active JP6924671B2 (en) 2014-09-15 2017-10-19 Data write request processing method and storage array

Country Status (1)

Country Link
JP (1) JP6924671B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110928495B (en) * 2019-11-12 2023-09-22 杭州宏杉科技股份有限公司 Data processing method and device on multi-control storage system
CN115561622B (en) * 2022-10-14 2023-10-03 安测半导体技术(江苏)有限公司 Method and system for writing unique ID in chip test

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005025371A (en) * 2003-06-30 2005-01-27 Toshiba Corp Disk array device and data write control method
WO2011132222A1 (en) * 2010-04-21 2011-10-27 Hitachi,Ltd. Storage system and ownership control method for storage system
JP6231669B2 (en) * 2014-09-15 2017-11-15 華為技術有限公司Huawei Technologies Co.,Ltd. Data write request processing method and storage array

Also Published As

Publication number Publication date
JP2018010698A (en) 2018-01-18

Similar Documents

Publication Publication Date Title
JP6231669B2 (en) Data write request processing method and storage array
JP6254293B2 (en) Data deduplication method and storage array
JP4892072B2 (en) Storage device that eliminates duplicate data in cooperation with host device, storage system including the storage device, and deduplication method in the system
JP6101170B2 (en) Computer system, cache management method, and computer
TWI771933B (en) Method for performing deduplication management with aid of command-related filter, host device, and storage server
US11327653B2 (en) Drive box, storage system and data transfer method
WO2015039352A1 (en) Data caching method and storage system
WO2016121026A1 (en) Storage apparatus, computer system, and method
US10242053B2 (en) Computer and data read method
JP6924671B2 (en) Data write request processing method and storage array
WO2016194162A1 (en) Computer system
JP2020086477A (en) Large scale storage system and data arrangement method in large scale storage system
JP6552583B2 (en) Data deduplication method and storage array
WO2017061022A1 (en) Data deduplicating system
WO2012173137A1 (en) Information processing system, information processing device, storage device, and program

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171019

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171019

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A132

Effective date: 20181204

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190121

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190611

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20200218

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200603

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20200603

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20200616

C21 Notice of transfer of a case for reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20200623

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20200814

C211 Notice of termination of reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C211

Effective date: 20200818

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20201124

C13 Notice of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: C13

Effective date: 20210112

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20210406

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210412

C23 Notice of termination of proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C23

Effective date: 20210601

C03 Trial/appeal decision taken

Free format text: JAPANESE INTERMEDIATE CODE: C03

Effective date: 20210706

C30A Notification sent

Free format text: JAPANESE INTERMEDIATE CODE: C3012

Effective date: 20210706

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210802

R150 Certificate of patent or registration of utility model

Ref document number: 6924671

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250