Storage device
Summary by NHIP
Data migration method
The method defines hierarchical storage classes and life cycle models to manage data objects across coupled storage systems. It detects a second storage system and requests its area characteristics to facilitate migration based on managed stage relations.
Claim Score by NHIP
Abstract
A storage device is provided with a file I/O interface control device and a plurality of disk pools. The file I/O interface control device sets one of a plurality of storage hierarchies defining storage classes, respectively, for each of LUs within the disk pools, thereby forming a file system in each of the LUs. The file I/O interface control device migrates at least one of the files from one of the LUs to another one of the LUs of an optimal storage class, based on static properties and dynamic properties of each file.

Term
Term ended
Expired 12 April 2025, 1.5 years ago.
- Priority
- Filed
- Granted
- Expired
- Today
10 claims: 2 independent, 8 dependent
- 1A data migration method for a system including a first storage system having a first controller and a plurality of first disk devices coupled to the first controller, the method comprising steps of:(a) providing a plurality of storage areas, having various characteristics, by the plurality of first disk devices;(b) defining storage classes, being hierarchical attributes of storage areas, of the plurality of storage areas of the first storage system, based on the characteristics of the plurality of storage areas of the first storage system, by the first controller;(c) defining life cycle models, each having a plurality of stages associated with usage statuses of data and a condition of a stage change, for data objects to be stored in the system, by the first controller;(d) managing, by the first controller, a relation between the stages of the life cycle models and the storage classes;(e) applying a first life cycle model of the life cycle models to a certain data object to be stored in the system;(f) based on the relation managed by the first controller and the first life cycle model, storing the certain data object, by the first controller, in a first storage area of the plurality of storage areas of the first storage system, the first storage area being categorized in a first storage class of the storage classes, the first storage class being related to a first stage included in the first life cycle model, when the certain data object is in the first stage of the first life cycle model;(g) detecting, by the first controller, a second storage system having a second controller and a plurality of second disk devices coupled to the second controller, another plurality of storage areas being provided by the plurality of second disk devices, when the second storage system is coupled to the first storage system;(h) issuing a request to obtain characteristics information of the another plurality of storage areas of the second storage system from the first controller to the second controller;(i) defining, by the first controller, the storage classes of the another plurality of storage areas of the second storage system based on the characteristics information of the another plurality of storage areas of the second storage system obtained from the second controller in response to the request;(j) based on the relation managed by the first controller and the first life cycle model, selecting, by the first controller, a second storage area of the another plurality of storage areas of the second storage system as a migration target, the second storage area being categorized in a second storage class of the storage classes, the second storage class being related to a second stage included in the first life cycle model;(k) controlling, by the first controller, a migration operation of the certain data object from the first storage area to the second storage area, when the certain data object is in the second stage of the first life cycle model.
- 6Broadest claimClaim Score 15, narrow(NHIP)A system for storing data in a plurality of storage areas, comprising:a first controller;a plurality of storage areas, having various characteristics, provided by a plurality of first disk devices coupled to the first controller;storage class information, managed by the first controller, defining storage classes of the plurality of storage areas, wherein the storage classes are hierarchical attributes of the plurality of storage areas determined based on the characteristics of the plurality of storage areas;life cycle information, managed by the first controller, defining life cycle models, each including a plurality of stages associated with usage statuses of data, applied to data objects to be stored in the system;and relation information, managed by the first controller, indicating a relation between the stages of the life cycle models and the storage classes, wherein a first life cycle model selected from the life cycle models is applied to a certain data object, wherein when the certain data object is in a first stage of the first life cycle model, the first controller controls to store the certain data object in a first storage area of the plurality of storage areas, the first storage area being categorized in a first storage class defined by the storage class information, the first storage class being related to the first stage of the first life cycle model according to the relation information, wherein when a second storage system including a second controller and a plurality of second disk devices configuring another plurality of storage areas is coupled to the first controller, the first controller detects the second storage system. wherein the first controller issues a request to obtain characteristics information of the another plurality of storage areas of the second storage system from the second controller, wherein the first controller defines the storage classes of the another plurality of storage areas of the second storage system based on the characteristics information of the another plurality of storage areas of the second storage system obtained in response to the request, wherein the first controller selects a second storage area of the another plurality of storage areas of the second storage system as a migration target, the second storage area being categorized in a second stage class according to the storage class information, the second storage class being related to a second stage included in the first life cycle model according to the relation information, wherein when the certain data object is in the second stage of the first life cycle model, the first controller controls a migration operation of the certain data object from the first storage area to the second storage area.
Independent claims2
234 paragraphs in 4 sections, as filed
0001This is a continuation of application Ser. No. 10/775,886 filed Feb. 10, 2004, which application is hereby incorporated by reference in its entirety.
BACKGROUND OF THE INVENTION
00021. Field of the Invention
0003The present invention relates to a storage device used in a computer system.
00042. Related Background Art
0005In a conventional system, a high-speed storage device and a low-speed storage device may be connected to a computer called a hierarchical storage. In the system, files that are frequently used are stored in the high-speed storage device such as a magnetic disk device, while files that are not frequently used are stored in the inexpensive, low-speed storage device such as a tape device. Which files should be placed, i.e., stored, in which storage device is determined by using a table that manages access frequency of each file.
0006In another conventional system, a plurality of logical storage devices having different processing speeds and storage capacities are configured within a storage device that is connected to a computer and used. Such a system may be represented by disk array subsystems. In this system, the storage device manages as statistical information the frequency of accesses from the computer to data stored in the storage device, and, based on the statistical information, transfers data with high access frequency to logical storage devices with higher performance.
0007The first set of problems entailed in the prior art is that there is a high dependency on the computer connected to the storage device, that there is a limitation in the system configuration, and that it is difficult to simplify the system management.
0008In the conventional system described above, a hierarchical storage control is realized through software operating on the computer. The hierarchical storage control refers to a data storage control for controlling a plurality of storage regions having different processing speeds and storage capacities such that the storage regions can be changed according to the frequency of data usage. In other words, the hierarchical storage control refers to controlling to select, based on the property of data such as frequency of data usage, an appropriate storage region from among a plurality of storage regions having different properties in terms of processing speed and/or storage capacity, and to store the data in the storage region selected. However, when the system configuration is altered, such as when an old computer is replaced by a new computer, maintaining the system can be difficult due to such reasons as the system configuration of the new computer not being able to take over the software's control information.
0009Also in the conventional system described above, although a hierarchical storage control is implemented on a per-logical storage device basis, a technology for the storage device to recognize a data structure of data stored in the logical storage device or a technology for executing exclusive control are not disclosed. As a result, it would be difficult for a plurality of computers to share the same logical storage devices, and integrating storage devices used by a plurality of computers in order to reduce the management cost of the computer system would require imposing certain limitations on the configuration of the computer system, such as allocating a logical storage device for each computer.
0010The second problem is that optimal placement of data according to the life cycle or type of data is difficult.
0011According to the conventional technology, data that had high access frequency in the past is assumed to have high access frequency in the future as well, and the storage regions in which the data is stored are determined based on statistical information regarding data access frequency and on used capacity of storage regions that can be accessed at high-speed. The processing efficiency can be improved by increasing the probability with which data with high access frequency can reside in a storage device that can be accessed at high-speed. However, there are no technologies disclosed for determining storage regions in which to store data by taking into consideration differences in data properties that are dependent on the data's life cycle stage, i.e., the time elapsed since the corresponding file was generated, the type of application that generates and uses the data, and the type of data itself.
0012The third problem is that the effect of the hierarchical storage control is small.
0013Although the conventional system described above executes a hierarchical storage control by taking advantage of the difference in capacity and price between magnetic tapes and magnetic disks, the difference in capacity and price between magnetic tapes and magnetic disks have been growing smaller in recent years; consequently, the effect of cost optimization and cost reduction through the use of hierarchical storage control has also been growing smaller. Furthermore, due to the fact that the access speed to magnetic tapes is extremely slow compared to access speed to magnetic disks, it is difficult to use magnetic tapes as storage device for online access.
0014In the conventional system described above, a hierarchical storage control is executed by taking advantage of the difference in price and performance resulting from different RAID configurations of magnetic disks; however, since the price difference results only from the difference in the degree of redundancy in RAID configurations, the only cost reduction that can be hoped for is the cost reduction equivalent only to the difference in the degree of redundancy.
SUMMARY OF THE INVENTION
0015The present invention relates to a control method or a storage device that can execute a hierarchical storage control for file storage positions without being dependent on the OS or applications executed on a host computer.
0016The present invention also relates to a hierarchical storage control method for a plurality of computers to share files, or to provide a storage device that executes such a hierarchical storage control.
0017The present invention also relates to a control method or a storage device that can execute a hierarchical storage control according to file properties.
0018The present invention further relates to a hierarchical storage control method with high cost reduction effect, or to provide a storage device that executes such a hierarchical storage control.
0019In accordance with an embodiment of the present invention, a storage device comprises a plurality of storage regions having different properties, an interface control device that accepts from one or more computers access requests containing file identification information, and an interface control device for accessing storage regions that store data of the file designated by identification information, wherein the interface control device controls storage of file data in one of a plurality of storage regions according to the file property.
0020Other features and advantages of the invention will be apparent from the following detailed description, taken in conjunction with the accompanying drawings that illustrate, by way of example, various features of embodiments of the invention.
BRIEF DESCRIPTION OF THE DRAWINGS
0021<figref idref="DRAWINGS">FIG. 1</figref> is a diagram of an example of the configuration of a computer system in accordance with an embodiment of the present invention.
0022<figref idref="DRAWINGS">FIG. 2</figref> is a diagram of an example of the exterior appearance of a storage device.
0023<figref idref="DRAWINGS">FIG. 3</figref> is a diagram of an example of the exterior appearance of an adapter board.
0024<figref idref="DRAWINGS">FIG. 4</figref> is a diagram of an example of the configuration of a NAS channel adapter.
0025<figref idref="DRAWINGS">FIG. 5</figref> is a diagram of an example of programs stored in a file system control memory.
0026<figref idref="DRAWINGS">FIG. 6</figref> is a diagram of an example of programs stored in a disk array control memory.
0027<figref idref="DRAWINGS">FIG. 7</figref> is a diagram of an example of the relationship among disk pools, LUs and file systems.
0028<figref idref="DRAWINGS">FIG. 8</figref> is a diagram of an example of a storage class management table.
0029<figref idref="DRAWINGS">FIG. 9</figref> is a diagram of an example of a filename management table.
0030<figref idref="DRAWINGS">FIG. 10</figref> is a diagram of an example of a file storage management table and a buffer management table.
0031<figref idref="DRAWINGS">FIG. 11</figref> is a diagram of an example of a file property information management table.
0032<figref idref="DRAWINGS">FIG. 12</figref> is a diagram of an example of a file storage management table.
0033<figref idref="DRAWINGS">FIG. 13</figref> is a diagram of an example of the second configuration of a system in accordance with another embodiment of the present invention.
0034<figref idref="DRAWINGS">FIG. 14</figref> is a diagram of an example of the third configuration of the system in accordance with another embodiment the present invention.
0035<figref idref="DRAWINGS">FIG. 15</figref> is a diagram of an example of the fourth configuration of the system in accordance with another embodiment the present invention.
0036<figref idref="DRAWINGS">FIG. 16</figref> is a diagram of a configuration example of a NAS node.
0037<figref idref="DRAWINGS">FIG. 17</figref> is a diagram of a configuration example of a Fibre Channel node.
0038<figref idref="DRAWINGS">FIG. 18</figref> is a diagram of a configuration example of an IP node.
0039<figref idref="DRAWINGS">FIG. 19</figref> is a diagram of a configuration example of a disk array node.
PREFERRED EMBODIMENTS OF THE INVENTION
0040The following is a description of embodiments of the present invention. The following embodiments do not limit the present invention.
Embodiment 1
0000(1) Example of System Configuration (<figref idref="DRAWINGS">FIG. 1</figref>)
0041<figref idref="DRAWINGS">FIG. 1</figref> is a diagram indicating an example of a computer system including a storage device <b>1</b> (it is also called a storage system), to which the present invention is applied. In the following, x may be any integer.
0042The storage device <b>1</b> is a disk array system comprising a disk controller (hereinafter called “DKC”) <b>11</b> and a plurality of magnetic disk devices (hereinafter simply called “disks”) <b>170</b><i>x </i>and <b>171</b><i>x</i>. In the present embodiment, the storage device <b>1</b> is provided with two types of disks <b>170</b><i>x </i>and <b>171</b><i>x</i>. <b>170</b><i>x </i>are Fibre Channel (hereinafter called “FC”) disks with FC-type interface, while <b>171</b><i>x </i>are serial AT attached (hereinafter called “SATA”) disks with serial ATA-type (SATA-type) interface. A plurality of FC disks <b>170</b><i>x </i>makes up an FC disk pool <b>0</b> (<b>170</b>), while a plurality of SATA disks <b>171</b><i>x </i>makes up a SATA disk pool <b>1</b> (<b>171</b>). The disk pools will be described in detail later.
0043Next, the configuration of the DKC <b>11</b> of the storage device <b>1</b> will be described. The DKC <b>11</b> comprises one or more NAS channel adapters <b>110</b><i>x</i>, one or more Fibre Channel adapters <b>111</b><i>x</i>, a plurality of disk adapters <b>12</b><i>x</i>, a shared memory <b>13</b> (hereinafter called “SM”), a shared memory controller <b>15</b> (hereinafter called “SMC”), a cache memory <b>14</b> (hereinafter called “CM”), and a cache memory controller <b>16</b> (hereinafter called “CMC”).
0044The NAS channel adapters (hereinafter called “CHN”) <b>110</b><i>x </i>are interface control devices connected by file I/O interfaces to computers <b>40</b><i>x </i>(hereinafter called “NAS hosts”), which are connected to a local area network (hereinafter called “LAN”) <b>20</b> or a LAN <b>21</b>.
0045The Fibre Channel adapters (hereinafter called “CHF”) <b>111</b><i>x </i>are interface control devices connected by block I/O interfaces to computers (hereinafter called “SAN hosts”) <b>50</b><i>x</i>, which are connected to a storage area network (hereinafter called “SAN”) <b>30</b>. Hereinafter, CHN and CHF are collectively called channel adapters (hereinafter called “CH”).
0046The disks <b>17</b><i>x </i>are connected to the disk adapters <b>12</b><i>x</i>. Each disk adapter (hereinafter called “DKA”) <b>12</b><i>x </i>controls input and output to and from one or more disks <b>17</b><i>x </i>connected to itself.
0047The SMC <b>15</b> is connected to the CHN <b>110</b><i>x</i>, the CHF <b>111</b><i>x</i>, the DKA <b>12</b><i>x </i>and the SM <b>13</b>. The SMC <b>15</b> controls data transfer among the CHN <b>110</b><i>x</i>, the CHF <b>111</b><i>x</i>, the DKA <b>12</b><i>x </i>and the SM <b>13</b>. The CMC <b>16</b> is connected to the CHN <b>110</b><i>x</i>, the CHF <b>111</b><i>x</i>, the DKA <b>12</b><i>x </i>and the CM <b>14</b>. The CMC <b>16</b> controls data transfer among the CHN <b>110</b><i>x</i>, the CHF <b>111</b><i>x</i>, the DKA <b>12</b><i>x </i>and the CM <b>14</b>.
0048The SM <b>13</b> stores a disk pool management table <b>131</b>. The disk pool management table <b>131</b> is information that is used to manage the configuration of the disk pools.
0049The LANs <b>20</b> and <b>21</b> connect the CHNs <b>110</b><i>x </i>to the NAS hosts <b>40</b><i>x</i>. Generally, Ethernet® is used for LAN. The SAN <b>30</b> connects the CHFs <b>111</b><i>x </i>to the SAN hosts <b>50</b><i>x</i>. Generally, Fibre Channel is used for SAN. However, an IP network can be used as the SAN, such that iSCSI, by which SCSI commands according to SCSI protocol are encapsulated into IP packets for sending and receiving, is used among equipment connected to the SAN. The SAN <b>35</b> according to the present embodiment is a dedicated SAN for connecting the storage device <b>1</b> and no SAN hosts are connected to the SAN <b>35</b>.
0050In the storage device <b>1</b>, all CHs can access the CM <b>14</b>, the SM <b>13</b>, any DKAs <b>12</b><i>x </i>and any disks <b>17</b><i>x</i>, via the CMC <b>16</b> or the SMC <b>15</b>.
0051The storage device <b>1</b> shown in <figref idref="DRAWINGS">FIG. 1</figref> has both the SAN interfaces (CHFs <b>111</b><i>x</i>) for connecting to the SAN hosts <b>50</b><i>x </i>and the NAS interfaces (CHNs <b>110</b><i>x</i>) for connecting to the NAS hosts <b>40</b><i>x</i>, but the present embodiment can be implemented even if the storage device <b>1</b> has only the NAS interfaces.
0000(2) Example of Exterior Appearance of Storage Device (<figref idref="DRAWINGS">FIG. 2</figref>)
0052<figref idref="DRAWINGS">FIG. 2</figref> is a diagram of an example of the exterior appearance of the storage device <b>1</b>.
0053A DKC unit <b>19</b> stores the CHNs <b>110</b><i>x</i>, the CHFs <b>111</b><i>x</i>, the DKAs <b>12</b><i>x</i>, the SM <b>13</b> and the CM <b>14</b>, which are components of the DKC <b>11</b>. The SM <b>13</b> actually comprises a plurality of controller boards <b>13</b><i>x</i>. The CM <b>14</b> also comprises a plurality of cache boards <b>14</b><i>x</i>. Users of the storage device <b>1</b> can increase or decrease the number of such boards in order to configure the storage device <b>1</b> with the CM <b>14</b> and the SM <b>13</b> having the desired storage capacity. Disk units (hereinafter called “DKU”) <b>180</b> and DKUs <b>181</b> store the disk pool <b>170</b> and the disk pool <b>171</b>, respectively.
0054Adapter boards built-in with the CHNs <b>110</b><i>x</i>, the CHFs <b>111</b><i>x</i>, the DKAs <b>12</b><i>x</i>, the controller boards <b>13</b><i>x </i>and the cache boards <b>14</b><i>x </i>are stored in slots <b>190</b>. According to the present embodiment, the shape of the slots <b>190</b>, the size of the adapter boards and the shape of connectors are made uniform regardless of the type of adapter boards or the type of interface, which maintains compatibility among various types of boards. As a result, in the DKC unit <b>19</b>, any adapter board can be mounted into any slot <b>190</b> regardless of the type of the adapter board or the type of the interface. Furthermore, users of the storage device <b>1</b> can freely select the number of adapter boards for the CHNs <b>110</b><i>x </i>and the CHFs <b>111</b><i>x </i>in order to mount the number of the CHNs <b>110</b><i>x </i>and the CHFs <b>111</b><i>x </i>selected into the slots <b>190</b> of the DKC unit <b>19</b>.
0000(3) Example of Exterior Configuration of Adapter Board (Hereinafter Called “NAS Board”) with the CHN <b>110</b>X Built-In (<figref idref="DRAWINGS">FIG. 3</figref>)
0055<figref idref="DRAWINGS">FIG. 3</figref> is a diagram of an example of the exterior configuration of a NAS board. A connector <b>11007</b> is connected to a connector of the DKC unit <b>19</b>. An interface connector <b>2001</b> is Ethernet®-compatible and can be connected to Ethernet®.
0056According to the present embodiment, due to the fact that the shape of the connector on adapter boards is uniform regardless of the type of the adapter board as described earlier, the adapter boards with built-in CHNs <b>110</b><i>x </i>and the adapter boards with built-in CHFs <b>111</b><i>x </i>have connectors of the same shape. On the adapter boards with the built-in CHFs <b>111</b><i>x</i>, the interface connector <b>2001</b> is Fibre Channel-compatible and configured to be connected to Fibre Channel.
0000(4) Example of Configuration of NAS Board (or CHN) (<figref idref="DRAWINGS">FIG. 4</figref>)
0057<figref idref="DRAWINGS">FIG. 4</figref> is a diagram of an example of the configuration of the CHN <b>110</b><i>x</i>. A file access control CPU <b>11001</b> is a processor for controlling file access. A LAN controller <b>11002</b> is connected to the LAN <b>20</b> via the interface connector <b>2001</b> and controls sending and receiving of data to and from the LAN <b>20</b>. A file access control memory <b>11004</b> is connected to the file access control CPU <b>11001</b>. The file access control memory <b>11004</b> stores programs executed by the file access control CPU <b>11001</b> and control data.
0058A disk array control CPU <b>11008</b> is a processor for controlling a disk array. The disk array refers to a storage device consisting of a plurality of disks. Disk arrays in which at least one of a plurality of disks stores redundant data to provide fault tolerance are called RAIDs. RAIDs are described later. A disk array control memory <b>11009</b> is connected to the disk array control CPU <b>11008</b> and stores programs executed by the disk array control CPU <b>11009</b> and control data. An SM I/F control circuit <b>11005</b> is a circuit for controlling access from the CHNs <b>110</b><i>x </i>to the SM <b>13</b>. A CM I/F control circuit <b>11006</b> is a circuit for controlling access from the CHNs <b>110</b><i>x </i>to the CM <b>14</b>. An inter-CPU communications circuit <b>11007</b> is a communications circuit used when the file access control CPU <b>11001</b> communicates with the disk array control CPU <b>11008</b> in order to access disks.
0059The present embodiment indicates an example of an asymmetrical multiprocessor configuration in which two processors, the file access control CPU <b>11001</b> and the disk array control CPU <b>11208</b>, are mounted on each CHN <b>110</b><i>x</i>; however, each CHN <b>110</b><i>x </i>can be configured by mounting a single processor that executes both the file access control and the disk array control, or as a symmetrical multiprocessor configuration in which two or more processors are mounted as equivalents to execute the file access control and the disk array control.
0060The configuration of each CHF <b>111</b><i>x </i>is the configuration shown in <figref idref="DRAWINGS">FIG. 4</figref>, except that components shown in top half of <figref idref="DRAWINGS">FIG. 4</figref>, namely the LAN controller <b>11002</b>, the file access control CPU <b>11001</b>, the file access control memory <b>11004</b> and the inter-CPU communications circuit <b>11007</b>, are replaced by a Fibre Channel controller.
0000(5) Example of Programs Stored in File Access Control Memory (<figref idref="DRAWINGS">FIG. 5</figref>)
0061<figref idref="DRAWINGS">FIG. 5</figref> is a diagram of an example of programs and control data stored in the file access control memory <b>11004</b> of the CHN <b>110</b><i>x</i>. An operating system program <b>110040</b> is used for the management of programs as a whole and for input/output control. A LAN controller driver program <b>110041</b> is used for the control of the LAN controller <b>11002</b>. A TCP/IP program <b>110042</b> is used for the control of TCP/IP, which is the communications protocol for LAN. A file system program <b>110043</b> is used for managing files stored in the storage device <b>1</b>. A network file system program <b>110044</b> is used for controlling NFS and/or CIFS, which are protocols for providing files stored in the storage device <b>1</b> to the NAS hosts <b>40</b><i>x</i>. A volume control program <b>110045</b> is used for controlling the configuration of each logical volume by combining a plurality of logical disk units (hereinafter called “LU”), each of which is a unit of storage region set within the disk pools <b>17</b><i>x</i>. An inter-CPU communications driver program <b>110046</b> is used for controlling the inter-CPU communications circuit <b>11007</b>, which is used for communication between the file access control CPU <b>11001</b> and the disk array control CPU <b>11008</b>.
0062The file system program <b>110043</b> includes the following: <ul id="ul0001" list-style="none"><li id="ul0001-0001" num="0063">1) a file open processing section <b>1100431</b> for executing a file open processing when using a file;</li><li id="ul0001-0002" num="0064">2) a request processing section <b>1100432</b> for executing a processing according to a file access request when a file access request is received;</li><li id="ul0001-0003" num="0065">3) a file storage management section <b>1100433</b> for dividing each file into blocks, determining the storage position on a disk for each block, and managing the storage position of each block;</li><li id="ul0001-0004" num="0066">4) a buffer management section <b>1100434</b> for managing correlation between each block and a buffer formed in the memory;</li><li id="ul0001-0005" num="0067">5) a file storage management table <b>1100435</b> for managing addresses of storage regions on disks that store blocks that make up each file;</li><li id="ul0001-0006" num="0068">6) a filename management table <b>1100436</b> for managing filenames of open files and file handlers used to access the file storage management table <b>1100435</b> of each file;</li><li id="ul0001-0007" num="0069">7) a buffer management table <b>1100437</b> for managing buffer addresses indicating storage regions within buffers corresponding to blocks that make up a file;</li><li id="ul0001-0008" num="0070">8) a file property information management table <b>1100438</b> for storing file static properties, such as the file type, the application that generated the file, the intent of the file generator, and file dynamic properties, such as the value of the file that varies according to the file's life cycle stage and the file's access properties;</li><li id="ul0001-0009" num="0071">9) a migration management section <b>110043</b>A used when executing a processing to migrate files between LUs; and</li><li id="ul0001-0010" num="0072">10) a storage class management table <b>1100439</b> that registers for each LU in the storage pool a storage class, described later, and identification information of the storage device in which an LU resides. <br /> (6) Configuration of Disk Array Control Memory (<figref idref="DRAWINGS">FIG. 6</figref>) </li></ul>
0073<figref idref="DRAWINGS">FIG. 6</figref> is a diagram of an example of programs stored in the disk array control memory <b>11009</b>. An operating system program <b>110090</b> is used for managing programs as a whole and for controlling input/output. A disk array control program <b>110091</b> is used for constructing LUs within the disk pools <b>17</b><i>x </i>and for processing access requests from the file access control CPU <b>11001</b>. A disk pool management program <b>110092</b> is used for managing the configuration of the disk pools <b>17</b><i>x </i>by using information in the disk pool management table <b>131</b> stored in the SM <b>13</b>. An inter-CPU communications driver program <b>110093</b> is used for controlling the inter-CPU communications circuit <b>11007</b>, which is used for communication between the file access control CPU <b>11001</b> and the disk array control CPU <b>11008</b>. A cache control program <b>110094</b> is used for managing data stored in the CM <b>14</b> and for controlling cache hit/miss judgments. A DKA communications driver program <b>110095</b> is used when accessing an LU in order to communicate with the DKAs <b>12</b><i>x</i>, which control the disks <b>170</b><i>x </i>and <b>171</b><i>x </i>that make up the LU.
0000(7) Configuration of Disk Pools (<figref idref="DRAWINGS">FIG. 7</figref>)
0074<figref idref="DRAWINGS">FIG. 7</figref> is a diagram of an example of the configuration of the disk pools.
0075In the FC disk pool <b>170</b> are set two LUs, LU<b>0</b> (<b>50</b>) and LU<b>1</b> (<b>51</b>). The LU<b>0</b> (<b>50</b>) comprises two FC disks, DK<b>000</b> and DK<b>010</b>, where the DK<b>000</b> and the DK<b>010</b> make up RAID 1. The LU<b>1</b> (<b>51</b>) consists of 5 FC disks, DK<b>001</b>, DK<b>002</b>, DK<b>003</b>, DK<b>004</b>, and DK<b>005</b>, where the five FC disks make up a 4D+1P configuration RAID 5. The RAID 1 and the RAID 5 refer to data placement methods in a disk array and are discussed in detail in “A Case for Redundant Arrays of Inexpensive Disks (RAID)” by D. Patterson, et al., ACM SIGMOD Conference Proceedings, 1988, pp. 109-116. In the LU<b>0</b> with the RAID 1 configuration, the two FC disks DK<b>000</b> and DK<b>010</b> have a mirror relationship with each other. In the meantime, the LU<b>1</b> having the RAID 5 configuration consists of one or more disks that store data stripes, which store data of files accessed from host computers, and one or more disks that store parity stripes, which are used to retrieve data stored in the data stripes. The LU<b>1</b> has the 4D+1P configuration RAID 5, which indicates a RAID 5 consisting of four data stripes and one parity stripe. Similar representations will be used hereinafter to indicate the number of data stripes and the number of parity stripes in LUs having the RAID 5 configuration.
0076LU<b>2</b> (<b>52</b>) is established in the SATA disk pool <b>171</b>. The LU<b>2</b> (<b>52</b>) consists of nine SATA disks, DK<b>100</b>, DK<b>101</b>, DK<b>102</b>, DK<b>103</b>, DK<b>104</b>, DK<b>110</b>, DK<b>111</b>, DK<b>112</b> and DK<b>113</b>, where the nine SATA disks make up an 8D+1P configuration RAID 5.
0077When the capacity of each disk is 140 GB, the LU<b>0</b> (<b>50</b>) has 140 GB, the LU<b>1</b> (<b>51</b>) has 560 GB, and the LU<b>2</b> (<b>52</b>) has 1120 GB in usable storage capacity.
0078Independent local file systems LFS<b>0</b> (<b>60</b>), LFS<b>1</b> (<b>61</b>) and LFS<b>2</b> (<b>62</b>) are established and constructed for the LU<b>0</b> (<b>50</b>), the LU<b>1</b> (<b>51</b>) and the LU<b>2</b> (<b>52</b>), respectively.
0000(8) Storage Class Management Table (<figref idref="DRAWINGS">FIG. 8</figref>)
0079<figref idref="DRAWINGS">FIG. 8</figref> is an example of the configuration of a storage class management table <b>1100451</b> stored in the file access control memory <b>11004</b> of each CHN <b>110</b><i>x. </i>The storage class management table <b>1100451</b> is generated by the file access control CPU <b>11001</b>'s executing the file system program <b>110043</b> and referring to information stored in the disk pool management table <b>131</b> of the SM <b>13</b>.
0080Although the disk pool management table <b>131</b> is not shown, the disk pool management table <b>131</b> is stored in the SM <b>13</b> and contains information similar to the information in the storage class management table <b>1100451</b> for all CHs. In other words, of the information in the disk pool management table <b>131</b>, the storage class management table <b>1100451</b> stored in the file access control memory <b>11004</b> of each CHN <b>110</b><i>x </i>contains information regarding LUs used by the CHN <b>110</b><i>x, </i>but rearranged with the storage class as a key.
0081The following is a description of the configuration of the storage class management table <b>1100451</b>. A storage class entry (<b>1100451</b><i>a</i>) stores information indicating storage class. A storage node # entry (<b>1100451</b><i>b</i>) stores an identification number (called a “storage node number”) of the storage device that makes up each storage class. A disk pool # entry (<b>1100451</b><i>c</i>) stores a disk pool number that makes up each storage class. An LU # entry (<b>1100451</b><i>d</i>) stores an LU number set for each disk pool. In an LU type entry (<b>1100451</b><i>e</i>), information stored indicates whether the corresponding LU is set internally (local) or externally (remote) to the given storage device and whether a file system is set in the LU. In other words, if the LU is within the storage device, “Local” is registered in the LU type entry, while “Remote” is registered if the LU is in a different storage device; if a file system is constructed in that LU, “File” is registered in the LU type entry, while “Block” is registered if no file systems are constructed in the LU. In a RAID Conf. entry (<b>1100451</b><i>f</i>), information stored indicates the RAID level of the disk array that makes up each LU and the structure of the corresponding disk array, such as data record and parity record number within a parity group. In a usable capacity entry (<b>1100451</b><i>g</i>) and a used capacity entry (<b>1100451</b><i>h</i>), information that indicates the total storage capacity of the given LU and information that indicates the storage capacity being used, respectively, are stored.
0082A storage class is a hierarchical attribute provided for each storage region based on the usage of data storage; according to the present embodiment, three attributes of OnLine Storage, NearLine Storage and Archive Storage are defined. In addition, sub-attributes of Premium and Normal are defined for the OnLine Storage. The OnLine Storage is an attribute set for LUs suitable for storing data of files that are frequently accessed, such as files being accessed online and files being generated. Premium indicates an attribute set for LUs suitable for storing data especially requiring fast response. The NearLine Storage is an attribute set for LUs suitable for storing data of files that are not frequently used but are occasionally accessed. The Archive Storage is an attribute set for LUs suitable for storing data of files that are hardly ever accessed and are maintained for long-term storage.
0083<figref idref="DRAWINGS">FIG. 8</figref> indicates that there are the LU<b>0</b> (<b>50</b>) of the OnLine Storage (Premium) class and the LU<b>1</b> (<b>51</b>) of the OnLine Storage (Normal) class in the FC disk pool <b>170</b> of the storage device <b>1</b> (called “STR0”). Further, in the SATA disk pool <b>171</b> of the storage device <b>1</b> (STR<b>0</b>) is the LU<b>2</b> (<b>52</b>) of the NearLine Storage class. Moreover, in a different storage device (STR<b>1</b>) is an LU<b>3</b> (<b>53</b>) of the Archive Storage class in a SATA disk pool. An example of constructing disk pools in different storage devices is described later.
0000(9) Filename Management Table (<figref idref="DRAWINGS">FIG. 9</figref>)
0084<figref idref="DRAWINGS">FIG. 9</figref> shows an example of the filename management table <b>1100436</b> that is stored in the file access control memory <b>11004</b>. The filename management table <b>1100436</b> is a table prepared for each file system, where filenames and file handlers are stored in a tree structure for easy searchability. When a file is accessed by one of the NAS hosts <b>40</b><i>x</i>, the filename of the file is included in an access request received by the CHN <b>110</b><i>x </i>from the NAS host <b>40</b><i>x</i>. The CHN <b>110</b><i>x </i>uses the filename to search the filename management table <b>11004</b> and obtains the file handler that corresponds to the filename, which enables the CHN <b>110</b><i>x </i>to refer to the file storage management table <b>1100435</b> that corresponds to the file handler.
0085Each filename management table <b>1100436</b> is stored in the LU in which the file system that corresponds to the filename management table <b>1100436</b> is constructed, and is read to the file access control memory <b>11004</b> when necessary and used by the file access control CPU <b>11001</b>.
0000(10) File Storage Management Table (<figref idref="DRAWINGS">FIG. 10</figref>)
0086<figref idref="DRAWINGS">FIG. 10</figref> is a diagram of an example of the file storage management table <b>1100435</b> and the buffer management table <b>1100437</b>. The file storage management table <b>1100435</b> is provided in the file access control memory <b>11004</b> for each file and is a table that manages file storage addresses. The file storage management table <b>1100435</b> can be referred to by designating a file handler that represents a file.
0087A file property information management table entry stores a pointer for referring to the file property information management table <b>1100438</b> for the corresponding file. A size indicates the size of the file in units of bytes. A number of blocks indicates the number of logical blocks used in managing the file, which is done by dividing the file into blocks called logical blocks. Each logical block that stores the file also stores a pointer to the buffer management table <b>1100437</b> that corresponds to the logical block.
0088There is one buffer management table <b>1100437</b> for each logical block, and each buffer management table <b>1100437</b> contains the following. A hash link entry stores a link pointer to a hash table for quickly determining whether a buffer is valid. A queue link entry stores a link pointer for forming a queue. A flag entry stores a flag that indicates the status of the corresponding buffer, i.e. whether valid data is stored in the buffer, whether the buffer is being used, whether the content of the buffer is unreflected on the disk. An equipment number entry stores an identifier of the storage device and an identifier of the LU in which the corresponding logical block is stored. A block number entry stores a disk address number that indicates the storage position of the logical block within the storage device indicated by the equipment number. A number of bytes entry stores the number of bytes of valid data stored in the logical block. A buffer size entry stores the size of the buffer in units of bytes. A buffer pointer entry stores a pointer to the corresponding physical buffer memory.
0089The file storage management table <b>1100435</b> is stored in the LU that stores the corresponding file and is read to the memory when necessary for use.
0000(11) File Property Information Management Table (<figref idref="DRAWINGS">FIG. 11</figref>)
0090<figref idref="DRAWINGS">FIG. 11</figref> is an example of the file property information management table <b>1100438</b> stored in the file access control memory <b>11004</b>. The file property information management table <b>1100438</b> stores static property information and dynamic property information. The static property information is determined when a file is configured and carries over thereafter. Although the static property information can be intentionally altered, it otherwise remains unaltered. The dynamic property information changes over time after a file is created.
0000(12) Static Property Information
0091The static property information is divided into a file information category and a policy category.
0092The file information category includes basic information of a file. In the file information category, a file type indicates the type of the file, such as a text file, document file, picture file, moving picture file or a voice file. An application indicates the application that generated the file. A date created indicates the date the file was first generated. The time at which the file was generated can be registered in addition to the date the file was created. An owner indicates the name of the user who created the file. An access identifier indicates a range of access authorization for the file.
0093The policy category is information that is set by the user or the application that created the file, and is information that is designated by the user or the application with regard to file storage conditions. An initial storage class is information that indicates the storage class of the LU in which the file is to be stored when the file is stored in a storage device for the first time. An asset value type indicates the asset value of the file. A life cycle model indicates the model applicable to the file from among life cycle models defined in advance. A migration plan indicates the plan applicable to the file from among plans concerning file migration (hereinafter called “migration”) defined in advance.
0094The asset value is an attribute that designates the importance or value attached to the file. An attribute of “extra important,” “important” or “regular,” for example, can be designated as an asset value. The asset value can be used as a supplemental standard for selecting a storage class, i.e., files with an attribute of “important” or higher are stored in LUs that belong to the OnLine Storage class with Premium attribute, or as a standard for selecting a storage class when no life cycle models are designated, for example.
0095In the description of the present embodiment, it will be assumed that files that are “important” or higher are stored in LUs that belong to the OnLine Storage (Premium) class. Needless to say, the present invention is not restricted to such an assumption and different standards may be used to select storage classes of LUs for storing files.
0096The life cycle stages have been named by drawing analogy with life cycle stages of humans to describe how the usage status of a file changes over time, i.e., the period in which data is created is the birth, the period in which the data is updated and/or used is the growth stage, the period in which the data is rarely updated and is mainly referred to is the mature stage, and the period in which the data is no longer used and is archived is the old age. A life cycle model defines the life cycle a file experiences. The most general method of defining a life cycle is to define the stages based on the amount of time that has elapsed since a file was generated. One example is to define the “growth stage,” or the “update stage,” in which there are frequent updates, as one month; the “mature stage,” or the “reference stage,” in which the file is mainly referred to, as one year; and the “old age,” or the “archive stage,” as thereafter. Hereinafter this definition is called a “model 1” and is used in the following description. By varying the time interval of the life cycle model or by defining stages with finer resolution, various life cycle models can be defined and one life cycle model from among a plurality of life cycle models can be selected for use. Furthermore, a specific life cycle model can be applied to a certain type of files, or life cycle models can be applied on a per-application basis such that a specific life cycle model is applied to files created by a certain application. Names of the life cycle stages can be expressed in terms of “growth stage,” “mature stage,” and “old age” that correspond to the life of a person, or in terms of “update stage,” “reference stage,” and “archive stage” based on file behavior. In the present embodiment, the latter expressions are used in order to more clearly indicate the behavior of files.
0097The migration plan defines to which storage class LU a file is transferred according to the file's life cycle stage. One example is a method for storing “update stage” files in OnLine Storage class LUs, “reference stage” files in the NearLine Storage class LUs, and “archive stage” files in Archive Storage class LUs. Hereinafter, this definition is called a “plan 1” and is used in the following description. In addition to this plan, various plans can be defined, such as a plan that defines “update stage” files to be stored in Online Storage (Premium) class LUs, and “reference stage” files in OnLine Storage (Normal) class LUs, while “archive stage” files remain in the NearLine Storage class LUs, and one plan from among a plurality of plans can be selected for use. Furthermore, a specific migration plan can be applied to a certain type of files, or migration plans can be applied on a per-application basis such that a migration plan is applied to files created by a certain application.
0000(13) Dynamic Property Information
0098The dynamic property information is divided into an access information category and a life cycle information category.
0099The access information category includes access statistical information for each file. In the access information category, a time stamp indicates the date and time a given file was last read or written, or the date and time the file storage management table <b>1100435</b> of the file was last updated. An access count indicates the total number of accesses to the file. A read count and a write count indicate the number of reads and the number of writes, respectively, to and from the file. A read size and a write size indicate the average value of the data transfer size when reading and writing, respectively, to and from the file. A read sequential count and a write sequential count indicate the number of times there is address continuity, i.e., sequentiality, between two of multiple consecutive accesses in reading or writing.
0100The life cycle information category includes information related to the life cycle of a file. In the life cycle information category, a current life cycle stage indicates the current positioning of a file within its life cycle, i.e., the update stage, the reference stage, or the archive stage. A current storage class indicates the storage class of a storage pool set for the LU that currently stores the file.
0101<figref idref="DRAWINGS">FIG. 11</figref> indicates one example of the file property information, but various other types of property information can be defined and stored in the file property information management table <b>1100438</b>. Furthermore, an embodiment may use only a part of the property information as necessary.
0000(14) Initial File Placement: A File Open Processing
0102Next, a description will be made as to a file open processing that takes place in the initial placement processing to store a file in a storage device for the first time.
0103Let us assume that the NAS host <b>0</b> (<b>400</b>) generated a file abc.doc.
0104The NAS host <b>0</b> (<b>400</b>) issues to the CHN<b>0</b> (<b>1100</b>) an open request for the file abc.doc. The open request includes a filename as identification information to identify the file. Since the open processing is executed to store the file for the first time, the NAS host <b>0</b> (<b>400</b>) sends to the CHN<b>0</b> (<b>1100</b>) the following information included in the file information category and the policy category as the static property information of the file property information, along with the open request. The information sent includes a file type “document,” an application that generated the file “XYZ Word,” and an access identifier “-rw-rw-rw-” as information included in the file information category, as well as an initial storage class “undesignated,” an asset value type “important,” the life cycle model “model 1,” and the migration plan “plan 1” as information included in the policy category.
0105The CHN<b>0</b> (<b>1100</b>) receives the open request from the NAS host <b>0</b> (<b>400</b>) via the LAN controller <b>11002</b>, and the file access control CPU <b>11001</b> executes the file system program <b>110043</b>.
0106When the file system program <b>110043</b> is executed, the open request received is specified through a control by the file access control CPU <b>11001</b> as an access request to access the local file system LFS<b>0</b> (<b>60</b>) based on the directory information of the filename. The file open processing section <b>1100431</b> refers to the filename management table <b>1100436</b> of the LFS<b>0</b> (<b>60</b>) and searches for abc.doc. Since it is determined as a result that abc.doc is a file that does not yet exist in the filename management table <b>1100436</b> and is to be stored for the first time, the file open processing section <b>1100431</b> registers abc.doc in the filename management table <b>1100436</b> and assigns a file handler to abc.doc.
0107Next, the file storage management section <b>1100433</b> creates the file storage management table <b>1100435</b> to correspond to the file handler assigned to the file abc.doc.
0108Next, the file storage management section <b>1100433</b> generates the file property information management table <b>1100438</b> and correlates it to the file storage management table <b>1100435</b> (i.e., a pointer to the file property information management table <b>1100438</b> is stored in the file storage management table <b>1100435</b>); the file storage management section <b>1100433</b> then stores in the file property information management table <b>1100438</b> the static property information of the file property information for the file abc.doc obtained from the NAS host <b>0</b> (<b>400</b>), as well as the date created and owner of the file. Next, the file storage management table <b>1100435</b> and the file property information management table <b>1100438</b> are written to the LU in which is constructed the file system the file belongs to.
0109Next, the CHN<b>0</b> (<b>1100</b>) returns the file handler to the NAS host <b>0</b> (<b>400</b>) and the open processing is terminated.
0000(15) Initial File Placement: A Data Write Processing
0110Next, a description will be made as to a data write processing executed in the initial placement processing of a file.
0111Using the file handler obtained in the open processing, the NAS host <b>0</b> (<b>400</b>) issues to the CHN<b>0</b> (<b>1100</b>) a write request to store data of the file abc.doc in the storage device <b>1</b>.
0112When the write request is received by the CHN<b>0</b> (<b>1100</b>), the file access control CPU <b>11001</b> executes the file system program <b>110043</b> and uses a method similar to the method used in the open processing to specify that the write request is an access request to access the local file system LFS<b>0</b> (<b>60</b>).
0113The request processing section <b>1100432</b> of the file system program <b>110043</b> interprets the access request as a write request based on the information included in the access request received, and uses the file handler designated in the write request to obtain the file storage management table <b>1100435</b> of the file that corresponds to the file handler.
0114Next, the file storage management section <b>1100433</b> secures buffers required to store the data and determines the storage positions on disks for the file.
0115To determine the storage positions, the file storage management section <b>100433</b> refers to the static property information in the file property information management table <b>1100438</b>. In this case, due to the fact that the life cycle model of the file abc.doc, which is the subject of the write request, is “model 1,” and to the fact that the write request received is an access taking place within one month of the file generation since it is an access request occurring in an initial file placement, the file storage management section <b>1100433</b> specifies the current life cycle stage of the file abc.doc as “growth stage.” Further, since the initial storage class is “undesignated” and the asset value type is “important,” the file storage management section <b>1100433</b> selects “OnLine Storage (Premium)” as the storage class of the storage pool in which to store the file abc.doc.
0116Next, the file storage management section <b>1100433</b> refers to the storage class management table <b>1100439</b> and decides to store the file abc.doc in an LU whose storage class is “OnLine Storage (Premium)” and that is specified by “STR<b>0</b> (i.e., the primary storage device 1)” as the storage node, “FC disk pool 1700” as the disk pool #, and “LU<b>0</b> (i.e., the local file system LFS<b>0</b>)” as the LU #. The file storage management section <b>1100433</b> divides the data of the file into one or more logical blocks based on an appropriate algorithm, determines storage addresses of the logical blocks in the LU<b>0</b>, generates buffer management tables <b>1100437</b> to register the storage addresses determined, and stores in the buffer management table entry of the file storage management table <b>1100435</b> pointers to the buffer management tables <b>1100437</b> generated. Furthermore, the file storage management section <b>1100433</b> stores information in the remaining entries of the file storage management table <b>1100435</b>. In the present embodiment, NULL is registered for all entries for link destinations in the file storage management table <b>1100435</b>.
0117The file storage management section <b>1100433</b> sets the current life cycle stage as “update stage” and the current storage class as “OnLine Storage (Premium)” in the life cycle information category of the dynamic property information of the file property information management table <b>1100438</b>. The file storage management section <b>1100433</b> performs appropriate calculations for information included in the access information category of the dynamic property information before registering the results into the file property information management table <b>1100438</b>.
0118The request processing section <b>1100432</b> executes a processing according to the write request received; and the LAN controller driver program <b>110041</b>, the TCP/IP program <b>110042</b>, and the network file system program <b>110044</b> are executed by the file access control CPU <b>11001</b>; as a result, the write data is transferred from the NAS host <b>0</b> (<b>400</b>) to the CHN<b>0</b> (<b>1100</b>) and temporarily stored in the buffer of the file access control memory <b>11004</b>. Next, the inter-CPU communications driver program <b>110046</b> is executed by the file access control CPU <b>11001</b>, and this causes the write request to be transferred to the disk array control CPU <b>11008</b> at proper timing. Upon receiving the write request, the disk array control CPU <b>11008</b> caches the write data temporarily in the CM <b>14</b> and sends a reply of completion with regard to the write request from the NAS host <b>0</b> (<b>400</b>).
0119Next, under the control of the DKA <b>120</b> that controls disks that make up the LU<b>0</b>, the write data is stored at proper timing on appropriate disks.
0120As described above, files can be initially placed in storage regions that belong to the appropriate storage class based on the static property information of the file.
0000(16) File Migration Processing (<figref idref="DRAWINGS">FIG. 12</figref>)
0121Next, a migration processing of a file will be described.
0122The migration management section <b>110043</b>A of the file system program <b>110043</b> is activated by the file access control CPU <b>11001</b> based on a preset timing.
0123The migration management section <b>110043</b>A refers to the file property information management table <b>1100438</b> of a file included in the local file system set in advance as the subject of the migration processing, and checks whether the file that is the subject of migration exists. The following is a detailed description of a situation in which the file abc.doc is the subject of the migration processing.
0124The migration management section <b>110043</b>A refers to the file property information management table <b>1100438</b> of the file abc.doc and compares the date created to the current date and time. If one month has elapsed since the date created, the migration management section <b>110043</b>A recognizes that the current life cycle stage has shifted from the “update stage” to the “reference stage” due to the fact that the life cycle model in the static property information indicates “model 1” and that one month, which is the period of the “update stage,” has already passed.
0125Further, due to the fact that the migration plan is “plan 1,” the migration management section <b>110043</b>A recognizes that the file must be migrated from the LU whose storage class is the “OnLine Storage (Premium)” to an LU whose storage class is the “NearLine Storage.”
0126The migration management section <b>110043</b>A refers to the storage class management table <b>1100439</b> and decides to transfer the file to an LU whose storage class is the “NearLine Storage” and that is designated by “STR<b>0</b> (i.e., the primary storage device 1)” as the storage node, “SATA disk pool <b>1710</b>” as the disk pool #, and “LU<b>2</b> (i.e., a local file system LFS<b>2</b>)” as the LU #.
0127Next, the migration management section <b>110043</b>A changes the current life cycle stage to “reference stage” and the current storage class to “NearLine Storage” in the dynamic property information of the file property information management table <b>1100438</b>.
0128The migration management section <b>110043</b>A defines a unique filename (in this case FILE<b>00001</b>) that is used to manage the file abc.doc within the storage device STR<b>0</b> (<b>1</b>).
0129The file open processing section <b>1100431</b> refers to the filename management table <b>1100436</b> of the LFS<b>2</b> (<b>60</b>) and checks whether the filename FILE<b>00001</b> is registered in the filename management table <b>1100436</b>; if it is not registered, the file open processing section <b>1100431</b> registers the filename FILE<b>00001</b> in the filename management table <b>1100436</b> and assigns a file handler to the filename FILE<b>00001</b>.
0130Next, the file storage management section <b>1100433</b> generates the file storage management table <b>1100435</b> and the file property information management table <b>1100438</b> to correspond to the file handler assigned to the filename FILE<b>00001</b>. Contents identical to the contents registered in the file property information management table of the file abc.doc are stored in the file property information management table <b>1100438</b> generated. The file storage management section <b>1100433</b> writes in the LU, which stores FILE<b>00001</b>, the file storage management table <b>1100435</b> and the file property information management table <b>110438</b> of FILE<b>00001</b>.
0131Next, the file storage management section <b>1100433</b> secures buffer regions required to store the data of FILE<b>00001</b> and determines the storage regions (or the storage positions) within the LU<b>2</b> for storing the file. Using a method similar to the method used in the data write processing, the file storage management section <b>1100433</b> generates the buffer management tables <b>1100437</b> to register the storage positions determined, and stores in the buffer management table entry of the file storage management table <b>1100435</b> pointers to the buffer management tables <b>1100437</b> generated. NULL is registered for all entries for link destinations in the file storage management table <b>1100435</b> of the FILE<b>00001</b> stored in the LFS<b>2</b>.
0132As indicated in <figref idref="DRAWINGS">FIG. 12</figref>, the file storage management section <b>1100433</b> changes the link destination node name to STR<b>0</b>, the link destination FS name to LFS<b>2</b>, and the link destination filename to FILE<b>00001</b> in the file storage management table <b>1100435</b> of abc.doc in the LFS<b>0</b>.
0133Next, the request processing section <b>1100432</b> reads data of the abc.doc from disks that make up the LU<b>0</b> to buffers in the file access control memory <b>11004</b>. The file storage management section <b>1100433</b> determines the data read to the buffers in the file access control memory <b>11004</b> as data of the FILE<b>00001</b> to be written to the disks that make up the LU<b>2</b>, and the request processing section <b>1100432</b> writes the data to storage regions in the buffers registered in the buffer management tables <b>1100437</b>.
0134The file storage management section <b>1100433</b> clears all buffer management tables <b>1100437</b> that can be referred to from pointers registered in the file storage management table <b>1100435</b> of the file abc.doc in the LFS<b>0</b>, and registers NULL in entries of these buffer management tables <b>1100437</b>.
0135The data of the FILE<b>00001</b> stored in the buffers is stored at proper timing in the LU<b>2</b> via the CM <b>14</b> of the storage device <b>1</b> through a procedure similar to the procedure that took place in the data write processing of the initial placement processing. This completes the migration processing.
0136As described above, according to the present embodiment, files can be migrated to storage regions of an appropriate storage class by taking into consideration the life cycle stage of the file based on the migration plan of the file.
0137According to the present embodiment, LUs for storing files can be selected based on a concept of storage classes, and LUs for storing files can be changed, without being dependent on host computers or applications executed on the host computers. As a result, a storage device with storage hierarchy, i.e., a plurality of storage regions with varying properties, having high cost effectiveness can be realized without being dependent on host computers.
0138Further, due to the fact that data is migrated on a per-file basis, same files can be accessed from a plurality of host computers using a file I/O interface, even after the files are migrated.
0139Moreover, a file-based hierarchy storage control can be executed based on static properties of the file, such as the file type, the type of application that generated the file, the intent (policy) of the-file generator, and on dynamic properties of the file, such as changes in the life cycle stage, value and access property of the file.
Embodiment 2
0000(1) Example of System Configuration (<figref idref="DRAWINGS">FIG. 13</figref>)
0140Next, referring to <figref idref="DRAWINGS">FIG. 13</figref>, an example of the system configuration of the second embodiment will be described. In the present embodiment, a hierarchical storage control is executed between storage devices in a system in which a storage device <b>1</b> (hereinafter called “STR<b>0</b>”) described in the first embodiment and another storage device <b>1</b><i>a </i>(hereinafter called “STR1”) are connected via a network.
0141In <figref idref="DRAWINGS">FIG. 13</figref>, the storage device STRL (<b>1</b><i>a</i>) is the other storage device connected to the storage device STR<b>0</b> (<b>1</b>) via a LAN <b>20</b>; otherwise, the system configuration components are the same as in <figref idref="DRAWINGS">FIG. 1</figref>.
0142In the STR<b>1</b> (<b>1</b><i>a</i>), an NCTL<b>0</b> (<b>1100</b><i>a</i>) and an NCTL<b>1</b> (<b>1101</b><i>a</i>) are NAS controllers, and a disk pool <b>0</b> (<b>170</b><i>a</i>) is a disk pool connected to the NCTL<b>0</b> and NCTL<b>1</b>.
0143Instead of the SM I/F control circuit <b>11005</b> and the CM I/F control circuit <b>11006</b> in the configuration of the CHN <b>1100</b> according to the first embodiment shown in <figref idref="DRAWINGS">FIG. 4</figref>, the NAS controller NCTLx is provided with an FC controller <b>11010</b><i>a </i>for connecting with the disk pool <b>0</b><b>1700</b><i>a</i>. The NAS controller NCTLx also has a cache memory CM <b>14</b><i>a </i>within the NAS controller, as well as a data transfer control circuit <b>11011</b><i>a</i>, which is a control circuit for the cache memory CM <b>14</b><i>a</i>. Further, the data transfer control circuit <b>11011</b><i>a </i>serves to connect the NAS controller <b>1100</b><i>a </i>and the NAS controller <b>1101</b><i>a </i>to each other. Although details of the configuration of the NAS controller NCTL<b>1</b> (<b>1101</b><i>a</i>) are not shown in <figref idref="DRAWINGS">FIG. 13</figref>, the NAS controller <b>1101</b><i>a </i>has a configuration similar to that of the NAS controller <b>1100</b><i>a</i>. Components that are assigned the same numbers as components of the CHN <b>1100</b> in the first embodiment have the same configuration and the same function as the corresponding components of the CHN <b>1100</b>.
0144Let us assume that the STR<b>1</b> is a storage device that is smaller and cheaper than the STR<b>0</b>. Also, as shown in <figref idref="DRAWINGS">FIG. 13</figref>, a CHN<b>0</b> of the STR<b>0</b> and the NCTL<b>0</b> of the STR<b>1</b> are connected via the LAN <b>20</b>.
0000(2) Migration Processing of File to the Other Storage Device
0145The following is a description of the operation according to the present embodiment.
0146The CHN<b>0</b> (<b>1100</b>) of the storage device <b>1</b> (STR<b>0</b>) recognizes that the storage device <b>1</b><i>a </i>(STR<b>1</b>) of a different type is connected to the LAN <b>20</b>. The different storage device can be recognized using a method based on information designated in advance by an administrator or a method based on whether or not there is a device that reacts to a broadcast of a command for recognition to network segments of the LAN <b>20</b>. In order to ascertain the configuration of the STR<b>1</b>, the CHN<b>0</b> of the STR<b>0</b> becomes an initiator and issues to the STR<b>1</b> a command to collect information. The response from the STR<b>1</b> to the command includes the type of the disk pool and the configuration of LUs that the STR<b>1</b> has; as a result, by referring to the response, the CHN<b>0</b> can recognize that the STR<b>1</b> has the SATA disk pool <b>170</b><i>a </i>and that there is a low-cost file type LU having a 15D+1P configuration RAID 5 and with a large capacity of 2100 GB in the disk pool <b>170</b><i>a</i>. The CHN<b>0</b> of the STR<b>0</b> decides to manage the STR<b>1</b>'s LU as a remote LU, i.e., as an LU that is in the other storage device STR<b>1</b> (<b>1</b><i>a</i>) but as one of the LUs that are managed by the primary storage device STR<b>0</b> (<b>1</b>).
0147The CHN<b>0</b> assigns a number LU<b>3</b> to the LU that the STR<b>1</b> has and assigns a remote file system number RFS<b>3</b> to the file system constructed within the LU. Due to the fact that the LU is in a large capacity, low-cost disk pool, the storage class of the LU is set as “Archive Storage.” Based on a control by a disk array control CPU <b>11008</b> of the CHN<b>0</b>, information regarding the LU<b>3</b> in the STR<b>1</b>, such as the type of the disk pool, the configuration of the LU, the LU number and the storage class, is stored in a disk pool management table <b>131</b> of an SM <b>13</b> of the storage device <b>1</b> (STR<b>0</b>). The CHN of the storage device <b>1</b> refers to the disk pool management table. <b>131</b> by having a file access control CPU <b>11001</b> execute a file system program <b>110043</b>, and can register information regarding the LU<b>3</b> in a storage class management table <b>1100451</b> in a file access control memory <b>11004</b> by copying the information regarding the LU<b>3</b> from the disk pool management table <b>131</b>.
0148As described in the first embodiment, let us assume that the NAS host <b>0</b> (<b>400</b>) stored the file abc.doc in the LU<b>0</b> of the STR<b>0</b> via the CHN<b>0</b> and that subsequently the file abc.doc was migrated to the LU<b>2</b> of the STR<b>0</b> based on a control by the CHN<b>0</b>; in the following, only those parts that differ from the first embodiment in the processing executed to migrate the file abc.doc further to the LU<b>3</b> in the other storage device STR<b>1</b> are described.
0149As described in the first embodiment, the file abc.doc's current life cycle stage is “reference stage,” its current storage class is “NearLine Storage,” and its data section is stored under the name FILE<b>00001</b> in the LFS<b>2</b> of the LU<b>2</b> constructed in the SATA disk pool of the STR<b>0</b>, as shown in <figref idref="DRAWINGS">FIGS. 11 and 12</figref>. The filename management table <b>1100436</b> in which the filename “abc.doc” is registered and the file storage management table <b>1100435</b> for the file abc.doc are in the LFS<b>0</b>. In other words, information regarding the abc.doc is stored in the filename management table <b>1100436</b> for the LFS<b>0</b> and in the file storage management table <b>1100435</b> for the file abc.doc in the LFS<b>0</b>. In the meantime, the file property information management table <b>1100438</b> is in both the LFS<b>0</b> and the LFS<b>2</b>. The data section of the file abc.doc has already been migrated to the LU<b>2</b> in which is constructed the LFS<b>2</b>, which means that the data section of the abc.doc does not reside in the LU<b>0</b>, in which is constructed the LFS<b>0</b>.
0150The migration management section <b>110043</b>A of the STR<b>0</b> refers to the file property information management table <b>1100438</b> of the abc.doc and compares the date created to the current date and time. If one year has elapsed since the migration, the migration management section <b>110043</b>A recognizes that the current life cycle stage has shifted from the “reference stage” to the “archive stage” due to the fact that the life cycle model in the static property information for abc.doc indicates “model 1” and that one year, which is the period of the “reference stage,” has already passed. Further, due to the fact that the migration plan is “plan 1,” the migration management section <b>110043</b>A recognizes that the file must be migrated from an LU whose storage class is “NearLine Storage” to an LU whose storage class is “Archive Storage”.
0151Next, the migration management section <b>110043</b>A refers to the storage class management table <b>1100439</b>, selects the LU<b>3</b> that belongs to the “Archive Storage” class, and decides to transfer the file abc.doc to the LU<b>3</b>. The LU<b>3</b> has attributes of “STR<b>1</b> (i.e., the other storage device <b>1</b><i>a</i>)” as the storage node, “SATA disk poor” as the disk pool #, and “remote file” as the LU type.
0152Next, the migration management section <b>110043</b>A changes the current life cycle stage to “archive stage” and the current storage class to “Archive Storage” in the dynamic property information of the file property information management table <b>1100438</b> for the abc.doc.
0153Next, the migration management section <b>110043</b>A defines a unique filename (in this case STR<b>1</b>-FILE<b>00001</b>) that is used to manage the file abc.doc within the storage device STR<b>0</b> (<b>1</b>).
0154The migration management section <b>110043</b>A behaves as it were a NAS host and issues to the STR<b>1</b> an open request for the file STR<b>1</b>-FILE<b>00001</b>. This open processing is an open processing executed in order to store the file for the first time from the perspective of the STR<b>1</b>. For this reason, the STR<b>0</b> includes in the open request sent to the STR<b>1</b> the information that the STR<b>0</b> has in the file property information management table <b>1100438</b> as the static property information of the file abc.doc. However, by changing only the initial storage class in the static property information to “Archive Storage” in the information sent, the STR<b>0</b> expressly designates to the STR<b>1</b> to store the file STR<b>1</b>-FILE<b>00001</b> in the Archive Storage class from the beginning.
0155The NCTL<b>0</b> of the STR<b>1</b> receives the open request via a LAN controller <b>11002</b><i>a</i>, and a file access control CPU <b>11001</b><i>a </i>executes a file system program <b>110043</b><i>a. </i>
0156When the file system program <b>110043</b><i>a </i>is executed, the open request received is specified in a manner similar to the first embodiment as an access request to access the remote file system RFS<b>3</b>; the STR<b>1</b>-FILE<b>00001</b> is registered in a filename management table <b>1100436</b><i>a </i>in a file access control memory <b>11004</b><i>a </i>and a file handler is assigned to the STR<b>1</b>-FILE<b>00001</b> based on a control by the file access control CPU <b>11001</b><i>a</i>; a file storage management table <b>1100435</b><i>a </i>and a file property information management table <b>1100438</b><i>a </i>are created within the file access control memory <b>11004</b><i>a </i>and information to be registered in the tables is set. The NCTL<b>0</b> sends to the migration management section <b>110043</b>A of the CHN<b>0</b> the file handler assigned to the STR<b>1</b>-FILE<b>00001</b>, and the open processing is terminated.
0157Next, like the NAS host <b>0</b> (<b>400</b>) in the data write processing according to the first embodiment, the migration management section <b>110043</b>A of the STR<b>0</b> issues to the STR<b>1</b> a write request containing the file handler obtained from the NCTL<b>0</b> of the STR<b>1</b> in the open processing, and requests to write actual data of abc.doc (i.e., data that is also actual data of FILE<b>00001</b>) as actual data of the file STR<b>1</b>-FILE<b>00001</b>.
0158The file storage management section <b>1100433</b><i>a </i>of the STR<b>1</b> secures buffer regions required to store the write data, determines storage positions on disks of the actual data of the file, and stores the write data received from the STR<b>0</b> in the buffers.
0159To determine the storage positions, the file storage management section <b>1100433</b><i>a </i>refers to the static property information in the file property information management table <b>1100438</b><i>a</i>. The file storage management section <b>1100433</b><i>a </i>specifies the current life cycle stage of the file STR<b>1</b>-FILE<b>00001</b> as “archive stage” due to the fact that the life cycle model of the file STR<b>1</b>-FILE<b>00001</b> is “model 1” and to the fact that more than one year and one month have passed since the file was generated. Further, the file storage management section <b>1100433</b><i>a </i>specifies “Archive Storage” as the initial storage class as designated by the STR<b>0</b>.
0160The file storage management section <b>1100433</b><i>a </i>sets the current life cycle stage as “archive stage” and the current storage class as “Archive Storage” in the life cycle information category of the dynamic property information of the file property information management table <b>1100438</b><i>a</i>. The file storage management section <b>1100433</b><i>a </i>further performs appropriate calculations for access information regarding the file STR<b>1</b>-FILE<b>00001</b> and updates the information in the access information category of the file property information management table <b>1100438</b><i>a</i>. NULL is registered for all entries for link destinations in the file storage management table. <b>100435</b><i>a </i>of the file STR<b>1</b>-FILE<b>00001</b>.
0161Next, under the control of the NCTL<b>0</b>, the data section of the file STR<b>1</b>-FILE<b>00001</b> is stored at proper timing on disks that make up the LU<b>3</b>.
0162This concludes the write processing in the STR<b>1</b> and the processing returns to STR<b>0</b>.
0163The file storage management section <b>1100433</b> of the STR<b>0</b> changes the link destination node name to STR<b>1</b>, the link destination FS name to LFS<b>3</b>, and the link destination filename to STR<b>1</b>-FILE<b>00001</b> in the file storage management table <b>1100435</b> of the FILE<b>00001</b> in the LFS<b>2</b>. The file storage management section <b>1100433</b> then clears all buffer management tables <b>1100437</b> that can be referred to from pointers registered in the file storage management table <b>1100435</b> of the FILE<b>00001</b> and enters NULL in all buffer management table entries of the file storage management table <b>1100435</b>.
0164The preceding transfers the substance of the data section of the file abc.doc from the FILE<b>00001</b> in the LFS<b>2</b> of the STR<b>0</b> to STR<b>1</b>-FILE<b>00001</b> in the RFS<b>3</b> of the STR<b>1</b>.
0165After this, whenever an access request is issued by any of the NAS hosts to access the file abc.doc, the CHN of the STR<b>0</b> refers to the file storage management table <b>1100435</b> of the abc.doc in the LFS<b>0</b> and obtains its link destination node name, FS name and filename, and refers to the file storage management table <b>1100435</b> of the FILE<b>00001</b> in the LFS<b>2</b> based on the identification information of the link destination obtained (i.e., STR<b>0</b>, LFS<b>2</b>, FILE<b>00001</b>). The CHN of the STR<b>0</b> further obtains the link destination node name, the FS name and the filename from the file storage management table <b>1100435</b> of the FILE<b>00001</b> in the LFS<b>2</b> and issues to the NCTL of the STR<b>1</b> an access request designating identification information of the link destination obtained (i.e., STR<b>1</b>, LFS<b>3</b>, STR<b>1</b>-FILE<b>00001</b>), which allows the CHN of the STR<b>0</b> to reach STR<b>1</b>-FILE<b>00001</b> in the RFS<b>3</b> of the STR<b>1</b> and access the data section of the abc.doc via the NCTL of the STR<b>1</b>.
0166Due to the fact that a plurality of file storage management tables <b>1100435</b> must be referred to in order to access a file that has been migrated to the LU<b>3</b> of the STR<b>1</b> according to the present embodiment, the access speed does suffer slightly. However, since files that are stored in the LU<b>3</b> of the STR<b>1</b> are files whose current life cycle stage is “archive stage” and therefore files that are rarely subjects of access requests, this poses no problem in practical terms. Even if an access request were to be issued from a host computer for data of a file in “archive stage,” the data can be retrieved in real-time from its storage positions on disks since it is stored on magnetic disks, even though it is a file that belongs to the Archive Storage class; unlike conventional situations in which such files are stored on tapes, neither enormous access time for tape control nor transferring the data from the tape to a disk is required according to the present embodiment.
0167As described above, according to the present embodiment, due to the fact that the storage positions of a file are determined based on the life cycle stage of the file, the Archive Storage class suitable for archiving is selected for files in “archive stage,” or the old age, in its life cycle.
0168Furthermore, other storage devices can be connected to the primary storage device, so that a storage hierarchy that takes advantage of differences in features of various storage devices can be constructed. Files can be migrated to LUs of the other storage devices, instead of migrating only within the primary storage device, according to the migration plan of each file; this further optimizes cost for storage devices compared to situations in which a hierarchical storage control is realized using only one storage device.
0169In addition, drives on disk devices that make up LUs whose storage class is “Archive Storage” can be halted to realize low power consumption and to extend the life of the disks.
0170Moreover, due to the fact that even cheaper storage devices can be connected to the storage device STR<b>1</b> according to the present embodiment, a storage hierarchy that is even more extensive can be established among a plurality of storage devices; by executing a hierarchical storage control using such a configuration, cost can be further optimized.
Embodiment 3
0000(1) Example of System Configuration (<figref idref="DRAWINGS">FIG. 14</figref>)
0171Next, with reference to <figref idref="DRAWINGS">FIG. 14</figref>, an example of the system configuration according to the third embodiment will be described. In the present embodiment, as in the second embodiment, a hierarchical storage control is executed among storage devices in a system in which another storage device STR<b>2</b> (<b>1</b><i>b</i>) is connected to a storage device STR<b>0</b> (<b>1</b>) via a network. The third embodiment differs from the second embodiment in that while the network that connects the storage devices was the LAN <b>20</b> and file I/O interfaces were used between storage devices in the second embodiment, the network that connects the storage devices is a SAN <b>35</b>, which is a dedicated network for connection between the storage devices, and a block I/O interface is used between storage devices in the third embodiment.
0172In <figref idref="DRAWINGS">FIG. 14</figref>, the storage device STR<b>2</b> (<b>1</b><i>b</i>) is a storage device with a small-scale configuration similar to the storage device STR<b>1</b> (<b>1</b><i>a</i>) in the second embodiment, but instead of the NAS controller NCTL<b>0</b> of the storage device STR<b>1</b> (<b>1</b><i>a</i>) in the second embodiment, the storage device STR<b>2</b> (<b>1</b><i>b</i>) has SAN controllers FCTLx. Each FCTLx is provided with an FC controller <b>11012</b><i>b </i>to connect with the SAN <b>35</b>, but it does not have the file access control CPU <b>11001</b><i>a </i>or its peripheral circuits as the STR<b>1</b> does and does not perform file control. Otherwise, the storage device STR<b>2</b> (<b>1</b><i>b</i>) according to the present embodiment has a configuration similar to that of the storage device STR<b>1</b> (<b>1</b><i>a</i>) according to the second embodiment.
0173The SAN <b>35</b> is a dedicated network for connecting the storage device STR<b>0</b> (<b>1</b>) to the storage device STR<b>2</b> (<b>1</b><i>b</i>), and SAN hosts are not connected to the SAN <b>35</b>. For the sake of simplification, let us assume that in the present embodiment no SAN hosts are connected to the SAN <b>35</b>, which is the network to connect the storage devices, and that there is only one network that connects the storage devices. However, SAN hosts can be connected to the SAN <b>35</b> and a plurality of networks for connecting the storage devices can be provided to improve fault tolerance.
0174In the present embodiment, the storage device STR<b>2</b> (<b>1</b><i>b</i>) is under the control of the storage device STR<b>0</b> (<b>1</b>), and file accesses from a NAS host <b>0</b> (<b>400</b>) reaches the storage device STR<b>2</b> (<b>1</b><i>b</i>) via the storage device STR<b>0</b> (<b>1</b>). Such a configuration is hereinafter called a “connection of diverse storage devices.”
0000(2) Migration Processing of File to the Other Storage Device
0175Next, a description will be made as to the processing for migrating a file stored in the STR<b>0</b> to the STR<b>2</b>, with emphasis on the difference between this processing and the processing according to the second embodiment.
0176A CHF<b>1</b> (<b>1111</b>) of the storage device STR<b>0</b> (<b>1</b>) recognizes that the storage device STR<b>2</b> (<b>1</b><i>b</i>), which is a divergent storage device, is connected to the SAN <b>35</b>. The CHF<b>1</b> (<b>1111</b>) acts as an initiator and issues a command to collect information and thereby recognizes that the STR<b>2</b> (<b>1</b><i>b</i>) is connected to the SAN <b>35</b>. The CHF<b>1</b> (<b>1111</b>) treats storage regions of the STR<b>2</b> as if they were a disk pool within the primary storage device according to the first embodiment. A CHN<b>0</b> (<b>1110</b>) can use the disk pool via the CHF<b>1</b> (<b>1111</b>). The management method of the disk pool is described later. In order to ascertain the configuration of the STR<b>2</b>, the CHN<b>0</b> (<b>1100</b>) of the STR<b>0</b> (<b>1</b>) becomes an initiator and issues a command to collect information via the CHF<b>1</b> (<b>1111</b>) to the STR<b>2</b>. The CHN<b>0</b> (<b>1100</b>) of the STR<b>0</b> (<b>1</b>) receives a response from the STR<b>2</b> to the command via the CHF<b>1</b> (<b>1111</b>) and recognizes from the information included in the response that the STR<b>2</b> has a SATA disk pool and a low-cost, block type LU having a 15D+1P configuration RAID 5 and with a large capacity of 2100 GB; based on this, the CHN<b>0</b> (<b>1100</b>) of the STR<b>0</b> decides to manage the LU as a remote LU. Furthermore, due to the fact that the disk pool that the STR<b>2</b> has is a large capacity, low-cost disk pool, the CHN<b>0</b> (<b>1100</b>) of the STR<b>0</b> determines the storage class of the disk pool as “Archive Storage.” The CHN<b>0</b> (<b>1100</b>) of the STR<b>0</b> assigns the number LU<b>4</b> to the LU inside the STR<b>2</b> and stores in a disk pool management table <b>131</b> of an SM <b>13</b> information concerning the LU, i.e., “Archive Storage” as the storage class #, “STR2” as the storage node #, “SATA poor” as the disk pool #, “LU4” as the LU #, “remote block” as the LU type, “RAID 5, 15D+1P” as the RAID Conf., and “2100 GB” as the usable capacity. When the CHN (<b>1100</b>) of the STR<b>0</b> executes a file system program, the disk pool management table <b>131</b> is referred to and the information concerning the LU is copied from the disk pool management table <b>131</b> to a storage class management table <b>1100451</b> in a file access control memory.
0177As in the second embodiment, it is assumed that a migration management section <b>110043</b>A of the CHN<b>0</b> (<b>1100</b>) of the STR<b>0</b> has decided to migrate a file abc.doc from a NearLine Storage class to the Archive Storage class, and the following is a description of the migration processing of the file executed based on this assumption.
0178The migration management section <b>110043</b>A of the STR<b>0</b> refers to a storage class management table <b>1100439</b>, selects the LU<b>4</b> that belongs to the “Archive Storage” class, and decides to transfer the file abc.doc to the LU<b>4</b>. The LU<b>4</b> has attributes of “STR<b>2</b> (i.e., the other storage device <b>1</b><i>b</i>)” as its storage node, “SATA disk poor” as its disk pool #, and “remote block” as its LU type.
0179Unlike the second embodiment, since the LU type of the LU<b>4</b> is “block” type, there is no file system in the LU<b>4</b>. For this reason, the file system program stored in the CHN<b>0</b> (<b>1100</b>) constructs a local file system LFS<b>4</b> in the LU<b>4</b>. Due to the fact that the disk pool in which the LU<b>4</b> is set resides in the other storage device STR<b>2</b> from the perspective of the STR<b>0</b>, it is therefore a “remote” disk pool and the LU<b>4</b> is a remote LU; however, since the file system LFS<b>4</b> set in the LU<b>4</b> is to be controlled by the CHN<b>0</b> (<b>1100</b>), the file system LFS<b>4</b> is managed as a local file system.
0180Due to the fact that the LFS<b>4</b> is to be managed as a local file system and the LU<b>4</b> in which the LFS<b>4</b> is constructed is an LU that is in the block type, divergent storage device, a file storage management table is treated differently in the present embodiment compared to its treatment in the first and the second embodiments. In other words, a file storage management section <b>1100433</b> of the CHN<b>0</b> (<b>1100</b>) of the STR<b>0</b> assigns. “STR2” as the link destination node name, “LFS4” as the link destination FS name, and a STR<b>2</b>-FILE<b>00001</b> as the link destination filename, and sets these in a file storage management table for the file abc.doc. Since the file abc.doc has already being migrated to the LU<b>2</b> under the filename FILE<b>00001</b>, the CHN<b>0</b> (<b>1100</b>) can alternatively set the assigned link destination node name, the link destination FS name and the link destination filename in the file storage management table for the file FILE<b>00001</b> in the LFS<b>2</b>. Since the STR<b>2</b>, in which the LU<b>4</b> actually exists, does not execute the file access control as described earlier, a file storage management table for the STR<b>2</b>-FILE<b>00001</b> is not created in the STR<b>2</b>.
0181The processing that takes place when the file system program <b>110043</b> of the CHN<b>0</b> (<b>1100</b>) is executed is the same as the processing that takes place on the local file system according to the first embodiment in terms of the file open processing, write processing and migration processing, except for the fact that the processing is executed with the awareness that the link destination node of the file abc.doc (i.e., the storage device in which the actual data of the file abc.doc is stored) is the STR<b>2</b>.
0182However, unlike the first embodiment in which a file is transferred to an LU that is in the primary storage device STR<b>0</b>, data of a file is transferred to an LU that is in the other storage device STR<b>2</b> according to the present embodiment, which results in input/output processing to and from disks that is different from the first embodiment. While the DKA <b>12</b><i>x </i>of the STR<b>0</b> controlled the input/output processing to and from disks in the first embodiment, the CHF<b>1</b> (<b>1111</b>) of the STR<b>0</b> controls the processing according to the configuration of the present embodiment. For this reason, a CHF communications driver program <b>110096</b> is stored in a disk array control memory <b>11009</b> of the CHN<b>0</b>. A CHF communications driver section is realized by having a disk array control CPU <b>11008</b> execute the CHF, communications driver program <b>110096</b>. The CHF communications driver section sends a disk input/output command (hereinafter called an “I/O command”) to the SM <b>13</b>. Address information representing storage positions of the data is included in the I/O command. The CHF<b>1</b> (<b>1111</b>) receives the I/O command via the SM <b>13</b> and based on the I/O command received issues an I/O command to the storage device <b>1</b><i>b </i>(STR<b>2</b>) via the SAN <b>35</b>. The I/O command issued by the CHF<b>1</b> (<b>1111</b>) includes address information representing the data storage positions within the storage device <b>1</b><i>b </i>(STR<b>2</b>). The storage device <b>1</b><i>b </i>(STR<b>2</b>) processes the I/O command received from the CHF<b>1</b> (<b>1111</b>) according to the same procedure applied when a disk I/O command is received from a normal host. In other words, the CHF<b>1</b> of the STR<b>0</b> is recognized as a host from the perspective of the STR<b>2</b>.
0183According to the present embodiment, the disk pool of the divergent storage device STR<b>2</b> provided with the block I/O interface can be treated as one of the disk pools of the storage device STR<b>0</b>, and a file system managed by the STR<b>0</b> can be constructed on the LU that is in the disk pool of the STR<b>2</b>. Furthermore, due to the fact that files stored in the LU of the STR<b>0</b> can be migrated to the LU within the STR<b>2</b>, a flexible storage hierarchy with superior cost effectiveness can be constructed.
Embodiment 4
0000(1) Example of System Configuration (<figref idref="DRAWINGS">FIG. 15</figref>),
0184The following is a description of the fourth embodiment. The present embodiment differs from preceding embodiments in its configuration.
0185<figref idref="DRAWINGS">FIG. 15</figref> is a diagram of an example of the system configuration according to the present embodiment. A storage device STR<b>3</b> (<b>1</b><i>c</i>) is provided with a DKC <b>70</b> and disk pools. In the DKC <b>70</b>, an SW <b>71</b> is a switch, NNODEs (<b>72</b><i>x</i>) are NAS nodes each provided with a file I/O control mechanism to connect with a LAN, FNODEs (<b>73</b><i>x</i>) are FC nodes each provided with a block I/O control mechanism to connect with a SAN, INODEs (<b>74</b><i>x</i>) are IP nodes each provided with an IP network control mechanism to connect with an IP network, and DNODEs (<b>75</b><i>x</i>) are disk controller nodes each provided with a disk control mechanism to connect with a disk pool. To the switch SW <b>71</b> are connected one or more NNODEs <b>72</b><i>x</i>, one or more FNODEs <b>73</b><i>x</i>, one or more INODEs <b>74</b><i>x </i>and one or more DNODEs <b>75</b><i>x</i>. A node to control iSCSI can be connected to the switch SW <b>71</b> to form an IP SAN. The node to control the iSCSI would have functions and a configuration similar to those of the FNODE.
0186The DNODE<b>0</b> and the DNODE<b>1</b> are connected to and control two types of disk pools, a disk pool <b>0</b> and a disk pool <b>1</b>, which are an FC disk pool <b>170</b> and a SATA disk pool <b>171</b>.
0187The INODE<b>2</b> and the INODE<b>3</b> are connected to a NAS-type divergent storage device STR<b>1</b> (<b>1</b><i>a</i>), which is external to the storage device STR<b>3</b> and is a storage device provided with file I/O interfaces described in the second embodiment. The FNODE<b>2</b> and the FNODE<b>3</b> are connected to a SAN-type divergent storage device STR<b>2</b> (<b>1</b><i>b</i>), which is external to the storage device STR<b>3</b> and is a storage device provided with block I/O interfaces described in the third embodiment.
0000(2) Example of Configuration of the NNODE (<figref idref="DRAWINGS">FIG. 16</figref>)
0188<figref idref="DRAWINGS">FIG. 16</figref> is a diagram of an example of the configuration of the NNODE. The NNODE <b>720</b> is equivalent to the CHN <b>1100</b> shown in <figref idref="DRAWINGS">FIG. 4</figref> with the inter-CPU communications circuit <b>11007</b> and components below it removed and replaced by an SW node controller <b>7204</b>. Other components are the same as in the CHN <b>1100</b> in terms of configuration and function.
0189The SW node controller <b>7204</b> is a controller circuit for connecting with the SW <b>71</b>; it forms commands, data and controller information in internal frame formats that are sent and received within the storage device STR<b>3</b> (<b>1</b><i>c</i>) and sent as disk I/O to other nodes such as the DNODEs.
0000(3) Example of Configuration of the FNODE (<figref idref="DRAWINGS">FIG. 17</figref>)
0190<figref idref="DRAWINGS">FIG. 17</figref> is a diagram of an example of the configuration of the FNODE. The FNODE <b>730</b> has a configuration in which an SW node controller <b>7302</b> is connected to the FC controller <b>11012</b><i>b </i>of the FCTL <b>1100</b><i>b </i>in <figref idref="DRAWINGS">FIG. 14</figref>, which makes the FNODE <b>730</b> capable of connecting with the SW <b>71</b> via the SW node controller <b>7302</b>. An FC controller <b>7301</b> operates as a target device and sends and receives frames of commands, data and controller information to and from the SAN. The SW node controller <b>7302</b> converts frames sent or received by the FC controller <b>7301</b> into internal frame configurations of the storage device STR<b>3</b> (<b>1</b><i>c</i>) and sends or receives the converted frames to and from other nodes, such as the DNODEs.
0191The FNODE <b>73</b><i>x </i>operates as an initiator device and based on disk I/O commands received from the NNODEs or other FNODEs can send I/O commands to other storage devices connected externally to the storage device STR<b>3</b>. For example, based on commands received from the NNODEs or other FNODEs of the storage device STR<b>3</b>, the FNODE<b>2</b> and the FNODE<b>3</b> in <figref idref="DRAWINGS">FIG. 15</figref> can send I/O commands to the divergent storage device STR<b>2</b> (<b>1</b><i>b</i>) externally connected to the storage device STR<b>3</b>. In this case, the FNODE<b>2</b> and the FNODE<b>3</b> appear to be operating as host computers from the perspective of the STR<b>2</b>.
0192Although only the FC controller <b>7301</b> and the SW node controller <b>7302</b> are shown in <figref idref="DRAWINGS">FIG. 17</figref> for the sake of simplification, a CPU can be mounted on the FNODEs in order to perform target processing, initiator processing or internal frame generation processing.
0193By installing an iSCSI controller instead of the FC controller <b>7301</b>, a node that controls iSCSI can be configured; by connecting such a node to the SW <b>71</b>, an IP SAN can be configured.
0000(4) Example of Configuration of INODE (<figref idref="DRAWINGS">FIG. 18</figref>)
0194<figref idref="DRAWINGS">FIG. 18</figref> is a diagram of an example of the configuration of the INODE. The INODE <b>740</b> has a configuration in which an SW node controller <b>7402</b> is connected to a LAN controller <b>7401</b>, which is similar to the LAN controller <b>11002</b><i>a </i>of the NCTL<b>0</b> (<b>1100</b><i>a</i>) in <figref idref="DRAWINGS">FIG. 13</figref>; this configuration makes the INODE <b>740</b> capable of connecting with the SW <b>71</b> via the SW node controller <b>7402</b>. The INODEs are provided on the storage device STR<b>3</b> (<b>1</b><i>c</i>) in order to connect the external NAS-type storage device STR<b>1</b><i>a </i>to the STR<b>3</b>.
0000(5) Example of Configuration of DNODE (<figref idref="DRAWINGS">FIG. 19</figref>)
0195<figref idref="DRAWINGS">FIG. 19</figref> is a diagram of an example of the configuration of the DNODE. The DNODE <b>750</b> is similar to the FCTL <b>1100</b><i>b </i>in <figref idref="DRAWINGS">FIG. 14</figref>, but with the FC controller <b>11012</b><i>b </i>removed and replaced with an SW node controller <b>7501</b>. The DNODE <b>750</b> goes into operation when it receives a disk I/O command from one of the NNODEs or FNODEs via the SW <b>71</b>; as a result, a section <b>1</b><i>d </i>outlined by a broken line in <figref idref="DRAWINGS">FIG. 15</figref> operates as if it were the independent storage device STR<b>2</b> in <figref idref="DRAWINGS">FIG. 14</figref>. In the present embodiment, the DNODE<b>0</b> (<b>750</b>) and the DNODE<b>1</b> (<b>751</b>) form a pair of redundant controllers. Having redundant DNODEs is similar to the configuration of the storage device STR<b>2</b> in <figref idref="DRAWINGS">FIG. 14</figref>, where there are also redundant FCTLs.
0000(6) Migration Processing of Files
0196The present embodiment only differs from the first, second and third embodiments in its configuration of the storage device, and its processing procedure for executing a hierarchical storage control is similar to that in the first, second and third embodiments; accordingly, only those parts that differ in the operation as a result of differences in the configuration of the storage device are described below.
0197In the present embodiment, a hierarchical storage control inside the storage device STR<b>3</b> can be executed using a procedure similar to that in the first embodiment. A file system program <b>110043</b> stored in a file access control memory of the NNODE <b>72</b><i>x </i>is equipped with a storage class management table <b>1100439</b> for managing usable LUs, and can recognize disk pools and LUs managed by the DNODEs <b>75</b><i>x </i>by referring to the storage class management table <b>1100439</b>. However, unlike the first embodiment, there is no SM <b>13</b> for storing shared information; consequently, the NNODE <b>72</b><i>x </i>must query all DNODEs <b>75</b><i>x </i>in advance to specify a usable LU and register it in the storage class management table <b>1100439</b>. Of course, an SM node for connecting with an SM can be provided for connection with the SW <b>71</b> in the present embodiment, so that the storage class management table <b>1100439</b> can consist of information stored in the SM, as in the first embodiment.
0198When the NNODE <b>72</b><i>x </i>specifies a usable disk pool and an LU, creates the storage class management table <b>1100439</b>, and defines a storage class, a processing similar to that in the first embodiment can be applied subsequently to execute a hierarchical storage control within the storage device STR<b>3</b> (<b>1</b><i>c</i>), i.e., a hierarchical storage control using LUs set in the disk pool <b>0</b> and the disk pool <b>1</b>.
0199To issue a disk I/O command, an SW node driver program stored in the file access control memory <b>7203</b> of the NNODE is executed by the file access control CPU <b>7202</b>, which causes a disk I/O command to be issued via the SW node to the DNODE <b>750</b> that manages the LU that is the subject of access.
0200Through the configuration and processing described above, a system in which a file-based storage hierarchy is constructed within the storage device STR<b>3</b>, as in the first embodiment, can be realized.
0201Furthermore, the NAS-type divergent storage device STR<b>1</b> (<b>1</b><i>a</i>) provided with file I/O interfaces can be connected externally to the storage device STR<b>3</b>, which would result in a configuration of a storage hierarchy as in the second embodiment. When the file system program <b>110043</b> stored in the file access control memory <b>7203</b> of the NNODE <b>72</b><i>x </i>is executed by the file access control CPU <b>7202</b>, the file system program <b>110043</b> queries the INODE <b>74</b><i>x </i>whether there is a NAS-type divergent storage device connected to the INODE <b>74</b><i>x</i>; if there is a divergent storage device connected, the file system program <b>110043</b> obtains from the divergent storage device the information for identifying remote LUs and remote file systems that are in the divergent storage device. Through a control by the file access control CPU <b>7202</b>, a storage class is defined for each of the remote LUs and the remote file systems, and information concerning the LUs is registered and managed in the storage class management table <b>1100439</b>. Subsequent steps are the same as in the processing procedure in the second embodiment.
0202To issue a disk I/O command, the SW node driver program stored in the file access control memory <b>7203</b> of the NNODE is executed by the file access control CPU <b>7202</b>, which causes a disk I/O command to be issued from the NNODE via the SW node to the INODE <b>740</b> connected to the storage device STR<b>1</b> (<b>1</b><i>a</i>) that is provided with the LU that is the subject of access. Based on the I/O command received, the INODE <b>740</b> issues to the storage device STR<b>1</b> (<b>1</b><i>a</i>) a disk I/O command for a file access, as well as sends and receives actual data of the file and control information to and from the STR<b>1</b> (<b>1</b><i>a</i>).
0203The INODEs <b>74</b><i>x </i>have no involvement whatsoever in the file control information and operate simply as gateways of an IP network. In such a case, a hierarchical storage configuration without any interference from other devices, such as NAS hosts, can be realized. Of course, the divergent storage device STR<b>1</b> (<b>1</b><i>a</i>) can be connected to the LAN <b>20</b>, to which the NNODE <b>720</b> is connected, as in the second embodiment.
0204Through the configuration and processing described above, a file-based storage hierarchy that utilizes storage pools of an external divergent storage device, as in the second embodiment, can be realized.
0205Furthermore, the SAN-type divergent storage device STR<b>2</b> (<b>1</b><i>b</i>), which is a storage device provided with block I/O interfaces, could be connected externally to the storage device STR<b>3</b>, which would result in a configuration of a storage hierarchy as in the third embodiment. When the file system program <b>110043</b> stored in the file access control memory <b>7203</b> of the NNODE <b>72</b><i>x </i>is executed by the file access control CPU <b>7202</b>, the NNODE queries the FNODEs <b>73</b><i>x </i>whether there is a SAN-type divergent storage device connected to the FNODEs <b>73</b><i>x</i>. If there is a divergent storage device connected, the NNODE recognizes remote LUs of the divergent storage device based on the contents of the response from the FNODEs <b>73</b><i>x </i>to the query and constructs local file systems in the remote LUs. The NNODE then defines a storage class for each of the remote LUs and the local file systems, and registers and manages information concerning the LUs in the storage class management table <b>1100439</b>. Subsequent steps are the same as in the third embodiment.
0206To issue a disk I/O command, the SW node driver program is executed by the file access control CPU <b>7202</b>, which causes a disk I/O command to be issued from the NNODE via the SW node to the FNODE <b>732</b> connected to the storage device STR<b>2</b> (<b>1</b><i>b</i>), which is provided with the LU that is the subject of access. The FNODE <b>732</b> issues to the storage device STR<b>2</b> a disk I/O command, as well as sends and receives data and control information to and from the STR<b>2</b>. Through the configuration and processing procedure described above, a file-based storage hierarchy that utilizes a file system that is constructed in an external storage device STR<b>2</b> as in the third embodiment and managed by the STR<b>3</b> can be realized.
0207According to the present embodiment, the storage device STR<b>3</b> behaves as if it were a central control controller for constructing a hierarchy storage system and various types of storage devices can be connected internally and externally to the storage device STR<b>3</b>; consequently, an extremely flexible, scalable and large-scale hierarchical storage system can be constructed. Furthermore, due to the fact that disks and other storage devices can be connected internally and externally to the storage device STR<b>3</b> as nodes on the SW <b>71</b> of the storage device STR<b>3</b>, high-speed data transfer becomes possible.
0000(7) Other Applications
0208Although file transfer methods and storage devices that execute hierarchical migration processing of files based on file's data life cycle stages have been described in the first through fourth embodiments, files can be transferred based on other standards and a plurality of standards can be combined. Possible standards other than the data life cycle stage include a file's access property and an LU's used capacity. In such cases, transfer of files can be controlled by providing a migration plan based on the file's access property or the LU's used capacity.
0209Examples of migration plans based on a file's access property include a plan to re-transfer a file into a storage class one class higher in the hierarchy when the access frequency of the file exceeds a certain level, or a plan that provides a storage class specialized for sequential accesses and that transfers a file into the specialized storage class once the sequential access frequency to the file exceeds a certain level.
0210Examples of migration plans based on an LU's used capacity include a plan to transfer a file to a storage class one class lower in the hierarchy even if its current life cycle stage has not shifted, if the file that is stored in an LU has low access frequency or if a long time has elapsed since its date of creation, once the used capacity of the LU exceeds a certain level.
0211The file property information management table <b>1100438</b> in the above embodiments manages dynamic properties for each file as access information. The storage class management table <b>1100439</b> manages the total capacity and used capacity of each LU. By utilizing such information, migration plans described above can be readily realized.
0212A hierarchical storage control according to the property of a file can be realized through a processing within a storage device and without being dependent on host computers.
0213While the description above refers to particular embodiments of the present invention, it will be understood that many modifications may be made without departing from the spirit thereof. The accompanying claims are intended to cover such modifications as would fall within the true scope and spirit of the present invention.
0214The presently disclosed embodiments are therefore to be considered in all respects as illustrative and not restrictive, the scope of the invention being indicated by the appended claims, rather than the foregoing description, and all changes which come within the meaning and range of equivalency of the claims are therefore intended to be embraced therein.
Contents4
17 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13 Sheet 14 Sheet 15 Sheet 16 Sheet 17
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US2006242312A1 | Cited by | United States of America | Pre-grant |
| US8423727B2 | Cited by | United States of America | Applicant |
| US9454532B2 | Cited by | United States of America | Applicant |
| US2013132681A1 | Cited by | United States of America | Pre-grant |
| US8683174B2 | Cited by | United States of America | Applicant |
| US2010299547A1 | Cited by | United States of America | Pre-grant |
| JP2011150681A | Cited by | Japan | Search report |
| US8438138B2 | Cited by | United States of America | Applicant |
| US9734082B2 | Cited by | United States of America | Applicant |
| US2012150799A1 | Cited by | United States of America | Pre-grant |
| US2014379768A1 | Cited by | United States of America | Pre-grant |
| US8281105B2 | Cited by | United States of America | Applicant |
| US9460106B2 | Cited by | United States of America | Search report |
| US2007083482A1 | Cited by | United States of America | Pre-grant |
| US7853741B2 | Cited by | United States of America | Search report |
| US9460112B2 | Cited by | United States of America | Applicant |
| US9460097B2 | Cited by | United States of America | Applicant |
| US9104606B2 | Cited by | United States of America | Search report |
| US9191464B2 | Cited by | United States of America | Applicant |
| US8645737B2 | Cited by | United States of America | Search report |
| US8812677B2 | Cited by | United States of America | Applicant |
| US8566550B2 | Cited by | United States of America | Applicant |
| US2011072225A1 | Cited by | United States of America | Pre-grant |
| US8856073B2 | Cited by | United States of America | Search report |
| US2011231631A1 | Cited by | United States of America | Pre-grant |
| US2009228535A1 | Cited by | United States of America | Pre-grant |
| US2011179250A1 | Cited by | United States of America | Pre-grant |
| US8131783B2 | Cited by | United States of America | Applicant |
| US9460111B2 | Cited by | United States of America | Applicant |
| EP2348425A1 | Cited by | European Patent Office (EPO) | Applicant |
| WO02069159A1 | Cites | World Intellectual Property Organization (WIPO) | Applicant |
| US2001054133A1 | Cites | United States of America | Applicant |
| US2002062387A1 | Cites | United States of America | Applicant |
| US2002161855A1 | Cites | United States of America | Applicant |
| JP2002229740A | Cites | Japan | Applicant |
| US2003046270A1 | Cites | United States of America | Applicant |
| US2003061440A1 | Cites | United States of America | Applicant |
| US2003065898A1 | Cites | United States of America | Search report |
| US2003074523A1 | Cites | United States of America | Applicant |
| US2003154220A1 | Cites | United States of America | Search report |
| US2003182288A1 | Cites | United States of America | Applicant |
| US2003182525A1 | Cites | United States of America | Applicant |
| US2003225801A1 | Cites | United States of America | Applicant |
| US2004010660A1 | Cites | United States of America | Search report |
| US2004044854A1 | Cites | United States of America | Applicant |
| US2004083202A1 | Cites | United States of America | Applicant |
| US2004098394A1 | Cites | United States of America | Applicant |
| US2004107315A1 | Cites | United States of America | Applicant |
| US2004139167A1 | Cites | United States of America | Applicant |
| US2004143563A1 | Cites | United States of America | Applicant |
| US2004143648A1 | Cites | United States of America | Applicant |
| US2004162940A1 | Cites | United States of America | Applicant |
| US2004199515A1 | Cites | United States of America | Applicant |
| US2004210724A1 | Cites | United States of America | Applicant |
| US2004260862A1 | Cites | United States of America | Applicant |
| US2005097126A1 | Cites | United States of America | Applicant |
| US2005120189A1 | Cites | United States of America | Applicant |
| US2005149528A1 | Cites | United States of America | Applicant |
| US2005149671A1 | Cites | United States of America | Applicant |
| US2005172097A1 | Cites | United States of America | Applicant |
| US5379423A | Cites | United States of America | Applicant |
| US5537585A | Cites | United States of America | Applicant |
| US5619690A | Cites | United States of America | Applicant |
| US5941972A | Cites | United States of America | Applicant |
| US5956750A | Cites | United States of America | Applicant |
| US6041381A | Cites | United States of America | Applicant |
| US6065087A | Cites | United States of America | Applicant |
| US6098129A | Cites | United States of America | Applicant |
| US6209023B1 | Cites | United States of America | Applicant |
| US6275898B1 | Cites | United States of America | Applicant |
| US6327614B1 | Cites | United States of America | Applicant |
| US6446141B1 | Cites | United States of America | Applicant |
| US6598174B1 | Cites | United States of America | Applicant |
| US6647474B2 | Cites | United States of America | Applicant |
| US6654830B1 | Cites | United States of America | Applicant |
| US6757695B1 | Cites | United States of America | Applicant |
| US6810462B2 | Cites | United States of America | Applicant |
| US6922761B2 | Cites | United States of America | Applicant |
| US6938039B1 | Cites | United States of America | Applicant |
| US6947940B2 | Cites | United States of America | Applicant |
| US6983039B2 | Cites | United States of America | Applicant |
| JPH09259037A | Cites | Japan | Applicant |
| JPH09274544A | Cites | Japan | Applicant |
| JPH09297699A | Cites | Japan | Applicant |
| JPH10301720A | Cites | Japan | Applicant |
| US20010054133A1 | Cites | United States of America | Third party observation |
| US20020062387A1 | Cites | United States of America | Third party observation |
| US20020161855A1 | Cites | United States of America | Third party observation |
| US20030046270A1 | Cites | United States of America | Third party observation |
| US20030061440A1 | Cites | United States of America | Third party observation |
| US20030065898A1 | Cites | United States of America | Search report |
| US20030074523A1 | Cites | United States of America | Third party observation |
| US20030154220A1 | Cites | United States of America | Search report |
| US20030182288A1 | Cites | United States of America | Third party observation |
| US20030182525A1 | Cites | United States of America | Third party observation |
| US20030225801A1 | Cites | United States of America | Third party observation |
| US20040010660A1 | Cites | United States of America | Search report |
| US20040044854A1 | Cites | United States of America | Third party observation |
| US20040083202A1 | Cites | United States of America | Third party observation |
| US20040098394A1 | Cites | United States of America | Third party observation |
17 members in 4 offices
Priority claims11
| Document | Office | Kind | Date |
|---|---|---|---|
| 2003086828 | Japan | – | |
| 2003086828 | Japan | A | |
| 2003086828 | Japan | A | |
| 77588604 | United States of America | A | |
| 77588604 | United States of America | A | |
| 3060805 | United States of America | A | |
| 10775886 | – | – | – |
| 2003086828 | – | – | – |
| JP20030086828 | – | – | – |
| US20040775886 | – | – | – |
| US20050030608 | – | – | – |
Members17
| Document | Office | Kind | |
|---|---|---|---|
| EP1462927A2 | European Patent Office (EPO) | A2 | |
| US2004193760A1 | United States of America | A1 | |
| JP2004295457A | Japan | A | |
| CN1570842A | China | A | |
| US2005119994A1 | United States of America | A1 | |
| US2005203964A1 | United States of America | A1 | |
| CN1311328C | China | C | |
| CN101034340A | China | A | |
| US7330950B2This record | United States of America | B2 | |
| US7356660B2 | United States of America | B2 | |
| EP1462927A3 | European Patent Office (EPO) | A3 | |
| US2008263277A1 | United States of America | A1 | |
| CN100520696C | China | C | |
| JP4322031B2 | Japan | B2 | |
| US7925851B2 | United States of America | B2 | |
| US2011185123A1 | United States of America | A1 | |
| US8230194B2 | United States of America | B2 |
68 transactions on the USPTO file
Allowed after 1 non-final rejection.
- Non-final rejections
- 1
- Final rejections
- 0
- RCEs
- 0
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Correspondence Address ChangeC.AD | C.AD | |
| Correspondence Address ChangeC.ADB | C.ADB | |
| Correspondence Address ChangeC.ADB | C.ADB | |
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Dispatch to FDCD1935 | D1935 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Mail Examiner's AmendmentMEX.A | MEX.A | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Examiner's Amendment CommunicationEX.A | EX.A | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Reference capture on IDSRCAP | RCAP | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Preliminary AmendmentA.PE | A.PE | |
| Preliminary AmendmentA.PE | A.PE | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Reference capture on IDSRCAP | RCAP | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Change in Power of Attorney (May Include Associate POA)PA.. | PA.. | |
| Correspondence Address ChangeC.AD | C.AD | |
| Preliminary AmendmentA.PE | A.PE | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Reference capture on IDSRCAP | RCAP | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Reference capture on IDSRCAP | RCAP | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Reference capture on IDSRCAP | RCAP | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| IFW TSS Processing by Tech Center CompleteTSSCOMP | TSSCOMP | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Reference capture on IDSRCAP | RCAP | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Reference capture on IDSRCAP | RCAP | |
| Application Is Now CompleteCOMP | COMP | |
| Application Return from OIPEWROIPE | WROIPE | |
| Application Return TO OIPEROIPE | ROIPE | |
| Application Dispatched from OIPEOIPE | OIPE | |
| Cleared by OIPE CSRL194 | L194 | |
| IFW Scan & PACR Auto Security ReviewSCAN | SCAN | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Preliminary AmendmentA.PE | A.PE | |
| Reference capture on IDSRCAP | RCAP | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Initial Exam Team nnIEXX | IEXX |
10 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Lapsed due to failure to pay maintenance feeLapsedFP | FP | |
| Lapse for failure to pay maintenance feesLapsedPATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITYLAPS | LAPS | |
| Information on status: patent discontinuationPATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362STCH | STCH | |
| Fee payment procedureMAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITYFEPP | FEPP | |
| Fee paymentFPAY | FPAY | |
| Fee paymentFPAY | FPAY | |
| Fee payment procedurePAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITYFEPP | FEPP | |
| Fee payment procedurePAYER NUMBER DE-ASSIGNED (ORIGINAL EVENT CODE: RMPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITYFEPP | FEPP | |
| Fee payment procedurePAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITYFEPP | FEPP | |
| Information on status: patent grantGrantedPATENTED CASESTCF | STCF |
Numbers
- Publication
- 07330950
- Publication, DOCDB
- 7330950
- Publication, EPODOC
- US7330950
- Application
- 11030608
- Application, DOCDB
- 3060805
- Application, EPODOC
- US20050030608
Titles
- English
- Storage device
Patent term adjustment
- A delay
- +427 daysthe office missed an examination deadline
- Net adjustment
- 427 days
Classification
- CPC, 7
- G06F3/0608
- G06F3/061
- G06F3/0649
- G06F3/0685
- G06F16/10
- Y10S707/99955
- Y10S707/99953
- IPC, 8
- G06F3 06
- G06F12 08
- G06F3 00
- G06F7 00
- G06F12 00
- G06F17 30
- G11B20 10
- G11B20 12
- USPC, 5
- 711165000
- 707999202
- 707999204
- 711112000
- 711114000