Embodiments of the present invention will be explained below with reference to the drawings. In the drawings explained below, the same parts are provided with the same reference numerals, so their explanations will not be repeated.
The information processing apparatuses 200 correspond to host systems, and they are servers (hosts) having a CPU and memory, or storage apparatus management computers. They may be workstations, mainframe computers or personal computers, etc. An information processing apparatus 200 may also be a computer system consisting of a plurality of computers connected via a network. Each information processing apparatus 200 has an application program executed on an operating system. Examples of the application program include a bank automated telling system and an airplane seat reservation system. The servers include an update server and a backup server that performs backup at the backend of the update server.
The information processing apparatuses 1 to 3 (200) are connected to the storage apparatus 600 via a LAN (Local Area Network) 400. The LAN 400 is, for example, a communication network, such as an Ethernet® or FDDI, and communication between the information processing apparatuses 1 to 3 (200) and the storage system 600 is conducted according to the TCP/IP protocol suite. File name-designated data access requests targeting the storage system 600 (file-based data input/output requests; hereinafter, referred to as “file access requests”) are sent from the information processing apparatuses 1 to 3 (200) to channel controllers CHN1 to CHN4 (110), which are described later.
The LAN 400 is connected to a backup device 910. The backup device 910 is, for example, a disk device, such as an MO, CD-R, DVD-RAM, etc., or a tape device, such as a DAT tape, cassette tape, open tape, cartridge tape, etc. The backup device 910 stores a backup of data stored in the storage devices 300 by communicating with the storage device control unit 100 via the LAN 400. Also, the backup device 910 can communicate with the information processing apparatus 1 (200) to obtain a backup of data stored in the storage devices 300 via the information processing apparatus 1 (200).
The storage device control unit 100 includes channel controllers CHN1 to CHN4 (110). The storage device control unit 100 relays write/read access between the information processing apparatuses 1 to 3, the backup device 910, the storage devices 300 via the channel controllers CHN1 to CHN4 (110) and the LAN 400. The channel controllers CNH1 to CHN4 (110) individually receive file access requests from the information processing apparatuses 1 to 3. In other words, the channel controllers CHN1 to CHN4 (110) are individually provided with network addresses on the LAN 400 (e.g., IP addresses), and can individually act as NAS devices, and individual NAS devices can provide NAS services as if they exist as independent NAS devices.
The above-described arrangement of the channel controllers CHN1 to CHN4 (110) that individually provides NAS services in one storage system 600 has NAS servers, which have conventionally been operated with independent computers, collected in one storage system 600. Consequently, collective management in the storage system 600 becomes possible, improving the efficiency of maintenance tasks, such as various settings and controls, failure management and version management,
The information processing apparatuses 3 and 4 (200) are connected to the storage device control unit 100 via a SAN 500. The SAN 500 is a network for sending/receiving data to/from the information processing apparatuses 3 and 4 (200) in blocks, which are data management units for storage resources provided by the storage devices 300. The communication between the information processing apparatuses 3 and 4 (200) and the storage device control unit 100 via the SAN 500 is generally conducted according to SCSI protocol. Block-based data access requests (hereinafter referred to as “block access requests”) are sent from the information processing apparatuses 3 and 4 (200) to the storage system 600.
The SAN 500 is connected to a SAN-adaptable backup device 900. The SAN-adaptable backup device 900 communicates with the storage device control unit 100 via the SAN 500, and stores a backup of data stored in the storage devices 300.
In addition to the channel controller CHN1 to CHN4, the storage device control unit 100 also includes channel controllers CHF1, CHF2, CHA1 and CHA2 (110). The storage device control unit 100 communicates with the information processing apparatuses 3 and 4 (200) and the SAN-adaptable backup device 900 via the channel controllers CHF1 and CHF2 (110) and the SAN 500. The channel controllers processes access commands from host systems.
The information processing apparatus 5 (200) is connected to the storage device control unit 100, but not via a network such as the LAN 400 and the SAN 500. The information processing apparatus 5 (200) is, for example, a mainframe computer. The communication between the information processing apparatus 5 (200) and the storage device control unit 100 is conducted according to a communication protocol, such as FICON (Fibre Connection)®, ESCON (Enterprise System Connection)®, ACONARC (Advanced Connected Architecture)®, FIBARC (Fibre Connection Architecture)®. Block access requests are sent from the information processing apparatus 5 (200) to the storage system 600 according to any of these communication protocols. The storage device control unit 100 communicates with the information processing apparatus 5 (200) via the channel controllers CHA1 and CHA2 (110).
The SAN 500 is connected to another storage system 610. The storage system 610 enables the information processing apparatuses 200 and the storage apparatus 600 providing storage resources the storage system 610 has to the storage device control unit 100. The storage apparatus 600's storage resources recognized by the information processing apparatuses 200 has been expanded by the storage apparatus 610. The storage system 610 may be connected to the storage system 600 with a communication line, such as ATM, other than the SAN 500. The storage system 610 can also be directly connected to the storage system 600.
As explained above, the channel controllers CHN1 to CHN4, CHF1, CHF2, CHA1, and CHA2 (100) coexist in the storage system 600, making it possible to obtain a storage system connectable to different types of networks. In other words, the storage system 600 is a SAN-NAS integrated storage system that is connected to the LAN 400 using the channel controllers CHN1 to CHN4 (110), and also to the SAN 500 using the channel controllers CHA1 and CHA2 (100).
A connector 150 interconnects the respective channel controllers 110, shared memory 120, cache memory 130, and the respective disk controllers 140. Commands and data are transmitted between the channel controllers 110, the shared memory 120, the cache memory 130, and the controllers 140 via the connecter 150. The connector 150 is, for example, a high-speed bus, such as an ultrahigh-speed crossbar switch that performs data transmission by high-speed switching. This makes it possible to greatly enhance the performance of communication with the channel controllers 110, and also to provide high-speed file sharing, and high-speed failover, etc.
The shared memory 120 and the cache memory 130 are memory devices that are shared between the channel controllers 110 and the disk controllers 140. The shared memory 120 is used mainly for storing control information or commands, etc., and the cache memory 130 is used mainly for storing data. For example, when a data input/output command received by a channel controller 110 from an information processing apparatus 200 is a write command, the channel controller 110 writes the write command to the shared memory 120, and also writes write data received from the information processing apparatus 200 to the cache memory 130. Meanwhile, the disk controller 140 monitors the shared memory 120, and when it judges that the write command has been written to the shared memory 120, it reads the write data from the cache memory 130 based on the write command, and writes it to the storage devices 300.
Meanwhile, when a data input/output command received by a channel controller 110 from an information processing apparatus 200 is a read command, the channel controller 110 writes the read command to the shared memory 120, and checks whether the target data exists in the cache memory 130. If the target data exists in the cache memory 130, the channel controller 110 reads the data from the cache memory 130 and sends it to the information processing apparatus 200. If the target data does not exist in the cache memory 130, the disk controller 140, having detected that the read command has been written to the shared memory 120, reads the target data from the storage devices 300 and writes it to the cache memory 130, and notifies the shared memory to that effect. The channel controller 110, upon detecting that the target data has been written to the cache memory 130, having monitored the shared memory 120, reads the data from the cache memory 130 and sends it to the information processing apparatus 200.
The disk controllers 140 convert logical address-designated data access requests targeting the storage devices 300 sent from the channel controllers 110, to physical address-designated data access requests, and write/read data to/from the storage devices 300 in response to I/O requests output from the channel controllers 110. When the storage devices 300 have a RAID configuration, the disk controllers 140 access data according to the RAID configuration. In other words, the disk controllers 140 control HDDs, which are storage devices, and they control RAID groups. Each of the RAID groups consists of storage areas made from a plurality of HDDs.
A storage devices 300 includes single or multiple disk drives (physical volumes), and provides a storage area accessible from the information processing apparatuses 200. In the storage area provided by the storage devices 300, logical volume(s), which are formed from the storage space in single or multiple physical volumes, are defined. Examples of the logical volumes defined in the storage devices 300 include a user logical volume accessible from the information processing apparatuses 200, and a system logical volume used for controlling the channel controllers 110. The system logical volume stores an operating system executed in the channel controllers 110. A logical volume provided by the storage devices 300 to a host system is a logical volume accessible from the relevant channel controller 110. Also, a plurality of channel controllers 110 can share the same logical volume.
For the storage devices 300, for example, hard disk drives can be used, and semiconductor memory, such as flash memory, can also be used. For the storage configuration of the storage devices 300, for example, a RAID disk array may be formed from a plurality of storage devices 300. The storage devices 300 and the storage device control unit 100 may be connected directly, or via a network. Furthermore, the storage devices 300 may be integrated with the storage device controller 100.
The management console 160 is a computer apparatus for maintaining and managing the storage system 600, and is connected to the respective channel controllers 110, the disk controllers 140 and the shared memory 120 via an internal LAN 151. An operator can perform the setting of disk drives in the storage devices 300, the setting of logical volumes, and the installation of microprograms executed in the channel controllers 110 and the disk controllers 140 via the management console 160. This type of control may be conducted via a management console, or may be conducted by a program operating on a host system via a network.
A disk controller 140 includes a microprocessor CT2 and local memory LM2. The local memory LM2 stores a RAID control program and an HDD control program. The microprocessor CT2 executes the RAID control program and the HDD control program with reference to the local memory LM2. The RAID control program configures a RAID group from a plurality of HDDs, and provides LDEVs to the channel command program in the upper tier. The HDD control program executes data reading/writing from/to the HDDs in response to requests from the RAID control program in the upper tier.
A host system 200A accesses a LDEV12A via an LU 10. The storage area for a host system 200B is formed using the AOU technique. The host system 200B accesses a virtual LDEV 16 via a virtual LU 14. The virtual LDEV 16 is allocated a pool 18, and LDEVs 12B and 12C are allocated to this pool.
A virtual LDEV corresponds to a virtual volume. A pool is a collection of (non-virtual) LDEVs formed from physical storage areas that are allocated to virtual LDEVs. Incidentally, a channel I/F and an I/O path are interfaces for a host system to access a storage subsystem, and may be Fibre Channel or iSCSI.
As shown in
The host system A, compared to the host system B, has ‘rogue’ accesses (i.e., too-many writes) to the AOU volume (virtual volume) 16A. The storage system 600 may judge a host system itself as a rogue one from the beginning, or may also evaluate or judge a host system making write access to virtual volumes as a “rogue host” based on the amount of write access from the host system. The latter case is, for example, when there is a great amount of write access from the host system A to virtual volumes, and the amount of access exceeds access limits called “quotas”. Access from a host system B does not exceed the quotas. These quotas include those set for a host system, those set for a virtual volume, and those set for a pool.
A quota set for a host system is registered in advance by, for example, a storage system administrator in a control table in the shared memory (120 in
The quotas include two kinds: a host warning quota and a host limit quota. The host warning quota is a first threshold value for the total capacity of chunks assigned to virtual volumes as a result of write access from a host system, and when the capacity of chunks allocated to the virtual volumes exceeds the first threshold value, the storage system gives the storage administrator a warning. The quota is set in GBs. The host limit quota is a second threshold for the total capacity of chunks assigned to virtual volumes as a result of write access from a host system, and when the total capacity of chunks assigned to the virtual volumes as a result of write access from a host system exceeds the second threshold value, the storage system makes any subsequent write access from the host system (involving chunk allocation) to an abnormal termination. This quota is also set in GBs. The limit value (second threshold value) is set to a capacity greater than the capacity for the warning value (first threshold value).
A quota may be determined by the total capacity of chunks allocated to a virtual volume, or by the ratio of the allocated storage area of a virtual volume to the total capacity of the virtual volume, or by the ratio of the allocated storage area of a pool to the total capacity of the pool. A quota may also be determined by the rate (frequency/speed) at which chunks are allocated to a virtual volume. A host system that consumes a lot of chunks is judged a rogue host according to this host quota management table, and the storage system limits or prohibits chunk allocation for access from this host system. The storage system can calculate a chunk allocation rate by periodically clearing the counter value of a counter that counts the number of chunks allocated to a virtual volume.
The “limit quota” and “warning quota” of a virtual volume are the same kind as the quotas set for a host system explained with reference to
If the volume accessed by the host system is a virtual volume, the channel controller converts the block addresses for the virtual volume accessed by the host system to a chunk number (1402). When the host system accesses the virtual volume with a logical block address, the channel controller can recognize the chunk number (entry in the virtual volume allocation table in
Next, the channel controller checks whether or not an error has occurred, and if an error has occurred, notifies the host system of an abnormal termination (1418). Meanwhile, if no error has occurred, the channel controller calculates the pool volume number for the pool volume having the chunks allocated the write target block number, and the block address corresponding to the chunks (1410). Subsequently, the channel controller writes write data to this address area (1412), and then checks whether or not a write error has occurred (1414). If no error has occurred, the channel controller notifies the host system of a normal termination (completion) (1416), and if an error has occurred, notifies the host system of an abnormal termination. The channel controller proceeds to step 1410 when the target volume accessed by the host system is not a virtual volume, or when the chunk is already allocated to a virtual volume.
When the allocated chunk ratio exceeds the pool limit quota, the disk controller, referring to the volume management table (
The disk controller, referring to all the virtual volume allocation tables, counts the number of entries having the same host number as the one obtained, and multiplies the number by the chunk size (1512). The disk controller determines whether or not the calculation result exceeds the host limit quota for the host system that write-accessed to the storage system (1514). Upon a negative result, chunk allocation processing is executed. If the disk controller determines that this ratio exceeds the virtual volume limit quota (1508), or if the calculation result 1512 exceeds the virtual volume limit quota or the host limit quota, the disk controller returns an error notice to the host system (1516).
Next, the chunk allocation processing will be explained. A disk controller scans the entries in the pool management table (
If there is a valid entry included, the disk controller checks whether or not a “0” is stored in the chunk bitmap for the valid entry (1522). If no “0” is stored, the disk controller checks whether a “0” is stored in the chunk bitmaps for other entries, and if a “0” is found in a chunk bitmap, changes the bit to “1” (1526). Subsequently, the disk controller selects the corresponding entry in the virtual volume allocation table based on the chunk number calculated at step 1402 in
The disk controller then determines whether or not the total capacity of chunks assigned to virtual volumes by write access from host systems exceeds the pool warning quota (1536), and if it exceeds the pool warning quota, the disk controller determines whether or not a warning has been sent to the management console (1538), and if it has not yet been sent, sends a warning email to the management console (1540). Subsequently, the disk controller checks whether the total capacity of chunks assigned to virtual volumes by write access from the host system exceeds the host warning quota (1542), and if no warning has been sent to the management console, sends a warning email to the management console (storage administrator) (1546). The similar processing is performed for the virtual volume warning quota (1548 to 1552). Upon the end of the above processing, the storage system notifies the host system of a normal termination for the write access from the host system.
As shown In
Upon an affirmative result at step 2304, the administrator halts the operation of the rogue application(s) on the host system(s) (2306). The administrator initializes all the virtual volumes that had been used by the application(s) via the management console (2310), and then formats all volumes that had been used by the application(s) (2312).
As explained above, especially in
Meanwhile, for write access from another host system with a low frequency of write access to the virtual volume, even if the capacity of chunks already allocated to virtual volumes exceeds the pool limit quota, the storage system allocates chunks to the virtual volume, enabling the write access from that host system.
In the above-described embodiment, a host system with a write access frequency comparatively higher than other host systems is judged a “rogue host,” and any application software operating on that host system is judged a “rogue program.” However, the present invention is not limited to the above case, and any specific host system or software can be determined as ‘rogue.’ In the above-described embodiment, the storage system notifies a host system of a write access error. Therefore, a spare logical volume having a physical storage area, rather than a virtual volume, may be provided in advance, and data may be transferred from the virtual volume to the spare volume at the same time the warning is issued, disconnecting the host system from the virtual volume. Consequently, it is possible for the host system to access the spare volume, enabling write access from the host system to the spare volume.
Furthermore, when there is no more storage area remaining in a pool, it is possible to add a storage area from another pool. In these cases, an FC drive can be used for a pool in SATA drives, but the reverse can be prohibited (if so desired).
Number | Date | Country | Kind |
---|---|---|---|
2006-131621 | May 2006 | JP | national |