Virtual disk management program, storage device management program, multinode storage system, and virtual disk managing method

In a multinode storage system, a virtual disk associated with a storage device to be connected is created, and a slice of a connected storage device is allocated to one segment of the virtual disk. Next, one slice of data in the storage device to be connected is copied to the connected storage device. The rest of the data in the storage device to be connected is divided into slices, which are allocated to segments of the virtual disk. Then, metadata of the rest of the slices is written into a management information area in which copying of the data therefrom has been completed.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2008-211544, filed on Aug. 20, 2008, and the Japanese Patent Application No. 2009-132712, filed on Jun. 2, 2009, the entire contents of which are incorporated herein by reference.

FIELD

The embodiment discussed herein is related to a virtual disk management program, a storage device management program, a multinode storage system and a virtual disk management method, for performing access to a plurality of storage devices via a virtual disk.

BACKGROUND

In a large-scale computer network, to ensure reliability of data, there is a case where data is multiplexed and stored in a plurality of storage devices. As a technique of multiplexing data, there has been proposed a method of distributing and storing data in a plurality of storage devices which are respectively connected to a plurality of nodes (disk nodes) on a network. A system in which data are thus distributed and managed in a plurality of nodes on the network is referred to as a multinode storage system.

In the multinode storage system, a virtual disk is defined in a node for access (access node), and data is input/output via the virtual disk. A storage area in the virtual disk is divided into a plurality of segments, and each of the segments is associated with a plurality of storage areas within the respective storage devices. When an application specifies a segment on the virtual disk to write data therein, the data is written in respective storage areas of the storage devices, associated with the specified segment. By multiplexing data as described above, it is possible to improve the reliability of the data (see e.g. International Publication Pamphlet No. WO2004/104845).

By the way, if data is duplexed, in the storage devices, storage areas are used which correspond to twice as large as the data amount to be stored. Therefore, also to reduce waste of resources, data which does not require reliability is often controlled not to be duplexed. However, if a computer system has been operated for a long term, also as to data supposed not to require high reliability, it sometimes becomes necessary to ensure reliability of the data by duplicating the same. In this case, it is necessary to transfer the data which has been stored in a storage device to a virtual disk for duplexing.

To duplex the data stored in the storage device (used disk), using the virtual disk, there are two methods of transferring data described hereafter.

First, if access to the used disk can be stopped, it is possible to make use of the following data transfer method:After creating a virtual disk, access to the used disk is suspended.Data stored in the used disk is copied to the virtual disk.

However, in the above-described data transfer method, it is impossible to access the used disk during copying, and hence service stop time occurs due to the data transfer. If it is not possible to stop access to the used disk, copying of the data is carried out by the following data transfer process:After creating a virtual disk, a snapshot of the used disk is created by the OS (Operating System) in use. Snapshot is a technique for virtually duplicating data of the whole disk at a certain time point. For example, according to a copy-on-write snapshot, before creating a snapshot, the relationship between data and a block in the disk storing the data is recorded. Then, the access to the disk is monitored, and if data is updated, the data before the update is copied to another area (shadow copy area). This makes it possible to preserve in the disk the data at the time of creating the snapshot.The snapshot is copied to the virtual disk by the OS in use. At this time, in place of data which has been updated after creating the snapshot, corresponding data before the update is read out from the shadow copy area, whereas data which has not been updated is read out from the used disk. The data which has been copied to the virtual disk is actually written in the storage areas of the disk devices, which are associated with the segments which form the virtual disk.Access to the used disk is stopped, and the used disk is synchronized with the virtual disk. That is, the data which has been updated after creating the snapshot of the used disk is copied to the virtual disk. This causes the contents of the used disk and the contents of the virtual disk to become identical to each other.Access to the virtual disk is started.

However, the two above-described data transfer techniques suffer from the following problem:

Both the two data transfer methods require a copying time proportional to the disk capacity. Therefore, it takes a longer time to transfer data stored in a disk device having a larger capacity. If the copying time is longer, extra processing load is placed on the computer to which the used disk is connected, resulting in a reduced processing efficiency of the entire system.

SUMMARY

According to an aspect of the embodiment, there is provided a computer-readable storage medium storing a virtual disk management program for causing a computer to carry out management of access to a storage device of which a storage area is divided into a plurality of slices for management, via a virtual disk, wherein the virtual disk management program causes the computer to carry out processing including; generating a virtual disk formed by a plurality of segments each having a same storage capacity as that of each slice, when a connection notice notifying connection of a storage device to be connected is received from a first disk node including the storage device to be connected in which data has already been stored; allocating one slice of a connected storage device other than the storage device to be connected to a predetermined one of the segments forming the virtual disk, as a data transfer destination slice; transmitting metadata for transferred data, which is indicative of a result of allocation of the data transfer destination slice, to a second disk node including the connected storage device; defining one slice of storage area in the storage device to be connected as a management information area, and transmitting a copy request for copying data in the management information area to the data transfer destination slice in the connected storage device, to the first disk node; allocating a plurality of slices obtained by dividing a storage area other than the one slice of storage area in the storage device to be connected, to segments other than the predetermined one of the slices of the virtual disk; transmitting a write request for writing metadata for existing data, which is indicative of correspondence between the slices of the storage device to be connected and the segments of the virtual disk, into the management information area, to the first disk node; and transmitting metadata for access, which is indicative of a relationship of allocation of slices to the segments of the virtual disk, to an access node for accessing the storage device to be connected and the connected storage device via the virtual disk.

DESCRIPTION OF EMBODIMENT(S)

Embodiments of the present invention will be explained below with reference to the accompanying drawings, wherein like reference numerals refer to like elements throughout.

FIG. 1schematically illustrates an embodiment. A multinode storage system includes a control node1, disk nodes2and3, and an access node4. The control node1integrates a new storage device into the multinode storage system, creates and manages a virtual disk. The disk nodes2and3divide storage areas of storage devices connected thereto into a plurality of slices, and manage the same. The access node4accesses the storage devices provided in the multinode storage system via the virtual disk.

The disk node2includes a to-be-connected storage device (storage device to be connected)5in which data5ahas already been stored. In the illustrated example inFIG. 1, it is assumed that the to-be-connected storage device5is newly integrated into the multinode storage system. The disk node3includes a connected storage device6. The connected storage device6has already been integrated into the multinode storage system, and is in a state where slices can be allocated to the virtual disk.

To integrate the to-be-connected storage device5already storing the data5ainto the multinode storage system, the nodes have the following capabilities:

The control node1includes a virtual disk-generating unit1a, a first slice-allocating unit1b, a copy request-transmitting unit1c, a second slice-allocating unit1d, and a slice allocation information-transmitting unit1e. Upon reception of a connection notice notifying connection of the to-be-connected storage device5from the disk node2, the virtual disk-generating unit1agenerates a virtual disk which is formed by a plurality of segments each having the same storage capacity as each slice. The first slice-allocating unit1ballocates one slice of the connected storage device6to a predetermined one of the segments forming the virtual disk, as a data transfer destination slice. Further, the first slice-allocating unit1btransmits metadata for transferred data, which is indicative of a result of allocation of the data transfer destination slice, to the disk node3having the connected storage device6. The copy request-transmitting unit1cdefines one slice of storage area in the to-be-connected storage device5as a management information area5b. Then, the copy request-transmitting unit1ctransmits a copy request for copying data in the management information area5bto the data transfer destination slice of the connected storage device6, to the disk node2. The second slice-allocating unit1dallocates a plurality of slices which are obtained by dividing a storage area other than the predetermined one slice of storage area of the to-be-connected storage device5to the segments other than the predetermined one of the segments of the virtual disk. Then, the second slice-allocating unit1dtransmits a write request for writing metadata5ba,5bb, . . . for the existing data, which is indicative of correspondence between the slices5ca,5cb, . . . of the to-be-connected storage device5and the segments of the virtual disk into the management information area. The slice allocation information-transmitting unit1etransmits metadata for use in access, which is indicative of a relationship of allocation of the slices to the segments of the virtual disk, to the access node4which accesses the to-be-connected storage device5and the connected storage device6via the virtual disk.

The disk node2includes a connection notice-transmitting unit2a, a data transmitting unit2b, and a metadata writing unit2c. The connection notice-transmitting unit2atransmits the connection notice notifying the connection of the to-be-connected storage device5to the control node1. When the copy request is received from the control node1, the data transmitting unit2btransmits the data in the management information area5bto the disk node3to which the connected storage device6is connected. When the write request for writing the metadata5ba,5bb, . . . for the existing data, which is indicative of the correspondence between the slices5ca,5cb, . . . of the to-be-connected storage device5and the segments of the virtual disk, into the management information area5b, is received from the control node1, the metadata writing unit2cwrites the metadata5ba,5bb, . . . for the existing data into the management information area5b.

The disk node3includes a metadata changing unit3aand a data writing unit3b. When the metadata for transferred data is received from the control node1, the metadata changing unit3achanges the metadata stored in the connected storage device6in association with the data transfer destination slice into the metadata for transferred data. Upon reception of the data in the management information area5bfrom the disk node2, the data writing unit3bjudges the transfer destination slice based on the metadata for transferred data and writes the received data into the transfer destination slice.

According to the above-described arrangement, the following processes are carried out.

First, the connection notice-transmitting unit2aof the disk node2transmits a connection notice of the to-be-connected storage device5to the control node1. For example, when it is detected that the to-be-connected storage device5is connected to the disk node2, the connection notice-transmitting unit2atransmits the connection notice. Then, the virtual disk-generating unit1aof the control node1generates a virtual disk which is formed by a plurality of segments each having the same storage capacity as that of each slice. Next, the first slice-allocating unit1bof the control node1allocates one slice of the connected storage device6to a predetermined one of the segments of the virtual disk, as a data transfer destination slice. Further, the first slice-allocating unit1btransmits the metadata for transferred data, indicative of the allocation result to the disk node3. In the disk node3, upon reception of the metadata for transferred data, the metadata changing unit3achanges the metadata stored in the connected storage device6in association with the data transfer destination slice into the metadata for transferred data.

Thereafter, the copy request-transmitting unit1cof the control node1defines one slice of storage area in the to-be-connected storage device5as the management information area5b, and transmits a request to the disk node2, for copying the data in the management information area5bto the data transfer destination slice of the connected storage device6. Then, the data transmitting unit2bof the disk node2transmits the data in the management information area5bto disk node3. In the disk node3, the data writing unit3bwrites the data received from the disk node2into the data transfer destination slice.

Further, the second slice-allocating unit1dof the control node1allocates a plurality of slices5ca,5cb, . . . obtained by dividing the storage area other than predetermined one slice of storage area of the to-be-connected storage device5to the segments other than the predetermined one of the virtual disk. Further, the second slice-allocating unit1dtransmits a request for writing metadata5ba,5bb, . . . for the existing data, which is indicative of correspondence between the slices5ca,5cb, . . . of the to-be-connected storage device5and the segments of the virtual disk, into the management information area5b. In the disk node2, upon reception of the write request from the control node1, the metadata writing unit2cwrites the metadata5ba,5bb, . . . for the existing data into the management information area5b.

Then, the slice allocation information-transmitting unit1eof the control node1transmits the metadata for access, which is indicative of a relationship of allocation of the slices to the segments of the virtual disk, to the access node4which accesses the to-be-connected storage device5and the connected storage device6via the virtual disk.

As described above, one slice of data of the to-be-connected storage device5is copied to the other storage device, and the area from which data has been copied is defined as the management information area5b. Then, the metadata5ba,5bb, . . . for the rest of the slices5ca,5cb, . . . is written into the management information area5b. It should be noted that it is also possible to store discriminating information in the management information area5b, which indicates that the to-be-connected storage device5has been integrated into the multinode storage system. The integration of the to-be-connected storage device5in the multinode storage system is completed by defining the virtual disk and setting the metadata of the slices allocated to the virtual disk. If the integration is completed, it becomes possible to access the data5astored in the to-be-connected storage device5via the virtual disk.

In the case of duplexing the data5astored in the to-be-connected storage device5, a recovery process is started. The recovery process is a process for copying data from the slices (primary slices) which are allocated by the above-mentioned first slice-allocating unit1band the second slice-allocating unit1dto slices (secondary slices) which are redundantly allocated to respective segments of the virtual disk. It should be noted that it is possible to access from the access node4to the primary slices even during the recovery process.

As described above, only by connecting the to-be-connected storage device5already storing the data to the disk node2, it becomes possible to access the data as the virtual disk. Time taken for the transition is equal to the sum of time taken to change the metadata and time taken to copy the start slice, and does not depend on the size of the existing disk. If each slice (and hence the start slice) has a capacity of 1 GB, the data transfer can be completed within one minute. It should be noted that in cases where duplexing is required, the recovery process is started. Although the copying of a large amount of data occurs in the multinode storage system if the recovery process is carried out, the access can be performed even during the recovery process, and hence it is not necessary to stop the service.

In addition, not only internal data in the to-be-connected storage device5, but also the to-be-connected storage device5itself is integrated into the multinode storage system. For this reason, the to-be-connected storage device5is not placed in an unused state after transferring the data to the virtual disk, which makes it possible to make efficient use of resources.

By the way, the to-be-connected storage device5and the connected storage device6illustrated inFIG. 1may be a single disk device, or may be an RAID (Redundant Arrays of Inexpensive Disks) system in which multiple disk devices are integrated. If it is the RAID system, it is possible to enhance the reliability of data in a multiplied manner. In view of this, a detailed description will be given of the present embodiment, by taking, as an example, a case where the RAID system is used as a storage device, and data is duplexed using a plurality of disk nodes which are connected via the network.

FIG. 2illustrates an example of the configuration of the multinode storage system according to the present embodiment. In the multinode storage system according to the present embodiment, a plurality of disk nodes100,200,300, and400, a control node500, an access node30, and a management node50are connected via a network10. Storage devices110,210,310, and410are connected to the disk nodes100,200,300, and400, respectively.

A plurality of hard disk devices (HDD)111,112,113, and114are mounted in the storage device110. A plurality of HDDs211,212,213, and214are mounted in the storage device210. A plurality of HDDs311,312,313, and314are mounted in the storage device310. A plurality of HDDs411,412,413, and414are mounted in the storage device410. Each of the storage devices110,210,310, and410is a RAID system using the HDDs integrated therein. In the present embodiment, each of the storage devices110,210,310, and410provides a disk management service of RAID 5. In the present embodiment, it is assumed that the storage device410is newly integrated into the multinode storage system in use.

The disk nodes100,200,300, and400are computers based on an architecture referred to as e.g. IA (Intel Architecture). The disk nodes100,200,300, and400manage data stored in the connected storage devices110,210,310, and410, and provide the managed data to terminal apparatuses21,22, and23via the network10. Further, the disk nodes100,200,300, and400manage data having redundancy. That is, the same data is managed by at least two disk nodes.

The control node500manages the disk nodes100,200,300, and400. For example, when the control node500receives a connection notice of a new storage device from the disk nodes100,200,300, and400, the control node500defines a new virtual disk to make it possible to access the data stored in the storage device which is connected via the virtual disk.

The plurality of the terminal apparatuses21,22, and23are connected to the access node30via a network20. The virtual disk is defined in the access node30. Then, the access node30accesses corresponding data in the disk nodes100,200,300, and400, in response to a request for access to data on the virtual disk from any of the terminal apparatuses21,22and23.

The management node50is a computer used by an administrator for managing the operation of the multinode storage system. For example, the management node50collects information including the used amount of the virtual disk in the multinode storage system, and displays an operational status of the system on a screen.

FIG. 3illustrates an example of a hardware configuration of the control node. The entire control node500is controlled by a CPU (Central Processing Unit)501. A RAM (Random Access Memory)502, a hard disk drive (HDD: Hard Disk Drive)503, a graphic processor504, an input interface505, and a communication interface506are connected to the CPU501via a bus507.

The RAM502is used as a main storage device of the control node500. The RAM502temporarily stores at least part of a program of an OS and application programs which the CPU501is caused to execute. Further, the RAM502stores various data required by the CPU501for processing. The HDD503is used as a secondary storage device of the control node500. The HDD503stores the program of the OS, the application programs, and various data. It should be noted that a semiconductor storage device such as a flash memory can be used as a secondary storage device.

A monitor11is connected to the graphic processor504. The graphic processor504displays images on a screen of the monitor11according to commands from the CPU501. The monitor11may be a display device using a CRT (Cathode Ray Tube) or a liquid crystal display device, for example.

A keyboard12and a mouse13are connected to the input interface505. The input interface505transmits signals delivered from the keyboard12or the mouse13to the CPU501via the bus507. The mouse13is an example of a pointing device, and any other suitable type of pointing device can be used. The other suitable types of the pointing device include a touch panel, a tablet, a touch pad, a track ball, and so forth.

The communication interface506is connected to the network10, and exchanges data with other computers via the network10.

With the hardware configuration described above, it is possible to realize processing functions of the present embodiment. AlthoughFIG. 3illustrates the hardware configuration of the control node500, the disk nodes100,200,300, and400, the access node30, and the management node50can each be realized by a similar hardware configuration.

In the illustrated example, the storage device410included in the disk node400is assumed to be newly added to the multinode storage system. Before addition of the storage device410, it is possible to access the virtual disk that uses the storage devices110,210and310from the access node30.

FIG. 4illustrates data structure of the virtual disk. In the present embodiment, a virtual disk identifier “LVOL-X” is given to a virtual disk60. Node identifiers “SN-A”, “SN-B”, and “SN-C” are given to three disk nodes100,200, and300which are connected to each other via the network, for identification. Then, the storage devices110,210, and310which are connected to the disk nodes100,200, and300, respectively, are uniquely identified on the network10by the respective node identifiers of the disk nodes100,200, and300.

The storage system of the RAID 5 is constructed in each of the storage devices110,210, and310included in the respective disk nodes100,200, and300. The storage capabilities provided by the storage devices110,210, and310are managed by dividing the storage devices110,210, and310into respective pluralities of slices115ato115e,215ato215e, and315ato315e.

The virtual disk60is formed by units of segments including segments61to64. The storage capacity of each of the segments including the segments61to64is same as that of a slice which is a unit of management in the storage devices110and210. For example, if the storage capacity of the slice is 1 gigabyte, the storage capacity of the segment is also 1 gigabyte. The storage capacity of the virtual disk60is equal to an integral multiple of a storage capacity per segment. The segments61to64are formed by respective pairs (slice pairs) of primary slices61a,62a,63a, and64a, and secondary slices61b,62b,63b, and64b.

Two slices which belong to one segment are associated with different disk nodes, respectively. In each of areas for managing respective slices, there is stored a flag storing a value indicative of a primary slice or a secondary slice, in addition to a virtual disk identifier, segment information, and information on a slice which forms the same segment.

In the illustrated example inFIG. 4, each slice identifier in the virtual disk60is represented by a combination of an alphabet “P” or “S”, and a number. “P” represents a primary slice. “S” represents a secondary slice. The number following the alphabet represents a position of a segment in a segment sequence. For example, the primary slice61aassociated with the first segment61is indicated by “P1”, while the secondary slice61bassociated with the same is indicated by “S1”.

FIG. 5is a functional block diagram of devices of the multinode storage system. The access node30includes a virtual disk access controller31. In response to an access request from any of the terminal apparatuses21,22, and23which specifies data in the virtual disk60, the virtual disk access controller31performs data access to a disk node which manages the specified data. Specifically, the virtual disk access controller31identifies a block in the virtual disk60storing data to be accessed, and then identifies a segment associated with the specified block. Further, the virtual disk access controller31refers to the metadata acquired in advance to thereby identify a disk node associated with a primary slice which forms the segment, and a slice in the identified disk node. Then, the virtual disk access controller31delivers a request for access to the identified slice, to the identified disk node.

The virtual disk access controller31of the access node30can access the storage device410connected to the disk node400only after the storage device410is integrated into the multinode storage system. Before the storage device410is integrated into the multinode storage system, the access node30directly accesses the storage device410, not via the virtual disk. In this case, it is necessary for the application of the access node30to recognize the position of the storage device410on the network.

The control node500includes a virtual disk management section510and a virtual disk metadata-storing section520.

The virtual disk management section510manages the slices in the storage devices110,210,310, and410included in the disk nodes100,200,300, and400, respectively. For example, when the system is started, the virtual disk management section510transmits a metadata acquisition request to the disk nodes100,200,300, and400. Then, the virtual disk management section510generates virtual disk metadata from the metadata returned in response to the metadata acquisition request, and stores the same in the virtual disk metadata-storing section520.

The virtual disk metadata-storing section520is a storage device for storing the virtual disk metadata generated based on the metadata collected from the disk nodes100,200,300, and400. For example, part of the storage area of the RAM502in the control node500is used as the virtual disk metadata-storing section520.

The disk node100includes a data access section120, a data management section130, and a metadata storing section140.

The data access section120accesses data stored in the storage device110in response to a request from the access node30. Specifically, when a data reading request from the access node30is received, the data access section120acquires the data which is specified by the reading request from the storage device110, and sends the same back to the access node which is a sender of the reading request. Further, when a data write request is received from the access node30, the data access section120stores the data contained in the write request in the storage device110.

If data is written by the data access section120in response to the write request, the data management section130of the disk node100cooperates with the data management section of a disk node which manages the secondary slice associated with the slice (primary slice) in which the data is written, to thereby update the data in the secondary slice. That is, the data management section130transmits the updated data to the disk node which manages the secondary slice. The data management section of the disk node having received the data writes the data in the secondary slice. This makes it possible to preserve consistency of the duplexed data.

Further, the data management section130transmits the metadata stored in the metadata storing section140to the virtual disk management section510in response to a metadata acquisition request from the virtual disk management section510.

The metadata storing section140is a storage device for storing metadata. For example, part of the storage area in the RAM is used as the metadata storing section140. It should be noted that the metadata stored in the metadata storing section140is stored in the storage device110when the system is shut down, and is read into the metadata storing section140when the system is started.

The other disk nodes200,300, and400have the same functions as those of the disk node100. That is, the disk node200includes a data access section220, a data management section230, and a metadata storing section240. The disk node300includes a data access section320, a data management section330, and a metadata storing section340. The disk node400includes a data access section420, a data management section430, and a metadata storing section440. Each of the elements in the disk nodes200,300, and400has the same function as that of each of the elements having the same name in the disk node100.

Next, a detailed description will be given of the data structure in the storage device110.

FIG. 6illustrates an example of the data structure of the storage device. The storage device110stores device information116and a plurality of metadata117a,117b,117c, . . . in addition to the slices115a,115b,115c, . . . .

The device information116is used for management of the storage device110. For example, the device information116includes information indicating that the storage device110has been integrated into the multinode storage system. Further, the device information116includes a metadata storing form. The metadata storing form is information which indicates whether each of the metadata117a,117b,117c, . . . is stored in a storage area which is continuous with the associated slice, or the metadata117a,117b,117c, . . . are collectively stored in a storage area which is separate from the slices. In the present embodiment, a metadata storing form in which each of the metadata117a,117b,117c, . . . is stored in a storage area continuous with the associated slice is defined as “type 1”. Further, a metadata storing form in which the metadata117a,117b,117c, . . . are collectively stored in a storage area which is separate from the slices is defined as “type 2”.

In the illustrated example inFIG. 6, a storage area which is continuous with each slice stores metadata associated with the slice. Therefore, the metadata storing form of the storage device110is type 1.

The metadata117a,117b,117c, . . . stored in the storage device110are read out by the data management section130when the disk node100is started, and are stored in the metadata storing section140. The data management section130is capable of recognizing that each of the metadata117a,117b,117c, . . . of the storage device110is stored in the storage area which is continuous with each associated slice by referring to the metadata storing form contained in the device information116.

FIG. 7illustrates an example of a data structure of the metadata storing section. The metadata storing section140stores a metadata table141. The metadata table141includes columns of a disk node ID, a slice ID, a status, a virtual disk ID, a segment ID, a virtual disk address, a paired disk node ID, and a paired slice ID. Pieces of information arranged in a lateral direction in the metadata table141are associated with each other to form one record indicative of a metadata item.

Identification information (disk node ID) of the disk node100which manages the storage device110is set in each box of the column of the disk node ID.

Identification information (slice ID) of each slice associated with an item of metadata in the storage device110is set in an associated box of the column of the slice ID.

A status flag indicative of the status of each slice is set in an associated box of the column of the status. If the slice is not allocated to any segment of the virtual disk, the status flag “F” is set. If the slice is allocated to the primary slice of a segment of the virtual disk, the status flag “P” is set. When the slice is allocated to the secondary slice of a segment of the virtual disk, the status flag “S” is set. If it is determined that the slice is allocated to a segment of the virtual disk, but the data has not been copied yet, the status flag “R” indicative of “reserved” is set.

Identification information (virtual disk ID) for identifying a virtual disk to which a segment associated with a slice belongs is set in an associated box of the column of the virtual disk ID.

An address indicative of the start of a segment to which the slice is allocated in the virtual disk is set in an associated box of the column of the virtual disk address.

Identification information (disk node ID) of a disk node which manages a storage device including a paired slice (another slice which belongs to the same segment) is set in an associated box of the column of the paired disk node ID.

Identification information (slice ID) for identifying a paired slice within a storage device to which the paired slice belongs is set in an associated box of the column of the paired slice ID.

The metadata stored in the metadata storing sections140,240, and340of the respective disk nodes100,200, and300is transmitted to the control node500in response to the request from the control node500. In the control node500, virtual disk metadata which defines allocation of the slices to the virtual disk60is created based on metadata collected from the disk nodes100,200, and300. More specifically, the virtual disk management section510of the control node500groups collected metadata items by virtual disk ID. Then, the virtual disk management section510defines a group of metadata items having the same virtual disk ID as virtual disk metadata associated with the virtual disk indicated by the virtual disk ID. The created virtual disk metadata is stored in the virtual disk metadata-storing section520.

FIG. 8illustrates examples of a data structure of the virtual disk metadata-storing section. The virtual disk metadata-storing section520stores a virtual disk metadata table521. The virtual disk metadata table521includes columns of a disk node ID, a slice ID, a status, a virtual disk ID, a segment ID, a virtual disk address, a paired disk node ID, and a paired slice ID. Pieces of information arranged in a lateral direction in the virtual disk metadata table521are associated with each other to form one record indicative of a metadata item. Information set in boxes of each column of the virtual disk metadata table521is the same kind of information as that set in boxes of each column having the same name in the metadata table141.

Although in the illustrated example inFIG. 8, the metadata items of slices (two slices allocated to the same segment) which form one slice pair are arranged one above the other, it is not necessarily required to arrange the metadata items in that manner.

In the above-described system, the storage device410which has not been managed by the multinode storage system is integrated into the multinode storage system. For example, when the administrator connects the storage device410to the disk node400, the disk node400detects the storage device410and starts a process for integration. The process for integrating the storage device410may be started by the administrator who provides an operational input to the disk node400. Further, the system may be configured such that an instruction to incorporate the storage device410is issued from the management node50to the disk node400by the operational input to the management node50by the administrator, and the process for integrating the storage device410may be started in response to the instruction.

Here, in the disk node400in which the storage device410thereof starts to be integrated into the multinode storage system, the data management section430divides the storage area in the storage device410into slices, and sets up a storage area for metadata.

FIG. 9illustrates an example of changes in the data structure of a storage device to be added. A first status (ST1) indicates a state of the storage area of the storage device410before its data structure is changed. In the storage device410before being added to the multinode storage system, the data is stored in a manner distributed over the whole recordable area416. As described above, the storage device410used in a state unintegrated into the multinode storage system is not provided with a storage area for information corresponding to the device information116and the metadata117a,117b,117c, . . . illustrated inFIG. 6. Therefore, the data management section430, first, divides the whole area416into a plurality of areas each corresponding to slice unitary data amount (e.g. 1 GB).

A second status (ST2) indicates a divided state of the storage area. As illustrated inFIG. 9, the whole area416is divided into a plurality of divided areas416a,416b,416c, . . . . The size of each of the divided areas416a,416b,416c, . . . is the same as that of each slice in the multinode storage system. Specifically, the data management section430defines addresses which are obtained by adding integral multiples of the number of addresses corresponding to the slice unitary data amount, to the start address of the whole area416, as the respective start addresses of the divided areas416a,416b,416c, . . . . Then, the data management section430recognizes that the storage area is divided into the plurality of the divided areas416a,416b,416c, . . . , by the obtained start addresses as the boundaries. That is, it is only necessary for the data management section430to logically recognize the whole area416of the storage device410as the divided areas416a,416b,416c, . . . , and it is not necessary to rewrite the data format or the like in the storage device410.

In the present embodiment, the starting divided area416aserves as a management information area for storing metadata and device information. Therefore, the data management section430copies the starting divided area416ato another storage device (storage device110in the illustrated example inFIG. 9). Then, the data management section430creates metadata and the like.

A third status (ST3) indicates a state of the storage area after metadata is created. The metadata is created in the starting divided area416a. The divided area416astores device information418and a plurality of metadata417a,417b, . . . . Further, the other divided areas416b,416c, . . . serve as slices to be managed415a,415b, . . . , respectively. The metadata items417a,417b, . . . are respectively associated with the slices415a,415b, . . . in one-to-one correspondence.

In addition to various statistical information, such as data access frequency in the storage device410, the metadata storing form is registered in the device information418. In the illustrated example inFIG. 9, since the metadata items417a,417b, . . . are collectively stored in the divided area416a, the metadata storing form is type 2.

Change of the data structure of the storage device410as illustrated inFIG. 9is performed by the data management section430of the disk node400. Further, copying of the data in the starting divided area416ato the other disk node, and creating of the metadata for managing the other divided areas416b,416c, . . . , as the slices, are performed under the control of the virtual disk management section510of the control node500. A detailed description will be given, hereinafter, of the function provided with the multinode storage system, for adding an existing storage device.

FIG. 10is a block diagram illustrating the functions for adding an existing storage device. The connection relationship between the elements illustrated inFIG. 10indicates relations concerning the input and output of information performed when data in the starting divided area in the existing storage device included in the disk node400is transferred to the storage device managed by the disk node100.

The data management section430of the disk node400includes a used disk connection-notifying section431, a start slice-transmitting section432, a start slice-receiving section433, and a metadata management section434. The used disk connection-notifying section431notifies the control node500that the storage device already storing data is added to the multinode storage system. When the storage area of the storage device410is divided, the start slice-transmitting section432transfers data of a start slice formed at the time to the other disk node. When the existing storage device managed by the other disk node is added to the multinode storage system, and a predetermined slice of the disk node400is specified as a storing destination where data of a start slice of the existing storage device is to be stored, the start slice-receiving section433receives the data of the start slice.

The metadata management section434manages metadata in the storage device410and metadata in the metadata storing section440. Specifically, when the storage device410is integrated into the multinode storage system, the metadata management section434stores the metadata of each of the slices415a,415b, . . . which are notified from the control node500, in the storage device410. If the storage device410which is integrated into the multinode storage system is unused (useful data is not stored), the metadata management section434can also store metadata in the metadata storing form of “type 1” as illustrated inFIG. 6. However, in the present embodiment, the storage device410is assumed to be a used one (“useful data is stored), and hence the metadata management section434stores the metadata in the metadata storing form of “type 2” as illustrated inFIG. 9.

Further, the metadata management section434transfers the metadata stored in the storage device410to the metadata storing section440. For example, after the storage device410is integrated into the multinode storage system, the metadata management section434refers to the device information418in the storage device410at the time of starting the disk node400, and determines the metadata storing form. Next, the metadata management section434determines a storage area for metadata according to the metadata storing form to read out the metadata from the storage device410. Then, the metadata management section434stores the read metadata in the metadata storing section440.

Further, when an instruction for updating the metadata is received from the control node500during operation of the system, the metadata management section434updates the metadata in the storage device410and the metadata in the metadata storing section440according to the update instruction. The instruction for updating the metadata includes a metadata write request which instructs to write new metadata, and a metadata change request which instructs to change the contents of the existing metadata. If the reception of data of a start slice occurs according to the update of metadata, the metadata management section434notifies a slice as a destination where received data is to be written, to the start slice-receiving section433.

The data management section130of the disk node100includes a used disk connection-notifying section131, a start slice-transmitting section132, a start slice-receiving section133, and a metadata management section134. The used disk connection-notifying section131, the start slice-transmitting section132, the start slice-receiving section133, and the metadata management section134each have the same functions as those of each element having the same name in the disk node400.

The virtual disk management section510of the control node500includes a used disk addition controller511. The used disk addition controller511controls processing of integrating a used storage device in the multinode storage system. Specifically, when a connection notice of the used storage device is received from the disk node400, the used disk addition controller511generates a virtual disk corresponding to the storage capacity of the connected used storage device410. Further, the used disk addition controller511allocates slices to the generated virtual disk. If the virtual disk is generated according to the used storage device, a slice in a storage device different from the used storage device being added is allocated to the start segment as its primary slice. The slices in the storage device to be connected are allocated to the segments other than the start segment as their primary slices.

When the slice allocation is completed, the used disk addition controller511creates a virtual disk metadata table in association with the used storage device410and stores the same in the virtual disk metadata-storing section520. Then, the used disk addition controller511instructs the disk node which manages the slices allocated to the virtual disk to update the metadata. Further, the used disk addition controller511notifies the disk node400of a request for copying data to the slice which is allocated to the start segment of the generated virtual disk as the primary slice. When copying of the data to the start segment of the generated virtual disk is completed, and the metadata of at least the primary slices in the disk nodes100,200,300, and400is updated, it becomes possible to access the generated virtual disk from the access node30. Accordingly, the used disk addition controller511transmits the metadata of the generated virtual disk to the access node30. This makes it possible to cause the access node30to recognize the new virtual disk, and thereafter perform the data access via the virtual disk.

The correspondence between the functions of each node and the functions illustrated inFIG. 10is as follows. The used disk addition controller511has the functions of the control node1. The used disk connection-notifying sections131and431of the disk nodes100and400have the functions of the connection notice-transmitting unit2aof the disk node2. The start slice-transmitting sections132and432of the disk nodes100and400have the functions of the data transmitting unit2bof the disk node2. The metadata management sections134and434have the functions of the data writing unit2cof the disk node2and the metadata changing unit3aof the disk node3. The start slice-receiving sections133and433of the disk nodes100and400have the functions of the data writing unit3bof the disk node3.

Next, a description will be given of a process for integrating the used storage device410into the multinode storage system, by the configuration illustrated inFIG. 10.

FIG. 11is a sequence diagram of the used storage device-integrating process. The process illustrated inFIG. 11will be described hereinafter in the order of step numbers.

In step S11, the used disk connection-notifying sections431of the disk node400transmits a connection notice to the control node500in response to an operational input for instructing to incorporate the storage device410into the multinode storage system. This connection notice contains information indicative of the disk node ID of the disk node400and the storage capacity of the storage device410.

In step S12, in the control node500, the used disk addition controller511receives the connection notice. The used disk addition controller511generates a virtual disk in association with the storage device410which is identified by the connection notice. At this time, it is assumed that a slice in the storage device110which is managed by the disk node100is allocated as the primary slice of a start segment of the newly generated virtual disk.

In step S13, the used disk addition controller511transmits a metadata change request to the disk node100. This metadata change request contains metadata related to the slice allocated as the primary slice of the start segment of the newly created virtual disk.

In step S14, the metadata management section134of the disk node100changes the metadata in response to the metadata change request. Specifically, the metadata management section134changes the metadata of the slice allocated to the start segment of the created virtual disk to contents specified by the metadata change request.

In step S15, the metadata management section134transmits a change completion response indicating that change of the metadata has been completed, to the control node500.

In step S16, the used disk addition controller511of the control node500transmits a start slice copy request to the disk node400. The start slice copy request contains the disk node ID and the slice ID specifying a slice as a copying destination. It should be noted that the slice as the copying destination is the slice allocated to the start segment of the virtual disk as the primary slice.

In step S17, the start slice-transmitting section432of the disk node400transmits the data stored in the starting divided area416a(seeFIG. 9) of the storage device410to the disk node100specified by the start slice copy request.

In step S18, the start slice-receiving section133of the disk node100receives the data transmitted from the disk node400. Next, the start slice-receiving section133acquires a slice number of the slice allocated to the start segment of the newly created virtual disk from the metadata management section134. Then, the start slice-receiving section133stores the received data in the slice having the slice number acquired from the metadata management section134. When the receiving and writing of the data are completed, the start slice-receiving section133transmits a reception completion response to the disk node400.

In step S19, when the reception completion response is received, the start slice-transmitting section432of the disk node400deletes the data in the divided area416a. Next, the start slice-transmitting section432transmits a copy completion response to the control node500.

In step S20, the used disk addition controller511of the control node500transmits a metadata write request to the disk node400. The metadata write request contains metadata related to slices allocated to the newly created virtual disk.

In step S21, The metadata management section434of the disk node400writes the metadata into the storage device410in response to the metadata write request. Specifically, after deleting the data in the start divided area416a(seeFIG. 9), the metadata management section434writes the metadata indicated by the metadata write request into the start divided area416a. When writing the metadata into the storage device410is completed, the metadata management section434stores the metadata in the metadata storing section440.

In step S22, when the writing of the metadata into the storage device410and the storing of the same in the metadata storing section440are completed, the metadata management section434transmits a write completion response to the control node500.

In step S23, the used disk addition controller511of the control node500transmits a metadata change request to the disk nodes100,200, and300. This metadata change request contains metadata indicating that slices allocated as secondary slices of the newly created virtual disk are to be placed in a reserved state. The disk nodes100,200, and300change the metadata in response to the metadata change request. Specifically, the disk nodes100,200, and300write the metadata contained in the metadata change request into the storage devices110,210, and310, and store the same in the metadata storing sections140,240, and340.

In step S24, when the change of the metadata is completed, the disk nodes100,200, and300each transmit a change completion response to the control node500. This causes the slices in the storage devices110,210, and310to serve as reserved slices to be used as secondary slices of the newly created virtual disk. Each reserved slice is recognized as an allocated slice when an unused slice is searched for when allocating a slice.

In step S25, the used disk addition controller511of the control node500transmits the metadata of the newly created virtual disk to the access node30. At this time, only the metadata related to the primary slices is transmitted. The access node30can recognize the existence of the new virtual disk and the slices allocated to the virtual disk by receiving the metadata. Although the access node30has been performing access by specifying an address of the storage device410of the disk node400, hereafter access is performed via the newly created virtual disk.

In step S26, the used disk addition controller511of the control node500transmits a slice copying instruction concerning the start segment of the newly created virtual disk to the disk node100which manages the primary slice of the start segment.

In step S27, the disk node100copies the data of the slice allocated to the start segment of the newly created virtual disk to the reserved slice of the segment. In the illustrated example inFIG. 11, the disk node300is assumed to have an associated reserved slice, and hence the disk node100transmits the slice data to the disk node300. The disk node300stores the received data in the reserved slice.

In step S28, when the receiving and storing of the data in the reserved slice are completed, the disk node300transmits a completion response to the disk node100.

In step S29, when the completion response is received from the disk node300, the disk node100transmits a copying completion response to the control node500.

In step S30, the used disk addition controller511of the control node500transmits a slice copying instruction concerning segments other than the start segment of the newly created virtual disk to the disk node400which manages the primary slices of the segments in parallel with the step S26.

In step S31, the disk node400copies the data of the slices allocated to the segments other than the start segment of the newly created virtual disk to the reserved slices of the segments. In the illustrated example inFIG. 11, the disk nodes100,200, and300are assumed to have associated reserved slices, and hence the disk node400transmits slice data to the disk nodes100,200, and300. The disk nodes100,200, and300store the received data in the reserved slices.

In step S32, when the receiving and storing of the data in the reserved slice are completed, the disk nodes100,200, and300transmit respective completion responses to the disk node400.

In step S33, when the completion responses are received from the disk nodes100,200, and300, the disk node400transmits a copy completion response to the control node500.

Through reception of the copy completion responses from the disk nodes which manage the primary slices of the newly created virtual disk, the used disk addition controller511of the control node500recognizes that the reserved slices are ready for use as the secondary slices.

In step S34, the used disk addition controller511of the control node500transmits metadata change requests to the disk nodes100,200, and300, respectively. These metadata change requests contain metadata according to which specified slices are placed in a status of the secondary slice. The disk nodes100,200, and300change the metadata according to the respective metadata change requests. Specifically, the disk nodes100,200, and300write metadata items contained in the metadata change requests thereto into the respective storage devices110,210, and310, and store the same in the metadata storing sections140,240, and340.

In step S35, upon completion of change of the metadata, the disk nodes100,200, and300transmit respective change completion responses to the control node500. This completes duplexing of the data of the newly created virtual disk.

As described above, in the multinode storage system, it becomes possible to access the data stored in the storage device410via the virtual disk. During a time period from the time the data in the divided area416ais deleted in step S21to the time the virtual disk metadata is transmitted in step S25, access to the data in the divided area416afrom the access node30causes an error. However, it is possible to transmit the virtual disk metadata to the access node30in the step S25without receiving the write completion response in the step S22. Therefore, the time period during which the data in the divided area416amay not be accessed is over in a very short time.

Next, a detailed description will be given of a virtual disk creation process (step S12).

FIG. 12is a flowchart of the virtual disk creation process. The process inFIG. 12will be described hereinafter in the order of step numbers.

In step S41, when a connection notice is received, the used disk addition controller511generates a virtual disk. That is, the used disk addition controller511creates a virtual disk ID “LVOL-Y” which is different from the virtual disk already generated.

In step S42, the used disk addition controller511defines segments which corresponds in a total size to the storage capacity specified by the connection notice, and allocates a primary slice and a secondary slice to each of the segments. A slice of the storage device different from the used storage device410is allocated to the start segment as its primary slice. The slices of the used storage device410are allocated to the segments other than the start segment as their primary slices.

In step S43, the used disk addition controller511creates metadata associated with the slices allocated in step S42. For example, if the storage capacity of the storage device is 100 GB and the size of each slice is 1 GB, the used disk addition controller511creates metadata of 100 slices. The created metadata is stored in the virtual disk metadata-storing section520.

FIG. 13illustrates a virtual disk metadata table which is newly created. The disk node ID of the disk node400is “SN-D”.

The metadata of the slices allocated to the segments corresponding to the capacity of the used storage device410is registered in a newly created virtual disk metadata table522. The virtual disk ID of each metadata is “LVOL-Y”. An unused slice of the storage device other than the storage device410is allocated to the primary slice of the start segment (segment ID “1”). In the illustrated example inFIG. 13, the first slice (slice ID “1”) of the storage device110which is managed by the disk node100having the disk node ID “SN-A” is allocated to the primary slice of the start segment. Slices of the storage device410are allocated to the primary slices of the second and subsequent segments, respectively.

Metadata items of the status “R” are created for slices allocated to the secondary slices. The status of these metadata items is changed into “S” after completion of copying of data from the primary slices to the secondary slices.

Further, when the virtual disk is generated, slice IDs are set to the slices415a,415b, . . . (seeFIG. 9) of the storage device410. Each slice ID is generated so as to be unique in the disk node400. Slices of other storage devices than the storage device410are allocated to the secondary slices of the respective segments.

The slice allocation to the newly created virtual disk is defined according to the above-described virtual disk metadata table522. Then, a metadata change request containing metadata having a segment ID of “1” is transmitted to the disk node100having the disk node ID “SN-A” (step S13inFIG. 12). Then, associated metadata in the disk node100is changed.

FIG. 14illustrates metadata items which have been changed in the disk nodes. As is apparent from a comparison with the status before the change illustrated inFIG. 7, a metadata item having a slice ID of “1” in the metadata table141(record at the top of the metadata table141) has been changed. The changed metadata item indicates that the start slice (slice ID “1”) of the storage device110is allocated to the primary slice (status “P”) of the start segment (segment ID “1”) of the newly created virtual disk (virtual disk ID “LVOL-Y”).

Although the metadata in the metadata storing section140is illustrated inFIG. 14, the metadata in the storage device110is also changed. Specifically, the metadata item having the slice ID “1” in the metadata table141is written into the storage device110as the metadata117aof the start slice115aillustrated inFIG. 6.

As described above, the associated metadata item in the disk node100which manages the slice allocated to the start segment of the virtual disk is updated. Thereafter, the data stored in the start divided area416aof the storage device410is transferred from the disk node400to the disk node100, and the data is stored in the slice allocated to the start segment of the virtual disk.

In the disk node400, after transmission of the data in the divided area416ato the disk node100, associated metadata is written into the divided area416a(step S21inFIG. 12).

FIG. 15is a flowchart of a metadata writing process. Hereafter, the process inFIG. 15will be described along with step numbers.

In step S51, the metadata management section434of the disk node400writes the device information418into the divided area416a. The device information418contains the metadata storing form (type 2) which indicates metadata items are collectively stored in the start of the disk.

In step S52, the metadata management section434writes the metadata items417a,417b, . . . associated with the respective slices415a,415b, . . . into the divided area416a, in succession to the device information418. Further, the metadata management section434stores the metadata items417a,417b, . . . in a metadata table in the metadata storing section440.

FIG. 16illustrates a metadata table associated with the integrated storage device. The metadata storing section440of disk node400stores a metadata table441in which the metadata items of the storage device410are registered. As illustrated inFIG. 16, immediately after the storage device410is integrated into the multinode storage system, the slices are allocated as the primary slices of the virtual disk having the ID “LVOL-Y”. The metadata having the same contents as those of the metadata table441is written into the divided area416aserving as a management information area.

When the metadata items of the slices allocated to the virtual disk having the ID “LVOL-Y” are stored in the disk nodes, the data is copied from the primary slices to the reserved slices. When the copying of the data is completed, the status of each reserved slice is changed to the secondary slice. From then on, data which is input to the virtual disk having the ID “LVOL-Y” is managed in a manner duplexed in the plurality of the disk nodes.

FIG. 17illustrates a relationship of the slice allocation after integrating the used storage device. A virtual disk70is generated by newly having integrated the storage device410in the multinode storage system. The segments71,72,73,74, . . . are formed by respective pairs of primary slices71a,72a,73a,74a, . . . and secondary slices71b,72b,73b,74b, . . . . Slices in the storage devices110,210,310,410are allocated to the primary slices71a,72a,73a,74a, . . . and the secondary slices71b,72b,73b,74b, . . . . Further, the slices415a,415b,415c, . . . of the storage device410having been newly integrated in the system are respectively allocated to the segments72,73,74of the virtual disk70as their primary slices.

In the illustrated example inFIG. 17, similarly toFIG. 4, an identifier of each slice in the virtual disks60and70is represented by a combination of an alphabet “P” or “S” and a number. “P” represents a primary slice. “S” represents a secondary slice. The number following the alphabet represents a position of a segment in a segment sequence.

Further, a symbol in parentheses following the identifier of each slice of each of the storage devices110,210,310,410represents the virtual disk to which the slice is allocated. Slices indicated using “X” in parentheses are allocated to the virtual disk60having a virtual disk ID of “LVOL-X”. Slices indicated using “Y” in parentheses are allocated to the virtual disk70having a virtual disk ID of “LVOL-Y”.

As described above, it is possible to integrate the used storage device410in the multinode storage system. At this time, if processing of data transmission and metadata update of one slice is completed, it becomes possible to access the data stored in the storage device410from the access node30. That is, if the virtual disk70is created, the metadata concerning the primary slices allocated to the segments of the virtual disk70is notified from the control node500to the access node30. The access node30recognizes that the virtual disk70has been newly created according to the received metadata. When data access by specifying the address of the virtual disk70occurs, the access node30determines a segment to which the data to be accessed belongs, and the primary slice allocated to the segment by referring to the metadata. Then, the access node30transmits a data access request specifying the corresponding slice, to the disk node which manages the slice.

In the present embodiment, it is only required to copy data in one slice. Therefore, even if the storage device410has a large storage capacity, it takes a short time to copy the data. Further, since it is only required to copy data in one slice, processing load on the disk node due to copying of data is light.

Furthermore, the storage device410itself is integrated into the multinode storage system. Therefore, a time period during which the storage device410is not in use is not caused, whereby resource use efficiency is enhanced. And what is more, if the allocation of primary slices is completed, it becomes possible to access the data in the virtual disk70from the access node30. Therefore, it is possible to access data before duplexing of the data (copying of the data from the primary slices to the secondary slices) is completed, which realizes a short out-of-service time.

It should be noted that it is possible to realize the above-described function of processing by a computer. In this case, a program in which content of processing of function to be included in the disk node or the control node is written is provided. By carrying out the program by the computer, the above-described function of processing is realized on the computer. The program in which the content of processing is written can be recorded in a record medium which is capable of being read by the computer. Examples of the record medium which is capable of being read by the computer include a magnetic recording system, an optical disk, a magnetooptical medium, a semiconductor memory or the like. Examples of the magnetic recording system include a hard disk device (HDD), a flexible disk (FD), a magnetic tape. Examples of the optical disk include a DVD (Digital Versatile Disc), a DVD-RAM, a CD-ROM (Compact Disc Read Only Memory), a CD-R (Recordable)/RW (ReWritable). Examples of the magnetooptical medium include an MO (Magneto-Optical disc).

In case of distributing programs, for example, portable record mediums, such as DVD, CD-ROM or the like in which the program is recorded are marketed. Further, it is also possible to store the program in a storing device of a server computer, and transfer the program from the server computer to the other computer via a network.

The computer which carries out the program stores, for example, the program which is recorded in the portable record medium, or is transferred from the server computer in the storing device thereof. Then, the computer reads out the program from the storing device thereof, and carries out the processes according to the program. It should be noted that the computer is also capable of directly reading out the program from the portable record medium, and carrying out the processes according to the program. Further, the computer is also capable of carrying out the processes according to the program which is received, each time the program is transferred from the server computer.

According to the above-described virtual disk management program, the storage device management program, the multinode storage system, and the virtual disk management method, it is possible to access the data in the storage device to be connected via a virtual disk without copying the data other than the data in one slice's management information area of the storage device to be connected in which the data has been stored. As a result, it is possible to effectively transfer the data from the storage device to be connected to the virtual disk.