US20050122788A1 - Method and apparatus for verifying data in a storage system - Google Patents

Method and apparatus for verifying data in a storage system Download PDF

Info

Publication number
US20050122788A1
US20050122788A1 US11/025,471 US2547104A US2005122788A1 US 20050122788 A1 US20050122788 A1 US 20050122788A1 US 2547104 A US2547104 A US 2547104A US 2005122788 A1 US2005122788 A1 US 2005122788A1
Authority
US
United States
Prior art keywords
data
storage controller
storage
host computer
area
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US11/025,471
Inventor
Kazunobu Ohashi
Takao Satoh
Kiichiro Urabe
Toshio Nakano
Shizuo Yokohata
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to US11/025,471 priority Critical patent/US20050122788A1/en
Publication of US20050122788A1 publication Critical patent/US20050122788A1/en
Priority to US12/173,650 priority patent/US7725611B2/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • 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
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • 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
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • 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
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • 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
    • G06F2003/0697Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers device management, e.g. handlers, drivers, I/O schedulers
    • 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
    • G06F3/0601Interfaces specially adapted for storage systems

Definitions

  • the present invention relates to a method for verifying data in a storage system, a host computer and a storage controller in a storage system.
  • a storage system in which a host computer and a storage controller such as a disk array device are interconnected via a SAN (Storage Area Network) or other networks for intensive storage operation or other similar purposes have been attracting considerable attention.
  • Storage systems configured as above are now being operated at IDCs (Internet Data Centers) and many other places.
  • IDCs Internet Data Centers
  • NAS Network Attached Storage
  • LAN Local Area Network
  • the data suitability may be lost depending on the SAN or other cm cation path for connecting a host computer to a storage controller or due to an internal process performed by the storage controller. Further, the storage controller is frequently shared by a plurality of host computers. In such a situation, the data suitability may be if, for instance, an application program running on one host computer inadvertently accesses the data of an application program running on another host computer.
  • the storage controller will not be able to recognize such a loss of data suitability and will automatically store the unsuitable data.
  • the application program will not recognize the loss of data suitability until it reads the data later. If there is a long time lag between the instant at which the data is written and the instant at which the data is read, data recovery may be difficult to achieve.
  • the storage controller is configured to verify the data.
  • data stored in the storage controller by an application program is generally provided with additional information such as information added by an operating system (hereinafter referred to as the “OS”) running on a host computer and information about volumes having been logically organized by a host computer.
  • OS operating system
  • the data stored in the storage controller by an application program is not arranged in a manner in which the data on a host computer is arranged for reference by the application program.
  • the storage controller would not be able to get hold of the above-mentioned information and arrangement. That is, as far as the traditional storage system scheme is used, the data verification process performed by an application program cannot be performed by the storage controller. If it were to allow the storage controller to accomplish such data verification, it would be necessary to establish a scheme that would enable the storage controller to acquire relevant information from an application program, OS, and volume management program.
  • Japanese Patent Application Laid-open Publication No. 8-263223 discloses a mechanism in which the CPU generates RAS data when an I/O operation is performed by an application program and attaches the RAS data to data to be written onto a magnetic disk, in order to enable a magnetic disk input/output channel and magnetic disk controller to conduct a data check.
  • the RAS data is independently generated by the CPU and appended to the data to be written. Further, the RAS data does not relate to the data suitability required by an application program.
  • the disclosed scheme is not configured to recognize such information or configuration nor to verify the suitability demanded by individual application programs running on a host computer.
  • the present invention is made to solve the foregoing and other problems, and it is an object of the present invention to provide a data verification method for verifying and assuring data suitability in a storage system with increased accuracy and, more particularly, to offer a method for carrying out, in a storage system, data verification demanded by an application program.
  • a method for verifying data in a storage system including a host computer and a storage controller, the storage controller being connected to the host computer for communication therewith, being capable of receiving an input/output request transmitted from the host computer, and, according to the request, being capable of performing a data input/output process to a storage device
  • the method comprising the steps of: the host computer executing an application program for organizing and managing data to be stored in the storage controller in accordance with a predefined specification; the host computer transmitting area management data to the storage controller, wherein the area management data is for specifying a range of a storage area that is provided in the storage device to be used by the application program; the storage controller receiving the area management data; and the storage controller receiving a data input/output request that is transmitted from the host computer caused by a process performed by the application program, and verifying whether data that is to be processed according to the received data input/output request and to be input/out
  • FIG. 1 is a diagram illustrating the configuration of a storage system according to an en t of the present invention
  • FIG. 2 is a diagram showing an area management table according to an embodiment of the present invention.
  • FIG. 3 is a flowchart depicting processing steps that are performed in an embodiment of the present invention when a host computer transmits an area management table to a storage controller;
  • FIG. 4 is a diagram illustrating a logical device management table according to an embodiment of the present invention.
  • FIG. 5A is a diagram illustrating a data unit that is used in an embodiment of the present invention when an application program performs a data input/output operation to a logical volume;
  • FIG. 5B is a diagram showing how a logical volume management program divides a data unit, which is shown in FIG. 5A , when performing an input/output operation to a storage controller;
  • FIG. 5C is a diagram showing h the divided data are stored in a logical device
  • FIG. 6A is a diagram illustrating a data unit, which is shown in FIG. 5A , in a SCSI data format;
  • FIG. 6B is a diagram illustrating the data, which is shown in FIG. 5B , in a SCSI data format
  • FIG. 7 is a flowchart depicting data verification processing steps that are performed by a storage controller according to an embodiment of the present invention.
  • FIG. 8 is a block diagram that shows the configuration of an example of a host c
  • a method for verifying data is a method for verifying data in a storage system, the storage system including a host computer and a storage controller, the storage controller being connected to the host computer for communication therewith, being capable of receiving an input/output request transmitted from the host computer, and, according to the request, being capable of performing a data input/output process to a storage device, comprising the steps of: the host computer executing an application program for organizing and managing data to be stored in the storage controller in accordance with a predefined specification; the host computer transmitting area management data to the storage controller, wherein the area management data is for specifying a range of a storage area that is provided in the storage device to be used by the application program; the storage controller receiving the area management data; and the storage controller receiving a data input/output request that is transmitted from the host computer caused by a process performed by the application program, and verifying whether data that is to be processed according to the received data input/output request and to be input/output to/from the storage area used by the
  • the “input/output request transmitted from the host computers” is, for instance, a data write request or data read request for the above-mentioned storage device such as a disk drive included in a storage controller or externally connected to the storage controller.
  • the “area management data” is the data registered in an area management table, which is described later.
  • the data verification method according to the present invention verifies, also in the storage controller, whether the data handled by application programs are organized in accordance with a predefined specification. This ensures that the data suitability can be verified and assured with increased accuracy.
  • the data verification method mentioned above may comprise the steps of: the storage controller storing a plurality of algorithms, wherein each of the algorithms is for performing the verification for each of a plurality of application programs running on the host computer; the storage controller specifying storage areas used by each of the application programs in accordance with the area management data transmitted from the host computer; the storage controller receiving a data input/output request transmitted from the host computer caused by a process performed by one of the application programs, and specifying the application program relating to the received data input/output request in accordance with the area management data; and the storage controller verifying, using the algorithm provided for the specified application program, whether data that is to be processed according to the received data input/output request and to be input/output to/from the storage area, which is specified in accordance with the area management data, is organized in accordance with the predefined specification.
  • the data verification method described above may comprise the steps of: the host computer transmitting the algorithm from the host computer to the storage controller; and the storage controller receiving and storing the algorithm.
  • the data verification method described above may comprise the step of the host computer transmitting, when a change has been made in the range of the storage area, the area management data reflecting the change to the storage controller. Accordingly, it becomes possible to ensure that also the storage controller can get hold of the latest information about the storage area of the storage device for use by an application program.
  • the storage area in the storage device used by the application program may be an area excluding an area used by control information added by software other than the application program running on the host computer.
  • the area management data may include data for designating a range of the storage area that is provided for the application program as a volume having been logically organized using the storage area of the storage device.
  • the volume may be organized by managing the storage area of the storage device according to a RAID method.
  • the storage device may be provided integrally with the storage controller. Further, the data indicating the result of the verification may be transmitted to the host computer.
  • the storage area may be provided as a logical storage device that is organized in a physical storage region provided by at least one physical storage device.
  • the predefined specification means, for example, that prescribed data is inserted into a prescribed position of the data.
  • the storage controller may be connected to the host computer for communication therewith via a communication line conforming to the SCSI standard, via a SAN, or via a Lm.
  • an alternative configuration may be used so that the transmission of the area management data from the host computer to the storage controller is performed via a communication path other than a communication path for connecting the storage controller and the host computer.
  • the use of such an alternative configuration will enable, for instance, communication load distribution.
  • FIG. 1 shows the configuration of a storage system according to an embodiment of the present invention.
  • a storage controller 10 shown in this figure is a disk array device and a host computer 20 is a mainframe computer or a personal computer that uses the storage controller 10 as a storage resource.
  • the storage controller 10 is connected to the host computer 20 via a communications means 40 .
  • the communications means 40 is a communication line conforming to the SCSI interface standard, a LAN (Local Area Network), or a SAN (Storage Area Network).
  • the storage controller 10 may include the following: a CPU 11 for controlling the various parts and functions in the storage controller 10 and executing and controlling various processing programs; a control memory 12 for storing various information; physical devices (not shown), such as disk drives, that serve as “storage devices”; a host interface 13 , which may serve as “means for receiving area management data” and/or “means for receiving a data input/output request”, for connecting to the host computer 20 ; a data controller 14 for controlling the data input/output to/from the physical device in accordance with a data input/output request received from the host computer 20 ; a cache memory 15 ; a data buffer 16 for temporarily storing the data to be registered in the cache memory 15 ; and a disk interface 17 for controlling the physical devices in accordance with the instructions from the data controller 14 .
  • the host interface 13 is equipped th one or more connection ports 131 .
  • An external interface 26 of the host computer 20 is, for instance, a Host Bus Adapter that serves as a channel interface and may function as “means for transmitting area management data”.
  • one or more logical devices 18 are organized in physical storage regions provided by the physical devices. Each organized logical device is assigned a unique logical device ID that can be used when the host computer 20 designates a storage area of the storage controller 10 . In the present t, it is assumed that five logical devices 18 are organized in the storage controller 10 , each of which being designated by logical device IDs are A, A′, B, C, and X.
  • An OS 21 runs on the host computer 20 .
  • a logical volume management program 22 runs on the OS 21 .
  • application programs 23 run on the OS 21 .
  • area management program 24 runs on the OS 21 .
  • FIG. 8 is a block diagram that shows the configuration of the host computer 20 .
  • the host computer 20 comprises at least a CPU (Central Processing Unit) 201 , a memory 28 , a storage device 202 , and the above-mentioned external interface 26 .
  • CPU Central Processing Unit
  • the CPU 201 takes charge of the overall control of the host computer 20 and realizes various functions according to the present example by executing various p stored in the memory 28 .
  • the storage device 202 can store various programs and data. For example, hard disk devices and the like may be used for the storage device 202 .
  • the storage device 202 stores the OS 21 , the logical volume management program 22 , the application programs 23 , and the area management program 24 , details of which being explained later on.
  • the logical volume management program 22 organizes one or more logical volumes 27 in the logical storage regions of the logical devices 18 in the storage controller 10 , and provides storage areas specified by the logical volumes 27 to the application programs 23 .
  • An example of the logical volume management program 22 may be a so-called SoftRAID program, which manages the storage areas provided by the logical devices of the storage controller 10 according to the RAID (Redundant Array of Independent Disks) method based on software and offers the resulting organized logical volumes 27 to the application programs 23 .
  • RAID Redundant Array of Independent Disks
  • each application program 23 is a database software, which is provided with a scheme for organizing and managing the data to be stored in the storage controller 10 in accordance with a predefined specification, that is, a mechanism for verifying the suitability of the data.
  • Each application program 23 is also provided with an algorithm for checking whether the data to be processed is organized in accordance with a predefined specification, that is, for verifying whether the data is suitable.
  • the area management program 24 manages an area management table 25 stored in a memory 28 of the host computer 20 . Details on the area management table 25 are explained below.
  • the area management program 24 is capable of transmitting the area management table 25 to the storage controller 10 at an appropriate timing. This will be described in detail later.
  • FIG. 2 shows an example of an area management table 25 .
  • the area management table 25 is generated for each logical volume 27 , which is organized by the logical volume management program 22 .
  • the area management program 24 updates the area management table 25 as necessary in accordance with the information acquired from the logical volume management program 22 , the application programs 23 and the like.
  • a logical volume ID 210 is a unique identifier that is assigned to each logical volume 27 .
  • the logical volume ID indicates which logical volume 27 the area management table 25 corresponds to.
  • An OS control information offset 211 and OS control information size 212 indicate the storage location in a logical device 18 for storing OS control information that is given by the OS 21 to manage the logical devices 18 and logical volumes 27 .
  • An example of the OS control information may be file control information.
  • a logical volume control information offset 213 and logical volume control information size 214 indicate the storage location in a logical device 18 for storing the logical volume control information that is generated by the logical volume management program 22 to manage the logical volumes 27 .
  • the logical volume control information is the information used by the logical volume management program 22 to manage the logical devices 18 .
  • An example of the logical volume control information may be stripe configuration information that is necessary when the logical volume management program 22 operates the logical devices 18 according to the RAID method.
  • a logical device ID 215 is an ID of a logical device 18 that composes a logical volume 27
  • an application ID 216 is an. ID of an application program 23 that uses that logical volume 27 .
  • a user may register an application ID by operating the user interface of the host 20 .
  • An application handling data size 217 is the size of data handled when an application program 23 , which uses the logical volume 27 , performs a data input/output operation to a logical volume 27 .
  • a stripe size 218 is the data size to be adopted when the logical volume management program 22 writes data on a logical device 18 by striping the data according to the RAID method.
  • a whole data size 219 is the total storage capacity of the logical volume 27 .
  • the area management table 25 is transmitted from the host computer 20 to the storage controller 10 by the area management program 24 at an appropriate timing.
  • An “appropriate timing” for such transmission may be, for example, when the host computer 20 is started up or when the area management table 25 is updated, or at a tire that has been set to a scheduling function of the area management program 24 .
  • the storage controller 10 Upon receipt of an area management table 25 from the host computer 20 , the storage controller 10 stores the table in a logical device 18 .
  • the area management table 25 is stored in a logical device 18 having a logical device ID “XI, the area management table 25 may instead be stored in the control memory 12 or the like.
  • FIG. 3 is a flowchart depicting processing steps that are followed when the host computer transmits an area management table 25 to the storage controller 10 . These processing steps can roughly be divided into two processes: a process in which the area management program 24 acquires an area management table 25 indicative of the latest position; and a process in which the program transmits the acquired area management table 25 .
  • the area management program 24 initializes the contents of flags and other items to be used during processing (S 310 ), requests the OS 21 to hand over the latest OS control information offset 211 and OS control information size 212 , and acquires such information (S 311 ).
  • the area management program 24 checks whether the area management table 25 exists in the memory 28 of the host computer 20 (S 312 ).
  • the area management program 24 If the area management table 25 is not found in the memory 28 , the area management program 24 generates an area management table 25 in the memory 28 (S 313 ). If, on the other hand, the area management table 25 is found in the memory 28 , the area management program 24 compares the OS control information offset 211 and OS control information size 212 in the area management table 25 with the acquired OS control information offset 211 and OS control information size 212 (S 314 ). If the contents of the acquired information differ from those in the area management table 25 , the area management program 24 updates the table 25 to register the acquired information (S 315 ). After such an update, the area management program 24 turns ON an update flag (S 316 ).
  • the area management program 24 acquires also the logical volume control information offset 213 and logical volume control information size 214 from the OS 21 and performs a comparison process similar to that for the OS control information. That is, the acquired information and the contents of the area management table 25 in the memory are compared (S 317 , 318 ), and if the contents of the acquired information are found to be different from those in the area management table 25 , the area management program 24 updates the area management table 25 so as to reflect the acquired information (S 319 ), and turns ON the update flag after such an update (S 320 ).
  • the area management table 25 representing the latest state is generated in the memory 28 .
  • the area management program 24 checks the update flag (S 321 ). When the update flag is ON, the area management program 24 transmits the contents of the area management table 25 stored in the memory 28 to the storage controller 10 (S 322 ). Upon receipt of the area management table 25 , the storage controller 10 stores the table in logical device X.
  • the above-described process for transmitting the area management table 25 from the host computer 20 to the storage controller 10 is performed as necessary, for instance, at the time of starting up the OS 21 in the case where there has been a change in the OS control information or logical volume control information or in the case where the configuration of logical volumes 27 has been changed, for example, if there has been a change in the number of logical devices 18 that compose the logical volumes 27 .
  • This ensures that the area management table 25 indicative of the latest status will always be set in the storage controller 10 .
  • a logical device management table 121 In the control memory 12 of the storage controller 10 is stored a logical device management table 121 .
  • An example of a logical device management table is shown in FIG. 4 .
  • this table manages, for example, the following: a LUN (Logical Unit Number) 412 , which is unique to each logical device ID 411 ; a storage capacity 413 of each logical device 18 ; and a port ID 414 , which is the ID of a port 131 of the host interface 13 to which each logical device 18 is connected.
  • the contents of the logical device management table 121 are maintained up-to-date. For example, they are manually updated by an operator with a management terminal (not shown) connected to the storage controller 10 or automatically updated according to, for example, the information stored in the storage controller 10 or transmitted from the host computer 20 .
  • FIG. 5A illustrates a data unit that is used when an application program 23 performs a data input/output operation to a logical volume 27 .
  • the data size of the data unit 51 is equal to the handling data size of the application program shown in FIG. 2 .
  • FIG. 5B shows how the logical volume management program 22 divides a data unit 51 , which is shown in FIG. 5A , when performing an input/output operation to the storage controller 10 .
  • the data unit 51 is divided into three sections: data 52 , data 53 , and data 54 .
  • FIG. 5C shows how data 52 , data 53 , and data 54 are stored in the logical devices 18 .
  • This figure shows an example where a logical volume 27 having a logical volume ID 210 of “001h”, which is designated by an application program 23 , is formed by a logical device 18 having a logical device ID 215 of “A” and a logical device 18 having a logical device ID 215 of “A”.
  • the divided data 52 and 53 are stored in the logical device 18 having the logical device ID 215 of “A”; the divided data 54 is stored in the logical device 18 having the logical device ID 215 of “A”.
  • the fixed areas of these logical devices 18 store the aforementioned OS control information 55 , 56 and logical volume control information 57 , 58 .
  • FIG. 6A illustrates a data unit, as shown in FIG. 5A , in a data format complying with the SCSI standard.
  • FIG. 6B illustrates the data presented in FIG. 5B in a SCSI data format.
  • a command indicating the type of process requested is set.
  • a write command is set.
  • the logical device ID 215 or LUN (Logical Unit Number) to be the target of process is set.
  • “01001h” is set in LUN fields 621 and 622 and “0002h” is set in LUN field 623 .
  • To logical address fields 631 to 633 are set the addresses corresponding to the storage-start location (i.e., a location at which storage is to start) in a logical device 18 onto which data 52 to 54 are to be written.
  • To data length fields 641 to 643 are set the data lengths corresponding to the write data 52 to 54 in the respective command frames.
  • a read command will be set to each of the above-mentioned opcode fields 611 to 613 , the addresses for designating the data read start location (i.e., a location at which reading of data is to be started) in a logical device 18 will be set to the logical address fields 631 to 633 , and the size of the data to be read will be set to each of the data length fields.
  • the data verification process which is performed by the storage controller 10 when the host computer 20 transmits SCSI data to the storage controller 10 , will now be explained.
  • the data verification process is performed by executing a data verification program 122 (algorithm) that the storage controller 10 stores in its control memory 12 .
  • This program thus may serve as “means for verification”.
  • the data verification program 122 is prepared for each application program 23 that runs on the host computer 20 .
  • the data verification program 122 comprises a function for verifying, before performing processing of target data (i.e., data to be processed), whether the target data complies with a predefined specification, the function performing processing equivalent or superior to the aforementioned algorithm that the application program 23 running on the host computer 20 comprises.
  • the data verification program 122 is stored in the control memory 12 , for instance, through transmission frat the host computer 20 or manual operation of an operator working with a management terminal (not shown) for the storage controller 10 . To each data verification program 122 to be stored is assigned an ID of the associated application program 23 .
  • the data verification process is for checking whether or not the target data conforms to a predefined specification required by an application program 23 . For this reason, among the entire data that has been stored in the storage region of a logical device 18 , only the area for storing the data that is input from or output to the application program 23 has to be subjected to the data verification process. Therefore, prior to the data verification process, a process for excluding such an area is performed, as described later.
  • the storage controller 10 Upon receipt of a command frame carrying a write command frau the host computer 20 (S 711 ), the storage controller 10 stores the command frame in a data buffer 16 (S 712 ). The storage controller 10 then refers to an area management table 25 stored in a logical device 18 having a logical device ID of “X” to acquire the OS control information offset 211 , the OS control information size 212 , the logical volume control information offset 213 , and the logical volume control information size 214 for the logical device ID that is set in the received data write request (S 713 ). Further, the storage controller 10 refers to a logical device management table 121 to acquire the storage capacity 413 of the logical device 18 corresponding to the above-mentioned logical device ID (S 714 ).
  • the storage controller 10 stores the addresses (e.g., at least one start address and end address) for designating, among the whole storage region of the logical device 18 corresponding to the above-mentioned logical device ID, an area or areas except for the areas designated by the above-mentioned OS control information offset 211 , the OS control information size 212 , the logical volume control information offset 213 , and the logical volume control information size 214 (S 715 ).
  • the storage area having been designated by the above addresses is hereinafter referred to as the candidate area for verification.
  • the storage controller 10 compares the above-mentioned candidate area for verification designated by the addresses with the address that is set in the logical address field 631 to 633 of the received command frame (S 716 ). If the address that is set in the logical address field is not in the candidate area for verification, the data verification process is ended (S 717 ). If, on the other hand, the address is contained in the candidate area for verification, the storage controller 10 further checks whether the whole storage area, which is defined by the address set in the logical address field and the data length set in the data length field 641 to 643 of the received command frame and designated to be the write destination into which the write data is to be written, falls in the candidate area for verification (S 718 ).
  • the storage controller 10 sets the whole storage area, which has been designated as the write destination, as the target area for data verification, and then stores the addresses for defining such an area (e.g., the start and end addresses defining the area) (S 719 ).
  • the storage controller 10 sets the area starting from the above-mentioned logical address contained in the c frame up to the end address of the candidate area for verification as the target area for data verification, and stores the addresses for defining such an area (e.g., the start and end addresses defining the area) (S 720 ).
  • the storage controller 10 After the target area for data verification is set as described above, the storage controller 10 obtains the application program ID that is associated with the logical device 18 to be written. It should be noted that the storage controller 10 stores the correspondence indicative of a relation between application IDs and data verification programs 122 provided for each of the application programs 23 . Therefore, the storage controller 10 starts the data verification program 122 that is associated with the obtained application program ID (S 721 ).
  • the storage controller 10 Upon starting the data verification program 122 , the storage controller 10 gives the abovementioned addresses, which designate the target area for data verification, to the data verification program 122 .
  • the data verification program 122 then starts to perform a data verification process in relation to the storage area of the logical device 18 that is designated by the above-entioned addresses (S 722 ).
  • the storage controller 10 transmits a message indicative of such error (e.g., a message indicating an illegal request or write error) to the host computer 20 (S 724 ). If no error is detected, the storage controller 10 transmits the write data in the command frame, which is presently stored in the data buffer 16 , to the cache memory 15 , and writes the data onto the logical device 18 (S 725 ).
  • a message indicative of such error e.g., a message indicating an illegal request or write error
  • the above description deals with a case where the storage controller 10 receives a data write request from the host computer 20 .
  • a data read request is received, instead of verifying the data in the command frame, data to be read is read out from a storage device, stored in the data buffer 16 , and verified by performing the sane process as that for the write command. That is, even when a data read request has been received, the data verification process win be performed and, if any error is detected, the associated error message will be sent to the host computer 20 .
  • an application program 23 can be notified of data unsuitability (i.e., that the suitability” of the data is not assured) before the read data is handed over to the application program 23 . It is therefore possible to prevent any data loss and damages in data, and also prevent the application program 23 from performing erratic operations.
  • the storage controller 10 can also acquire information necessary for data verification. Therefore, the data verification process which is usually performed by an application program 23 can also be performed by the storage controller 10 . Since the storage controller 10 also verifies the data suitability d by an application program 23 , it becomes possible to further enhance data management accuracy.
  • the logical volume management program 22 is not necessarily an essential structural component.
  • the entire contents of the area management table 25 does not always have to be transmitted from the host computer 20 to the storage controller 10 ; it may be configured so that only differential data indicative of differences occurring due to changes in data is transmitted.
  • the area management program 24 When the area management program 24 is to be executed for the first time, nothing is written in the area management table 25 of the host computer 20 . In such an instance, it may be configured so that the area management table 25 is transmitted to the storage controller 10 on the assumption that, for instance, some changes have been applied to the area management table 25 .
  • the area management table transmission from the host computer 20 to the storage controller 10 can also be performed with high speed.

Abstract

A method for verifying data in a storage system is disclosed. A host computer transmits area management data to a storage controller. The area management data specifies a range of a storage area in a storage device to be used by an application program having a mechanism for verifying data suitability. Upon receipt of an input/output request transmitted from the host computer, the storage controller performs verification, which is usually performed by the application program, of the data that is to be processed according to the data input/output request and to be input/output to/from the storage area, which is specified in accordance with the received area management data.

Description

    CROSS-REFERENCE TO RELATED APPLICATIONS
  • The present application claims priority upon Japanese Patent Application No. 2002-092685 filed Mar. 28, 2002, which is herein incorporated by reference.
  • BACKGROUND OF THE INVENTION
  • 1. Field of the Invention
  • The present invention relates to a method for verifying data in a storage system, a host computer and a storage controller in a storage system.
  • 2. Description of the Related Art
  • A storage system in which a host computer and a storage controller such as a disk array device are interconnected via a SAN (Storage Area Network) or other networks for intensive storage operation or other similar purposes have been attracting considerable attention. Storage systems configured as above are now being operated at IDCs (Internet Data Centers) and many other places. Recently, focus has been made on systems that use a storage controller called a NAS (Network Attached Storage) which is provided with a file system and uses a LAN (Local Area Network) as the network.
  • It is often required that the data for database software or other application programs ruining on a host computer in a storage system configured and operated as described above is in accordance with certain specifications (such a property is hereinafter referred to as “suitability”). Under these circumstances, some application programs are provided with an algorithm for verifying the suitability of the data to be processed.
  • Even if an application program is provided with the above-mentioned algorithm, however, the data suitability may be lost depending on the SAN or other cm cation path for connecting a host computer to a storage controller or due to an internal process performed by the storage controller. Further, the storage controller is frequently shared by a plurality of host computers. In such a situation, the data suitability may be if, for instance, an application program running on one host computer inadvertently accesses the data of an application program running on another host computer.
  • If, for instance, the suitability of the data to be written into a storage controller is lost in a situation in which an application program is not involved, the storage controller will not be able to recognize such a loss of data suitability and will automatically store the unsuitable data. In this instance, the application program will not recognize the loss of data suitability until it reads the data later. If there is a long time lag between the instant at which the data is written and the instant at which the data is read, data recovery may be difficult to achieve.
  • Even in situations where data is backed up by the storage controller, data recovery will not be achievable if the backed-up data has already lost suitability. Further, if the data suitability is lost in a situation in which an application program is not involved as mentioned above, the cause of the problem is often difficult to specify so that subsequent failure recovery and other similar operations may be rendered difficult to accomplish.
  • The above problem can be solved if the storage controller is configured to verify the data. In storage systems, data stored in the storage controller by an application program is generally provided with additional information such as information added by an operating system (hereinafter referred to as the “OS”) running on a host computer and information about volumes having been logically organized by a host computer. Further, for example, due to the OS, volume management program, etc., the data stored in the storage controller by an application program is not arranged in a manner in which the data on a host computer is arranged for reference by the application program. However, the storage controller would not be able to get hold of the above-mentioned information and arrangement. That is, as far as the traditional storage system scheme is used, the data verification process performed by an application program cannot be performed by the storage controller. If it were to allow the storage controller to accomplish such data verification, it would be necessary to establish a scheme that would enable the storage controller to acquire relevant information from an application program, OS, and volume management program.
  • As a scheme to facilitate the checking procedure for enhancement of data reliability, i.e., RAS (Reliability, Availability, and Serviceability), which is conducted when an application program reads data from or writes data onto a magnetic disk, for example, Japanese Patent Application Laid-open Publication No. 8-263223 discloses a mechanism in which the CPU generates RAS data when an I/O operation is performed by an application program and attaches the RAS data to data to be written onto a magnetic disk, in order to enable a magnetic disk input/output channel and magnetic disk controller to conduct a data check.
  • In the scheme disclosed in the above-mentioned publication, however, the RAS data is independently generated by the CPU and appended to the data to be written. Further, the RAS data does not relate to the data suitability required by an application program. The disclosed scheme is not configured to recognize such information or configuration nor to verify the suitability demanded by individual application programs running on a host computer.
  • SUMMARY OF THE INVENTION
  • The present invention is made to solve the foregoing and other problems, and it is an object of the present invention to provide a data verification method for verifying and assuring data suitability in a storage system with increased accuracy and, more particularly, to offer a method for carrying out, in a storage system, data verification demanded by an application program.
  • It is a further object of the present invention to provide a host computer and storage controller that realize the above-mentioned functionality.
  • According to one aspect of the present invention, which achieves the foregoing and other objects, there is provided a method for verifying data in a storage system, the storage system including a host computer and a storage controller, the storage controller being connected to the host computer for communication therewith, being capable of receiving an input/output request transmitted from the host computer, and, according to the request, being capable of performing a data input/output process to a storage device, the method comprising the steps of: the host computer executing an application program for organizing and managing data to be stored in the storage controller in accordance with a predefined specification; the host computer transmitting area management data to the storage controller, wherein the area management data is for specifying a range of a storage area that is provided in the storage device to be used by the application program; the storage controller receiving the area management data; and the storage controller receiving a data input/output request that is transmitted from the host computer caused by a process performed by the application program, and verifying whether data that is to be processed according to the received data input/output request and to be input/output to/frau the storage area used by the application program, which is specified in accordance with the area management data, is organized in accordance with the predefined specification.
  • According to such an aspect of the present invention, it becomes possible to offer a data verification method, a host computer, and a storage controller for verifying and assuring the data suitability in a storage system with increased accuracy.
  • Features and objects of the present invention other than the above will become clear by reading the description of the present specification with reference to the accompanying drawings.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • For more complete understanding of the present invention and its advantages, reference is now made to the following description taken in conjunction with the accompanying drawings, in which:
  • FIG. 1 is a diagram illustrating the configuration of a storage system according to an en t of the present invention;
  • FIG. 2 is a diagram showing an area management table according to an embodiment of the present invention;
  • FIG. 3 is a flowchart depicting processing steps that are performed in an embodiment of the present invention when a host computer transmits an area management table to a storage controller;
  • FIG. 4 is a diagram illustrating a logical device management table according to an embodiment of the present invention;
  • FIG. 5A is a diagram illustrating a data unit that is used in an embodiment of the present invention when an application program performs a data input/output operation to a logical volume;
  • FIG. 5B is a diagram showing how a logical volume management program divides a data unit, which is shown in FIG. 5A, when performing an input/output operation to a storage controller;
  • FIG. 5C is a diagram showing h the divided data are stored in a logical device;
  • FIG. 6A is a diagram illustrating a data unit, which is shown in FIG. 5A, in a SCSI data format;
  • FIG. 6B is a diagram illustrating the data, which is shown in FIG. 5B, in a SCSI data format;
  • FIG. 7 is a flowchart depicting data verification processing steps that are performed by a storage controller according to an embodiment of the present invention; and
  • FIG. 8 is a block diagram that shows the configuration of an example of a host c
  • DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
  • At least the following matters will be made clear by the explanation in the present specification and the description of the accompanying drawings.
  • Outline of General Description
  • A method for verifying data according to an embodiment of the present invention is a method for verifying data in a storage system, the storage system including a host computer and a storage controller, the storage controller being connected to the host computer for communication therewith, being capable of receiving an input/output request transmitted from the host computer, and, according to the request, being capable of performing a data input/output process to a storage device, comprising the steps of: the host computer executing an application program for organizing and managing data to be stored in the storage controller in accordance with a predefined specification; the host computer transmitting area management data to the storage controller, wherein the area management data is for specifying a range of a storage area that is provided in the storage device to be used by the application program; the storage controller receiving the area management data; and the storage controller receiving a data input/output request that is transmitted from the host computer caused by a process performed by the application program, and verifying whether data that is to be processed according to the received data input/output request and to be input/output to/from the storage area used by the application program, which is specified in accordance with the area management data, is organized in accordance with the predefined specification.
  • The “input/output request transmitted from the host computers” is, for instance, a data write request or data read request for the above-mentioned storage device such as a disk drive included in a storage controller or externally connected to the storage controller. The “area management data” is the data registered in an area management table, which is described later. The data verification method according to the present invention verifies, also in the storage controller, whether the data handled by application programs are organized in accordance with a predefined specification. This ensures that the data suitability can be verified and assured with increased accuracy.
  • The data verification method mentioned above may comprise the steps of: the storage controller storing a plurality of algorithms, wherein each of the algorithms is for performing the verification for each of a plurality of application programs running on the host computer; the storage controller specifying storage areas used by each of the application programs in accordance with the area management data transmitted from the host computer; the storage controller receiving a data input/output request transmitted from the host computer caused by a process performed by one of the application programs, and specifying the application program relating to the received data input/output request in accordance with the area management data; and the storage controller verifying, using the algorithm provided for the specified application program, whether data that is to be processed according to the received data input/output request and to be input/output to/from the storage area, which is specified in accordance with the area management data, is organized in accordance with the predefined specification.
  • Accordingly, it becomes possible to verify, also on the storage controller side, the data handled by different application programs even when a plurality of different application programs run on the host computer.
  • The data verification method described above may comprise the steps of: the host computer transmitting the algorithm from the host computer to the storage controller; and the storage controller receiving and storing the algorithm.
  • The data verification method described above may comprise the step of the host computer transmitting, when a change has been made in the range of the storage area, the area management data reflecting the change to the storage controller. Accordingly, it becomes possible to ensure that also the storage controller can get hold of the latest information about the storage area of the storage device for use by an application program.
  • The storage area in the storage device used by the application program may be an area excluding an area used by control information added by software other than the application program running on the host computer.
  • The area management data may include data for designating a range of the storage area that is provided for the application program as a volume having been logically organized using the storage area of the storage device.
  • The volume may be organized by managing the storage area of the storage device according to a RAID method.
  • The storage device may be provided integrally with the storage controller. Further, the data indicating the result of the verification may be transmitted to the host computer. For example, the storage area may be provided as a logical storage device that is organized in a physical storage region provided by at least one physical storage device. The predefined specification means, for example, that prescribed data is inserted into a prescribed position of the data. The storage controller may be connected to the host computer for communication therewith via a communication line conforming to the SCSI standard, via a SAN, or via a Lm.
  • Further, an alternative configuration may be used so that the transmission of the area management data from the host computer to the storage controller is performed via a communication path other than a communication path for connecting the storage controller and the host computer. The use of such an alternative configuration will enable, for instance, communication load distribution.
  • EMBODIMENTS
  • FIG. 1 shows the configuration of a storage system according to an embodiment of the present invention.
  • For example, a storage controller 10 shown in this figure is a disk array device and a host computer 20 is a mainframe computer or a personal computer that uses the storage controller 10 as a storage resource. The storage controller 10 is connected to the host computer 20 via a communications means 40. For example, the communications means 40 is a communication line conforming to the SCSI interface standard, a LAN (Local Area Network), or a SAN (Storage Area Network).
  • The storage controller 10 may include the following: a CPU 11 for controlling the various parts and functions in the storage controller 10 and executing and controlling various processing programs; a control memory 12 for storing various information; physical devices (not shown), such as disk drives, that serve as “storage devices”; a host interface 13, which may serve as “means for receiving area management data” and/or “means for receiving a data input/output request”, for connecting to the host computer 20; a data controller 14 for controlling the data input/output to/from the physical device in accordance with a data input/output request received from the host computer 20; a cache memory 15; a data buffer 16 for temporarily storing the data to be registered in the cache memory 15; and a disk interface 17 for controlling the physical devices in accordance with the instructions from the data controller 14.
  • The host interface 13 is equipped th one or more connection ports 131. An external interface 26 of the host computer 20 is, for instance, a Host Bus Adapter that serves as a channel interface and may function as “means for transmitting area management data”.
  • In the storage controller 10, one or more logical devices 18 are organized in physical storage regions provided by the physical devices. Each organized logical device is assigned a unique logical device ID that can be used when the host computer 20 designates a storage area of the storage controller 10. In the present t, it is assumed that five logical devices 18 are organized in the storage controller 10, each of which being designated by logical device IDs are A, A′, B, C, and X.
  • An OS 21 runs on the host computer 20. On the OS 21, a logical volume management program 22, application programs 23, and an area management program 24 run.
  • FIG. 8 is a block diagram that shows the configuration of the host computer 20. The host computer 20 comprises at least a CPU (Central Processing Unit) 201, a memory 28, a storage device 202, and the above-mentioned external interface 26.
  • The CPU 201 takes charge of the overall control of the host computer 20 and realizes various functions according to the present example by executing various p stored in the memory 28. The storage device 202 can store various programs and data. For example, hard disk devices and the like may be used for the storage device 202. In the present example, the storage device 202 stores the OS 21, the logical volume management program 22, the application programs 23, and the area management program 24, details of which being explained later on.
  • The logical volume management program 22 organizes one or more logical volumes 27 in the logical storage regions of the logical devices 18 in the storage controller 10, and provides storage areas specified by the logical volumes 27 to the application programs 23. An example of the logical volume management program 22 may be a so-called SoftRAID program, which manages the storage areas provided by the logical devices of the storage controller 10 according to the RAID (Redundant Array of Independent Disks) method based on software and offers the resulting organized logical volumes 27 to the application programs 23. The following description assures that a SoftRAID program is used as the logical volume management program 22.
  • For example, each application program 23 is a database software, which is provided with a scheme for organizing and managing the data to be stored in the storage controller 10 in accordance with a predefined specification, that is, a mechanism for verifying the suitability of the data. Each application program 23 is also provided with an algorithm for checking whether the data to be processed is organized in accordance with a predefined specification, that is, for verifying whether the data is suitable.
  • The area management program 24 manages an area management table 25 stored in a memory 28 of the host computer 20. Details on the area management table 25 are explained below. The area management program 24 is capable of transmitting the area management table 25 to the storage controller 10 at an appropriate timing. This will be described in detail later.
  • Area Management Table
  • FIG. 2 shows an example of an area management table 25. The area management table 25 is generated for each logical volume 27, which is organized by the logical volume management program 22. When, for instance, the relationship between the logical devices 18 and logical volumes 27 is changed by the logical volume management program 22, the area management program 24 updates the area management table 25 as necessary in accordance with the information acquired from the logical volume management program 22, the application programs 23 and the like.
  • In FIG. 2, a logical volume ID 210 is a unique identifier that is assigned to each logical volume 27. The logical volume ID indicates which logical volume 27 the area management table 25 corresponds to. An OS control information offset 211 and OS control information size 212 indicate the storage location in a logical device 18 for storing OS control information that is given by the OS 21 to manage the logical devices 18 and logical volumes 27. An example of the OS control information may be file control information.
  • A logical volume control information offset 213 and logical volume control information size 214 indicate the storage location in a logical device 18 for storing the logical volume control information that is generated by the logical volume management program 22 to manage the logical volumes 27. The logical volume control information is the information used by the logical volume management program 22 to manage the logical devices 18. An example of the logical volume control information may be stripe configuration information that is necessary when the logical volume management program 22 operates the logical devices 18 according to the RAID method.
  • A logical device ID 215 is an ID of a logical device 18 that composes a logical volume 27, and an application ID 216 is an. ID of an application program 23 that uses that logical volume 27. A user, for instance, may register an application ID by operating the user interface of the host 20.
  • An application handling data size 217 is the size of data handled when an application program 23, which uses the logical volume 27, performs a data input/output operation to a logical volume 27. A stripe size 218 is the data size to be adopted when the logical volume management program 22 writes data on a logical device 18 by striping the data according to the RAID method. A whole data size 219 is the total storage capacity of the logical volume 27.
  • Area Management Table Transmission
  • The area management table 25 is transmitted from the host computer 20 to the storage controller 10 by the area management program 24 at an appropriate timing. An “appropriate timing” for such transmission may be, for example, when the host computer 20 is started up or when the area management table 25 is updated, or at a tire that has been set to a scheduling function of the area management program 24.
  • Upon receipt of an area management table 25 from the host computer 20, the storage controller 10 stores the table in a logical device 18. In the present embodiment, although it is assumed that the area management table 25 is stored in a logical device 18 having a logical device ID “XI, the area management table 25 may instead be stored in the control memory 12 or the like.
  • FIG. 3 is a flowchart depicting processing steps that are followed when the host computer transmits an area management table 25 to the storage controller 10. These processing steps can roughly be divided into two processes: a process in which the area management program 24 acquires an area management table 25 indicative of the latest position; and a process in which the program transmits the acquired area management table 25.
  • First, the area management program 24 initializes the contents of flags and other items to be used during processing (S310), requests the OS 21 to hand over the latest OS control information offset 211 and OS control information size 212, and acquires such information (S311). Next, the area management program 24 checks whether the area management table 25 exists in the memory 28 of the host computer 20 (S312).
  • If the area management table 25 is not found in the memory 28, the area management program 24 generates an area management table 25 in the memory 28 (S313). If, on the other hand, the area management table 25 is found in the memory 28, the area management program 24 compares the OS control information offset 211 and OS control information size 212 in the area management table 25 with the acquired OS control information offset 211 and OS control information size 212 (S314). If the contents of the acquired information differ from those in the area management table 25, the area management program 24 updates the table 25 to register the acquired information (S315). After such an update, the area management program 24 turns ON an update flag (S316).
  • Next, the area management program 24 acquires also the logical volume control information offset 213 and logical volume control information size 214 from the OS 21 and performs a comparison process similar to that for the OS control information. That is, the acquired information and the contents of the area management table 25 in the memory are compared (S317, 318), and if the contents of the acquired information are found to be different from those in the area management table 25, the area management program 24 updates the area management table 25 so as to reflect the acquired information (S319), and turns ON the update flag after such an update (S320).
  • According to the above-explained procedure, the area management table 25 representing the latest state is generated in the memory 28.
  • Next, the area management program 24 checks the update flag (S321). When the update flag is ON, the area management program 24 transmits the contents of the area management table 25 stored in the memory 28 to the storage controller 10 (S322). Upon receipt of the area management table 25, the storage controller 10 stores the table in logical device X.
  • The above-described process for transmitting the area management table 25 from the host computer 20 to the storage controller 10 is performed as necessary, for instance, at the time of starting up the OS 21 in the case where there has been a change in the OS control information or logical volume control information or in the case where the configuration of logical volumes 27 has been changed, for example, if there has been a change in the number of logical devices 18 that compose the logical volumes 27. This ensures that the area management table 25 indicative of the latest status will always be set in the storage controller 10.
  • Logical Device Management Table
  • In the control memory 12 of the storage controller 10 is stored a logical device management table 121. An example of a logical device management table is shown in FIG. 4. In relation to a logical device ID 411, this table manages, for example, the following: a LUN (Logical Unit Number) 412, which is unique to each logical device ID 411; a storage capacity 413 of each logical device 18; and a port ID 414, which is the ID of a port 131 of the host interface 13 to which each logical device 18 is connected. The contents of the logical device management table 121 are maintained up-to-date. For example, they are manually updated by an operator with a management terminal (not shown) connected to the storage controller 10 or automatically updated according to, for example, the information stored in the storage controller 10 or transmitted from the host computer 20.
  • Data Status
  • Next, it will be explained how the data output from an application program 23 running on the host computer 20 is stored in a logical device 18 of the storage controller 10, paying attention to data configuration.
  • FIG. 5A illustrates a data unit that is used when an application program 23 performs a data input/output operation to a logical volume 27. The data size of the data unit 51 is equal to the handling data size of the application program shown in FIG. 2.
  • FIG. 5B shows how the logical volume management program 22 divides a data unit 51, which is shown in FIG. 5A, when performing an input/output operation to the storage controller 10. In the example shown in this figure, the data unit 51 is divided into three sections: data 52, data 53, and data 54.
  • FIG. 5C shows how data 52, data 53, and data 54 are stored in the logical devices 18. This figure shows an example where a logical volume 27 having a logical volume ID 210 of “001h”, which is designated by an application program 23, is formed by a logical device 18 having a logical device ID 215 of “A” and a logical device 18 having a logical device ID 215 of “A”. The divided data 52 and 53 are stored in the logical device 18 having the logical device ID 215 of “A”; the divided data 54 is stored in the logical device 18 having the logical device ID 215 of “A”.
  • The fixed areas of these logical devices 18 store the aforementioned OS control information 55, 56 and logical volume control information 57, 58.
  • FIG. 6A illustrates a data unit, as shown in FIG. 5A, in a data format complying with the SCSI standard. FIG. 6B illustrates the data presented in FIG. 5B in a SCSI data format.
  • As illustrated in FIG. 6B, to each of the opcode fields 611 to 613 in a command frame, a command indicating the type of process requested is set. In the examples in this figure, a write command is set. To each of the LUN fields 621 to 623, the logical device ID 215 or LUN (Logical Unit Number) to be the target of process is set. In the examples, “01001h” is set in LUN fields 621 and 622 and “0002h” is set in LUN field 623. To logical address fields 631 to 633 are set the addresses corresponding to the storage-start location (i.e., a location at which storage is to start) in a logical device 18 onto which data 52 to 54 are to be written. To data length fields 641 to 643 are set the data lengths corresponding to the write data 52 to 54 in the respective command frames.
  • The above description deals with a case where a data write request is output from an application program 23. When a data read request is output, a read command will be set to each of the above-mentioned opcode fields 611 to 613, the addresses for designating the data read start location (i.e., a location at which reading of data is to be started) in a logical device 18 will be set to the logical address fields 631 to 633, and the size of the data to be read will be set to each of the data length fields.
  • Data Verification Process
  • The data verification process, which is performed by the storage controller 10 when the host computer 20 transmits SCSI data to the storage controller 10, will now be explained.
  • The data verification process is performed by executing a data verification program 122 (algorithm) that the storage controller 10 stores in its control memory 12. This program thus may serve as “means for verification”. The data verification program 122 is prepared for each application program 23 that runs on the host computer 20. The data verification program 122 comprises a function for verifying, before performing processing of target data (i.e., data to be processed), whether the target data complies with a predefined specification, the function performing processing equivalent or superior to the aforementioned algorithm that the application program 23 running on the host computer 20 comprises.
  • The data verification program 122 is stored in the control memory 12, for instance, through transmission frat the host computer 20 or manual operation of an operator working with a management terminal (not shown) for the storage controller 10. To each data verification program 122 to be stored is assigned an ID of the associated application program 23.
  • The data verification process is for checking whether or not the target data conforms to a predefined specification required by an application program 23. For this reason, among the entire data that has been stored in the storage region of a logical device 18, only the area for storing the data that is input from or output to the application program 23 has to be subjected to the data verification process. Therefore, prior to the data verification process, a process for excluding such an area is performed, as described later.
  • Next, explanation win be made of the data verification process performed in the storage controller 10 using the flowchart shown in FIG. 7, taking a case in which a data write request for writing data 51 shown in FIG. 6A is transmitted frau an application program 23 running on the host computer 20 and a write command frame shown in FIG. 6B, which corresponds to the data write request, is transmitted to the storage controller 10. This process is performed, for instance, by a microprogram stored in the control memory 12 of the storage controller 10.
  • Upon receipt of a command frame carrying a write command frau the host computer 20 (S711), the storage controller 10 stores the command frame in a data buffer 16 (S712). The storage controller 10 then refers to an area management table 25 stored in a logical device 18 having a logical device ID of “X” to acquire the OS control information offset 211, the OS control information size 212, the logical volume control information offset 213, and the logical volume control information size 214 for the logical device ID that is set in the received data write request (S713). Further, the storage controller 10 refers to a logical device management table 121 to acquire the storage capacity 413 of the logical device 18 corresponding to the above-mentioned logical device ID (S714).
  • Next, the storage controller 10 stores the addresses (e.g., at least one start address and end address) for designating, among the whole storage region of the logical device 18 corresponding to the above-mentioned logical device ID, an area or areas except for the areas designated by the above-mentioned OS control information offset 211, the OS control information size 212, the logical volume control information offset 213, and the logical volume control information size 214 (S715). The storage area having been designated by the above addresses is hereinafter referred to as the candidate area for verification.
  • Next, the storage controller 10 compares the above-mentioned candidate area for verification designated by the addresses with the address that is set in the logical address field 631 to 633 of the received command frame (S716). If the address that is set in the logical address field is not in the candidate area for verification, the data verification process is ended (S717). If, on the other hand, the address is contained in the candidate area for verification, the storage controller 10 further checks whether the whole storage area, which is defined by the address set in the logical address field and the data length set in the data length field 641 to 643 of the received command frame and designated to be the write destination into which the write data is to be written, falls in the candidate area for verification (S718).
  • If the whole designated storage area is in the candidate area for verification, the storage controller 10 sets the whole storage area, which has been designated as the write destination, as the target area for data verification, and then stores the addresses for defining such an area (e.g., the start and end addresses defining the area) (S719).
  • If, on the other hand, the whole storage area is not in the candidate area for verification, the storage controller 10 sets the area starting from the above-mentioned logical address contained in the c frame up to the end address of the candidate area for verification as the target area for data verification, and stores the addresses for defining such an area (e.g., the start and end addresses defining the area) (S720).
  • After the target area for data verification is set as described above, the storage controller 10 obtains the application program ID that is associated with the logical device 18 to be written. It should be noted that the storage controller 10 stores the correspondence indicative of a relation between application IDs and data verification programs 122 provided for each of the application programs 23. Therefore, the storage controller 10 starts the data verification program 122 that is associated with the obtained application program ID (S721).
  • Upon starting the data verification program 122, the storage controller 10 gives the abovementioned addresses, which designate the target area for data verification, to the data verification program 122. The data verification program 122 then starts to perform a data verification process in relation to the storage area of the logical device 18 that is designated by the above-entioned addresses (S722).
  • If an error is detected during the data verification process performed by the data verification program 122 (S723), the storage controller 10 transmits a message indicative of such error (e.g., a message indicating an illegal request or write error) to the host computer 20 (S724). If no error is detected, the storage controller 10 transmits the write data in the command frame, which is presently stored in the data buffer 16, to the cache memory 15, and writes the data onto the logical device 18 (S725).
  • The above description deals with a case where the storage controller 10 receives a data write request from the host computer 20. Hover, when a data read request is received, instead of verifying the data in the command frame, data to be read is read out from a storage device, stored in the data buffer 16, and verified by performing the sane process as that for the write command. That is, even when a data read request has been received, the data verification process win be performed and, if any error is detected, the associated error message will be sent to the host computer 20. Accordingly, for example, an application program 23 can be notified of data unsuitability (i.e., that the suitability” of the data is not assured) before the read data is handed over to the application program 23. It is therefore possible to prevent any data loss and damages in data, and also prevent the application program 23 from performing erratic operations.
  • As described above, according to the present invention, the storage controller 10 can also acquire information necessary for data verification. Therefore, the data verification process which is usually performed by an application program 23 can also be performed by the storage controller 10. Since the storage controller 10 also verifies the data suitability d by an application program 23, it becomes possible to further enhance data management accuracy.
  • others
  • It should be noted that in the foregoing description, the logical volume management program 22 is not necessarily an essential structural component.
  • Further, the entire contents of the area management table 25 does not always have to be transmitted from the host computer 20 to the storage controller 10; it may be configured so that only differential data indicative of differences occurring due to changes in data is transmitted.
  • When the area management program 24 is to be executed for the first time, nothing is written in the area management table 25 of the host computer 20. In such an instance, it may be configured so that the area management table 25 is transmitted to the storage controller 10 on the assumption that, for instance, some changes have been applied to the area management table 25.
  • Further, by connecting the host computer 20 to the storage controller 10 with a LAN or like network to transmit the area management table 25 via the LAN, the area management table transmission from the host computer 20 to the storage controller 10 can also be performed with high speed.
  • Although the preferred embodiment of the present invention has been described in detail, it should be understood that various changes, substitutions and alterations can be made therein without departing from spirit and scope of the inventions as defined by the appended claims.

Claims (5)

1-16. (canceled)
17. A storage system connected to a host computer on which a database application is executed, said storage system comprising:
a storage controller operative to receive a data input/output request that is sent from the host computer due to processing of the database application, and to control writing of the database application, and to control writing of data into a logical volume,
the storage controller having:
a control memory to store a data verification program; and
at least one CPU operative to execute the verification program in order to verify the data, an address of the data to be written into said logical volume being provided to the data verification program, the address based on data input/output request.
18. The storage system according to claim 17, wherein the control memory of the storage controller further stores a correspondence between the data verification program and the database application, wherein the CPU executes the data verification program that corresponds to the database application.
19. A storage system coupled to a host computer executing a database application, said storage system comprising:
a storage controller configured to receive a data input/output request from the host computer executing the database application and to control writing of data into a logical volume,
the storage controller comprising:
a control memory storing at least one data verification program associated with said database application; and
at least one CPU configured to execute the data verification program to verify the data,
an address, based on the data input/output request, associated with the said data to be verified being provided to the data verification program.
20. The storage system according to claim 19 further comprising a correspondence between the data verification program and the database application stored in said control memory.
US11/025,471 2002-03-28 2004-12-28 Method and apparatus for verifying data in a storage system Abandoned US20050122788A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US11/025,471 US20050122788A1 (en) 2002-03-28 2004-12-28 Method and apparatus for verifying data in a storage system
US12/173,650 US7725611B2 (en) 2002-03-28 2008-07-15 Method and apparatus for verifying data in a storage system

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2002-092685 2002-03-28
JP2002092685A JP4080227B2 (en) 2002-03-28 2002-03-28 Data verification method and disk array device
US10/377,898 US6842793B2 (en) 2002-03-28 2003-02-28 Method and apparatus for verifying data in a storage system
US11/025,471 US20050122788A1 (en) 2002-03-28 2004-12-28 Method and apparatus for verifying data in a storage system

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US10/377,898 Continuation US6842793B2 (en) 2002-03-21 2003-02-28 Method and apparatus for verifying data in a storage system

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US12/173,650 Continuation US7725611B2 (en) 2002-03-28 2008-07-15 Method and apparatus for verifying data in a storage system

Publications (1)

Publication Number Publication Date
US20050122788A1 true US20050122788A1 (en) 2005-06-09

Family

ID=27800528

Family Applications (3)

Application Number Title Priority Date Filing Date
US10/377,898 Expired - Fee Related US6842793B2 (en) 2002-03-21 2003-02-28 Method and apparatus for verifying data in a storage system
US11/025,471 Abandoned US20050122788A1 (en) 2002-03-28 2004-12-28 Method and apparatus for verifying data in a storage system
US12/173,650 Expired - Fee Related US7725611B2 (en) 2002-03-28 2008-07-15 Method and apparatus for verifying data in a storage system

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US10/377,898 Expired - Fee Related US6842793B2 (en) 2002-03-21 2003-02-28 Method and apparatus for verifying data in a storage system

Family Applications After (1)

Application Number Title Priority Date Filing Date
US12/173,650 Expired - Fee Related US7725611B2 (en) 2002-03-28 2008-07-15 Method and apparatus for verifying data in a storage system

Country Status (5)

Country Link
US (3) US6842793B2 (en)
EP (2) EP1349059B1 (en)
JP (1) JP4080227B2 (en)
CN (1) CN1241098C (en)
DE (2) DE60333322D1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10846190B2 (en) * 2019-03-29 2020-11-24 Lenovo (Singapore) Pte. Ltd. Connected device activation

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6886160B1 (en) * 2000-11-29 2005-04-26 Hyung Sup Lee Distribution of mainframe data in the PC environment
US6968479B2 (en) * 2002-03-06 2005-11-22 Hewlett-Packard Development Company, L.P. Verifying data in a data storage device
JP2003330762A (en) * 2002-05-09 2003-11-21 Hitachi Ltd Control method for storage system, storage system, switch and program
US7062605B2 (en) * 2003-04-28 2006-06-13 Lsi Logic Corporation Methods and structure for rapid background initialization of a RAID logical unit
US7082447B2 (en) * 2004-06-16 2006-07-25 Hitachi, Ltd. Method and apparatus for archive data validation in an archive system
JP2006227856A (en) * 2005-02-17 2006-08-31 Hitachi Ltd Access controller and interface mounted on the same
KR100777282B1 (en) * 2005-12-15 2007-11-20 엘지전자 주식회사 Method and apparatus of storing broadcasting program
JP2007179156A (en) * 2005-12-27 2007-07-12 Hitachi Ltd Storage control device and method
JP2008040842A (en) * 2006-08-07 2008-02-21 Hitachi Ltd Storage system and data management setting method
US20100180182A1 (en) * 2009-01-09 2010-07-15 Seagate Technology Llc Data memory device and controller with interface error detection and handling logic
US8214621B2 (en) * 2009-04-29 2012-07-03 Microsoft Corporation Storage optimization across media with differing capabilities
TWI408688B (en) * 2009-10-12 2013-09-11 Phison Electronics Corp Data writing method for a flash memory, and controller and storage system using the same
KR101833464B1 (en) * 2010-02-02 2018-02-28 시게이트 테크놀로지 인터내셔날 Method for transferring data between disk device and external storage device and system using the method
TWI455144B (en) 2010-07-22 2014-10-01 Silicon Motion Inc Controlling methods and controllers utilized in flash memory device
US8874696B1 (en) * 2010-12-17 2014-10-28 Emc Corporation Common cache service
US9069719B2 (en) * 2012-02-11 2015-06-30 Samsung Electronics Co., Ltd. Method and system for providing a smart memory architecture
US10078541B2 (en) 2013-09-23 2018-09-18 Hewlett Packard Enterprise Development Lp Validate written data
WO2017054182A1 (en) * 2015-09-30 2017-04-06 华为技术有限公司 Data check method and apparatus
CN110134572B (en) * 2018-02-02 2023-08-08 伊姆西Ip控股有限责任公司 Validating data in a storage system

Citations (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US617036A (en) * 1899-01-03 John mitchell
US5285456A (en) * 1991-05-15 1994-02-08 International Business Machines Corporation System and method for improving the integrity of control information
US5548788A (en) * 1994-10-27 1996-08-20 Emc Corporation Disk controller having host processor controls the time for transferring data to disk drive by modifying contents of the memory to indicate data is stored in the memory
US5867736A (en) * 1996-03-29 1999-02-02 Lsi Logic Corporation Methods for simplified integration of host based storage array control functions using read and write operations on a storage array control port
US5870537A (en) * 1996-03-13 1999-02-09 International Business Machines Corporation Concurrent switch to shadowed device for storage controller and device errors
US5951658A (en) * 1997-09-25 1999-09-14 International Business Machines Corporation System for dynamic allocation of I/O buffers for VSAM access method based upon intended record access where performance information regarding access is stored in memory
US6151685A (en) * 1998-05-15 2000-11-21 International Business Machines Corporation System and method for recovering a segment directory for a log structured array
US6157485A (en) * 1997-07-18 2000-12-05 Cheng; Yihao Lens arrangement for enhancing the coupling of light shifted by an optical element
US6185634B1 (en) * 1996-09-27 2001-02-06 Emc Corporation Address triggered DMA controller with an indicative signal including circuitry for calculating a new trigger address value based on the sum of the current trigger address and the descriptor register data with a trigger address register
US6195761B1 (en) * 1997-12-31 2001-02-27 Emc Corporation Method and apparatus for identifying and repairing mismatched data
US6311240B1 (en) * 1998-12-17 2001-10-30 Compaq Computer Corporation Hardware assisted formatted data transfer system having a source storage controller and a formatting storage controller receiving on-media structure definition and a data definition
US20020002661A1 (en) * 1998-06-30 2002-01-03 Steven M. Blumenau Method and apparatus for initializing logical objects in a data storage system
US6363462B1 (en) * 1997-03-31 2002-03-26 Lsi Logic Corporation Storage controller providing automatic retention and deletion of synchronous back-up data
US20020052985A1 (en) * 2000-10-31 2002-05-02 Noboru Furuumi Storage subsystem, information processing system and method of controlling I/O interface
US6393540B1 (en) * 1998-06-30 2002-05-21 Emc Corporation Moving a logical object from a set of source locations to a set of destination locations using a single command
US20020073279A1 (en) * 2000-12-08 2002-06-13 Kabushiki Kaisha Toshiba Method for regenerating data in disk array
US6467023B1 (en) * 1999-03-23 2002-10-15 Lsi Logic Corporation Method for logical unit creation with immediate availability in a raid storage environment
US20020169995A1 (en) * 2001-05-10 2002-11-14 International Business Machines Corporation System, method, and computer program for selectable or programmable data consistency checking methodology
US20030093633A1 (en) * 2001-09-27 2003-05-15 Seagate Technology Llc Method and system for data path verification
US20030115414A1 (en) * 2001-12-18 2003-06-19 Kabushiki Kaisha Toshiba Disk array apparatus and data backup method used therein
US20030140288A1 (en) * 2000-10-19 2003-07-24 Oracle Corporation Enhancements to data integrity verification mechanism
US20030145157A1 (en) * 2002-01-31 2003-07-31 Smullen James R. Expedited memory dumping and reloading of computer processors
US6611923B1 (en) * 1998-03-31 2003-08-26 Madhav Mutalik System and method for backing up data stored in multiple mirrors on a mass storage subsystem under control of a backup server
US20030172325A1 (en) * 2002-03-06 2003-09-11 Wyatt Stewart R. Verifying data in a data storage device
US6629199B1 (en) * 1999-08-20 2003-09-30 Emc Corporation Digital data storage system including directory for efficiently providing formatting information for stored records and utilization of a check value for verifying that a record is from a particular storage location
US6629273B1 (en) * 2000-01-24 2003-09-30 Hewlett-Packard Development Company, L.P. Detection of silent data corruption in a storage system
US20030191873A1 (en) * 1998-12-16 2003-10-09 Hitachi, Ltd. Storage system
US6718447B2 (en) * 2001-06-28 2004-04-06 Hewlett-Packard Development Company, L.P. Method and system for providing logically consistent logical unit backup snapshots within one or more data storage devices
US6886171B2 (en) * 2001-02-20 2005-04-26 Stratus Technologies Bermuda Ltd. Caching for I/O virtual address translation and validation using device drivers

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6361320A (en) 1986-09-02 1988-03-17 Nec Corp Auxiliary storage processor with preliminary verifying mechanism
US5155845A (en) * 1990-06-15 1992-10-13 Storage Technology Corporation Data storage system for providing redundant copies of data on different disk drives
JP2855019B2 (en) * 1992-02-10 1999-02-10 富士通株式会社 External storage device data guarantee method and external storage device
JPH08263223A (en) 1995-03-23 1996-10-11 Toshiba Corp Computer system
JPH08272625A (en) 1995-03-29 1996-10-18 Toshiba Corp Device and method for multiprogram execution control
US6167485A (en) * 1997-12-31 2000-12-26 Emc Corporation On-line data verification and repair in redundant storage systems
US6295575B1 (en) * 1998-06-29 2001-09-25 Emc Corporation Configuring vectors of logical storage units for data storage partitioning and sharing
US7165152B2 (en) 1998-06-30 2007-01-16 Emc Corporation Method and apparatus for managing access to storage devices in a storage system with access control
JP2000267254A (en) 1999-03-17 2000-09-29 Fujitsu Ltd Pattern data verifying method and storage medium therefor
JP2000287254A (en) 1999-03-31 2000-10-13 Matsushita Electric Ind Co Ltd Equipment and method for radio communication
JP2001167040A (en) * 1999-12-14 2001-06-22 Hitachi Ltd Memory subsystem and memory control unit
JP2001331323A (en) 2000-05-18 2001-11-30 Canon Inc Downloading method, device and system
US6766430B2 (en) * 2000-07-06 2004-07-20 Hitachi, Ltd. Data reallocation among storage systems
US6715036B1 (en) * 2000-08-01 2004-03-30 International Business Machines Corporation Method, system, and data structures for transferring blocks of data from a storage device to a requesting application
JP4611502B2 (en) 2000-09-19 2011-01-12 サンデン株式会社 Bill recognition device
JP4105398B2 (en) * 2001-02-28 2008-06-25 株式会社日立製作所 Information processing system
JP4144727B2 (en) * 2001-07-02 2008-09-03 株式会社日立製作所 Information processing system, storage area providing method, and data retention management device
JP4060552B2 (en) * 2001-08-06 2008-03-12 株式会社日立製作所 Storage device system and storage device system configuration method
US6772289B1 (en) * 2001-12-17 2004-08-03 Lsi Logic Corporation Methods and apparatus for managing cached CRC values in a storage controller
JP3702231B2 (en) * 2002-01-31 2005-10-05 株式会社東芝 Disk array apparatus and dynamic storage capacity expansion method in the same

Patent Citations (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US617036A (en) * 1899-01-03 John mitchell
US5285456A (en) * 1991-05-15 1994-02-08 International Business Machines Corporation System and method for improving the integrity of control information
US5548788A (en) * 1994-10-27 1996-08-20 Emc Corporation Disk controller having host processor controls the time for transferring data to disk drive by modifying contents of the memory to indicate data is stored in the memory
US5870537A (en) * 1996-03-13 1999-02-09 International Business Machines Corporation Concurrent switch to shadowed device for storage controller and device errors
US5867736A (en) * 1996-03-29 1999-02-02 Lsi Logic Corporation Methods for simplified integration of host based storage array control functions using read and write operations on a storage array control port
US6185634B1 (en) * 1996-09-27 2001-02-06 Emc Corporation Address triggered DMA controller with an indicative signal including circuitry for calculating a new trigger address value based on the sum of the current trigger address and the descriptor register data with a trigger address register
US6363462B1 (en) * 1997-03-31 2002-03-26 Lsi Logic Corporation Storage controller providing automatic retention and deletion of synchronous back-up data
US6157485A (en) * 1997-07-18 2000-12-05 Cheng; Yihao Lens arrangement for enhancing the coupling of light shifted by an optical element
US5951658A (en) * 1997-09-25 1999-09-14 International Business Machines Corporation System for dynamic allocation of I/O buffers for VSAM access method based upon intended record access where performance information regarding access is stored in memory
US6195761B1 (en) * 1997-12-31 2001-02-27 Emc Corporation Method and apparatus for identifying and repairing mismatched data
US6611923B1 (en) * 1998-03-31 2003-08-26 Madhav Mutalik System and method for backing up data stored in multiple mirrors on a mass storage subsystem under control of a backup server
US6151685A (en) * 1998-05-15 2000-11-21 International Business Machines Corporation System and method for recovering a segment directory for a log structured array
US6393540B1 (en) * 1998-06-30 2002-05-21 Emc Corporation Moving a logical object from a set of source locations to a set of destination locations using a single command
US20020002661A1 (en) * 1998-06-30 2002-01-03 Steven M. Blumenau Method and apparatus for initializing logical objects in a data storage system
US20030191873A1 (en) * 1998-12-16 2003-10-09 Hitachi, Ltd. Storage system
US6311240B1 (en) * 1998-12-17 2001-10-30 Compaq Computer Corporation Hardware assisted formatted data transfer system having a source storage controller and a formatting storage controller receiving on-media structure definition and a data definition
US6467023B1 (en) * 1999-03-23 2002-10-15 Lsi Logic Corporation Method for logical unit creation with immediate availability in a raid storage environment
US6629199B1 (en) * 1999-08-20 2003-09-30 Emc Corporation Digital data storage system including directory for efficiently providing formatting information for stored records and utilization of a check value for verifying that a record is from a particular storage location
US6629273B1 (en) * 2000-01-24 2003-09-30 Hewlett-Packard Development Company, L.P. Detection of silent data corruption in a storage system
US20030140288A1 (en) * 2000-10-19 2003-07-24 Oracle Corporation Enhancements to data integrity verification mechanism
US20020052985A1 (en) * 2000-10-31 2002-05-02 Noboru Furuumi Storage subsystem, information processing system and method of controlling I/O interface
US20020073279A1 (en) * 2000-12-08 2002-06-13 Kabushiki Kaisha Toshiba Method for regenerating data in disk array
US6886171B2 (en) * 2001-02-20 2005-04-26 Stratus Technologies Bermuda Ltd. Caching for I/O virtual address translation and validation using device drivers
US20020169995A1 (en) * 2001-05-10 2002-11-14 International Business Machines Corporation System, method, and computer program for selectable or programmable data consistency checking methodology
US6718447B2 (en) * 2001-06-28 2004-04-06 Hewlett-Packard Development Company, L.P. Method and system for providing logically consistent logical unit backup snapshots within one or more data storage devices
US20030093633A1 (en) * 2001-09-27 2003-05-15 Seagate Technology Llc Method and system for data path verification
US20030115414A1 (en) * 2001-12-18 2003-06-19 Kabushiki Kaisha Toshiba Disk array apparatus and data backup method used therein
US20030145157A1 (en) * 2002-01-31 2003-07-31 Smullen James R. Expedited memory dumping and reloading of computer processors
US20030172325A1 (en) * 2002-03-06 2003-09-11 Wyatt Stewart R. Verifying data in a data storage device
US6968479B2 (en) * 2002-03-06 2005-11-22 Hewlett-Packard Development Company, L.P. Verifying data in a data storage device

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10846190B2 (en) * 2019-03-29 2020-11-24 Lenovo (Singapore) Pte. Ltd. Connected device activation

Also Published As

Publication number Publication date
EP1785867B1 (en) 2010-09-01
EP1785867A2 (en) 2007-05-16
EP1349059B1 (en) 2010-07-14
US6842793B2 (en) 2005-01-11
EP1349059A3 (en) 2007-09-12
EP1785867A3 (en) 2007-08-29
DE60333322D1 (en) 2010-08-26
US7725611B2 (en) 2010-05-25
JP2003288270A (en) 2003-10-10
CN1241098C (en) 2006-02-08
CN1448827A (en) 2003-10-15
US20030188058A1 (en) 2003-10-02
JP4080227B2 (en) 2008-04-23
DE60334037D1 (en) 2010-10-14
US20080288829A1 (en) 2008-11-20
EP1349059A2 (en) 2003-10-01

Similar Documents

Publication Publication Date Title
US7725611B2 (en) Method and apparatus for verifying data in a storage system
US10007466B1 (en) Tracking copy sessions
US6073209A (en) Data storage controller providing multiple hosts with access to multiple storage subsystems
US6499075B2 (en) Computer system including a device with a plurality of identifiers
US6968425B2 (en) Computer systems, disk systems, and method for controlling disk cache
US6408369B1 (en) Internal copy for a storage controller
US7958328B2 (en) Computer system, storage system and method for saving storage area by integrating same data
US7016982B2 (en) Virtual controller with SCSI extended copy command
US7640588B2 (en) Data processing system and method
US10061540B1 (en) Pairing of data storage requests
US20210232458A1 (en) Logical backup using a storage system
US20090228672A1 (en) Remote copy system and check method
US20060277326A1 (en) Data transfer system and method
US8307174B1 (en) System and method for managing sessions and reallocating memory resources used for replication of data in a data storage environment
US10318171B1 (en) Accessing fast memory in a data storage array
US10216652B1 (en) Split target data transfer
US10437497B1 (en) Active-active host environment
US11922073B2 (en) Non-disruptive updating of virtual tape emulation applications
US10678466B2 (en) Data migration with write back to source
US10852983B2 (en) Data migration with write back to source with data pre-copy
US20200034070A1 (en) Cloud access through tape transformation

Legal Events

Date Code Title Description
STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION