JP2018010698A - Data writing request processing method and storage array - Google Patents

Data writing request processing method and storage array Download PDF

Info

Publication number
JP2018010698A
JP2018010698A JP2017202523A JP2017202523A JP2018010698A JP 2018010698 A JP2018010698 A JP 2018010698A JP 2017202523 A JP2017202523 A JP 2017202523A JP 2017202523 A JP2017202523 A JP 2017202523A JP 2018010698 A JP2018010698 A JP 2018010698A
Authority
JP
Japan
Prior art keywords
controller
data
cache
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.)
Granted
Application number
JP2017202523A
Other languages
Japanese (ja)
Other versions
JP6924671B2 (en
Inventor
巍 ▲張▼
巍 ▲張▼
Wei Zhang
先▲紅▼ ▲呂▼
先▲紅▼ ▲呂▼
Xianhong Lv
明昌 魏
Mingchang Wei
明昌 魏
▲陳▼怡 ▲張▼
▲陳▼怡 ▲張▼
Chenyi Zhang
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

Abstract

PROBLEM TO BE SOLVED: To provide a data writing request processing method and a storage array.SOLUTION: There are provided a data writing request processing method and a storage array, therein a controller is connected via a switching device to a cache device, and an input/output manager is connected via the switching device to the controller, and the input/output manager is connected via the switching device to the cache device, and the controller acquires a cache address from a cache device for data to be written in accordance with a data writing request, and the controller transmits the identifier and cache address of the cache device via the switching device to the input/output manager, and the input/output manager writes the data to be written in the cache address via the switching device.SELECTED DRAWING: Figure 2

Description

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

ストレージアレイは通常、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, with one engine including two controllers, 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 input / output manager A is connected to the controller A, and the input / output 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 includes a peripheral component interconnect express ( It includes a peripheral component interconnect (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 (Logical Unit, LU) of the data write request is homed 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 metadata held in the data write request to the memory A. CPU A writes the data and metadata in memory A to the hard disk according to the settings of the storage array.

ストレージアレイにおける上記のデータ書込みプロセスは、コントローラのCPU計算能力及びコントローラのメモリリソースを消費し、ストレージアレイの性能に深刻に影響を及ぼす。   The above-described 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, an embodiment of the present invention provides a method for processing a data write request, the method being applied to a storage array, the storage array comprising: an input / output manager; a switching device; And a first cache device, wherein 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; Connected to a hard disk in the array;
Sending, by the input / output manager, a data write request to the first controller via the switching device;
Obtaining a first cache address assigned to data to be written in the first cache device by the first controller in accordance with the data write request;
Sending, by the first controller, the identifier of the first cache device and the first cache address to the I / O manager via the switching device;
Writing data to be written to the first cache address via the switching device by the I / O manager according to the identifier of the first cache device and the first cache address;
including.

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

本発明の第1の態様を参照して、第2の可能な実施方式において、ストレージアレイは第2のキャッシュデバイスを更に備え、第2のキャッシュデバイスはスイッチングデバイスに接続され、本方法は:
第1のコントローラによって、データ書込み要求に従って、第2のキャッシュデバイスにおける書き込まれるデータに対し割り当てられる第2のキャッシュアドレスを取得するステップと;
第1のコントローラによって、第2のキャッシュデバイスの識別子及び第2のキャッシュアドレスを、スイッチングデバイスを介して入出力マネージャに送信するステップと;
入出力マネージャによって、第2のキャッシュデバイスの識別子及び第2のキャッシュアドレスに従って、書き込まれるデータを、スイッチングデバイスを介して第2のキャッシュアドレスに書き込むステップと;
を更に含む。
Referring to the first aspect of the present invention, in a second possible implementation manner, the storage array further comprises a second cache device, the second cache device is connected to the switching device, and the method includes:
Obtaining, by the first controller, a second cache address assigned to data to be written in the second cache device according to the data write request;
Sending, by the first controller, the identifier of the second cache device and the second cache address to the I / O manager via the switching device;
Writing data to be written to the second cache address via the switching device by the I / O manager 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のキャッシュアドレスに書き込むステップと;
を更に含む。
Referring to the first aspect of the present invention, in a third possible implementation manner, the storage array further comprises a second cache device, the second cache device is connected to the switching device, and the method includes:
Obtaining, by the first controller, a second cache address assigned to data to be written in the second cache device according to the data write request;
Sending a data write instruction to the first cache device by the first controller via the switching device, the data write instruction holding an identifier of the second cache device and a second cache address; Steps and;
Writing data to be written by the first cache device to the second cache address via the switching device in accordance with a data write instruction;
Is further included.

本発明の第1の態様を参照して、第4の可能な実施方式において、データ書込み要求は、書き込まれるデータのアドレスを保持し、書き込まれるデータのアドレスは、書き込まれるデータが位置するターゲット論理ユニットLUの識別子と、書き込まれるデータの論理ブロックアドレスと、書き込まれるデータの長さとを含み;入出力マネージャによって、データ書込み要求を、スイッチングデバイスを介して第1のコントローラに送信するステップは:
入出力マネージャによって、ターゲットLUの識別子に従って、入出力マネージャに記憶されているターゲットLUとコントローラとの間のホーミング関係を問い合わせ、第1のコントローラがターゲットLUのホームコントローラであると判断するステップと;
入出力マネージャによって、データ書込み要求を、スイッチングデバイスを介して第1のコントローラに送信するステップと;
を特に含む。
Referring to the first aspect of the invention, in a fourth possible implementation scheme, 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 where the data to be written is located. Including 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 step of sending a data write request by the I / O manager via the switching device to the first controller:
Querying the homing relationship between the target LU stored in the I / O manager and the controller 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;
Sending, by the input / output manager, a data write request to the first controller via the switching device;
In particular.

本発明の第1の態様を参照して、第5の可能な実施方式において、データ書込み要求は、書き込まれるデータのアドレスを保持し、書き込まれるデータのアドレスは、書き込まれるデータが位置するターゲット論理ユニットLUの識別子と、書き込まれるデータの論理ブロックアドレスと、書き込まれるデータの長さとを含み;ストレージアレイは第2のコントローラを更に備え、第2のコントローラはスイッチングデバイスに接続され;入出力マネージャによって、データ書込み要求を、スイッチングデバイスを介して第1のコントローラに送信するステップは:
入出力マネージャによって、データ書込み要求を、スイッチングデバイスを介して第2のコントローラに送信するステップと;
第2のコントローラによって、ターゲットLUの識別子に従って、第1のコントローラがターゲットLUのホームコントローラであると判断するステップと;
第2のコントローラによって、データ書込み要求を、スイッチングデバイスを介して第1のコントローラに送信するステップと;
を特に含む。
Referring to the first aspect of the present invention, in a fifth possible implementation scheme, 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 where the data to be written is located. Including 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, the second controller being connected to the switching device; The steps of sending a data write request to the first controller via the switching device are:
Sending a data write request by the I / O manager to the second controller via the switching device;
Determining by the second controller according to the identifier of the target LU that the first controller is the home controller of the target LU;
Sending a data write request by the second controller to the first controller via the switching device;
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 present 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 a hard disk in the storage array;
The I / O manager is configured to send a data write request to the first controller via the switching device;
The first controller obtains a first cache address assigned to data to be written in the first cache device according to the data write request, and uses the identifier of the first cache device and the first cache address as the switching device. Configured to send to the I / O manager via
The input / output manager is further configured to write 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 a first possible implementation manner, the data write request holds 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 successful writing of the data to be written;
The I / O manager is further configured to notify the first controller that the data to be written is written to the first cache address via the switching device;
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 according to the notification.

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

本発明の第2の態様を参照して、第4の可能な実施方式において、データ書込み要求は、書き込まれるデータのアドレスを保持し、書き込まれるデータのアドレスは、書き込まれるデータが位置するターゲット論理ユニットLUの識別子と、書き込まれるデータの論理ブロックアドレスと、書き込まれるデータの長さとを含み;入出力マネージャが、データ書込み要求を、スイッチングデバイスを介して第1のコントローラに送信することは:
入出力マネージャによって、ターゲットLUの識別子に従って、入出力マネージャに記憶されているターゲットLUとコントローラとの間のホーミング関係を問い合わせ、第1のコントローラがターゲットLUのホームコントローラであると判断することと;
入出力マネージャによって、データ書込み要求を、スイッチングデバイスを介して第1のコントローラに送信することと;
を特に含む。
Referring to the second aspect of the present invention, in a fourth possible implementation scheme, 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 where the data to be written is located. Including 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 sends a data write request to the first controller via the switching device:
Querying the homing relationship between the target LU stored in the I / O manager and the controller 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;
Sending a data write request by the I / O manager to the first controller via the switching device;
In particular.

本発明の第2の態様を参照して、第5の可能な実施方式において、データ書込み要求は、書き込まれるデータのアドレスを保持し、書き込まれるデータのアドレスは、書き込まれるデータが位置するターゲット論理ユニットLUの識別子と、書き込まれるデータの論理ブロックアドレスと、書き込まれるデータの長さとを含み;ストレージアレイは第2のコントローラを更に備え、第2のコントローラはスイッチングデバイスに接続され;入出力マネージャが、データ書込み要求を、スイッチングデバイスを介して第1のコントローラに送信することは:
入出力マネージャによって、データ書込み要求を、スイッチングデバイスを介して第2のコントローラに送信することと;
第2のコントローラによって、ターゲットLUの識別子に従って、第1のコントローラがターゲットLUのホームコントローラであると判断することと;
第2のコントローラによって、データ書込み要求を、スイッチングデバイスを介して第1のコントローラに送信することと;
を特に含む。
Referring to the second aspect of the present invention, in a fifth possible implementation scheme, 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 where the data to be written is located. Including 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, the second controller being connected to the switching device; Sending a data write request to the first controller via the switching device is:
Sending a data write request by the I / O manager to the second controller via the switching device;
Determining by the second controller 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 by the second controller to the first controller via the switching device;
In particular.

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

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

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

以下において、本発明の実施形態における添付の図面を参照して、本発明の実施形態における技術的解決策を明確に説明する。明らかに、説明される実施形態は、本発明の実施形態のうちのいくつかにすぎず、全てではない。本発明の実施形態に基づいて得られる全ての他の実施形態が本発明の保護範囲内にあるものとする。   Hereinafter, technical solutions in the embodiments of the present invention will be described clearly with reference to the accompanying drawings in the embodiments of the present invention. Apparently, the described embodiments are merely a few, but not all, of the embodiments of the invention. All other embodiments obtained based on the embodiments of the present invention shall fall within the protection scope 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. Controller A includes CPU A and memory A, and CPU A communicates with memory A via a bus; controller B includes CPU B and memory B, and CPU B includes memory B via a bus. Communicate with. Input / output manager A is connected to switching device A and switching device B, and input / output manager B is connected to switching device A and switching device B. Switching device A is interconnected to 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. Controller A is connected to switching device A and switching device B, and controller B is connected to switching device A and switching device B. Based on the above description, a completely interconnected architecture is formed around the switching device A and the switching device B by the input / output manager A, the input / output 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 hard disks shown in FIG. In particular, controller A communicates with all hard disks via switching device A, and controller B communicates with all hard disks via 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. 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 homed to controller A, ie, controller A is LU A's home controller. Similarly, the controller B is configured to virtualize a hard disk to form a logical unit LU B usable for the host B. LU B is mounted on the host B, and the host B performs a data access operation on the LU B via the controller B. Here, LU B is stated to be homed to controller B, ie, controller B is LU B's home controller. The host here may be a physical host (or called a physical server) or a virtual host (or 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 LU identifier to the host, whereby the LU is mounted on the host. Therefore, LU and LUN here mean the same thing. In the storage array shown in FIG. 2, the switching devices A and B are a PCIe switching device, a non-volatile memory express transmission bus (NVMe) switching device, a serial connection small computer system interface (Serial attached SCSI, SAS). It may be a switching device or the like, and is not limited by the embodiment of the present invention. When 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 switching devices A and B are NVMe switching devices, it connects to the NVMe switching device The hard disk to be played is a hard disk having an NVMe protocol interface; when the 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 the different disks may be different, thereby forming a hybrid hard disk storage array, which 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 a storage device formed by 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 the embodiments of the present invention. The cache device M is configured to cache data. In the following, the cache device M will be described with reference to a particular embodiment of the invention. In the embodiment of the present invention, 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.

図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 a data write request transmitted by the host. In one implementation, controller A is the home controller of input / output manager A. Therefore, the input / output manager A receives the data operation request transmitted by the host. If the request transmission policy of I / O manager A is not changed, the request is sent to controller A by default according to the data operation request, and therefore controller A is called the home controller of I / O manager A. In one embodiment of the present invention, the input / output manager A receives a data write request sent by the host and sends the data write request to the controller A via the PCIe switching device A or the PCIe switching device B. With respect to the specific PCIe switching device through which the request is forwarded, it may be determined according to a preset rule. 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. The embodiment of the present invention uses an example in which the input / output manager A selects the 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 input / output 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. 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 invention. The implementation scheme is as follows: Controller A instructs cache device M to assign a cache address to the data to be written according to the data write request, and cache device M assigns a cache address according to the length of the data to be written. . The controller A obtains a cache address assigned by the cache device M to the data to be written (hereinafter, the cache address assigned by the cache device M to the data to be written is referred to as a cache address M. Cache address includes 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 identifier and the cache address M of the cache device M transmitted by the controller A, and writes (or writes) the data to be written to the cache address M according to the identifier and the cache address M of the cache device M. May be directly written 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 directly writes the data to be written to the cache address M via the PCIe switching device A. This saves CPU computing resources of controller A and memory resources of controller A and improves data writing efficiency compared to the prior art.

コントローラAは、書き込まれるデータのアドレスと、キャッシュデバイスMの識別子と、キャッシュアドレスMとの間の対応関係を確立し、したがって、書き込まれるデータを読み出すとき、コントローラAは、書き込まれるデータのキャッシュアドレスMを入出力マネージャAに送信し、入出力マネージャAは、書き込まれるデータのキャッシュアドレスMから、書き込まれるデータを読み出してもよく(又は書き込まれるデータのキャッシュアドレスMから、書き込まれるデータを直接読み出してもよく)、それによって、コントローラAのCPU計算リソース及びコントローラAのメモリリソースを節約し、データ読出し効率を改善する。   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. Therefore, when reading the data to be written, the controller A reads 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). May save CPU controller resources of controller A and memory resources of controller A and improve 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 condition is met, the cache device M stores the data to be written to the target SSD of the storage array. The target SSD refers to an SSD for storing data to be written. The specific process of writing the data to be written to the target SSD may be as follows: the controller A sends the identifier of the cache device M and the cache address M to the controller of the target SSD via the PCIe switching device A or the PCIe switching device B. Send. The controller of the target SSD directly reads data to be 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 data to be written. The controller of the target SSD transmits the storage address of the data to be 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 data to be written in the target SSD includes an identifier of the controller of the target SSD and a logical storage address for storing data to be written to 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 specifically illustrated in FIG.

ステップ301:ホストはデータ書込み要求を入出力マネージャAに送信する。   Step 301: The host sends a data write request to the input / output 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 a data operation request transmitted by the host and transferring the data operation request to the controller. In one embodiment of the present invention, the host sends a data write request holding the address of the data to be written to the input / output manager A. Illustratively, a Small Computer System Interface (SCSI) protocol, ie, a SCSI protocol data write request may be used for the data write request. Of course, other protocols may be used and are not limited by the embodiments of the present invention.

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

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

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

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

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

コントローラ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 a device address.

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

入出力マネージャAは、コントローラAによって送信されたキャッシュデバイスMの識別子及びキャッシュアドレスMを受信し、ホストによって送信された書き込まれるデータを受信する。   The input / output manager A receives the identifier of the cache device M and the cache address 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 directly writes the data to be written 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 sent by the cache device M via the PCIe switching device A indicating that the data to be written has been successfully written. The input / output manager A sends a response indicating that the data write request has been completed to the host, and notifies the host that the write request operation has been 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: The controller A establishes a correspondence relationship 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 obtain the address of the data to be written from the cache address assignment instruction sent by the controller A. After assigning the cache address M, the cache device M A correspondence relationship with the address M is established. In another implementation, the cache device M is an exclusive cache device of the target LU and is used only to cache the data of the target LU, so the cache device M by default is the target LU and the target LU. The correspondence relationship between the LBA and the cache address is stored. By default, the cache device M stores a correspondence relationship between the target LU, the LBA in the target LU, and the cache address segment of the cache device M. In this segment of the cache address, the cache device M assigns the 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 input / output manager A sends the data to be written, and CPU A The data to be written is written in the memory A, the CPU A reads the data to be written from the memory A, and transmits the data to be written to the PCIe switch B via the PCIe switch A. The PCIe switch B transmits 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 invention, to prevent loss of written data in the cache device M, the storage array caches written data in multiple cache devices. 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. The PCIe switching device A and the PCIe switching device B are both 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 serves as a primary cache device that caches data to be written, and the data to which the cache device N is written. It is determined that it plays a role as a secondary cache device that caches. The controller A acquires a cache address assigned to the data to be written and located in the cache device M and the cache device N. In one implementation, the controller A sends 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. A cache address assigned to data to be written by the cache device M is called a cache address M, and a cache address assigned to data to be written by the cache device N is called a cache address N. The controller A acquires the cache address M and the cache address N. 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, and inputs / outputs the identifier of the cache device N and the cache address N via the PCIe switching device A. Send to Manager A. In a particular embodiment, the controller A sends 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. A can be sent to A, which is not limited here. In another implementation, cache device M allocates an exclusive segment of the cache address to controller A. This exclusive segment is used only to cache the data of the LU of the 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 directly writes the data to be written to the cache address M via the PCIe switching device A according to the identifier and cache address M of the cache device M. The input / output manager A reads the identifier and cache address of the cache device N. According to N, the data to be written is directly written 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 sends the address of the data to be written and the cache device M to the controller A. Is instructed to establish a correspondence between the identifier and the cache address M. Similarly, the controller A establishes a correspondence relationship between the address of 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 implementation, the controller A sends 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 identifier of the cache device M and the cache address M. The input / output manager A directly writes the data to be written to 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. The controller A transmits a data write command 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 data to be written, and the cache device M directly writes the data to be written to the cache address N via the PCIe switching device A or the PCIe switching device B according to the data write command.

コントローラAは、入出力マネージャAが、キャッシュデバイスM及びキャッシュデバイスNへの書き込まれるデータの書込みを実施するように、書き込まれるデータに対し割り当てられるキャッシュアドレスM及びキャッシュアドレスNのみを取得すればよく、それによって、コントローラAのCPU計算リソース及びコントローラAのメモリリソースを節約し、データ書込み効率を改善する。   The controller A only needs to obtain the cache address M and the cache address N assigned to the data to be written so that the input / output manager A performs the writing of the data to be written to the cache device M and the cache device N. Thereby, the CPU calculation 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 a host data write request. The data write request holds the address of data to be written. The input / output manager A transmits a data write request to the controller A by transferring it by the PCIe switching device A. 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 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 input / output manager A.

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

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

本発明のこの実施形態において、コントローラAは入出力マネージャAのホームコントローラである。入出力マネージャAはデータ書込み要求を受信し、データ書込み要求をPCIeスイッチングデバイスA又はPCIeスイッチングデバイスBを介してコントローラAに送信する。本発明のこの実施形態において、入出力マネージャAがデータ書込み要求を受信し、データ書込み要求を、PCIeスイッチングデバイスAを介してコントローラAに送信することが例として用いられる。   In this embodiment of the invention, controller A is the home controller of input / output 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 a data write request and sends the data write request to the controller A via the PCIe switching device A.

ステップ403:コントローラAがターゲットLUのホームコントローラでないと判断する。   Step 403: Determine 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 target LU identifier 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 the 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, it is used as an example that the PCIe switching device B transfers a data write request to the controller B.

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

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

ステップ406:キャッシュデバイスMの識別子及びキャッシュアドレスMをコントローラAに送信する。   Step 406: Send the identifier of the cache device M and the cache address M 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 implementation, the identifier of the cache device M and the cache address M may also be sent 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 input / output manager A.

コントローラAは、コントローラBによって送信されたキャッシュデバイスMの識別子及びキャッシュアドレスMを受信し、書き込まれるデータのキャッシュアドレスMを、PCIeスイッチングデバイスを介して送信する。   The controller A receives the identifier and the 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 input / output manager A.

入出力マネージャAはキャッシュデバイスMの識別子及びキャッシュアドレスMを受信し、ホストによって送信されたデータ書込み要求に応答する。ホストは、書き込まれるデータを入出力マネージャAに送信する。   The input / output manager A receives the identifier of the cache device M and the cache address M, and responds to the data write request sent by the host. The host transmits data to be written to the input / output 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 data to be written transmitted by the host, and 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 sent by the cache device M via the PCIe switching device A indicating that the data to be written has been successfully written. The input / output manager A sends a response indicating that the data write request has been completed to the host, and notifies the host that the write request operation has been 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 particularly true when 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; or The input / output manager A includes sending 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 relationship 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 in accordance with the notification transmitted by the input / output manager A.

キャッシュデバイスMが、書き込まれるデータのアドレスとキャッシュアドレスMとの間の対応関係をどのように確立するかについては、上記の実施形態における説明を参照し、ここでは詳細を繰り返し説明することはしない。   For how the cache device M establishes the correspondence between the address of the data to be written and the cache address M, refer to the description in the above embodiment, and the details will not be repeated 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 obtain the address of the data to be written from the cache address assignment instruction sent by the controller A. After assigning the cache address N, the cache device N A correspondence relationship with the address N is established.

キャッシュデバイスMにキャッシュされる書き込まれるデータの喪失を防ぐために、コントローラAが書き込まれるデータのターゲットLUのホームコントローラでないシナリオにおいて、書き込まれるデータが、キャッシュとしての役割を果たす複数のキャッシュデバイスを必要とするとき、入出力マネージャAは、データ書込み要求をコントローラBに送信する。そのプロセスについては、上記の実施形態における説明を参照されたい。コントローラBによって、書き込まれるデータのキャッシュアドレスを取得するプロセスについては、コントローラAが書き込まれるデータのターゲットLUのホームコントローラであり、コントローラAが複数のキャッシュデバイスのキャッシュアドレスを取得するシナリオを参照されたい。他のステップについても、上記の実施形態における説明を参照し、ここでは詳細を繰り返し説明することはしない。   In order to prevent loss of written data cached in the cache device M, in a scenario where the controller A is not the home controller of the target LU of the data to be written, the written data requires multiple cache devices that act as a cache. When doing so, the input / output 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. . For other steps as well, the description in the above embodiment is referred to, and details are not repeatedly described here.

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

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

ホストが、データ読出し要求を入出力マネージャAに送信する。データ読出し要求は、読み出されるデータのアドレスを保持する。読み出されるデータのアドレスは、読み出されるデータが位置する論理ユニットLUの識別子と、読み出されるデータのLBAと、読み出されるデータの長さとを含む。特に、ホストは、SCSIプロトコルを用いることによって、データ読出し要求を入出力マネージャAに送信してもよいが、これは本発明によって制限されるものではない。説明を容易にするために、ここで読み出されるデータは、上記で説明した書き込まれるデータである。   The host transmits a data read request to the input / output manager A. The data read request holds the address of data to be read. The address of the read data includes the identifier of the logical unit LU where the read data is located, the LBA of the read data, and the length of the read data. In particular, the host may send a data read request to the input / output 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 written data described above.

ステップ502:データ読出し要求をコントローラAに送信する。   Step 502: Send a data read request to the 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 input / output 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 where the data to be read is located and the read data 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 according to the data read request The cache address M is used to cache the read data in the cache device M, and the correspondence relationship between the cache address and the cache address is determined. When the read data is still cached in the cache device M, the cache address of the read data 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 data read from the cache address M.

入出力マネージャAは、キャッシュデバイスMの識別子及びキャッシュアドレスMに従って、PCIeスイッチングデバイスAを介してキャッシュアドレスMから読み出されるデータを直接読み出す。   The input / output manager A directly reads 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: Return 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に直接送信してもよい。後続の読出し動作については、上記の実施形態における読出し動作を参照し、ここでは詳細を繰り返し説明することはしない。   When the input / output manager A sends a query request for data to be read to the controller A via the PCIe switching device A according to the data read request, and the controller A is not the home controller of the LU where the data to be read is located, the controller A inquires the correspondence between the LU where the data to be read is located and the home controller, and controller B determines that it is the home controller of the LU where the data to be read is located. The controller A transmits a query request for data to be read to the controller B via the PCIe switching device B. It is used as an example that the written data is still the read data referred to here. Therefore, the address of the data to be read is the address of the data to be written described above. When the read data is still cached in the cache device M, the cache address of the read data in the cache device M is the cache address M. The controller B inquires 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 the cache address M of the cache device M that caches the read data, and The identifier of the device M and the 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. Regarding the subsequent read operation, the read operation in the above-described embodiment is referred to, and details thereof will not be repeated 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 written data is still the read data referred to here. 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. The storage address of the data to be read in the target SSD is obtained, and the storage address of the data to be read in the target SSD is transmitted to the input / output manager A via the PCIe switching device A or the PCIe switching device B. To do. The storage address of the data to be read in the target SSD includes the controller identifier 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 read data is partially stored in the target SSD and partially cached in the cache device M in this embodiment of the present invention as described above, the input / output manager A Read data directly from the cache address via the PCIe switching device A or PCIe switching device B according to the cache address of the data to be read in the cache device; the I / O manager A is read in the controller identifier of the target SSD and in the target SSD Data is directly read 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 perform an operation of caching read data, a primary cache in which the LU home controller where the read data is located normally caches the read data and the cache address M in the input / output manager A Returns the identifier of device M. For other procedural operations, refer to the read operation in the above embodiment, and the details will not be repeated 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 input / output 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 input / output manager A with the identifier of the cache device M and the cache address M. The input / output manager A directly writes the data to be written to 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.

キャッシュデバイス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 cached in the cache device M is stored in the SSD of the storage array. This can effectively save storage space and improve the utilization rate of storage space. Using the storage array shown in FIG. 2 as an example, for data stored in the storage array SSD, data deduplication is performed before the data is stored in the SSD by the cache device M. The data deduplication technique is to divide data into data blocks according to preset rules and calculate eigenvalues of each data block. The eigenvalues of the data block are usually calculated by using a hash algorithm. A 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 a particular implementation, a comparison of the eigenvalues of the data block is performed by the controller. Data deduplication is performed in the storage array, and many unique values are generated because each unique data block has a unique value. In order to implement a balance between the controllers in the storage array, each controller is responsible for comparing 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 unique value index of some unique data is called the unique value index set. The controller queries the eigenvalue index set for the eigenvalue of the data block to be written to the SSD and determines whether the eigenvalue is the same as the eigenvalue in the eigenvalue index set. For example, controller A needs to maintain eigenvalue index set A according to the eigenvalue distribution algorithm, and therefore controller A is the home controller for all eigenvalues in eigenvalue index set A; or eigenvalues from eigenvalue index set A The controllers for which are the same as the eigenvalues of data block X are both the eigenvalue home controller of data block X and the home controllers of all eigenvalues in 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 index shown in FIG. For example, the index of the unique value 1 includes the unique value 1, the data block storage address 1, and the reference count. Data block storage address 1 is used to represent a storage address of a unique data block C in SSD A or a storage address of 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 a cache device identifier and a 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 data block A is stored in the storage array for the first time, the reference count is 1 if the amount of data blocks having unique value 1 is 1. When a data block D having the same eigenvalue 1 is stored again in the SSD, the data block D is not stored in the SSD according to the principle of data deduplication, but the reference count is incremented by 1 and updated to 2. In summary, the data block storage address in the eigenvalue index is 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 identifier of the cache device and the cache address of the data block in the cache device; the storage address of the data block in the target hard disk includes the identifier of the controller of the target hard disk and the target hard disk And a logical storage address for storing the data block. The eigenvalue index shown in FIG. 6 is merely an exemplary implementation, 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 serves as the 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 directly writes the data to be written to 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. The controller A establishes a correspondence relationship between the address of 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 being performed, 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 partitioned according to specific rules in order to obtain the data block. There may be two methods for dividing into data blocks: dividing data into fixed-length data blocks or dividing data into variable-length data blocks. In this embodiment of the present invention, it is used as an example that data is divided into fixed-length data blocks. For example, the data is divided into data blocks having a size of 4 KB. Illustratively, the data to be written, which is written to the cache address M, is divided into several data blocks having a size of 4 KB. 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 of the data block, the LBA of the data block, and the length of the data block are hereinafter referred to as the data block storage address. Using data block X in several data blocks of 4 KB size as an example (where data block X is called a data block to be deduplicated) and is shortened Controller A also sends a data block eigenvalue request to cache device M via PCIe switching device A or PCIe switching device B, also known as to-be-dedicated 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 FIG. 7, the specific process includes:

ステップ701:キャッシュデバイスMがデータブロックXの固有値を計算する。   Step 701: The cache device M calculates a unique value 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 to the cache device M an instruction for acquiring a unique value of the data block X. The instruction holds the address of data block X. The cache device M receives the instruction to acquire the unique value 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 the data according to the address of the data block X held in the instruction for obtaining 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 at 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 unique value of the data block X and transmits a response message of the unique value of the data block X to the home controller A of the LU where the data block X is located. The response message of the unique value of the data block X holds the unique value 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: The home controller of the eigenvalue of the data block X is determined according to the eigenvalue distribution algorithm.

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

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

データブロックXの固有値と同じ固有値が固有値インデックスセットA内に存在するとき、ステップ705a及び706aが実行される。図6に示すように、データブロックXの固有値は固有値1と同じである。すなわち、データブロックXはデータブロックAと同じである。   When the same eigenvalue as the eigenvalue of the data block X exists in the eigenvalue index set A, steps 705a and 706a are executed. 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 in the index of eigenvalue 1.

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

ステップ706a:コントローラAは、キャッシュデバイスMに、データブロックXを削除するように命令する。   Step 706a: The controller A instructs the 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 sets the address of the data block X, the unique value of the data block X, and the data block A. Establish a correspondence with the storage address.

ステップ704において、データブロックXが重複データブロックであると判断される。したがって、データブロックXはSSD内に保存される必要がなく、キャッシュデバイスMはデータブロックXを削除するように命令される。   In step 704, it is determined that the data block X is 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が実行される。   When the same eigenvalue as the eigenvalue of the data block X does not exist in the eigenvalue index set A, steps 705b, 706b, 707, 708, 709 and 710 are executed.

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

コントローラ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 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 and the cache address B of the cache device M. Is read directly.

ステップ708:ターゲットSSDのコントローラは、ターゲットSSDにおけるデータブロックXの記憶アドレスをコントローラAに送信する。   Step 708: The controller of the target SSD sends 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 a controller identifier of the target SSD and a logical storage address for storing the data block X in the target SSD.

ステップ709:コントローラAは、データブロックXの固有値インデックスを確立する。   Step 709: The controller A establishes an eigenvalue index for the 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 unique value 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 unique value of the data block X. When the unique value of the data block X is stored in the SSD, the controller A needs to record the storage address of the unique value 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 case, controller A is not the home controller of the eigenvalue of data block X, but is simply the home controller of the LU where data block X is located. In this embodiment of the present invention, it is used as an example that the controller B is the home controller of the eigenvalue of the data block X, and the controller A sends the eigenvalue of the data block X via the PCIe switching device A or the PCIe switching device B. Transmit to controller B. The controller B receives the eigenvalue of the data block X transmitted by the controller A and inquires about the eigenvalue index set B of the controller B. When controller B finds that the same eigenvalue as the eigenvalue of data block X exists in eigenvalue index set A, for example, the eigenvalue of data block R is the same as the eigenvalue of data block X, controller B Instructs device M to delete data block X. This includes in particular that controller B sends a delete instruction to controller A via PCIe switching device B. The controller A transmits a delete 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 having 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 Contains the 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 relationship 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. Therefore, 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 relationship 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. Thereafter, when reading the data block X, the controller A inquires about the correspondence relationship 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, thereby determining the storage address of the data block R. 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 read 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 where the data block X is located, but is not the home controller of the eigenvalue of the data block X, the controller B has the same eigenvalue as the eigenvalue 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 sends 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 sends 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 (here, 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 unique value of the data block X. When the unique value of the data block X is stored in the SSD, the controller B needs to record the storage address of the unique value 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 sends a notification to the controller A. The notification holds the storage address of the data block X in the target SSD. In accordance with the notification sent by the controller B, the controller A establishes a correspondence relationship between the address of the data block X, the unique value, and the storage address of the data block X in the target SSD. In another implementation, when the controller A is simply the home controller of the LU where the data block X is located, but not the eigenvalue home controller of the data block X, the controller A will send the address of the data block X and the data A correspondence between the unique value of block X and the address of controller B is established.

本発明のこの実施形態におけるストレージアレイに従って、キャッシュデバイスは、データブロックXのフィンガープリントの計算を実施する。これは、コントローラの計算リソースを節約する。データブロックXをターゲットSSDに記憶するプロセスの間、コントローラはキャッシュデバイスMの識別子及びキャッシュアドレスBのみを提供し、ターゲットSSDのコントローラはキャッシュアドレスBからデータブロックXを直接読み出す。これは、コントローラの計算リソース及びメモリリソースを節約し、ストレージアレイの性能を改善する。   In accordance with the storage array in this embodiment of the invention, the cache device performs a fingerprint calculation of data block X. This saves controller computing resources. During the process of storing the data block X in the target SSD, the controller provides only the identifier of the cache device M and the cache address B, and the target SSD controller 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 data deduplication operation described above. When the input / output manager A receives a data read request for holding the address of the data block X, for example, a request for reading the data block X, the input / output manager A sends a data read request to the controller A via the PCIe switching device A. Send. Controller A determines that controller A is the home controller of the LU where data block X is located. In one implementation, the controller A searches for the 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 the data block in the target SSD. The storage address of X is determined. 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 sends 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 PCIe switching device B according to the storage address of the data block to be read in the target SSD, that is, the storage address of the data block X. Is read directly. In another implementation, the controller A retrieves the correspondence between the address of the data block X, the unique value of the data block X, and the home controller address of the unique value of the data block X, and the unique value of the data block X Determine the home address of the data block X in the controller B and determine the storage address of the data block X in the target SSD; or determine the home controller B of the unique value in the data block X; Queries the eigenvalue index of the data block having the same eigenvalue as that of the data block X in the controller B, determines the storage address of the data block having the same eigenvalue as the data block X, and then determines the eigenvalue of the data block X Flip reading data from the memory address of the data block having a 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 eigenvalue of the data block X, in another implementation, the controller A has the address of the data block X to be read and the data Retrieve the correspondence between the eigenvalues of block X, query the eigenvalue index set A maintained by controller A according to the eigenvalues of data block X, determine the storage address of data block X to be read, 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 the 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 data to be written to the storage array shown in FIG. 2 is written to multiple cache devices, data deduplication is only performed on data in one of the cache devices when a data deduplication operation is being performed. Executed. In particular, data deduplication can be performed on the data at the primary cache device or one of the cache devices to perform data deduplication operations according to the load of the plurality of cache devices that cache the data. Is selected, but 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 implementation, 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 input / output manager A. Each input / output manager stores a correspondence between the LU and the controller on which the LU is homed. The I / O manager inquires the correspondence between the target LU identifier and the home controller in accordance with the target LU identifier held in the data operation request, determines the home controller of the target LU, and the PCIe switching device A or PCIe. The request is directly transmitted to the home controller of the target LU via the switching device B. Furthermore, via any PCIe switching device, between controllers, or between controller and SSD, or between I / O manager and controller, or between I / O manager and SSD, or cache device. 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 at the storage address in the target hard disk refers to the logical block address for storing the data block X in the target hard disk, and in particular, the implementation of the present invention. In the form, it indicates 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 input / output managers and one cache device. However, in certain embodiments, the amount of controllers, switching devices, I / O managers and cache devices may be set as needed and flexibly expanded. Any input / output manager is connected to any controller via any switching device, or any input / output manager is connected to any hard disk via any switching device, or any input / output A 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 To any cache device. An arbitrary cache device is connected to an arbitrary hard disk via a switching device. Bidirectional communication is performed 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 controller is collectively referred to as the controller plane, the switching device is collectively referred to as the switching plane, and the hard disk is collectively referred to as the storage plane, The input / output manager is collectively called an input / output management plane, and the cache device is also called a 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) do not pass through the controller. This saves the controller's CPU computational resources and the controller's memory resources, improves the data write efficiency, and improves the data processing efficiency of the storage array. The storage array architecture in this embodiment of the invention can implement expansion of devices such as controllers and hard disks, and controllers, switching devices, hard disks, etc. 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 several hard disks. It is. For the method of writing data to the storage array in this scenario, refer to the description in the above embodiment. For scenarios where data deduplication is performed in the storage array, see the description in the above embodiment. For the data read operation executed 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, which are connected to the switching device. For the data write operation, the data deduplication operation, and the data read operation in such a scenario, refer to the description in the above embodiment, and the details will not be repeated 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's identifier and cache address A, PCIe switching device A or Data is written to the cache address A via the PCIe switching device B (or in other words, data is directly written to the cache address A). Such an implementation scheme may be implemented by direct memory access (Direct Memory Access, DMA) technology, where device A and device B represent devices that perform DMA access specifically 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 device B, and transmits the identifier of device B and the cache address of device B to device C via PCIe switching device A or PCIe switching device B. The controller communicates with device B to obtain the cache address via PCIe switching device A or PCIe switching device B and has already learned the identifier of device B, so the cache address is obtained and the identifier of device B And the cache address of device B may be transmitted to device C. Of course, the controller may also obtain the identifier and cache address of device B. 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 algorithm steps described with reference to the embodiments disclosed herein may be implemented by electronic hardware or by a combination of computer software and electronic hardware. Can be recognized. Whether the function is performed by hardware or software depends on the specific application and design constraints of the technical solution. One skilled in the art can use different methods to perform the functions described for each particular application, but the implementation should not be considered beyond the scope of the present invention.

便宜上及び簡単な説明のために、上記のシステム、装置及びユニットの詳細な動作プロセスについては、上記の方法の実施形態における対応するプロセスを参照し、ここでは詳細を繰り返し説明することはしないことが、当業者によって明確に理解されることができる。   For convenience and brief description, the detailed operational processes of the above systems, devices and units will be referred to the corresponding processes in the above method embodiments, and details will not be repeated here. 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 manners. For example, the described apparatus embodiment is merely exemplary. For example, the unit division is merely logical function division and may be other division in an actual implementation. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not performed. Furthermore, the mutual or direct coupling or communication connection that is displayed or considered may be implemented through several interfaces. Indirect coupling or communication connections between devices or units may be implemented electronically, mechanically, or otherwise.

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

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

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

Claims (12)

データ書込み要求処理方法であって、前記方法はストレージアレイに適用され、前記ストレージアレイは、入出力マネージャと、スイッチングデバイスと、第1のコントローラと、第1のキャッシュデバイスとを備え、前記入出力マネージャ、前記第1のコントローラ及び前記第1のキャッシュデバイスは前記スイッチングデバイスに接続され、前記スイッチングデバイスは前記ストレージアレイ内のストレージユニットに接続され、前記方法は、
前記入出力マネージャによって、データ書込み要求を、前記スイッチングデバイスを介して前記第1のコントローラに送信するステップであって、前記データ書込み要求は、書き込まれるデータに対応するステップと、
前記第1のコントローラによって、前記データ書込み要求に従って、前記第1のキャッシュデバイスにおける前記書き込まれるデータに対し割り当てられる第1のキャッシュアドレスを取得するステップと、
前記第1のコントローラによって、前記第1のキャッシュデバイスの識別子及び前記第1のキャッシュアドレスを、前記スイッチングデバイスを介して前記入出力マネージャに送信するステップと、
前記入出力マネージャによって、前記第1のキャッシュデバイスの前記識別子及び前記第1のキャッシュアドレスに従って、前記書き込まれるデータを、前記スイッチングデバイスを介して前記第1のキャッシュアドレスに書き込むステップと、
を含む、データ書込み要求処理方法。
A data write request processing method, wherein the method is applied to a storage array, and the storage array includes an input / output manager, a switching device, a first controller, and a first cache device. The manager, the first controller, and the first cache device are connected to the switching device, the switching device is connected to a storage unit in the storage array, and the method includes:
Transmitting a data write request by the input / output manager to the first controller via the switching device, the data write request corresponding to data to be written;
Obtaining a first cache address assigned to the written data in the first cache device by the first controller in accordance with the data write request;
Sending an identifier of the first cache device and the first cache address by the first controller to the input / output manager via the switching device;
Writing the written data to the first cache address via the switching device by the I / O manager according to the identifier of the first cache device and the first cache address;
Including a data write request processing method.
前記データ書込み要求は、前記書き込まれるデータのアドレスを含み、前記方法は、
前記第1のキャッシュデバイスによって送信される、前記書き込まれるデータの書込みに成功したことを示す応答を、前記入出力マネージャによって受信するステップと、
前記入出力マネージャから、前記スイッチングデバイスを介して、前記第1のコントローラに、前記書き込まれるデータが前記第1のキャッシュアドレスに書き込まれるという通知を送信するステップと、
前記通知に従って、前記第1のコントローラによって、前記書き込まれるデータの前記アドレスと、前記第1のキャッシュデバイスの前記識別子と、前記第1のキャッシュアドレスとの間の対応関係を確立するステップと、
を更に含む、請求項1に記載の方法。
The data write request includes an address of the data to be written, and the method includes:
Receiving a response sent by the first cache device indicating successful writing of the written data by the I / O manager;
Sending a notification that the written data is written to the first cache address from the input / output manager to the first controller via the switching device;
Establishing a correspondence between the address of the data to be written, the identifier of the first cache device, and the first cache address by the first controller in accordance with the notification;
The method of claim 1, further comprising:
前記ストレージアレイは第2のキャッシュデバイスを更に備え、前記第2のキャッシュデバイスは前記スイッチングデバイスに接続され、前記方法は、
前記第1のコントローラによって、前記データ書込み要求に従って、前記第2のキャッシュデバイスにおける前記書き込まれるデータに対し割り当てられる第2のキャッシュアドレスを取得するステップと、
前記第1のコントローラによって、前記第2のキャッシュデバイスの識別子及び前記第2のキャッシュアドレスを、前記スイッチングデバイスを介して前記入出力マネージャに送信するステップと、
前記入出力マネージャによって、前記第2のキャッシュデバイスの前記識別子及び前記第2のキャッシュアドレスに従って、前記書き込まれるデータを、前記スイッチングデバイスを介して前記第2のキャッシュアドレスに書き込むステップと、
を更に含む、請求項1に記載の方法。
The storage array further comprises a second cache device, the second cache device is connected to the switching device, and the method comprises:
Obtaining a second cache address assigned to the written data in the second cache device by the first controller in accordance with the data write request;
Transmitting, by the first controller, an identifier of the second cache device and the second cache address to the input / output manager via the switching device;
Writing the written data to the second cache address via the switching device by the I / O manager according to the identifier of the second cache device and the second cache address;
The method of claim 1, further comprising:
前記ストレージアレイは第2のキャッシュデバイスを更に備え、前記第2のキャッシュデバイスは前記スイッチングデバイスに接続され、前記方法は、
前記第1のコントローラによって、前記データ書込み要求に従って、前記第2のキャッシュデバイスにおける前記書き込まれるデータに対し割り当てられる第2のキャッシュアドレスを取得するステップと、
前記第1のコントローラによって、前記スイッチングデバイスを介してデータ書込み命令を前記第1のキャッシュデバイスに送信するステップであって、前記データ書込み命令は、前記第2のキャッシュデバイスの前記識別子及び前記第2のキャッシュアドレスを保持する、ステップと、
前記第1のキャッシュデバイスによって、前記データ書込み命令に従って、前記書き込まれるデータを、前記スイッチングデバイスを介して前記第2のキャッシュアドレスに書き込むステップと、
を更に含む、請求項1に記載の方法。
The storage array further comprises a second cache device, the second cache device is connected to the switching device, and the method comprises:
Obtaining a second cache address assigned to the written data in the second cache device by the first controller in accordance with the data write request;
Sending a data write command to the first cache device via the switching device by the first controller, wherein the data write command includes the identifier of the second cache device and the second Holding the cache address of, and
Writing the written data to the second cache address via the switching device by the first cache device according to the data write instruction;
The method of claim 1, further comprising:
前記データ書込み要求は、前記書き込まれるデータのアドレスを保持し、前記書き込まれるデータの前記アドレスは、前記書き込まれるデータが位置するターゲット論理ユニット(ターゲットLU)の識別子と、前記書き込まれるデータの論理ブロックアドレスと、前記書き込まれるデータの長さとを含み、前記方法は、
前記入出力マネージャによって、前記ターゲットLUの前記識別子に従って、前記入出力マネージャに記憶されている前記ターゲットLUと前記第1のコントローラとの間のホーミング関係を問い合わせ、前記第1のコントローラが前記ターゲットLUのホームコントローラであると識別するステップと、
前記入出力マネージャによって、前記データ書込み要求を、前記スイッチングデバイスを介して前記第1のコントローラに送信するステップと、
を更に含む、請求項1に記載の方法。
The data write request holds an address of the written data, and the address of the written data includes an identifier of a target logical unit (target LU) where the written data is located, and a logical block of the written data Including an address and a length of the written data, the method comprising:
The input / output manager inquires about a 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 Identifying the home controller as
Sending the data write request by the I / O manager to the first controller via the switching device;
The method of claim 1, further comprising:
前記データ書込み要求は、前記書き込まれるデータのアドレスを保持し、前記書き込まれるデータの前記アドレスは、前記書き込まれるデータが位置するターゲット論理ユニット(ターゲットLU)の識別子と、前記書き込まれるデータの論理ブロックアドレスと、前記書き込まれるデータの長さとを含み、前記ストレージアレイは第2のコントローラを更に含み、前記第2のコントローラは前記スイッチングデバイスに接続され、前記方法は、
前記入出力マネージャによって、前記データ書込み要求を、前記スイッチングデバイスを介して前記第2のコントローラに送信するステップと、
前記第2のコントローラによって、前記ターゲットLUの前記識別子に従って、前記第1のコントローラが前記ターゲットLUのホームコントローラであると判断するステップと、
前記第2のコントローラによって、前記データ書込み要求を、前記スイッチングデバイスを介して前記第1のコントローラに送信するステップと、
を更に含む、請求項1に記載の方法。
The data write request holds an address of the written data, and the address of the written data includes an identifier of a target logical unit (target LU) where the written data is located, and a logical block of the written data An address and a length of the data to be written, wherein the storage array further comprises a second controller, the second controller is connected to the switching device, and the method comprises:
Sending the data write request by the input / output manager to the second controller via the switching device;
Determining by the second controller according to the identifier of the target LU that the first controller is a home controller of the target LU;
Sending the data write request by the second controller to the first controller via the switching device;
The method of claim 1, further comprising:
ストレージアレイであって、前記ストレージアレイは、入出力マネージャと、スイッチングデバイスと、第1のコントローラと、第1のキャッシュデバイスとを備え、前記入出力マネージャ、前記第1のコントローラ及び前記第1のキャッシュデバイスは前記スイッチングデバイスに接続され、前記スイッチングデバイスは前記ストレージアレイ内のストレージユニットに接続され、
前記入出力マネージャは、データ書込み要求を、前記スイッチングデバイスを介して前記第1のコントローラに送信するように構成され、
前記第1のコントローラは、前記データ書込み要求に従って、前記第1のキャッシュデバイスにおける書き込まれるデータに対し割り当てられる第1のキャッシュアドレスを取得し、前記第1のキャッシュデバイスの識別子及び前記第1のキャッシュアドレスを、前記スイッチングデバイスを介して前記入出力マネージャに送信するように構成され、
前記入出力マネージャは、前記第1のキャッシュデバイスの前記識別子及び前記第1のキャッシュアドレスに従って、前記書き込まれるデータを、前記スイッチングデバイスを介して前記第1のキャッシュアドレスに書き込むように更に構成される、ストレージアレイ。
A storage array, comprising: an input / output manager, a switching device, a first controller, and a first cache device, wherein the input / output manager, the first controller, and the first controller A cache device is connected to the switching device, 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 obtains a first cache address assigned to data to be written in the first cache device according to the data write request, and an identifier of the first cache device and the first cache An address is configured to be sent to the I / O manager via the switching device;
The input / output manager is further configured to write the written data to the first cache address via the switching device according to the identifier of the first cache device and the first cache address. Storage array.
前記データ書込み要求は、前記書き込まれるデータのアドレスを保持し、
前記入出力マネージャは、前記第1のキャッシュデバイスから、前記書き込まれるデータの書込みに成功したことを示す応答を受信するように更に構成され、
前記入出力マネージャは、前記スイッチングデバイスを介して、前記第1のコントローラに、前記書き込まれるデータが前記第1のキャッシュアドレスに書き込まれることを通知するように更に構成され、
前記第1のコントローラは、前記通知に従って、前記書き込まれるデータの前記アドレスと、前記第1のキャッシュデバイスの前記識別子と、前記第1のキャッシュアドレスとの間の対応関係を確立するように更に構成される、請求項7に記載のストレージアレイ。
The data write request holds an address of the data to be written,
The input / output manager is further configured to receive a response from the first cache device indicating successful writing of the written data;
The input / output manager is further configured to notify the first controller via the switching device that the written data is written to the first cache address;
The first controller is further configured to establish a correspondence between the address of the written data, the identifier of the first cache device, and the first cache address according to the notification. The storage array of claim 7.
前記ストレージアレイは第2のキャッシュデバイスを更に備え、前記第2のキャッシュデバイスは前記スイッチングデバイスに接続され、
前記第1のコントローラは、前記データ書込み要求に従って、前記第2のキャッシュデバイスにおける前記書き込まれるデータに対し割り当てられる第2のキャッシュアドレスを取得するように更に構成され、
前記第1のコントローラは、前記第2のキャッシュデバイスの識別子及び前記第2のキャッシュアドレスを、前記スイッチングデバイスを介して前記入出力マネージャに送信するように更に構成され、
前記入出力マネージャは、前記第2のキャッシュデバイスの前記識別子及び前記第2のキャッシュアドレスに従って、前記書き込まれるデータを、前記スイッチングデバイスを介して前記第2のキャッシュアドレスに書き込むように更に構成される、請求項7に記載のストレージアレイ。
The storage array further comprises a second cache device, the second cache device connected to the switching device;
The first controller is further configured to obtain a second cache address assigned to the written data in the second cache device in accordance with the 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 input / output manager via the switching device;
The I / O manager is further configured to write the written data to the second cache address via the switching device according to the identifier of the second cache device and the second cache address. The storage array according to claim 7.
前記第1のコントローラは、前記データ書込み要求に従って、第2のキャッシュデバイスにおける前記書き込まれるデータに対し割り当てられる第2のキャッシュアドレスを取得するように更に構成され、
前記第1のコントローラは、前記スイッチングデバイスを介してデータ書込み命令を前記第1のキャッシュデバイスに送信するように更に構成され、前記データ書込み命令は、前記第2のキャッシュデバイスの識別子及び前記第2のキャッシュアドレスを含み、
前記第1のキャッシュデバイスは、前記データ書込み命令に従って、前記書き込まれるデータを、前記スイッチングデバイスを介して前記第2のキャッシュアドレスに書き込むよう構成される、請求項7に記載のストレージアレイ。
The first controller is further configured to obtain a second cache address assigned to the written data in a second cache device in accordance with the data write request;
The first controller is further configured to send a data write command to the first cache device via the switching device, the data write command including an identifier of the second cache device and the second Including the cache address of
The storage array according to claim 7, wherein the first cache device is configured to write the written data to the second cache address via the switching device in accordance with the data write instruction.
前記データ書込み要求は、前記書き込まれるデータのアドレスを保持し、前記書き込まれるデータの前記アドレスは、前記書き込まれるデータが位置するターゲット論理ユニットLUの識別子と、前記書き込まれるデータの論理ブロックアドレスと、前記書き込まれるデータの長さとを含み、前記入出力マネージャが、前記データ書込み要求を、前記スイッチングデバイスを介して前記第1のコントローラに送信することは、
前記入出力マネージャによって、前記ターゲットLUの前記識別子に従って、前記入出力マネージャに記憶されている前記ターゲットLUと前記第1のコントローラとの間のホーミング関係を問い合わせ、前記第1のコントローラが前記ターゲットLUのホームコントローラであると識別することと、
前記入出力マネージャによって、前記データ書込み要求を、前記スイッチングデバイスを介して前記第1のコントローラに送信することと、
を特に含む、請求項7に記載のストレージアレイ。
The data write request holds an address of the written data, and the address of the written data includes an identifier of a target logical unit LU where the written data is located, a logical block address of the written data, The I / O manager sends the data write request to the first controller via the switching device, including the length of the data to be written;
The input / output manager inquires about a 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 Identifying the home controller as
Sending the data write request by the I / O manager to the first controller via the switching device;
8. The storage array of claim 7, wherein
前記データ書込み要求は、前記書き込まれるデータのアドレスを保持し、前記書き込まれるデータの前記アドレスは、前記書き込まれるデータが位置するターゲット論理ユニットLUの識別子と、前記書き込まれるデータの論理ブロックアドレスと、前記書き込まれるデータの長さとを含み、前記ストレージアレイは第2のコントローラを更に備え、前記第2のコントローラは前記スイッチングデバイスに接続され、前記入出力マネージャが、前記データ書込み要求を、前記スイッチングデバイスを介して前記第1のコントローラに送信することは、
前記入出力マネージャによって、前記データ書込み要求を、前記スイッチングデバイスを介して前記第2のコントローラに送信することと、
前記第2のコントローラによって、前記ターゲットLUの前記識別子に従って、前記第1のコントローラが前記ターゲットLUのホームコントローラであると判断することと、
前記第2のコントローラによって、前記データ書込み要求を、前記スイッチングデバイスを介して前記第1のコントローラに送信することと、
を特に含む、請求項7に記載のストレージアレイ。
The data write request holds an address of the written data, and the address of the written data includes an identifier of a target logical unit LU where the written data is located, a logical block address of the written data, The storage array further comprises a second controller, the second controller is connected to the switching device, and the input / output manager sends the data write request to the switching device. Sending to the first controller via
Sending the data write request by the I / O manager to the second controller via the switching device;
Determining by the second controller according to the identifier of the target LU that the first controller is a home controller of the target LU;
Sending the data write request by the second controller to the first controller via the switching device;
8. The storage array of claim 7, wherein
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 true JP2018010698A (en) 2018-01-18
JP6924671B2 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)

Cited By (2)

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

Citations (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
JP2013517537A (en) * 2010-04-21 2013-05-16 株式会社日立製作所 Storage system and ownership control method in storage system
JP6231669B2 (en) * 2014-09-15 2017-11-15 華為技術有限公司Huawei Technologies Co.,Ltd. Data write request processing method and storage array

Patent Citations (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
JP2013517537A (en) * 2010-04-21 2013-05-16 株式会社日立製作所 Storage system and ownership control method in storage system
JP6231669B2 (en) * 2014-09-15 2017-11-15 華為技術有限公司Huawei Technologies Co.,Ltd. Data write request processing method and storage array

Cited By (4)

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

Also Published As

Publication number Publication date
JP6924671B2 (en) 2021-08-25

Similar Documents

Publication Publication Date Title
JP6231669B2 (en) Data write request processing method and storage array
JP6254293B2 (en) Data deduplication method and storage array
US20190278719A1 (en) Primary Data Storage System with Data Tiering
US20190310925A1 (en) Information processing system and path management method
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
WO2016121026A1 (en) Storage apparatus, computer system, and method
JP6924671B2 (en) Data write request processing method and storage array
US20150269098A1 (en) Information processing apparatus, information processing method, storage, storage control method, and storage medium
WO2016194162A1 (en) Computer system
JP6552583B2 (en) Data deduplication method and storage array
WO2012173137A1 (en) Information processing system, information processing device, storage device, and program
JP2019008418A (en) Data transfer apparatus and data transfer method

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