JP6978084B2 - Control device, disk array device and patrol diagnostic method - Google Patents

Control device, disk array device and patrol diagnostic method Download PDF

Info

Publication number
JP6978084B2
JP6978084B2 JP2019004645A JP2019004645A JP6978084B2 JP 6978084 B2 JP6978084 B2 JP 6978084B2 JP 2019004645 A JP2019004645 A JP 2019004645A JP 2019004645 A JP2019004645 A JP 2019004645A JP 6978084 B2 JP6978084 B2 JP 6978084B2
Authority
JP
Japan
Prior art keywords
ssd
diagnosis
block size
address
drive
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
JP2019004645A
Other languages
Japanese (ja)
Other versions
JP2020113132A (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.)
NEC Platforms Ltd
Original Assignee
NEC Platforms 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
Application filed by NEC Platforms Ltd filed Critical NEC Platforms Ltd
Priority to JP2019004645A priority Critical patent/JP6978084B2/en
Publication of JP2020113132A publication Critical patent/JP2020113132A/en
Application granted granted Critical
Publication of JP6978084B2 publication Critical patent/JP6978084B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Test And Diagnosis Of Digital Computers (AREA)

Description

本発明は、制御装置、ディスクアレイ装置及びパトロール診断方法に関する。 The present invention relates to a control device, a disk array device, and a patrol diagnostic method.

ディスクアレイ装置では、搭載しているドライブの故障を検出するためにパトロール診断を実施している。パトロール診断では、一定周期で各ドライブに対してリードコマンドやベリファイコマンドを発行し、エラー応答が返却されるかどうかを確認する。パトロール診断は、ドライブの全領域のアドレスに対して実施する必要があるが、近年採用されているような大容量のドライブでは全領域のチェックが完了するまでに時間がかかるという問題がある。 In the disk array device, patrol diagnosis is performed to detect the failure of the mounted drive. In patrol diagnosis, read commands and verify commands are issued to each drive at regular intervals, and it is confirmed whether an error response is returned. Patrol diagnosis needs to be performed for addresses in the entire area of the drive, but there is a problem that it takes time to complete the check of the entire area in a large-capacity drive such as that adopted in recent years.

このような問題に対し、特許文献1には、ドライブごとにパトロール診断を行うアドレスを発生させるアドレス発生回路を設け、通常は、アドレス発生回路が発生したアドレスに基づいて、アドレスをスキップしつつパトロール診断を行い、エラー発生時には1ずつアドレスを増加させてパトロール診断を行う方法が開示されている。この方法を用いると、短時間でパトロール診断を実行し、早期にエラーを検知することができる。 To solve such a problem, Patent Document 1 provides an address generation circuit that generates an address for performing patrol diagnosis for each drive, and usually patrols while skipping the address based on the address generated by the address generation circuit. A method of performing a diagnosis and performing a patrol diagnosis by increasing the address by 1 when an error occurs is disclosed. By using this method, patrol diagnosis can be performed in a short time and an error can be detected at an early stage.

特公昭60−42504号公報Special Publication No. 60-42504

特許文献1に記載の技術には、専用のアドレス発生回路が必要になるという課題がある。また、近年、データアクセスの高速性の観点から、ディスクアレイ装置を構成するドライブにSSD(Solid State Drive)を用いることが増えている。SSDに対するパトロール診断を効率的に短時間で行う方法が求められている。 The technique described in Patent Document 1 has a problem that a dedicated address generation circuit is required. Further, in recent years, from the viewpoint of high speed of data access, SSD (Solid State Drive) is increasingly used as a drive constituting a disk array device. There is a demand for a method for efficiently performing patrol diagnosis for SSD in a short time.

そこでこの発明は、上述の課題を解決する制御装置、ディスクアレイ装置及びパトロール診断方法を提供することを目的としている。 Therefore, an object of the present invention is to provide a control device, a disk array device, and a patrol diagnostic method that solve the above-mentioned problems.

本発明の一態様によれば、記憶装置に対するパトロール診断を行う機能を有し、診断対象の記憶装置がSSDの場合、ブロック単位でパトロール診断を行う診断部と、前記記憶装置にコマンドを発行し、前記記憶装置がSSDであるかHHDであるかを示す前記記憶装置のタイプ、識別情報、容量を取得し、前記タイプがSSDの場合、さらに前記SSDを構成するブロックのブロックサイズを取得するコマンドを発行して前記ブロックサイズの情報を取得する構成情報取得部と、前記記憶装置の識別情報と、前記タイプと、前記タイプがSSDの場合に当該SSDのブロックサイズの情報と、前記容量と、診断対象のアドレスとを対応付けて記憶するドライブ情報記憶テーブルと、前記SSDの識別情報と前記ブロックサイズとを対応付けて記憶する製品識別コードテーブルと、前記ドライブ情報記憶テーブルに前記識別情報と前記ブロックサイズと前記容量とを登録する制御部と、を備え、前記制御部は、前記構成情報取得部が取得した前記識別情報、前記ブロックサイズおよび前記容量と、所定の前記診断対象のアドレスと、を前記ドライブ情報記憶テーブルに登録し、前記構成情報取得部によって前記ブロックサイズが取得できなかった場合、前記構成情報取得部が取得した前記識別情報に基づいて前記製品識別コードテーブルを参照し、当該識別情報に対応する前記ブロックサイズを取得して、前記構成情報取得部が取得した前記識別情報と前記容量とともに、取得した前記ブロックサイズを前記ドライブ情報記憶テーブルに登録し、前記診断部は、診断対象の前記記憶装置がSSDの場合、診断対象の前記記憶装置の前記識別情報に対応する前記ブロックサイズを前記ドライブ情報記憶テーブルから読み出し、当該ブロックサイズに基づいて、ブロック単位で前記SSDのパトロール診断を行う制御装置である。 According to one aspect of the present invention, it has a function of performing patrol diagnosis for a storage device, and when the storage device to be diagnosed is an SSD , a command is issued to the diagnostic unit that performs patrol diagnosis in block units and the storage device. , A command to acquire the type, identification information, and capacity of the storage device indicating whether the storage device is SSD or HHD, and if the storage device is SSD, further acquire the block size of the block constituting the SSD. , The identification information of the storage device, the type, the block size information of the SSD when the type is SSD, the capacity, and the configuration information acquisition unit for acquiring the block size information. A drive information storage table that stores the address to be diagnosed in association with each other, a product identification code table that stores the SSD identification information in association with the block size, and the identification information and the identification information in the drive information storage table. The control unit includes a control unit for registering the block size and the capacity, and the control unit includes the identification information acquired by the configuration information acquisition unit, the block size and the capacity, a predetermined address to be diagnosed, and the like. Is registered in the drive information storage table, and when the block size cannot be acquired by the configuration information acquisition unit, the product identification code table is referred to based on the identification information acquired by the configuration information acquisition unit. The block size corresponding to the identification information is acquired, the acquired block size is registered in the drive information storage table together with the identification information and the capacity acquired by the configuration information acquisition unit, and the diagnostic unit diagnoses. When the target storage device is an SSD, the block size corresponding to the identification information of the storage device to be diagnosed is read from the drive information storage table, and the patrol diagnosis of the SSD is performed in block units based on the block size. It is a control device that performs.

また、本発明の一態様によれば、複数の記憶装置と、上記の制御装置とを備えるディスクアレイ装置である。 Further, according to one aspect of the present invention, it is a disk array device including a plurality of storage devices and the above-mentioned control device.

また、本発明の他の一態様によれば、記憶装置に対するパトロール診断を行う機能を有する制御装置によって実行されるパトロール診断方法であって、前記記憶装置にコマンドを発行し、前記記憶装置がSSDであるかHHDであるかを示す前記記憶装置のタイプ、識別情報、容量を取得し、前記タイプがSSDの場合、さらに前記SSDを構成するブロックのブロックサイズを取得するコマンドを発行して前記ブロックサイズの情報を取得するステップと、前記記憶装置の識別情報と、前記タイプと、前記タイプがSSDの場合に当該SSDのブロックサイズの情報と、前記容量と、診断対象のアドレスとを対応付けて記憶するドライブ情報記憶テーブルに、前記取得するステップで取得した前記識別情報、前記ブロックサイズおよび前記容量と、所定の前記診断対象のアドレスとを登録するステップと、前記取得するステップによって前記ブロックサイズが取得できなかった場合、前記取得するステップで取得した前記識別情報に基づいて、前記SSDの識別情報と前記ブロックサイズとを対応付けて記憶する製品識別コードテーブルを参照し、当該識別情報に対応する前記ブロックサイズを取得して、前記取得するステップで取得した前記識別情報と前記容量とともに、取得した前記ブロックサイズを前記ドライブ情報記憶テーブルに登録するステップと、診断対象の前記記憶装置がSSDの場合、診断対象の前記記憶装置の前記識別情報に対応する前記ブロックサイズを前記ドライブ情報記憶テーブルから読み出し、当該ブロックサイズに基づいて、ブロック単位で前記SSDのパトロール診断を行うステップと、を有するパトロール診断方法である。 Further, according to another aspect of the present invention, it is a patrol diagnosis method executed by a control device having a function of performing patrol diagnosis for a storage device, in which a command is issued to the storage device, and the storage device is SSD. The block is obtained by acquiring the type, identification information, and capacity of the storage device indicating whether the storage device is HHD or HHD, and if the type is SSD, further issues a command to acquire the block size of the block constituting the SSD. The step of acquiring the size information, the identification information of the storage device, the type, the block size information of the SSD when the type is SSD, the capacity, and the address to be diagnosed are associated with each other. The block size is determined by the step of registering the identification information, the block size and the capacity acquired in the acquisition step, and the predetermined address of the diagnosis target in the drive information storage table to be stored, and the acquisition step. If it cannot be acquired, it corresponds to the identification information by referring to the product identification code table that stores the identification information of the SSD and the block size in association with each other based on the identification information acquired in the acquisition step. A step of acquiring the block size and registering the acquired block size in the drive information storage table together with the identification information and the capacity acquired in the acquisition step, and a case where the storage device to be diagnosed is an SSD. , The block size corresponding to the identification information of the storage device to be diagnosed is read from the drive information storage table, and the patrol diagnosis of the SSD is performed in block units based on the block size. The method.

本発明によれば、SSDに対するパトロール診断の実行時間を短縮し、早期に故障を検出することができる。 According to the present invention, it is possible to shorten the execution time of patrol diagnosis for SSD and detect a failure at an early stage.

本発明の一実施形態に係る情報処理システムの概略図である。It is a schematic diagram of the information processing system which concerns on one Embodiment of this invention. 本発明の一実施形態によるドライブ情報記憶テーブルの一例を示す図である。It is a figure which shows an example of the drive information storage table by one Embodiment of this invention. 本発明の一実施形態によるSSD製品識別コードテーブルの一例を示す図である。It is a figure which shows an example of the SSD product identification code table by one Embodiment of this invention. 本発明の一実施形態によるドライブ構成情報の登録処理の一例を示すフローチャートである。It is a flowchart which shows an example of the registration process of the drive configuration information by one Embodiment of this invention. 本発明の一実施形態によるパトロール診断処理の一例を示すフローチャートである。It is a flowchart which shows an example of the patrol diagnosis processing by one Embodiment of this invention. SSDへのアクセスを説明する第1の図である。It is the first figure explaining the access to SSD. SSDへのアクセスを説明する第2の図である。It is the 2nd figure explaining the access to SSD. 本発明の一実施形態における制御装置の最小構成を示す図である。It is a figure which shows the minimum structure of the control device in one Embodiment of this invention.

以下、本発明の一実施形態に係るRAID(Redundant Array of Inexpensive Disks)を構成する各ドライブへのパトロール診断について図面を参照して説明する。
図1は、本発明の一実施形態に係る情報処理システムの概略図である。
図示するように情報処理システム100は、ホスト装置1a,1b,〜1m、ディスクアレイ装置1と、ドライブ群40とを含む。ホスト装置1a〜1mは、ディスクアレイ装置1と接続されている。ディスクアレイ装置1は、ドライブ群40と接続されている。ディスクアレイ装置1に接続されるホスト装置は1台であってもよい。ドライブ群40は、複数のドライブ#0〜#nを含む。複数のドライブ#0〜#nは、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)などの記憶装置である。ドライブ#0〜#nは、RAIDによる冗長化構成とされている。なお、ドライブ#0〜#nは、ディスクアレイ装置1の内部に搭載されていてもよい。
Hereinafter, patrol diagnosis for each drive constituting RAID (Redundant Array of Inexpensive Disks) according to an embodiment of the present invention will be described with reference to the drawings.
FIG. 1 is a schematic diagram of an information processing system according to an embodiment of the present invention.
As shown in the figure, the information processing system 100 includes a host device 1a, 1b, ~ 1m, a disk array device 1, and a drive group 40. The host devices 1a to 1m are connected to the disk array device 1. The disk array device 1 is connected to the drive group 40. The number of host devices connected to the disk array device 1 may be one. The drive group 40 includes a plurality of drives # 0 to # n. The plurality of drives # 0 to # n are storage devices such as HDD (Hard Disk Drive) and SSD (Solid State Drive), for example. Drives # 0 to # n have a redundant configuration by RAID. The drives # 0 to # n may be mounted inside the disk array device 1.

ホスト装置1a〜1mは、CPU(central processing unit)等のプロセッサを備えたコンピュータである。ホスト装置1a〜1mでは、CPUによりOS(operating system)が稼働している。OSは、ディスクアレイ装置1が管理する論理ボリュームを対象とするIO命令をディスクアレイ装置1へ出力する。 The host devices 1a to 1m are computers equipped with a processor such as a CPU (central processing unit). In the host devices 1a to 1m, the OS (operating system) is operated by the CPU. The OS outputs an IO instruction targeting the logical volume managed by the disk array device 1 to the disk array device 1.

ディスクアレイ装置1は、ドライブ群40のドライブ#0〜#nによってRAIDを構成して管理している。また、ディスクアレイ装置1は、ホスト装置1a等によるIO命令に従い、論理ボリュームに対応するドライブへの書き込みや、ドライブからの読み出しを行う。ディスクアレイ装置1は、ホスト制御部10と、キャッシュメモリ20と、ドライブ制御部30とを備えている。ホスト制御部10は、ホスト装置1a〜1mから受信したコマンドを解析して実行する。キャッシュメモリ20は、種々の情報を記憶する。例えば、キャッシュメモリ20は、ドライブ群40のドライブの構成情報を記憶する構成情報記憶領域21と、ホスト装置1a〜1mとの間で送受信するデータを格納するデータキャッシュ領域24を備えている。構成情報記憶領域21には、ドライブ情報記憶テーブル22と、SSD製品識別コードテーブル23とが格納される。これらのテーブルについては後述する。 The disk array device 1 configures and manages RAID by drives # 0 to # n of the drive group 40. Further, the disk array device 1 writes to the drive corresponding to the logical volume and reads from the drive according to the IO instruction from the host device 1a or the like. The disk array device 1 includes a host control unit 10, a cache memory 20, and a drive control unit 30. The host control unit 10 analyzes and executes commands received from the host devices 1a to 1m. The cache memory 20 stores various information. For example, the cache memory 20 includes a configuration information storage area 21 for storing configuration information of the drives of the drive group 40, and a data cache area 24 for storing data transmitted / received between the host devices 1a to 1m. The drive information storage table 22 and the SSD product identification code table 23 are stored in the configuration information storage area 21. These tables will be described later.

ドライブ制御部30は、ドライブ群40を制御する。ドライブ制御部30は、コマンド発行部31と、診断部33とを備える。コマンド発行部31は、ドライブ群40に含まれる各ドライブへコマンドを発行する。例えば、コマンド発行部31は、パトロール診断時に、診断対象のアドレスへリードコマンドまたはベリファイコマンドを発行する。また、コマンド発行部31は、SSD情報取得インターフェース32を備える。SSD情報取得インターフェース32は、SSDに対してNANDチップの構成情報を取得するコマンドを発行する。診断部33は、ドライブ群40の各ドライブに対するパトロール診断を行う。パトロール診断とは、HDDやSDDに故障が生じていないかどうかを検査する処理である。診断部33は、検査すべきアドレスを決定し、そのアドレスに対して、コマンド発行部31を介してリードコマンド等を発行する。診断部33は、リードコマンドに対する応答を確認し、例えば、コマンドに対する応答があれば当該アドレスは正常で、応答が無ければ当該アドレスは故障していると判定する。診断部33は、ドライブがSSDの場合に、ブロック単位でパトロール診断を行う機能を有している。 The drive control unit 30 controls the drive group 40. The drive control unit 30 includes a command issuing unit 31 and a diagnostic unit 33. The command issuing unit 31 issues a command to each drive included in the drive group 40. For example, the command issuing unit 31 issues a read command or a verify command to the address to be diagnosed at the time of patrol diagnosis. Further, the command issuing unit 31 includes an SSD information acquisition interface 32. The SSD information acquisition interface 32 issues a command to the SSD to acquire the configuration information of the NAND chip. The diagnosis unit 33 performs patrol diagnosis for each drive of the drive group 40. The patrol diagnosis is a process of inspecting whether or not a failure has occurred in the HDD or SDD. The diagnosis unit 33 determines an address to be inspected, and issues a read command or the like to the address via the command issuing unit 31. The diagnostic unit 33 confirms the response to the read command, and determines, for example, that the address is normal if there is a response to the command, and that the address is out of order if there is no response. The diagnosis unit 33 has a function of performing patrol diagnosis in block units when the drive is SSD.

ここで、図6、図7を用いてSSDに対するパトロール診断について説明する。
図6、図7は、それぞれ、SSDへのアクセスを説明する第1の図、第2の図である。
SSDは、NANDチップと呼ばれるフラッシュメモリで構成された記憶素子を複数備えた記憶装置である。図示するように、記憶領域は、複数のブロックで構成されている。1ブロックの容量は、512KBや1MBである。また、各ブロックは、複数のセルによって構成されている。SSDでは、一度書き込んだデータについては、セル単位ではなく、ブロック単位で書き込みを行う。例えば、図6の例では、LBA(Logical Block Addressing)1000〜1400のアドレスがブロック0と対応付けられている。そして、ホスト装置1a等が、LBA1000〜1400の何れかのアドレスに書き込んだデータを更新等するときには、当該データが格納されたセルではなく、ブロック0全体のデータを書き換える。
Here, the patrol diagnosis for SSD will be described with reference to FIGS. 6 and 7.
6 and 7 are a first diagram and a second diagram illustrating access to the SSD, respectively.
The SSD is a storage device including a plurality of storage elements composed of a flash memory called a NAND chip. As shown, the storage area is composed of a plurality of blocks. The capacity of one block is 512KB or 1MB. Further, each block is composed of a plurality of cells. In SSD, once written data is written not in cell units but in block units. For example, in the example of FIG. 6, addresses of LBA (Logical Block Addressing) 1000 to 1400 are associated with block 0. Then, when the host device 1a or the like updates the data written in any of the addresses of LBA1000 to 1400, the data of the entire block 0 is rewritten instead of the cell in which the data is stored.

また、一つのセルが劣化して読み書きができなくなった場合、通常は、SSDのコントローラがチップ内に持っている誤り訂正符号と別のセルのデータを用いて、読み出せなくなったデータを生成し、ブロック単位で別のブロックにデータをコピーして復旧する。しかし、ブロック内で複数のセルが劣化した場合、誤り訂正符号でも復旧できなくなる。すると、ブロック単位で読み書きができなくなり、同じブロック内の劣化していないセルに格納されたデータの読み書きもできなくなる。従って、ブロック内の任意のアドレスに対してデータを読み取れるかどうかをチェックすれば、ブロック内の別のアドレスに対してもチェックを実施したことになる。つまり、パトロール診断の対象ドライブがSSDの場合、複数セルの劣化による復旧不能な故障は、ブロック内の任意のアドレスに対するチェックの実施により検出可能である。本実施形態では、この性質を利用して、診断部33が、SSDに対してブロック単位でパトロール診断を行う。これにより、1アドレスずつ全アドレスを対象として診断を行う処理と比べ、パトロール診断の実行時間を短縮化することができる。例えば、図6の構成例であれば、ブロック0〜ブロックnの各々に対し1回ずつ診断(ベリファイコマンド等を発行し、その応答を確認)すれば、診断部33は、LBA1000〜1400の範囲のアドレスが正常か異常かを診断することができる。
なお、ブロック単位での診断とは、各ブロックにつき1アドレスを対象とする診断を行い、それを全ブロック分繰り返すということである。
In addition, when one cell deteriorates and cannot be read or written, normally, the error correction code that the SSD controller has in the chip and the data of another cell are used to generate the data that cannot be read. , Copy the data to another block in block units and recover. However, if a plurality of cells deteriorate in the block, it cannot be recovered even with an error correction code. Then, it becomes impossible to read / write in block units, and it becomes impossible to read / write the data stored in the undegraded cell in the same block. Therefore, if it is checked whether the data can be read for any address in the block, it means that the check is also performed for another address in the block. That is, when the target drive for patrol diagnosis is SSD, an unrecoverable failure due to deterioration of a plurality of cells can be detected by performing a check on an arbitrary address in the block. In the present embodiment, the diagnostic unit 33 performs patrol diagnosis on the SSD in block units by utilizing this property. As a result, the execution time of the patrol diagnosis can be shortened as compared with the process of performing the diagnosis for all the addresses one by one. For example, in the case of the configuration example of FIG. 6, if diagnosis is made once for each of blocks 0 to block n (issue a verify command or the like and confirm the response), the diagnosis unit 33 has a range of LBA 1000 to 1400. It is possible to diagnose whether the address of is normal or abnormal.
The diagnosis in block units means that a diagnosis targeting one address is performed for each block, and the diagnosis is repeated for all blocks.

ところで、SSDのブロックのサイズは、NANDチップの容量や数に依存するため、SSDの製品や世代によって異なる。ブロック単位での診断を行うためには、診断対象SSDのブロックサイズの情報が必要である。そこで、コマンド発行部31は、例えば、ドライブが接続されたときにINQUIRYコマンドを発行し、ドライブの製品識別コード、タイプ(HDDまたはSSD)、容量などの情報を取得する。また、タイプがSSDの場合、コマンド発行部31は、SSD情報取得インターフェース32を介して、SSDからNANDチップのブロックサイズの情報を取得し、キャッシュメモリ20の構成情報記憶領域21が記憶するドライブ情報記憶テーブル22に記録する。診断部33は、ドライブ情報記憶テーブル22に記録されたブロックサイズの情報を用いて、SSDに対するブロック単位のパトロール診断を実行する。 By the way, the size of the SSD block depends on the capacity and number of NAND chips, and therefore differs depending on the SSD product and generation. In order to perform diagnosis in block units, information on the block size of the SSD to be diagnosed is required. Therefore, for example, the command issuing unit 31 issues an INQUIRY command when the drive is connected, and acquires information such as the product identification code, type (HDD or SSD), and capacity of the drive. When the type is SSD, the command issuing unit 31 acquires block size information of the NAND chip from the SSD via the SSD information acquisition interface 32, and drives information stored in the configuration information storage area 21 of the cache memory 20. Record in the storage table 22. The diagnosis unit 33 executes block-based patrol diagnosis for SSD using the block size information recorded in the drive information storage table 22.

また、SSD情報取得インターフェース32を介して、ブロックサイズの情報が取得できない場合、診断部33は、キャッシュメモリ20の構成情報記憶領域21が記憶するSSD製品識別コードテーブル23を参照して、INQUIRYコマンドにより得たSSDドライブの製品識別コードに対応するブロックサイズの情報を取得する。診断部33は、SSD製品識別コードテーブル23から読み出したブロックサイズの情報を用いて、SSDに対するブロック単位のパトロール診断を実行する。 If the block size information cannot be acquired via the SSD information acquisition interface 32, the diagnostic unit 33 refers to the SSD product identification code table 23 stored in the configuration information storage area 21 of the cache memory 20 and commands the INQUIRY command. The block size information corresponding to the product identification code of the SSD drive obtained in the above is acquired. The diagnosis unit 33 executes a block-based patrol diagnosis for the SSD using the block size information read from the SSD product identification code table 23.

次にドライブ情報記憶テーブル22、SSD製品識別コードテーブル23について説明する。
図2は、本発明の一実施形態によるドライブ情報記憶テーブルの一例を示す図である。
図2に示すようにドライブ情報記憶テーブル22には、ドライブごとに「製品識別コード」、「タイプ」、「容量」、「パトロール診断アドレス」、「NANDブロックサイズ」の各情報を格納するフィールドが設けられている。例えば、図2の例では、ドライブ#1の製品識別コードは「HDD80008」、タイプは「HDD」、容量は「8TB」、パトロール診断アドレスは「40000セクタ」、NANDブロックサイズは「無効」である。同様にドライブ#2の製品識別コードは「SSD16000A」、タイプは「SSD」、容量は「16TB」、パトロール診断アドレスは「10000セクタ」、NANDブロックサイズは「512KB」である。
Next, the drive information storage table 22 and the SSD product identification code table 23 will be described.
FIG. 2 is a diagram showing an example of a drive information storage table according to an embodiment of the present invention.
As shown in FIG. 2, the drive information storage table 22 has fields for storing information of "product identification code", "type", "capacity", "patrol diagnostic address", and "NAND block size" for each drive. It is provided. For example, in the example of FIG. 2, the product identification code of the drive # 1 is "HDD80008", the type is "HDD", the capacity is "8TB", the patrol diagnostic address is "40000 sectors", and the NAND block size is "invalid". .. Similarly, the product identification code of drive # 2 is "SSD16000A", the type is "SSD", the capacity is "16TB", the patrol diagnostic address is "10000 sectors", and the NAND block size is "512KB".

コマンド発行部31は、ドライブ#1が接続されたときにINQUIRYコマンドをドライブ#1へ発行し、製品識別コード(「HDD80008」)、ドライブタイプの情報(「HDD」)、ドライブ容量の情報(「8TB」)を取得し、取得した情報をドライブ#1に対応付けてドライブ情報記憶テーブル22へ登録する。ドライブタイプが「HDD」の場合、「NANDブロックサイズ」フィールドには「無効」を登録する。また、「パトロール診断アドレス」フィールドには「0」を登録する。そして、パトロール診断を実行したときに、診断部33が、次に診断すべきアドレスの値を「パトロール診断アドレス」フィールドに登録する。接続されたドライブがSSDの場合も同様に、コマンド発行部31は、INQUIRYコマンドの発行により取得した情報をそのドライブと対応付けてドライブ情報記憶テーブル22に格納する。SSDの場合、図2のドライブ#2、#3に例示するように「NANDブロックサイズ」フィールドに、SSDへの書き込み単位であるブロックのサイズが登録される。このとき、接続されたSSDが、SSD情報取得インターフェース32に対応するSSDであれば、コマンド発行部31は、INQUIRYコマンドの発行により、ブロックサイズを取得することができる。しかし、接続されたSSDが、SSD情報取得インターフェース32に対応するSSDでは無い場合、INQUIRYコマンドの発行により、ブロックサイズを取得することができない可能性がある。このような場合、ドライブ制御部30は、INQUIRYコマンドの発行によって取得した製品識別コード(SSDのProduct Identification情報など)に基づいて、次に説明するSSD製品識別コードテーブル23を参照し、製品識別コードに対応するブロックサイズの情報を取得する。そして、ドライブ制御部30は、SSD製品識別コードテーブル23から取得したブロックサイズの情報を、ドライブ情報記憶テーブル22の「NANDブロックサイズ」フィールドに登録する。 The command issuing unit 31 issues an INQUIRY command to drive # 1 when the drive # 1 is connected, and issues a product identification code (“HDD80008”), drive type information (“HDD”), and drive capacity information (“HDD”). 8TB ”) is acquired, and the acquired information is associated with the drive # 1 and registered in the drive information storage table 22. When the drive type is "HDD", "invalid" is registered in the "NAND block size" field. Also, "0" is registered in the "Patrol diagnostic address" field. Then, when the patrol diagnosis is executed, the diagnosis unit 33 registers the value of the address to be diagnosed next in the "patrol diagnosis address" field. Similarly, when the connected drive is an SSD, the command issuing unit 31 stores the information acquired by issuing the INQUIRY command in the drive information storage table 22 in association with the drive. In the case of SSD, the size of the block, which is a unit for writing to the SSD, is registered in the "NAND block size" field as illustrated in drives # 2 and # 3 of FIG. At this time, if the connected SSD is an SSD corresponding to the SSD information acquisition interface 32, the command issuing unit 31 can acquire the block size by issuing the INQUIRY command. However, if the connected SSD is not the SSD corresponding to the SSD information acquisition interface 32, it may not be possible to acquire the block size by issuing the INQUIRY command. In such a case, the drive control unit 30 refers to the SSD product identification code table 23 described below based on the product identification code (such as SSD Product Identification information) acquired by issuing the INQUIRY command, and refers to the product identification code. Get the block size information corresponding to. Then, the drive control unit 30 registers the block size information acquired from the SSD product identification code table 23 in the "NAND block size" field of the drive information storage table 22.

そして、診断部33は、ドライブの接続時にドライブ情報記憶テーブル22に格納された情報を用いて、パトロール診断を実行する。例えば、ドライブがHDDの場合、診断部33は、ドライブ情報記憶テーブル22を参照して、診断対象のドライブの「パトロール診断アドレス」フィールドからアドレスの値を取得し、当該アドレスに対して診断を行う。診断後、診断部33は、「パトロール診断アドレス」フィールドの値に診断したセクタサイズを加算する。加算後の値は、次回の診断アドレスを示す。 Then, the diagnosis unit 33 executes the patrol diagnosis by using the information stored in the drive information storage table 22 when the drive is connected. For example, when the drive is an HDD, the diagnostic unit 33 refers to the drive information storage table 22 to acquire the value of the address from the "patrol diagnostic address" field of the drive to be diagnosed, and diagnoses the address. .. After the diagnosis, the diagnosis unit 33 adds the diagnosed sector size to the value in the "patrol diagnosis address" field. The value after addition indicates the next diagnostic address.

ドライブがSSDの場合も同様に、診断部33は、ドライブ情報記憶テーブル22を参照して診断対象のドライブの「パトロール診断アドレス」フィールドからアドレスの値を取得し、当該アドレスに対して診断を行う。診断後、診断部33は、「パトロール診断アドレス」フィールドの値にブロックサイズの値を加算する。図2のドライブ#2であれば、今回の診断アドレス10000に512を加算する。加算後の値は、次回の次の診断対象のブロックにおける診断用の1つのアドレスを示す。 Similarly, when the drive is an SSD, the diagnostic unit 33 refers to the drive information storage table 22 to acquire the value of the address from the "patrol diagnostic address" field of the drive to be diagnosed, and makes a diagnosis for the address. .. After the diagnosis, the diagnosis unit 33 adds the block size value to the value in the "patrol diagnosis address" field. In the case of drive # 2 in FIG. 2, 512 is added to the diagnostic address 10000 this time. The value after addition indicates one address for diagnosis in the next block to be diagnosed next time.

次にSSD製品識別コードテーブル23について説明する。
図3は、本発明の一実施形態によるSSD製品識別コードテーブルの一例を示す図である。
図3に例示するように、SSD製品識別コードテーブル23には、SSDの製品識別コードとNANDブロックサイズ(SSDのブロックサイズ)とが対応付けて格納されている。これらの情報は、市場に提供されている、あるいは、提供されていた、様々な世代の様々なSSD製品についての識別情報とブロックサイズの情報が収集されて登録されたものである。SSD製品識別コードテーブル23は、予めキャッシュメモリ20の構成情報記憶領域21に格納されている。SSD製品識別コードテーブル23を参照すると、SSDの識別情報が分かっていれば、そのSSDのブロックサイズの情報を取得することができる。従って、SSDのパトロール診断を行う際に、ブロック単位での診断を行うことができる。
Next, the SSD product identification code table 23 will be described.
FIG. 3 is a diagram showing an example of an SSD product identification code table according to an embodiment of the present invention.
As illustrated in FIG. 3, the SSD product identification code table 23 stores the SSD product identification code and the NAND block size (SSD block size) in association with each other. This information is a collection and registration of identification information and block size information about various SSD products of various generations provided or provided on the market. The SSD product identification code table 23 is stored in advance in the configuration information storage area 21 of the cache memory 20. With reference to the SSD product identification code table 23, if the SSD identification information is known, the information on the block size of the SSD can be acquired. Therefore, when performing the patrol diagnosis of SSD, the diagnosis can be performed in block units.

次にドライブ情報記憶テーブル22へSSDのブロックサイズ等を登録する処理について説明する。
図4は、本発明の一実施形態によるドライブ構成情報の登録処理の一例を示すフローチャートである。
前提として、キャッシュメモリ20には、ドライブ情報記憶テーブル22とSSD製品識別コードテーブル23が格納されているとする。
まず、ドライブ群40に新しいドライブが挿入される。ドライブ制御部30は、このドライブの挿入を検出する(ステップS101)。ドライブ制御部30は、コマンド発行部31へドライブの構成情報の取得を指示する。すると、コマンド発行部31が、INQUIRYコマンドを、挿入が検出されたドライブへ発行する(ステップS102)。挿入が検出されたドライブは、INQUIRYコマンドに対して自ドライブの構成に関する情報を回答する。ドライブ制御部30は、回答された情報の中から、製品識別コード、ドライブのタイプ、ドライブの容量の情報を、挿入が検出されたドライブ(例えば、ドライブの挿入位置を示すスロット番号)と対応付けてドライブ情報記憶テーブル22に登録する。また、コマンド発行部31は、ドライブ情報記憶テーブル22の「パトロール診断アドレス」フィールドに「0」を登録する(ステップS103)。
Next, a process of registering the SSD block size and the like in the drive information storage table 22 will be described.
FIG. 4 is a flowchart showing an example of a drive configuration information registration process according to an embodiment of the present invention.
As a premise, it is assumed that the drive information storage table 22 and the SSD product identification code table 23 are stored in the cache memory 20.
First, a new drive is inserted into the drive group 40. The drive control unit 30 detects the insertion of this drive (step S101). The drive control unit 30 instructs the command issuing unit 31 to acquire the drive configuration information. Then, the command issuing unit 31 issues an INQUIRY command to the drive in which the insertion is detected (step S102). The drive in which the insertion is detected responds to the INQUIRY command with information regarding the configuration of its own drive. The drive control unit 30 associates the product identification code, the drive type, and the drive capacity information with the drive in which the insertion is detected (for example, the slot number indicating the insertion position of the drive) from the returned information. And register it in the drive information storage table 22. Further, the command issuing unit 31 registers "0" in the "patrol diagnostic address" field of the drive information storage table 22 (step S103).

次にドライブ制御部30は、回答された情報のタイプがSSDかどうかを判定する(ステップS104)。タイプがSSDではない場合(ステップS104;No)、後述するステップS112の処理を行う。タイプがSSDの場合(ステップS104;Yes)、ドライブ制御部30は、コマンド発行部31へSSDのブロックサイズ等の取得を指示する。すると、コマンド発行部31が、SSD情報取得インターフェース32を介して、所定の一般的なSSD情報取得コマンドを、挿入が検出されたドライブへ発行する(ステップS105)。ドライブ制御部30は、このコマンドへの応答がエラー応答かどうかを判定する(ステップS106)。 Next, the drive control unit 30 determines whether or not the type of the returned information is SSD (step S104). When the type is not SSD (step S104; No), the process of step S112 described later is performed. When the type is SSD (step S104; Yes), the drive control unit 30 instructs the command issuing unit 31 to acquire the SSD block size and the like. Then, the command issuing unit 31 issues a predetermined general SSD information acquisition command to the drive in which the insertion is detected via the SSD information acquisition interface 32 (step S105). The drive control unit 30 determines whether the response to this command is an error response (step S106).

SSD情報取得コマンドに対し、エラーが応答された場合(ステップS106;Yes)、ドライブ制御部30は、先にINQUIRYコマンドによって取得したドライブの製品識別コードをドライブ情報記憶テーブル22から読み出す。ドライブ制御部30は、SSD製品識別コードテーブル23を参照し(ステップS107)、読み出した製品識別コードに一致するデータが登録されているかどうか判定する(ステップS108)。 When an error is responded to the SSD information acquisition command (step S106; Yes), the drive control unit 30 reads the product identification code of the drive previously acquired by the INQUIRY command from the drive information storage table 22. The drive control unit 30 refers to the SSD product identification code table 23 (step S107), and determines whether or not data matching the read product identification code is registered (step S108).

一致する製品識別コードが登録されている場合(ステップS108;No)、ドライブ制御部30は、製品識別コードが一致したレコードの「NANDブロックサイズ」フィールドの値を読み出して(図3)、その値を、ドライブ情報記憶テーブル22における対象となる製品識別コードが格納されたデータ(レコード)の「NANDブロックサイズ」フィールドに登録する(ステップS111)。 When the matching product identification code is registered (step S108; No), the drive control unit 30 reads out the value in the "NAND block size" field of the record in which the product identification code matches (FIG. 3), and the value thereof. Is registered in the "NAND block size" field of the data (record) in which the target product identification code is stored in the drive information storage table 22 (step S111).

一致する製品識別コードが登録されていない場合(ステップS108;Yes)、ドライブ制御部30は、ドライブ情報記憶テーブル22における対象となる製品識別コードが格納されたレコードの「NANDブロックサイズ」フィールドに「無効」を登録する(ステップS109)。 When the matching product identification code is not registered (step S108; Yes), the drive control unit 30 sets "NAND block size" in the "NAND block size" field of the record in which the target product identification code is stored in the drive information storage table 22. "Invalid" is registered (step S109).

また、SSD情報取得コマンドに対し、エラーが応答されなかった場合(ステップS106;No)、ドライブ制御部30は、SSD情報取得コマンドによって取得したブロックサイズの情報を、ドライブ情報記憶テーブル22における対象となる製品識別コードが格納されたレコードの「NANDブロックサイズ」フィールドに登録する(ステップS110)。 Further, when an error is not responded to the SSD information acquisition command (step S106; No), the drive control unit 30 sets the block size information acquired by the SSD information acquisition command as a target in the drive information storage table 22. The product identification code is registered in the "NAND block size" field of the record (step S110).

以上の処理により、ドライブ制御部30は、挿入が検出されたドライブに関する構成情報のドライブ情報記憶テーブル22への登録を完了する(ステップS112)。このようにドライブの挿入時にドライブの構成情報の登録を行うので、ドライブ情報記憶テーブル22には、ドライブ群40に含まれるドライブ#0〜#nに関する構成情報がすべて登録される。特にドライブがSSDの場合、ドライブ情報記憶テーブル22には、ブロックサイズが取得できなかった場合を除き、ブロックサイズの情報が格納されている。診断部33は、このブロックサイズの情報を用いて、効率よくSSDのパトロール診断を行う。 By the above processing, the drive control unit 30 completes the registration of the configuration information regarding the drive in which the insertion is detected in the drive information storage table 22 (step S112). Since the drive configuration information is registered when the drive is inserted in this way, all the configuration information related to drives # 0 to # n included in the drive group 40 is registered in the drive information storage table 22. In particular, when the drive is an SSD, the block size information is stored in the drive information storage table 22 unless the block size cannot be acquired. The diagnosis unit 33 uses this block size information to efficiently perform SSD patrol diagnosis.

次に診断部33によるパトロール診断処理の流れについて説明する。
図5は、本発明の一実施形態によるパトロール診断処理の一例を示すフローチャートである。
診断部33は、例えば、所定の周期で所定回数だけドライブ#0〜#nに対するパトロール診断を行うものとする。図5のフローチャートは、そのうちの1回のパトロール診断処理を示している。例えば、診断部33は、所定の周期で、以下に説明する処理を所定回数だけ行ってもよい。
パトロール診断を行うべきタイミングが到来すると、まず、診断部33は、ドライブ情報記憶テーブル22を参照し(ステップS201)、診断アドレスを取得する(ステップS202)。具体的には、診断部33は、ドライブ情報記憶テーブル22の診断対象ドライブにおける「パトロール診断アドレス」フィールドの値を読み出す。
Next, the flow of the patrol diagnosis process by the diagnosis unit 33 will be described.
FIG. 5 is a flowchart showing an example of patrol diagnosis processing according to an embodiment of the present invention.
For example, the diagnosis unit 33 shall perform patrol diagnosis for drives # 0 to # n a predetermined number of times in a predetermined cycle. The flowchart of FIG. 5 shows one of the patrol diagnostic processes. For example, the diagnostic unit 33 may perform the process described below a predetermined number of times in a predetermined cycle.
When the timing for performing the patrol diagnosis arrives, the diagnosis unit 33 first refers to the drive information storage table 22 (step S201) and acquires the diagnosis address (step S202). Specifically, the diagnosis unit 33 reads out the value of the "patrol diagnosis address" field in the drive to be diagnosed in the drive information storage table 22.

次に診断部33は、診断アドレスに対する診断を実施する(ステップS203)。具体的には、診断部33は、コマンド発行部31へ、診断アドレスに対する診断用コマンドの発行を指示する。コマンド発行部31は、指示されたアドレスへリードコマンド又はベリファイコマンドを発行する。診断部33は、発行されたコマンドに対する応答を取得して、診断アドレスが故障しているかどうかを判定する。例えば、診断部33は、コマンドに対して所定時間内に応答がある場合、故障していないと判定する。また、例えば、診断部33は、所定時間内に応答が無い場合やエラーコードが返ってきた場合、当該アドレスは故障していると判定する。 Next, the diagnosis unit 33 performs a diagnosis on the diagnosis address (step S203). Specifically, the diagnostic unit 33 instructs the command issuing unit 31 to issue a diagnostic command to the diagnostic address. The command issuing unit 31 issues a read command or a verify command to the instructed address. The diagnostic unit 33 acquires a response to the issued command and determines whether or not the diagnostic address is out of order. For example, if the diagnosis unit 33 responds to the command within a predetermined time, it determines that there is no failure. Further, for example, if there is no response within a predetermined time or an error code is returned, the diagnosis unit 33 determines that the address is out of order.

今回の診断アドレスに対する診断を終えると、診断部33は、次回診断するアドレスを決定する。まず、診断部33は、ドライブ情報記憶テーブル22を参照し、ブロックサイズの情報を取得する。具体的には、診断部33は、ドライブ情報記憶テーブル22の診断対象ドライブにおける「NANDブロックサイズ」フィールドの値を参照する。診断部33は、ブロックサイズの登録の有無を判定する(ステップS204)。ブロックサイズの登録が有る場合とは、ドライブがSSDで、且つブロックサイズを取得できた場合である。ブロックサイズの登録が無い場合とは、ドライブがHDD、又は、ドライブがSSD且つブロックサイズが取得できなかった場合である。 After completing the diagnosis for the current diagnosis address, the diagnosis unit 33 determines the address to be diagnosed next time. First, the diagnostic unit 33 refers to the drive information storage table 22 and acquires block size information. Specifically, the diagnostic unit 33 refers to the value in the "NAND block size" field in the drive to be diagnosed in the drive information storage table 22. The diagnosis unit 33 determines whether or not the block size is registered (step S204). The case where the block size is registered is the case where the drive is SSD and the block size can be acquired. The case where the block size is not registered is the case where the drive is an HDD or the drive is an SSD and the block size cannot be acquired.

(SSDでブロックサイズが判明している場合)
ブロックサイズの登録が有る場合(ステップS204;Yes)、診断部33は、ブロックサイズ(「NANDブロックサイズ」フィールドの値)をドライブ情報記憶テーブル22から、読み出して取得する(ステップS206)。診断部33は、診断アドレスをブロックアドレス分進める(ステップS207)。例えば、診断部33は、今回の診断アドレスに、取得したブロックサイズを加算する。加算後の値は、次のブロックに含まれるアドレスである。診断部33は、加算後の値で「パトロール診断アドレス」フィールドの値を更新する。更新後の値は、次回の診断対象のアドレスである。
(If the block size is known by SSD)
When the block size is registered (step S204; Yes), the diagnostic unit 33 reads the block size (value in the “NAND block size” field) from the drive information storage table 22 and acquires it (step S206). The diagnostic unit 33 advances the diagnostic address by the block address (step S207). For example, the diagnostic unit 33 adds the acquired block size to the diagnostic address this time. The value after addition is the address included in the next block. The diagnostic unit 33 updates the value in the "patrol diagnostic address" field with the added value. The updated value is the address to be diagnosed next time.

(HDD、又は、SSDでブロックサイズ不明の場合)
ブロックサイズの登録が無い場合(ステップS204;No)、診断部33は、診断アドレスを診断セクタ分進める(ステップS205)。例えば、診断部33は、今回の診断アドレスに、今回診断を行ったセクタ分のアドレスを加算する。例えば、1セクタ分の診断を行ったのであれば、1セクタ分進めた次セクタのアドレスを算出する。診断部33は、算出した値で「パトロール診断アドレス」フィールドの値を更新する。更新後の値は、次回の診断対象のアドレスである。
(When the block size is unknown on the HDD or SSD)
When the block size is not registered (step S204; No), the diagnostic unit 33 advances the diagnostic address by the diagnostic sector (step S205). For example, the diagnosis unit 33 adds the addresses of the sectors diagnosed this time to the diagnosis address of this time. For example, if the diagnosis for one sector is performed, the address of the next sector advanced by one sector is calculated. The diagnostic unit 33 updates the value in the "Patrol Diagnostic Address" field with the calculated value. The updated value is the address to be diagnosed next time.

なお、ステップS205、S207の処理で、パトロール診断アドレスがドライブ情報記憶テーブル22のドライブ容量(「容量」フィールドの値)よりも大きい値であれば、診断部33は、「パトロール診断アドレス」フィールドに「0」を格納して、次回の診断は先頭から実施する。 If the patrol diagnosis address is larger than the drive capacity (value in the "capacity" field) of the drive information storage table 22 in the processes of steps S205 and S207, the diagnosis unit 33 puts the patrol diagnosis address in the "patrol diagnosis address" field. "0" is stored and the next diagnosis is performed from the beginning.

以上の処理により、診断部33は、今回の診断を完了する(ステップS208)。
このように診断部33は、診断対象がSSDでブロックサイズが判明している場合、ブロック単位で診断を行うことができるので、1回当たりの診断を短時間で行うことができる。また、ブロックの代表アドレスへ1回診断処理を行うだけでよいので、SSDの全領域に渡る診断についても短時間で完了することができる。また、診断対象がSSDでブロックサイズが不明な場合や診断対象がHDDの場合でも、一般的なパトロール診断と同様に診断を行うことができるので、ドライブ群40に含まれるドライブのタイプに関わらず、パトロール診断を行うことができる。
By the above processing, the diagnosis unit 33 completes the current diagnosis (step S208).
As described above, when the diagnosis target is SSD and the block size is known, the diagnosis unit 33 can perform the diagnosis in block units, so that each diagnosis can be performed in a short time. Further, since the diagnosis process only needs to be performed once for the representative address of the block, the diagnosis covering the entire area of the SSD can be completed in a short time. Further, even when the diagnosis target is SSD and the block size is unknown or the diagnosis target is HDD, the diagnosis can be performed in the same manner as the general patrol diagnosis, so that the diagnosis can be performed regardless of the drive type included in the drive group 40. , Patrol diagnosis can be performed.

複数のドライブを搭載し、それらをRAID構成で管理しているディスクアレイ装置に大容量ドライブが含まれる場合、全アドレスの診断に時間を要し、診断処理の完了前に故障が発生するというリスクがある。これに対し、本実施形態によれば、ドライブにSSDが含まれている場合、当該SSDのNANDチップの構成情報を取得し、記憶する領域を設ける。そして、パトロール診断を行うときには、ブロックごとに1つのアドレスの診断だけを行う処理を各ブロックに対して行う。これにより、SSDが大容量ドライブであっても短時間で効率的に全領域に対するパトロール診断を完了することができる。従って、大容量ドライブの場合に起こりがちな全アドレスの診断に時間を要し、診断処理の完了前に故障が発生するというリスクを低減し、早期な故障検知が可能になる。 If a disk array device that has multiple drives and manages them in a RAID configuration contains a large capacity drive, it takes time to diagnose all addresses, and there is a risk that a failure will occur before the diagnostic process is completed. There is. On the other hand, according to the present embodiment, when the drive includes an SSD, an area for acquiring and storing the configuration information of the NAND chip of the SSD is provided. Then, when performing patrol diagnosis, a process of diagnosing only one address for each block is performed for each block. As a result, even if the SSD is a large-capacity drive, the patrol diagnosis for the entire area can be efficiently completed in a short time. Therefore, it takes time to diagnose all addresses, which tends to occur in the case of a large-capacity drive, the risk of failure occurring before the diagnosis process is completed is reduced, and early failure detection becomes possible.

図8は、本発明の一実施形態における制御装置の最小構成を示す図である。
図示するように制御装置200は、少なくとも診断部201を備える。
診断部201は、ドライブ(記憶装置)に対してパトロール診断を行う機能を有している。診断部201は、対象の記憶装置がSSDの場合、ブロック単位でパトロール診断を行う。例えば、SSDがブロック0〜ブロックnで構成されている場合、診断部201は、ブロック0の任意のアドレスに対して診断を行い、ブロック0が故障しているかどうかを判定する。すると診断部201は、次にブロック1の任意のアドレスに対して1回の診断を行い、故障検知を行う。以下、同様に診断部201は、ブロック2〜nに対して、それぞれのブロックを代表するアドレスを任意に選択して、各ブロックに対して1回だけ診断を行う。これにより、SSDが大容量で、且つ、多数のSSDを対象にパトロール診断を行わなければならない状況でも、ストレージの全領域について1アドレスずつ全アドレスに対して診断を行う場合と比較して大幅に診断時間を削減することができる。
図1の構成と対比すると、制御装置200はドライブ制御部30、診断部201は診断部33に相当する。
FIG. 8 is a diagram showing a minimum configuration of a control device according to an embodiment of the present invention.
As shown in the figure, the control device 200 includes at least a diagnostic unit 201.
The diagnosis unit 201 has a function of performing a patrol diagnosis on the drive (storage device). When the target storage device is SSD, the diagnosis unit 201 performs patrol diagnosis in block units. For example, when the SSD is composed of blocks 0 to block n, the diagnostic unit 201 performs a diagnosis on an arbitrary address of block 0 and determines whether or not block 0 is out of order. Then, the diagnosis unit 201 next performs a diagnosis once for an arbitrary address of the block 1 and detects a failure. Hereinafter, similarly, the diagnosis unit 201 arbitrarily selects an address representing each block for the blocks 2 to n, and makes a diagnosis only once for each block. As a result, even in a situation where the SSD has a large capacity and patrol diagnosis must be performed for a large number of SSDs, the diagnosis is significantly performed for all addresses one by one for the entire storage area. Diagnosis time can be reduced.
In comparison with the configuration of FIG. 1, the control device 200 corresponds to the drive control unit 30, and the diagnosis unit 201 corresponds to the diagnosis unit 33.

その他、本発明の趣旨を逸脱しない範囲で、上記した実施の形態における構成要素を周知の構成要素に置き換えることは適宜可能である。また、この発明の技術範囲は上記の実施形態に限られるものではなく、本発明の趣旨を逸脱しない範囲において種々の変更を加えることが可能である。
例えば、SSDに対する診断は、各ブロックに対して少なくとも1回(1アドレス)行えばよいが、その回数は1回に限定されない。パトロール診断の実行時間を短縮できる効果が得られる回数であればよい。例えば、各ブロックに対して2〜3回の診断を行ってもよい。また、ブロックに対する診断を行うアドレスは、必ずしも、今回診断を行ったアドレスにブロックサイズを加算した値に限定されない。例えば、今回診断を行ったアドレスにブロックサイズを加算した値から1を引いた値であってもよい。また、INQUIRYコマンドの発行によるドライブ情報記憶テーブル22へのドライブの構成情報の登録は、ドライブ挿入時に限定されない。なお、コマンド発行部31は、構成情報取得部の一例である。ドライブ#0〜#nは、記憶装置の一例である。
In addition, it is possible to replace the components in the above-described embodiment with well-known components as appropriate without departing from the spirit of the present invention. Further, the technical scope of the present invention is not limited to the above-described embodiment, and various modifications can be made without departing from the spirit of the present invention.
For example, the diagnosis for SSD may be performed at least once (one address) for each block, but the number of times is not limited to one. Any number of times can be used as long as the effect of shortening the execution time of the patrol diagnosis can be obtained. For example, each block may be diagnosed 2-3 times. Further, the address for diagnosing the block is not necessarily limited to the value obtained by adding the block size to the address for which the diagnosis is performed this time. For example, it may be a value obtained by subtracting 1 from the value obtained by adding the block size to the address diagnosed this time. Further, the registration of the drive configuration information in the drive information storage table 22 by issuing the INQUIRY command is not limited to the time when the drive is inserted. The command issuing unit 31 is an example of a configuration information acquisition unit. Drives # 0 to # n are examples of storage devices.

100・・・情報処理システム
1a,1b,〜1m・・・ホスト装置
1・・・ディスクアレイ装置
10・・・ホスト制御部
20・・・キャッシュメモリ
21・・・構成情報記憶領域
22・・・ドライブ情報記憶テーブル
23・・・SSD製品識別コードテーブル
24・・・データキャッシュ領域
30・・・ドライブ制御部
31・・・コマンド発行部
32・・・SSD情報取得インターフェース
33、201・・・診断部
40・・・ドライブ群
200・・・制御装置
100 ... Information processing system 1a, 1b, ~ 1m ... Host device 1 ... Disk array device 10 ... Host control unit 20 ... Cache memory 21 ... Configuration information storage area 22 ... Drive information storage table 23 ... SSD product identification code table 24 ... Data cache area 30 ... Drive control unit 31 ... Command issuing unit 32 ... SSD information acquisition interface 33, 201 ... Diagnosis unit 40 ... Drive group 200 ... Control device

Claims (8)

記憶装置に対するパトロール診断を行う機能を有し、診断対象の記憶装置がSSDの場合、ブロック単位でパトロール診断を行う診断部と、
前記記憶装置にコマンドを発行し、前記記憶装置がSSDであるかHHDであるかを示す前記記憶装置のタイプと、識別情報と、容量とを取得し、前記タイプがSSDの場合、さらに前記SSDを構成するブロックのブロックサイズを取得するコマンドを発行して前記ブロックサイズの情報を取得する構成情報取得部と、
前記記憶装置の識別情報と、前記タイプと、前記タイプがSSDの場合に当該SSDのブロックサイズの情報と、前記容量と、診断対象のアドレスとを対応付けて記憶するドライブ情報記憶テーブルと、
前記SSDの識別情報と前記ブロックサイズとを対応付けて記憶する製品識別コードテーブルと、
前記ドライブ情報記憶テーブルに前記識別情報と前記ブロックサイズと前記容量とを登録する制御部と、
を備え、
前記制御部は、
前記構成情報取得部が取得した前記識別情報、前記ブロックサイズおよび前記容量と、所定の前記診断対象のアドレスと、を前記ドライブ情報記憶テーブルに登録し、
前記構成情報取得部によって前記ブロックサイズが取得できなかった場合、前記構成情報取得部が取得した前記識別情報に基づいて前記製品識別コードテーブルを参照し、当該識別情報に対応する前記ブロックサイズを取得して、前記構成情報取得部が取得した前記識別情報と前記容量とともに、取得した前記ブロックサイズを前記ドライブ情報記憶テーブルに登録し、
前記診断部は、診断対象の前記記憶装置がSSDの場合、診断対象の前記記憶装置の前記識別情報に対応する前記ブロックサイズを前記ドライブ情報記憶テーブルから読み出し、当該ブロックサイズに基づいて、ブロック単位で前記SSDのパトロール診断を行う、
制御装置。
When the storage device to be diagnosed is SSD, it has a function to perform patrol diagnosis for the storage device, and a diagnostic unit that performs patrol diagnosis in block units .
A command is issued to the storage device to acquire the storage device type, identification information, and capacity indicating whether the storage device is SSD or HHD. If the storage device is SSD, the SSD is further obtained. A configuration information acquisition unit that issues a command to acquire the block size of the blocks that make up the block and acquires the block size information.
A drive information storage table that stores the identification information of the storage device, the type, the block size information of the SSD when the type is SSD, the capacity, and the address to be diagnosed in association with each other.
A product identification code table that stores the SSD identification information in association with the block size, and
A control unit that registers the identification information, the block size, and the capacity in the drive information storage table.
Equipped with
The control unit
The identification information, the block size and the capacity acquired by the configuration information acquisition unit, and the predetermined address to be diagnosed are registered in the drive information storage table.
When the block size cannot be acquired by the configuration information acquisition unit, the product identification code table is referred to based on the identification information acquired by the configuration information acquisition unit, and the block size corresponding to the identification information is acquired. Then, the acquired block size is registered in the drive information storage table together with the identification information and the capacity acquired by the configuration information acquisition unit.
When the storage device to be diagnosed is an SSD, the diagnostic unit reads the block size corresponding to the identification information of the storage device to be diagnosed from the drive information storage table, and blocks units based on the block size. Perform the patrol diagnosis of the SSD in
Control device.
診断対象の前記記憶装置がSSDの場合、前記診断部は、前記ブロック内の少なくとも1つのアドレスに対して発行された診断用のコマンドに対する応答に基づいて当該ブロックに対する診断を行い、次の診断時には、他のブロック内の少なくとも1つのアドレスに基づいて、当該他のブロックに対する診断を行う、
請求項1に記載の制御装置。
When the storage device to be diagnosed is an SSD, the diagnostic unit makes a diagnosis for the block based on a response to a diagnostic command issued to at least one address in the block, and makes a diagnosis for the block at the time of the next diagnosis. , Make a diagnosis for the other block based on at least one address in the other block.
The control device according to claim 1.
診断対象の前記記憶装置がSSDの場合、前記制御部は、今回診断したアドレスに前記ブロックサイズの値を加算して、次の診断時における診断対象のアドレスを決定し、当該アドレスを前記ドライブ情報記憶テーブルの前記診断対象のアドレスに登録する、
請求項2に記載の制御装置。
When the storage device to be diagnosed is an SSD, the control unit adds the value of the block size to the address diagnosed this time, determines the address to be diagnosed at the time of the next diagnosis, and uses the address as the drive information. Register at the address to be diagnosed in the storage table,
The control device according to claim 2.
診断対象の前記記憶装置がSSDであって、前記制御部が、前記製品識別コードテーブルを参照して前記ブロックサイズを取得できなかった場合、今回診断したアドレスに今回診断を行ったセクタ分を加算して、次の診断時における診断対象のアドレスを決定し、当該アドレスを前記ドライブ情報記憶テーブルの前記診断対象のアドレスに登録する、If the storage device to be diagnosed is an SSD and the control unit cannot obtain the block size by referring to the product identification code table, the sector portion diagnosed this time is added to the address diagnosed this time. Then, the address of the diagnosis target at the time of the next diagnosis is determined, and the address is registered in the diagnosis target address of the drive information storage table.
請求項1から請求項3の何れか1項に記載の制御装置。The control device according to any one of claims 1 to 3.
前記ドライブ情報記憶テーブルの前記診断対象のアドレスに登録する次回の診断に係るアドレスが、前記容量より大きい場合、前記制御部は、前記ドライブ情報記憶テーブルの前記診断対象のアドレスに0を登録する、When the address related to the next diagnosis to be registered in the diagnosis target address of the drive information storage table is larger than the capacity, the control unit registers 0 in the diagnosis target address of the drive information storage table.
請求項3または請求項4に記載の制御装置。The control device according to claim 3 or 4.
前記診断部は、診断対象の前記記憶装置の識別情報に基づいて、前記ドライブ情報記憶テーブルを参照し、
前記記憶装置がHDDの場合には、診断対象のアドレスを1セクタずつ進めて前記パトロール診断を行う、
請求項1から請求項5の何れか1項に記載の制御装置。
The diagnostic unit refers to the drive information storage table based on the identification information of the storage device to be diagnosed.
When the storage device is an HDD, the patrol diagnosis is performed by advancing the address to be diagnosed one sector at a time.
The control device according to any one of claims 1 to 5.
複数の記憶装置と、
請求項1から請求項6の何れか1項に記載の制御装置と、
を備えるディスクアレイ装置。
With multiple storage devices
The control device according to any one of claims 1 to 6, and the control device.
A disk array device equipped with.
記憶装置に対するパトロール診断を行う機能を有する制御装置によって実行されるパトロール診断方法であって、It is a patrol diagnosis method executed by a control device having a function of performing patrol diagnosis for a storage device.
前記記憶装置にコマンドを発行し、前記記憶装置がSSDであるかHHDであるかを示す前記記憶装置のタイプ、識別情報、容量を取得し、前記タイプがSSDの場合、さらに前記SSDを構成するブロックのブロックサイズを取得するコマンドを発行して前記ブロックサイズの情報を取得するステップと、A command is issued to the storage device to acquire the type, identification information, and capacity of the storage device indicating whether the storage device is an SSD or an HHD. If the storage device is an SSD, the SSD is further configured. The step of issuing a command to acquire the block size of the block and acquiring the block size information, and
前記記憶装置の識別情報と、前記タイプと、前記タイプがSSDの場合に当該SSDのブロックサイズの情報と、前記容量と、診断対象のアドレスとを対応付けて記憶するドライブ情報記憶テーブルに、前記取得するステップで取得した前記識別情報、前記ブロックサイズおよび前記容量と、所定の前記診断対象のアドレスとを登録するステップと、In the drive information storage table that stores the identification information of the storage device, the type, the block size information of the SSD when the type is SSD, the capacity, and the address to be diagnosed in association with each other. A step of registering the identification information, the block size and the capacity acquired in the acquisition step, and a predetermined address to be diagnosed.
前記取得するステップによって前記ブロックサイズが取得できなかった場合、前記取得するステップで取得した前記識別情報に基づいて、前記SSDの識別情報と前記ブロックサイズとを対応付けて記憶する製品識別コードテーブルを参照し、当該識別情報に対応する前記ブロックサイズを取得して、前記取得するステップで取得した前記識別情報と前記容量とともに、取得した前記ブロックサイズを前記ドライブ情報記憶テーブルに登録するステップと、When the block size cannot be acquired by the acquisition step, a product identification code table for storing the SSD identification information and the block size in association with each other based on the identification information acquired in the acquisition step is stored. A step of acquiring the block size corresponding to the identification information and registering the acquired block size in the drive information storage table together with the identification information and the capacity acquired in the acquisition step.
診断対象の前記記憶装置がSSDの場合、診断対象の前記記憶装置の前記識別情報に対応する前記ブロックサイズを前記ドライブ情報記憶テーブルから読み出し、当該ブロックサイズに基づいて、ブロック単位で前記SSDのパトロール診断を行うステップと、When the storage device to be diagnosed is an SSD, the block size corresponding to the identification information of the storage device to be diagnosed is read from the drive information storage table, and the SSD patrol is performed in block units based on the block size. Steps to make a diagnosis and
を有するパトロール診断方法。Patrol diagnostic method having.
JP2019004645A 2019-01-15 2019-01-15 Control device, disk array device and patrol diagnostic method Active JP6978084B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019004645A JP6978084B2 (en) 2019-01-15 2019-01-15 Control device, disk array device and patrol diagnostic method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019004645A JP6978084B2 (en) 2019-01-15 2019-01-15 Control device, disk array device and patrol diagnostic method

Publications (2)

Publication Number Publication Date
JP2020113132A JP2020113132A (en) 2020-07-27
JP6978084B2 true JP6978084B2 (en) 2021-12-08

Family

ID=71667084

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019004645A Active JP6978084B2 (en) 2019-01-15 2019-01-15 Control device, disk array device and patrol diagnostic method

Country Status (1)

Country Link
JP (1) JP6978084B2 (en)

Also Published As

Publication number Publication date
JP2020113132A (en) 2020-07-27

Similar Documents

Publication Publication Date Title
TWI599946B (en) Stripe mapping in memory
TWI428737B (en) Semiconductor memory device
JP5768587B2 (en) Storage system, storage control device, and storage control method
US8578242B1 (en) Data storage device employing seed array for data path protection
JP4901968B2 (en) Semiconductor memory device
US8397107B1 (en) Data storage device employing data path protection using both LBA and PBA
US8266501B2 (en) Stripe based memory operation
US10120769B2 (en) Raid rebuild algorithm with low I/O impact
US8589726B2 (en) System and method for uncovering data errors
CN103577111B (en) Dynamic independent redundancy array storage system and method based on nonvolatile memory
US9104604B2 (en) Preventing unrecoverable errors during a disk regeneration in a disk array
US8074113B2 (en) System and method for data protection against power failure during sector remapping
CN101840360A (en) Rapid reconstruction method and device of RAID (Redundant Array of Independent Disk) system
JP4114877B2 (en) Apparatus, method, and program for detecting illegal data
US20130166991A1 (en) Non-Volatile Semiconductor Memory Device Using Mats with Error Detection and Correction and Methods of Managing the Same
KR20140086223A (en) Parity re-synchronization sturcture of disk array and the method thereof
CN111816239B (en) Disk detection method and device, electronic equipment and machine-readable storage medium
JP4454204B2 (en) Disk array control device and method, and disk array control program
TW201329701A (en) Automatic remapping in redundant array of independent disks and related raid
US9244792B1 (en) Disk-media-error detection and correction
JP6978084B2 (en) Control device, disk array device and patrol diagnostic method
US20140380090A1 (en) Storage control device and storage control method
JP2010536112A (en) Data storage method, apparatus and system for recovery of interrupted writes
JP4572859B2 (en) Cache memory control device, method and program, and disk array device
US20100251013A1 (en) Method for processing bad block in redundant array of independent disks

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200513

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210426

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210518

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210623

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: 20211012

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211104

R150 Certificate of patent or registration of utility model

Ref document number: 6978084

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150