JP7315753B2 - storage device - Google Patents

storage device Download PDF

Info

Publication number
JP7315753B2
JP7315753B2 JP2022084994A JP2022084994A JP7315753B2 JP 7315753 B2 JP7315753 B2 JP 7315753B2 JP 2022084994 A JP2022084994 A JP 2022084994A JP 2022084994 A JP2022084994 A JP 2022084994A JP 7315753 B2 JP7315753 B2 JP 7315753B2
Authority
JP
Japan
Prior art keywords
drive
switch
controller
storage
storage device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2022084994A
Other languages
Japanese (ja)
Other versions
JP2022105659A (en
Inventor
真喜夫 水野
健太郎 島田
亮介 松原
碧 黒川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi 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 JP2019142713A external-priority patent/JP7080863B2/en
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2022084994A priority Critical patent/JP7315753B2/en
Publication of JP2022105659A publication Critical patent/JP2022105659A/en
Application granted granted Critical
Publication of JP7315753B2 publication Critical patent/JP7315753B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

本開示は、ストレージ装置に関する。 The present disclosure relates to storage devices.

ストレージ装置は、ストレージ装置に接続したホストコンピュータおよびストレージ装置内の記憶媒体との間のデータ転送を制御するストレージコントローラを備える。ストレージコントローラは、ホストコンピュータを接続するフロントエンドインタフェース、記憶媒体としての多数のドライブを接続するバックエンドインタフェース、ストレージ装置を制御するためのプロセッサおよびプロセッサに接続されたメモリ等を含む。 A storage device includes a storage controller that controls data transfer between a host computer connected to the storage device and a storage medium within the storage device. The storage controller includes a front-end interface for connecting host computers, a back-end interface for connecting multiple drives as storage media, a processor for controlling the storage device, memory connected to the processor, and the like.

また、プロセッサ、フロントエンドインタフェースおよびバックエンドインタフェース等を接続するための通信ネットワークの標準規格の1つとして、PCI Express(以降PCIe)が知られている。さらに、ストレージ装置を利用するユーザの利用規模に合わせるため、ストレージ装置は、複数台のストレージ装置を相互接続するためのインタコネクトも含むことが多い。 Also, PCI Express (hereinafter referred to as PCIe) is known as one of communication network standards for connecting processors, front-end interfaces, back-end interfaces, and the like. Furthermore, in order to match the usage scale of users who use the storage device, the storage device often includes an interconnect for interconnecting a plurality of storage devices.

ミッションクリティカル業務で使われるストレージ装置において、最も重要視される要素の1つが可用性である。ストレージ装置は、この可用性を提供するために、例えば、上述したストレージコントローラを冗長構成にする、デュアルコントローラアーキテクチャを用いる。 Availability is one of the most important factors in storage devices used in mission-critical operations. To provide this availability, the storage device uses, for example, a dual-controller architecture in which the storage controllers described above are configured redundantly.

デュアルコントローラアーキテクチャにおいて、コントローラ間を接続するためのインタフェースとして、例えばPCIe、Infinibandがある。デュアルコントローラのうち、片側のコントローラが何らかの要因で使用不能に陥った時、もう片側の正常なコントローラが異常を検知し、使用不能なコントローラが復旧するまでの間、ホストコンピュータからのI/Oを継続することで、可用性を保証する。 In the dual controller architecture, interfaces for connecting controllers include PCIe and Infiniband, for example. When one of the dual controllers becomes unusable for some reason, the normal controller on the other side detects the abnormality, and the availability is guaranteed by continuing I/O from the host computer until the unusable controller recovers.

近年、単一ドライブ容量増加、及び仮想化技術の進展により、複数のホストコンピュータ、あるいはアプリケーションで使うデータが単一ドライブで混在することが多い。したがって、例えば単一ドライブで異常を検知された場合、双方のコントローラに対して、異常を通知する必要がある。それは、ストレージ装置は、双方のコントローラが協調して動作しており、双方のコントローラに異常発生を通知することで、速やかに矛盾なく適切な処理を行う必要があるためである。 In recent years, due to the increase in single drive capacity and progress in virtualization technology, data used by multiple host computers or applications are often mixed on a single drive. Therefore, for example, when an abnormality is detected in a single drive, it is necessary to notify both controllers of the abnormality. This is because both controllers of the storage apparatus operate in cooperation with each other, and by notifying both controllers of the occurrence of an abnormality, it is necessary to quickly and consistently perform appropriate processing.

一方、フラッシュメモリの低価格化、使いこなしが進み、フラッシュメモリをドライブに搭載したSSD(Solid State Drive)のストレージ装置への搭載が進んでいる。このようなSSDの普及に伴い、近年、上述した処理時間の増大の解消を目的の1つとする新たな通信プロトコルとしてNVM Express(Non-Volatile Memory Express)が策定された。NVM Expressはプロトコル階層としてはアプリケーション層に位置し、物理層はPCIeを用いる。 On the other hand, the price of flash memory has been reduced and the use of flash memory has progressed, and the use of SSDs (Solid State Drives), in which flash memories are mounted in drives, in storage apparatuses is progressing. Along with the popularization of such SSDs, in recent years, NVM Express (Non-Volatile Memory Express) has been formulated as a new communication protocol for one of the purposes of eliminating the above-described increase in processing time. NVM Express is located in the application layer as a protocol layer, and uses PCIe as the physical layer.

ところで、PCI Expressドメインは、ルートコンプレックスと呼ばれるデバイスを頂点に、スイッチ、ブリッジ、及びエンドポイントデバイスがツリー上に接続される構造をとる。ルートコンプレックスは、PCI Expressシステムにおける一番根元に位置するデバイスである。 By the way, a PCI Express domain has a structure in which switches, bridges, and endpoint devices are connected in a tree with a device called a root complex at the top. A root complex is the most rooted device in a PCI Express system.

ブリッジは、多くの場合、レガシーデバイス、例えばPCIあるいはPCI-XエンドポイントとPCI Expressで接続するためのプロトコル変換をするために用いられる。スイッチは、PCI Expressのポート数を増やすために用いる。エンドポイントは、例えば、ハードディスク、SSDなどI/Oを行うデバイスのことである。PCI Expressの仕様上、エンドポイントは、1つのPCI Expressドメインにしか属することができない。 Bridges are often used to perform protocol conversion to connect legacy devices, such as PCI or PCI-X endpoints, to PCI Express. A switch is used to increase the number of PCI Express ports. An endpoint is, for example, a device that performs I/O, such as a hard disk or SSD. According to PCI Express specifications, an endpoint can only belong to one PCI Express domain.

ミッションクリティカル業務で使われるストレージ装置において、最も重要視される要素の1つが高性能である。ストレージ装置は、先に述べた可用性と高性能を提供するために、ストレージコントローラから任意のドライブにアクセスできるような構成を採る。ストレージコントローラは、ルートコンプレックス、ルートポートを持つ複数のプロセッサを含む。さらに、装置規模に応じて、ストレージ装置は複数のストレージコントローラを含む。ところが、PCI Expressの仕様上、エンドポイントである、NVMeをサポートするSSDは、1つのPCI Expressシステム、すなわち、1つのプロセッサの配下にしか属することができない。すなわち、ストレージコントローラから任意のドライブにアクセスできるような構成を採ることができない。 High performance is one of the most important factors in storage devices used in mission-critical operations. In order to provide the aforementioned availability and high performance, the storage device adopts a configuration that allows access to arbitrary drives from the storage controller. The storage controller includes multiple processors with root complexes and root ports. Furthermore, depending on the scale of the device, the storage device includes multiple storage controllers. However, according to the PCI Express specifications, an end point, an SSD supporting NVMe, can only belong to one PCI Express system, that is, under one processor. In other words, it is not possible to adopt a configuration in which any drive can be accessed from the storage controller.

これを解決する手段として、Non-Transparent Bridge(以降NTB)がある。NTBを用いたストレージ装置は、例えば、特許文献1に開示されている特許文献1は、ストレージ制御部と記憶デバイスとの間を接続するバックエンドスイッチを介して、ストレージ制御部間の効率的な通信を可能とする技術を開示している。スイッチを論理分割した仮想スイッチ(VS)をルートポート毎に設け、その間をバックエンドスイッチのNTBでつなぐ。ドライブは、PCI Expressの仕様に従い、いずれかのVSに属する。 A non-transparent bridge (hereinafter referred to as NTB) is a means for solving this problem. A storage device using NTB is disclosed, for example, in Patent Document 1. Patent Document 1 discloses a technology that enables efficient communication between storage control units via a backend switch that connects between the storage control unit and the storage device. A virtual switch (VS) obtained by logically dividing a switch is provided for each root port, and the NTB of the backend switch connects between them. Drives belong to either VS according to the PCI Express specification.

ここで、可用性の観点に着目すると、ドライブ側のPCIポートでエラーを検出した場合、ドライブは、通常は当該ドライブが属するルートポートに通知する。ドライブは、プロセッサ主記憶の所定の領域にその旨を通知するメモリライト命令を発行する。その際、PCI Express仕様に従い、ドライブからの通知先は1箇所である。 Here, focusing on availability, when an error is detected in the PCI port on the drive side, the drive normally notifies the root port to which the drive belongs. The drive issues a memory write command to notify a specified area of the processor main memory. At that time, according to PCI Express specifications, there is one destination for notification from the drive.

特開2018-190368号公報JP 2018-190368 A

NTB技術と特許文献1で開示された技術を用いることで、ストレージコントローラから任意のドライブにアクセスできるような構成が可能となる。しかしながら、特許文献1は、3以上のストレージコントローラの場合を開示していない。 By using the NTB technology and the technology disclosed in Patent Document 1, it becomes possible to configure a storage controller to access any drive. However, Patent Document 1 does not disclose the case of three or more storage controllers.

一方、特許文献1で開示されたバックエンドスイッチ内の仮想スイッチは、PCI Express仕様から、ルートコンプレックス(例えばプロセッサ)毎に必要である。特許文献1では、1以上のバックエンドスイッチ間でNTBを適用することで、ストレージコントローラから任意のドライブにアクセスすることが可能となる。特許文献1では、ドライブは、バックエンドスイッチに含まれる1つの仮想スイッチに関連付けられている。 On the other hand, the virtual switch in the backend switch disclosed in Patent Document 1 is required for each root complex (for example, processor) according to the PCI Express specifications. In Patent Document 1, by applying NTB between one or more backend switches, it becomes possible to access any drive from the storage controller. In Patent Document 1, a drive is associated with one virtual switch included in the backend switch.

これらは、以下の課題を含んでいる。すなわち、プロセッサ数が増えると、仮想スイッチの数も増えるため、プロセッサが任意のドライブにアクセスする場合、通過する仮想スイッチの数がドライブ間で異なる。言い換えると、プロセッサが任意のドライブにアクセスする場合、仮想スイッチ渡りに伴う性能不均一化による性能のばらつきが発生する。結果的に性能が低いドライブアクセスに引きずられ、システム全体の性能低下する恐れがある。また、いくつもの仮想スイッチを通過するため、ストレージ装置を設計するに当たりアドレス変換の設計が煩雑となる。 These include the following issues. That is, when the number of processors increases, the number of virtual switches also increases, so when a processor accesses an arbitrary drive, the number of virtual switches it passes through differs between drives. In other words, when a processor accesses an arbitrary drive, performance variations occur due to performance non-uniformity that accompanies virtual switch crossing. As a result, the performance of the entire system may be degraded due to low-performance drive access. In addition, since it passes through a number of virtual switches, the design of address translation becomes complicated when designing the storage device.

他方、PCIポートが異常を起こしている場合、プロセッサはドライブと通信できないため、アクセスしたプロセッサに対して、タイムアウトが発生する。この場合、異常検出に時間を要するので、プロセッサに速やかにエラーを通知して、ドライブアクセスを停止し、障害処理を行ったほうが良い。先に述べたように、複数プロセッサが存在する場合には、当該ドライブにアクセス可能なプロセッサ全てに異常検出の旨を通知することが重要であるが、PCI Express仕様のままでは単一プロセッサにしか通知できない。 On the other hand, if the PCI port is malfunctioning, the processor cannot communicate with the drive, so a timeout occurs for the accessing processor. In this case, since it takes time to detect an abnormality, it is better to quickly notify the processor of the error, stop the drive access, and perform fault processing. As mentioned above, when multiple processors exist, it is important to notify all processors that can access the drive of the detection of an abnormality. However, the PCI Express specification can only notify a single processor.

したがって、安定した処理性能と適切な障害処理を実施可能なストレージ装置および情報処理方法が望まれる。 Therefore, a storage device and an information processing method capable of performing stable processing performance and appropriate fault handling are desired.

本開示の一態様のストレージ装置は、複数のコントローラと、複数の記憶ドライブと、前記複数のコントローラそれぞれに接続される複数のコントローラ側ポートと、前記複数の記憶ドライブそれぞれに接続される複数のドライブ側ポートと、を含むスイッチ装置と、を含み、前記スイッチ装置は、前記複数のコントローラ側ポートと前記複数のドライブ側ポートとの間において、アドレスの変換を行う。 A storage apparatus according to one aspect of the present disclosure includes a plurality of controllers, a plurality of storage drives, a plurality of controller-side ports connected to each of the plurality of controllers, and a plurality of drive-side ports connected to each of the plurality of storage drives. The switch device performs address translation between the plurality of controller-side ports and the plurality of drive-side ports.

本開示の一態様によれば、ストレージ装置において、安定した処理性能と適切な障害処理が可能となる。 According to one aspect of the present disclosure, it is possible to perform stable processing performance and appropriate fault handling in a storage device.

ストレージ装置に含まれるノードの構成を示す図である。3 is a diagram showing the configuration of nodes included in the storage device; FIG. ストレージ装置に含まれるドライブボックスの構成例を示す図である。3 is a diagram showing a configuration example of a drive box included in the storage device; FIG. ストレージ装置の一例を示す図である。It is a figure which shows an example of a storage apparatus. ストレージ装置において、ドライブ側で発生した異常をプロセッサへの通知する手順を示したフローチャートである。4 is a flow chart showing a procedure for notifying a processor of an abnormality that has occurred on the drive side in a storage device. ドライブボックスから受領した異常通知に対するプロセッサの処理手順を示したフローチャートである。4 is a flow chart showing a processing procedure of a processor for an abnormality notification received from a drive box; ストレージ装置における、メッセージ送信先管理テーブルを示す図である。FIG. 10 is a diagram showing a message transmission destination management table in the storage device; FIG.

以下、図面を参照しながら本発明の実施の形態を説明する。なお、以下の説明では、「管理テーブル」等の表現にて各種情報を説明することがあるが、各種情報は、テーブル以外のデータ構造で表現されていてもよい。また、データ構造に依存しないことを示すために「管理テーブル」を「管理情報」と呼ぶことができる。 BEST MODE FOR CARRYING OUT THE INVENTION Hereinafter, embodiments of the present invention will be described with reference to the drawings. In the following description, various information may be described using expressions such as “management table”, but the various information may be expressed in a data structure other than a table. Also, the "management table" can be called "management information" to indicate that it does not depend on the data structure.

また、「プログラム」を主語として処理を説明する場合がある。そのプログラムは、プロセッサ、例えば、CPU(Central Processing Unit)によって実行されるもので、定められた処理をするものである。なお、適宜に記憶資源(例えばメモリ)および通信インタフェース装置(例えば、通信ポート)を用いながら行うため、処理の主語がプロセッサとされてもよい。プロセッサは、CPUの他に専用ハードウェアを有していても良い。コンピュータプログラムは、プログラムソースから各コンピュータにインストールされても良い。プログラムソースは、例えば、プログラム配布サーバまたは記憶メディアなどで提供されるものであっても良い。 Also, the processing may be described with the subject of "program". The program is executed by a processor, for example, a CPU (Central Processing Unit), and performs prescribed processing. Note that the subject of the processing may be the processor because the processing is performed using storage resources (eg, memory) and communication interface devices (eg, communication port) as appropriate. The processor may have dedicated hardware in addition to the CPU. A computer program may be installed on each computer from a program source. The program source may be provided by, for example, a program distribution server or storage media.

また、各要素は番号などで識別可能であるが、識別可能な情報であれば、名前など他種の識別情報が用いられても良い。本発明の図および説明において同一部分には同一符号を付与しているが、本発明が本実施例に制限されることは無く、本発明の思想に合致するあらゆる応用例が本発明の技術的範囲に含まれる。また、特に限定しない限り、各構成要素は複数でも単数でも構わない。 Also, each element can be identified by a number or the like, but other types of identification information such as a name may be used as long as it is identifiable information. Although the same reference numerals are given to the same parts in the drawings and explanations of the present invention, the present invention is not limited to this embodiment, and all applications consistent with the idea of the present invention are included in the technical scope of the present invention. Also, unless otherwise specified, each component may be singular or plural.

以下に、ストレージ装置および情報処理方法、例えば、記憶ドライブ(以下、単にドライブとも呼ぶ)としてSSD(Solid State Drive)が搭載されたストレージ装置に適用して好適である、ストレージ装置および情報処理方法を開示する。より具体的には、以下に開示するストレージ装置の構成例は、記憶ドライブを含むドライブボックス内のPCIe(PCI Express)スイッチ(物理スイッチ)が、複数のストレージコントローラと複数の記憶ドライブとの間の通信においてプロトコル変換を行う。これにより、安定した処理性能と適切な障害処理を速やかに実施可能とする。ドライブは、例えば、NVM Express(NVMe)をサポートする。なお、仮想スイッチに代えて物理スイッチが使用されてもよい。 A storage device and an information processing method, for example, a storage device and an information processing method suitable for application to a storage device equipped with SSDs (Solid State Drives) as storage drives (hereinafter simply referred to as drives) will be disclosed below. More specifically, in the configuration example of the storage apparatus disclosed below, a PCIe (PCI Express) switch (physical switch) in a drive box containing storage drives performs protocol conversion in communication between multiple storage controllers and multiple storage drives. As a result, stable processing performance and appropriate fault handling can be quickly implemented. The drive, for example, supports NVM Express (NVMe). A physical switch may be used instead of the virtual switch.

以下、図面を用いて本実施の形態の詳細について説明する。なお、PCIe規格及びNVMe規格の詳細は、公知であり、その詳細な説明は省略し、本実施の形態の説明上必要な事項についてのみ適宜説明するものとする。 Details of the present embodiment will be described below with reference to the drawings. Details of the PCIe standard and the NVMe standard are publicly known, so detailed description thereof will be omitted, and only items necessary for describing the present embodiment will be described as appropriate.

図1は、本実施形態における、ストレージ装置に含まれるノードの構成を示す図である。ストレージ装置は、1または複数のドライブ(SSD等)(図1において不図示)と、1または複数のノードと、を含む。ノードは、ドライブに対するデータの入出力を制御する1または複数のストレージコントローラ(単にコントローラとも呼ぶ)を含む。 FIG. 1 is a diagram showing the configuration of nodes included in a storage device in this embodiment. The storage device includes one or more drives (such as SSD) (not shown in FIG. 1) and one or more nodes. A node includes one or more storage controllers (also simply called controllers) that control data input/output to/from drives.

本実施形態のノード100は、可用性を重視し、サービスを継続して提供するために2つのコントローラ105A、105Bを含む。2つのコントローラ105A、105Bは、本例において同一の構成および機能を有する。ストレージコントローラ105Aはプロセッサ(CPU)110A、フロントエンドインタフェース115A、バックエンドインタフェース120A、インタコネクトインタフェース125A、及びメモリ130Aを含む。ストレージコントローラ105Bはプロセッサ110B、フロントエンドインタフェース115B、バックエンドインタフェース120B、インタコネクトインタフェース125B、及びメモリ130Bを含む。 The node 100 of this embodiment emphasizes availability and includes two controllers 105A and 105B to continuously provide services. The two controllers 105A, 105B have identical configuration and functionality in this example. Storage controller 105A includes processor (CPU) 110A, front-end interface 115A, back-end interface 120A, interconnect interface 125A, and memory 130A. Storage controller 105B includes processor 110B, front-end interface 115B, back-end interface 120B, interconnect interface 125B, and memory 130B.

以下において、ストレージコントローラ105、プロセッサ110、及びフロントエンドインタフェース115は、それぞれ、任意のストレージコントローラ、任意のプロセッサ、任意のフロントエンドインタフェースを表す。バックエンドインタフェース120、インタコネクトインタフェース125、及びメモリ130は、それぞれ、任意のバックエンドインタフェース、任意のインタコネクトインタフェース、及び任意のメモリを表す。 In the following, storage controller 105, processor 110, and front-end interface 115 represent any storage controller, any processor, and any front-end interface, respectively. Backend interface 120, interconnect interface 125, and memory 130 represent any backend interface, any interconnect interface, and any memory, respectively.

プロセッサ110は、フロントエンドインタフェース115等のストレージコントローラ105内の各構成要素を制御する。例えば、プロセッサ110は、フロントエンドインタフェース115のデータ転送パラメータを設定する。プロセッサ110は、ノード100内の障害を監視し、障害を検出した場合には障害に対応する処理を実行する。 Processor 110 controls each component within storage controller 105 , such as front-end interface 115 . For example, processor 110 sets data transfer parameters for front-end interface 115 . The processor 110 monitors failures within the node 100 and, when detecting failures, executes processing to deal with the failures.

フロントエンドインタフェース115は、ホストコンピュータ(図示せず)に接続されるインタフェースを含み、受信したホストコンピュータからのパケットや、ホストコンピュータに送信するパケットに対して所定のプロトコル処理を施す。ホストコンピュータは、プロセッサおよびメモリ等の情報処理資源を備えたコンピュータ装置であり、例えば、オープン系のサーバや、メインフレームコンピュータなどから構成される。ホストコンピュータは、ネットワークを介してストレージ装置にライトコマンドやリードコマンドを送信する。 The front-end interface 115 includes an interface connected to a host computer (not shown), and performs predetermined protocol processing on packets received from the host computer and packets to be sent to the host computer. A host computer is a computer device having information processing resources such as a processor and memory, and is composed of, for example, an open system server or a mainframe computer. The host computer sends write commands and read commands to the storage device via the network.

例えば、フロントエンドインタフェース115は、受信したホストコンピュータからのパケットから、後述するドライブにおけるリードデータまたはライトデータの格納場所及びそのパケットの容量などの情報を取得する。また、フロントエンドインタフェース115は、パケットに含まれるコマンドを特定し、また、受信したパケットをストレージコントローラ105内部で用いられる形に変換する。 For example, the front-end interface 115 acquires information such as the storage location of read data or write data in a drive, which will be described later, and the size of the packet, from the packet received from the host computer. The front-end interface 115 also identifies commands contained in the packets and converts the received packets into a form used inside the storage controller 105 .

フロントエンドインタフェース115は、ホストコンピュータに送信するパケットに関して、ストレージコントローラ105とホストコンピュータとの間の通信プロトコルに基づいて、送信先となるホストコンピュータの識別データや、当該ホストコンピュータへのコマンドに関連する制御データ等をリードデータに付加することにより、ホストコンピュータに送信可能なパケットを生成する。 The front-end interface 115 generates a packet that can be transmitted to the host computer by adding, to the read data, identification data of the host computer that is the transmission destination, control data related to the command to the host computer, etc., based on the communication protocol between the storage controller 105 and the host computer.

バックエンドインタフェース120は、プロセッサ110が、後述するドライブボックス及びドライブボックス内のドライブとデータ通信を行えるようにするためのインタフェースである。バックエンドインタフェース120の外側のプロトコルとプロセッサ114側のプロトコルとが異なる場合、バックエンドインタフェース120は、プロトコル変換を行う。例えば、プロセッサ114側のプロトコルはPCIeであり、バックエンドインタフェース120の外側のプロトコルは、PCIe、Fibre Channel、又はEthernet(登録商標)である。 The backend interface 120 is an interface that allows the processor 110 to perform data communication with a drive box and drives in the drive box, which will be described later. If the protocol outside the backend interface 120 and the protocol on the processor 114 side are different, the backend interface 120 performs protocol conversion. For example, the protocol on the processor 114 side is PCIe, and the protocol outside the backend interface 120 is PCIe, Fiber Channel, or Ethernet.

バックエンドインタフェース120は、ノード100とドライブボックスと接続するためのバックエンドポート(ダウンストリームポート)を含む。図1の構成例において、ストレージコントローラ105A内の1つのバックエンドインタフェース120Aは、バックエンドポート122A-1及び122A-2を含み、もう1つのバックエンドインタフェース120Aは、バックエンドポート122A-3及び122A-4を含む。ストレージコントローラ105B内の1つのバックエンドインタフェース120Bは、バックエンドポート122B-1及び122B-2を含み、もう1つのバックエンドインタフェース120Bは、バックエンドポート122B-3及び122B-4を含む。 The backend interface 120 includes a backend port (downstream port) for connecting the node 100 and the drive box. In the example configuration of FIG. 1, one backend interface 120A in storage controller 105A includes backend ports 122A-1 and 122A-2, and another backend interface 120A includes backend ports 122A-3 and 122A-4. One backend interface 120B in storage controller 105B includes backend ports 122B-1 and 122B-2, and another backend interface 120B includes backend ports 122B-3 and 122B-4.

バックエンドポートは、バックエンドインタフェース内のスイッチの一部であってもよい。バックエンドインタフェース120は、プロセッサの一部であってもよい。この場合、ドライブボックスと接続するためのバックエンドポートは、プロセッサに内蔵されていてもよい。 A backend port may be part of a switch within a backend interface. Backend interface 120 may be part of the processor. In this case, a backend port for connecting with the drive box may be built into the processor.

インタコネクトインタフェース125は、複数(図1の構成例においてでは2つ)のストレージコントローラ105間の通信インタフェースである。ストレージコントローラ105間の通信は、例えば、インタフェースカードを用いたInfiniband、もしくは、Ethernetを使用してもよく、または、NTB(Non Transparent Bridge)を適用したPCI Expressを使用してもよい。プロセッサ110間、またはメモリ130間でデータ通信できる任意のインタフェースが使用可能である。 The interconnect interface 125 is a communication interface between a plurality of (two in the configuration example of FIG. 1) storage controllers 105 . For communication between the storage controllers 105, for example, Infiniband using an interface card, Ethernet, or PCI Express to which NTB (Non Transparent Bridge) is applied may be used. Any interface capable of communicating data between processors 110 or memory 130 can be used.

図2は、ストレージ装置に含まれるドライブボックス200の構成例を示す図である。 FIG. 2 is a diagram showing a configuration example of a drive box 200 included in the storage device.

ドライブボックス200は、PCIeスイッチ205A及び205B(以降任意のPCIeスイッチをPCIeスイッチ205と表記)、並びに、記憶ドライブ230、240、250及び260を含む。 Drive box 200 includes PCIe switches 205A and 205B (hereinafter any PCIe switch is referred to as PCIe switch 205) and storage drives 230, 240, 250 and 260. FIG.

PCIeスイッチ205Aは、ルートコンプレックス接続仮想スイッチ210A、210B、アドレス変換部225A、225B、ドライブ接続仮想スイッチ220A、及びスイッチ制御モジュール215Aを含む。PCIeスイッチ205Bは、ルートコンプレックス接続仮想スイッチ210C、210D、アドレス変換部225C、225D、ドライブ接続仮想スイッチ220B、及びスイッチ制御モジュール215Bを含む。PCIeスイッチ205A、205Bは、それぞれ、ストレージコントローラが接続される複数のコントローラ側ポート(それぞれ仮想ポートまたは物理ポート)と、記憶ドライブが接続される複数のドライブ側ポート(それぞれ仮想ポートまたは物理ポート)とを含む。 PCIe switch 205A includes root complex connection virtual switches 210A, 210B, address translators 225A, 225B, drive connection virtual switch 220A, and switch control module 215A. PCIe switch 205B includes root complex connection virtual switches 210C, 210D, address translators 225C, 225D, drive connection virtual switch 220B, and switch control module 215B. The PCIe switches 205A and 205B each include multiple controller-side ports (virtual ports or physical ports, respectively) to which storage controllers are connected, and multiple drive-side ports (virtual ports or physical ports, respectively) to which storage drives are connected.

以下において、PCIeスイッチ205、ルートコンプレックス接続仮想スイッチ(コントローラ側スイッチ)210、アドレス変換部225、ドライブ接続仮想スイッチ(ドライブ側スイッチ)220及びスイッチ制御モジュール215は、それぞれ、任意のPCIeスイッチ、任意のルートコンプレックス接続仮想スイッチ、任意のアドレス変換部、任意のドライブ接続仮想スイッチ及び任意のスイッチ制御モジュール任意を表す。 In the following, PCIe switch 205, root complex connection virtual switch (controller-side switch) 210, address translator 225, drive connection virtual switch (drive-side switch) 220, and switch control module 215 represent any PCIe switch, any root complex connection virtual switch, any address translator, any drive connection virtual switch, and any switch control module, respectively.

PCIeスイッチ205は、例えば、プロセッサ及びメモリを含む。プロセッサは、メモリに格納されているプログラムに従って動作することで、ルートコンプレックス接続仮想スイッチ、アドレス変換部、ドライブ接続仮想スイッチ及びスイッチ制御モジュールとして機能する。PCIeスイッチ205は、プロセッサに加えて、所定の演算を行う論理回路を含むことができる。仮想スイッチにより、ストレージ装置のスケーラビリティを向上する。 PCIe switch 205 includes, for example, a processor and memory. The processor functions as a root complex connection virtual switch, an address translator, a drive connection virtual switch, and a switch control module by operating according to programs stored in the memory. The PCIe switch 205 can include logic circuits that perform predetermined operations in addition to processors. A virtual switch improves the scalability of a storage device.

ドライブボックス200は、さらに、ドライブ接続仮想スイッチとドライブとの間の接続パス235A、235B、245A、245B、255A、255B、265A、265B、を含む。 Drive box 200 further includes connection paths 235A, 235B, 245A, 245B, 255A, 255B, 265A, 265B between the drive connection virtual switches and the drives.

PCIeスイッチ205は、ストレージコントローラ105のバックエンドインタフェース120と、ドライブとを接続するためのデバイスである。ストレージ装置の可用性向上及び高性能化のため、ドライブは、2つのポート、いわゆるデュアルポートドライブであることが多い。そのため、ストレージ装置は、デュアルポートドライブの各ポートに接続するよう2つのPCIeスイッチ205を含む 。 The PCIe switch 205 is a device for connecting the backend interface 120 of the storage controller 105 and the drives. Drives often have two ports, so-called dual-port drives, in order to improve the availability and performance of storage devices. Therefore, the storage device includes two PCIe switches 205 to connect to each port of the dual port drive.

ルートコンプレックス接続仮想スイッチ210は、PCIeスイッチ205内に構成される論理的(仮想的)なPCIeスイッチである。ルートコンプレックス接続仮想スイッチ210は、プロセッサに含まれるPCIeドメインのルートコンプレックスと後述するドライブ接続仮想スイッチ220との間を接続する。より具体的には、ルートコンプレックス接続仮想スイッチ210は、ストレージコントローラのバックエンドインタフェース120とドライブ接続仮想スイッチ220との間を接続する。各ドライブに対して複数のプロセッサからアクセス可能とするように、基本的に、各ドライブにアクセスするプロセッサの数と同数のルートコンプレックス接続仮想スイッチ210が実装される。 The root complex connection virtual switch 210 is a logical (virtual) PCIe switch configured within the PCIe switch 205 . The root complex connection virtual switch 210 connects between the root complex of the PCIe domain included in the processor and the drive connection virtual switch 220 which will be described later. More specifically, the root complex connection virtual switch 210 connects between the storage controller backend interface 120 and the drive connection virtual switch 220 . Basically, as many root complex connection virtual switches 210 as there are processors accessing each drive are implemented so that each drive can be accessed by multiple processors.

ドライブ接続仮想スイッチ220は、ルートコンプレックス接続仮想スイッチ210と同様に、PCIeスイッチ205内に構成される論理的(仮想的)なPCIeスイッチである。ドライブ接続仮想スイッチ220は、ルートコンプレックス接続仮想スイッチ210とドライブとを接続する。ドライブ接続仮想スイッチ220は、図2に示すように、PCIeスイッチ205内で単一であってもよいし、複数のドライブ接続仮想スイッチがPCIeスイッチ205に構成されてもよい。 The drive connection virtual switch 220 is a logical (virtual) PCIe switch configured within the PCIe switch 205 like the root complex connection virtual switch 210 . The drive connection virtual switch 220 connects the root complex connection virtual switch 210 and the drives. The drive connection virtual switch 220 may be single within the PCIe switch 205 as shown in FIG. 2, or multiple drive connection virtual switches may be configured in the PCIe switch 205 .

アドレス変換部225は、アドレス変換情報を参照して、ルートコンプレックス接続仮想スイッチ210の通信プロとコルと、ドライブ接続仮想スイッチ220の通信プロトコルとの間の、変換を行う。アドレス変換部225は、例えば、Non-Transparent Bridge(NTB)である。 The address conversion unit 225 refers to the address conversion information and converts between the communication protocol of the root complex connection virtual switch 210 and the communication protocol of the drive connection virtual switch 220 . The address converter 225 is, for example, a Non-Transparent Bridge (NTB).

アドレス変換部225は、ルートコンプレックス接続仮想スイッチ210に到着したPCIeパケットの制御情報を、送信先ドライブが含まれるPCIeドメインで適合される制御情報に変換する。制御情報は、PCIeパケットのヘッダ情報、アクセス先のアドレスを含む。アドレス変換部225は、ドライブ接続仮想スイッチ220に到着したPCIeパケットの制御情報を、送信先プロセッサが含まれるPCIeドメインで適合される制御情報に変制換する。制御情報は、PCIeパケットのヘッダ情報及び送信先アドレスを含む。 The address conversion unit 225 converts the control information of the PCIe packet arriving at the root complex connection virtual switch 210 into control information adapted in the PCIe domain including the destination drive. The control information includes the header information of the PCIe packet and the address of the access destination. The address conversion unit 225 converts the control information of the PCIe packet that has arrived at the drive connection virtual switch 220 into control information adapted to the PCIe domain including the destination processor. The control information includes header information and a destination address of the PCIe packet.

上述のように、PCIeスイッチ205は、ルートコンプレックス接続仮想スイッチ210、ドライブ接続仮想スイッチ220、及び、ルートコンプレックス接続仮想スイッチ210とドライブ接続仮想スイッチ220との間のアドレス変換部225を含む。これらによる効果は以下のとおりである。 As described above, PCIe switch 205 includes root complex connected virtual switch 210 , drive connected virtual switch 220 , and address translator 225 between root complex connected virtual switch 210 and drive connected virtual switch 220 . The effects of these are as follows.

ストレージコントローラのプロセッサ110から見ると、プロセッサ110からドライブへのアクセスは、ルートコンプレックス接続仮想スイッチ210、アドレス変換部225、ドライブ接続仮想スイッチ220を経由する。これは、ドライブ全てに対して同様である。すなわち、プロセッサ110は任意のドライブに対して、同一距離でアクセスすることができる。従って、図2のような構成を採ることで、ストレージ装置として安定した処理性能を提供することが可能となる。 From the perspective of the processor 110 of the storage controller, access to the drives from the processor 110 goes through the root complex connection virtual switch 210 , the address translator 225 and the drive connection virtual switch 220 . This is the same for all drives. That is, processor 110 can access any drive at the same distance. Therefore, by adopting the configuration shown in FIG. 2, it is possible to provide stable processing performance as a storage device.

ドライブ230、240、250、260は、NVMeをサポートし、ホストコンピュータのデータを格納する装置である。ドライブ230、240、250、260は、フラッシュメモリ等の不揮発メモリを搭載したSSDや、MRAM(Magnetoresistive Random Access Memory)、相変化メモリ(Phase-Change Memory)、ReRAM(Resistive Random-Access Memory)、FeRAM(Ferroelectric Random Access Memory)等の種々の媒体を用いることもできる。なお、複数のPCIeスイッチ205を連結し、ドライブを更に接続した多段接続構成をストレージ装置に適用してもよい。 Drives 230, 240, 250, and 260 are devices that support NVMe and store data of the host computer. The drives 230, 240, 250, and 260 include SSDs equipped with non-volatile memory such as flash memory, MRAM (Magnetoresistive Random Access Memory), phase-change memory (Phase-Change Memory), ReRAM (Resistive Random-Access Memory), FeRAM ( Various media such as Ferroelectric Random Access Memory) can also be used. A multistage connection configuration in which a plurality of PCIe switches 205 are connected and drives are further connected may be applied to the storage apparatus.

一般的にストレージ装置は、複数のドライブからRAID(Redundant Arrays of Inexpensive Disks)グループを構成し、そのRAIDグループによって構成される論理的な記憶領域である論理ボリュームに、ホストコンピュータから送信されたデータを格納してもよい。RAIDグループを構成するドライブに障害が生じた場合、ストレージ装置は、その障害が発生したドライブに格納されているデータを、同一のRAIDグループに属する他のドライブのデータ及びパリティを用いて復元することができる。 In general, a storage device may configure a RAID (Redundant Array of Inexpensive Disks) group from a plurality of drives, and store data sent from a host computer in a logical volume, which is a logical storage area configured by the RAID group. When a drive that constitutes a RAID group fails, the storage device can restore the data stored in the failed drive using the data and parity of other drives belonging to the same RAID group.

図3は、本実施の形態における、ストレージ装置300の一例を示す図である。ストレージ装置300は、2つのノード100-1、100-2(以降任意ノードをノード100と表記)と4つのドライブボックス200-1、200-2、200-3、200-4(以降任意ドライブボックスをドライブボックス200と表記)、そして、ノード100とドライブボックス200間を接続するリンク310、とを含む。 FIG. 3 is a diagram showing an example of a storage device 300 according to this embodiment. The storage device 300 includes two nodes 100-1 and 100-2 (an arbitrary node is hereinafter referred to as node 100), four drive boxes 200-1, 200-2, 200-3, and 200-4 (an arbitrary drive box is hereinafter referred to as drive box 200), and a link 310 connecting between node 100 and drive box 200.

ノード100-1は、2つのストレージコントローラ105A-1、150B-1を含む。ストレージコントローラ105A-1は、メモリ130A-1、プロセッサ110A-1、及び2つのバックエンドインタフェース120A-1を含む。ストレージコントローラ105B-1は、メモリ130B-1、プロセッサ110B-1、及び2つのバックエンドインタフェース120B-1を含む。 Node 100-1 includes two storage controllers 105A-1, 150B-1. Storage controller 105A-1 includes memory 130A-1, processor 110A-1, and two backend interfaces 120A-1. Storage controller 105B-1 includes memory 130B-1, processor 110B-1, and two backend interfaces 120B-1.

ノード100-2は、2つのストレージコントローラ105A-2、150B-2を含む。ストレージコントローラ105A-2は、メモリ130A-2、プロセッサ110A-2、及び2つのバックエンドインタフェース120A-2を含む。ストレージコントローラ105B-2は、メモリ130B-2、プロセッサ110B-2、及び2つのバックエンドインタフェース120B-2を含む。 Node 100-2 includes two storage controllers 105A-2, 150B-2. Storage controller 105A-2 includes memory 130A-2, processor 110A-2, and two backend interfaces 120A-2. Storage controller 105B-2 includes memory 130B-2, processor 110B-2, and two backend interfaces 120B-2.

ドライブボックス200-1は、2つのPCIeスイッチ205A-1、205B-1を含む。ドライブボックス200-2は、2つのPCIeスイッチ205A-2、205B-2を含む。ドライブボックス200-3は、2つのPCIeスイッチ205A-3、205B-3を含む。ドライブボックス200-4は、2つのPCIeスイッチ205A-4、205B-4を含む。ノード100及びドライブボックス200の構成要素の詳細は、図1、図2を参照して説明した通りである。 Drive box 200-1 includes two PCIe switches 205A-1, 205B-1. Drive box 200-2 includes two PCIe switches 205A-2, 205B-2. Drive box 200-3 includes two PCIe switches 205A-3, 205B-3. Drive box 200-4 includes two PCIe switches 205A-4, 205B-4. The details of the components of the node 100 and the drive box 200 are as described with reference to FIGS. 1 and 2. FIG.

図3で示したストレージ装置300では、単一ストレージコントローラ105から4つのドライブボックス200全てにアクセスできるようにリンク310を接続している。ストレージ装置の可用性の観点から、ノード100が何らかの異常で使用不能になった場合に、正常ノード100から継続してアクセスできるように、例えば、偶数番号のストレージコントローラ105は、ドライブボックス200の偶数番号のPCIeスイッチ205と接続する。 In the storage device 300 shown in FIG. 3, links 310 are connected so that all four drive boxes 200 can be accessed from a single storage controller 105 . From the standpoint of availability of the storage device, even-numbered storage controllers 105, for example, are connected to even-numbered PCIe switches 205 of drive boxes 200 so that even-numbered storage controllers 105 can be accessed continuously from normal nodes 100 when nodes 100 become unusable due to some kind of abnormality.

このようにすることで、ノード内ストレージコントローラ、または、ノードが何らかの異常で使用不能になった場合に、正常なストレージコントローラ、または正常なノードからストレージ装置300の全ドライブに継続してアクセスでき、ストレージ装置全体の可用性を維持できる。 In this way, when the storage controller in the node or the node becomes unusable due to some abnormality, all the drives of the storage device 300 can be continuously accessed from the normal storage controller or the normal node, and the availability of the entire storage device can be maintained.

図4は、本実施の形態のストレージ装置300において、ドライブ側で発生した異常をプロセッサへの通知する手順を示したフローチャートである。本手順により、ドライブ側で発生した異常に対し、適切な障害処理を速やかに実施可能となる。図4が示すフローチャートの実施主体は、図2で示すスイッチ制御モジュール215である。まず、ステップ405において、スイッチ制御モジュール215は、接続されているドライブのポート異常を検出していなければ(405:NO)、ステップ410に進む。スイッチ制御モジュール215は、ドライブのポート異常を検出した場合(405:YES)は、ステップ415に進む。 FIG. 4 is a flow chart showing the procedure for notifying the processor of an abnormality that has occurred on the drive side in the storage apparatus 300 of this embodiment. With this procedure, it is possible to promptly perform appropriate failure processing for an abnormality that has occurred on the drive side. 4 is implemented by the switch control module 215 shown in FIG. First, at step 405 , if the switch control module 215 does not detect a port failure of the connected drive ( 405 : NO), the process proceeds to step 410 . If the switch control module 215 detects a drive port abnormality (405: YES), the process proceeds to step 415.

ステップ410において、スイッチ制御モジュール215は、通常処理を行う。通常処理の例は、PCIeスイッチ205全体の状態監視、ストレージコントローラのプロセッサとの通信制御、PCIeスイッチ205で発生した異常に対する処理などを含む。スイッチ制御モジュール215は、通常処理の一環でドライブのポート異常検出確認を実施する。 At step 410, the switch control module 215 performs normal processing. Examples of normal processing include status monitoring of the entire PCIe switch 205, communication control with the processor of the storage controller, processing for an abnormality occurring in the PCIe switch 205, and the like. The switch control module 215 performs port abnormality detection confirmation of the drive as part of normal processing.

ステップ415において、スイッチ制御モジュール215は、ストレージコントローラのプロセッサ110にドライブのポート異常を通知するための、ドライブのポート異常を示すメッセージを作成する。メッセージは、ドライブの識別子及び異常の種類の情報を含む。 In step 415, the switch control module 215 creates a drive port failure message to notify the storage controller processor 110 of the drive port failure. The message contains the drive identifier and fault type information.

ステップ418において、スイッチ制御モジュール215は、ステップ415で生成したメッセージを、どのプロセッサ110に対して送信するかを決定する。スイッチ制御モジュール215は、メッセージ送信先管理テーブル600を参照して、メッセージを送信するプロセッサ110及び経路を決定する。メッセージ送信先管理テーブル600に関しては、後述する。 At step 418, switch control module 215 determines to which processor 110 the message generated at step 415 should be sent. The switch control module 215 refers to the message transmission destination management table 600 to determine the processor 110 and route for transmitting the message. The message transmission destination management table 600 will be described later.

ステップ420において、スイッチ制御モジュール215は、ステップ410で作成したメッセージの送信先プロセッサ110それぞれに対する、書き込み先アドレスを確認する。書き込み先アドレスは、送信先プロセッサのメモリ130内のアドレスを示す。スイッチ制御モジュールは、書き込み先アドレスを確認するため、例えば、PCIeスイッチ205内のPCIeコンフィグレーションレジスタに設けられているメッセージアドレスフィールドを参照する。 At step 420 , the switch control module 215 checks the write destination address for each destination processor 110 of the message created at step 410 . The write destination address indicates an address within the memory 130 of the destination processor. The switch control module, for example, refers to the message address field provided in the PCIe configuration register within the PCIe switch 205 in order to confirm the write destination address.

ステップ425において、スイッチ制御モジュール215は、ステップ415で生成したメッセージを、ステップ420で確認したメモリ130の書き込み先アドレスに書き込むライト命令を、ストレージコントローラのプロセッサ110に対して発行する。プロセッサ110は、ライト命令に従ってメッセージを指定された書き込みアドレスに書き込む。 At step 425 , the switch control module 215 issues a write command to write the message generated at step 415 to the write destination address of the memory 130 confirmed at step 420 to the processor 110 of the storage controller. Processor 110 writes the message to the specified write address according to the write instruction.

続いて、ステップ430において、スイッチ制御モジュール215は、他方のストレージコントローラのプロセッサ110に対して、ステップ415で生成したメッセージをステップ420で確認した書き込み先アドレスに書き込むライト命令を発行して、終了する。 Subsequently, in step 430, the switch control module 215 issues a write command to the processor 110 of the other storage controller to write the message generated in step 415 to the write destination address confirmed in step 420, and terminates.

図4で示したフローチャートによって、記憶ドライブにアクセス可能ないずれのプロセッサ(コントローラ)に対しても、ドライブ側の異常を通知することができるため、ストレージ装置として適切な障害処理を速やかに実施できる。 According to the flowchart shown in FIG. 4, any processor (controller) that can access the storage drive can be notified of an abnormality on the drive side, so that the storage apparatus can promptly perform appropriate fault processing.

図5は、ドライブボックスから受領した異常通知に対するプロセッサの処理手順を示したフローチャートである。図5のフローチャートの処理により、記憶ドライブ側で発生した異常に対し、適切な障害処理を速やかに実施可能とする。 FIG. 5 is a flow chart showing the processing procedure of the processor for the abnormality notification received from the drive box. By the processing of the flow chart of FIG. 5, it is possible to promptly perform appropriate failure processing for an abnormality that has occurred on the storage drive side.

図5で示したフローチャートの実施主体は、ストレージコントローラのプロセッサ110で動作する制御プログラムである。なお、この制御プログラムは、プロセッサ110が使用するメモリ130に格納される。 The execution subject of the flow chart shown in FIG. 5 is a control program that runs on the processor 110 of the storage controller. This control program is stored in memory 130 used by processor 110 .

まず、制御プログラムは、ステップ505において通常処理を行う。ここでの通常処理とは、ストレージ装置を制御するための処理、ホストコンピュータからのリード処理、ライト処理、プロセッサ110のメモリ130に設けられたキャッシュ領域に格納されたデータをドライブに格納するデステージング処理、その他、ビジネス継続性を提供するための機能にかかる処理、などである。 First, the control program performs normal processing at step 505 . The normal processing here includes processing for controlling the storage device, read processing from the host computer, write processing, destaging processing for storing data stored in the cache area provided in the memory 130 of the processor 110 in the drive, and other processing related to functions for providing business continuity.

その中で、制御プログラムは、PCIeスイッチ205から受信した、記憶ドライブについての異常通知を確認する。この処理は、通常処理の中で、一定周期で実施してもよいし、割り込みに応じて即時に実施してもよい。 In it, the control program confirms the abnormality notification about the storage drive received from the PCIe switch 205 . This processing may be performed at regular intervals during normal processing, or may be performed immediately in response to an interrupt.

ステップ510において、制御プログラムは、異常通知を確認する条件が不成立の場合(510:NO)、ステップ505に戻る。制御プログラムは、ドライブからの異常通知を確認する条件が成立している場合(510:YES)、ステップ515に進む。 At step 510, the control program returns to step 505 when the condition for confirming the abnormality notification is not satisfied (510: NO). The control program proceeds to step 515 when the conditions for confirming the abnormality notification from the drive are satisfied (510: YES).

ステップ515において、制御プログラムは、記憶ドライブについての異常通知を格納するためのメモリ130における領域をチェックする。ステップ520において、制御プログラムは、異常通知が格納されていなければステップ505に戻る。制御プログラムは、異常通知が格納されていればステップ525に進む。 At step 515, the control program checks for an area in memory 130 for storing anomaly notifications for storage drives. In step 520, the control program returns to step 505 if no anomaly notification has been stored. The control program proceeds to step 525 if an anomaly notification is stored.

ステップ525において、制御プログラムは、格納された異常通知を参照し、異常が発生した記憶ドライブを特定する。ステップ530において、制御プログラムは、メモリ130に格納されている発行済みIO要求を管理する管理情報を参照して、ステップ525にて特定した記憶ドライブに対して発行済みのIO要求があるかどうかを確認する。さらに、制御プログラムは、メモリ130内のIO要求キューを参照して、ステップ525にて特定した記憶ドライブに対して未発行IO要求があるかどうかを確認する。 At step 525, the control program refers to the stored anomaly notification and identifies the storage drive in which the anomaly occurred. At step 530 , the control program refers to management information for managing issued IO requests stored in memory 130 and checks whether there is an issued IO request for the storage drive identified at step 525 . Additionally, the control program references the IO request queue in memory 130 to see if there are any outstanding IO requests for the storage drive identified in step 525 .

ステップ535において、制御プログラムは、ステップ535にて確認した、ステップ525にて特定したドライブに対する発行済みのIO要求、および未発行IO要求を取り消す(Abortまたはキャンセル)する。これにより、異常の記憶ドライブへのIO要求の発行を避け、また、未完了のIO要求を適切に処理することができる。 At step 535 , the control program cancels (Aborts or cancels) the issued IO requests for the drive identified at step 525 and the unissued IO requests confirmed at step 535 . This avoids issuing an IO request to an abnormal storage drive, and can properly process unfinished IO requests.

ステップ535までの処理を実施することで、ステップ525で特定したドライブにアクセス可能なすべてのプロセッサが、IOを停止することが可能となる。これによって、ステップ525で特定したドライブへのIOによるタイムアウトを未然に回避することができるため、適切な障害処理を速やかに実施できる。 By performing the processing up to step 535, all processors that can access the drive identified in step 525 can stop IO. As a result, time-out due to IO to the drive specified in step 525 can be avoided, and appropriate failure processing can be promptly performed.

ステップ540において、制御プログラムは、ステップ525にて特定した異常を通知したドライブに対して他の制御プログラムが障害処理を実施しているかを確認する。障害処理を実施している制御プログラムの情報は、例えば、ストレージコントローラ105それぞれの共有メモリ領域に格納されている。もし、ステップ525にて特定した異常を通知したドライブに対して他の制御プログラムが障害処理を実施している場合、適切に障害処理を完了させるために、実施中の障害処理に任せステップ505に戻る。 At step 540 , the control program confirms whether another control program is performing failure processing for the drive notified of the abnormality identified at step 525 . Information about the control program that is executing the fault handling is stored in the shared memory area of each storage controller 105, for example. If another control program is performing fault handling for the drive notified of the abnormality specified in step 525, the fault handling in progress is left to the fault handling to complete the fault handling appropriately, and the process returns to step 505.

ステップ525にて特定した異常を通知したドライブに対して他の制御プログラムが障害処理を実施していない場合、該制御プログラムがステップ525にて特定した異常を通知したドライブの回復処理545を担当する。これにより、適切に回復処理が実行される。ここでの回復処理は、例えば、PCIeスイッチの障害情報のクリア、ドライブポートの初期化、などである。 If another control program has not performed failure processing for the drive that notified the abnormality identified in step 525 , the control program takes charge of recovery processing 545 for the drive that notified the abnormality identified in step 525 . As a result, recovery processing is properly executed. The recovery processing here is, for example, clearing failure information of the PCIe switch, initialization of the drive port, and the like.

図5で示したフローチャートを実施することで、制御プログラムは、ドライブ側で発生した異常に対し、適切な障害処理を速やかに実施することができる。 By implementing the flow chart shown in FIG. 5, the control program can promptly perform appropriate failure processing for an abnormality that has occurred on the drive side.

図6は、本実施形態のストレージ装置300における、メッセージ送信先管理テーブルを示す図である。ノード#欄605は、ストレージ装置300におけるノードにつけられた通し番号を示す。例えば、図3において、ノード100-1の番号はノード#0、ノード100-2の番号はノード#1とすることができる。 FIG. 6 is a diagram showing a message transmission destination management table in the storage device 300 of this embodiment. A node # column 605 indicates serial numbers assigned to nodes in the storage device 300 . For example, in FIG. 3, node 100-1 may be numbered node #0, and node 100-2 may be numbered node #1.

CTL#欄610は、ストレージ装置300におけるノードを構成するストレージコントローラにつけられた通し番号を示す。例えば、図3において、ノード100-1のストレージコントローラ105A-1の番号はCTL#0、ノード100-1のストレージコントローラ105B-1の番号はCTL#1とすることができる。 A CTL# column 610 indicates serial numbers assigned to the storage controllers constituting the nodes in the storage device 300 . For example, in FIG. 3, the number of the storage controller 105A-1 of the node 100-1 can be CTL#0, and the number of the storage controller 105B-1 of the node 100-1 can be CTL#1.

CPU#欄615は、ストレージ装置300におけるストレージコントローラに含まれるプロセッサにつけられた通し番号を示す。例えば、図3において、ノード100-1のプロセッサ110A-1の番号はCPU#0、ノード100-1のプロセッサ110B-1の番号はCPU#1とすることができる。 A CPU# column 615 indicates serial numbers assigned to the processors included in the storage controller in the storage device 300 . For example, in FIG. 3, the number of the processor 110A-1 of the node 100-1 can be CPU#0, and the number of the processor 110B-1 of the node 100-1 can be CPU#1.

Port#欄620は、ストレージ装置300におけるノードとドライブボックスとの間の通信ポートにつけられた通し番号を示す。例えば、図1において、バックエンドポート122A-1の番号をPort#0、バックエンドポート122A-2の番号をPort#1、バックエンドポート122A-3の番号Port#2、バックエンドポート122A-4の番号をPort#3とすることができる。 A Port# column 620 indicates serial numbers assigned to communication ports between nodes and drive boxes in the storage device 300 . For example, in FIG. 1, the number of the backend port 122A-1 can be Port#0, the number of the backend port 122A-2 can be Port#1, the number of the backend port 122A-3 can be Port#2, and the number of the backend port 122A-4 can be Port#3.

上述のように、各レコードは、メッセージの送信先のプロセッサ及びメッセージが経由するポート(プロセッサとPCIeスイッチとが通信を行う経路)を示す。一つのPCIeスイッチは、1又は複数のポートを介して、一つのプロセッサと通信を行う。 As described above, each record indicates the processor to which the message is sent and the port through which the message passes (path for communication between the processor and the PCIe switch). One PCIe switch communicates with one processor via one or more ports.

Send Target欄625は、スイッチ制御モジュールが、図4のステップ415にて生成したメッセージを送信するように選択された送信先を示す。例えば、図6において、ノード#0、CTL#0、CPU#0、Port#0のSend Target欄625の値は「1」である。ノード#0、CTL#0、CPU#0、Port#2のレコードの、Send Target欄625の値は「0」である。 The Send Target column 625 indicates the destination that the switch control module has selected to send the message generated in step 415 of FIG. For example, in FIG. 6, the value of the Send Target column 625 of Node#0, CTL#0, CPU#0, and Port#0 is "1". The value of the Send Target column 625 of the record of node #0, CTL #0, CPU #0, Port #2 is "0".

図6のメッセージ送信先管理テーブル600のSend Target欄625において、「1」は、レコードがメッセージ送信先であることを示す。Send Target「0」をメッセージの送信先としない、とする。すなわち、ノード#0、CTL#0、CPU#0、Port#0はメッセージの送信先であり、ノード#0、CTL#0、CPU#0、Port#2はメッセージの送信先としない。 In the Send Target column 625 of the message destination management table 600 of FIG. 6, "1" indicates that the record is the message destination. Assume that Send Target “0” is not set as the destination of the message. That is, node #0, CTL#0, CPU#0, and Port#0 are destinations of messages, and node #0, CTL#0, CPU#0, and Port#2 are not destinations of messages.

図6のメッセージ送信先管理テーブル600は、ストレージコントローラのプロセッサ110で動作する制御プログラムが生成し、これをスイッチ制御モジュールが参照可能なPCIeスイッチ内のメモリ(図示せず)に格納する。そして、ストレージコントローラのプロセッサ110は、バックエンドインタフェースの稼働状況などに応じて、適宜メッセージ送信先管理テーブルを更新し、その都度PCIeスイッチ内のメモリに格納する。 The message transmission destination management table 600 of FIG. 6 is generated by a control program running on the processor 110 of the storage controller and stored in a memory (not shown) within the PCIe switch that can be referenced by the switch control module. Then, the processor 110 of the storage controller appropriately updates the message transmission destination management table according to the operating status of the backend interface, and stores it in the memory within the PCIe switch each time.

図6のメッセージ送信先管理テーブル600の効果について説明する。まず、スイッチ制御モジュールは、このメッセージ送信先管理テーブル600を参照することで、図4のステップ415で生成したメッセージの送信すべき送信先を確認できる。これにより、スイッチ制御モジュールの負荷を軽減できる。 Effects of the message transmission destination management table 600 of FIG. 6 will be described. First, the switch control module can confirm the destination to which the message generated in step 415 of FIG. 4 should be sent by referring to this message destination management table 600 . This reduces the load on the switch control module.

例えば、1つのプロセッサに対して、複数のバックエンドポートが備わっている場合に、複数のバックエンドポートを均等に使ってドライブボックスのドライブと通信している場合、いずれかのバックエンドポートを使ってメッセージを送信すればよいので、図6のノード#0、CTL#0、CPU#1、Port#0のみ、Send Target欄625の値を「1」にし、その他Port#1からPort#3のSend Target欄625の値を「0」としてもよい。 For example, if one processor is equipped with multiple backend ports and the multiple backend ports are used evenly to communicate with the drives in the drive box, any one of the backend ports can be used to send a message. may be set to "0".

また、場合によっては、ストレージ装置300のバックエンドインタフェース120が何らかの要因で使用不能になっていることもあり得る。その際、ストレージコントローラのプロセッサ110は、使用不能になっているバックエンドポートのSend Target欄625の値を「0」と設定する。そうすることによって、スイッチ制御モジュール215は、メッセージ送信先管理テーブルを参照することで、使用不能なバックエンドインタフェース(バックエンドポート)を把握できるため、不要なメッセージ送信を回避できる。これにより、スイッチ制御モジュールの負荷を軽減できる。また、使用不能なバックエンドインタフェースにメッセージを送信したことによるエラーを回避できる。 Also, in some cases, the backend interface 120 of the storage device 300 may become unusable for some reason. At that time, the processor 110 of the storage controller sets the value of the Send Target column 625 of the disabled backend port to "0". By doing so, the switch control module 215 can identify the backend interfaces (backend ports) that cannot be used by referring to the message destination management table, thereby avoiding unnecessary message transmission. This reduces the load on the switch control module. It also avoids errors caused by sending messages to unavailable backend interfaces.

上述のように、本実施形態のストレージ装置において、スイッチ装置(PCIeスイッチ)は、プロセッサとの通信プロトコルと、記憶ドライブとの間の通信プロトコルとの間の変換を行う。これによって、プロセッサと記憶ドライブとの間の通信性能が均一化される。 As described above, in the storage device of this embodiment, the switch device (PCIe switch) converts between the communication protocol with the processor and the communication protocol with the storage drives. This equalizes communication performance between processors and storage drives.

さらに、スイッチ装置は、記憶ドライブとの通信における異常を検知すると、接続されているプロセッサから選択したプロセッサそれぞれに異常を通知するメッセージを送信する。これにより、異常に対して速やかな処理が可能となる。なお、本実施形態の特徴は、上記構成例の通信プロトコルと異なる通信プロトコルを使用するストレージ装置に適用できる。 Furthermore, when the switch device detects an abnormality in communication with the storage drive, it sends a message notifying the abnormality to each of the processors selected from the connected processors. This makes it possible to quickly process an abnormality. Note that the features of this embodiment can be applied to a storage device that uses a communication protocol different from the communication protocol of the above configuration example.

上述した実施形態は、本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。 The above-described embodiments have been described in detail for easy understanding of the present invention, and are not necessarily limited to those having all the described configurations. In addition, it is possible to replace part of the configuration of one embodiment with the configuration of another embodiment, and it is also possible to add the configuration of another embodiment to the configuration of one embodiment. Moreover, it is possible to add, delete, or replace a part of the configuration of each embodiment with another configuration.

さらに上記の各構成、機能、処理部、処理手段等は、それらの一部または全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。 Further, each of the configurations, functions, processing units, processing means, etc. described above may be realized by hardware, for example, by designing them in an integrated circuit. Moreover, each of the above configurations, functions, etc. may be realized by software by a processor interpreting and executing a program for realizing each function.

さらに各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD等の記億装置、または、ICカード、SDカード、DVD等の記億媒体に置いてもよい。さらに制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。 Furthermore, information such as programs, tables, and files that implement each function may be stored in memory, storage devices such as hard disks and SSDs, or storage media such as IC cards, SD cards, and DVDs. Furthermore, control lines and information lines indicate those considered necessary for explanation, and not all control lines and information lines are necessarily indicated on the product. In practice, it may be considered that almost all configurations are interconnected.

特許請求の範囲に記載した以外の本発明の観点として、以下のものがあげられる。ストレージ装置は、複数のコントローラと、複数の記憶ドライブと、前記複数のコントローラとそれぞれと接続される複数のコントローラ側ポートと、前記複数の記憶ドライブそれぞれに接続される複数のドライブ側ポート、を含むスイッチ装置と、を含み、前記スイッチ装置は、前記複数のコントローラ側ポートと前記複数のドライブ側ポートとの間において、アドレスの変換を行う。
特許請求の範囲に記載した以外の本発明の観点として、さらに、以下のものがあげられる。
(1)
複数のコントローラと、
複数の記憶ドライブと、
複数のスイッチ装置と、を含み、
前記複数のスイッチ装置の各スイッチ装置は、
複数のコントローラ側ポートを介して前記複数のコントローラ内の互いに異なるコントローラとそれぞれ通信する複数のコントローラ側スイッチと、
複数のドライブ側ポートを介して、前記複数の記憶ドライブそれぞれと通信するドライブ側スイッチと、
前記複数のコントローラ側スイッチと前記ドライブ側スイッチとの間においてアドレス変換を行うアドレス変換部と、を含み、
前記ドライブ側スイッチは前記複数のコントローラ側スイッチに接続され、
前記複数の記憶ドライブの各記憶ドライブは、前記複数のスイッチ装置に接続されており、
前記複数のスイッチ装置の各スイッチ装置は、前記複数のドライブ側ポートの一つのポートにおいて異常を検出すると、前記異常を通知するコントローラを指定する情報を参照して、前記異常を通知するコントローラを前記複数のコントローラから選択する、ストレージ装置。
(2)
(1)に記載のストレージ装置であって、
前記複数のコントローラ側スイッチ及び前記ドライブ側スイッチは、それぞれ、仮想スイッチである、ストレージ装置。
(3)
複数のコントローラと、
複数の記憶ドライブと、
前記複数のコントローラそれぞれに接続される複数のコントローラ側ポートと、前記複数の記憶ドライブそれぞれに接続される複数のドライブ側ポートと、を含むスイッチ装置と、を含み、
前記スイッチ装置は、
前記複数のコントローラ側ポートと前記複数のドライブ側ポートとの間において、アドレスの変換を行い、
前記複数のドライブ側ポートの一つのポートにおいて異常を検出すると、前記異常を示すメッセージを、前記複数のコントローラ側ポートそれぞれを介して、前記複数のコントローラに通知する、ストレージ装置。
(4)
(3)に記載のストレージ装置であって、
前記異常を通知されたコントローラは、前記異常が検出された前記一つのポートへ発行済み及び発行されるIO要求を取り消す、ストレージ装置。
(5)
(3)に記載のストレージ装置であって、
前記複数のコントローラにおける一つのコントローラは、他のコントローラが前記異常からの回復処理を行っていない場合に、前記異常からの回復処理を行う、ストレージ装置。
(6)
複数のスイッチ装置を含むストレージ装置における、通信方法であって、
前記複数のスイッチ装置の各スイッチ装置は、
複数のコントローラ側スイッチと、
ドライブ側スイッチと、
アドレス変換部と、を含み、
前記通信方法は、
前記複数のコントローラ側スイッチが、複数のコントローラ側ポートを介して複数のコントローラ内の互いに異なるコントローラとそれぞれ通信し、
前記ドライブ側スイッチが、複数のドライブ側ポートを介して複数の記憶ドライブと通信し、
前記アドレス変換部が前記複数のコントローラ側スイッチと前記ドライブ側スイッチとの間においてアドレス変換を行い、
前記ドライブ側スイッチが、前記複数のコントローラ側スイッチと通信し、
前記複数の記憶ドライブの各記憶ドライブが、前記複数のスイッチ装置と通信し、
前記複数のスイッチ装置の各スイッチ装置が、前記複数のドライブ側ポートの一つのポートにおいて異常を検出すると、前記異常を通知するコントローラを指定する情報を参照して、前記異常を通知するコントローラを前記複数のコントローラから選択する、通信方法。
(7)
ストレージ装置におけるスイッチ装置の通信方法であって、
前記スイッチ装置が、複数のコントローラ側ポートそれぞれを介して複数のコントローラと通信を行い、
前記スイッチ装置が、複数のドライブ側ポートそれぞれを介して、複数の記憶ドライブと通信を行い、
前記スイッチ装置が、前記複数のコントローラ側ポートと前記複数のドライブ側ポートとの間において、アドレスの変換を行い、
前記スイッチ装置が、前記複数のドライブ側ポートの一つのポートにおいて異常を検出すると、前記異常を示すメッセージを、前記複数のコントローラ側ポートそれぞれを介して、前記複数のコントローラに通知する、スイッチ装置の通信方法。
(8)
複数のコントローラと、
複数の記憶ドライブと、
複数のスイッチ装置と、を含み、
前記複数のスイッチ装置の各スイッチ装置は、
複数のコントローラ側ポートを介して前記複数のコントローラ内の互いに異なるコントローラとそれぞれ通信する複数のコントローラ側スイッチと、
複数のドライブ側ポートを介して、前記複数の記憶ドライブそれぞれと通信するドライブ側スイッチと、
前記複数のコントローラ側スイッチと前記ドライブ側スイッチとの間においてアドレス変換を行うアドレス変換部と、を含み、
前記ドライブ側スイッチは前記複数のコントローラ側スイッチに接続され、
前記複数の記憶ドライブの各記憶ドライブは、前記複数のスイッチ装置に接続されており、
前記複数の記憶ドライブ及び前記複数のスイッチ装置を収容する、ドライブボックスと、
複数のノードと、を含み、
前記複数のノードの各ノードは、前記複数のコントローラ内のコントローラを含み、
前記ドライブボックス内の前記複数のスイッチ装置は、前記複数のノードの一つのノード内の互いに異なるコントローラにそれぞれ接続されている、ストレージ装置。
(9)
(8)に記載のストレージ装置であって、
前記複数のスイッチ装置それぞれの前記複数のコントローラ側スイッチは、互いに異なるノードのコントローラにそれぞれ接続されている、ストレージ装置。
Aspects of the present invention other than those described in the claims include the following. The storage apparatus includes a plurality of controllers, a plurality of storage drives, a plurality of controller-side ports connected to the plurality of controllers, respectively, and a plurality of drive-side ports respectively connected to the plurality of storage drives, wherein the switch device performs address translation between the plurality of controller-side ports and the plurality of drive-side ports.
Further aspects of the present invention other than those described in the claims are as follows.
(1)
multiple controllers;
a plurality of storage drives;
a plurality of switch devices;
each switch device of the plurality of switch devices,
a plurality of controller-side switches that respectively communicate with different controllers among the plurality of controllers via a plurality of controller-side ports;
a drive-side switch communicating with each of the plurality of storage drives via a plurality of drive-side ports;
an address conversion unit that performs address conversion between the plurality of controller-side switches and the drive-side switches;
the drive-side switch is connected to the plurality of controller-side switches;
each storage drive of the plurality of storage drives is connected to the plurality of switch devices;
wherein, when each switch device of the plurality of switch devices detects an abnormality in one of the plurality of drive-side ports, it refers to information specifying the controller to notify the abnormality, and selects the controller to notify the abnormality from the plurality of controllers.
(2)
(1) The storage device according to
The storage device, wherein the plurality of controller-side switches and the drive-side switches are virtual switches.
(3)
multiple controllers;
a plurality of storage drives;
a switch device including a plurality of controller-side ports connected to each of the plurality of controllers and a plurality of drive-side ports connected to each of the plurality of storage drives;
The switch device is
converting addresses between the plurality of controller-side ports and the plurality of drive-side ports;
A storage device that, when an abnormality is detected in one of the plurality of drive-side ports, notifies a message indicating the abnormality to the plurality of controllers via each of the plurality of controller-side ports.
(4)
The storage device according to (3),
The storage device according to claim 1, wherein the controller notified of the abnormality cancels IO requests issued and to be issued to the one port in which the abnormality is detected.
(5)
The storage device according to (3),
A storage device, wherein one controller among the plurality of controllers performs recovery processing from the abnormality when another controller does not perform the recovery processing from the abnormality.
(6)
A communication method in a storage device including a plurality of switch devices,
each switch device of the plurality of switch devices,
a plurality of controller-side switches;
a drive-side switch;
and an address translator,
The communication method includes:
wherein the plurality of controller-side switches communicate with different controllers among the plurality of controllers via a plurality of controller-side ports;
the drive-side switch communicates with a plurality of storage drives via a plurality of drive-side ports;
the address conversion unit performs address conversion between the plurality of controller-side switches and the drive-side switches;
the drive-side switch in communication with the plurality of controller-side switches;
each storage drive of the plurality of storage drives in communication with the plurality of switch devices;
A communication method, wherein, when each switch device of said plurality of switch devices detects an abnormality in one of said plurality of drive-side ports, it refers to information specifying a controller that notifies said abnormality, and selects a controller that notifies said abnormality from said plurality of controllers.
(7)
A communication method for a switch device in a storage device, comprising:
the switch device communicates with a plurality of controllers via each of a plurality of controller-side ports;
wherein the switch device communicates with a plurality of storage drives via each of a plurality of drive-side ports;
wherein the switch device translates addresses between the plurality of controller-side ports and the plurality of drive-side ports;
A communication method for a switch device, wherein when the switch device detects an abnormality in one of the plurality of drive-side ports, a message indicating the abnormality is sent to the plurality of controllers via each of the plurality of controller-side ports.
(8)
multiple controllers;
a plurality of storage drives;
a plurality of switch devices;
each switch device of the plurality of switch devices,
a plurality of controller-side switches that respectively communicate with different controllers among the plurality of controllers via a plurality of controller-side ports;
a drive-side switch communicating with each of the plurality of storage drives via a plurality of drive-side ports;
an address conversion unit that performs address conversion between the plurality of controller-side switches and the drive-side switches;
the drive-side switch is connected to the plurality of controller-side switches;
each storage drive of the plurality of storage drives is connected to the plurality of switch devices;
a drive box housing the plurality of storage drives and the plurality of switch devices;
a plurality of nodes, and
each node of the plurality of nodes includes a controller in the plurality of controllers;
The storage device, wherein the plurality of switch devices in the drive box are connected to different controllers in one of the plurality of nodes.
(9)
The storage device according to (8),
The storage device, wherein the plurality of controller-side switches of each of the plurality of switch devices are connected to controllers of nodes different from each other.

100……ノード、105A,105B……ストレージコントローラ、200……ドライブボックス、205A、205B……PCIeスイッチ、220A,220B……スイッチ制御モジュール、225A、225B……アドレス変換部 100... node, 105A, 105B... storage controller, 200... drive box, 205A, 205B... PCIe switch, 220A, 220B... switch control module, 225A, 225B... address converter

Claims (8)

複数のコントローラと、
複数の記憶ドライブと、
前記複数のコントローラに接続される複数のコントローラ側ポートと、前記複数の記憶ドライブに接続される複数のドライブ側ポートと、を含むスイッチ装置と、
前記複数の記憶ドライブと複数の前記スイッチ装置とを含むドライブボックスと、
複数のノードと、
を含み、
前記スイッチ装置は、
前記コントローラ側ポートを介して前記コントローラと通信するコントローラ側スイッチと、
前記複数のドライブ側ポートを介して、前記複数の記憶ドライブそれぞれと通信するドライブ側スイッチと、
前記コントローラ側スイッチと前記ドライブ側スイッチとの間においてアドレス変換を行うアドレス変換部と、を含み、
前記スイッチ装置内で、前記ドライブ側スイッチは複数の前記コントローラ側スイッチに接続されており、
前記記憶ドライブは前記複数のスイッチ装置に接続されており
前記複数のノードの各ノードは、前記複数のコントローラにおける2以上のコントローラを含み、
前記複数のスイッチ装置は、異なるノードのコントローラに接続されている、
ストレージ装置。
multiple controllers;
a plurality of storage drives;
a switch device including a plurality of controller-side ports connected to the plurality of controllers and a plurality of drive-side ports connected to the plurality of storage drives;
a drive box containing the plurality of storage drives and the plurality of switch devices;
a plurality of nodes;
including
The switch device is
a controller-side switch that communicates with the controller through the controller-side port;
a drive-side switch communicating with each of the plurality of storage drives via the plurality of drive-side ports;
an address conversion unit that performs address conversion between the controller-side switch and the drive-side switch;
in the switch device, the drive-side switch is connected to a plurality of the controller-side switches;
the storage drive is connected to the plurality of switch devices;
each node of the plurality of nodes includes two or more controllers in the plurality of controllers;
wherein the plurality of switch devices are connected to controllers of different nodes;
storage device.
請求項1に記載のストレージ装置であって、
前記コントローラ側スイッチ及び前記ドライブ側スイッチは、それぞれ、仮想スイッチである、ストレージ装置。
The storage device according to claim 1,
The storage device, wherein the controller-side switch and the drive-side switch are virtual switches.
請求項1に記載のストレージ装置であって、
前記スイッチ装置は、前記複数のドライブ側ポートの一つのポートにおいて異常を検出すると、前記異常を示すメッセージを、前記複数のコントローラ側ポートそれぞれを介して、前記複数のコントローラに通知する、ストレージ装置。
The storage device according to claim 1,
The storage device, wherein, when detecting an abnormality in one of the plurality of drive-side ports, the switch device notifies the plurality of controllers of a message indicating the abnormality via each of the plurality of controller-side ports.
請求項3に記載のストレージ装置であって、
前記異常を通知されたコントローラは、前記異常が検出された前記一つのポートへ発行済み及び発行されるIO要求を取り消す、ストレージ装置。
The storage device according to claim 3,
The storage device according to claim 1, wherein the controller notified of the abnormality cancels IO requests issued and to be issued to the one port in which the abnormality is detected.
請求項3に記載のストレージ装置であって、
前記複数のコントローラにおける一つのコントローラは、他のコントローラが前記異常からの回復処理を行っていない場合に、前記異常からの回復処理を行う、ストレージ装置。
The storage device according to claim 3,
A storage device, wherein one controller among the plurality of controllers performs recovery processing from the abnormality when another controller does not perform the recovery processing from the abnormality.
請求項1に記載のストレージ装置であって、
前記スイッチ装置は、前記複数のドライブ側ポートの一つのポートにおいて異常を検出すると、前記異常を通知するコントローラを指定する情報を参照して、前記異常を通知するコントローラを前記複数のコントローラから選択する、ストレージ装置。
The storage device according to claim 1,
wherein, upon detecting an abnormality in one of the plurality of drive-side ports, the switch device refers to information designating a controller that notifies the abnormality, and selects the controller that notifies the abnormality from the plurality of controllers.
請求項1に記載のストレージ装置であって、 The storage device according to claim 1,
前記複数のスイッチ装置における各スイッチ装置の前記複数のコントローラ側スイッチは、互いに異なるノードのコントローラに接続されている、 the plurality of controller-side switches of each switching device in the plurality of switching devices are connected to controllers of different nodes;
ストレージ装置。 storage device.
請求項1に記載のストレージ装置であって、 The storage device according to claim 1,
前記複数のノードの各ノードにおける前記2以上のコントローラは、異なる前記スイッチ装置を介して前記記憶ドライブにアクセスする、 the two or more controllers in each node of the plurality of nodes access the storage drive through different switch devices;
ストレージ装置。 storage device.
JP2022084994A 2019-08-02 2022-05-25 storage device Active JP7315753B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2022084994A JP7315753B2 (en) 2019-08-02 2022-05-25 storage device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2019142713A JP7080863B2 (en) 2019-08-02 2019-08-02 Storage device
JP2022084994A JP7315753B2 (en) 2019-08-02 2022-05-25 storage device

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2019142713A Division JP7080863B2 (en) 2019-08-02 2019-08-02 Storage device

Publications (2)

Publication Number Publication Date
JP2022105659A JP2022105659A (en) 2022-07-14
JP7315753B2 true JP7315753B2 (en) 2023-07-26

Family

ID=87427967

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022084994A Active JP7315753B2 (en) 2019-08-02 2022-05-25 storage device

Country Status (1)

Country Link
JP (1) JP7315753B2 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008078887A (en) 2006-09-20 2008-04-03 Nec Corp Shared system for i/o equipment, information-processor shared system and method used for its system
JP2008152786A (en) 2006-12-19 2008-07-03 Internatl Business Mach Corp <Ibm> Method for migrating virtual function from first to second physical function of one or more end points in data processing system, program, and system (system and method for migration of single root stateless virtual function)
JP2016139256A (en) 2015-01-27 2016-08-04 日本電気株式会社 I/o control device, i/o control system, i/o control method and program
WO2017195324A1 (en) 2016-05-12 2017-11-16 株式会社日立製作所 Storage device
JP2018190368A (en) 2017-04-28 2018-11-29 株式会社日立製作所 Storage system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008078887A (en) 2006-09-20 2008-04-03 Nec Corp Shared system for i/o equipment, information-processor shared system and method used for its system
JP2008152786A (en) 2006-12-19 2008-07-03 Internatl Business Mach Corp <Ibm> Method for migrating virtual function from first to second physical function of one or more end points in data processing system, program, and system (system and method for migration of single root stateless virtual function)
JP2016139256A (en) 2015-01-27 2016-08-04 日本電気株式会社 I/o control device, i/o control system, i/o control method and program
WO2017195324A1 (en) 2016-05-12 2017-11-16 株式会社日立製作所 Storage device
JP2018190368A (en) 2017-04-28 2018-11-29 株式会社日立製作所 Storage system

Also Published As

Publication number Publication date
JP2022105659A (en) 2022-07-14

Similar Documents

Publication Publication Date Title
JP7080863B2 (en) Storage device
US10191669B2 (en) Redundant SAS storage virtualization subsystem and system using the same and method therefor
US8589723B2 (en) Method and apparatus to provide a high availability solid state drive
JP5511960B2 (en) Information processing apparatus and data transfer method
JP6273353B2 (en) Computer system
JP5959733B2 (en) Storage system and storage system failure management method
TWI403891B (en) Active-active failover for a direct-attached storage system
JP5635621B2 (en) Storage system and storage system data transfer method
US20180341419A1 (en) Storage System
WO2017162177A1 (en) Redundant storage system, redundant storage method and redundant storage device
US10719471B2 (en) Storage system and backend construction method for storage system having switch that is logically partitioned into multiple partitions
JP2008112399A (en) Storage virtualization switch and computer system
US10782898B2 (en) Data storage system, load rebalancing method thereof and access control method thereof
WO2017167106A1 (en) Storage system
JP6461347B2 (en) Storage system and storage control method
JP7315753B2 (en) storage device
JP5856665B2 (en) Storage system and storage system data transfer method
JP2005190498A (en) Storage controller

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220525

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220613

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230328

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230404

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230530

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230613

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230713

R150 Certificate of patent or registration of utility model

Ref document number: 7315753

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111