Checking for proper locations of storage devices in a storage device array.
1 claim: 1 independent, 0 dependent
- 1それぞれ異なるデバイス識別子を格納する複数の記憶デバイスと、 前記 複数の記憶デバイスに対して、記憶情報の読み出し又は書込みを指示するアレイコントロールモジュールと、を有し、前記複数の記憶デバイスとアレイコントロールモジュールとは、取り外し可能に接続され、前記アレイコントロールモジュールは、前記複数の記憶デバイスの一部または全部を一つの論理的ボリュームとして管理し、更に、 前記 論理的ボリュームを構成する複数の記憶デバイスに記憶情報を分散して格納し又は 前記 論理的ボリュームを構成する複数の記憶デバイスに分散して格納されている記憶情報を読み出して結合するアレイ記憶システムであって、前記複数の記憶デバイスは、前記論理 的ボ リュームを構成する複数の記憶デバイスに格納されているデバイス識別子と 、前記 論理 的ボ リュームを構成する各記憶デバイスの位置関係とを関連付けた論理的識別子を有し、前記論理的ボリュームを構成すべき各記憶デバイスの中に、その論理的ボリュームを構成する記憶デバイスではないものが含まれていることを、前記デバイス識別子と 、 前記論理的識別子 から得られるデバイス識別子 とを比較することにより決定する 決定 手段と、前記決定手段が、一つの論理的ボリュームの中に 前記 論理 的 ボリュームを構成すべきでない記憶デバイスが含まれていることを決定した場合に その 事象を通報する通報手段と、を備えてなるアレイ記憶システム。
52 paragraphs, as filed
INDUSTRIAL APPLICABILITY The present invention relates to an array storage system, and in particular, in a storage device array including a plurality of storage devices constituting a logical volume, each storage device is a correct member of the logical volume. It relates to an array storage system with an array control module that determines whether or not it is present. In the following description, the storage device is also referred to as a storage device.
[0002] Conventional technology A storage system as a large-scale peripheral device is advantageous for the application of software to a large number of businesses and technologies. In one form of such a system, storage is achieved by distributing the data to be stored to a number of independent storage devices that co-define the storage device array. Such individual storage devices, among other devices, may include magnetic and optical disk drives. Such a storage system has a large storage capacity. Together with the host system, these storage systems contribute to high data transmission rates. Data reliability is also achieved by using storage arrays.
[0003] Large storage capacity is, for example,<u style="single">5.25</u>This is achieved by using a number of relatively inexpensive storage devices, such as drive devices for inch magnetic disks. High data transmission speed is the logic of one or more individual storage devices<u style="single">Bo</u>Achieved by forming the system so that it is grouped into lums or groups. logic<u style="single">Bo</u>Rume appears in the host system as a single large storage unit, even though it consists of many physically independent storage devices. The storage array is typically one logic<u style="single">Bo</u>All storage devices in the rum include hardware and software to allow them to be associated simultaneously in data transmission. That is, each storage device has the logic.<u style="single">Bo</u>Reading and writing to Ryumu is the logic<u style="single">Bo</u>It has the only data connection as achieved by reading and writing to each storage device within the rum. This allows large amounts of data to be quickly read from or written to the storage array. High data reliability means that one or more special storages where hardware elements and software processing for redundant storage data, such as the use of parity information, can be used as a replacement for a failed storage device. It can be achieved by using it with the device. The data in the failed device is reconstructed by using the parity information and transferred to the replaced storage device until the failed device is replaced.
The requirement that arises in connection with the storage array is that the correct storage order or arrangement for each logical volume must be known and maintained. The storage array is a storage device in the conversion between a single stream of data that can only be translated by the host system and multiple parallel streams of data from or to a logical volume. Use this order or sequence. This ordering of storage transforms the data regenerated from the storage array into a single stream of information acceptable to the host system via parallel data transfer from the storage on the logical volume. Allow that.
[0005] There are a number of system maintenance situations that can occur and must be compensated for, as individual storage devices may need to be replaced. For example, a storage device that is part of one logical volume may accidentally be placed in another logical volume, in which case the data in that one logical volume cannot be read. As another example, a storage device within a logical volume may be illegally converted so that the data supplied by that storage device is no longer accepted through the correct data connection and therefore can be converted correctly. Absent. More specifically, it is known that continuously transferred data bytes are stored on another disk. For example, for a fixed size data block, byte 1 is stored on disk 1, byte 2 is stored on disk 2, byte n is stored on disk n, byte (n + 1) is stored on disk 1, and so on. Is remembered in. In order to properly recollect the stored data from multiple disks, it is important that the same disk with the distributed data be accessed. If, for example, disk 2 is replaced by another disk that does not have the stored data of disk 2, there arises the problem that the data cannot be accurately recollected by different data from such disk. Similarly, if the physical positions and connections of disks 1 and 2 are switched, the data cannot be accurately recollected.
[0006] The problem to be solved by the present invention is that there is a lack of a mechanism for automatically determining whether or not each storage device in the storage device array is located in the correct position (location). It occurs due to. Based on such a technical background, the present invention provides a processing procedure that can confirm that the above-mentioned array storage devices are logically grouped and are in the correct alignment state within each logical volume. It is the one that was made.
[Means for Solving the Problems] In order to solve the problems, the present invention includes an array control module for confirming that each storage device is in the correct physical position in the storage device array. An array storage system is provided. That is, it is determined whether each storage device is installed in the correct physical position with respect to the logical volume to which it belongs. Although the present invention has applicability to disk drives, it can also be associated with other storage devices.
[0008] That is, what is provided by the present invention includes a plurality of storage devices each storing different device identifiers, and a plurality of storage devices.<u style="single">Multiple</u>It has an array control module that instructs a number of storage devices to read or write stored information.<u style="single">Multiple</u>The number storage device and array control module are detachably connected and<u style="single">A</u>The ray control module is<u style="single">Multiple</u>Manage some or all of the number storage devices as one logical volume, and more<u style="single">Theory</u>Storage information is distributed and stored in multiple storage devices that make up a rational volume, or<u style="single">Theory</u>An array storage system that reads and combines storage information distributed and stored in multiple storage devices that make up a rational volume.<u style="single">Multiple</u>Number storage device<u style="single">Theory</u>Li<u style="single">Bo</u>Device identifiers stored in multiple storage devices that make up the rum<u style="single">, Theory</u>Li<u style="single">Bo</u>It has a logical identifier associated with the positional relationship of each storage device that makes up the rum.<u style="single">Theory</u>The device identifier and the fact that each storage device that should form a logical volume includes a storage device that is not a storage device that constitutes the logical volume.<u style="single">, Theory</u>Physical identifier<u style="single">Device identifier obtained from</u>Determined by comparing with<u style="single">Decision</u>Means and<u style="single">Decision</u>A fixed means in one logical volume<u style="single">Theory</u>Li<u style="single">Target</u>If you decide that the volume contains storage devices that should not be configured<u style="single">That</u>It is an array storage system provided with a reporting means for reporting an event. A logical identifier is generated for each logical volume in storage and stored in each storage. To do this, the present invention uses a device identifier that is uniquely and permanently associated with each storage device. Device identifier<u style="single">Note</u>It can be read from a memory device (storage device). In a preferred embodiment,<u style="single">De</u>The vise identifier is stored at a known location<u style="single">Record</u>The serial number of the memory device. For a given logical volume<u style="single">Theory</u>Physical identifiers consist of individual device identifiers for the volume. That is, the logical identifier for each storage device on a logical volume is the same and includes a combination of all device identifiers for that logical volume. Logical identifiers also contain control information or bytes that provide information about the status of system operations. As an example, when the data is reconstructed in the replaced storage device,<u style="single">Theory</u>The control byte of the rational identifier contains information indicating that such data has been reconstructed. As a result, power is wasted, and then power includes control bytes.<u style="single">Theory</u>Once recovered by reading the rationale identifier, the system can determine its state prior to wasting power and use that information to restore correct operation.
[0009] Regarding the check of the logical identifier and the device identifier for a certain logical volume, for example, when a predetermined event or condition occurs after power recovery, the logical identifiers of all the storage devices for the logical volume are read out. .. If all the logical identifiers correspond to each other and the correct number of logical identifiers are read, then it is determined that the logical volume has the correct storage device. For each storage device, a comparison between its own device identifier and the corresponding portion or segment of the logical identifier to check if such storage devices are correctly arranged within the logical volume. Is done. If, for each storage device, there is a correspondence between the device identifier and the information detected in a given part of the logical identifier, then each device identifier is in the correct physical position on the logical volume. Is decided. On the other hand, if the correspondence is not established, a message or an error instruction for notifying the user of the lack of the correspondence is generated.
[0010] In addition to checking for correct logical and device identifiers, the present invention also presents each volume.<u style="single">That is, a group of storage devices</u>Logical identification for<u style="single">Child</u>Generate and update. Such updates or writes of logical identifiers occur under certain given conditions or events. For example, to maintain the state of the storage system against recovery from power waste while reconstructing data for the replaced storage device on a particular logical volume, for this particular logical volume. A logical identifier is generated by reading each device identifier, including the device identifier of the replaced storage device. In addition, the control byte of the logical identifier contains information that the data has been reconstructed into the replaced storage device. After the updated logical identifier is generated, each storage device is written to that particular logical volume. It should also be understood that other events or conditions can begin writing or updating logical identifiers, including system operations or commands for which it is important to maintain continuity of their state.
[0011] Based on the above-mentioned outline, many remarkable features according to the present invention can be easily recognized. A check to determine if the correct storage device, such as the disk drive and the disk that accompanies them, is in the correct position after certain conditions or events have occurred, such as when power is being restored. Is done. If the correct storage device is not in the correct physical location for a particular logical volume, a message indicating that a failure has occurred is generated. In addition, a new logical identifier for a logical volume can be updated or written, so that the correct logical identifier is updated in response to the occurrence of an event or condition, such as storage replacement. Is stored in each storage device. Each logical identifier contains a combination of a storage device identifier and control bits that provide information about the operation of the entire system. If power is wasted and then restored, a logical identifier check for a particular logical volume can be made in determining the state of the system when power was wasted. In this way, the tolerance for failures associated with the storage array is further increased.
[0012] Other advantages of the present invention are clarified by the following description made with reference to the accompanying drawings.
[Example] FIG. 1 shows a system block diagram for carrying out the present invention. The system includes a host system 10 that transfers data to and receives data from the array storage system 14 via a data connection with a certain bandwidth. For example, the bandwidth is 4 bytes, the size of the data block is 4096 bytes, and data transfer is performed at a rate of 36 MB / sec. The host system 10 can include one of a number of computer devices having a computer that generates data to and requests data from the array storage system 14. For example, the host system 10 can include a very large capacity optical storage unit together with a processing or computing unit, thus the host system 10 needs to take advantage of the performance of the storage array. Alternatively, the host system 10 may be a network of distributed computers, in which case requests for reading and writing data to and from the array storage system 14 can be made from various computers by network access. Occurs.
[0014] Further, in FIG. 1, the array storage system 14 includes several devices, that is, an array control module (ACM) 18, a plurality of device controllers 20a to 20j, and a corresponding number of storage devices (storage). Device) It is shown to consist of 24a ~ 24j. The array control module 18 controls the entire array storage system 14. In particular, the array control module 18 controls the distribution and recollection of data between the storage device 24 and the host system 10. Each device control 20a to 20j controls reading and writing of data to and from the storage device (storage device) 24a to 24j connected to each device control 20a to 20j. That is, the device controllers 20a-20j determine the exact physical position with respect to the data in the corresponding storage device (storage device) 24a-24j. The storage devices 24a to 24j store the data written for successive use by the host system 10. 1 As a specific example, each storage device is, for example,<u style="single">5.25</u>A disk drive that includes one or more disks, such as an inch magnetic disk drive, but other storage devices can also constitute the array storage system.
[0015] The array control module (ACM) 18 has a function of converting data into and from the data format used by the host system 10. In one embodiment, the host system 10 sends and receives 4 kilobytes of data blocks in parallel via four parallel connections, and the ACM18 converts the data into 512 bytes of 8 blocks. The data is sent in parallel to each device controller 20a to 20h. For example, the first data byte is sent to the device controller 20a and the second data byte is sent to the device controller 20b. In the embodiment shown in FIG. 1, the device controller 20i transmits information to the storage device 24i and stores the parity data generated from the data on the storage devices 24a to 24h. The device controller 20j communicates information with the storage device 24j, and the storage device 24j functions as a spare storage device and is used when one of the other storage devices fails. The ACM18 also includes a processor 32 capable of computing to monitor and control the state of the entire array storage system 14. The status storage unit 36 is also part of the ACM18 and stores status information associated with the array storage system 14 during system operation.
[0016] As an example of the operation of the ACM 18, consider a case where the host system 10 requests the array storage system 14 to write data. The write request is made in a control process executed by processor 32. In this process, a question is asked to the status storage unit 36 to determine if the array storage system 14 is in a state suitable for accepting write requests to be executed. If the write request is granted in this process, the data is written to the array control unit 28 by the host system 10. Status information indicating that the writing process is in progress is written to the status storage unit 36. The data in the array control unit 28 is then converted to the desired data format for distribution to the device controller 20. The control process executed by processor 32 then sends a write command to a given device controller 20. Each device controller 20 ensures that the data assigned to it is written to the corresponding correct storage device 24. Subsequently, a message indicating the completion of the write operation is sent to the control process. The read operation is performed in the same manner, but in this case, the ACM 18 recollects the data read from the predetermined storage device 24 for transfer to the host system 10 in the correct data format.
[0017] Also, FIG. 1 shows a single logical volume 40. The logical volume 40 has a predetermined physical position (location) assigned to the storage devices 24a to 24j, and the physical position is known to the predetermined device controllers 20a to 20j. When writing data to the array storage system 14, data is written only to the logical volume 40. In another embodiment of the array storage system 14, multiple logical volumes are included. In such a case, each device controller 20a to 20j controls more than one storage device. In such a embodiment, the device controller 20 determines which logical volume should be involved in reading or writing. It should also be understood that the number of storage devices 24 in a logical volume can be variable. The data distribution capability of the array control module 18 depends on the number of storage devices 24 placed per logical volume. In the illustrated embodiment, eight data storage devices 24a to 24h are shown, and further, a parity storage device 24i and a spare storage device 24j are shown. Fewer or more data storage devices may be utilized. Along with this, more than one parity storage device may be provided with more than one spare storage device.
[0018] In another embodiment, a second array storage system 14 is provided. In this embodiment, the host system 10 can use both array storage systems 14 to read or write from a logical volume. Furthermore, if a failure occurs when accessing a particular logical volume using the device controller of the first array storage system, the second array storage system accesses the same storage device of that logical volume. Can be used to.
It should also be noted that the composition of the data for the storage device 24 can change substantially. In one embodiment, contiguous bytes within a fixed size data block from host system 10 are distributed to two or more different device controllers, thus two or more. Written to different storage devices. In this data structure, as one specific example, a host system 10 that transmits a data block of 4096 bytes is provided. This block is then distributed using a logical volume with 10 storage devices 24a-24j. Eight of these storage devices 24a to 24h store data in a block of approximately 512 bytes, and the first storage device 24a stores the first, ninth, 17th, etc. bytes of 4096 bytes. .. The ninth storage device 24i stores redundant information that allows data reconstruction in the event of failure of one of the storage devices 24 or device controller 20 connected to the logical volume 40. In a preferred embodiment, the redundant information is in the form of parity bytes generated using the stored data. The tenth storage device 24j is used as a spare storage device. The tenth storage device 24j is a special device used to store the reconstructed data from some failed storage devices 24 for the logical volume 40. In the second data structure, the data blocks of the host system 10 are distributed in fixed size subblocks in contiguous bytes. Each subblock is written to a storage device within a logical volume.
[0020] In the use of the array storage system 14, data integrity may be compromised. In particular, one or more storage devices 24 on the logical volume 40 may be in an incorrect physical location. In one case, two of the storage devices 24 are switched, eg, accidentally, even though the logical volume 24 of the storage device 24 is provided by the correct positioning for that particular logical volume. For some reason, it may be placed in two incorrect physical locations within the volume. Second, an unauthorized storage device 24 may be provided in the logical volume 40.
[0021] In the present invention, in order to determine whether or not all the storage devices are in the correct positions in the logical volume, the information stored in advance and subsequently determined is used. The pre-stored information includes a "device identifier" for each of the storage devices 24. The device identifier is a unique and permanent identification code for each of the storage devices 24. Preferably, the device identifier is a serial number for a particular storage device. In addition, the above-mentioned determined information includes a "logical identifier" (logical) for each logical volume 40. identifier) is included. In a preferred embodiment, each storage device 24 in the logical volume 40 has the same logical identifier. This logical identifier includes a device identifier for each storage device 24 on a particular logical volume 40. For example, in the case of 10 storage devices, the logical identifier includes the serial number of the storage device 24 for all storage devices 24 in the logical volume 40. The logical identifier preferably also includes a control information byte that indicates the state associated with the operation of the array storage system 14. The generation and use of logical identifiers for logical volume 40 will be described in detail later along with the use of device identifiers.
[0022] In addition to checking the correct storage device 24 on the logical volume 40, the present invention also performs a failure tolerance setting process by using the logical identifier of each logical volume 40, particularly the control information byte. To. In summary, this is achieved by updating or writing the logical identifier for the logical volume 40 whenever a situation arises or a condition arises.
[0023] Determining whether the correct storage device 24 is found and correctly arranged in the logical volume 40, and the logical identifier is updated and written in each storage device 24 for the particular logical volume 40. A description of the circumstances under which the determination of whether or not to be included should be initiated is made with reference to FIGS. 2-4 below. First, referring to step 50, a specific event is monitored to determine whether or not the ACM18 has been powered on. Based on the occurrence of this event, any of the storage devices 24a to 24j on the logical volume 40 is (1) removed or disabled, thereby making the storage device available for the logical volume 40. Whether 24 is no longer sufficient, (2) not placed on the wrong logical volume, (3) placed on the correct logical volume 40 but in the wrong position within the particular logical volume 40 It is decided to check if it is not connected to. In step 54, each logical volume of the array storage system 14 is checked using the steps shown in FIGS. 5-7. Each step of FIGS. 5-7 will be described in detail later. Similar to step 50, in step 58 it is determined whether a single storage device has been powered on. If powered on, each step of FIGS. 5-7 is performed again, as shown in step 62. As a continuation of each step of FIGS. 2-4, other conditions may be detected such that a logical identifier is generated or updated. In step 66, the status or events of some array storage systems are monitored that affect the completeness of the data and that it is advantageous to write a logical identifier. In a preferred embodiment, a situation is identified for monitoring and for taking certain actions. These events or situations include (1) issuance of "attach" commands, and (2) existence of initialization, configuration changes, or data reconstruction operations. These are user input devices such as terminals
[0024] Regarding the attach command to be issued, its occurrence is checked in step 70. In such a case, the attach command is executed in step 74. After executing the attach command, step 78 is executed and as a result a logical identifier is written to each storage device 24 for the particular logical volume 40 associated with the attach command. In writing the new logical identifier, the steps shown in FIGS. 8 and 9 are performed. Each step in FIGS. 8 and 9 will be described in detail later.
The attach command prepares the storage device 24 for receiving and storing data. This preparation involves reading and updating the track and sector defect maps. When the attach command is issued, the fact that a different storage device was contained in logical volume 40 is shown. Therefore, the logical identifier must be updated in the storage device 24 of the logical volume 40. The updated logical identifier should include the device identifier for this different storage device.
[0026] In step 86 shown in FIGS. 2 to 4, it is determined whether or not a specific operational event such as requesting the writing of a logical identifier to a specific logical volume has occurred. It has been shown that as step 86, a check is made as to whether initialization, automatic data reconstruction, or configuration changes have occurred.
[0027] The initialization operation is the execution of the attach command in that the storage devices 24a to 24j are prepared for reading and writing data by updating the defect map and by allocating the data storage in the storage device 24. Is similar to. However, the initialization operation is relevant to all storage devices of a particular logical volume. In step 90, the logical identifier is written prior to performing the initialization as shown in step 94. This is important in the event of a power outage that may occur during the initialization process. That is, prior to initialization, the control information of the logical identifier is updated to indicate that the initialization should be processed. If a power outage and subsequent power recovery occur during the execution of step 94, the system can determine that the initialization was being processed at the time of the power outage. With the recovery of power, the initialization can be resumed and completed. By checking this status information with a logical identifier, the incorrect defect and memory allocation information can be interpreted as legitimate and misused. Upon completion of the initialization process, the logical identifier for the particular logical volume is rewritten or updated as shown in step 98. The control information in the logical identifier must be updated again to include this status information.
[0028] Referring to step 86 above in connection with automatic data reconstruction, the process shown in FIGS. 2-4 appears to include the same steps already described in connection with the initialization operation. It looks like. Automatic data reconstruction involves, for example, reconstructing data on a failed storage device into a spare storage device 24j. This is typically achieved by using the parity data stored in the storage device 24i, as well as the data present in the legitimate storage device 24 on the same logical volume 40. Status information about the data reconstruction should be kept in the logical identifier prior to the data reconstruction operation. In the event of a failure accident related to the array storage system 14, such as a power outage, the control information in the logical identifier is read out as the power recovers, providing information to the effect that the data has been reconstructed. To do. In such a case, the array storage system 14 can immediately resume the data reconstruction operation or continue the operation according to the capacity of the system. With respect to initialization, as the data is reconstructed, the logical identifier for the particular logical volume 40 is updated again and written to each storage device 24 to indicate the fact that the operation has been completed. Regarding initialization, the control information is modified as the data reconstruction is completed, so that the logical identifier changes.
[0029] The configuration change operation relates to storing data on the replaced storage device for the failed storage device. In a preferred embodiment, this operation is similar to a data reconstruction operation in that all storage devices, including the spare storage device 24j, are utilized to write data to the replaced device. For the other two actions, it is advantageous to update the logical identifier before and after the action is performed.
Summarizing each step of FIGS. 2-4 with respect to these three operations, step 86 determines whether one of them has been called. If so, in step 90, a new logical identifier is written to the storage device 24 of the logical volume 40 to which the operation applies. The new logical identifier contains status information associated with that particular operation and is used during the recovery of the array storage system 14 after a failure. Such status information is found in the control information byte of the logical identifier. The steps of writing a logical identifier to each storage device 24 for a particular logical volume 40 are shown in FIGS. 8 and 9. Step 94 relates to performing a particular operation. Step 98 shows that the logical identifier is updated again. That is, the control information byte of the logical identifier is modified to represent the fact that the operation has been completed.
With respect to the check of logical identifiers and device identifiers, with reference to FIGS. 5-7, the use of such identifiers in the check for the correct storage device 24 correctly located on a particular logical volume 40 is described below. Be explained. As mentioned above, according to each step of FIGS. 2 to 4, an event or state has occurred or a state has occurred in which the correct storage device 24 should be checked whether or not it is found in a specific logical volume 40. A distinction was made. In this regard, the objectives made by such a check are: (1) to determine if there are the correct number of storage devices at a location relative to a particular logical volume 40, and (2) for all storage devices 24 to be specific. Determining if it is part of the logical volume 40, and (3) if so, determining if such a storage device 24 is in its correct physical location. The following steps, shown in FIGS. 5-7, are performed to achieve such an end.
[0032] First, in step 100, the logical identifier from the first storage device 24a is read out and stored in the storage position or register. This storage area can be defined as a "logical identifier". It should be understood that the order of the storage devices 24a-24j with respect to the logical volume 40 corresponds to the order used when the data is distributed to the logical volume 40 by the ACM18 above. This order must also be the same order or sequence for the device identifier associated with the logical identifier. That is, the device identifiers are sequentially arranged according to the order of the storage devices 24a to 24j to which they are uniquely associated.
[0033] In step 104, a logical identifier from the next storage device (eg, 24b) can be read into a storage location or register and specified as the "next logical identifier". In step 108, it is determined whether or not the identifier information stored in the "logical identifier" and the "next logical identifier" is the same. If they are not the same, the storage devices 24a and 24b do not belong to the same logical volume 40. In such a case, step 112 raises a message or response status indicating that these two storage devices do not belong to the same logical volume.
[0034] If these two storage areas have the same logical identifier, in step 116, it is determined whether or not there is another storage device 24 in the logical volume 40. If so, step 104 is performed again to determine if this new value stored in the "next logical identifier" is the same as the logical identifier in the storage location of the "logical identifier". Be done. If so, is there any other storage device 24 whose logical identifier was not compared to the logical identifier found in the storage location or register identified as the "logical identifier" in step 116? Is determined again. As can be seen from the above, the process involves a continuous loop through steps 104, 108, and 116, where each logical identifier is from the next unread storage device 24 on logical volume 40. It is read repeatedly, and it is determined whether or not all the logical identifiers are the same.
There are two exits for the loop described above. In step 108, a comparison result is shown in which the contents of the "logical identifier" and the "next logical identifier" are not the same. In such a case, it is concluded that the logical identifier of the first storage device 24a and the most recently read logical identifier are not the same. If the determination in step 108 is know, the process proceeds to step 112, and a message or response status is generated indicating that the storage device physically connected as part of the logical volume 40 does not belong to this particular logical volume. Will be done. In step 116, the loop ends if there is no unread logical identifier to be read from the storage device 24 for the logical volume 40. In this case, all logical identifiers for these devices are the same. Furthermore, during the reading of the logical identifier, all ports or connections to the device controller 20 for a particular logical volume 40 are also essentially checked, so a determination is made that the number of storage devices 24 is correct. That is, if the storage device is missing, this is determined when the logical identifier of the storage device that should be at its location or connection is read. Once the logical identifiers are compared and they are all the same, the determination in step 116 is known, and as a result a determination can be made as to whether the storage device 24 is in the correct position within the logical volume 40.
[0036] In step 120, a first device identifier (eg, for storage device 24a) can be obtained from the logical identifier, stored in a storage location or register, and specified as the "expected device identifier". In step 124, the device identifier is read from the storage device 24a and stored in the storage location. It can be specified as a "real device identifier". In step 128, a comparison or determination is made as to whether or not the contents stored as the "expected device identifier" and the "actual device identifier" are the same. If this condition is not met, the first compared storage device is not in the correct position on the logical volume 40 as specified in the logical identifier. In this case, step 132 raises a message or response status indicating that the storage device is not in the correct location. Its position within the logical volume is associated with making a comparison that is essentially related to the device identifier in the logical identifier. That is, since the logical identifier is generated by a known successive access of the device identifier, when the first or second device identifier is read from a part or segment of the logical identifier, this particular part or segment is Corresponds to a known device storage location for a particular logical volume 40.
If the determination in step 128 is yes, the process proceeds to step 136 to determine whether another comparison should be made, that is, whether there is another device identifier within the logical identifier. If the verdict in step 136 is yes, steps 120 and 124 are executed again. This time, in step 120, the "expected device identifier" has identifier information corresponding to the next storage device (eg, storage device 24b). In step 124, the real device identifier has a device identifier that is read from the second storage device (storage device 24b) of the logical volume. After steps 120 and 124 are executed again, it is determined in step 128 whether the actual device identifier and the expected device identifier are the same. If they are not the same, step 132 raises a message indicating that there is a lack of correspondence between the expected information and the actual information. If the verdict in step 128 is yes, then in step 136 it is determined whether other real device identifiers need to be compared to the expected device identifiers, such as those found within the logical identifiers. .. If necessary, the process described in steps 120, 124, and 128 continues.
[0038] After all the comparisons between the actual device identifier and the expected device identifier have been made, then in step 136 all the comparisons have been made and all parts of the logical identifier and the device identifier correspond. The decision is made that it has been taken. Step 140 provides an output message or response status indicating that the storage devices 24 are correct and in their correct physical location within the logical volume 40.
[0039] It is recognized that there can be no more actual storage device 24 than the device identifier found within the logical identifier, since the logical identifier arises from the device identifier in connection with the decision or discriminant step described above. Should be. If such a case were to occur, it means that the logical identifier was improperly generated because it originates from all device identifiers on a particular logical volume. It should also be understood in steps 104,108,116 that the number of storage devices within a logical identifier is no more than the actual number of storage devices. That is, it is determined that the actual number of storage devices corresponds to the number of storage devices in the logical identifier. If the actual number of storage devices is less than the number of storage devices found in the logical identifier, an error indication is given in step 112.
[0040] FIGS. 8 and 9 show steps for writing or updating a logical identifier. As mentioned above, it has been determined that an event or condition exists in which the logical identifier should be updated or written. Once such a decision is made, step 160 is performed. In particular, there are iterative reads of the device identifiers from each of the storage devices 24a-24j on the logical volume 40 according to a predetermined order. As a result of continuous reading of this device identifier, position information regarding the storage device 24 is obtained. That is, when generating a logical identifier, the device identifier is obtained for the logical volume in a known predetermined order. Thus, when a logical identifier is accessed to compare the next segment or portion of the identifier with the device identifier, it is known which storage device location applies to that segment. Further, in step 164, predetermined control information is read out or obtained. After reading this information, in step 168, a logical identifier is generated using the device identifier in the logical volume 40, along with the control information contained in the control bytes that are part of the logical identifier. As described above, the control information byte provides the array storage system 14 with status information used to assist recovery in the event of a failure of the array storage system 14. Finally, in step 172, the logical identifier is written to each storage device 24a to 24j of the logical volume 40. The logical identifier is written to the specified storage location on each storage device 24a-24j.
[0041] Although the above description of the present invention has been made based on the illustrated examples, the present invention is not limited to these examples, and other modifications are made without departing from the scope of the present invention. It should be interpreted to include examples.
According to the present invention, it is possible to reliably determine whether or not each storage device in a storage array is located in the correct physical location in the array.
BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 is a block diagram showing a basic hardware element used in the present invention.
FIG. 2 is a flowchart showing steps related to reading a logical identifier and a device identifier, or starting writing a logical identifier.
FIG. 3 is a flowchart showing a step relating to reading of a logical identifier and a device identifier or starting writing of a logical identifier.
FIG. 4 is a flowchart showing steps related to reading a logical identifier and a device identifier, or starting writing a logical identifier.
FIG. 5 is a flowchart showing steps related to checking or reading a logical identifier and a device identifier.
FIG. 6 is a flowchart showing steps related to checking or reading a logical identifier and a device identifier.
FIG. 7 is a flowchart showing steps related to checking or reading a logical identifier and a device identifier.
FIG. 8 is a flowchart showing steps related to updating or writing a logical identifier.
FIG. 9 is a flowchart showing steps related to updating or writing a logical identifier.
[Code description] 10 ... Host system 14 ... Array storage system 18 ... Array control module 20a ~ 20j ... Device controller 24a ~ 24j ... Storage device 28 ... Array control unit 32. .. Processor 36 ... Status storage unit 40 ... Logical volume
9 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9
Every citation, both ways
| Document | Relation | Office |
|---|---|---|
| JP04279924A | Cites | Japan |
| JP62163154A | Cites | Japan |
14 members in 4 offices
Priority claims5
| Document | Office | Kind | Date |
|---|---|---|---|
| 794114 | United States of America | – | |
| 79411491 | United States of America | A | |
| 79411491 | United States of America | A | |
| 1991794114 | – | – | – |
| US19910794114 | – | – | – |
Members14
| Document | Office | Kind | |
|---|---|---|---|
| EP0541996A2 | European Patent Office (EPO) | A2 | |
| JPH05210464A | Japan | A | |
| EP0541996A3 | European Patent Office (EPO) | A3 | |
| US5369758A | United States of America | A | |
| US5598528A | United States of America | A | |
| EP0541996B1 | European Patent Office (EPO) | B1 | |
| DE69224589D1 | Germany | D1 | |
| US5751936A | United States of America | A | |
| DE69224589T2 | Germany | T2 | |
| JPH11242568A | Japan | A | |
| JP3221747B2 | Japan | B2 | |
| JP2001356941A | Japan | A | |
| JP3243223B2 | Japan | B2 | |
| JP3631442B2This record | Japan | B2 |
15 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Cancellation because of completion of termEXPY | EXPY | |
| Renewal fee payment (event date is renewal date of database)FPAY | FPAY | |
| Renewal fee payment (event date is renewal date of database)FPAY | FPAY | |
| Renewal fee payment (event date is renewal date of database)FPAY | FPAY | |
| Renewal fee payment (event date is renewal date of database)FPAY | FPAY | |
| Renewal fee payment (event date is renewal date of database)FPAY | FPAY | |
| Renewal fee payment (event date is renewal date of database)FPAY | FPAY | |
| Renewal fee payment (event date is renewal date of database)FPAY | FPAY | |
| Renewal fee payment (event date is renewal date of database)FPAY | FPAY | |
| First payment of annual fees (during grant procedure)JAPANESE INTERMEDIATE CODE: A61A61 | A61 | |
| Certificate of patent or registration of utility modelJAPANESE INTERMEDIATE CODE: R150R150 | R150 | |
| Written decision to grant a patent or to grant a registration (utility model)JAPANESE INTERMEDIATE CODE: A01A01 | A01 | |
| Decision of grant or rejection writtenTRDD | TRDD | |
| Written amendmentJAPANESE INTERMEDIATE CODE: A523A521 | A521 | |
| Notification of reasons for refusalJAPANESE INTERMEDIATE CODE: A131A131 | A131 |
Numbers
- Publication
- 3631442
- Publication, DOCDB
- 3631442
- Publication, EPODOC
- JP3631442B
- Application
- 134690
- Application, DOCDB
- 2001134690
- Application, EPODOC
- JP20010134690
Titles2
- Japanese
- アレイ記憶システム
- English
- Array storage system
Classification
- CPC, 14
- G11C29/88
- G06F3/0601
- G06F3/0607
- G06F3/0634
- G06F3/0653
- G06F3/0689
- G06F11/006
- G06F11/1415
- G06F11/2289
- G11B19/00
- G11B19/12
- G11B20/1816
- G06F3/0632
- G06F3/0604
- IPC, 9
- G06F3 06
- G06F11 00
- G06F11 14
- G06F11 22
- G06F12 00
- G11B19 00
- G11B19 12
- G11B20 18
- G11C29 00
