WO2016194166A1 - ストレージシステム - Google Patents

ストレージシステム Download PDF

Info

Publication number
WO2016194166A1
WO2016194166A1 PCT/JP2015/066032 JP2015066032W WO2016194166A1 WO 2016194166 A1 WO2016194166 A1 WO 2016194166A1 JP 2015066032 W JP2015066032 W JP 2015066032W WO 2016194166 A1 WO2016194166 A1 WO 2016194166A1
Authority
WO
WIPO (PCT)
Prior art keywords
frame
information
storage
processor
host
Prior art date
Application number
PCT/JP2015/066032
Other languages
English (en)
French (fr)
Inventor
友哉 後藤
純 宮下
元希 武井
Original Assignee
株式会社日立製作所
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 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to PCT/JP2015/066032 priority Critical patent/WO2016194166A1/ja
Publication of WO2016194166A1 publication Critical patent/WO2016194166A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units

Definitions

  • the present invention relates to a storage system.
  • Patent Document 1 discloses a technique in which an ATA controller in a storage device stores a predetermined number of command histories input to an ATA interface unit. Patent Document 1 stores the command field (12 Bytes) and status (2 Bytes) and the ATA error register information (1 Byte) for the latest 1 command, and the command field (12 Bytes) and status for the latest 10 commands. (2Bytes) is left, and for 30 commands older than the latest 10 commands, 1byte command information and status (2Bytes) are left, reducing the storage capacity required to leave a history, and at least A technique for obtaining limited information is also disclosed.
  • a storage controller processor executes a program to perform processing related to an I / O request from a host.
  • a program executes a program to perform processing related to an I / O request from a host.
  • error occurs during execution of a program, referring to error detailed information generated by the program when the error occurs is effective for early analysis of the problem.
  • the technique disclosed in Patent Document 1 includes only commands, statuses, and error register information (including error types), and is insufficient for detailed problem analysis.
  • the storage system has at least a host interface for transmitting / receiving information to / from the host, a processor, and a storage medium.
  • the processor records information transmitted to and received from the host in a storage area on the storage medium, and records event information of an event detected by the storage apparatus in a log area on the storage medium. Further, when an event occurs due to information received from the host, the processor associates this information with the event and records them in the storage medium.
  • the problem can be identified at an early stage. Become.
  • the information of the present invention may be described in terms of “aaa table” or the like, but the information may be expressed in a data structure other than a table or the like. Therefore, the “aaa table” or the like may be referred to as “aaa information” to indicate that it does not depend on the data structure.
  • information for identifying “bbb” of the present invention may be described by an expression such as “bbb name”. However, the information for identifying these is not limited to a name, but an identifier, an identification number, Any information can be used as long as it can identify “bbb” such as an address.
  • programs described below may be realized by dedicated hardware.
  • Various programs may be installed in each apparatus by a program distribution server or a computer-readable storage medium.
  • the storage medium for example, an IC card, an SD card, a DVD, or the like may be used.
  • FIG. 1 shows a configuration of the storage apparatus 1 according to the first embodiment.
  • the storage device 1 includes a storage controller 10 and a plurality of drives 20 connected to the storage controller 10.
  • the drive 20 is a storage device for storing write data from a host device such as the host 2.
  • the drive 20 may be a storage device using a magnetic disk such as an HDD (Hard Disk Drive) as a recording medium, or a storage device adopting a nonvolatile semiconductor memory such as a flash memory as a storage medium. Good.
  • the drive 20 communicates with the storage controller 10 in accordance with the SAS (Serial Attached SCSI) standard.
  • One or more hosts 2 are connected to the storage controller 10.
  • a management terminal (SVP) 5 is connected to the storage controller 10.
  • the storage controller 10 and the host 2 are connected via a SAN (Storage Area Network) 3 formed using a fiber channel as an example.
  • the storage controller 10 and the management terminal 5 are connected via a LAN (Local Area Network) 6 formed using Ethernet as an example.
  • the storage controller 10 includes at least a processor (CPU) 11, a host interface (denoted as “host I / F” in the figure) 12, a disk interface (denoted as “disk I / F” in the figure) 13, a memory 14, a management I / F 15 for use.
  • the processor 11, host I / F 12, disk I / F 13, memory 14 and management I / F 15 are interconnected via an internal switch (internal SW) 16.
  • Each of these components may have a configuration in which only one is installed in the storage controller 10, or a plurality of these components may be mounted. Further, instead of the internal SW 16, the components may be connected to each other via a common bus.
  • the disk I / F 13 has at least an interface controller and a transfer circuit.
  • the interface controller is a component for converting a protocol (SAS in one example) used by the drive 20 into a communication protocol (PCI-Express as an example) used in the storage controller 10.
  • the transfer circuit is used when the storage controller 10 transfers data (read, write) to the drive 20.
  • An interface controller that supports a plurality of protocols for example, SAS and SATA
  • a plurality of types of drives 20 SAS standard drive and SATA standard drive
  • the host I / F 12 has at least an interface controller and a transfer circuit, like the disk I / F 13.
  • the interface controller included in the host I / F 12 includes a communication protocol (for example, fiber channel or Ethernet) used in a data transfer path between the host 2 and the storage controller 10 and a communication protocol (for example, the storage controller 10). PCI-Express etc.).
  • the host I / F 12 is provided with a monitor 121 having a function of detecting and recording information such as a command received by the storage apparatus 1 from the host 2.
  • the monitor 121 also has a function of recording information returned from the storage apparatus 1 to the host 2.
  • the monitor 121 may be implemented as dedicated hardware configured with an ASIC or the like, or may be configured with general-purpose components such as a processor and a memory.
  • the memory 14 is used to store programs executed by the processor 11 and various management information of the storage device 1 used by the processor.
  • the memory 14 is also used for temporarily storing I / O target data for the drive 20.
  • the storage area in the memory 14 used for temporarily storing I / O target data for the drive 20 is referred to as “cache”.
  • the memory 14 is configured by a volatile storage medium such as DRAM or SRAM. However, as another embodiment, the memory 14 may be configured by using a nonvolatile memory.
  • the processor 11 performs various controls of the storage device 1 by reading and executing the program stored in the memory 14.
  • the memory 14 is a program for reading data from the drive 20 or the cache or writing data to the drive 20 or the cache according to the content of the command received from the host 2.
  • a program for recording related information when an event such as an error occurs is also stored.
  • the CPU 11 executes an I / O program or a command processing program, so that the processing described here and the processing described below are performed.
  • the description in this specification is redundant. In order to prevent this from happening, the contents of processing may be explained using a program as the subject.
  • the command includes a command for instructing data reading (hereinafter referred to as “read command”), a command for instructing data writing (hereinafter referred to as “write command”), and the like.
  • read command a command for instructing data reading
  • write command a command for instructing data writing
  • status a kind of information indicating the processing result is returned from the storage apparatus 1 to the host 2.
  • the storage device 1 is connected to the host 2 via a transmission line in accordance with the fiber channel standard.
  • information called “frame” is exchanged between the host 2 and the storage apparatus 1.
  • the command or data is stored in information called “frame”, and the frame is transmitted / received between the host 2 and the storage apparatus 1.
  • FIG. 4 shows an example of a frame.
  • FIG. 4 shows an example of a frame defined by the FC-SB-5 standard.
  • the frame includes header information 102 and command / data / status information 103 between a Start of Frame (SOF) 101 indicating the start position of the frame and an End of Frame (EOF) 106 indicating the end position of the frame.
  • SOF Start of Frame
  • EEF End of Frame
  • an LRC 104 which is an error correction code generated based on the contents of the header information 102
  • a CRC 105 which is an error correction code generated based on the contents of the command / data / status information 103 are also included.
  • the header information 102 stores information representing the contents of the frame.
  • the contents of the header information 102 are slightly different depending on the type of information stored in the command / data / status information 103.
  • FIG. 4 shows an example of the header information 102 when a command is stored in the command / data / status information 103.
  • R_CTL 102-1 is information indicating the type of frame. By referring to the R_CTL 102-1, it is possible to identify whether the information included in the frame is a command, data, or status.
  • a frame including a command is referred to as a “command frame”.
  • a frame containing data is called a “data frame”
  • a frame containing status is called a “status frame”.
  • D_ID 102-2 an identifier of a device (host 2 or storage device 1 or the like) that is a frame transmission destination is stored.
  • the D_ID 102-2 of the frame transmitted from the host 2 to the storage device 1 stores the identifier of the storage device 1 (specifically, the port ID of the host I / F 12 is stored).
  • the S_ID 102-3 stores the identifier of the frame transmission source device (such as the host 2 or the storage device 1).
  • the identifier of the host 2 is stored in the S_ID 102-3 of the frame transmitted from the host 2 to the storage apparatus 1.
  • OX_ID 102-4 is information used to associate a command, data, and status. An example will be described below.
  • the host 2 sends two commands to the storage device 1 (assuming that the first command is called “command 1” and the second command is called “command 2”), the host 2 sends the command 1 Assume that 1 is stored in the OX_ID 102-4 of the frame in which is stored, and 2 is stored in the OX_ID 102-4 of the frame in which the command 2 is stored.
  • the storage apparatus 1 when the storage apparatus 1 returns the status for the command 1 (hereinafter referred to as “status 1”) to the host 2, the D_ID 102-2 of the frame in which the status 1 is stored is received from the host. The value stored in the frame including the command 1, that is, 1 is stored.
  • the status for the command 2 hereinafter, this status is referred to as “status 2”
  • the D_ID 102-2 of the frame in which the status 2 is stored has 2 (the frame in which the command 2 is stored). Stored in the OX_ID 102-4).
  • the host 2 can identify which command corresponds to the status returned from the storage apparatus 1.
  • the OX_ID 102-4 stored in the command frame and the status frame has been described, but the same applies to the OX_ID 102-4 stored in the data frame.
  • the storage apparatus 1 has a function of accumulating (replicated) frames transmitted / received to / from the host 2 in a storage area in the order of time of transmission / reception.
  • the drive 20 can be used as a storage area (hereinafter referred to as “frame storage area”) serving as a frame accumulation destination.
  • FIG. 3 shows a configuration example of the frame storage format 150 stored in the frame storage area.
  • the storage apparatus 1 adds information of frame # 151, time stamp 152, related information flag 153, and frame length 154 before the frame entity 155 to be stored.
  • the frame # 151 is a unique identification number assigned by the storage apparatus 1 to the accumulation target frame.
  • the storage apparatus 1 assigns consecutive numbers starting from 1 to frames to be accumulated and stores them in a storage area.
  • the time stamp 152 is a time when a frame is transmitted / received.
  • the frame length 154 represents the length of the frame entity 155.
  • the maximum length of one frame is 2112 bytes as an example, but there are also frames of less than 2112 bytes. Therefore, the storage apparatus 1 also records the frame length 154 when storing the frame in the storage area.
  • the related information flag 153 is information indicating the presence / absence of information related to the accumulation target frame.
  • the storage apparatus 1 according to the present embodiment has a function of recording detailed event information in a storage area in the storage apparatus 1 when an event such as a failure occurs.
  • the related information flag 153 stores information for identifying which of these pieces of information is related to the accumulation target frame.
  • the related information flag 153 includes columns of SSB (153-1), RST (153-2), SIM (153-3), and HTP (153-4). Each column is an area for storing a 1-bit value and stores 0 (OFF) or 1 (ON).
  • the host I / F 12 When an illegal transmission / reception frame is detected in the host I / F 12 or when a failure is detected in the host I / F 12, the host I / F 12 creates information called HTPLOG and temporarily stores it in the memory.
  • the processor 11 detects an error, the processor 11 creates information called SSBLOG and stores it in the storage area.
  • the processor 11 when receiving a signal (Reset frame) requesting Reset from the host 2, the processor 11 creates information called ResetLOG and stores it in the storage area.
  • the processor 11 creates information called SIM and stores it in the storage area.
  • HTPLOG, SSBLOG, RESETLOG, and SIM are referred to as event information.
  • the storage device 1 stores event information created at that time in association with the received frame.
  • event information created at that time is stored.
  • at least one of SSB (153-1), RST (153-2), SIM (153-3), and HTP (153-4) of the related information flag 153 is stored. Turn on the bit. However, if no event occurs during frame processing, any bit is turned OFF.
  • the SSB (153-1) of the related information flag 153 is 1 (ON), it means that the SSBLOG is associated with the frame. Further, when the RST (153-2) of the related information flag 153 is 1 (ON), it means that the Reset Log is associated with the frame. If the SIM (153-3) of the related information flag 153 is 1 (ON), it means that the SIM is associated with the frame. Similarly, when the HTP (153-4) of the related information flag 153 is 1 (ON), it means that the HTPLOG is associated with the frame. Further, when the HTPLOG, SSBLOG, RESETLOG, and SIM are stored for association, the HTPLOG, SSBLOG, RESETLOG, and SIM include information for specifying a related frame.
  • FIG. 2 shows an example of the storage area of the SSBLOG.
  • the storage area of SSBLOG is provided in the memory 14 or the drive 20.
  • the SSBLOG storage area 200 includes a frame # 201, a time stamp 202, and a log area 203.
  • the Log area 203 is information for storing SSBLOG, and stores detailed information when a failure occurs.
  • the frame # 201 and the time stamp 202 respectively store the frame # and the time stamp of the frame associated with the SSBLOG.
  • the frame stored in the frame storage area and the SSBLOG stored in the SSBLOG storage area 200 are associated with each other.
  • the storage apparatus 1 is provided with dedicated areas for storing RESETLOG, SIM, and HTPLOG. In each area, RESETLOG, SIM, or HTPLOG is stored in the same storage format as described with reference to FIG.
  • the monitor process is executed by the monitor 121.
  • the monitor 121 is always activated and waits for reception of a frame from the host 2 or transmission of a frame returned from the processor 11 of the storage apparatus 1 to the host 2 (S10).
  • the monitor 121 acquires the frame # and the time stamp (S20).
  • the monitor 121 assigns a serial number to each frame, in S20, a value obtained by adding 1 to the frame # acquired in the previous process is acquired as the frame #.
  • the host I / F 12 has a clock.
  • the monitor 121 acquires the current time from the host I / F 12, and uses the acquired time as a time stamp.
  • the processor 11 may have a clock. In that case, the monitor 121 may acquire time information from the processor 11.
  • the monitor 121 secures an area for storing a frame in a storage area (RAM or the like) in the host I / F 12 (S40), and stores the frame in the secured area (S50).
  • the area secured here is hereinafter referred to as a “monitor area”.
  • the monitor 121 stores a frame and other information (for example, frame # 151, time stamp 152, etc.) in the monitor area in the format described with reference to FIG.
  • An error may occur while the host I / F 12 is processing a frame received from the host 2 (or the processor 11).
  • the cause of the error may be a case where a failure occurs in hardware constituting the host I / F 12 or a case where there is a problem in the contents of the frame.
  • the host I / F 12 creates an HTPLOG and stores it in the HTP LOG storage area.
  • the HTPLOG is created (S60: YES)
  • the frame # of the received frame and the time stamp (frame # and time stamp acquired in S20) are stored in the HTPLOG (S70).
  • the monitor 121 turns on the HTP (153-4) in the related information flag 153 of the frame provided in the monitor area (S80). Thereafter, a process of moving the frame stored in the storage area in the host I / F 12 to the memory 14 or the drive 20 is performed (S130 and later).
  • the monitor 121 notifies the processor 11 that the frame has been received, and hands over the frame stored in the storage area in the host I / F 12 to the monitor data management program executed by the processor 11 (S130). Although details of the processing performed in S130 will be described later, the monitor 121 does not deliver only the contents of the frame, but information of frame # 151, time stamp 152, related information flag 153, and frame length 154 stored in the monitor area. Is also handed over to the monitor data management program. Thereafter, the monitor 121 clears the contents of the storage area in the host I / F 12 where the frame has been stored so far (S140). The cleared storage area can store information on a frame that will be newly received in the future (additional information such as frame and frame #).
  • the frame is accumulated in the storage area in the host I / F 12 for a predetermined period. Also good. In that case, a process of periodically transferring one or more accumulated frames to the memory 14 or the drive 20 is executed.
  • the processor 11 receives the frame reception notification from the host I / F 12 (S200: YES), the processor 11 acquires the frame from the monitor 121, and temporarily secures a storage area for storing the frame in the memory 14 (hereinafter, referred to as “frame”). This area is called “temporary area”), and the frame is stored in the secured temporary area (S210). At this time, the processor 11 creates a format similar to that described with reference to FIG. 3 on the temporary area.
  • an event such as an error may occur.
  • the processor 11 creates an SSBLOG, ResetLOG, or SIM (S220).
  • S221: YES the SSBLOG is stored in the Log area 203 of the SSBLOG storage area 200, and the frame and time stamp acquired in S210 are stored in the SSBLOG storage area 200 (frame # 201, time stamp). 202) (S222).
  • the SSB (153-1) is turned ON in the related information flag 153 of the frame stored in the temporary area.
  • FIG. 7 shows the detailed processing flow of S230.
  • a frame is stored in the storage area of the drive 20 (that is, an example in which the frame storage area exists in the drive 20) will be mainly described.
  • the storage apparatus 1 can create a plurality of volumes, which are storage spaces formed using storage areas of one or more drives 20.
  • the volume has an area where write data from the host 2 can be stored and an area for storing control information managed by the storage apparatus 1.
  • the former is referred to as “user area” and the latter is referred to as “control area”.
  • the storage apparatus 1 stores the frame (and accompanying information such as frame # and time stamp) acquired by the monitor 121 in this control area.
  • the processor 11 determines whether or not to perform filtering (S510).
  • a frame to be accumulated in advance As a method for designating a frame to be accumulated, there may be a method in which some conditions are set, only frames that meet the conditions are accumulated in the control area, and other frames are discarded. Examples of conditions are shown below.
  • the frame If the frame contains a command or status, store the frame. Discard frames that contain data.
  • the processor 11 may perform the determination by referring to the S_ID 102-3. Further, since the port ID of the host I / F 12 serving as the frame transmission destination is stored in the D_ID 102-2 of the frame, the processor 11 may refer to the D_ID 102-2 when determining (b). When determining (c), the processor 11 may refer to the R_CTL 102-1.
  • an administrator can preset these conditions in the storage apparatus 1 using the management terminal 5. If these conditions are not set, all frames are to be stored.
  • the conditions described above are examples, and other conditions may be set. A plurality of conditions described above can be set. For example, only frames that satisfy all of the conditions (a) to (c) described above can be stored. On the contrary, all frames that satisfy any one of the conditions (a) to (c) described above may be stored.
  • the processor 11 determines whether or not a condition related to the accumulation target frame is set in advance. If the condition is set in advance (S510: YES), it is determined whether the processing target frame matches the preset condition, and the frame that does not match the condition is discarded (S520). If the frame is discarded, the process ends here.
  • the processor 11 determines whether or not there is a free area in the control area where the accumulation target frame can be stored. If there is an empty area, the processor 11 stores the accumulation target frame in the empty area (S580), and ends the process. When there is no empty area (S540: NO), the processor 11 performs a process of reducing a part of the information of the frames already stored in the control area (S550). The process of S550 is referred to as an area release process.
  • the processor 11 again determines whether there is a free area in the control area where the accumulation target frame can be stored (S560). If there is an empty area, the processor 11 stores the accumulation target frame in the empty area (S580), and ends the process. When there is no empty area (S560: NO), the processor 11 deletes the frames with the oldest time stamp from the frames already stored in the control area (S570). This deletion process is carried out until an area capable of storing a frame to be newly stored this time is secured.
  • the processor 11 acquires the current time (S810). Subsequently, the processor 11 determines whether there is an unprocessed frame (the processes of S830 to S870 have not yet been performed) among the frames stored in the control area (S820). If there is an unprocessed frame, the processor selects one unprocessed frame (S830). If there is no unprocessed frame (S820: NO), the processor 11 ends the process.
  • the processor 11 refers to the time stamp of the frame and determines whether or not the frame has been received more than a predetermined number of days (for example, 3 days) (S840).
  • a predetermined number of days for example, 3 days
  • the accumulated frames are used for a plurality of purposes. For one, it is assumed that it will be used for problem analysis, such as identifying the cause of a failure. Another assumption is that the accumulated frames are used for performance analysis.
  • user data in this specification, “user data” refers to write data from the host 2 or the drive 20). (Which means read data transferred from the host to the host 2) is unnecessary, but in principle, other information is required to be stored. Therefore, in this case, only the user data is deleted from the frame.
  • the frame is a data frame
  • user data is stored in the command / data / status information 103 and is deleted.
  • user data may be stored in part of the command / data / status information 103. Therefore, if user data is stored in a part of the command frame, it is also deleted.
  • the frame acquired at a time relatively close to the current time is accumulated without reducing much information and acquired at a time relatively far (older) than the current time. The amount of information reduction is increased for the frames that have been processed.
  • the processor 11 determines that this frame is unlikely to be used for problem analysis, and many Delete the information. Specifically, all the information included in the command / data / status information 103 of each frame is deleted (S860). If the frame is a data frame, all the data frames are deleted (S870).
  • the processor 11 determines that this frame may be used for problem analysis. Only the data is deleted from the command / data / status information 103 of the frame (S850).
  • the frames in the control area are rearranged (S880). Specifically, the frames are stored again in order from the top of the control area so that there is no unused area between the frames. As a result, an empty area can be created.
  • the storage apparatus 1 can send the frame entity 155 stored in the frame storage area, the frame # 151, the time stamp 152, and the like to the management terminal 5.
  • HTPLOG, SSBLOG, RESETLOG, and SIM can be sent to the management terminal 5.
  • the information may be sent to the management terminal 5 when the user instructs the storage apparatus 1 to send information using the management terminal 5, or the information is periodically sent to the management terminal 5. 5 may be sent.
  • These pieces of information sent to the management terminal 5 are temporarily stored in a storage medium (HDD or the like) of the management terminal 5.
  • the user searches for the frame (and SSBLOG) having the same frame # and time stamp attached to the SSBLOG and the like. For example, the SSBLOG output when an event (fault etc.) occurs and the frame being processed at that time can be uniquely identified.
  • the management terminal 5 may have a function of associating information such as SSBLOG with a frame and presenting it to the user. An example will be described with reference to FIG.
  • the management program is executed by a CPU (not shown) of the management terminal 5 to perform the processing shown in FIG.
  • the management program can accept designation of information to be referred to (SSBLOG, SIM, etc.) and the time (or time zone) when the information to be referred to was generated from the user.
  • SSBLOG designation of information to be referred to
  • SIM SIM, etc.
  • time zone time zone
  • the management program accepts information to be referred to and designation of a time zone from the user (S1010).
  • the management program outputs the information (SSBLOG) stored in its own storage medium at the designated time (time zone).
  • the searched SSBLOG is searched and displayed on the screen of the management terminal 5 (S1020).
  • the search for the SSBLOG output at the specified time (time zone) can be made by referring to the time stamp 202.
  • Various display methods can be used.
  • the SSBLOG content received from the storage device 1 may be output as it is in the form of a dump list, or may be output on the screen after being converted into a format that can be easily viewed by the user.
  • the management program is displayed in S1020 from a plurality of frames stored in its own storage medium.
  • a frame related to SSBLOG is searched (S1030).
  • the search method may be to search for a frame having the same number as the frame # attached to the SSBLOG.
  • the management program When a frame related to the SSBLOG is searched, the management program subsequently searches for a frame having the same value as the OX_ID (102-4) of the searched frame (S1040). Thereby, for example, when a data frame is associated with SSBLOG, a command frame and a status frame having the same OX_ID as this data frame can also be searched. Finally, the management program displays the contents of the searched frame on the screen (S1050).
  • the management terminal 5 automatically extracts a frame related to SSBLOG has been described, but the reverse may be possible.
  • the management program may search for and display the SSBLOG associated with the frame. .
  • Example 2 will be described.
  • the configuration of the storage apparatus according to the second embodiment is the same as that described in the first embodiment.
  • FIG. 10 shows an example of a storage area 200 ′ such as a SIM according to the second embodiment.
  • This storage area is provided in the memory 14 or the drive 20.
  • the storage area 200 ′ includes a start frame # 201-1, an end frame # 201-2, a time stamp 1 (202-1), a time stamp 2 (202-2), and a log area 203.
  • the SIM storage area will be described as an example, but other logs (RESETLOG, SSBLOG, HTPLOG) are also stored in the same storage format.
  • only the SIM may be stored in the storage area 200 ′ in FIG. 10, and other logs may be stored in the storage area 200 described in the first embodiment.
  • the Log area 203 is information for storing the SIM, and stores detailed information when a failure occurs.
  • the first frame # 201-1 and time stamp 1 (202-1) store the frame # and time stamp of the frame associated with the SIM, respectively.
  • the frame # and time stamp of the frame associated with the SIM are stored in the end frame # 201-2 and the time stamp 2 (202-2), respectively.
  • the difference between the frame # stored in the start frame # 201-1 and the end frame # 201-2 is that the start frame # 201-1 includes the frame # of the oldest frame among the frames associated with the SIM. Is stored.
  • the end frame # 201-2 the frame # of the newest frame (temporarily close to the current time) among the frames associated with the SIM is stored.
  • a frame whose contents are partially damaged is received from the host 2 at a predetermined frequency or more, an event that a path (cable or the like) between the host 2 and the storage apparatus 1 is defective occurs. It is determined that a SIM has been created, and a SIM is created and reported to the user. For example, the breakage of the frame can be detected from the LRC 104 or the CRC 105 included in the frame.
  • a frame in which a part of the content is damaged is referred to as a “damaged frame”.
  • FIG. 11 shows a configuration example of the frame storage format 150 ′ in the storage device according to the second embodiment.
  • Frame # 151 to frame entity 155 are the same as those described in the first embodiment.
  • the difference from that described in the first embodiment is that the frame storage format 150 ′ has an Error 156. If the frame is a damaged frame, “1” is stored in Error 156, otherwise “0” is stored in Error 156.
  • S10 to S40 and S60 to S140 are the same as those described in the first embodiment.
  • the monitor 121 stores the frame in the monitor area.
  • the monitor 121 stores the frame and other information (frame # 151, etc.) in the format shown in FIG. If the frame is a damaged frame, “1” is stored in Error 156, and “0” is stored in Error 156 otherwise. The above is the description of the monitor process.
  • the frame storing process in the second embodiment includes a process of storing a frame in a temporary area (a process corresponding to S210 in FIG. 6) and a process when a SIM is generated (a process corresponding to S227 to S229 in FIG. 6). This is different from the frame storing process in the first embodiment.
  • the other points are the same as those described in the first embodiment.
  • the count table 250 which is management information used in the frame storing process in the second embodiment, will be described with reference to FIG.
  • the count table 250 has columns of a reception number 251, a damage number 252, and a start time 253.
  • the reception number 251 is a column in which the number of times the processor 11 has received a frame is stored.
  • the processor 11 adds 1 to the reception number 251 every time the frame storing process is performed.
  • the number of damages 252 is a column in which the number of times the processor 11 has received a damaged frame is stored. When executing the frame storing process, the processor 11 adds 1 to the damage number 252 if the frame to be processed is a damaged frame.
  • the start time 253 is a column in which the time when the reception number 251 and the damage number 252 are counted is recorded.
  • the processor 11 stores the time at the time of activation when the storage apparatus 1 is activated. Although details will be described later, the contents of the counting table 250 may be reset during the frame storing process. When resetting the contents of the counting table 250, the processor 11 stores the time (the time when the contents of the counting table 250 are reset) at the start time 253.
  • step S211 the processor 11 acquires a frame from the monitor 121, and stores the frame in a temporary area. Subsequently, the processor 11 adds 1 to the received number 251 of the counting table 250, and also adds 1 to the damaged number 252 when the acquired frame is a damaged frame (S212).
  • the processor 11 compares the start time 253 of the count table 250 with the current time, and determines whether a predetermined time (for example, A minutes) has elapsed from the time stored in the start time 253.
  • a predetermined time for example, A minutes
  • the processor 11 calculates (the number of breakage 252 ⁇ the number of reception 251). In this embodiment, this calculated value is referred to as a “missing rate” of the frame.
  • the processor 11 creates a SIM for reporting that a failure has occurred in the path (cable or the like) (S215). ).
  • the defect rate is equal to or less than the predetermined threshold (S214: NO)
  • the process of S215 is not performed.
  • the processor 11 resets the contents of the counting table 250 (the values of the reception number 251 and the damage number 252 are set to 0. The current time is stored at the start time 253). Thereafter, the processing after S220 is executed.
  • the processor 11 When the SIM is generated (S227: YES), the processor 11 performs different processing depending on whether or not the reason for the SIM generation is that the damaged frame is received at a predetermined frequency or more. If the reason for generating the SIM is not because the damaged frame is received more than a predetermined frequency (S701: NO), the processor 11 adds the frame # and the time stamp of the frame acquired in S210 in addition to the SIM as in the first embodiment.
  • the SIM (153-3) is turned ON in the related information flag 153 of the frame stored in the SIM storage area (S228) and stored in the temporary area (S229).
  • frame # and time stamp are stored in head frame # 201-1 and time stamp 1 (202-1), respectively.
  • An invalid value (NULL) is stored in terminal frame # 201-2 and time stamp 2 (202-2).
  • the processor 11 identifies all frames # related to frame corruption (S702).
  • the processor 11 searches for frames having an error 156 of “1” in order from the frame with the latest time stamp 152 from among the frames stored in the frame storage area.
  • the processor 11 turns on the SIM (153-3) of the frame. This operation is executed for all the frames whose (current time-time stamp 152) is equal to or shorter than a predetermined time.
  • the processor 11 identifies the frame with the oldest time stamp 152 among the frames in which the SIM (153-3) is turned on.
  • this frame is referred to as a “first frame”.
  • the processor 11 also identifies the frame with the newest time stamp 152 from among the frames in which the SIM (153-3) is turned on.
  • this frame is referred to as a “end frame”.
  • the processor 11 stores the frame # 151 and the time stamp 152 of the first frame in the first frame # 201-1 and the time stamp 1 (202-1) of the SIM storage area 200 ′, and also stores the SIM storage area 200.
  • the frame # 151 and the time stamp 152 of the end frame are stored in the end frame # 201-2 and the time stamp 2 (202-2).
  • the frame storage process executed by the storage apparatus according to the second embodiment is the same as that described in the first embodiment except for the points described above.
  • information indicating that a path failure has occurred is recorded in the SIM reported to the management terminal 5, so that the management terminal 5 reporting the SIM can detect the path failure.
  • the management terminal 5 is notified of information on damaged frames that occurred within a predetermined time.
  • the management terminal 5 can analyze the information of the simultaneously acquired frames and calculate the loss rate.
  • the user or maintenance staff of the storage apparatus 1 can accurately confirm how many damaged frames have been received in which period, and therefore, work such as path exchange between the host 2 and the storage apparatus 1 as necessary. It can be performed.
  • the frame received from the host computer and the information related to the error that occurred in the process related to the received frame are stored in association with each other.
  • the stored information is transmitted to an external management terminal.
  • a common identifier (frame # or time stamp) is attached to the frame and the information related to the error that has occurred in the process related to the frame, so the content of the information related to the frame and the error transmitted by the user to the management terminal.
  • the user data is deleted from the frame by the area release processing.
  • user data may also be used for problem analysis, user data may not be deleted if the frame is received within a predetermined number of days (for example, three days).
  • CRC error analysis An example of user data that can be used for problem analysis is CRC error analysis.
  • a CRC error occurs, for example, when the data and the CRC 105 of the frame do not match. However, when the frame is received from the host 2, there may be a case where the data and the CRC 105 of the frame are not consistent with each other, or there is an error in the data contents during the processing in the storage device 1, A CRC error may occur.
  • By accumulating user data included in the frame it is possible to determine whether an error has already been mixed in the data when the frame is received from the host 2 or whether an error has been mixed in the storage apparatus 1.
  • Storage device 2 Host 3: SAN 5: Management terminal 6: LAN 10: Storage controller 11: Processor (CPU) 12: Host I / F 13: Disk I / F 14: Memory 16: Internal switch 20: Drive 121: Monitor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本発明の一実施形態に係るストレージ装置は、ホスト計算機と接続するためのファイバチャネルインタフェースを有し、ファイバチャネルプロトコルに従うフレームをホスト計算機との間で送受信する。ストレージ装置はホスト計算機から受信したフレームと、当該受信したフレームに係る処理の過程で発生したエラーに関する情報とを、対応付けて蓄積し、外部の管理端末にこの情報を送出する機能を有する。

Description

ストレージシステム
 本発明は、ストレージシステムに関する。
 従来から、異常が発生した時の状況を確認できるようにすることができるようにするために、ホストから受信したコマンドとその関連情報を収集・記録しておく機能をストレージ装置に設ける技術がある。たとえば特許文献1には、ストレージデバイス内のATAコントローラが、ATAインタフェース部に入力された所定数のコマンド履歴を記憶する技術が開示されている。特許文献1には、最新の1コマンドについては、コマンドフィールド(12Bytes)及びステータス(2Bytes)さらにATAのエラーレジスタ情報(1Byte)を記憶し、最新の10コマンドについては、コマンドフィールド(12Bytes)及びステータス(2Bytes)を残し、さらに最新の10コマンドよりも古い30個のコマンドについては、1Byteのコマンド情報とステータス(2Bytes)を残すことで、履歴を残すために必要な記憶容量を削減しつつ、最低限の情報が得られるようにする技術も開示されている。
特開2011-65313号公報
 一般にストレージ装置では、ストレージコントローラのプロセッサがプログラムを実行することで、ホストからのI/O要求に係る処理を行う。プログラム実行時にエラーが発生した場合、問題の解析には、エラー発生時にプログラムが生成するエラー詳細情報を参照することが、問題の早期特定に有効である。しかしながら特許文献1に開示の技術では、コマンドとステータス、エラーレジスタ情報(エラーの種類が含まれる)のみであり、詳細な問題解析には不足である。
 本発明の一実施形態に係るストレージシステムは少なくとも、ホストとの間で情報の送受信を行うためのホストインタフェースと、プロセッサと、記憶媒体を有する。プロセッサは、ホストとの間で送受信される情報を記憶媒体上の格納領域に記録し、ストレージ装置で検出したイベントのイベント情報を記憶媒体上のログ領域に記録する。またプロセッサは、ホストから受信した情報に起因してイベントが発生した場合には、この情報とイベントとを関連付けて記憶媒体に記録する。
 本発明によれば、エラーが発生した時点でホストとストレージ装置間で送受信された情報とエラーに関する情報の両方が、確実にストレージ装置または管理端末に記録されるので、早期の問題特定が可能となる。
実施例に係る計算機システムのハードウェア構成図である。 SSBLOG格納領域の構造の例である。 フレーム格納形式の例である。 フレームのフォーマットを表した図である。 モニタ処理のフローチャートである。 フレーム格納処理のフローチャートである。 フレーム格納処理のフローチャートである。 解放処理のフローチャートである。 管理プログラムのフローチャートである。 実施例2に係る格納領域の例である。 実施例2に係るフレーム格納形式の例である。 計数テーブルの構成例である。 一時領域にフレームを格納する処理のフローチャートである。 SIMが生成された時の処理のフローチャートである。
 以下、本発明の実施例について、図面を用いて説明する。なお、以下に説明する実施例は特許請求の範囲に係る発明を限定するものではなく、また実施例の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
 また、以後の説明では「aaaテーブル」等の表現にて本発明の情報を説明する場合があるが、これら情報は、テーブル等のデータ構造以外で表現されていてもよい。そのため、データ構造に依存しないことを示すために「aaaテーブル」等について「aaa情報」と呼ぶことがある。また、「bbb名」等の表現にて本発明の「bbb」を識別するための情報を説明する場合があるが、これらの識別するための情報は、名前に限られず、識別子や識別番号、アドレスなど、「bbb」が特定できる情報であればよい。
 また、以降で説明されるプログラムの一部または全ては、専用ハードウェアによって実現されてもよい。また、各種プログラムはプログラム配布サーバや、計算機が読み取り可能な記憶メディアによって各装置にインストールされてもよい。記憶メディアとしては、例えば、ICカード、SDカード、DVD等であってもよい。
 図1は、実施例1に係るストレージ装置1の構成を示す。ストレージ装置1は、ストレージコントローラ10と、ストレージコントローラ10に接続された複数のドライブ20を有する。
 ドライブ20は、ホスト2などの上位装置からのライトデータを格納するための記憶デバイスである。ドライブ20として、HDD(Hard Disk Drive)等の磁気ディスクを記録媒体とする記憶デバイスが用いられてもよいし、フラッシュメモリ等の不揮発性半導体メモリを記憶媒体として採用した記憶デバイスが用いられてもよい。ドライブ20は一例として、SAS(Serial Attached SCSI)規格に従って、ストレージコントローラ10との通信を行う。
 ストレージコントローラ10には、1以上のホスト2が接続される。またストレージコントローラ10には、管理端末(SVP)5が接続される。ストレージコントローラ10とホスト2とは、一例としてファイバチャネルを用いて形成されるSAN(Storage Area Network)3を介して接続される。ストレージコントローラ10と管理端末5とは、一例としてイーサネットを用いて形成されるLAN(Local Area Network)6を介して接続される。
 ストレージコントローラ10は少なくとも、プロセッサ(CPU)11、ホストインタフェース(図中では「ホストI/F」と表記)12、ディスクインタフェース(図中では「ディスクI/F」と表記)13、メモリ14、管理用I/F15を有する。そしてプロセッサ11、ホストI/F12、ディスクI/F13、メモリ14、管理用I/F15は、内部スイッチ(内部SW)16を介して相互接続されている。これらの構成要素のそれぞれは、ストレージコントローラ10内に1つだけ搭載されている構成でもよいし、複数搭載されていてもよい。また内部SW16ではなく、共通バスを介して各構成要素が相互接続された構成にしてもよい。
 ディスクI/F13は少なくとも、インタフェースコントローラと転送回路を有する。インタフェースコントローラは、ドライブ20の用いているプロトコル(一例ではSAS)をストレージコントローラ10内部で用いられている通信プロトコル(一例としてPCI-Express)に変換するためのコンポーネントである。転送回路は、ストレージコントローラ10が、ドライブ20に対してデータの転送(リード、ライト)を行う際に用いられる。なお、インタフェースコントローラとして、複数のプロトコル(たとえばSASとSATA)をサポートするインタフェースコントローラを採用してもよい。その場合、ディスクI/F13には、複数種類のドライブ20(SAS規格のドライブとSATA規格のドライブ)を接続可能である。
 ホストI/F12は、ディスクI/F13と同様に、少なくともインタフェースコントローラと転送回路を有する。ホストI/F12が有するインタフェースコントローラは、ホスト2とストレージコントローラ10間のデータ転送経路で用いられている通信プロトコル(たとえばファイバチャネルまたはイーサネット)と、ストレージコントローラ10内部で用いられている通信プロトコル(たとえばPCI-Expressなど)を変換するためのものである。またホストI/F12には、ホスト2からストレージ装置1が受信するコマンド等の情報を検出して記録する機能を備えたモニタ121が設けられている。またモニタ121は、ストレージ装置1がホスト2に返送する情報も記録する機能を有する。モニタ121は、ASICなどで構成された専用ハードウェアとして実装されていてもよいし、あるいはプロセッサとメモリ等の汎用部品で構成されてもよい。
 メモリ14は、プロセッサ11が実行するプログラムや、プロセッサが使用するストレージ装置1の各種管理情報を記憶するために用いられる。またメモリ14は、ドライブ20に対するI/O対象データを一時的に記憶するためにも用いられる。以下、ドライブ20に対するI/O対象データを一時的に記憶するために用いられる、メモリ14中の記憶領域を、「キャッシュ」と呼ぶ。メモリ14はDRAM、SRAM等の揮発性記憶媒体で構成されるが、別の実施形態として、不揮発性メモリを用いてメモリ14を構成してもよい。
 プロセッサ11は、メモリ14に格納されたプログラムを読み出して実行することで、ストレージ装置1の各種制御を行う。本実施例に係るストレージ装置では少なくとも、メモリ14には、ホスト2から受信したコマンドの内容に従って、ドライブ20またはキャッシュからデータを読み出す、あるいはドライブ20またはキャッシュにデータを書き込む処理を行うためのプログラムである、I/Oプログラムの他、エラー等のイベントが発生した時に、その関連情報を記録するためのプログラムも格納されている。なお、正確には、CPU11がI/Oプログラムやコマンド処理プログラムを実行することにより、ここで述べた処理や、以降で説明する処理が行われるものであるが、本明細書では説明が冗長になることを防ぐため、プログラムを主語として処理の内容を説明することがある。
 続いて、ホスト2とストレージ装置1間でやり取りされる情報について説明する。ホスト2がストレージ装置1のボリュームにアクセス(リードまたはライト)する際、ホスト2はストレージ装置1に対してコマンドを発行する。コマンドには、データの読み出しを指示するためのコマンド(以下、「リードコマンド」と呼ぶ)、データの書き込みを指示するためのコマンド(以下、「ライトコマンド」と呼ぶ)などがある。コマンドの発行の後、データ(リードデータあるいはライトデータ)が送受信される。またデータ送受信の終了後、処理結果を表す情報の一種である「ステータス」が、ストレージ装置1からホスト2に返送される。
 本実施例に係るストレージ装置1では、ホスト2とファイバチャネル規格に従う伝送線で接続される。ファイバチャネル規格では、ホスト2とストレージ装置1との間で「フレーム」と呼ばれる情報をやり取りすることになっている。ホスト2とストレージ装置1との間でコマンドやデータのやり取りを行う場合、「フレーム」と呼ばれる情報にコマンドやデータを格納し、フレームがホスト2とストレージ装置1との間で送受信される。図4にフレームの例を示す。図4には、FC-SB-5規格で定められたフレームの例が示されている。
 フレームは、フレームの開始位置を表すStart of Frame(SOF)101と、フレームの終了位置を表すEnd of Frame(EOF)106の間に、ヘッダ情報102と、コマンド/データ/ステータス情報103が含まれた構成を採る。また、ヘッダ情報102の内容をもとに生成される誤り訂正符号であるLRC104と、コマンド/データ/ステータス情報103の内容をもとに生成される誤り訂正符号であるCRC105も含まれる。ヘッダ情報102はフレームの内容を表す情報が格納される。またヘッダ情報102の内容は、コマンド/データ/ステータス情報103に格納される情報の種類によって、若干異なる。図4では、コマンド/データ/ステータス情報103にコマンドが格納される場合の、ヘッダ情報102の例が示されている。
 ヘッダ情報102に含まれる主要な情報について説明する。R_CTL102-1は、フレームの種類を表す情報である。R_CTL102-1を参照することで、フレームに含まれている情報が、コマンドであるか、データであるか、ステータスであるかを識別可能である。以下、コマンドが含まれているフレームのことを「コマンドフレーム」と呼ぶ。またデータが含まれているフレームのことは「データフレーム」と呼び、ステータスが含まれているフレームは「ステータスフレーム」と呼ぶ。
 D_ID102-2には、フレームの送信先となる機器(ホスト2あるいはストレージ装置1等)の識別子が格納される。ホスト2からストレージ装置1に送信されるフレームのD_ID102-2には、ストレージ装置1の識別子(具体的にはホストI/F12のポートIDが格納される)が格納される。一方S_ID102-3には、フレームの送信元の機器(ホスト2あるいはストレージ装置1等)の識別子が格納される。ホスト2からストレージ装置1に送信されるフレームのS_ID102-3には、ホスト2の識別子が格納される。
 OX_ID102-4は、コマンドとデータとステータスを対応付けるために用いられる情報である。以下、例を説明する。ホスト2からストレージ装置1に2つのコマンド(仮に、1つ目のコマンドを「コマンド1」と呼び、2つ目のコマンドを「コマンド2」と呼ぶ)を送信する時、ホスト2は、コマンド1の格納されるフレームのOX_ID102-4には1を格納し、コマンド2の格納されるフレームのOX_ID102-4には2を格納したとする。
 その場合、ストレージ装置1は、コマンド1に対するステータス(以下、このステータスを「ステータス1」と呼ぶ)をホスト2に返送する時、ステータス1の格納されるフレームのD_ID102-2には、ホストから受領した、コマンド1を含むフレームに格納されていた値、つまり1を格納する。一方コマンド2に対するステータス(以下、このステータスを「ステータス2」と呼ぶ)をホスト2に返送する時、ステータス2の格納されるフレームのD_ID102-2には、2(コマンド2の格納されたフレームのOX_ID102-4に格納されていた値である)を格納する。
 これにより、ホスト2は、ストレージ装置1から返送されたステータスが、どのコマンドに対応するステータスであるかを識別することができる。なお、ここではコマンドフレームとステータスフレームに格納されるOX_ID102-4の例についてのみ説明したが、データフレームに格納されるOX_ID102-4についても同様のことが行われる。
 本実施例に係るストレージ装置1では、ホスト2との間で送受信されたフレーム(の複製)を、送受信された時刻順に記憶領域に蓄積する機能を有する。フレームの蓄積先となる記憶領域(以下、これを「フレーム格納領域」と呼ぶ)には、メモリ14の他に、ドライブ20を使用することができる。図3にフレーム格納領域に格納されるフレーム格納形式150の構成例を示す。フレームをフレーム格納領域に蓄積する際、ストレージ装置1は蓄積対象のフレーム実体155の前に、フレーム#151、タイムスタンプ152、関連情報フラグ153、フレーム長154の情報を付加し、これらの情報をフレーム格納領域に格納する。フレーム#151は、蓄積対象のフレームに対してストレージ装置1が付与する一意な識別番号である。本実施例に係るストレージ装置1は、蓄積対象のフレームに1から始まる連続番号を付して、記憶領域に格納する。
 タイムスタンプ152は、フレームを送受信した時の時刻である。フレーム長154はフレーム実体155の長さを表す。1つのフレームの最大長は、一例として2112バイトだが、2112バイト未満のフレームも存在するため、ストレージ装置1はフレームを記憶領域に格納する際、フレーム長154も記録する。
 関連情報フラグ153は、蓄積対象のフレームと関連のある情報の有無を表す情報である。本実施例に係るストレージ装置1では、障害等のイベントが発生した場合に、ストレージ装置1内の記憶領域にイベントの詳細な情報を記録する機能を有する。関連情報フラグ153には、これらの情報のうち、蓄積対象のフレームと関連のある情報がどれかを特定するための情報が格納される。関連情報フラグ153には、SSB(153-1)、RST(153-2)、SIM(153-3)、HTP(153-4)の欄が存在する。それぞれの欄は1ビットの値を格納する領域で、0(OFF)または1(ON)が格納される。
 ホストI/F12で不正な送受信フレームを検出した場合、あるいはホストI/F12内で障害が検出された場合は、ホストI/F12はHTPLOGと呼ばれる情報を作成してメモリに一時的に格納する。プロセッサ11にてエラーを検出した場合には、プロセッサ11はSSBLOGと呼ばれる情報を作成し、記憶領域に格納する。また、ホスト2からResetを要求する信号(Resetフレーム)を受信した場合には、プロセッサ11はResetLOGと呼ばれる情報を作成し、記憶領域に格納される。さらに、ホスト2に報告するようなハードウェア障害などが検出された場合には、プロセッサ11はSIMと呼ばれる情報を作成し、記憶領域に格納する。以下では、HTPLOG、SSBLOG、RESETLOG、SIMのことを、イベント情報と呼ぶ。
 ストレージ装置1は受信したフレームの処理中に障害などのイベントが発生した場合、その時点で作成するイベント情報と受信したフレームとを関連付けて記憶する。関連付けのため、フレームを蓄積する際に、関連情報フラグ153のSSB(153-1)、RST(153-2)、SIM(153-3)、HTP(153-4)のうち少なくともいずれか1つのビットをONにする。ただしフレームの処理中に何もイベントが発生しなかった場合には、いずれのビットもOFFにされる。
 関連情報フラグ153のSSB(153-1)が1(ON)の場合、そのフレームにSSBLOGが関連付けられていることを意味する。また関連情報フラグ153のRST(153-2)が1(ON)の場合、そのフレームにReset Logが関連付けられていることを意味する。そして関連情報フラグ153のSIM(153-3)が1(ON)の場合、そのフレームにSIMが関連付けられていることを意味する。同様に、関連情報フラグ153のHTP(153-4)が1(ON)の場合、そのフレームにHTPLOGが関連付けられていることを意味する。さらに関連付けのために、HTPLOG、SSBLOG、RESETLOG、SIMが格納される際に、HTPLOG、SSBLOG、RESETLOG、SIMに、関連するフレームを特定する情報が含まれる。
 図2に、SSBLOGの格納領域の一例を示す。SSBLOGの格納領域は、メモリ14またはドライブ20に設けられる。SSBLOGの格納領域200は、フレーム#201、タイムスタンプ202、Log領域203の領域を有する。Log領域203は、SSBLOGを格納するための情報であり、障害発生時の詳細情報等が格納される。一方フレーム#201とタイムスタンプ202にはそれぞれ、SSBLOGと関連付けられたフレームのフレーム#及びタイムスタンプが格納される。これにより、フレーム格納領域に格納されたフレームと、SSBLOGの格納領域200に格納されたSSBLOGとが関連付けられる。またストレージ装置1にはSSBLOGの格納領域200の他に、RESETLOG、SIM、HTPLOGのそれぞれを格納するための専用の領域が設けられている。それぞれの領域には、ここで図2を用いて説明したものと同様の格納形式で、RESETLOG、SIM、またはHTPLOGが格納される。
 続いて、図5を参照しながら、フレームのモニタ処理の流れを説明する。モニタ処理は、モニタ121が実行する。モニタ121は常時起動されており、ホスト2からのフレームの受信、あるいはストレージ装置1のプロセッサ11がホスト2に返信するフレームの送信が行われるのを待ち続けている(S10)。ホスト2からフレームを受信した時点、あるいはプロセッサ11がフレームをホストI/F12を介して送信したことを検知すると(S10:YES)、モニタ121は、フレーム#とタイムスタンプの取得を行う(S20)。モニタ121は各フレームに連続番号を付すので、S20ではフレーム#として、前回の処理で取得したフレーム#に1を加算した値を取得する。またホストI/F12は時計を有しており、S20でモニタ121はホストI/F12からその時点の時刻を取得して、この取得された時刻をタイムスタンプとして用いる。また別の実施形態として、プロセッサ11が時計を有する構成でも良い。その場合モニタ121は、プロセッサ11から時刻情報を取得してもよい。
 続いてモニタ121は、フレームを格納するための領域をホストI/F12内の記憶領域(RAM等)に確保し(S40)、確保された領域にフレームを格納する(S50)。ここで確保された領域のことを、以下では「モニタ領域」と呼ぶ。またモニタ121はモニタ領域に、図3を用いて説明した形式でフレーム及びその他の情報(たとえばフレーム#151、タイムスタンプ152等)を格納する。
 ホストI/F12が、ホスト2(またはプロセッサ11)から受信したフレームの処理を行っている過程で、エラーが発生することがある。エラーが発生する要因はホストI/F12を構成するハードウェアに障害が発生した場合、あるいはフレームの内容に問題がある場合等があり得る。いずれにせよエラーが発生した場合には、ホストI/F12はHTPLOGを作成し、HTP LOG格納領域に格納する。HTPLOGが作成された場合(S60:YES)、受信フレームのフレーム#、及びタイムスタンプ(S20で取得したフレーム#とタイムスタンプ)をHTPLOGに格納する(S70)。またモニタ121はモニタ領域に設けられたフレームの関連情報フラグ153のうち、HTP(153-4)をONにする(S80)。その後ホストI/F12内の記憶領域に格納されたフレームを、メモリ14あるいはドライブ20に移動する処理が行われる(S130以降)。
 S130で、モニタ121はフレームを受信した旨をプロセッサ11に通知し、ホストI/F12内の記憶領域に格納されたフレームを、プロセッサ11で実行されるモニタデータ管理プログラムに引き渡す(S130)。S130で行われる処理の詳細は後述するが、モニタ121はフレームの内容のみを引き渡すのではなく、モニタ領域に格納された、フレーム#151、タイムスタンプ152、関連情報フラグ153、フレーム長154の情報も、モニタデータ管理プログラムに引き渡す。その後モニタ121は、これまでフレームが格納されていたホストI/F12内の記憶領域の内容をクリアする(S140)。クリアした記憶領域には、今後新たに受信されるフレームの情報(フレーム及びフレーム#等の付加情報)を格納することができる。
 なお、上で説明したように、モニタ121がフレームを受信するたびにS130、S140を行う方法に代えて、所定の期間、ホストI/F12内の記憶領域にフレームを蓄積しておくようにしてもよい。その場合、蓄積された1以上のフレームを定期的にメモリ14あるいはドライブ20に移す処理を実行する。
 続いてプロセッサ11が実行する、フレームの格納処理の流れについて、図6、図7を用いて説明する。プロセッサ11は、ホストI/F12からフレーム受信の通知を受領すると(S200:YES)、モニタ121からフレームを取得し、メモリ14にフレームを格納するための記憶領域を一時的に確保し(以下、この領域を「一時領域」と呼ぶ)、確保した一時領域にフレームを格納する(S210)。この時プロセッサ11は、図3を用いて説明したものと同様の形式を一時領域上に作成する。
 S210でプロセッサ11が取得したフレームの処理を行っている過程で、エラー等のイベントが発生することがある。先に述べたとおり、イベントが発生すると、プロセッサ11はSSBLOG、ResetLOG、あるいはSIMを作成する(S220)。SSBLOGを作成した場合(S221:YES)、SSBLOGをSSBLOGの格納領域200のLog領域203に格納するとともに、S210で取得したフレームのフレームとタイムスタンプをSSBLOGの格納領域200(フレーム#201、タイムスタンプ202)に格納する(S222)。そして一時領域上に記憶しているフレームの関連情報フラグ153のうちSSB(153-1)をONにする。
 SSBLOGと同様、ResetLogを生成した場合には、ResetLogに加えて、S210で取得したフレームのフレーム#とタイムスタンプをResetLogの格納領域に格納し、一時領域上に記憶しているフレームの関連情報フラグ153のうちRST(153-2)をONにする(S224~S226)。またSIMを生成した場合には、SIMに加えて、S210で取得したフレームのフレーム#とタイムスタンプをSIMの格納領域に格納し、一時領域上に記憶しているフレームの関連情報フラグ153のうちSIM(153-3)をONにする(S227~S229)。
 その後プロセッサ11は、一時領域上に記憶したフレームを、フレーム格納領域に記憶させる(S230)。図7はS230の詳細な処理の流れを表したものである。以下では、フレームをドライブ20の記憶領域に格納する例(つまりフレーム格納領域がドライブ20内に存在する例)について中心に説明する。
 本実施例に係るストレージ装置1は、1以上のドライブ20の記憶領域を用いて形成される記憶空間であるボリュームを、複数作成することができる。ボリュームには、ホスト2からのライトデータを格納可能な領域と、ストレージ装置1で管理する制御情報等を格納するための領域とが存在する。以下では前者を「ユーザエリア」と呼び、後者を「制御エリア」と呼ぶ。本実施例に係るストレージ装置1は、モニタ121によって取得されたフレーム(及びフレーム#やタイムスタンプ等の付随情報)を、この制御エリアに格納する。
 ただし、制御エリアのサイズは有限であるため、フレームを無尽蔵に格納することはできない。そのため、制御エリアに蓄積されるフレームの数が増加し、空きエリア(制御エリアのうちフレームを未格納のエリア)が不足してきた場合には、何らかの方法で空きエリアを確保する必要がある。また、格納するフレームの数または種類を抑制することも必要となる。図7に記載のフレーム格納処理では、このような処理が行われる。
 以下、図7を用いてフレーム格納処理の流れを説明する。はじめにプロセッサ11は、フィルタリングを実施するか否か判定する(S510)。本実施例に係るストレージ装置1では、蓄積対象のフレームをあらかじめ指定することができる。蓄積対象のフレームを指定する方法として、いくつかの条件を設定し、条件に合致するフレームのみを制御エリアに蓄積し、それ以外のフレームは破棄する方法がありえる。条件の例を以下に示す。
(a) フレームの送信元のホスト2があらかじめ指定されたホストである場合に、そのフレームを蓄積する。
(b) フレームを受信したホストI/F12があらかじめ指定されたホストI/F12である場合に、そのフレームを蓄積する。
(c) フレームが、コマンドまたはステータスを含む場合、そのフレームを蓄積する。データを含むフレームは破棄する。
 たとえば(a)を判定する場合、フレームのS_ID102-3にフレーム送信元のホスト2の識別子が含まれているので、プロセッサ11はS_ID102-3に参照することで判定を行えば良い。またフレームのD_ID102-2にフレーム送信先となるホストI/F12のポートIDが格納されているので、(b)を判定する場合、プロセッサ11はD_ID102-2を参照すればよい。また(c)を判定する場合、プロセッサ11はR_CTL102-1を参照すればよい。
 本実施例に係るストレージ装置1では、管理者(ユーザ)が管理端末5を用いてストレージ装置1にこれらの条件を事前設定することができる。またこれらの条件が設定されない場合、全てのフレームが蓄積対象となる。また、上で説明した条件は一例であり、これ以外の条件を設定するようにしてもよい。また上で説明した条件は、複数設定可能で、たとえば上で説明した条件(a)~(c)の全てを満たすフレームのみを蓄積対象とすることもできる。逆に、上で説明した条件(a)~(c)のいずれか1つを満たすフレームを全て蓄積対象にするようにしてもよい。
 S510では、プロセッサ11は、蓄積対象フレームに関する条件があらかじめ設定されているか否かを判定する。あらかじめ条件が設定されている場合(S510:YES)、処理対象のフレームが、あらかじめ設定された条件に合致するか判定し、条件に合致しないフレームは破棄する(S520)。フレームを破棄した場合には、ここで処理を終了する。
 続いてS540ではプロセッサ11は、制御エリアに蓄積対象フレームを格納可能な空きエリアがあるか判定する。空きエリアがある場合には、プロセッサ11は蓄積対象フレームを空きエリアに格納し(S580)、処理を終了する。空きエリアがない場合には(S540:NO)、プロセッサ11はすでに制御エリアに格納されているフレームの情報の一部を削減する処理を行う(S550)。S550の処理を領域解放処理と呼ぶ。
 S550の後、プロセッサ11は再び、制御エリアに蓄積対象フレームを格納可能な空きエリアがあるか判定する(S560)。空きエリアがある場合には、プロセッサ11は蓄積対象フレームを空きエリアに格納し(S580)、処理を終了する。空きエリアがない場合には(S560:NO)、プロセッサ11はすでに制御エリアに格納されているフレームのうち、最もタイムスタンプの古いフレームから順に削除する(S570)。この削除処理は、今回新たに格納するフレームが格納可能な領域が確保できるまで実施される。
 続いてS550の領域解放処理の流れの一例を、図8を用いて説明する。領域解放処理では、制御エリアに格納されているフレームのうち削除可能なフレームについて、フレームの一部または全部の削除を行う。
 はじめにプロセッサ11は、現在時刻を取得する(S810)。続いてプロセッサ11は、制御エリアに格納されているフレームのうち、未処理の(S830~S870の処理がまだ行われていない)フレームがあるか判定する(S820)。未処理のフレームがある場合、プロセッサは未処理のフレームを1つ選択する(S830)。未処理のフレームがない場合(S820:NO)には、プロセッサ11は処理を終了する。
 プロセッサ11はフレームのタイムスタンプを参照し、所定日数(たとえば3日)以上前に受信したフレームであるか否かを判定する(S840)。本実施例に係るストレージ装置1では、蓄積されたフレームが複数の目的で用いられることを想定している。一つには、障害発生時の原因の特定等、問題解析に用いられることを想定している。もう一つには、蓄積されたフレームが性能解析に用いられることも想定している。
 一般に、障害発生時の原因特定(以下ではこれを「問題解析」と呼ぶ)などを行うケースでは、ユーザデータ(本明細書において「ユーザデータ」とは、ホスト2からのライトデータ、あるいはドライブ20からホスト2に転送されるリードデータのことを意味する)は不要だが、それ以外の情報は原則として保存されていることが求められる。そのためこの場合には、フレーム内からユーザデータのみを削除する。図4を用いて具体例を説明する。フレームがデータフレームの場合、コマンド/データ/ステータス情報103にユーザデータが格納されているので、それを削除する。またフレームがコマンドフレームの場合、コマンド/データ/ステータス情報103の一部にユーザデータが格納されていることがある。そのためコマンドフレームの一部にユーザデータが格納されている場合にはそれも削除する。
 一方性能解析にフレームを用いる場合、各処理の処理時間を特定できることが望まれる。そのため、フレームをホスト2から受信した時刻、あるいはフレーム(ステータスフレーム)をホスト2に返送した時刻など、フレーム送受信が行われた時刻についての情報が重要となる。逆にフレームに含まれる詳細な情報の重要性はそれほど高くない。そのため、蓄積されたフレームを性能解析に用いる場合には、フレームの多くの部分を削除可能である。
 また、問題解析を行うケースでは、障害が発生した時点に近い期間の情報が必要とされ、あまり古い情報は必要でないことが多い。また性能解析に用いられる場合、ある程度長期間の情報を必要とすることがある。そのため、本実施例に係るストレージ装置1では、比較的現在時刻に近い時点で取得されたフレームについては、あまり情報を削減せずに蓄積し、現在時刻よりも比較的遠い(古い)時点で取得されたフレームについては、情報削減量を多くする。
 S830で取得したフレームが所定日数(たとえば3日)より前に受信したフレームであった場合(S840:YES)、プロセッサ11は、このフレームは問題解析に用いられる可能性は低いと判断し、多くの情報を削除する。具体的には各フレームの、コマンド/データ/ステータス情報103に含まれている情報をすべて削除する(S860)。またフレームがデータフレームであった場合には、データフレームはすべて削除する(S870)。
 一方S830で取得したフレームが所定日数(たとえば3日)以内に受信したフレームであった場合(S840:NO)、プロセッサ11は、このフレームは問題解析に用いられる可能性があると判断する。そしてフレームのコマンド/データ/ステータス情報103の中からデータのみを削除する(S850)。
 また、全てのフレームについて、フレームの一部または全体を削除した後、制御エリア内のフレームの再配置を行う(S880)。具体的には各フレームの間に、未使用領域が存在しないように、制御エリアの先頭から順にフレームを格納し直す。これによって空きエリアを作成することができる。
 ストレージ装置1は、フレーム格納領域に蓄積されたフレーム実体155、そしてフレーム#151やタイムスタンプ152等を、管理端末5に送出することができる。またHTPLOG、SSBLOG、RESETLOG、SIMも同様に、管理端末5に送出することができる。これらの情報の管理端末5への送出は、ユーザが管理端末5を用いてストレージ装置1に情報送出を指示した時点で送出されるようにしてもよいし、定期的にこれらの情報が管理端末5に送出されるようにしてもよい。管理端末5に送られたこれらの情報は、一旦管理端末5の持つ記憶媒体(HDD等)に格納される。ユーザは、管理端末5に届けられたフレームとSSBLOG等の内容の解析を行う際、フレームとSSBLOG等に付されているフレーム#やタイムスタンプが同一であるフレーム(及びSSBLOG)を検索することで、たとえばイベント(障害等)が発生した時に出力されたSSBLOGとその時に処理中であったフレームとを一意に特定することができる。
 また、管理端末5が、SSBLOG等の情報とフレームを関連付けて、ユーザに提示する機能を備えていてもよい。図9を用いて一例を説明する。管理端末5のCPU(非図示)で、管理プログラムが実行されることにより、図9に示す処理が行われる。
 管理プログラムはユーザから、参照したい情報(SSBLOG、SIM等)、及び参照したい情報が生成された時刻(あるいは時間帯)の指定を受け付けることができる。以下では参照したい情報としてSSBLOGが指定された例を中心に説明する。
 管理プログラムはユーザから、参照したい情報と、時間帯の指定を受け付ける(S1010)。管理プログラムはS1010で参照したい情報と時刻(時間帯)の指定を受け付けたことに応じて、自身の記憶媒体に格納されている情報(SSBLOG)のうち、指定された時刻(時間帯)に出力されたSSBLOGを検索し、管理端末5の画面に表示する(S1020)。指定された時刻(時間帯)に出力されたSSBLOGの検索は、タイムスタンプ202を参照することで可能である。また表示方法は様々な方法を採用可能である。ストレージ装置1から受信したSSBLOGの内容をそのままダンプリストの形式で出力してもよいし、ユーザによって見やすい形式に変換したものを画面出力してもよい。
 S1010で、参照したい情報として、SSBLOGの他にフレームを参照したい旨の指定を受け付けている場合、管理プログラムは自身の記憶媒体内に格納されている複数のフレームの中から、S1020で表示されたSSBLOGに関連するフレームを検索する(S1030)。検索方法は、SSBLOGに付されているフレーム#と同一番号を有するフレームを探索すればよい。
 SSBLOGに関連するフレームが検索されると、管理プログラムは続いて、検索されたフレームのOX_ID(102-4)と同一の値を有するフレームを検索する(S1040)。これにより、たとえばSSBLOGにデータフレームが関連付けられている場合、このデータフレームと同一OX_IDを有するコマンドフレームやステータスフレームも併せて検索することができる。最後に管理プログラムは、検索されたフレームの内容を画面表示する(S1050)。
 上では、SSBLOGと関連するフレームを、管理端末5が自動抽出する例を説明したが、逆でも良い。つまりユーザから、ある時刻(時間帯)にストレージ装置1が受信したフレームを参照したい旨の指定を受け付けると、管理プログラムがそのフレームに関連付けられたSSBLOG等を検索して表示するようにしてもよい。
 続いて実施例2の説明を行う。実施例2に係るストレージ装置の構成は、実施例1で説明したものと同じである。
 実施例1では、SSBLOG等に、1つのフレームの情報(フレーム#とタイムスタンプ)が対応付けられて格納される構成を前提としていた(図2)。ただしSSBLOG等に複数のフレームが関連付けられる場合もある。実施例2ではそのような場合における処理の内容を説明する。
 図10に、実施例2に係るSIM等の格納領域200’の一例を示す。この格納領域は、メモリ14またはドライブ20に設けられる。格納領域200’は、先頭フレーム#201-1、終端フレーム#201-2、タイムスタンプ1(202-1)、タイムスタンプ2(202-2)、Log領域203の領域を有する。以下では一例として、SIMの格納領域について説明するが、その他のログ(RESETLOG、SSBLOG、HTPLOG)も同様の格納形式で格納される。また、別の実施形態として、SIMだけが図10の格納領域200’に格納され、その他のログは実施例1で説明した格納領域200に格納されるようにしてもよい。
 Log領域203は、SIMを格納するための情報であり、障害発生時の詳細情報等が格納される。一方先頭フレーム#201-1とタイムスタンプ1(202-1)にはそれぞれ、SIMと関連付けられたフレームのフレーム#及びタイムスタンプが格納される。また終端フレーム#201-2とタイムスタンプ2(202-2)にはそれぞれ、SIMと関連付けられたフレームのフレーム#及びタイムスタンプが格納される。なお、先頭フレーム#201-1と終端フレーム#201-2に格納されるフレーム#の違いであるが、先頭フレーム#201-1には、SIMと関連付けられるフレームのうち、最も古いフレームのフレーム#が格納される。逆に終端フレーム#201-2には、SIMと関連付けられるフレームのうち、最も新しい(時間的に現時点の時刻に近い)フレームのフレーム#が格納される。
 実施例2に係るストレージ装置は、ホスト2から、内容の一部が破損したフレームを所定頻度以上受信した時、ホスト2とストレージ装置1の間の経路(ケーブル等)の不良、というイベントが発生したと判断し、SIMを作成し、ユーザに報告する。フレームの破損はたとえば、フレームに含まれているLRC104やCRC105等から検出できる。以下、内容の一部が破損しているフレームのことを、「破損フレーム」と呼ぶ。
 実施例2に係るストレージ装置における、フレーム格納形式150’の構成例を図11に示す。フレーム#151~フレーム実体155は、実施例1で説明したものと同じである。実施例1で説明したものと異なる点は、フレーム格納形式150’はError156を有する点である。フレームが破損フレームであった場合、Error156に“1”が格納され、そうでない場合にはError156に“0”が格納される。
 続いて実施例2に係るストレージ装置で実行される、フレームのモニタ処理の流れを説明する。この処理は実施例1におけるモニタ処理とほとんど同じであるため、以下では図5を用いてモニタ処理の流れを説明する。また実施例1におけるモニタ処理と異なる点を中心に説明する。
 S10~S40とS60~S140は、実施例1で説明したものと同じである。S50でモニタ121はモニタ領域にフレームを格納するが、この時に図11の形式でフレーム及びその他の情報(フレーム#151等)を格納する。またフレームが破損フレームであった場合には、Error156に“1”を格納し、そうでない場合にはError156に“0”を格納する。以上がモニタ処理の説明である。
 続いて実施例2に係るストレージ装置で実行されるフレームの格納処理の流れについて説明する。この処理も、実施例1で説明したものとほとんど同じであるため、以下ではまず、図6を用いて、実施例1におけるフレームの格納処理と異なる点について説明する。
 実施例2におけるフレームの格納処理は、一時領域にフレームを格納する処理(図6 S210に相当する処理)、そしてSIMが生成された時の処理(図6:S227~S229に相当する処理)が、実施例1におけるフレームの格納処理と異なる。その他の点は、実施例1で説明したものと同じである。
 まず、実施例2におけるフレームの格納処理で使用される管理情報である、計数テーブル250について、図12を用いて説明する。計数テーブル250は、受信数251、破損数252、開始時刻253の欄を有する。
 受信数251は、プロセッサ11がフレームを受信した回数が格納される欄である。プロセッサ11は、フレームの格納処理を実施するたびに、受信数251に1を加算する。破損数252は、プロセッサ11が破損フレームを受信した回数が格納される欄である。プロセッサ11は、フレームの格納処理実行時に、処理対象のフレームが破損フレームであった場合、破損数252に1加算する。
 開始時刻253は、受信数251や破損数252の計数を開始した時刻が記録される欄である。プロセッサ11はストレージ装置1の起動時に、起動時点の時刻を格納する。また詳細は後述するが、フレームの格納処理の過程で、計数テーブル250の内容がリセットされることがある。計数テーブル250の内容をリセットする時、プロセッサ11は開始時刻253に、その時点の時刻(計数テーブル250の内容をリセットした時刻)を格納する。
 続いて実施例2における、一時領域にフレームを格納する処理について、図13を用いて説明する。つまり実施例2に係るストレージ装置で実行されるフレームの格納処理では、図6のS210の処理が、以下で説明する図13の処理に置き換わったものになる。
 プロセッサ11はS211において、モニタ121からフレームを取得し、一時領域にフレームを格納する。続いてプロセッサ11は、計数テーブル250の受信数251に1を加算し、また取得したフレームが破損フレームだった場合には破損数252にも1を加算する(S212)。
 S213ではプロセッサ11は、計数テーブル250の開始時刻253と現在時刻を比較し、開始時刻253に格納された時刻から所定時間(たとえばA分)を経過したか判定する。所定時間を経過している場合(S213:YES)、プロセッサ11は、(破損数252÷受信数251)を算出する。本実施例では、この算出された値のことを、フレームの「欠損率」と呼ぶ。欠損率が所定の閾値(たとえばn%)を超過していた場合(S214:YES)、プロセッサ11は経路(ケーブル等)に不良が発生している旨を報告するためのSIMを作成する(S215)。欠損率が所定の閾値以下の場合(S214:NO)には、S215の処理は行われない。
 S216でプロセッサ11は計数テーブル250の内容をリセットする(受信数251、破損数252の値を0にする。また開始時刻253には現在時刻が格納される)。その後、S220以降の処理が実行される。
 また、S213で、所定時間を経過していないと判定された場合には、S214、S215、S216の処理は実行されず、プロセッサ11はS220以降の処理を行う。
 続いてSIMが生成された時の処理については、図14を用いて説明する。つまり実施例2に係るストレージ装置で実行されるフレームの格納処理では、図6のS227~S229の処理が、以下で説明する図14の処理に置き換わったものになる。
 SIMが生成された場合(S227:YES)、SIM生成の理由が、破損フレームを所定頻度以上受信したことか否かによって、プロセッサ11は異なる処理を行う。SIM生成の理由が、破損フレームを所定頻度以上受信したためではない場合(S701:NO)は、実施例1と同様に、プロセッサ11はSIMに加えてS210で取得したフレームのフレーム#とタイムスタンプをSIMの格納領域に格納し(S228)、一時領域上に記憶しているフレームの関連情報フラグ153のうちSIM(153-3)をONにする(S229)。なおS228では、フレーム#とタイムスタンプはそれぞれ、先頭フレーム#201-1、タイムスタンプ1(202-1)に格納される。そして終端フレーム#201-2とタイムスタンプ2(202-2)には無効値(NULL)が格納される。
 SIM生成の理由が、破損フレームを所定頻度以上受信したためである場合(S701:YES)、つまり先に実行されたS214で、経路に不良が発生している旨を報告するSIMの作成が決定された場合は、プロセッサ11はフレーム破損に関連する全フレーム#の特定を行う(S702)。
 具体的にはS702では、プロセッサ11はフレーム格納領域に格納されているフレームのうち、タイムスタンプ152が最も新しいものから順に、Error156が“1”のフレームを探し出す。そしてError156が“1”のフレームがあった場合、プロセッサ11はそのフレームのSIM(153-3)をONにする。この作業を、(現在時刻-タイムスタンプ152)が所定時間以下である全フレームに対して実行する。またプロセッサ11は、この作業の結果、SIM(153-3)がONにされたフレームのうち、最もタイムスタンプ152が古いフレームを特定する。以下ではこのフレームのことを「先頭フレーム」と呼ぶ。またプロセッサ11は、SIM(153-3)がONにされたフレームのうち、最もタイムスタンプ152が新しいフレームも特定する。以下ではこのフレームのことを「終端フレーム」と呼ぶ。
 S703でプロセッサ11は、SIMの格納領域200’の先頭フレーム#201-1、タイムスタンプ1(202-1)に、先頭フレームのフレーム#151とタイムスタンプ152を格納し、またSIMの格納領域200’の終端フレーム#201-2、タイムスタンプ2(202-2)に、終端フレームのフレーム#151とタイムスタンプ152を格納する。
 実施例2に係るストレージ装置で実行されるフレームの格納処理は、上で説明した以外の点は実施例1で説明したものと同じである。これにより、管理端末5に報告されるSIMには、経路不良が発生した旨の情報が記録されるので、SIMが報告される管理端末5で経路不良を検知することができる。
 また管理端末5には所定時間内に発生した破損フレームの情報も報告される。実施例2に係る管理端末5は、経路不良が発生した旨を報告するSIMを受信した時、同時に取得したフレームの情報を分析し、欠損率を算出することができる。これにより、ストレージ装置1のユーザまたは保守員は、どの期間にどれだけの破損フレームを受信したかを正確に確認できるため、必要に応じてホスト2とストレージ装置1間のパスの交換などの作業を行うことができる。
 以上、説明してきたように、本実施例に係るストレージ装置では、ホスト計算機から受信したフレームと、当該受信したフレームに係る処理の過程で発生したエラーに関する情報とを、対応付けて蓄積する。そして蓄積された情報を外部の管理端末に送出する機能を有する。フレームと、フレームに係る処理の過程で発生したエラーに関する情報には、共通の識別子(フレーム#やタイムスタンプ)が付されているので、ユーザが管理端末に送信されたフレームやエラーに関する情報の内容を解析する際、エラー要因を特定するための情報に容易にアクセスすることができる。
 以上、本発明の実施例を説明したが、これは、本発明の説明のための例示であって、本発明の範囲をこれらの実施例にのみ限定する趣旨ではない。すなわち、本発明は、他の種々の形態でも実施する事が可能である。
 たとえば上で説明した例では、領域解放処理によって、フレームからユーザデータを削除していた。ただしユーザデータも問題解析に利用できることがあるので、所定日数(たとえば3日)以内に受信したフレームであった場合には、ユーザデータを削除しないようにしてもよい。
 ユーザデータが問題解析に利用できる例として、CRCエラーの解析がある。CRCエラーはたとえば、データとフレームのCRC105とが整合しない場合に発生する。ただし、フレームをホスト2から受信した時点で、すでにデータとフレームのCRC105とが整合しない状態になっている場合もあれば、ストレージ装置1内の処理の過程で、データ内容にエラーが混入し、CRCエラーが発生する場合もある。フレームに含まれるユーザデータも蓄積しておくことで、フレームをホスト2から受信した時点で既にデータにエラーが混入していたのか、ストレージ装置1内でエラーが混入したのかを、判別できる。
1: ストレージ装置
2: ホスト
3: SAN
5: 管理端末
6: LAN
10: ストレージコントローラ
11: プロセッサ(CPU)
12: ホストI/F
13: ディスクI/F
14: メモリ
16: 内部スイッチ
20: ドライブ
121: モニタ

Claims (12)

  1.  ホストとの間で情報の送受信を行うためのホストインタフェースと、プロセッサと、記憶媒体を有するストレージ装置と、
     前記ストレージ装置に接続される管理端末とを有するストレージシステムであって、
     前記プロセッサは、前記ホストとの間で送受信される前記情報の複製を、前記記憶媒体上の格納領域に記録し、前記ストレージ装置で検出したイベントのイベント情報を、前記記憶媒体上のログ領域に記録するよう構成されており、
     前記プロセッサは、前記イベントが、前記ホストから受信した前記情報に起因して発生したものであった場合、
     前記情報と前記イベント情報とを関連付けて、前記記憶媒体に記録する、
    ことを特徴とする、ストレージシステム。
  2.  前記プロセッサは、前記情報に一意な識別番号を付して前記格納領域に記録し、前記イベント情報に前記イベントの発生した時刻を付して前記ログ領域に記録し、
     前記プロセッサはまた、前記情報と前記イベント情報とを関連付けて記録するために、前記イベント情報に、前記情報に付された前記識別番号を付加して前記ログ領域に記録する、
    ことを特徴とする、請求項1に記載のストレージシステム。
  3.  前記ストレージ装置は、前記ホストとの間でファイバチャネル規格に従った、前記情報の送受信を行い、前記プロセッサは、前記情報としてフレームを前記格納領域に記録する、ことを特徴とする、請求項2に記載のストレージシステム。
  4.  前記プロセッサは、前記ホストから受信した前記フレームのうち、あらかじめ設定された条件に合致しないフレームは、前記格納領域に記録しない、
    ことを特徴とする、請求項3に記載のストレージシステム。
  5.  前記プロセッサは、前記格納領域に前記フレームを格納する空き領域がなくなった場合、
     前記格納領域から、記録された前記フレームの一部の情報を削除する、
    ことを特徴とする、請求項4に記載のストレージシステム。
  6.  前記フレームは、ヘッダ情報と、コマンド/データ/ステータス情報を含み、
     前記プロセッサは前記フレームの一部のデータを削除する時、
     前記フレームの受信日時と現在日時の差が所定日数より大きい場合、コマンド/データ/ステータス情報を削除し、
     前記フレームの受信日時と現在日時の差が所定日数以内の場合、コマンド/データ/ステータス情報の中からデータ情報を削除する
    ことを特徴とする、請求項5に記載のストレージシステム。
  7. 前記プロセッサは、内容が破損した前記フレームを所定頻度以上受信した時に、前記イベント情報に複数の前記内容が破損したフレームの識別番号を含めて、前記ログ領域に記録する、ことを特徴とする、請求項3に記載のストレージシステム。
  8.  前記ストレージ装置は、前記格納領域に記録した前記フレームと、前記ログ領域に記録された前記イベント情報を、管理端末に送出するよう構成されており、
     前記管理端末は、ユーザから期間を指定されると、前記指定された期間に生成された前記イベント情報の内容を、前記管理端末の有する表示装置に表示するとともに、前記表示装置に表示された前記イベント情報に関連付けられた前記フレームの内容を、前記表示装置に表示する、
    ことを特徴とする、請求項3に記載のストレージシステム。
  9.  ホストとの間で情報の送受信を行うためのホストインタフェースと、プロセッサと、記憶媒体を有するストレージ装置の制御方法において、
     前記ストレージ装置は前記記憶媒体上に、
     前記ホストインタフェースを介して前記ホストとの間で送受信された情報の複製を記録するための格納領域と、
     前記ストレージ装置で検出したイベントのイベント情報を記録するためのログ領域と、を有し、
     前記ストレージ装置は、
     1) 前記ホストから前記情報を受信し、
     2)前記イベントが前記受信した情報に起因して発生した場合、前記情報と前記イベント情報とを関連付けて、前記記憶媒体に記録する、
    ことを特徴とする、ストレージ装置の制御方法。
  10.  前記プロセッサは、前記情報に一意な識別番号を付して前記格納領域に記録し、前記イベント情報に前記イベントの発生した時刻を付して前記ログ領域に記録するよう構成されており、
     前記プロセッサは前記情報と前記イベント情報とを関連付けて記録する時、前記イベント情報に、前記情報に付された前記識別番号を付加して前記ログ領域に記録する、
    ことを特徴とする、請求項9に記載のストレージ装置の制御方法。
  11.  前記ストレージ装置は、前記ホストとの間でファイバチャネル規格に従った、前記情報の送受信を行い、前記プロセッサは、前記情報としてフレームを前記格納領域に記録する、ことを特徴とする、請求項10に記載のストレージ装置の制御方法。
  12.  前記ストレージ装置は、前記格納領域に記録した前記フレームと、前記ログ領域に記録された前記イベント情報を、管理端末に送出し、
     前記管理端末は、ユーザから期間を指定されると、前記指定された期間に生成された前記イベント情報の内容を、前記管理端末の有する表示装置に表示するとともに、前記表示装置に表示された前記イベント情報に関連付けられた前記フレームの内容を、前記表示装置に表示する、
    ことを特徴とする、請求項11に記載のストレージ装置の制御方法。
PCT/JP2015/066032 2015-06-03 2015-06-03 ストレージシステム WO2016194166A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/066032 WO2016194166A1 (ja) 2015-06-03 2015-06-03 ストレージシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/066032 WO2016194166A1 (ja) 2015-06-03 2015-06-03 ストレージシステム

Publications (1)

Publication Number Publication Date
WO2016194166A1 true WO2016194166A1 (ja) 2016-12-08

Family

ID=57440379

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/066032 WO2016194166A1 (ja) 2015-06-03 2015-06-03 ストレージシステム

Country Status (1)

Country Link
WO (1) WO2016194166A1 (ja)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0728604A (ja) * 1993-07-13 1995-01-31 Hitachi Ltd ディスク装置
JPH08139722A (ja) * 1994-11-15 1996-05-31 Toshiba Corp ネットワーク障害予測装置
JP2002108594A (ja) * 2000-09-27 2002-04-12 Ricoh Co Ltd プリントシステム
JP2005071068A (ja) * 2003-08-25 2005-03-17 Renesas Technology Corp 記憶装置
JP2005151437A (ja) * 2003-11-19 2005-06-09 Hitachi Ltd 記憶装置、記憶装置システム、および、通信制御方法
JP2007114834A (ja) * 2005-10-18 2007-05-10 Hitachi Ltd ログを管理するストレージ装置及び計算機システム
JP2013041547A (ja) * 2011-08-19 2013-02-28 Toshiba Corp 情報処理装置、性能評価ツール、外部記憶装置の性能評価方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0728604A (ja) * 1993-07-13 1995-01-31 Hitachi Ltd ディスク装置
JPH08139722A (ja) * 1994-11-15 1996-05-31 Toshiba Corp ネットワーク障害予測装置
JP2002108594A (ja) * 2000-09-27 2002-04-12 Ricoh Co Ltd プリントシステム
JP2005071068A (ja) * 2003-08-25 2005-03-17 Renesas Technology Corp 記憶装置
JP2005151437A (ja) * 2003-11-19 2005-06-09 Hitachi Ltd 記憶装置、記憶装置システム、および、通信制御方法
JP2007114834A (ja) * 2005-10-18 2007-05-10 Hitachi Ltd ログを管理するストレージ装置及び計算機システム
JP2013041547A (ja) * 2011-08-19 2013-02-28 Toshiba Corp 情報処理装置、性能評価ツール、外部記憶装置の性能評価方法

Similar Documents

Publication Publication Date Title
US7783606B2 (en) Method and system for remote data recovery
JP2013257801A (ja) サーバコンピュータおよびドライブ制御装置
US10379977B2 (en) Data management method, node, and system for database cluster
JP4813872B2 (ja) 計算機システム及び計算機システムのデータ複製方法
TW201518968A (zh) 用於自主記憶體搜尋之方法及系統
US11868625B2 (en) Alert tracking in storage
US9348711B2 (en) Copy control apparatus and copy control method
JP6133396B2 (ja) 計算機システム、サーバ、及び、データ管理方法
US20160196085A1 (en) Storage control apparatus and storage apparatus
WO2015085529A1 (zh) 数据复制方法、数据复制装置和存储设备
US10133505B1 (en) Cooperative host and data storage system services for compression and encryption
US10642508B2 (en) Method to limit impact of partial media failure of disk drive and detect/report the loss of data for objects due to partial failure of media
WO2012081058A1 (en) Storage subsystem and its logical unit processing method
US10474363B1 (en) Space reporting in a storage system
US8799580B2 (en) Storage apparatus and data processing method
US11249666B2 (en) Storage control apparatus
WO2016194166A1 (ja) ストレージシステム
US9348704B2 (en) Electronic storage system utilizing a predetermined flag for subsequent processing of each predetermined portion of data requested to be stored in the storage system
JP2006040011A (ja) ディスクアレイシステム
WO2016098150A1 (ja) ストレージシステム
US7587466B2 (en) Method and computer system for information notification
WO2015198371A1 (ja) ストレージシステム及び記憶制御方法
US8667243B2 (en) Storage apparatus, controller, and method of controlling controller
US10866756B2 (en) Control device and computer readable recording medium storing control program
US11662908B2 (en) Space-efficient storage of system-monitoring data

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15894199

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15894199

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP