WO2013061382A1 - 計算機システム及びストレージ管理方法 - Google Patents

計算機システム及びストレージ管理方法 Download PDF

Info

Publication number
WO2013061382A1
WO2013061382A1 PCT/JP2011/006048 JP2011006048W WO2013061382A1 WO 2013061382 A1 WO2013061382 A1 WO 2013061382A1 JP 2011006048 W JP2011006048 W JP 2011006048W WO 2013061382 A1 WO2013061382 A1 WO 2013061382A1
Authority
WO
WIPO (PCT)
Prior art keywords
storage
data
hierarchical
management
information
Prior art date
Application number
PCT/JP2011/006048
Other languages
English (en)
French (fr)
Inventor
晋広 牧
友理 平岩
健一 小山田
Original Assignee
株式会社日立製作所
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to US13/384,040 priority Critical patent/US8954671B2/en
Priority to PCT/JP2011/006048 priority patent/WO2013061382A1/ja
Priority to JP2013540511A priority patent/JP5771280B2/ja
Publication of WO2013061382A1 publication Critical patent/WO2013061382A1/ja
Priority to US14/596,707 priority patent/US9747036B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/188Virtual file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • G06F3/0649Lifecycle management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays

Definitions

  • the present invention relates to a computer system and a storage management method, and is suitably applied to a computer system and a storage management method for hierarchically managing data used by an application program.
  • Patent Document 1 for an application program with high importance (hereinafter, the application program is simply referred to as an application), data used by the application is stored in a file unit in a storage device having appropriate input / output performance. Disposition techniques are disclosed. According to Patent Document 1, it is possible to complete the processing by a target time for at least a high priority application.
  • the storage device has storage areas having a plurality of different characteristics (input / output performance, reliability, etc.)
  • each storage area is referred to as a hierarchical storage, and the computer system uses it for any of the multiple hierarchical storages.
  • a technique for arranging data will be described below as hierarchical storage control.
  • the storage device divides the data written in the virtual storage area in the device into smaller fragments than files and arranges them in the designated hierarchical storage.
  • the storage device relocates the fragment of the hierarchical storage having appropriate input / output performance according to the frequency of accessing the fragment by the host computer after the data is arranged in the designated hierarchical storage.
  • it is possible to arrange only data that requires the performance in a generally expensive hierarchical storage having high input / output performance (referred to as upper hierarchical storage). It is possible to expect the same performance as the input / output performance of the upper tier storage while minimizing the use of the storage.
  • Patent Document 1 Although application data having a high priority can be arranged in the upper tier storage, the tier storage control cannot be executed in a unit smaller than that of the file. Even if there is a low fragment, the file is arranged in the upper tier storage, and thus there is a problem that the upper tier storage is wasted. In Patent Document 2, only the fragment frequently referred to by the host computer among the application data can be arranged in the upper tier storage. However, since the tier storage control is performed according to the data reference frequency, There has been a problem that hierarchical storage control according to the priority of each cannot be performed.
  • the present invention has been made in consideration of the above points, and intends to propose a computer system and a storage management method capable of arranging data in a tiered storage with an appropriate granularity according to the characteristics of an application. is there.
  • a storage apparatus a host computer that requests writing of data to the storage apparatus, and a management computer that manages the storage apparatus and the host computer are connected via a network.
  • the storage device manages storage areas provided by a plurality of types of storage media having different performances as a pool, and responds to the data write request from the host computer.
  • a control unit that allocates a storage area in units of pages from any one of the multiple types of tiered storage constituting the pool to the virtual volume, and the control unit is managed by the host computer Specific data to be processed based on the organization information of the specific data.
  • the computer system is provided.
  • the file organization of the data used by the application is managed by the management computer, so that the data usage characteristics of the application can be derived using the characteristics of the file organization, and the file managed by the OS or the like Hierarchical control that is finer than the unit can be realized.
  • the file managed by the OS or the like Hierarchical control that is finer than the unit can be realized.
  • FIG. 1 is a block diagram showing the hardware constitutions of the computer system which concerns on the 1st Embodiment of this invention. It is a block diagram which shows the structure of the management computer concerning the embodiment. It is a block diagram which shows the structure of the host calculation concerning the embodiment. 2 is a block diagram showing a configuration of a storage device according to the embodiment.
  • FIG. It is a conceptual diagram explaining the outline
  • FIG. 1 It is a chart showing the contents of the tiered storage pool management information according to the embodiment. It is a chart which shows the contents of basic storage information concerning the embodiment. It is a chart which shows the contents of the storage information table concerning the embodiment. It is a chart which shows the content of the IO request
  • FIG. 3 is a conceptual diagram illustrating concepts of an application and a job according to the embodiment It is a flowchart which shows the detail of operation
  • the process may be described using “program” as the subject, but the program is executed by a processor (for example, a CPU (Central Processing Unit)) included in the controller, so that a predetermined process is performed. Is performed using a storage resource (for example, a memory) and / or a communication interface device (for example, a communication port) as appropriate, and the subject of the processing may be a processor.
  • the processing described with the program as the subject may be processing performed by a processor or a management system having the processor (for example, a display computer (for example, a client) or a management computer (for example, a server)).
  • the controller may be the processor itself or may include a hardware circuit that performs part or all of the processing performed by the controller.
  • the program may be installed in each controller from a program source.
  • the program source may be, for example, a program distribution server or a storage medium.
  • the management computer has input / output devices.
  • input / output devices include a display, a keyboard, and a pointer device, but other devices may be used.
  • a serial interface or an Ethernet interface (Ethernet is a registered trademark) is used as an input / output device, and a display computer having a display, keyboard, or pointer device is connected to the interface, and display information is displayed. It is also possible to substitute the input and display on the input device by transmitting to the display computer or receiving input information from the display computer to display on the display computer or accepting input.
  • a set of one or more computers that manage the computer system and manage and control the storage system may be referred to as a management system.
  • the management computer displays the display information
  • the management computer is a management system.
  • a combination of a management computer and a display computer is also a management system.
  • a plurality of computers may realize processing equivalent to that of the management computer.
  • the plurality of computers if the display computer performs the display, display (Including computers) is the management system.
  • time is used, but the time may indicate information such as year, month, and day, and may naturally indicate hours, minutes, and seconds (including seconds after the decimal point). .
  • a technique for disposing data used by an application in a file unit in a storage device having appropriate input / output performance for a highly important application program (hereinafter referred to simply as an application) is disclosed.
  • an application has been.
  • each storage area is referred to as a hierarchical storage, and the computer system uses it for any of the multiple hierarchical storages.
  • a technique for arranging data will be described below as hierarchical storage control.
  • a technique in which a storage device divides data written in a virtual storage area in the device into smaller pieces than files and arranges them in designated hierarchical storage. Further, after the data is arranged in the designated hierarchical storage, the storage device rearranges the fragment of the hierarchical storage having appropriate input / output performance according to the frequency of accessing the fragment by the host computer. . According to this technique, it is possible to place only data that requires the performance in a generally expensive tiered storage with high input / output performance (referred to as upper tiered storage). It is possible to expect the same performance as the input / output performance of the upper tier storage.
  • the reference frequency is low
  • the data is placed in a lower hierarchical storage, or even if the application has a low priority
  • the reference frequency is high. May be arranged in the upper hierarchical storage, so that efficient hierarchical storage control cannot be realized.
  • FIG. 1 shows the hardware configuration of the computer system 10.
  • the computer system 10 includes a management computer 100, a host computer 200, and a storage device 300.
  • the management computer 100 and the host computer 200 may be the same computer, may be one each, or may be a plurality. Further, in the computer system 10, the number of storage devices 300 may be one or more.
  • the management computer 100, the host computer 200, and the storage device 300 are connected to each other via a communication network (for example, SAN (Storage Area Network)) 500.
  • the management computer 100 is connected to the host computer 200 and the storage apparatus 300 via a communication network (for example, a LAN (Local Area Network)) 550.
  • a communication network for example, a LAN (Local Area Network)
  • FIG. 2 shows the configuration of the management computer 100.
  • the management computer 100 is a computer having a memory 110, a processor 120, and an IO processing unit 130.
  • the memory 110, the processor 120, and the IO processing unit 130 are connected to each other via an internal network (not shown).
  • the processor 120 performs various processes by executing a program stored in the memory 110.
  • the processor 120 controls the hierarchical storage executed by the storage apparatus 300 by transmitting an IO request to the storage apparatus 300.
  • the IO request includes, for example, a data access instruction or a hierarchical control instruction. The IO request will be described later in detail.
  • the memory 110 stores a program executed by the processor 120, information required by the processor 120, and the like.
  • the memory 110 includes a storage management program 111, an executing job management table 112, a control target data management table 113, a user setting information management table 114, an input / output frequency management table 115, and a tiered storage usage status management table 116.
  • a tier table 117, a host configuration management table 118, a past tier holding table 119, and a storage information table 101 are stored.
  • the memory 110 may store an OS (Operating System) and an application program (AP).
  • OS Operating System
  • AP application program
  • the storage management program 111 is a program for managing the storage apparatus 300.
  • the ongoing job management table 112 is information for managing jobs to be described later.
  • the control target data management table 113 is information regarding data used by a job.
  • the user setting information management table 114 is information set in advance by the user of the computer system 10 regarding the data to be controlled.
  • the input / output frequency management table 115 is information related to application reference characteristics.
  • the tiered storage usage status management table 116 is information that holds information related to the usage status of tiered storage, which will be described later.
  • the tier table 117 is a table that holds in which real volume the specified logical volume is arranged by tier storage control described later.
  • the hierarchy table 117 is characteristic information that can specify the characteristics of a storage medium having a real storage area allocated to the primary volume.
  • the host configuration management table 118 is information for managing a host computer that uses data of an application that is a hierarchical control target to be described later.
  • the past tier holding table 119 is information for restoring the tier storage assigned to the data set used by the job when the job was executed in the past.
  • the storage information table 101 is information related to the storage apparatus 300 managed by the management computer 100. Various tables stored in the memory 110 will be described in detail later.
  • the IO processing unit 130 is an interface connected to the host computer 200 and the storage apparatus 300 via the communication network 500.
  • Fig. 3 shows the configuration of the host computer 200.
  • the host computer 200 is a computer having a memory 210, a processor 220, and an IO processing unit 230.
  • the memory 210, the processor 220, and the IO processing unit 230 are connected to each other via an internal network (not shown).
  • the processor 220 performs various processes by executing a program stored in the memory 210. For example, the processor 220 accesses the data of the logical volume (real logical volume, virtual logical volume) managed by the storage apparatus 300 by transmitting an IO request to the storage apparatus 300.
  • the processor 220 accesses the data of the logical volume (real logical volume, virtual logical volume) managed by the storage apparatus 300 by transmitting an IO request to the storage apparatus 300.
  • the memory 210 stores a program executed by the processor 220, information required by the processor 220, and the like. Specifically, the memory 210 stores one or more application programs 211, an OS 212, and an agent program 213.
  • Application program 211 executes various processes.
  • the application program 211 provides a database function or a mail server function.
  • the OS 212 controls the entire processing of the host computer 200.
  • the agent program 213 receives an instruction from the management computer 100.
  • the IO processing unit 230 is an interface for communicating with the management computer 100 and the storage apparatus 300 via the communication network 500. Specifically, for example, the IO processing unit 230 transmits an IO request to the storage apparatus 300.
  • FIG. 4 shows the configuration of the storage apparatus 300.
  • the storage device 300 includes a storage control device 1000, a plurality of disk drives 1500, and a management terminal 1600.
  • the management terminal 1600 is directly connected to the storage controller 1000 in the storage apparatus 300, but is connected to the storage apparatus 300 via at least one of the communication networks 500 and 550. Also good.
  • the storage controller 1000 and the plurality of disk drives 1500 are connected to each other via an internal network.
  • the disk drive 1500 is a disk-type storage medium drive, and stores data requested to be written by the host computer 200.
  • the storage apparatus 300 may include a storage device (for example, a flash memory drive) having other types of storage media in addition to the disk drive 1500 or instead of the disk drive 1500.
  • the storage control device 1000 controls the operation of the storage device 300.
  • the storage controller 1000 controls data writing to the disk drive 1500 and data reading from the disk drive 1500.
  • the storage controller 1000 provides one or more logical volumes to the management computer 100 and the host computer 200.
  • One or more logical volumes are composed of either real volumes or virtual volumes.
  • the real volume is one or more logical storage areas formed based on the storage space of one or more disk drives 1500.
  • the virtual volume is a virtual volume that uses a partial area of the real volume. The real volume and the virtual volume will be described later in detail.
  • the storage control device 1000 includes a cache memory 1100, a shared memory 1200, an input / output control unit 1300, and a disk control unit 1400.
  • the cache memory 1100, the shared memory 1200, the input / output control unit 1300, and the disk control unit 1400 are connected to each other via an internal network (not shown).
  • the cache memory 1100 temporarily stores data written to the disk drive 1500 and data read from the disk drive 1500.
  • the disk control unit 1400 controls data writing to the disk drive 1500 and data reading from the disk drive 1500.
  • the disk control unit 1400 also creates a real volume from the storage space of one or more disk drives 1500.
  • the input / output control unit 1300 includes a processor 1310, an IO transmission / reception unit 1320, and a memory 1330.
  • the processor 1310, the IO transmission / reception unit 1320, and the memory 1330 are connected to each other via an internal network (not shown).
  • the IO transmission / reception unit 1320 is an interface that communicates with other devices (for example, at least one of the management computer 100, the host computer 200, and the other storage device 300) via the communication network 500. Specifically, for example, the IO transmission / reception unit 1320 receives an IO request from the management computer 100 or the host computer 200.
  • the IO transmission / reception unit 1320 transmits data read from the disk drive 1500 to the management computer 100 or the host computer 200.
  • the processor 1310 performs various processes by executing a program stored in the memory 1330 or the shared memory 1200. Specifically, for example, the processor 1310 processes an IO request received by the IO transmission / reception unit 1320.
  • the memory 1330 stores programs executed by the processor 1310, information required by the processor 1310, and the like.
  • the shared memory 1200 stores a program executed by the processor 1310, information required by the processor 1310, and the like. Further, the shared memory 1200 stores a program executed by the disk control unit 1400, information required by the disk control unit 1400, and the like. Specifically, for example, the shared memory 1200 stores a virtual volume processing program 1220, an input / output processing program 1240, volume management information 1250, virtual logical volume management information 1270, and tiered storage pool management information 1290.
  • the virtual volume processing program 1220 is a program that executes processing for a virtual volume.
  • the copy processing program 1230 is a program that performs local copying.
  • the input / output processing program 1240 is a program for processing the IO request received by the IO transmission / reception unit 1320.
  • the volume management information 1250 is information for managing a logical volume provided by the storage apparatus 300.
  • the virtual logical volume management information 1270 is correspondence information between the virtual storage area of the virtual logical volume and the real volume allocation area (real storage area).
  • the tiered storage pool management information 1290 is information for managing logical volumes that can be allocated to virtual logical volumes. Various management information stored in the shared memory 1200 will be described in detail later.
  • the management terminal 1600 is a computer including a processor, a memory, and an interface (not shown).
  • the management terminal 1600 transmits information input from the system user (user) to the storage control device 1000 of the storage device 300.
  • FIG. 5 shows the operation of the storage apparatus 300 when the storage apparatus 300 provides two logical volumes of 20 GB and 10 GB to the host computer 200.
  • a logical volume is composed of either a real volume or a virtual volume.
  • a logical volume composed of a real volume is referred to as a real logical volume
  • a logical volume composed of a virtual volume is referred to as a virtual logical volume and will be described below.
  • Vol2 corresponds to a real logical volume
  • Vol1 corresponds to a virtual logical volume
  • a real volume is one or more logical storage areas formed from the storage areas of one or more disk drives 1500.
  • the storage apparatus 300 has a real volume having a plurality of different characteristics. Differences in characteristics include, for example, differences in storage elements such as semiconductor drives (eg SSD: Solid State Drive), magnetic drives (eg HDD: Hard Disk Drive), differences in interfaces such as FC, SAS, SATA, etc. This means a difference in a method for forming a storage area from a drive (such as a RAID level). Due to this difference in characteristics, the time required to read and write data and the possibility of recovery from a hardware failure will differ.
  • RAID stands for Redundant Array Of Inexpensive Disks.
  • the RAID level is a classification of reliability and performance of an actual volume.
  • the RAID level is classified according to the data recording method. Specifically, the RAID level is for dividing and copying the data written from the host computer 200 to distribute the data fragments to the plurality of disk drives 1500, and to retain and duplicate the data. Data such as parity necessary for generating data is generated and stored simultaneously with the data of the host computer 200, or the like.
  • the virtual logical volume is a virtual volume that stores only the data for the area updated in the virtual logical volume in the real volume.
  • a data element D3 is stored in one area of the virtual logical volume (Vol1) in response to a data IO request from the host computer 200.
  • the data element D3 is stored in the fragment (P3) of the storage area of the real volume assigned to the area (data element D3).
  • the “storage area fragment” assigned to the real volume by reading and writing to the virtual logical volume is hereinafter referred to as “page” and the data stored in the page (in other words, the page allocation destination Data stored in the virtual area) is called a “data element”.
  • the page P3 is provided from the real volume (Vol13). Further, in order to distinguish between the real volume for the real logical volume accessed from the host computer 200 and the real volume for the virtual logical volume, the real volume for the virtual logical volume is usually a special group in the storage apparatus 300. (Hereinafter referred to as “pool”) and managed. In the pool, one or more real volumes having different characteristics are registered together with the characteristic information.
  • the data elements on the page are moved between real volumes having different characteristics in the pool based on the real volume characteristic information.
  • processing will be described as hierarchical storage control.
  • page movement the process of moving data elements on a page between real volumes is simply called page movement.
  • the storage apparatus 300 manages the difference in response time for reading and writing data by the host computer 200 as characteristic information (high performance and medium performance in FIG. 5). If it is determined that the data access frequency from the host computer 200 to the page D2 has increased compared to the past, the storage apparatus 300 moves the page D2 from the low performance (Vol11) to the medium performance (Vol12) real volume. Let By performing the page migration as described above, the storage apparatus 300 can provide a logical volume with appropriate performance according to the frequency with which the host computer 200 accesses the data.
  • FIG. 6A is a conceptual diagram showing data reference processing to the storage apparatus 300 by the host computer 200.
  • FIG. 6B is a conceptual diagram showing how data referenced by the host computer 200 is arranged in the storage apparatus 300.
  • the host computer 200 stores the file organization information that defines the configuration of the reference target data in the OS or volume specific area (VTOC: Volume Table of Contents, etc.). Get from.
  • VTOC Volume Table of Contents, etc.
  • the host computer 200 starts data access based on the information obtained from the OS or VTOC.
  • the file organization includes index organization, sequential organization, partitioned organization, virtual memory access organization, direct organization, etc., and an appropriate organization is selected according to the data reference characteristics of the application.
  • the data reference characteristics of an application can be predicted to some extent by knowing the file organization.
  • FIG. 6A shows a case where the file organization is index organization as an example of the data reference characteristic.
  • data is divided into an index area and a data area.
  • the index area one or a plurality of arrangement addresses of pieces (records) of logically divided data are stored. Actual data fragments are stored in the data area.
  • the host computer 200 first refers to the index area and acquires the arrangement address of the target record. Next, the host computer 200 designates the acquired address and refers to the target record.
  • index area is always referred to from the host computer 200, and then an arbitrary target record is referred to. That is, in the case of index organization, the index area is particularly frequently referred to in the data. On the other hand, in the case of index organization, since a record necessary for an application is arbitrarily referred to in the data area, it is undefined which part (record) on the data area is frequently referred to.
  • the file organization of data is index organization, it is preferable that an index area that is frequently referenced can be referred to at high speed. Therefore, as shown in FIG. 6B, the data on the index area is assigned to the upper hierarchy storage so that page movement is not caused by subsequent hierarchy control.
  • the process of not moving a page by hierarchical control after this page movement is referred to as page lock and will be described below.
  • the reference frequency of data on the data area is based on the application operation and is difficult to specify statically, it is arranged according to the conventional hierarchical storage control process. That is, the performance of the data in the data area is optimized by moving the page based on the reference frequency after data placement.
  • the reference frequency for each data part that can be determined statically is specified from the data file organization. Then, data in a region having a high reference frequency is allocated to the upper hierarchical storage, and the data element is page-locked.
  • FIG. 7 is a table showing the contents of the running job management table 112 stored in the memory 110 of the management computer 100.
  • the in-execution job management table 112 is a table for managing the job being executed. As shown in FIG. 7, the job name column 11201, the data set name column 11202, the control area column 11203, the priority column 11204, and the start time. It consists of a column 11205.
  • the job name column 11201 stores the name of the job used when the OS running on the host computer 200 executes the application.
  • the data set name column 11202 stores the name of the data set used by the application activated by the job in the job name column 11201.
  • the control area column 11203 stores information related to the area on the logical volume that is subject to hierarchical control by the management computer 100. For example, the first cylinder, header, last cylinder, or header is stored.
  • the priority column 11204 stores information on priority when hierarchical control is targeted.
  • the start time column 11205 stores the time when the job was executed.
  • FIG. 8 is a chart showing the contents of the control target data management table 113 stored in the memory 110 of the management computer 100.
  • the control target data management table 113 is information related to data used by a job. As shown in FIG. 8, a data set name column 11301, a device ID column 11302, a storage address (storage ADR) column 11303, and a file organization column 11304, a file organization detail column 11305, and a past hierarchy pointer column 11306.
  • the data set name column 11301 stores data set names that are data used by applications that mainly operate on the host computer 200 and are logical units managed by the mainframe OS. In an open system, for example, a file name corresponds to a data set name.
  • the device ID column 11302 stores an identifier (for example, a device number) for uniquely identifying the logical volume in which the data set is arranged by the OS on the host computer 200.
  • the storage address (storage ADR) 11303 column stores the address of the storage device ID of the data set. Specifically, the address of the storage device ID column 1183 of the host configuration management table 118 described later is stored in the device ID column 11302.
  • the file organization column 11304 stores the name of the file organization set in the data set.
  • the file organization detail column 11305 stores information on the area that is subject to hierarchical control based on the file organization. For example, it is represented by a head cylinder, a header, a tail cylinder, and a header.
  • the past hierarchy pointer column 11306 stores a pointer for referring to a past hierarchy holding table 119 described later. As will be described later, the past tier holding table 119 is a table for managing information for restoring the tier storage assigned to the data set used by the job when the job was executed in the past.
  • FIG. 9 is a chart showing the contents of the user setting information management table 114 stored in the memory 110 of the management computer 100.
  • the user setting information management table 114 is information set in advance by the user of the computer system 10 regarding the data to be controlled. As shown in FIG. 9, the item priority column 11401, the item column 11402, the setting content column 11403 and a tiered storage priority column 11404.
  • the item priority field 11401 stores priorities of a plurality of items set by the user of the management computer 100 in the initial setting described later.
  • the item column 11402 stores items designated by the user. Examples of items include time, job name, job class, data set name, and user name.
  • the setting content 11403 field stores the content of the designated item 11402. For example, in the case of time, a time range such as T3 to T4 is designated.
  • the hierarchical storage priority 11404 column stores information on whether or not the data set corresponding to the item designated by the user has a high priority.
  • FIG. 10 is a chart showing the contents of the input / output frequency management table 115 stored in the memory 110 of the management computer 100.
  • the input / output frequency management table 115 is information regarding the reference characteristics of the application. As shown in FIG. 10, the file organization column 11501, the high frequency input / output 1 column 11502, the high frequency input / output 2 column 11503, and the acquisition method column 11504. Consists of
  • the high frequency input / output 1 column 11502 stores information on an area in which data is most frequently referenced in the file organization.
  • the high frequency input / output 2 column 11502 stores information on an area in which data is referred to frequently after the high frequency input / output 1 in the file organization.
  • the virtual memory access organization is a file organization used in a database that is an application that requires high input / output performance.
  • high input / output performance is required for the entire data set, and in particular, high input / output performance is required in the Index area. Therefore, the index is registered in the high frequency input / output 1 and the entire data set is registered in the high frequency input / output 2.
  • the acquisition method 11504 column stores information on the means (OS utility1) necessary for acquiring the area on the logical volume of the high-frequency input / output area.
  • FIG. 11 is a chart showing the contents of the hierarchical storage usage status management table 116 stored in the memory 110 of the management computer 100.
  • the tiered storage usage status management table 116 is information that holds information related to the usage status of the tiered storage.
  • the hierarchy number column 11601 stores a hierarchy storage number to be described later. For example, in the present embodiment, the smaller the value of the hierarchy number 11601, the higher the performance of the hierarchical storage.
  • the total capacity column 11602 stores information on the total capacity of the tiered storage corresponding to the tier number in the storage apparatus 300.
  • the free capacity column 11603 stores information on capacity that is not yet subject to hierarchical control in the hierarchical storage.
  • the page-locked capacity column 116 stores information on the area where the page lock control used in this embodiment is performed, and the high-priority column 11604 indicates the capacity of the tiered storage allocated to the job with high priority. And the capacity of the hierarchical storage allocated for the low priority job is stored in the low priority column 11605.
  • FIG. 12 is a chart showing the contents of the hierarchy table 117 stored in the memory 110 of the management computer 100.
  • the hierarchy table 117 includes a plurality of address maps, and the address map includes a virtual address column 11702 and a hierarchy number column 11703.
  • the virtual address column 11702 stores information indicating the virtual volume area.
  • the hierarchy number column 11703 stores a hierarchy storage number to be described later.
  • FIG. 13 is a chart showing the contents of the host configuration management table 118 stored in the memory 110 of the management computer 100.
  • the host configuration management table 118 is a table for managing the host computer 200 that uses the data of the application subject to hierarchical control, and as shown in FIG. 13, the host ID column 1181, the data set name column 1182, The storage device column ID 1183, the storage address (storage ADR) column 1184, the storage ID column 1185, and the volume ID column 1186 are configured.
  • the host ID 1181 column an identifier for identifying the host computer 200 is stored.
  • the host ID 1181 column stores a combination of TCP / IP Host Name and IP address.
  • the data set name column 1182 stores data set names, which are data used by applications mainly operating on the host computer 200, and are logical units managed by the mainframe OS. For example, in an open system, a file name corresponds to a data set.
  • the storage device ID column 1183 stores an identifier (for example, a device number) for uniquely identifying the logical volume in which the data set is arranged by the OS on the host computer 200.
  • the storage address 1184 column stores an address corresponding to the storage device ID 1183 column in which the corresponding data set is arranged.
  • the storage ID column 1185 stores an identifier for identifying the storage apparatus 300 managed by the management computer 100.
  • the volume ID column 1186 stores an identifier for identifying the logical volume assigned by the storage apparatus 300 identified by the storage ID column 1185.
  • FIG. 14 is a chart showing the contents of the past hierarchy holding table 119 stored in the memory 110 of the management computer 100.
  • the past tier holding table 119 is a table for managing in which volume the specified logical volume is arranged by tier storage control, and is composed of a data set name column 11901 and an address map as shown in FIG.
  • the address map further includes a virtual address column 11902 and a hierarchy number column 11903.
  • the data set name column 11901 stores the name of a data set which is data used by applications mainly operating on the host computer 200, and is a logical unit managed by the mainframe OS.
  • the virtual address column 11902 stores an identifier used by the storage apparatus 300 to identify a virtual volume.
  • the hierarchy number column 11903 stores a hierarchy storage number to be described later.
  • FIG. 15 is a chart showing the contents of the volume management information 1250 stored in the shared memory 1200 of the storage apparatus 300.
  • the volume management information 1250 is information for managing a logical volume. As shown in FIG. 15, the volume management information 1250 is a logical volume ID column 12501, volume status column 12502, capacity column 12503, real volume ID column 12506, and virtual flag column 12507. Consists of
  • the logical volume ID column 12501 stores an identifier for identifying a logical volume provided by the storage apparatus 300 that stores the volume management information 1250.
  • the volume status column 12502 stores information indicating the current status of the logical volume identified by the logical volume ID 12501.
  • the volume status 12502 stores at least one of information indicating normal, abnormal, or unimplemented. More specifically, for example, when the host computer 200 can normally access the logical volume identified by the logical volume ID, the volume status information column 12502 stores information indicating “normal”. When the host computer 200 cannot normally access the logical volume identified by the logical volume ID, the volume status information column 12502 stores information indicating “abnormal”.
  • volume status information column 12502 For example, information indicating “abnormal” is stored in the volume status information column 12502 when the disk drive 1500 fails or when a copy failure occurs.
  • the volume status information column 12502 stores information indicating “unmounted”.
  • the capacity column 12503 stores the capacity (storage capacity) of the logical volume identified by the logical volume ID.
  • the real volume ID column 12506 stores an identifier for identifying a real volume associated with the logical volume corresponding to the logical volume ID.
  • the virtual flag column 12507 stores information indicating whether the logical volume is composed of virtual volumes. When the virtual flag is 1, it means that the logical volume is a virtual logical volume. If the virtual flag is 0, it means that the logical volume is a real logical volume.
  • FIG. 16 is a chart showing the contents of the virtual logical volume management information 1270 stored in the storage apparatus 300.
  • the virtual logical volume management information 1270 is information for managing virtual logical volumes, and the number of virtual logical volume management information 1270 is the same as the number of virtual logical volumes held by the storage apparatus 300. That is, one virtual logical volume management information 1270 is created for one virtual logical volume.
  • the virtual logical volume management information 1270 includes a volume ID column 12701, a pool ID column 12702, and an address map (12703, 12704, 12705, 12706, 12707).
  • this storage apparatus 300 the storage apparatus 300 that stores the virtual logical volume management information 1270
  • this virtual logical volume corresponding to this virtual logical volume management information 1270 is referred to as “this virtual logical volume”.
  • the volume ID column 12701 stores the identifier of the real volume identified by the storage apparatus 300.
  • the pool ID column 12702 stores an identifier for identifying the tiered storage pool management information 1290 managed by the storage apparatus 300.
  • the pool ID stored in the pool ID column 12702 is used to specify a real volume group that provides a page to this virtual logical volume.
  • the address map includes a virtual address column 12703, a hierarchy number column 12704, a hierarchy address pointer column 12705, a reference flag column 12706, and a lock flag column 12707.
  • the virtual address column 12703 stores an address indicating a unit virtual area in the virtual logical volume.
  • the unit size of the virtual area is the same as the page size.
  • a virtual address representing an access destination virtual area in the virtual logical volume is also specified.
  • the tier number column 12704 stores a number indicating a specific tier storage in the tier storage pool management information 1290 indicated by the pool ID.
  • the tier address pointer column 12705 stores a pointer that points to one area of the tier storage address map of a specific tier in the tier storage pool management information 1290 indicated by the pool ID 12703. That is, the tier storage pool management information 1290 has several tiers, and each tier is associated with a tier storage address map. Further, the hierarchical storage address map provides a linear storage area, and the hierarchical number in the pool and the hierarchical number for each hierarchical number are determined by the hierarchical number in the hierarchical number column 12704 and the hierarchical address pointer in the hierarchical address pointer column 12705. One address of the provided hierarchical storage address map is designated.
  • the reference flag 12706 stores a flag indicating that writing or writing reference has been made to the area (page) indicated by the virtual address.
  • the lock flag column 12707 stores a flag indicating that the area (page) pointed to by the virtual address is under the above-described page lock control.
  • FIG. 17 is a chart showing the contents of the tiered storage pool management information 1290 stored in the shared memory 1200 of the storage apparatus 300.
  • the tiered storage pool management information 1290 is information for managing a pool, and the number of tiered storage pool management information 1290 is the same as the number of pools in this storage apparatus 300. That is, one tier storage pool management information 1290 is created for one pool.
  • the tiered storage pool management information 1290 is composed of a pool ID 12901 and tiered storage address map information (12902 to 12910).
  • this pool the pool corresponding to this hierarchical storage pool management information 1290 is referred to as “this pool”.
  • the pool ID 12901 is an identifier that uniquely indicates this pool.
  • the tier storage address map information is information for managing one or more real volumes assigned to one or more tiers existing in this pool.
  • Hierarchical storage address map information exists for the number of hierarchies registered in this pool, and is information that enables a storage area of each hierarchy to be referred to by a linear address.
  • the hierarchical storage address map information includes a hierarchical number column 12902, a total real volume number column 12903, a total capacity information column 12904, a free total capacity information column 12905, an address column 12906, an allocation information column 12907, an access frequency column 12910, a volume ID column 12908, and It consists of a real address field 12909.
  • this real volume the real volume corresponding to this hierarchical storage address map information is referred to as “this real volume”.
  • the hierarchy number column 12902 a number representing the hierarchy of the hierarchy storage is stored.
  • the total number of real volumes column 12903 stores the number of real volumes registered in the tier indicated by this tier number.
  • the total capacity information column 12904 stores the total capacity of the real volume registered in the tier indicated by this tier number.
  • the total available capacity column 12905 stores the total capacity of the free area to which no page is allocated in the real volume registered in the tier indicated by this tier number.
  • the address field 12906 stores an address in a linear address space provided by the hierarchical storage address map.
  • the allocation information column 12907 stores information indicating whether the area corresponding to the address 12906 has been allocated or unallocated (that is, cannot be allocated or can be allocated), or page lock control is being performed.
  • the access frequency column 12910 stores information (access frequency) of how many times the area corresponding to the address 12906 has been referenced after the area allocation.
  • the volume ID column 12908 stores an identifier for uniquely identifying the real volume.
  • the real address column 12909 stores the address of the real volume indicated by the real volume ID.
  • FIG. 18 is a chart showing the contents of the basic storage information 1260 stored in the shared memory 1200 of the storage apparatus 300.
  • the basic storage information 1260 is a table for managing information on the storage apparatus 300, and includes an IP address column 12601 and a storage ID 12602.
  • the IP address column 12601 stores the IP address assigned to the storage apparatus 300.
  • the storage ID column 12602 stores an identifier for uniquely identifying the storage apparatus 300 indicated by the IP address.
  • FIG. 19 is a chart showing the contents of the storage information table 101 stored in the management computer 100.
  • the storage information table 101 includes a storage ID column 1011, a volume ID column 1012, and a virtual flag column 1013.
  • the storage ID column 1011 stores an identifier for uniquely identifying the storage apparatus 300 managed by the management computer 100.
  • the volume ID column 1012 stores an identifier for uniquely identifying the logical volume assigned by the storage apparatus 300 identified by the storage ID.
  • the virtual flag column 1013 stores a flag indicating that it is a virtual logical volume.
  • FIG. 20 is a chart showing the contents of the IO request 7300.
  • the IO request 7300 is issued by the management computer 100 or the host computer 200.
  • the IO request 7300 includes a destination 73001, instruction contents 73002, a serial number 73003, and an option 73004.
  • the destination 73001 is information related to the destination of the IO request 7300.
  • the identifier of the storage apparatus 300 that is the transmission destination of the IO request 7300 and the logical volume (for example, a virtual logical volume or real logical volume) in the storage apparatus 300 are used.
  • the instruction content 73002 is the content of the processing instructed by this IO request 7300.
  • the instruction content 73002 is a hierarchy control instruction or a data access instruction.
  • Examples of the tier control instruction include page tier movement, page lock start, page lock release, volume tier state acquisition, or pool state acquisition.
  • Examples of data access instructions include data writing or data reading.
  • the serial number 73003 indicates the order in which the IO request 7300 is issued.
  • the serial number 73003 is determined by the management computer 100 or the host computer 200 that is the issuing source of the IO request 7300.
  • the option 73004 includes the contents of data requested to be written by the IO request 7300, the address map information after the movement when the page is moved, and the like.
  • FIG. 21 is a flowchart showing a processing procedure of data access processing in the storage apparatus 300.
  • the input / output control unit 1300 of the storage apparatus 300 determines whether the destination 73001 of the IO request 7300 represents a virtual logical volume (S5000). Specifically, for example, the processor 1310 of the input / output control unit 1300 (hereinafter, described as the input / output control unit 1300) refers to the destination 73001 of the IO request 7300 and sets the volume ID included in the destination 73001. get. Next, the input / output control unit 1300 acquires information on the logical volume that matches the acquired volume ID from the volume management information 1250 shown in FIG.
  • the processor 1310 of the input / output control unit 1300 refers to the destination 73001 of the IO request 7300 and sets the volume ID included in the destination 73001. get.
  • the input / output control unit 1300 acquires information on the logical volume that matches the acquired volume ID from the volume management information 1250 shown in FIG.
  • step S5005 the input / output control unit 1300 executes step S5005 and subsequent steps.
  • step S5095 the virtual logical volume corresponding to the acquired volume ID is referred to as “this virtual logical volume” and will be described below.
  • step S5005 the input / output control unit 1300 refers to the virtual logical volume management information 1270 corresponding to the acquired volume ID from one or more virtual logical volume management information 1270 shown in FIG.
  • the specified virtual logical volume management information 1270 will be described as “this virtual logical volume management information 1270”.
  • the I / O controller 1300 corresponds to the volume address (hereinafter referred to as “this volume address” in the description of FIGS. 21 and 22) included in the destination 73001 of the IO request 7300 from the virtual logical volume management information 1270.
  • the virtual address 12703 to be specified is specified.
  • the input / output control unit 1300 refers to the virtual address entry corresponding to the identified virtual address 12703.
  • the virtual address entry is an information element (entry) including a virtual address 12703, a hierarchy number 12704, a hierarchy address pointer 12705, a reference flag 12706, and a lock flag 12707.
  • the virtual address entry specified by the input / output control unit 1300 is referred to as this virtual address entry.
  • the input / output control unit 1300 registers a flag indicating that there is a reference in the reference flag 12706 column of the virtual logical volume management information 1270 (S5007).
  • the input / output control unit 1300 determines whether or not the instruction content 73002 of the IO request 7300 is a hierarchy control instruction (S5009). If the instruction content 73002 of the IO request 7300 is a hierarchy control instruction, a hierarchy storage control process described later is executed (S5020), and the input / output process is terminated. If the instruction content 73002 of the IO request 7300 is not a hierarchy control instruction, the next step S5010 is executed.
  • the input / output control unit 1300 determines whether or not the instruction content 73002 of the IO request 7300 is a data reading reference (S5010). If the instruction content 73002 of the IO request 7300 is not a data read reference, the input / output control unit 1300 executes the process of step S5060.
  • step S5060 the input / output control unit 1300 determines whether there is an allocation page in this virtual address entry (S5060). Specifically, the input / output control unit 1300 refers to the hierarchical address pointer 12705 and determines whether or not the hierarchical address pointer 12705 represents “free” (no assigned page).
  • step S5060 If it is determined in step S5060 that the virtual address entry has an allocation page, the input / output control unit 1300 executes a process of allocating a page from the pool (S5070). The processing for assigning pages in step S5070 will be described in detail later.
  • step S5010 if the instruction content 73002 in the IO request 7300 is a data read reference, the input / output control unit 1300 determines whether there is an assigned page in this virtual address entry (S5040). Specifically, the input / output control unit 1300 refers to the hierarchical address pointer 12705 and determines whether or not the hierarchical address pointer 12705 represents “free” (no assigned page).
  • step S5040 If it is determined in step S5040 that the virtual address entry has an allocation page, the input / output control unit 1300 sets the data reference result to 0 in the IO request 7300 (that is, the data element representing 0 is read). Data element 0 is returned to the host computer 200 (S5050), and the data access process is terminated.
  • step 5095 After the process of allocating a page from the pool in step S5070, or when it is determined in step 5060 that the hierarchical address pointer 12705 does not represent “free” (when there is an allocated page), the input / output control unit 1300 implements step 5095.
  • step S5040 If it is determined in step S5040 that the hierarchical address pointer 12705 does not represent “free”, or if it is determined in step S5000 that the virtual flag 12507 of the volume management information 1250 does not represent a virtual logical volume, the input is performed.
  • the output control unit 1300 executes data access processing to the logical volume (virtual logical volume or real logical volume) (S5095).
  • the I / O control unit 1300 accesses the page specified from the hierarchical address pointer 12705 of this virtual address entry. To do.
  • the input / output control unit 1300 accesses the real area specified from the volume address in the destination 73001.
  • the processing performed by the input / output control unit 1300 may be performed by, for example, the processor 1310 that executes the input / output processing program 1240.
  • the processor 1310 may cause the virtual volume processing program 1220 to execute processing related to the virtual volume.
  • FIG. 22 is a flowchart showing a processing procedure of page allocation processing from the pool in the storage apparatus 300 executed in step S5070 of FIG.
  • the input / output control unit 1300 of the storage apparatus 300 refers to the tiered storage pool management information 1290 indicated by the pool ID 12702 in the virtual logical volume management information 1270 of this virtual logical volume.
  • the input / output control unit 1300 selects the tier having the lowest tier number (the highest tier set to have the highest performance and reliability) from one or more tier storage address map information (S5100). .
  • the input / output control unit 1300 determines whether or not any of the allocation information 12907 in the hierarchical storage address map information of this hierarchical number represents “free” (S5120).
  • any of the allocation information 12907 in the hierarchical storage address map information has “free” entry (the row of the hierarchical storage address map information including address 12906, allocation information 12907, volume ID 12908, and real address 12909). If the input / output control unit 1300 determines that the entry is found, the input / output control unit 1300 refers to the information of this entry, acquires the volume ID 12908 and the real address 12909, and specifies the page to be accessed. Further, the input / output control unit 1300 sets the allocation information 12907 of this entry to “allocated”, and further adds 1 to the value of the access frequency 12910 included in this information (S5150).
  • the input / output control unit 1300 updates the information in this hierarchical storage address map (S5160). Specifically, the input / output control unit 1300 reduces the page capacity necessary for allocation from the total free capacity of the total free capacity information 12905 (S5160).
  • the I / O controller 1300 changes the hierarchical address pointer 12705 of the virtual logical volume management information 1270 to this entry.
  • the tier address pointer 12705 is composed of the tier number and address of the tier storage pool management information 1290.
  • step 5120 determines that the number of hierarchical storage address map information is higher than the hierarchical number of the hierarchical storage address map information.
  • the presence / absence of hierarchical storage address map information of the next lower hierarchy is checked (S5130).
  • step S5130 when there is hierarchical storage address map information of one lower hierarchy, the input / output control unit 1300 displays hierarchical storage address map information of the hierarchy one level lower than the current (current hierarchical number +1). Is selected (S5110), and step S5120 is executed again.
  • step S5130 if there is no hierarchical storage address map information of one lower hierarchy, the input / output control unit 1300 returns an IO error to the host computer 200 that issued the IO request (S5140).
  • the input / output control unit 1300 may not only return the IO error to the host computer 200 having the IO error, but may notify the user of the IO error by using the management terminal 1600 or mail.
  • the processing performed by the input / output control unit 1300 may be performed by, for example, the processor 1310 that executes the input / output processing program 1240.
  • the processor 1310 may cause the virtual volume processing program 1220 to execute processing related to the virtual volume.
  • FIG. 23 is a flowchart showing the processing procedure of the tiered storage control process in the storage apparatus 300 executed in step S5020 of FIG.
  • the tiered storage control process is a process used in tiered storage control that is periodically executed or tiered storage control that is executed in accordance with an instruction from the management computer 100. In the following, the tiered storage control process in each pool is described.
  • the input / output control unit 1300 of the storage apparatus 300 refers to the allocation information 12907 in the tiered storage pool management information 1290 of the designated pool (S8000).
  • the input / output control unit 1300 refers sequentially from the upper entry of the lowest level hierarchical storage address map information.
  • the tier referenced by the input / output control unit 1300 as the current page replacement source is called the source tier
  • the entry of the tier storage address map information of the source tier of the tier storage pool management information 1290 is called the source entry.
  • a tier referred to as a page replacement destination is called a target tier
  • an entry of the tier address map information of the target tier of the tier storage pool management information 1290 is called a target entry.
  • the input / output control unit 1300 determines whether or not the current hierarchical control process is based on a hierarchical storage control instruction (S8005). If the instruction is based on a hierarchical storage control instruction, a hierarchical control request process (S8200) described later is executed. On the other hand, if it is not a tiered storage control instruction, the input / output control unit 1300 executes the processing after step S8010.
  • the input / output control unit 1300 compares the reference access frequency (reference value) defined for the source tier with the access frequency described in the allocation information 12907 of the corresponding entry (S8010).
  • a reference access frequency reference access frequency
  • step S8010 if this reference access frequency is exceeded, page movement is executed between real volumes of different tiers.
  • step S8010 when the access frequency 12910 of the source entry exceeds the reference value, the input / output control unit 1300 further determines whether there is an upper layer in the source layer (S8090). In step S8090, if there is a hierarchy one level higher than the source hierarchy, the input / output control unit 1300 selects the hierarchy as a target hierarchy (S8070) and compares it with the reference value of the hierarchy (S8010).
  • the initial value of the target hierarchy is set as the same value as the source hierarchy.
  • the input / output control unit 1300 repeats the above process and identifies a target hierarchy that does not exceed the reference value. If it is determined in step S8090 that there is no higher hierarchy in the source hierarchy, the input / output control unit 1300 executes the processes in and after step 8025 without moving the corresponding page (S8120). As described above, when there is no upper hierarchy in the source hierarchy, that is, when the input / output control unit 1300 determines that the source hierarchy is the highest hierarchy, in order to continue using the highest hierarchy, Continue processing without moving the page of the source entry.
  • the input / output control unit 1300 determines whether the source tier and the target tier are the same (S8013). If it is determined in step S8013 that the source tier and the target tier are the same, the input / output control unit 1300 indicates that the page indicated by the source entry satisfies the reference value of the currently stored tier storage, and the source tier It is determined that there is no need to move the page of the entry, and the processing after step 8025 is executed.
  • step S8013 if it is determined in step S8013 that the source tier and the target tier are not the same, the input / output control unit 1300 does not satisfy the reference value of the currently stored tier storage for the page indicated by the source entry. , It is determined that the page of the source entry needs to be moved, referring to the total free space capacity 12905 of the tier storage address map information of the target tier, and confirming whether there is a free real volume that can be moved to the target tier (S8015).
  • step S8015 If it is determined in step S8015 that the target tier is empty, the input / output control unit 1300 has an entry with a reference frequency lower than the reference frequency of the access frequency 12910 of the source entry in the target tier and the allocation information is a page. It is determined whether it is other than lock (S8100).
  • step S8100 there is no entry with a reference frequency lower than the access frequency 12910 of the source entry in the target hierarchy, or there is an entry with a reference frequency lower than the access frequency 12910 of the source entry in the target hierarchy, but the allocation information 12907 is a page If it is determined that there is only a lock, the input / output control unit 1300 selects a hierarchy one level lower than the target hierarchy as the target hierarchy (S8107), and determines whether the target hierarchy is the same as the source hierarchy. (S8013).
  • step S8100 if there is an entry with a reference frequency lower than the reference frequency of the access frequency 12910 of the source entry in the target tier, and the entry allocation information 12907 is other than page lock, the input / output control unit 1300 The page exchange between the source entry and the target entry is executed (S8110).
  • step S8015 if there is a free real volume that can be page-moved in the target tier, the I / O control unit 1300 performs page movement on the real volume in which the target tier has free space ( S8020).
  • step S8020 After executing step S8020, step S8110, or step S8120, the input / output control unit 1300 changes the source entry to the next entry (S8025).
  • the input / output control unit 1300 confirms whether the determination process has been executed for all source entries in the source tier in the pool (S8030). If there is an unprocessed entry, the process from step S8010 is repeated. Execute.
  • step S8040 a hierarchy one level higher than the source hierarchy is set as the source hierarchy (S8040). If the hierarchy set in step S8040 does not exceed the highest hierarchy, that is, if there is one hierarchy higher than the source hierarchy (No in S8050), the input / output control unit 1300 starts again from step S8000. Execute the process.
  • step S8040 when the hierarchy set in step S8040 is higher than the highest hierarchy, that is, when there is no hierarchy higher than the source hierarchy (Yes in S8050), the input / output control unit 1300 The reference frequency of the access frequency 12910 in the hierarchical storage address map information of all layers is reset to 0 (S8130), and the hierarchical storage control process is terminated.
  • FIG. 24 is a flowchart showing the processing procedure of the tiered storage control request process in the storage apparatus executed in step S8200 of FIG.
  • the tiered storage control request process is premised on the tiered storage control process executed in the storage apparatus 300 in accordance with an instruction from the management computer 100.
  • the tiered storage control process shown in FIG. 23 is a process that is periodically executed, whereas the tiered storage control request process is a process that is executed under an instruction from the management computer 100.
  • the hierarchical storage control request process will be described on the assumption that it is executed in units of pages. However, if a plurality of pages are included in the address map specified in the option area of the IO request, the number of pages is equal to the number of pages. The process is executed repeatedly. In the following, the tiered storage control request process in each pool is described.
  • the input / output control unit 1300 of the storage apparatus 300 determines whether or not the instruction content 73002 specified by the IO request 7300 is page lock start or page lock release (S8210). If it is determined in step S8210 that the instruction content 73002 is page lock start or release, determination processing for page lock processing (S8215) is executed.
  • step S8215 the input / output control unit 1300 further determines whether the instruction content 73002 of the IO request is a page lock start. If it is determined in step S8215 that the instruction content 72002 is page lock start, step S8235 is executed. On the other hand, if it is determined in step S8215 that the instruction content 72002 is not page lock but page release, step S8245 is executed.
  • step S8235 the input / output control unit 1300 page-locks the page specified as the IO request destination 73001. Specifically, the input / output control unit 1300 sets the page lock flag of the corresponding entry of the virtual logical volume management information 1270 pointed to by the address of the virtual logical volume designated as the IO request destination 73001 to Yes. Further, the I / O controller 1300 page-locks the allocation information 12907 in the corresponding address of the tiered storage pool management information 1290 from the tier address pointer of the corresponding entry in the virtual logical volume management information 1270. Thereafter, the hierarchical storage control request process is terminated, and the process returns to the caller process.
  • step S8245 the input / output control unit 1300 releases the page designated as the IO request destination 73001. Specifically, the input / output control unit 1300 sets the page lock flag of the corresponding entry of the virtual logical volume management information 1270 pointed to by the address of the virtual logical volume designated as the IO request destination 73001 to No. Further, the I / O controller 1300 releases the page lock of the in-address allocation information 12907 of the tiered storage pool management information 1290 from the tier address pointer of the corresponding entry in the virtual logical volume management information 1270. Thereafter, the hierarchical storage control request process is terminated, and the process returns to the caller process.
  • step S8210 if the instruction content 73002 is neither the page lock start nor the release, the input / output control unit 1300 indicates that the IO request instruction content 73002 is a page move and is specified by the IO request. It is determined whether the hierarchy specified by the I / O request is lower than the hierarchy storage hierarchy where the page is currently arranged (S8220). In step S8220, the input / output control unit 1300 refers to the entry of the virtual logical volume management information 1270 corresponding to the address specified in the IO request in order to obtain the hierarchical storage in which the page specified in the IO request is arranged. Then, the hierarchical number 12704 of the entry is referred to. If it is determined in step S8220 that the page is to be moved to a lower hierarchical storage than the current hierarchical storage, the input / output control unit 1300 executes the process of step S8240.
  • step S8240 the input / output control unit 1300 determines whether there is a free real volume in the tiered storage where the page specified in the IO request is arranged (S8240). Specifically, the input / output control unit 1300 refers to the total free capacity 12905 of the hierarchical storage pool management information 1290 and acquires the total free capacity of the hierarchical storage in which the page specified in the IO request is arranged. Thereby, the input / output control unit 1300 determines whether or not a new page can be arranged in the corresponding hierarchical storage from the obtained free capacity.
  • step S8240 If it is determined in step S8240 that a new page can be arranged in the corresponding hierarchical storage, the input / output control unit 1300 changes the page specified by the IO request from the current hierarchical storage to the specified hierarchical storage. Move (S8295).
  • the input / output control unit 1300 replaces the page specified in the IO request with one page in the destination hierarchical storage.
  • the page selected from the hierarchical storage that is the destination is the page with the highest access frequency in the corresponding hierarchical storage. This is because the hierarchical storage that is moved by page replacement is higher than the currently stored hierarchical storage, and therefore has an aim of effectively utilizing the high performance of the higher hierarchical storage that is the destination.
  • the input / output control unit 1300 refers to the access frequency 12910 in the corresponding entry of the migration destination hierarchical storage address map information designated by the IO request 7300 of the hierarchical storage pool management information 1290, and the frequency is the highest. A thing is selected (S8250).
  • the input / output control unit 1300 replaces the page specified in the IO request 7300 with the destination page selected in step 8250 (S8260). After completion of the replacement, the input / output control unit returns to the caller process.
  • step 8220 determines whether the page is moved to a lower hierarchical storage than the current hierarchical storage. If it is determined in step 8220 that the page is not moved to a lower hierarchical storage than the current hierarchical storage, the input / output control unit 1300 executes step S8230.
  • step S 8230 the input / output control unit 1300 specifies that the instruction content 73002 of the IO request is a page move, and the page specified by the IO request is specified by the IO request rather than the tier of the hierarchical storage in which the page is currently arranged. It is determined whether or not the hierarchy is higher (S8230). Also in the determination in step S 8230, it is determined whether or not the page specified by the IO request 7300 is moved to the upper tier storage in the same procedure as the determination performed in step S 8220.
  • step S8230 If it is determined in step S8230 that the page is to be moved to a hierarchical storage higher than the current hierarchical storage, the input / output control unit 1300 executes step S8270.
  • step S8270 the input / output control unit 1300 acquires the free space capacity of the tiered storage where the page specified in the IO request is arranged in the same procedure as in step S8240, and the corresponding free space capacity is obtained. It is determined whether a new page can be arranged in the hierarchical storage.
  • step S8270 If it is determined in step S8270 that a new page can be arranged in the corresponding hierarchical storage, the input / output control unit 1300 determines the page specified by the IO request from the current hierarchical storage. Move to memory (S8295).
  • step S8270 determines whether a new page cannot be arranged in the corresponding hierarchical storage. If it is determined in step S8270 that a new page cannot be arranged in the corresponding hierarchical storage, the input / output control unit 1300 stores the page specified in the IO request and the one page of the destination hierarchical storage. Perform a swap.
  • step S8290 which will be described later, the page selected from the tier storage that is the destination is the page with the lowest access frequency in the tier storage. This is because the hierarchical storage to be moved by page replacement is lower than the currently arranged hierarchical storage, so that it is possible to sufficiently utilize the hierarchical storage even with low performance of the lower hierarchical storage at the destination. is doing.
  • the input / output control unit 1300 refers to the access frequency 12910 in the corresponding entry of the tier storage address map information of the migration destination specified by the IO request 7300 of the tier storage pool management information 1290, and the frequency is the smallest. A thing is selected (S8280).
  • the input / output control unit 1300 replaces the page specified by the IO request 7300 with the destination page selected in step 8280 (S8290). After completion of the replacement, the input / output control unit returns to the caller process.
  • step 8230 if it is determined in step 8230 that the page is not moved to a higher hierarchical storage than the current hierarchical storage, the input / output control unit 1300 indicates that the IO request hierarchical control instruction is the volume hierarchical state acquisition. If there is, step S8232 is executed.
  • the input / output control unit 1300 acquires the tier arrangement of the virtual logical volume designated by the IO request and returns it to the request source of the IO request 7300. Specifically, the input / output control unit 1300 refers to the address map of the virtual logical volume management information 1270 pointed to by the logical volume specified by the destination of the IO request 7300, and sets the virtual address 12703 and the hierarchy number 12704 in the address map. The information is extracted from the address map, and the information is returned to the request source of the IO request 7300 (step 8232). Thereafter, the input / output control unit 1300 returns to the caller process.
  • FIG. 25 is a conceptual diagram illustrating the concept of applications and jobs that are activated on the host computer 200.
  • the host computer 200 can execute one or a plurality of applications simultaneously.
  • an application the name of an application to be executed, the name of a data set used by the application, etc. are defined in a script program called a job, and the job is executed (SUBMIT).
  • a job can specify not only an application name and a data set name, but also a job name, a job class as a job type, a job user, and the like.
  • the host computer 200 starts the job according to the instruction of the OS 212.
  • the OS 212 includes three processing units for processing a job by the host computer 200.
  • the OS 212 includes a job reception, a job spool, and an application execution unit.
  • the job reception unit in the OS receives the job, and instructs the host computer 200 to perform processing for acquiring various information defined by the job.
  • a job instructed to be executed by the user is referred to as this job.
  • the host computer 200 acquires the information defined by the job, and then executes the job spool process for this job.
  • the job spool unit suspends execution of this job until the application execution unit can process the job.
  • the host computer 200 switches the processing related to the job from the job spool unit to the application execution unit.
  • the application execution unit an application defined in the job is executed. Only when the application is executed, the application program data defined in the job is referred to.
  • the host computer 200 executes the job termination process and terminates the job.
  • the management computer 100 performs two stages of operations, a preparation stage and an operation stage. Basically, when issuing an instruction to the storage apparatus 300, the management computer 100 issues an instruction to the agent program 213 existing in the memory 210 of the host computer 200, and the host computer 200 follows the instruction of the agent program 213 in accordance with the instruction of the agent program 213. An IO request is issued to 300. In addition, the host computer 200 can detect a change in the state of the OS or application on the host computer 200, and when detected, notifies the management computer 100 of the change via the communication network 550.
  • the management computer 100 notified of the detection result from the host computer 200 issues an instruction to the host computer 200 or the storage apparatus 300 according to the notification contents, and controls the device.
  • the reason for separating the host computer 200 and the management computer 100 is to centrally manage a plurality of host computers 200 with one management computer.
  • FIG. 26 is a flowchart showing details of the operation in the environment construction stage in the management computer 100.
  • the operation in the preparation stage is realized by the processor 120 of the management computer 100 executing processing based on the storage management program 111.
  • the management computer 100 is simply used as the subject, but all operations are executed by the processor 120 of the management computer 100.
  • the management computer 100 detects the host computer 200 existing on the computer system 10 (S4010).
  • information for detecting the host computer 200 for example, input of an IP address by a user of the management computer 100 is used.
  • an IP address range such as 192.168.1.1 to 192.168.1.50 may be input, or a specific IP address may be input.
  • the management computer 100 creates an information acquisition request for the agent program 213 of the host computer 200 and issues it to the input IP address.
  • the host computer 200 receives the information acquisition request, it returns to the management computer 100 that the host computer 200 exists based on the instruction of the agent program 213 on the host computer 200.
  • the management computer 100 In response to a reply from the host computer 200, the management computer 100 creates a host configuration management table 118 based on information included in the reply. However, at this point, the management computer 100 sets information for identifying the host computer, such as the IP address and host ID of the host computer 200 that has responded only to the host ID 1181 of the host configuration management table 118.
  • the management computer 100 detects the storage device 300 existing on the computer system 10 (S4020).
  • the management computer 100 creates an information acquisition request for the storage apparatus 300 based on the IP address input by the user of the management computer 100.
  • the storage apparatus 300 when the processor 1310 of the storage control apparatus 1000 receives this information acquisition request, the volume management information 1250 and the storage basic information 1260 stored in the shared memory 1200 are referred to, and the information is collected together as a management computer.
  • Reply to 100 In response to a reply from the storage apparatus 300, the management computer 100 creates the storage information table 101 based on the information included in this reply.
  • application data settings include time specification for all applications to be executed at a specified time, job specification for specifying a job to start an application, job specification There are a job class specification for specifying a type, a user name specification for all jobs executed by a specific user, and the like.
  • data to be hierarchically stored may be specified indirectly. These data can be specified by specifying a plurality of items.
  • the management computer 100 stores the item specified by the user in the user setting information management table 114.
  • the user of the management computer 100 can set the above via an input device or the like while viewing the input screen of the management computer 100.
  • time designation, job name, and job class can be designated.
  • all data used by jobs executed at times T1 to T2 are hierarchically assigned with low priority.
  • the data set with low priority and arranged in the upper tier storage may be subject to page replacement even if the page is locked.
  • a page replacement process is executed when it is necessary to create a free area in the upper tier storage for the hierarchical control of the subsequent data set with high priority.
  • Such a page replacement process is referred to as a pre-emption process and will be described below. The preemption process will be described in detail later.
  • the management computer 100 detects data (S4040).
  • the management computer 100 detects data based on the volume information registered in the OS 212 of the host computer 200 and the storage information table 101 created in step 4020. Specifically, a volume that is a virtual logical volume among the volumes recognized by the host computer 200 is selected.
  • the data detection process is executed when the management computer 100 creates an information acquisition request for the agent program 213 of the host computer 200, issues the request to the host computer 200, and instructs it.
  • the configuration information of the host computer 200 is returned to the management computer 100 based on the instruction of the agent program 213 on the host computer 200.
  • This configuration information includes information on the name of the data, the logical volume in which the data is stored, and the storage address of the logical volume (the storage address is, for example, the cylinder of the logical volume, the number of headers, or the SCSI LBA). Is included.
  • the management computer 100 registers the logical volume detected from the configuration information in the volume information (1182, 1183, 1184, 1185, 1186) of the host configuration management table 118. Further, the management computer 100 narrows down only the virtual logical volumes subject to the tiered storage control process, so that only the volume information in which the virtual flag 1013 in the storage information table 101 is a virtual logical volume is stored in the control target data management table 113.
  • the data set name 11301, device ID 11302, and storage ADR 11303 are registered.
  • the management computer 100 refers to the input / output frequency management table 115.
  • the management computer 100 acquires information necessary for detecting the file organization and frequently accessed areas related to the data arranged in the virtual logical volume registered in the control target data management table 113. be able to.
  • the management computer 100 uses the means specified in the acquisition method 11504 of the input / output frequency management table 115 to acquire the file organization and file organization details of the data registered in the control target data management table 113.
  • the execution result of the tool for specifying the file organization of the OS 212 is registered in the file organization, and the details of the file organization are included in the data acquired by the means described in the information acquisition method 11504 of the input / output frequency management table 115. Information on areas that are frequently input and output is registered.
  • the tiered storage allocation operation by the management computer 100 is started when the tiered storage control target job is executed by the host computer 200.
  • the host computer 200 monitors the processing of the OS 212 of the host computer 200 in accordance with the instruction of the agent program 213.
  • the management computer 100 determines whether a job has been executed on the host computer 200 (S3010). As described above, the host computer 200 detects that a job has been submitted via the OS 212. The host computer 200 detects that the job has been executed via the OS 212 and notifies the management computer 100 that the job has been executed. Here, a job executed by the host computer 200 is referred to as an execution job.
  • the management computer 100 instructs the host computer 200 to collect information related to the execution job (S3020).
  • the host computer 200 that has received the information collection instruction regarding the execution job makes an inquiry to the OS 213, collects information regarding the execution job, and notifies the management computer 100 of the information.
  • Examples of the information regarding the execution job collected in step S3020 include a job name, a data set name, a user name, and a job class.
  • the management computer 100 determines whether the job information collected in step S3020 is a tiered storage control target job (S3030).
  • the management computer 100 refers to the user setting information management table 114 and compares the item set by the user with the execution job to execute the determination in step S3030. If it is determined in step S3030 that the execution job is not a hierarchical storage control target, the process ends.
  • the management computer 100 determines the hierarchical storage priority of the item corresponding to the execution job information obtained in step S3020 and the user setting information management table 114. Based on 11404, the executing job management table 112 is created (S3040).
  • the management computer 100 determines whether the execution job has been executed on the host computer 200 in the past (S3050).
  • the control target data management table 113 has a data set name having the same name as the data set name 11202 of the created ongoing job management table 112, and the control target data management table 113 associated with the data set name is stored.
  • the management computer 100 determines that the execution job has been executed in the past. If it is determined in step 3050 that an execution job has been executed in the past, the management computer 100 executes a past execution job allocation tier storage process (S3200), which will be described later, and ends the process.
  • S3200 past execution job allocation tier storage process
  • step S3050 if it is determined in step S3050 that the execution job has not been executed in the past, a fine-grained hierarchical storage allocation process (S3500) described later is executed, and the process ends.
  • S3500 fine-grained hierarchical storage allocation process
  • a job to be executed by the host computer 200 is selected as a target for hierarchical storage control, and when the job to be executed is executed in the past, A hierarchical storage control process is executed based on the past job execution results. Even when no job has been executed in the past, hierarchical storage can be controlled in fine units based on the characteristics of file organization.
  • FIG. 29 is a flowchart showing a processing procedure for fine-grained hierarchical storage allocation processing by the management computer 100.
  • the management computer 100 acquires the tiered storage status of the storage apparatus 300 (S3501). Specifically, the management computer 100 instructs the host computer 200 to inquire about the state of the tier storage capacity in the storage apparatus 300 in order to grasp the tier storage state of the storage apparatus 300. In response to an instruction from the management computer 100, the host computer 200 creates an IO request 7300 that specifies pool status acquisition as the instruction content and issues it to the storage apparatus 300.
  • the storage apparatus 300 that has received the IO request refers to the tiered storage pool management information 1290 having the pool ID specified in the IO request, and sends the tiered storage number, its total capacity information, free capacity information, etc. to the host computer 200. return.
  • the host computer 200 transfers the acquired information to the management computer 100.
  • the management computer 100 updates the corresponding area (total capacity 11602, free capacity 11603) in the tiered storage usage status management table 116.
  • the management computer 100 executes the hierarchical storage control process based on the file organization of the execution job detected by the hierarchical storage allocation operation. Specifically, the management computer 100 acquires the file organization of the execution job from the control target data management table 113, and determines whether the file organization is virtual storage access (VSAM) (S3510).
  • VSAM virtual storage access
  • step S3510 when the obtained file organization is virtual storage access (VSAM), the management computer 100 performs processing for hierarchical storage control for virtual storage access file organization (steps 3511, 3512, 3513, 3514). ).
  • the management computer 100 allocates the entire data set to the upper hierarchy (S3512). Specifically, the management computer 100 registers the entire data set and its hierarchy number in the hierarchy table 117, and instructs the host computer 200 to move the page hierarchy and start page lock based on the hierarchy table 117.
  • the host computer 200 that has received the above instruction creates an IO request in which the contents of the page hierarchy are registered as the instruction contents and the contents of the hierarchy table 117 as options, and instructs the storage apparatus 300.
  • the host computer 200 creates an I / O request in which the page lock start is registered as the instruction content and the contents of the tier table 117 are registered as an option, and the storage apparatus 300 is instructed.
  • the storage apparatus 300 receives the two IO requests and performs page movement and page lock processing for the storage area specified in the IO request.
  • the management computer 100 changes the file organization details 11305 of the control target data management table 113 to a data set.
  • the management computer 100 updates the values of the page-locked capacities 11604 and 11605 in the tiered storage usage status management table 116.
  • whether to update the high priority or the low priority is performed based on the contents set in the priority 11204 of the executing job management table. That is, when the priority 11204 of the executing job management table 112 is high priority, the information of the high priority 11604 in the tiered storage usage status management table 116 is updated.
  • the management computer 100 determines whether the upper hierarchy has a capacity for Index (S3513). Specifically, the management computer 100 refers to the free capacity 11603 of the hierarchical storage usage status management table 116 to determine whether the index area with the highest reference frequency in the data set used by the execution job can be arranged in the upper hierarchical storage. To do.
  • step S3513 If it is determined in step S3513 that the Index area can be arranged in the upper hierarchy, the storage apparatus 300 is instructed to perform hierarchical storage control for the Index area as in the process described in Step S3512. After completing the hierarchical storage control of the storage apparatus 300, the management computer 100 changes the file organization details 11305 of the control target data management table 113 to Index. Next, the management computer 100 updates the value of the page-locked capacity 11604, 11605 of the tiered storage usage status management table 116 (S3514).
  • step S3513 If it is determined in step S3513 that the Index area cannot be arranged in the upper hierarchy, the management computer 100 executes a pre-processing process described later (S3600).
  • the management computer 100 executes processing for hierarchical storage control for division file organization (steps S3521 and S3522).
  • step S3521 the management computer 100 determines whether the capacity of the upper tier storage is equal to the head area of the data set (S3521). Specifically, the management computer 100 acquires the information on the division in the input / output frequency management table 115 and acquires the input / output frequency information related to the file organization of the execution job usage data. The management computer 100 acquires information from the input / output frequency management table 115, thereby grasping that the area with the highest input / output frequency is the directory area. Therefore, the management computer 100 refers to the free capacity 11603 of the tiered storage usage status management table 116 to determine whether the directory area can be arranged in the upper tier storage among the data sets used by the execution job. In step S3521, in order to obtain the maximum input / output performance from the storage apparatus 300, it is determined whether or not the directory area can be arranged in the upper tier storage in the data set used by the execution job.
  • the management computer 100 issues an instruction to allocate the Directory area to the upper hierarchy (S3522). Specifically, the management computer 100 registers the directory area and its hierarchy number in the hierarchy table 117, and instructs the host computer 200 to move the page hierarchy and start page lock based on the hierarchy table 117.
  • the host computer 200 that has received the above instruction creates an IO request in which the contents of the page hierarchy are registered as the instruction contents and the contents of the hierarchy table 117 as options, and instructs the storage apparatus 300.
  • the host computer 200 creates an I / O request in which the page lock start is registered as the instruction content and the contents of the tier table 117 are registered as an option, and the storage apparatus 300 is instructed.
  • the storage apparatus 300 receives the two IO requests and performs page movement and page lock processing for the storage area specified in the IO request.
  • the management computer 100 changes the file organization details 11305 of the control target data management table 113 to a data set.
  • the management computer 100 updates the value of the page-locked capacity 11604, 11605 of the tiered storage usage status management table 116.
  • whether to update the high priority or the low priority is performed based on the contents set in the priority 11204 of the executing job management table. That is, when the priority 11204 of the executing job management table 112 is high priority, the information of the high priority 11604 in the tiered storage usage status management table 116 is updated.
  • step S3521 If it is determined in step S3521 that the allocation of the directory area to the upper hierarchy is impossible, the management computer 100 executes a pre-processing process described later (step 3600).
  • step S3520 determines whether the file organization of the execution job is a division and it is determined that the execution job is sequential. If it is determined in step S3520 that the file organization of the execution job is not a division and it is determined that the execution job is sequential, the management computer 100 performs processing for hierarchical storage control for sequential file organization (step S3531). , S3532) is executed.
  • step S3531 the management computer 100 determines whether the upper tier storage capacity is equal to the VTOC area. Specifically, the management computer 100 acquires the information on the classification in the input / output frequency management table 115 and acquires the input / output frequency information related to the file organization of the usage data of the execution job. By acquiring information from the input / output frequency management table 115, the management computer 100 recognizes that the area with the highest input / output frequency is the VTOC area. Therefore, the management computer 100 refers to the free capacity 11603 of the hierarchical storage usage status management table 116 to determine whether the VTOC area can be arranged in the upper hierarchical storage in the data set used by the execution job. In step S3531, in order to obtain the maximum input / output performance from the storage apparatus 300, it is determined whether the VTOC area can be arranged in the upper tier storage.
  • the management computer 100 issues an instruction to allocate the VTOC area to the upper hierarchy (S3532). Specifically, the management computer 100 registers the VTOC area and its hierarchy number in the hierarchy table 117, and instructs the host computer 200 to move the page hierarchy and start page lock based on the hierarchy table 117. When the above instruction is received, the host computer 200 creates an IO request in which the contents of the page hierarchy are registered as the instruction contents and the contents of the hierarchy table 117 are registered as options, and the storage apparatus 300 is instructed.
  • the host computer 200 creates an I / O request in which the page lock start is registered as the instruction content and the contents of the tier table 117 are registered as an option, and the storage apparatus 300 is instructed.
  • the storage apparatus 300 receives the two IO requests and performs page movement and page lock processing for the storage area specified in the IO request.
  • the management computer 100 changes the file organization details 11305 of the control target data management table 113 to a data set.
  • the management computer 100 updates the value of the page-locked capacity 11604, 11605 of the tiered storage usage status management table 116.
  • whether to update the high priority or the low priority is performed based on the contents set in the priority 11204 of the executing job management table. That is, when the priority 11204 of the executing job management table 112 is high priority, the information of the high priority 11604 in the tiered storage usage status management table 116 is updated.
  • step S3530 if it is determined in step S3530 that the file organization of the execution job is not sequential but other file organization, the management computer 100 determines that the file organization is VSAM or based on the input / output frequency management table 115. The same processing as that in the case of the classification is executed.
  • FIG. 30 is a flowchart showing the processing procedure of the past data set allocation tier storage reproduction processing by the management computer 100.
  • the data allocation to the tiered storage by the tiered storage control process is performed. It is a process to reproduce.
  • the past data set allocation hierarchical storage reproduction process is repeated each time the same job is executed. With this processing, it is possible to always provide high input / output performance in the execution of a job of the host computer 200 that is supposed to be repeatedly executed.
  • the management computer 100 acquires the tiered storage status of the storage apparatus 300 (S3210). Specifically, the management computer 100 instructs the host computer 200 to inquire about the state of the tier storage capacity in the storage device 300 in order to grasp the state of the tier storage of the storage device 300. In response to an instruction from the management computer 100, the host computer 200 creates an IO request 7300 that specifies pool status acquisition as the instruction content and issues it to the storage apparatus 300.
  • the storage apparatus 300 that has received the IO request refers to the tiered storage pool management information 1290 having the pool ID specified in the IO request, and sends the tiered storage number, its total capacity information, free capacity information, etc. to the host computer 200. return.
  • the host computer 200 transfers the acquired information to the management computer 100.
  • the management computer 100 receives information from the host computer 200, the management computer 100 updates the corresponding area (total capacity 11602, free capacity 11603) of the tiered storage usage status management table 116.
  • the management computer 100 determines whether there is enough free space for each hierarchical storage to reproduce the past data set (S3220). Specifically, the management computer 100 refers to the past layer holding table 119 from the past layer pointer 11306 in the row in the table whose name matches the data set used by the execution job in the control target data management table 113. For the execution job usage data, the information of the hierarchical storage allocated in the past execution of the same job is acquired. The management computer 100 calculates the necessary free space for each layer number by counting the number of rows in the address map with the same layer number in the past layer holding table 119. Then, the management computer 100 refers to the free capacity 11603 of the tier storage usage status management table 116 to determine whether the free capacity for each calculated tier number (tier storage) exists in the corresponding pool of the storage apparatus 300. .
  • the hierarchical storage assigned to the data set used by the past execution job is reproduced (S3230).
  • the management computer 100 duplicates the contents of the past tier holding table 119 to the tier table 117, creates an IO request 7300, and issues an instruction to the storage apparatus 300 via the host computer 200.
  • the management computer 100 creates two types of IO requests 7300 and issues them sequentially to the storage apparatus 300.
  • the first IO request 7300 is obtained by registering the page hierarchy movement in the instruction contents and the contents of the hierarchy table 117 in the options.
  • the second IO request 7300 is obtained by registering a page lock start as an instruction content and a hierarchy table 117 as an option.
  • step S3220 If it is determined in step S3220 that there is no free space for the past data set reproduction in the tiered storage, the management computer 100 executes the fine-grained tiered storage allocation process described above (S3500) and sets the process as the caller. return.
  • FIG. 31 is a flowchart showing a processing procedure of a pre-emption process by the management computer 100.
  • the preemption process when allocating application data to be controlled to tiered storage, if there is no vacancy in the assigned tiered storage, there may be data using lower tiered storage that has lower priority than the application data. For example, this is a process of replacing the area with the data to be controlled.
  • application data with a high priority can be arranged in a hierarchical storage with as high an input / output performance as possible, and as a result, processing of an application with a high priority can be preferentially processed with high performance.
  • the management computer 100 checks the current tiered storage allocation status (S3610). Specifically, the management computer 100 refers to the tier storage usage status management table 116 and acquires a low-priority page-locked capacity in the upper tier storage (for example, the value of the tier number 11601 is 1).
  • the management computer 100 determines whether or not it is possible to replace the data subject to hierarchical storage control with the data arranged in the lower hierarchical storage with lower priority (S3620). Specifically, the management computer 100 determines whether or not the capacity of the data subject to hierarchical storage control is smaller than the free capacity obtained in step S3610.
  • step S3620 If it is determined in step S3620 that the capacity of the data subject to tier storage control is smaller than or equal to the free capacity obtained in step S3610, the data is subject to higher tier storage having a lower priority than the data subject to tier storage control. The data to be arranged is replaced (S3640), and the process is returned to the caller.
  • step S3620 determines that the capacity of the data subject to tiered storage control is larger than the free capacity obtained in step S3610. Then, an alert is notified to the user of the management computer 100 (step S3630), and the process is returned to the caller.
  • FIG. 32 is a flowchart showing a processing procedure of hierarchical storage priority change processing by the management computer 100.
  • an application is executed in accordance with an instruction from the application processing unit of the OS 212.
  • the priority of the application may be changed and the processing may be completed early.
  • the hierarchical storage priority changing process is a process for dealing with hierarchical storage control when the priority of an application is changed. For example, for an application with a higher priority, it is possible to cope with a change in the priority of an application by moving data used by the application that is arranged in a lower hierarchical storage to an upper hierarchical storage. be able to.
  • the management computer 100 determines whether or not the priority of the job performing the hierarchical storage control process has changed (S6010).
  • the host computer 200 notifies the management computer 100 of information (job name, etc.) regarding the application whose priority has been changed in accordance with an instruction from the agent program.
  • a job whose priority has been changed will be referred to as a corresponding job.
  • step S6010 If it is determined in step S6010 that the priority of the job has been changed by notification from the host computer 200, the management computer 100 acquires the status of the hierarchical storage (S6025). Specifically, when the management computer 100 is notified from the host computer 200 that the priority has been changed, the management computer 100 instructs the agent program 213 of the host computer 200 to investigate whether or not the job is input / output priority processing.
  • step S6010 if it is determined in step S6010 that the process is not related to input / output priority, the process ends.
  • step S6030 the management computer 100 instructs the host computer 200 to inquire about the state of the tiered storage capacity in the storage apparatus 300.
  • the host computer 200 creates an IO request 7300 that specifies pool status acquisition as the instruction content and issues it to the storage apparatus 300.
  • the storage apparatus 300 refers to the tiered storage pool management information 1290 having the pool ID specified in the IO request of the storage apparatus 300, and the tiered storage number, its total capacity information, free total capacity information, etc. Is returned to the host computer 200.
  • the host computer 200 transfers the obtained information to the management computer 100.
  • the management computer 100 receives the above information, it updates the corresponding area (total capacity 11602, free capacity 11603) in the tiered storage usage status management table 116.
  • the management computer 100 investigates in which tier storage of the storage device 300 the data used by the job is stored in the host computer 200. Specifically, the management computer 100 identifies the data used by the job by referring to the executing job management table 112. Further, the control target data management table 113 is referenced below the data set name obtained by referring to the job management table 112 being executed, and the volume of the storage apparatus 300 is specified with which data is allocated. . Then, the management computer 100 issues an IO request 7300 in which the instruction content is set to obtain the volume tier state to the storage apparatus 300 via the host computer 200, and in which tier storage of the storage apparatus 300 the data is arranged. To investigate the.
  • the storage apparatus 300 When the storage apparatus 300 receives the IO request, the storage apparatus 300 acquires the relationship between the address of the designated logical volume and the tier number by referring to the virtual logical volume management information 1270, and returns the information together with the response to the IO request. .
  • the management computer 100 sets information obtained from the response to the IO request in the tier table 117.
  • the management computer 100 determines whether there is free space in the upper hierarchy (S6040). Specifically, the management computer 100 refers to the hierarchy table 117 and calculates the capacity of data arranged in the middle hierarchy storage. Then, the management computer 100 confirms that the calculated capacity is smaller than the free capacity 11603 of the higher tier storage in the tier storage usage status management table 116 acquired in step S6025.
  • step S6040 If it is determined in step S6040 that the data arranged in the middle tier storage is smaller than or equal to the free capacity of the upper tier storage, the management computer 100 uses the data in the tier table 117 and the tier number 11703 is By rewriting the middle tier to the upper tier and issuing two types of IO requests 7300 to the storage device 300 via the host computer 200, the data arranged in the middle tier memory is moved to the upper tier memory. To do.
  • the instruction content of the first IO request is a page hierarchy movement
  • the instruction content of the second IO request is a page lock.
  • step S6040 When it is determined in step S6040 that the data arranged in the middle tier storage is larger than the free space in the upper tier storage, the management computer 100 executes the above-described pre-emption process 3600 (S3600).
  • the management computer 100 determines whether there is free space in the middle tier (S6060). Specifically, the management computer 100 refers to the hierarchy table 117 and calculates the capacity of data arranged in the lower hierarchy storage. Then, the management computer 100 confirms that the calculated capacity is smaller than the free capacity 11603 of the middle tier storage acquired in step S6025.
  • step S6060 If it is determined in step S6060 that the data arranged in the lower tier storage is smaller than or equal to the free space in the middle tier storage, the management computer 100 determines that the data stored in the tier table 117 is Rewrite the layer number 11703 which is the lower layer to the middle layer. Similarly to step 6050, by issuing two types of IO requests 7300 to the storage apparatus 300 via the host computer 200, the data arranged in the lower tier storage is moved to the middle tier storage.
  • step S6040 If it is determined in step S6040 that the data arranged in the lower tier storage is larger than the free space in the middle tier storage, the management computer 100 executes the pre-sampling process 3600 and ends the process. .
  • FIG. 33 is a flowchart showing the processing procedure of the tiered storage allocation cancellation processing by the management computer 100.
  • the tiered storage deallocation process when it is detected that the job executed on the host computer 200 is finished, the tier control process for the data used by the job is finished unless there is a subsequent job using the same data.
  • the management computer 100 periodically monitors the job execution status via the agent program 213 of the host computer 200 to determine whether the job being executed has ended (S9005).
  • step S9005 If it is determined in step S9005 that the job being executed has ended, information on the job to be ended is collected.
  • Information to be collected includes a job name, a job start time, and the like.
  • an end job detected by the management computer 100 is referred to as an end job.
  • the management computer 100 refers to the executing job management table 112 and determines whether the same job as the end job is subsequently executed (step S9010). Specifically, the management computer 100 refers to the running job management table 112 and confirms whether a job having the same job name as that of the end job exists in the table separately from the end job.
  • step S9010 If it is determined in step S9010 that the same job as the end job is present, the hierarchical storage control is not ended and the process is ended. Thereby, when the same job as the end job is executed in the subsequent job, the hierarchical storage allocated to the end job use data can be reused in the subsequent job.
  • the management computer 100 checks whether there is a data that refers to the same data set as the data set used by the end job in the succeeding job ( S9020). Specifically, the management computer 100 refers to the running job management table 112 and confirms whether there is a job that refers to the same data set as the data set used by the end job.
  • step S9020 If it is determined in step S9020 that there is a job that refers to the same data set as the end job, the hierarchical storage control is not ended and the process is ended. As a result, it is determined that the same data set as that of the end job is referred to in the subsequent job, and the hierarchical storage allocated to the end job use data can be reused in the subsequent job.
  • step S9020 if it is determined that there is no job that refers to the same data set as the end job, the management computer 100 determines whether the same job as the end job will be executed again in the near future. (S9030). Specifically, the management computer 100 checks whether the same job as the end job is registered in the job scheduler provided in the OS 212 of the host computer 200 or the like. When the same job as the end job is registered in the job scheduler, the management computer 100 further checks whether the job of the scheduler is executed at an interval close to the end time of the end job.
  • step S9030 If it is determined in step S9030 that the same job as the end job is executed at a close time interval, this processing is ended without ending the hierarchical storage control for the job executed by the scheduler.
  • step S9030 determines that the same job as the end job is not executed at a close time interval. If it is determined in step S9030 that the same job as the end job is not executed at a close time interval, the process of step S9040 is executed.
  • the management computer 100 acquires the current tiered storage allocation status and stores the allocation status. Specifically, the management computer 100 issues an IO request (instruction content is volume tier state acquisition) to the storage apparatus 300 via the host computer 200, and acquires the tier storage arrangement for the data used by the end job. .
  • the storage apparatus 300 receives the IO request, it refers to the virtual logical volume management information 1270, extracts the virtual address 12703 and the hierarchy number 12704 in the table, and returns it to the IO request issuer as a response to the IO request.
  • the management computer 100 creates and stores a past tier holding table 119 for the end job use data set.
  • the management computer 100 may monitor the input / output performance of the job usage data by another means, and change the information stored in the past tier holding table 119 based on the performance. For example, if the input / output performance of the job usage data is lower than expected, the management computer 100 changes the hierarchical storage arrangement obtained from the storage system and changes the low hierarchical storage to a higher one. Processing such as saving in the past hierarchy holding table 119 may be performed. This process makes it possible to optimize the input / output performance of the succeeding job based on the actual input / output performance result of the job usage data, and to approach the required value of the input / output performance of the job originally set by the user.
  • the management computer 100 performs a procedure for canceling the hierarchical storage assigned to the data set used by the past job (S9040). Specifically, the management computer 100 sets a volume in which a data set used by a past job is placed as a destination, and issues an IO request 7300 with a page lock release instruction content to the storage apparatus 300. When the storage apparatus 300 receives the IO request 7300, the storage apparatus 300 releases the specified page on the corresponding virtual logical volume that has been page-locked.
  • the data used by the end job can be reused in subsequent jobs by the hierarchical storage deallocation process in the operation stage. This makes it possible to always reproduce high input / output performance. Further, when the subsequent job is not executed, by releasing the page lock, the upper tier storage can be reused by another job, and the expensive tier storage can be used effectively.
  • the file organization of data used by an application is managed by the management computer 100, so that the characteristics of the file organization can be utilized.
  • it is possible to extract the data usage characteristics of the application, and it is possible to realize hierarchical control that is finer than the unit of files managed by the OS or the like.
  • limited hierarchical storage resources are effectively used so that an expensive upper tier is allocated only during the job use period corresponding to the period during which the application operates. It becomes possible.
  • the computer system 10 according to the present embodiment can always provide high input / output performance required by the user for application data set as a control target.
  • the computer system 10 detects a job executed by the host computer 200 and data used by the job, and checks a file organization of the data, thereby specifying a region with high reference frequency in the data. Then, control is performed so that the area arranged in the storage system is moved to upper tier storage and not moved to other tier storage in the storage system. Further, when the job end is detected, control is performed so that the job use data can be moved from the upper tier storage in the storage system. As described above, at the time of job execution, it is possible to control so that data referred to by the job can always be referred to with high input / output performance. In addition, when a job is not executed, it is possible to effectively utilize hierarchical storage in a storage system with limited resources, by not arranging the data of the job in the upper hierarchical storage. It is possible to provide high input / output performance for the entire system.
  • the virtual tape system 20 includes a management computer 100, a host computer 200A, a virtual tape server 200B, and a storage device 300.
  • the virtual tape server 200B is connected to the management computer 100, the host computer 200A, and the storage device 300 via a network (not shown).
  • the configuration of the management computer 100, the host computer 200A, and the storage apparatus 300 according to the present embodiment is the same as that of the management computer 100, the host computer 200, and the storage apparatus 300 according to the first embodiment. Detailed description is omitted.
  • the virtual tape server 200B or the like virtualizes the storage apparatus 300, and the host computer 200A is as if the host computer 200A is based on a tape control instruction from the host computer 200A. It is a system that shows the tape as operating.
  • the storage device 300 is virtualized as a virtual tape, the data included in the tape control instruction received from the host computer is saved in the disk drive, and the saved disk is requested by the host computer 200A. Reading data from the drive.
  • tape format data is stored in the logical volume 151.
  • FIG. 35 shows an example of tape format data.
  • the virtual tape format 1510 includes a header 1511 for storing tape-related information, a gap 1512 for dividing and storing data, and the data itself for transfer to the host computer. It is composed of records 1513 having an appropriate capacity.
  • a virtual data set whose file organization is “virtual tape” is managed in the input / output frequency management table 115 of the management computer 100. That is, when the file organization is “virtual tape”, “header” is stored in the high frequency input / output 1 column 11502 as the data having the highest input / output frequency, and the high frequency input / output 2 column 11503 has the input / output frequency next. “Higher area” is stored as high data, and “virtual server tool” is stored in the acquisition method 11504 column as means for acquiring the area on the logical volume of the high-frequency input / output area.
  • the virtual tape system 20 starts data reference to the storage apparatus 300 in response to a tape mount instruction from the host computer 200. Further, in response to the tape unmount instruction from the host computer 200, the data reference to the storage apparatus 300 is terminated. This corresponds to the job start and job end of the first embodiment described above.
  • the management computer 100 detects that the virtual tape server 200B has received a tape control instruction from the host computer 200A.
  • the management computer 100 analyzes the detected tape control instruction. If the tape control instruction is a tape mount instruction, the management computer 100 executes a hierarchical control process based on job input shown in FIG. On the other hand, when the analyzed tape control instruction is a tape unmount instruction, the management computer 100 executes the tiered storage deallocation process of FIG.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

アプリケーションの特性に応じて、適切な粒度でデータを階層記憶に配置する。 ストレージ装置は、性能の異なる複数種類の記憶媒体により提供される記憶領域をプールとして管理し、ホスト計算機からのデータの書き込み要求に応じて、前記プールを構成する複数種類の階層記憶のうち何れかの階層記憶から仮想ボリュームに対してページ単位で記憶領域を割り当てる制御部と、を備え、前記制御部は、前記ホスト計算機により管理される特定のデータについて、当該特定のデータの編成情報に基づいて、当該特定のデータのうち参照頻度の高い領域を特定し、既に割り当てられている一の前記階層記憶からより性能の高い他の前記階層記憶に移動させる。

Description

計算機システム及びストレージ管理方法
 本発明は、計算機システム及びストレージ管理方法に関し、アプリケーションプログラムが使用するデータを階層管理する計算機システム及びストレージ管理方法に適用して好適なるものである。
 最近では、情報システムが普及し、多様な領域で広く利用されるようになった。従来、人手で実施されていた作業も現在は情報システムに置き変わってきており、情報システムに期待される処理量も膨大になってきている。その結果、情報処理システムに課された処理が、目標とする時間までに完了できないことが課題となっている。
 そこで、特許文献1では、重要度の高いアプリケーションプログラム(以降、アプリケーションプログラムを単にアプリケーションと称する。)に対し、当該アプリケーションにより使用されるデータを、適切な入出力性能を有する記憶装置にファイル単位で配置する技術が開示されている。特許文献1によれば、少なくとも優先度の高いアプリケーションについては、目標とする時間までに処理を完了することが可能となる。ここで、記憶装置が複数の異なる特性(入出力性能や信頼性など)を示す記憶領域を備える場合、それぞれの記憶領域を階層記憶と称し、複数の階層記憶のいずれかに計算機システムが使用するデータを配置する技術を階層記憶制御と称して以下説明する。
 また、特許文献2では、記憶装置が装置内の仮想的な記憶領域に書き込まれたデータを、ファイルなどよりも細かい断片に分割して、指定された階層記憶に配置する。そして、記憶装置は、データが指定された階層記憶に配置された後に、ホスト計算機によって当該断片にアクセスされる頻度に応じて、適切な入出力性能を有する階層記憶の当該断片を再配置する技術が開示されている。特許文献2によれば、一般的に高価な入出力性能の高い階層記憶(上位階層記憶と称する。)に、その性能が必要なデータのみを配置することが可能となり、これにより高価な上位階層記憶の利用を最小にして、上位階層記憶の入出力性能と同様の性能を期待することができる。
特開平5-173873号公報 特開2007-066259号公報
 しかし、特許文献1では、優先度の高いアプリケーションのデータを上位階層記憶に配置することができるが、ファイルよりも細かな単位で階層記憶制御を実行することができないため、ファイル内でアクセス頻度の低い断片があっても、当該ファイルは上位階層記憶に配置されてしまうため、無駄に上位階層記憶が消費されてしまうという課題があった。また、特許文献2では、アプリケーションのデータのうち、ホスト計算機に頻繁に参照される断片のみを上位階層記憶に配置することができるが、データの参照頻度に応じた階層記憶制御であるため、アプリケーションの優先度に応じた階層記憶制御をすることができないという課題があった。
 本発明は以上の点を考慮してなされたもので、アプリケーションの特性に応じて、適切な粒度でデータを階層記憶に配置することが可能な計算機システム及びストレージ管理方法を提案しようとするものである。
 かかる課題を解決するために本発明においては、ストレージ装置と、前記ストレージ装置へのデータの書き込みを要求するホスト計算機と、前記ストレージ装置と前記ホスト計算機とを管理する管理計算機と、がネットワークを介してそれぞれ相互に接続された計算機システムであって、前記ストレージ装置は、前記性能の異なる複数種類の記憶媒体により提供される記憶領域をプールとして管理し、前記ホスト計算機からの前記データの書き込み要求に応じて、前記プールを構成する複数種類の階層記憶のうち何れかの階層記憶から仮想ボリュームに対してページ単位で記憶領域を割り当てる制御部と、を備え、前記制御部は、前記ホスト計算機により管理される特定のデータについて、当該特定のデータの編成情報に基づいて、当該特定のデータのうち参照頻度の高い領域を特定し、既に割り当てられている一の前記階層記憶からより性能の高い他の前記階層記憶に移動させることを特徴とする、計算機システムが提供される。
 かかる構成によれば、アプリケーションが使用するデータのファイル編成を管理計算機で管理することで、ファイル編成の特性を利用して、アプリケーションのデータ使用特性を引き出すことが可能となり、OSなどで管理するファイルなどの単位よりも細やかな階層制御を実現することができる。これにより、アプリケーションの特性に応じて、適切な粒度でデータを階層記憶に配置して、使用者が求める高い入出力性能を提供することが可能となる。
 本発明によれば、アプリケーションの特性に応じて、適切な粒度でデータを階層記憶に配置して、効率的に記憶装置を利用することができる。
本発明の第1の実施形態に係る計算機システムのハードウェア構成を示すブロック図である。 同実施形態にかかる管理計算機の構成を示すブロック図である。 同実施形態にかかるホスト計算の構成を示すブロック図である。 同実施形態にかかるストレージ装置の構成を示すブロック図である。 同実施形態にかかる計算機システムの処理の概要を説明する概念図である。 同実施形態にかかる階層記憶制御の概要を説明する概念図である。 同実施形態にかかる階層記憶制御の概要を説明する概念図である。 同実施形態にかかる実行中ジョブ管理テーブルの内容を示す図表である。 同実施形態にかかる制御対象データ管理テーブルの内容を示す図表である。 同実施形態にかかるユーザ設定情報管理テーブルの内容を示す図表である。 同実施形態にかかる入出力頻度管理テーブルの内容を示す図表である。 同実施形態にかかる階層記憶利用状況管理テーブルの内容を示す図表である。 同実施形態にかかる階層テーブルの内容を示す図表である。 同実施形態にかかるホスト構成管理テーブルの内容を示す図表である。 同実施形態にかかる過去階層保持テーブルの内容を示す図表である。 同実施形態にかかるボリューム管理情報の内容を示す図表である。 同実施形態にかかる仮想論理ボリューム管理情報の内容を示す図表である。 同実施形態にかかる階層記憶プール管理情報の内容を示す図表である。 同実施形態にかかるストレージ基本情報の内容を示す図表である。 同実施形態にかかるストレージ情報テーブルの内容を示す図表である。 同実施形態にかかるIO要求の内容を示す図表である。 同実施形態にかかるデータアクセス処理の処理手順を示すフローチャートである。 同実施形態にかかるプールからのページ割り当て処理の処理手順を示すフローチャートである。 同実施形態にかかる階層記憶制御処理の処理手順を示すフローチャートである。 同実施形態にかかる階層記憶制御要求処理の処理手順を示すフローチャートである。 同実施形態にかかるアプリケーション及びジョブの概念について説明する概念図である 同実施形態にかかる環境構築段階の動作の詳細を示すフローチャートである。 同実施形態にかかる管理計算機100の入力画面の一例を示す図表である。 同実施形態にかかる階層記憶割り当て動作を示すフローチャートである。 同実施形態にかかる細粒度階層記憶割り当て処理の処理手順を示すフローチャートである。 同実施形態にかかる過去データセット割り当て階層記憶再現処理の処理手順を示すフローチャートである。 同実施形態にかかる横取り処理の処理手順を示すフローチャートである。 同実施形態にかかる階層記憶の優先度変更処理の処理手順を示すフローチャートである。 同実施形態にかかる階層記憶割り当て解除処理の処理手順を示すフローチャートである。 同実施形態にかかる仮想テープシステムのハードウェア構成を示すブロック図である。 同実施形態にかかるテープフォーマットのデータを示す概念図である。 同実施形態にかかる入出力頻度管理テーブルの内容を示す図表である。
 以下図面について、本発明の一実施の形態を詳述する。
 なお、以下の説明では、「xxxテーブル」の表現にて各種情報を説明することがあるが、各種情報は、テーブル以外のデータ構造で表現されていてもよい。データ構造に依存しないことを示すために「xxxテーブル」を「xxx情報」と呼ぶことができる。
 また、以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、コントローラに含まれるプロセッサ(例えばCPU(Central Processing Unit))によって実行されることで、定められた処理を、適宜に記憶資源(例えばメモリ)及び/又は通信インターフェースデバイス(例えば通信ポート)を用いながら行うため、処理の主語がプロセッサとされてもよい。プログラムを主語として説明された処理は、プロセッサ或いはそのプロセッサを有する管理システム(例えば、表示用計算機(例えばクライアント)又は管理用計算機(例えばサーバ))が行う処理としても良い。また、コントローラは、プロセッサそれ自体であっても良いし、コントローラが行う処理の一部又は全部を行うハードウェア回路を含んでも良い。プログラムは、プログラムソースから各コントローラにインストールされても良い。プログラムソースは、例えば、プログラム配布サーバ又は記憶メディアであっても良い。
 なお、管理計算機は入出力デバイスを有する。入出力デバイスの例としてはディスプレイとキーボードとポインタデバイスが考えられるが、これ以外のデバイスであってもよい。また、入出力デバイスの代替としてシリアルインターフェースやイーサーネットインターフェース(イーサーネットは登録商標)を入出力デバイスとし、当該インターフェースにディスプレイ又はキーボード又はポインタデバイスを有する表示用計算機を接続し、表示用情報を表示用計算機に送信したり、入力用情報を表示用計算機から受信することで、表示用計算機で表示を行ったり、入力を受け付けることで入力デバイスでの入力及び表示を代替してもよい。
 以後、計算機システムを管理し、ストレージシステムを管理制御する一つ以上の計算機の集合を管理システムと呼ぶことがある。管理計算機が表示用情報を表示する場合は管理計算機が管理システムである。また、管理計算機と表示用計算機の組み合わせも管理システムである。また、管理処理の高速化や高信頼化のために複数の計算機で管理計算機と同等の処理を実現してもよく、この場合は当該複数の計算機(表示を表示用計算機が行う場合は表示用計算機も含め)が管理システムである。
 また、以下の説明では、「時刻」という言葉を用いるが、時刻は年、月、日といった情報も指し示しても良く、当然ながら時、分、秒(含む小数点以下の秒)を指し示しても良い。
(1)第1の実施の形態
(1-1)本実施の形態の概要
 最近では、情報システムが普及し、多様な領域で広く利用されるようになった。従来、人手で実施されていた作業も現在は情報システムに置き変わってきており、情報システムに期待される処理量も膨大になってきている。その結果、情報処理システムに課された処理が、目標とする時間までに完了できないことが課題となっている。
 そこで、重要度の高いアプリケーションプログラム(以降、アプリケーションプログラムを単にアプリケーションと称する。)に対し、当該アプリケーションにより使用されるデータを、適切な入出力性能を有する記憶装置にファイル単位で配置する技術が開示されている。当該技術によれば、少なくとも優先度の高いアプリケーションについては、目標とする時間までに処理を完了することが可能となる。ここで、記憶装置が複数の異なる特性(入出力性能や信頼性など)を示す記憶領域を備える場合、それぞれの記憶領域を階層記憶と称し、複数の階層記憶のいずれかに計算機システムが使用するデータを配置する技術を階層記憶制御と称して以下説明する。
 また、記憶装置が装置内の仮想的な記憶領域に書き込まれたデータを、ファイルなどよりも細かい断片に分割して、指定された階層記憶に配置する技術が開示されている。さらに、記憶装置は、データが指定された階層記憶に配置された後に、ホスト計算機によって当該断片にアクセスされる頻度に応じて、適切な入出力性能を有する階層記憶の当該断片が再配置される。当該技術によれば、一般的に高価な入出力性能の高い階層記憶(上位階層記憶と称する。)に、その性能が必要なデータのみを配置することが可能となり、これにより高価な上位階層記憶の利用を最小にして、上位階層記憶の入出力性能と同様の性能を期待することができる。
 しかし、上記した前段の技術では、優先度の高いアプリケーションのデータを上位階層記憶に配置することができるが、ファイルよりも細かな単位で階層記憶制御を実行することができない。このため、ファイル内でアクセス頻度の低い断片があっても、当該ファイルは上位階層記憶に配置されてしまうため、無駄に上位階層記憶が消費されてしまうという課題があった。また、上記した後段のアプリケーションのデータのうち、ホスト計算機に頻繁に参照される断片のみを上位階層記憶に配置することができるが、データの参照頻度に応じた階層記憶制御であるため、アプリケーションの優先度に応じた階層記憶制御をすることができないという課題があった。例えば、応答時間が短いことが重要なデータであっても、参照頻度が低い場合には低位の階層記憶に配置されてしまったり、優先度が低いアプリケーションであっても、参照頻度が高い場合には上位の階層記憶に配置されてしまったりするため、効率的な階層記憶制御が実現できなかった。
 そこで、本実施の形態では、アプリケーションの優先度や特性に応じて、ファイルよりも細かな単位でデータを階層記憶に配置することを可能としている。これにより、無駄な階層記憶を消費することなく、指定されたアプリケーションに対し、同一の性能、同一の実行時間、同一のトランザクション性能を提供することを可能とした。
(1-2)計算機システムのハードウェア構成
 図1に、計算機システム10のハードウェア構成を示す。計算機システム10は、管理計算機100、ホスト計算機200及びストレージ装置300から構成される。計算機システム10において、管理計算機100及びホスト計算機200は、同一計算機であってもよいし、それぞれ1台であってもよいし、複数台であってもよい。また、計算機システム10において、ストレージ装置300は、1台であってもよいし、複数台であってもよい。
 管理計算機100、ホスト計算機200及びストレージ装置300は、通信ネットワーク(例えばSAN(Storage Area Network))500を介して相互に接続される。また、管理計算機100は、ホスト計算機200及びストレージ装置300に、通信ネットワーク(例えばLAN(Local Area Network))550を介して接続される。
 図2に、管理計算機100の構成を示す。管理計算機100は、メモリ110、プロセッサ120及びIO処理部130を有する計算機である。メモリ110、プロセッサ120及びIO処理部130は、内部ネットワーク(図示省略)を介して相互に接続されている。
 プロセッサ120は、メモリ110に記憶されるプログラムを実行することによって、各種処理を行う。例えば、プロセッサ120は、ストレージ装置300にIO要求を送信することによって、ストレージ装置300によって実行される階層記憶を制御する。IO要求は、例えば、データアクセス指示又は階層制御指示などを含む。IO要求については、後で詳細に説明する。
 メモリ110には、プロセッサ120によって実行されるプログラム及びプロセッサ120によって必要とされる情報等が記憶されている。具体的には、メモリ110には、ストレージ管理プログラム111、実行中ジョブ管理テーブル112、制御対象データ管理テーブル113、ユーザ設定情報管理テーブル114、入出力頻度管理テーブル115、階層記憶利用状況管理テーブル116、階層テーブル117、ホスト構成管理テーブル118、過去階層保持テーブル119及びストレージ情報テーブル101が記憶されている。更に、メモリ110には、OS(Operating System)及びアプリケーションプログラム(AP)が記憶されても良い。
 ストレージ管理プログラム111は、ストレージ装置300を管理するためのプログラムである。実行中ジョブ管理テーブル112は、後述するジョブを管理するための情報である。制御対象データ管理テーブル113は、ジョブにより使用されるデータに関する情報である。ユーザ設定情報管理テーブル114は、制御対象のデータに関して、計算機システム10の使用者によりあらかじめ設定された情報である。入出力頻度管理テーブル115は、アプリケーションの参照特性に関する情報である。階層記憶利用状況管理テーブル116は、後述する階層記憶の利用状況に関する情報などを保持する情報である。階層テーブル117は、指定した論理ボリュームが後述する階層記憶制御によってどの実ボリュームに配置されているかを保持するテーブルである。この階層テーブル117は、正ボリュームに割り当てられている実記憶領域を有する記憶媒体の特性を特定することのできる特性情報である。ホスト構成管理テーブル118は、後述する階層制御対象となるアプリケーションのデータを使用するホスト計算機管理用の情報である。過去階層保持テーブル119は、過去にジョブが実行された際に当該ジョブが使用したデータセットに割り当てられていた階層記憶を復元するための情報である。ストレージ情報テーブル101は、管理計算機100によって管理されるストレージ装置300に関する情報である。メモリ110に記憶されている各種テーブルについては、後で詳細に説明する。
 IO処理部130は、通信ネットワーク500を介してホスト計算機200及びストレージ装置300に接続されるインターフェースである。
 図3にホスト計算機200の構成を示す。ホスト計算機200は、メモリ210、プロセッサ220及びIO処理部230を有する計算機である。メモリ210、プロセッサ220及びIO処理部230は、内部ネットワーク(図示省略)を介して相互に接続されている。
 プロセッサ220は、メモリ210に記憶されるプログラムを実行することによって、各種処理を行う。例えば、プロセッサ220は、ストレージ装置300にIO要求を送信することによって、そのストレージ装置300で管理される論理ボリューム(実論理ボリューム、仮想論理ボリューム)のデータにアクセスする。
 メモリ210には、プロセッサ220によって実行されるプログラム及びプロセッサ220によって必要とされる情報等が記憶される。具体的には、メモリ210には、1か複数のアプリケーションプログラム211、OS212及びエージェントプログラム213が記憶される。
 アプリケーションプログラム211は、各種処理を実行する。例えば、アプリケーションプログラム211は、データベース機能又はメールサーバ機能を提供する。OS212は、ホスト計算機200の処理の全体を制御する。エージェントプログラム213は、管理計算機100からの指示を受け付ける。
 IO処理部230は、通信ネットワーク500を介して管理計算機100及びストレージ装置300と通信するためのインターフェースである。具体的には、例えば、IO処理部230は、ストレージ装置300にIO要求を送信する。
 図4にストレージ装置300の構成を示す。ストレージ装置300は、記憶制御装置1000、複数のディスクドライブ1500及び管理端末1600を備える。図4では、管理端末1600は、ストレージ装置300内において記憶制御装置1000に直接的に接続されているが、通信ネットワーク500及び550のうちの少なくとも一つを介してストレージ装置300に接続されていてもよい。記憶制御装置1000と、複数のディスクドライブ1500とは内部ネットワークを介して相互に接続されている。
 ディスクドライブ1500は、ディスク型の記憶メディアのドライブであり、ホスト計算機200から書き込み要求されたデータを記憶する。ストレージ装置300では、ディスクドライブ1500に加えて、又は、ディスクドライブ1500に代えて、他種の記憶メディアを有する記憶デバイス(例えばフラッシュメモリドライブ)を備えてもよい。
 記憶制御装置1000は、ストレージ装置300の動作を制御する。例えば、記憶制御装置1000は、ディスクドライブ1500へのデータの書き込み及びディスクドライブ1500からのデータの読み出しを制御する。また、記憶制御装置1000は、1つ以上の論理ボリュームを管理計算機100、及び、ホスト計算機200に提供する。1つ以上の論理ボリュームは、実ボリュームと仮想ボリュームのいずれか一方から構成される。実ボリュームは1つ以上のディスクドライブ1500の記憶空間を基に形成された論理的な1つ以上の記憶領域である。また、仮想ボリュームは、当該実ボリュームの一部の領域を利用する仮想的なボリュームである。実ボリューム及び仮想ボリュームについては、後で詳細に説明する。
 記憶制御装置1000は、キャッシュメモリ1100、共有メモリ1200、入出力制御部1300及びディスク制御部1400を備える。キャッシュメモリ1100、共有メモリ1200、入出力制御部1300及びディスク制御部1400は、内部ネットワーク(図示省略)を介して相互に接続されている。
 キャッシュメモリ1100は、ディスクドライブ1500へ書き込まれるデータ及びディスクドライブ1500から読み出されるデータを、一時的に記憶する。ディスク制御部1400は、ディスクドライブ1500へのデータの書き込み及びディスクドライブ1500からのデータの読み出しを制御する。また、ディスク制御部1400は、1つ以上のディスクドライブ1500の記憶空間から実ボリュームを生成する。
 入出力制御部1300は、プロセッサ1310、IO送受信部1320及びメモリ1330を備える。プロセッサ1310、IO送受信部1320及びメモリ1330は、内部ネットワーク(図示省略)を介して相互に接続されている。IO送受信部1320は、通信ネットワーク500を介して他の装置(例えば、管理計算機100、ホスト計算機200及び他のストレージ装置300の少なくとも一つ)と通信するインターフェースである。具体的には、例えば、IO送受信部1320は、管理計算機100又はホスト計算機200からIO要求を受信する。また、IO送受信部1320は、ディスクドライブ1500から読み出されたデータを、管理計算機100又はホスト計算機200に送信する。プロセッサ1310は、メモリ1330又は共有メモリ1200に記憶されるプログラムを実行することによって、各種処理を行う。具体的には、例えば、プロセッサ1310は、IO送受信部1320によって受信されたIO要求を処理する。メモリ1330には、プロセッサ1310によって実行されるプログラム及びプロセッサ1310によって必要とされる情報等が記憶されている。
 共有メモリ1200には、プロセッサ1310によって実行されるプログラム及びプロセッサ1310によって必要とされる情報等が記憶される。更に、共有メモリ1200には、ディスク制御部1400によって実行されるプログラム及びディスク制御部1400によって必要とされる情報等が記憶されている。具体的には、例えば、共有メモリ1200には、仮想ボリューム処理プログラム1220、入出力処理プログラム1240、ボリューム管理情報1250、仮想論理ボリューム管理情報1270及び階層記憶プール管理情報1290が記憶されている。
 仮想ボリューム処理プログラム1220は、仮想ボリュームに対する処理を実行するプログラムである。コピー処理プログラム1230は、ローカルコピーを行うプログラムである。入出力処理プログラム1240は、IO送受信部1320によって受信されたIO要求を処理するプログラムである。
 ボリューム管理情報1250は、ストレージ装置300によって提供される論理ボリュームを管理するための情報である。仮想論理ボリューム管理情報1270は、仮想論理ボリュームの仮想的な記憶領域と実ボリュームの割当領域(実記憶領域)の対応情報である。階層記憶プール管理情報1290は、仮想論理ボリュームに割り当て可能な論理ボリュームを管理するための情報である。共有メモリ1200に記憶されている各種管理情報については、後で詳細に説明する。
 管理端末1600は、プロセッサ、メモリ及びインターフェース(図示省略)を備える計算機である。管理端末1600は、システム使用者(ユーザ)から入力された情報を、ストレージ装置300の記憶制御装置1000に送信する。
(1-3)計算機システムの処理の概要
 次に、図5を参照して、計算機システム10の処理の概要について説明する。はじめに、本実施の形態で前提となる論理ボリューム、実論理ボリューム、仮想論理ボリュームの関係を説明する。
 図5は、ストレージ装置300がホスト計算機200に20GBと10GBの2つの論理ボリュームを提供する際の、ストレージ装置300の動作を示している。論理ボリュームは実ボリューム、仮想ボリュームのいずれか一方から構成される。本実施の形態では、実ボリュームと仮想ボリュームとを区別するために、実ボリュームから構成される論理ボリュームを実論理ボリューム、仮想ボリュームから構成される論理ボリュームを仮想論理ボリュームと称して以下説明する。
 図5では、Vol2が実論理ボリュームに該当し、Vol1が仮想論理ボリュームに該当する。実ボリュームは1つ以上のディスクドライブ1500の記憶領域から形成される論理的な1つ以上の記憶領域である。本実施の形態におけるストレージ装置300は、複数の異なる特性を備えた実ボリュームを有する。特性の違いとは、例えば、半導体ドライブ(例SSD:Solid State Drive)、磁性体ドライブ(例HDD:Hard Disk Drive)などの記憶素子の違い、FC、SAS、SATAなどのインターフェースの違いや、ディスクドライブから記憶領域を形成する方法(RAIDレベルなど)の違いを意味する。この特性の違いにより、データを読み書きするために必要となる時間や、ハードウェア障害からの回復の可能性が異なってくる。
 ここで、RAIDとは、Redundant Array of Inexpensive Disksの略である。また、RAIDレベルとは、実ボリュームの信頼性や性能の分類である。RAIDレベルは、データの記録方法により分類される。具体的には、RAIDレベルは、ホスト計算機200から書き込まれたデータを分割・複製することでデータの断片を複数のディスクドライブ1500に分散、かつ、重複して保持したり、データを復元するために必要なパリティなどのデータを生成しホスト計算機200のデータと同時に保持したり、などの違いにより分類される。
 仮想論理ボリュームは、当該仮想論理ボリュームに更新のあった領域分のデータだけを実ボリュームに保存する仮想的なボリュームである。図5では、その一例として、ホスト計算機200からのデータIO要求で仮想論理ボリューム(Vol1)の1つの領域に、データ要素D3が記憶されている。実際には、その領域(データ要素D3)に割り当てられた実ボリュームの記憶領域の断片(P3)にデータ要素D3が記憶される。このように、仮想論理ボリュームへの読み、書きで実ボリュームに割り当てられた「記憶領域の断片」を、以後、「ページ」とよび、ページに記憶されるデータ(言い換えれば、ページの割当て先の仮想領域に記憶されるデータ)を、「データ要素」とよぶ。
 図5では、ページP3は、実ボリューム(Vol13)から提供される。また、通常、ホスト計算機200からアクセスされる実論理ボリューム用の実ボリュームと、仮想論理ボリューム用の実ボリュームとを区別するために、ストレージ装置300では、仮想論理ボリューム用の実ボリュームは特別なグループ(以下、「プール」とよぶ)に登録し、管理される。プールには特性の異なる1又は複数の実ボリュームが特性情報とともに登録される。
 また、ストレージ装置300では仮想論理ボリュームにおいて、実ボリュームの特性情報を基に、プール内で特性の異なる実ボリューム間でページ上のデータ要素を移動させる。このような処理を、以下では、階層記憶制御と称して説明する。また、ページ上のデータ要素を実ボリューム間で移動させる処理を単にページ移動とよぶ。
 階層記憶制御の動作例について、図5を参照して説明する。ストレージ装置300では、ホスト計算機200によるデータの読み書きの応答時間の違いを特性情報(図5では、高性能や、中性能)として管理しているものとする。ここで、ホスト計算機200からページD2へのデータアクセス頻度が過去との比較で高まったと判断した場合、ストレージ装置300は、低性能(Vol11)から中性能(Vol12)な実ボリュームにページD2を移動させる。上記のようなページ移動を実施することで、ストレージ装置300は、ホスト計算機200がデータにアクセスする頻度に応じ、適切な性能の論理ボリュームを提供することができる。
 以上のように、階層記憶制御においては、プール内の特性の異なる実ボリューム間でページの移動を実施する。なお、本実施の形態では階層記憶制御でページ移動の鍵となる実ボリュームの特性の違いを「階層」の違いと表記することにする。また、以降、本発明の実施の形態では特に断らない限り3階層で説明する。ただし、本発明の実施の形態は3階層に限定されるものではない。
 次に図6A及び図6Bを参照して、本実施の形態におけるアプリケーションの優先度や特性に基づく階層記憶制御の概要を説明する。
 図6Aは、ホスト計算機200によるストレージ装置300へのデータ参照処理を示した概念図である。また、図6Bは、ホスト計算機200により参照されたデータが、ストレージ装置300内でどのように配置されるかを示した概念図である。
 ホスト計算機200は、アプリケーションが必要とするストレージ装置300内の論理ボリュームに配置されたデータを参照する場合、次のように動作する。
 図6Aに示すように、ホスト計算機200は、参照対象のデータがどのような構成で配置されているかが規定されるファイル編成情報を、OSまたはボリュームの特定領域(VTOC:Volume Table of Contentsなど)から取得する。
 次に、ホスト計算機200は、OSまたはVTOCから得られた情報を基に、データアクセスを開始する。ここで、ファイル編成には索引編成、順編成、区分編成、仮想記憶アクセス編成、直接編成などがあり、アプリケーションのデータ参照特性に合わせ適切な編成が選択されている。言い換えると、アプリケーションのデータ参照特性はファイル編成を知ることで、ある程度予測することができる。
 図6Aでは、データ参照特性の一例として、ファイル編成が索引編成の場合を示している。索引編成の場合、データは索引領域とデータ領域に分かれている。索引領域には、論理的に分割されたデータの断片(レコード)の配置アドレスが1つか複数個保存される。データ領域には、実際のデータ断片が保存される。図6Aでは、ホスト計算機200は、はじめに索引領域を参照し、対象とするレコードの配置アドレスを取得する。次に、ホスト計算機200は、取得したアドレスを指定し、対象とするレコードを参照する。
 このように、索引編成で論理ボリューム上のデータが参照される場合、索引領域が必ずホスト計算機200から参照され、次に目的とする任意のレコードが参照される。すなわち、索引編成の場合、データの中でも特に索引領域が高頻度に参照される。その一方で索引編成の場合、データ領域はアプリケーションで必要となるレコードが任意に参照されるため、データ領域上のどの部位(レコード)が高頻度に参照されるか不定となる。
 データのファイル編成が索引編成であるため、高頻度に参照される索引領域が高速に参照できることが好ましい。そこで、図6Bに示すように、当該索引領域上のデータを上位階層記憶に割り当て、以後の階層制御によってページ移動を起こさないようにする。このページ移動後に階層制御によりページを移動させない処理をページロックと称して以下説明する。一方、データ領域上のデータの参照頻度はアプリケーション動作に基づくもので静的には特定が難しいため、従来の階層記憶制御処理に従い配置する。すなわち、データ領域上のデータについて、データ配置後の参照頻度に基づいたページ移動により、性能の適正化を実現している。
 このように、本実施の形態におけるアプリケーションの優先度や特性に基づく階層記憶制御では、データのファイル編成から、静的に判定可能なデータ部位別の参照頻度を特定する。そして、参照頻度が高い領域のデータを上位階層記憶に割り当てて、当該データ要素をページロックする。このような処理を実行することにより、優先度の高いアプリケーションで、あらかじめ高いIO処理性能が必要であることがわかっているような場合、特に参照頻度の高いデータ領域を高速に参照可能なように制御することができる。
(1-4)各種テーブルの内容
 図7は管理計算機100のメモリ110に記憶されている実行中ジョブ管理テーブル112の内容を示す図表である。実行中ジョブ管理テーブル112は、実行中のジョブを管理するテーブルであって、図7に示すように、ジョブ名欄11201、データセット名欄11202、制御領域欄11203、優先度欄11204及び開始時刻欄11205から構成される。
 ジョブ名欄11201には、ホスト計算機200上で動作するOSがアプリケーションを実行する時に使用するジョブの名称が格納される。データセット名欄11202には、ジョブ名欄11201のジョブで起動されるアプリケーションが使用するデータセットの名称が格納される。制御領域欄11203には、管理計算機100による階層制御対象となる論理ボリューム上の領域に関する情報が格納される。例えば、先頭シリンダ、ヘッダ、最後尾シリンダまたはヘッダなどが格納される。優先度欄11204には、階層制御を対象とする場合の優先度の情報が格納される。開始時刻欄11205には、ジョブが実行された時刻が格納される。
 図8は、管理計算機100のメモリ110に記憶されている制御対象データ管理テーブル113の内容を示す図表である。制御対象データ管理テーブル113は、ジョブにより使用されるデータに関する情報であって、図8に示すように、データセット名欄11301、デバイスID欄11302、格納アドレス(格納ADR)欄11303、ファイル編成欄11304、ファイル編成詳細欄11305及び過去階層ポインタ欄11306から構成される。
 データセット名欄11301には、ホスト計算機200上で主に動作するアプリケーションが使用するデータで、特にメインフレームOSで管理される論理的な単位であるデータセットの名称が格納される。オープンシステムでは、例えば、ファイル名がデータセット名に相当する。デバイスID欄11302には、当該データセットが配置される論理ボリュームをホスト計算機200上のOSが一意に識別するための識別子(例えばデバイス番号など)が格納される。格納アドレス(格納ADR)11303欄には、データセットの格納デバイスIDのアドレスが格納される。具体的には、後述するホスト構成管理テーブル118の格納デバイスID欄1183のアドレスがデバイスID欄11302に格納される。例えば、当該データセットの先頭シリンダ、ヘッダ数、および、最後尾シリンダ、ヘッダ数が格納される。通信ネットワーク500がSCSI(Small Computer System Interface)の場合はLBA(Logical Block Address)であっても構わない。ファイル編成欄11304には、データセットに設定されているファイル編成の名称が格納される。ファイル編成詳細欄11305には、ファイル編成に基づき階層制御対象とする領域の情報が格納される。例えば、先頭シリンダ、ヘッダ、最後尾シリンダ、ヘッダで表される。過去階層ポインタ欄11306には、後述する過去階層保持テーブル119を参照するためのポインタが格納される。過去階層保持テーブル119は、後述するように、過去にジョブが実行された際に、当該ジョブが使用したデータセットに割り当てられていた階層記憶を復元するための情報を管理するテーブルである。
 図9は、管理計算機100のメモリ110に記憶されるユーザ設定情報管理テーブル114の内容を示す図表である。ユーザ設定情報管理テーブル114は、制御対象のデータに関して、計算機システム10の使用者によりあらかじめ設定された情報であって、図9に示すように、項目優先度欄11401、項目欄11402、設定内容欄11403及び階層記憶優先度欄11404から構成される。
 項目優先度欄11401には、後述の初期設定で管理計算機100の使用者により設定された複数の項目における優先度が格納される。項目欄11402には、当該使用者により指定された項目が格納される。項目には、例えば、時刻、ジョブ名、ジョブクラス、データセット名、ユーザ名などを例示できる。設定内容11403欄には、指定された項目11402の内容が格納される。例えば時刻の場合はT3からT4といった時刻範囲が指定される。階層記憶優先度11404欄には、使用者により指定された項目に該当するデータセットが優先度の高いものなのか否かの情報が格納される。
 図10は、管理計算機100のメモリ110に記憶される入出力頻度管理テーブル115の内容を示す図表である。入出力頻度管理テーブル115は、アプリケーションの参照特性に関する情報であって、図10に示すように、ファイル編成欄11501、高頻度入出力1欄11502、高頻度入出力2欄11503及び取得方法欄11504から構成される。
 ファイル編成欄11501には、制御対象のデータセットに設定されているファイル編成の名称が格納される。高頻度入出力1欄11502には、当該ファイル編成で最も高頻度にデータが参照される領域の情報が格納される。高頻度入出力2欄11502は、当該ファイル編成で高頻度入出力1の次に高頻度にデータが参照される領域の情報が格納される。
 ここで、ファイル編成が、仮想記憶アクセス編成(VSAMともよばれる)の場合の、高頻度入出力欄1及び2に設定される情報について説明する。仮想記憶アクセス編成は、高い入出力性能が必要なアプリケーションであるデータベースで利用されるファイル編成である。当該編成のデータ参照には、データセット全体に高い入出力性能が求められ、その中でも特にIndex領域に高い入出力性能が求められる。そこで、高頻度入出力1にはIndexを、高頻度入出力2にはデータセット全体を登録する。取得方法11504欄には、当該高頻度入出力領域の論理ボリューム上の領域を取得するために必要となる手段(OS utility1)の情報が格納される。
 図11は、管理計算機100のメモリ110に記憶される階層記憶利用状況管理テーブル116の内容を示す図表である。階層記憶利用状況管理テーブル116は、階層記憶の利用状況に関する情報などを保持する情報であって、階層番号欄11601、全体容量欄11602、空き容量欄11603、ページロック済み容量(高優先)欄11604及びページロック済み容量(低優先)欄11605から構成される。
 階層番号欄11601には、後述する階層記憶の番号が格納される。例えば、本実施の形態では、この階層番号11601の値が小さいものほど、性能が高い階層記憶であることを示す。全体容量欄11602には、ストレージ装置300内の階層番号に対応する階層記憶の全容量の情報が格納される。空き容量欄11603には、当該階層記憶において未だ階層制御対象ではない容量の情報が格納される。ページロック済み容量欄116には、本実施の形態で使用されるページロック制御が実施されている領域の情報が格納され、優先度の高いジョブ向けに割り当てた階層記憶の容量が高優先欄11604に格納され、優先度の低いジョブ向けに割り当てた階層記憶の容量が低優先欄11605に格納される。
 図12は、管理計算機100のメモリ110に記憶される階層テーブル117の内容を示す図表である。階層テーブル117は、複数のアドレスマップから構成され、アドレスマップは仮想アドレス欄11702及び階層番号欄11703から構成される。仮想アドレス欄11702には、仮想ボリュームの領域を示す情報が格納される。階層番号欄11703には、後述する階層記憶の番号が格納される。
 図13は、管理計算機100のメモリ110に記憶されるホスト構成管理テーブル118の内容を示す図表である。ホスト構成管理テーブル118は、階層制御の対象となるアプリケーションのデータを使用するホスト計算機200を管理するためのテーブルであって、図13に示すように、ホストID欄1181、データセット名欄1182、格納デバイス欄ID1183、格納アドレス(格納ADR)欄1184、ストレージID欄1185及びボリュームID欄1186から構成される。
 ホストID1181欄には、ホスト計算機200を識別する識別子が格納される。例えば、ホストID1181欄には、TCP/IPのHost NameとIPアドレスとの組み合わせが格納される。データセット名欄1182には、ホスト計算機200で主に動作するアプリケーションが使用するデータで、特にメインフレームOSで管理される論理的な単位であるデータセットの名称が格納される。例えば、オープンシステムではファイル名がデータセットに相当する。格納デバイスID欄1183には、当該データセットが配置されている論理ボリュームを、ホスト計算機200上のOSが一意に識別するための識別子(例えばデバイス番号など)が格納される。格納アドレス1184欄には、対応するデータセットが配置されている格納デバイスID1183欄に対応するアドレスが格納される。例えば、当該データセットの先頭シリンダ、ヘッダ数、および、最後尾シリンダ、ヘッダ数が格納される。SCSIなどの場合はLBA(Logical Block Address)であっても構わない。ストレージID欄1185には、管理計算機100によって管理されるストレージ装置300を識別するための識別子が格納される。ボリュームID欄1186には、ストレージID欄1185によって識別されるストレージ装置300が付与した論理ボリュームを識別するための識別子が格納される。
 図14は、管理計算機100のメモリ110に記憶されている過去階層保持テーブル119の内容を示す図表である。過去階層保持テーブル119は、指定した論理ボリュームが階層記憶制御によってどのボリュームに配置されているかを管理するテーブルであって、図14に示すように、データセット名欄11901及びアドレスマップから構成され、アドレスマップはさらに仮想アドレス欄11902及び階層番号欄11903から構成される。
 データセット名欄11901には、ホスト計算機200で主に動作するアプリケーションが使用するデータで、特にメインフレームOSで管理される論理的な単位であるデータセットの名称が格納される。仮想アドレス欄11902には、ストレージ装置300が仮想ボリュームを識別するために使用する識別子が格納される。階層番号欄11903には、後述する階層記憶の番号が格納される。
 図15は、ストレージ装置300の共有メモリ1200に記憶されるボリューム管理情報1250の内容を示す図表である。ボリューム管理情報1250は、論理ボリュームを管理するための情報であって、図15に示すように、論理ボリュームID欄12501、ボリューム状態欄12502、容量欄12503、実ボリュームID欄12506及び仮想フラグ欄12507から構成される。
 論理ボリュームID欄12501には、ボリューム管理情報1250を記憶するストレージ装置300によって提供される論理ボリュームを識別するための識別子が格納される。ボリューム状態欄12502には、論理ボリュームID12501によって識別される論理ボリュームの現在の状態を示す情報が格納される。例えば、ボリューム状態12502には、正常、異常又は未実装を示す情報のうち少なくとも1つが格納される。より具体的には、例えば、論理ボリュームIDによって識別される論理ボリュームにホスト計算機200が正常にアクセスできる場合、ボリューム状態情報欄12502は、「正常」を示す情報が格納される。また、論理ボリュームIDによって識別される論理ボリュームにホスト計算機200が正常にアクセスできない場合、ボリューム状態情報欄12502には、「異常」を示す情報が格納される。例えば、ディスクドライブ1500の故障時、コピーの障害時には、ボリューム状態情報欄12502には、「異常」を示す情報が格納される。また、論理ボリュームIDによって識別される論理ボリュームにデータが格納されていない場合、ボリューム状態情報欄12502には、「未実装」を示す情報が格納される。
 容量欄12503には、論理ボリュームIDによって識別される論理ボリュームの容量(記憶容量)が格納される。実ボリュームID欄12506には、論理ボリュームIDに対応する論理ボリュームに対応付けられた実ボリュームを識別する識別子が格納される。仮想フラグ欄12507には、論理ボリュームが仮想ボリュームから構成されるか否かを示す情報が格納される。仮想フラグが1の場合、論理ボリュームが仮想論理ボリュームであることを意味する。また、仮想フラグが0の場合、論理ボリュームが実論理ボリュームであることを意味する。
 図16は、ストレージ装置300に記憶される仮想論理ボリューム管理情報1270の内容を示す図表である。仮想論理ボリューム管理情報1270は、仮想論理ボリュームを管理する情報であって、仮想論理ボリューム管理情報1270の数は、ストレージ装置300が保持する仮想論理ボリュームの個数と同数である。つまり、1つの仮想論理ボリュームに対して1つの仮想論理ボリューム管理情報1270が作成される。仮想論理ボリューム管理情報1270は、図16に示すように、ボリュームID欄12701、プールID欄12702及びアドレスマップ(12703、12704、12705、12706、12707)から構成される。以下、この仮想論理ボリューム管理情報1270を記憶するストレージ装置300を「このストレージ装置300」とよび、この仮想論理ボリューム管理情報1270に対応する仮想論理ボリュームを「この仮想論理ボリューム」とよぶ。
 ボリュームID欄12701には、このストレージ装置300によって識別される実ボリュームの識別子が格納される。プールID欄12702には、このストレージ装置300によって管理される階層記憶プール管理情報1290を識別する識別子が格納される。プールID欄12702に格納されるプールIDは、この仮想論理ボリュームにページを提供する実ボリューム群を特定するために使用される。
 アドレスマップは、仮想アドレス欄12703、階層番号欄12704、階層アドレスポインタ欄12705、参照フラグ欄12706及びロックフラグ欄12707から構成される。仮想アドレス欄12703には、仮想論理ボリュームにおける一単位の仮想領域を示すアドレスが格納される。仮想領域の1単位のサイズは、ページのサイズと同一である。ホスト計算機200からのIO要求において、仮想論理ボリュームが指定される場合、仮想論理ボリュームにおけるアクセス先の仮想領域を表す仮想アドレスも指定される。階層番号欄12704には、プールIDが示す階層記憶プール管理情報1290の特定の階層記憶を示す番号が格納される。階層アドレスポインタ欄12705には、プールID12703が示す階層記憶プール管理情報1290の特定階層の階層記憶アドレスマップの一領域を指すポインタが格納される。つまり、階層記憶プール管理情報1290には、いくつかの階層があり、各階層には階層記憶アドレスマップが対応付けられている。さらに、階層記憶アドレスマップは、線形的な記憶領域を提供しており、階層番号欄12704の階層番号と階層アドレスポインタ欄12705の階層アドレスポインタにより、そのプール内の階層番号と当該階層番号毎に提供される階層記憶アドレスマップの1アドレスが指定される。なお、仮想領域にページが割り当てられていない場合、その仮想領域の仮想アドレス12703に対応した階層アドレスポインタ12705には、「空き」を示す情報が格納される。参照フラグ12706には、この仮想アドレスが示す領域(ページ)に書き込みもしくは書き込み参照があったことを示すフラグが格納される。ロックフラグ欄12707には、この仮想アドレスが指す領域(ページ)が前述のページロック制御中であることを示すフラグが格納される。
 図17は、ストレージ装置300の共有メモリ1200に記憶される階層記憶プール管理情報1290の内容を示す図表である。階層記憶プール管理情報1290は、プールを管理するための情報であって、階層記憶プール管理情報1290の数は、このストレージ装置300内におけるプールの数と同数である。つまり、1つのプールに対して1つの階層記憶プール管理情報1290が作成される。階層記憶プール管理情報1290は、プールID12901、階層記憶アドレスマップ情報(12902~12910)から構成される。以下、この階層記憶プール管理情報1290に対応するプールを「このプール」とよぶ。プールID12901は、このプールを一意に示す識別子である。階層記憶アドレスマップ情報は、このプールに1又は複数存在する階層に割り当てられた1又は複数の実ボリュームを管理するための情報である。階層記憶アドレスマップ情報は、このプールに登録される階層の個数分存在し、各階層の記憶領域を線形的なアドレスで参照可能にする情報である。
 階層記憶アドレスマップ情報は、階層番号欄12902、総実ボリューム数欄12903、総容量情報欄12904、空き総容量情報欄12905、アドレス欄12906、割当情報欄12907、アクセス頻度欄12910、ボリュームID欄12908及び実アドレス欄12909から構成される。以下、この階層記憶アドレスマップ情報に対応する実ボリュームを「この実ボリューム」とよぶ。
 階層番号欄12902には、階層記憶の階層を表す番号が格納される。総実ボリューム数欄12903には、この階層番号が指す階層に登録される実ボリュームの個数が格納される。総容量情報欄12904には、この階層番号が指す階層に登録される実ボリュームの総容量が格納される。空き総容量欄12905には、この階層番号が指す階層に登録される実ボリュームで、ページが割り当てられていない空き領域の総容量が格納される。アドレス欄12906には、階層記憶アドレスマップが提供する線形的なアドレス空間のアドレスが格納される。割当情報欄12907には、アドレス12906に対応する領域が割当て済みか又は未割当か(つまり、割当不可能か割当可能か)、又はページロック制御中かを表す情報が格納される。アクセス頻度欄12910には、アドレス12906に対応する領域が割当済みの場合にこの領域割当後に、何回参照されたかの情報(アクセス頻度)が格納される。ボリュームID欄12908には、実ボリュームを一意に識別する識別子が格納される。実アドレス欄12909には、実ボリュームIDが指す実ボリュームのアドレスが格納される。
 図18は、ストレージ装置300の共有メモリ1200に記憶されるストレージ基本情報1260の内容を示す図表である。ストレージ基本情報1260は、ストレージ装置300の情報を管理するテーブルであって、IPアドレス欄12601及びストレージID12602から構成される。IPアドレス欄12601には、ストレージ装置300に付与されたIPアドレスが格納される。ストレージID欄12602は、IPアドレスが示すストレージ装置300を一意に識別する識別子が格納される。
 図19は、管理計算機100に記憶されるストレージ情報テーブル101の内容を示す図表である。ストレージ情報テーブル101は、ストレージID欄1011、ボリュームID欄1012及び仮想フラグ欄1013から構成される。ストレージID欄1011には、管理計算機100によって管理されるストレージ装置300を一意に識別する識別子が格納される。ボリュームID欄1012には、ストレージIDによって識別されるストレージ装置300により付与された論理ボリュームを一意に識別する識別子が格納される。仮想フラグ欄1013には、仮想論理ボリュームであることを示すフラグが格納される。
 図20は、IO要求7300の内容を示す図表である。IO要求7300は、管理計算機100又はホスト計算機200によって発行される。IO要求7300は、宛先73001、指示内容73002、通し番号73003及びオプション73004から構成される。
 宛先73001は、このIO要求7300についての宛先に関する情報であって、例えば、このIO要求7300の送信先となるストレージ装置300の識別子と、そのストレージ装置300における論理ボリューム(例えば仮想論理ボリューム或いは実論理ボリューム)の識別子と、その論理ボリュームにおける記憶領域(例えば、仮想領域、或いは実領域)のアドレス(ボリュームアドレス)とを含む情報である。
 指示内容73002は、このIO要求7300によって指示される処理の内容である。例えば、指示内容73002は、階層制御指示か、或いは、データアクセスの指示等である。階層制御指示としては、例えば、ページ階層移動、ページロック開始、ページロック解除、ボリューム階層状態取得、又はプール状態取得などが挙げられる。また、データアクセスの指示としては、例えば、データ書き込み又はデータ読み込みなどが挙げられる。
 通し番号73003は、このIO要求7300が発行された順番を示す。通し番号73003は、このIO要求7300の発行元である管理計算機100又はホスト計算機200によって決められる。オプション73004は、このIO要求7300によって書き込みが要求されるデータの内容及び、ページ移動する場合の移動後のアドレスマップ情報などが挙げられる。
(1-5)各装置の動作の詳細
(1-5-1)ストレージ装置の動作の詳細
 まず、ストレージ装置300の動作の詳細について説明する。図21は、ストレージ装置300におけるデータアクセス処理の処理手順を示すフローチャートである。
 ストレージ装置300の入出力制御部1300は、ホスト計算機200からIO要求7300を受信すると、そのIO要求7300の宛先73001が仮想論理ボリュームを表しているか否かを判定する(S5000)。具体的には、例えば、入出力制御部1300のプロセッサ1310(以下、入出力制御部1300として説明する。)は、IO要求7300の宛先73001を参照し、宛先73001に含まれているボリュームIDを取得する。次に、入出力制御部1300は、取得したボリュームIDに合致する論理ボリュームに関する情報を、図15に示すボリューム管理情報1250から取得する。
 そして、ボリューム管理情報1250の仮想フラグ12507が仮想論理ボリュームを表している場合には、入出力制御部1300は、ステップS5005以降を実行する。一方、仮想論理ボリュームを表していない場合、入出力制御部1300は、ステップS5095を実行する。以下、図21及び図22の説明において、上記取得したボリュームIDに対応する仮想論理ボリュームを「この仮想論理ボリューム」と称して以下説明する。
 ステップS5005において、入出力制御部1300は、図16に示す1又は複数の仮想論理ボリューム管理情報1270から、上記取得したボリュームIDに対応する仮想論理ボリューム管理情報1270を参照する。以下、図21及び図22の説明において、この特定された仮想論理ボリューム管理情報1270を「この仮想論理ボリューム管理情報1270」と称して以下説明する。
 入出力制御部1300は、この仮想論理ボリューム管理情報1270から、IO要求7300の宛先73001に含まれているボリュームアドレス(以下、図21及び図22の説明において「このボリュームアドレス」と言う)に対応する仮想アドレス12703を特定する。入出力制御部1300は、特定した仮想アドレス12703に対応する仮想アドレスエントリを参照する。ここで、仮想アドレスエントリとは、仮想アドレス12703、階層番号12704、及び階層アドレスポインタ12705及び、参照フラグ12706及びロックフラグ12707からなる情報要素(エントリ)である。以下、入出力制御部1300が特定した仮想アドレスエントリをこの仮想アドレスエントリと称する。
 次に、入出力制御部1300は、この仮想論理ボリューム管理情報1270の参照フラグ12706欄に参照があったことを示すフラグを登録する(S5007)。
 次に、入出力制御部1300は、このIO要求7300の指示内容73002が、階層制御指示か否かを判定する(S5009)。このIO要求7300の指示内容73002が階層制御指示の場合には、後述する階層記憶制御処理を実行して(S5020)、入出力処理を終了する。このIO要求7300の指示内容73002が階層制御指示ではない場合、次のステップS5010を実行する。
 次に、入出力制御部1300は、IO要求7300の指示内容73002が、データ読み込み参照か否かを判定する(S5010)。IO要求7300の指示内容73002がデータ読み込み参照ではない場合には、入出力制御部1300は、ステップS5060の処理を実行する。
 ステップS5060において、入出力制御部1300は、この仮想アドレスエントリに割り当てページがあるかを判定する(S5060)。具体的に、入出力制御部1300は、階層アドレスポインタ12705を参照して、階層アドレスポインタ12705が「空き」(割当ページがないこと)を表しているかを判定する。
 ステップS5060において、仮想アドレスエントリに割り当てページがあると判定された場合には、入出力制御部1300は、プールからページを割り当てる処理を実行する(S5070)。ステップS5070におけるページを割り当てる処理については後で詳細に説明する。
 ステップS5010において、IO要求7300における指示内容73002がデータ読み込み参照である場合には、入出力制御部1300は、この仮想アドレスエントリに割り当てページがあるかを判定する(S5040)。具体的に、入出力制御部1300は、階層アドレスポインタ12705を参照して、階層アドレスポインタ12705が「空き」(割当ページがないこと)を表しているかを判定する。
 ステップS5040において、仮想アドレスエントリに割り当てページがあると判定された場合には、入出力制御部1300は、IO要求7300でデータ参照の結果を0として(つまり、0を表すデータ要素が読み出されたとして)、ホスト計算機200にデータ要素0を返信し(S5050)、データアクセス処理を終了する。
 ステップS5070におけるプールからページを割り当てる処理の後、または、ステップ5060の判定で階層アドレスポインタ12705が「空き」を表していないと判定された場合(割当ページがある場合)には、入出力制御部1300は、ステップ5095を実施する。
 ステップS5040において階層アドレスポインタ12705が「空き」を表していないと判定された場合、または、ステップS5000においてそのボリューム管理情報1250の仮想フラグ12507が仮想論理ボリュームを表していないと判定された場合、入出力制御部1300は、その論理ボリューム(仮想論理ボリューム又は実論理ボリューム)へのデータアクセス処理を実行する(S5095)。
 論理ボリュームへのデータアクセス処理で、IO要求7300の宛先73001が表す論理ボリュームが仮想論理ボリュームである場合、入出力制御部1300は、この仮想アドレスエントリの階層アドレスポインタ12705から特定されるページにアクセスする。また、IO要求7300の宛先73001が表す論理ボリュームが実論理ボリュームである場合、入出力制御部1300は、宛先73001におけるボリュームアドレスから特定される実領域にアクセスする。
 以上、ストレージ装置300におけるデータアクセス処理の流れの一例を説明した。なお、図21の説明において、入出力制御部1300が行う処理を、例えば、入出力処理プログラム1240を実行するプロセッサ1310が行ってもよい。プロセッサ1310は、仮想ボリューム処理プログラム1220に仮想ボリュームに関わる処理を実行させてもよい。
 図22は、図21のステップS5070において実行されるストレージ装置300におけるプールからのページ割り当て処理の処理手順を示すフローチャートである。
 まず、ストレージ装置300の入出力制御部1300は、この仮想論理ボリュームの仮想論理ボリューム管理情報1270におけるプールID12702が示す階層記憶プール管理情報1290を参照する。次に入出力制御部1300は、1又は複数の階層記憶アドレスマップ情報のうち、階層番号が最も小さい階層(性能や信頼性が最も高いと設定される最上位の階層)を選定する(S5100)。
 次に、入出力制御部1300は、この階層番号の階層記憶アドレスマップ情報のいずれかの割当情報12907に「空き」を表しているものがあるか否かを判定する(S5120)。
 ここで、ステップS5120において、階層記憶アドレスマップ情報のいずれかの割当情報12907に「空き」のあるエントリ(アドレス12906、割当情報12907、ボリュームID12908、実アドレス12909からなる階層記憶アドレスマップ情報の行)が見つかったと判定された場合には、入出力制御部1300は、このエントリの情報を参照し、ボリュームID12908と実アドレス12909を取得し、アクセス対象のページを特定する。さらに、入出力制御部1300は、このエントリの割当情報12907を、割当ありにし、さらにこの情報に含まれるアクセス頻度12910の値に1を加算する(S5150)。
 次に、入出力制御部1300は、この階層記憶アドレスマップの情報を更新する(S5160)。具体的に、入出力制御部1300は、空き総容量情報12905の空き総容量から割り当てに必要なページ容量分を削減する(S5160)。
 次に、入出力制御部1300は、仮想論理ボリューム管理情報1270の階層アドレスポインタ12705をこのエントリに変更する。階層アドレスポインタ12705は、階層記憶プール管理情報1290の階層番号及びアドレスから構成される。
 一方、ステップ5120において、階層記憶アドレスマップ情報のいずれもの割当情報12907に「空き」が無いと判定された場合には、入出力制御部1300は、この階層記憶アドレスマップ情報の階層番号よりも一つ下位の階層(現在の階層番号+1)の階層記憶アドレスマップ情報の有無を確認する(S5130)。
 ステップS5130において、一つ下位の階層の階層記憶アドレスマップ情報が存在する場合には、入出力制御部1300は、現在よりも一つ下位の階層の階層記憶アドレスマップ情報(現在の階層番号+1)を選定し(S5110)、再度ステップS5120を実行する。
 ステップS5130において、一つ下位の階層の階層記憶アドレスマップ情報が存在しない場合には、入出力制御部1300は、IOエラーをIO要求発行元のホスト計算機200に返す(S5140)。入出力制御部1300は、ステップS5140において、IOエラーのホスト計算機200にIOエラーを返すだけでなく、管理端末1600や、メールなどで使用者にIOエラーを通知しても良い。
 以上、ストレージ装置300におけるページ割当て処理の流れの一例を説明した。なお、図22の説明において、入出力制御部1300が行う処理を、例えば、入出力処理プログラム1240を実行するプロセッサ1310が行ってもよい。プロセッサ1310は、仮想ボリューム処理プログラム1220に仮想ボリュームに関わる処理を実行させてもよい。
 図23は、図21のステップS5020において実行されるストレージ装置300における階層記憶制御処理の処理手順を示すフローチャートである。階層記憶制御処理は、定期的に実行される階層記憶制御もしくは管理計算機100の指示により実行される階層記憶制御で使用される処理である。以下では、各プールにおける階層記憶制御処理について説明している。
 まず、ストレージ装置300の入出力制御部1300は、指定されたプールの階層記憶プール管理情報1290における割当情報12907を参照する(S8000)。ステップS8000において、入出力制御部1300は、最下位階層の階層記憶アドレスマップ情報の上位エントリから順に参照する。以下、説明のため、入出力制御部1300が現時点のページの置き換え元として参照している階層をソース階層、階層記憶プール管理情報1290のソース階層の階層記憶アドレスマップ情報のエントリをソースエントリと称する。また、ページの置き換え先として参照する階層をターゲット階層、階層記憶プール管理情報1290のターゲット階層の階層アドレスマップ情報のエントリをターゲットエントリと称する。
 次に、入出力制御部1300は、今回の階層制御処理が階層記憶制御指示によるものなのかを判定する(S8005)。ここで、階層記憶制御指示によるものである場合、後述の階層制御要求処理(S8200)を実行する。一方、階層記憶制御指示ではない場合、入出力制御部1300は、ステップS8010以降の処理を実行する。
 入出力制御部1300は、ソース階層に対して規定されている基準アクセス頻度(基準値)と、該当エントリの割当情報12907に記載されているアクセス頻度を比較する(S8010)。階層記憶制御処理では、各階層には基準となるアクセス頻度(基準アクセス頻度)が、あらかじめ使用者等により指定されている。ステップS8010では、この基準アクセス頻度を超えている場合に、階層の異なる実ボリューム間でページ移動が実行される。
 ステップS8010において、ソースエントリのアクセス頻度12910が基準値を上回る場合には、入出力制御部1300は、さらに、ソース階層に上位階層があるかを判定する(S8090)。ステップS8090において、ソース階層よりも一つ上位の階層がある場合には、入出力制御部1300は、当該階層をターゲット階層として選定し(S8070)、当該階層の基準値と比較する(S8010)。ここで、ターゲット階層の初期値はソース階層と同じ値として設定されている。
 入出力制御部1300は、上記処理を繰り返し、基準値を超えないターゲット階層を特定する。なお、ステップS8090において、ソース階層に上位階層がないと判定された場合には、入出力制御部1300は、対応するページの移動をせずに(S8120)、ステップ8025以降の処理を実行する。このように、ソース階層に上位階層が無い場合、すなわち、ソース階層が最上位階層であると入出力制御部1300が判断した場合、最上位階層を使い続けるために、入出力制御部1300は、ソースエントリのページ移動をせず、そのまま処理を継続する。
 一方、ステップS8010において、ソースエントリのアクセス頻度12910が基準値以下である場合には、入出力制御部1300は、ソース階層とターゲット階層が同一かを判定する(S8013)。ステップS8013において、ソース階層とターゲット階層が同一であると判定された場合には、入出力制御部1300は、ソースエントリが示すページは現状配置されている階層記憶の基準値を満たしており、ソースエントリのページ移動の必要が無いと判断し、ステップ8025以降の処理を実行する。
 一方、ステップS8013において、ソース階層とターゲット階層が同一でないと判定された場合には、入出力制御部1300は、ソースエントリが示すページは現状配置されている階層記憶の基準値を満たしておらず、ソースエントリのページ移動の必要があると判断し、ターゲット階層の階層記憶アドレスマップ情報の空き総容量12905を参照し、ターゲット階層にページ移動が可能な空きのある実ボリュームが存在するかを確認する(S8015)。
 ステップS8015において、ターゲット階層に空きが無いと判定された場合には、入出力制御部1300は、ターゲット階層にソースエントリのアクセス頻度12910の参照頻度よりも低い参照頻度のエントリでかつ割り当て情報がページロック以外であるか否かを判定する(S8100)。
 ステップS8100において、ターゲット階層にソースエントリのアクセス頻度12910よりも低い参照頻度のエントリが無い、または、ターゲット階層にソースエントリのアクセス頻度12910よりも低い参照頻度のエントリはあるがその割り当て情報12907がページロックのものしか無いと判定された場合には、入出力制御部1300は、ターゲット階層よりも一つ下位の階層をターゲット階層に選定し(S8107)、ターゲット階層がソース階層と同一かを判定する(S8013)。
 ステップS8100において、ターゲット階層にソースエントリのアクセス頻度12910の参照頻度よりも低い参照頻度のエントリがあり、かつ、当該エントリの割り当て情報12907がページロック以外の場合には、入出力制御部1300は、ソースエントリとターゲットエントリとのページの入れ替えを実行する(S8110)。
 一方、ステップS8015において、ターゲット階層にページ移動が可能な空きのある実ボリュームが存在する場合には、入出力制御部1300は、ターゲット階層の空きが存在する実ボリュームに対しページ移動を実行する(S8020)。
 入出力制御部1300は、ステップS8020、ステップS8110、または、ステップS8120を実行した後、ソースエントリを次のエントリに変更する(S8025)。
 次に、入出力制御部1300は、プール内のソース階層の全ソースエントリについて判定処理を実行したかを確認し(S8030)、未処理のエントリがある場合には、ステップS8010以降の処理を再度実行する。
 一方、ステップS8030において、ソース階層に未処理のエントリが無い場合、ソース階層よりも一つ高位の階層をソース階層に設定する(S8040)。ステップS8040において設定された階層が最上位階層を上回っていない、すなわち、ソース階層よりも一つ高位の階層が存在する場合には(S8050でNo)、入出力制御部1300は、ステップS8000から再度処理を実行する。
 一方、ステップS8040において設定された階層が最上位階層を上回っている場合、すなわち、ソース階層よりも1階層高い階層が存在しない場合には(S8050でYes)、入出力制御部1300は、プール内の全階層の階層記憶アドレスマップ情報におけるアクセス頻度12910の参照頻度を0にリセットして(S8130)、階層記憶制御処理を終了する。
 図24は、図23のステップS8200において実行されるストレージ装置における階層記憶制御要求処理の処理手順を示すフローチャートである。階層記憶制御要求処理は、管理計算機100の指示によりストレージ装置300において実行される階層記憶制御処理が実行されることを前提としている。図23に示した階層記憶制御処理は定期的に実行される処理であるのに対し、階層記憶制御要求処理は、管理計算機100による指示のもと実行される処理である。また、階層記憶制御要求処理は、ページ単位に実行されることを前提に説明するが、IO要求のオプション領域に指定されたアドレスマップに複数のページが含まれる場合は、ページの個数分、本処理を繰り返し実行される。以下では、各プールにおける階層記憶制御要求処理について説明している。
 まず、ストレージ装置300の入出力制御部1300は、IO要求7300により指定された指示内容73002がページロック開始またはページロック解除であるか否かを判定する(S8210)。ステップS8210において、指示内容73002がページロック開始または解除であると判定された場合には、ページロック処理のための判定処理(S8215)を実行する。
 ステップS8215において、入出力制御部1300はさらにIO要求の指示内容73002がページロック開始かを判定する。ステップS8215において、指示内容72002がページロック開始であると判定された場合には、ステップS8235を実行する。一方、ステップS8215において、指示内容72002がページロックではなく、ページ解除であると判定された場合には、ステップS8245を実行する。
 ステップS8235において、入出力制御部1300は、IO要求の宛先73001に指定されたページをページロックする。具体的に、入出力制御部1300は、IO要求の宛先73001に指定された仮想論理ボリュームのアドレスが指す仮想論理ボリューム管理情報1270の該当エントリのページロックフラグをYesに設定する。さらに、入出力制御部1300は、仮想論理ボリューム管理情報1270内の該当エントリの階層アドレスポインタから、階層記憶プール管理情報1290の該当アドレス内の割当情報12907をページロックする。その後、階層記憶制御要求処理を終了し、呼び出し元の処理に戻る。
 また、ステップS8245において、入出力制御部1300は、IO要求の宛先73001に指定されたページを解放する。具体的に、入出力制御部1300は、IO要求の宛先73001に指定された仮想論理ボリュームのアドレスが指す仮想論理ボリューム管理情報1270の該当エントリのページロックフラグをNoに設定する。さらに、入出力制御部1300は、仮想論理ボリューム管理情報1270内該当エントリの階層アドレスポインタから、階層記憶プール管理情報1290の該当アドレス内割当情報12907のページロックを解除する。その後、階層記憶制御要求処理を終了し、呼び出し元の処理に戻る。
 一方、ステップS8210の判定の結果、指示内容73002がページロック開始でも解除でもない場合には、入出力制御部1300は、IO要求の指示内容73002がページ移動であり、かつ、IO要求で指定されたページが現状配置されている階層記憶の階層よりもIO要求で指定された階層が下位であるかを判定する(S8220)。ステップS8220において、入出力制御部1300は、IO要求に指定されたページが配置されている階層記憶を取得するため、IO要求に指定されたアドレスに対応する仮想論理ボリューム管理情報1270のエントリを参照し、当該エントリの階層番号12704を参照する。ステップS8220において、現状の階層記憶よりも下位の階層記憶にページ移動すると判定された場合には、入出力制御部1300は、ステップS8240の処理を実行する。
 ステップS8240において、入出力制御部1300は、IO要求に指定されたページが配置されている階層記憶に空き実ボリュームがあるかを判定する(S8240)。具体的に、入出力制御部1300は、階層記憶プール管理情報1290の空き総容量12905を参照して、IO要求に指定されたページが配置されている階層記憶の空き総容量を取得する。これにより、入出力制御部1300は、得られた空き総容量から該当する階層記憶に新たなページの配置が可能かを判定する。
 ステップS8240において、該当する階層記憶に新たなページの配置が可能と判定された場合には、入出力制御部1300は、IO要求で指定されたページを現状の階層記憶から指定された階層記憶に移動する(S8295)。
 一方、ステップS8240において、該当する階層記憶に新たなページの配置ができないと判定された場合には、入出力制御部1300はIO要求で指定されたページと移動先の階層記憶の1ページの入れ替えを実施する。移動先である階層記憶から選出するページは、該当階層記憶の中で最もアクセス頻度の高いページである。これは、ページの入れ替えにより移動する階層記憶が現在配置されている階層記憶よりも上位のものになるため、移動先である上位階層記憶の高い性能を有効に活用する狙いがある。具体的に、入出力制御部1300は、階層記憶プール管理情報1290のIO要求7300で指定された移動先の階層記憶アドレスマップ情報の該当エントリにあるアクセス頻度12910を参照し、その頻度が最大のものを選出する(S8250)。
 次に、入出力制御部1300は、IO要求7300で指定されたページとステップ8250で選出した移動先ページとを入れ替える(S8260)。入れ替え完了後、入出力制御部は呼び出し元の処理に戻る。
 一方、ステップ8220において、現状の階層記憶よりも下位の階層記憶にページを移動しないと判定された場合には、入出力制御部1300は、ステップS8230を実行する。
 ステップS8230において、入出力制御部1300は、IO要求の指示内容73002がページ移動であり、かつ、IO要求で指定されたページが現状配置されている階層記憶の階層よりもIO要求で指定された階層が上位であるか否かを判定する(S8230)。ステップS8230の判定においても、ステップS8220で実施した判定と同様の手順で、IO要求7300で指定されたページが上位階層記憶に移動するか否かを判定する。
 ステップS8230において、現状の階層記憶よりも上位の階層記憶にページ移動すると判定された場合には、入出力制御部1300は、ステップS8270を実行する。
 ステップS8270において、入出力制御部1300は、IO要求に指定されたページが配置されている階層記憶の空き総容量を、ステップS8240と同様の手順で取得し、得られた空き総容量から該当する階層記憶に新たなページの配置が可能かを判定する。
 ステップS8270において、該当する階層記憶に新たなページの配置が可能であると判定された場合には、入出力制御部1300は、IO要求で指定されたページを現状の階層記憶から指定された階層記憶に移動する(S8295)。
 一方、ステップS8270において、該当する階層記憶に新たなページの配置ができないと判定された場合には、入出力制御部1300は、IO要求で指定されたページと移動先の階層記憶の1ページの入れ替えを実行する。後述するステップS8290において、移動先である階層記憶から選出されるページは、該当階層記憶の中で最もアクセス頻度の低いページである。これは、ページの入れ替えにより移動する階層記憶が現在配置されている階層記憶よりも下位になるため、移動先の下位階層記憶の低い性能でも十分にその階層記憶を活用できるようにすることを意図している。
 具体的に、入出力制御部1300は、階層記憶プール管理情報1290のIO要求7300で指定された移動先の階層記憶アドレスマップ情報の該当エントリにあるアクセス頻度12910を参照し、その頻度が最小のものを選出する(S8280)。
 次に、入出力制御部1300は、IO要求7300で指定されたページとステップ8280で選出した移動先ページとを入れ替えを行う(S8290)。入れ替え完了後、入出力制御部は呼び出し元の処理に戻る。
 一方、ステップ8230において、現状の階層記憶よりも上位の階層記憶にページ移動するものではないと判定された場合には、入出力制御部1300は、IO要求の階層制御指示がボリューム階層状態取得であるとして、ステップS8232を実行する。
 ステップ8232において、入出力制御部1300は、IO要求が指定した仮想論理ボリュームの階層配置を取得し、IO要求7300の要求元に返送する。具体的に、入出力制御部1300は、IO要求7300の宛先で指定される論理ボリュームが指す仮想論理ボリューム管理情報1270のアドレスマップを参照し、そのアドレスマップ内の仮想アドレス12703、階層番号12704をアドレスマップから抜き出し、当該情報をIO要求7300の要求元に返送する(ステップ8232)。その後、入出力制御部1300は、呼び出し元の処理に戻る。
 以上のように、階層記憶制御要求処理をストレージ装置300で実施することで、管理計算機100の指示に基づいて、ストレージ装置300上の階層記憶をページ単位で制御することが可能となる。
(1-5-2)ホスト計算機の動作の詳細
 次に、ホスト計算機200の動作の詳細について説明する。図25は、ホスト計算機200上で起動するアプリケーション及びジョブの概念について説明する概念図である。
 ホスト計算機200では、1つまたは複数のアプリケーションを同時に実行させることができる。アプリケーションを実行する場合には、ジョブとよばれるスクリプトプログラムに実行対象のアプリケーション名、アプリケーションが使用するデータセット名などを規定し、そのジョブを実行(SUBMIT)する。具体的に、ジョブはアプリケーション名やデータセット名だけではなく、ジョブ名、ジョブの種別であるジョブクラス、ジョブの使用者等を規定することも出来る。ジョブの実行が使用者により指示されると、OS212の指示に従って、ホスト計算機200はジョブを開始する。
 図25に示すように、OS212には、ホスト計算機200でジョブを処理するための3つの処理部が備えられている。具体的に、OS212内には、ジョブ受付、ジョブスプール、アプリケーション実行部が備わっている。例えば、ジョブ実行を使用者に指示されると、OS内のジョブ受付部がそのジョブを受け付け、ジョブで規定されている種々の情報を取得するための処理をホスト計算機200に指示する。ここで、使用者により実行が指示されたジョブをこのジョブとよぶことにする。
 ホスト計算機200は、ジョブで規定されている情報を取得後、このジョブに関しジョブスプール部の処理を実行する。ジョブスプール部では、アプリケーション実行部でこのジョブの処理が可能になるまで、このジョブの実行が保留される。
 アプリケーション実行部で新しいジョブの処理が可能になると、ホスト計算機200はこのジョブに関する処理を、ジョブスプール部からアプリケーション実行部の処理に切り替える。アプリケーション実行部では、ジョブに規定されているアプリケーションが実行される。アプリケーションが実行されて初めて、当該ジョブに規定されたアプリケーションプログラム用データが参照される。
 アプリケーション実行部での処理が終了する(すなわち、このジョブに規定されたアプリケーションの処理が完了する)と、ホスト計算機200は、このジョブの終了処理を実行し、ジョブを終了させる。
(1-5-3)管理計算機の動作の詳細
 次に、管理計算機100の動作の詳細について説明する。管理計算機100は、準備段階及び運用段階の2段階の動作を行う。基本的に、管理計算機100は、ストレージ装置300に指示を出す場合、ホスト計算機200のメモリ210に存在するエージェントプログラム213に指示を出し、ホスト計算機200は、当該エージェントプログラム213の指示に従い、ストレージ装置300にIO要求を発行する。また、ホスト計算機200は、ホスト計算機200上のOSやアプリケーションの状態の変更を検知することができ、検知した場合はその内容を管理計算機100に通信ネットワーク550を介して通知する。ホスト計算機200から検知結果を通知された管理計算機100は、通知内容にしたがって、ホスト計算機200またはストレージ装置300に指示を発行し、当該機器を制御する。このように、ホスト計算機200と管理計算機100を分離する理由は、複数のホスト計算機200を1管理計算機で集中して管理するためである。
 まず、準備段階における管理計算機100の動作の詳細について説明する。図26は管理計算機100における環境構築段階の動作の詳細を示すフローチャートである。
 準備段階の動作は、管理計算機100のプロセッサ120がストレージ管理プログラム111に基づいて処理を実行することで実現される。以下、フローチャートでは、単に管理計算機100を主語にして説明を行うが、すべての動作は管理計算機100のプロセッサ120が実行するものである。
 まず、管理計算機100は、計算機システム10上に存在するホスト計算機200を検出する(S4010)。ホスト計算機200を検出するための情報として、例えば、管理計算機100の使用者によるIPアドレスの入力を使用する。アドレスの入力は、例えば、192.168.1.1から192.168.1.50といったIPアドレスの範囲を入力でも良いし、特定のIPアドレスを入力してもよい。管理計算機100は、ホスト計算機200のエージェントプログラム213用の情報取得要求を作成し、入力されたIPアドレスに向けて発行する。ホスト計算機200が情報取得要求を受信した場合、このホスト計算機200上のエージェントプログラム213の指示に基づき、このホスト計算機200が存在することを管理計算機100に返信する。管理計算機100はホスト計算機200から返信があるものに対し、この返信に含まれる情報を基にして、ホスト構成管理テーブル118を作成する。ただしこの時点では、管理計算機100はホスト構成管理テーブル118のホストID1181にのみ応答のあったホスト計算機200のIPアドレス、ホストID等のホスト計算機を識別するための情報を設定する。
 次に、管理計算機100は、計算機システム10上に存在するストレージ装置300を検出する(S4020)。ステップS4020におけるストレージ装置300の検出は、ステップS4010と同様に、管理計算機100の使用者によって入力されたIPアドレスを基に、管理計算機100により、ストレージ装置300向けの情報取得要求が作成される。ストレージ装置300では、記憶制御装置1000のプロセッサ1310がこの情報取得要求を受信すると、共有メモリ1200に格納されるボリューム管理情報1250と、ストレージ基本情報1260とを参照し、それら情報をまとめて管理計算機100に返信する。管理計算機100は、ストレージ装置300から返信があるものに対し、この返信に含まれる情報を基にして、ストレージ情報テーブル101を作成する。
 次に、管理計算機100は、制御対象となるアプリケーションデータとその優先度を設定する(S4030)。アプリケーションデータの設定には、直接データを設定するデータセット指定の他、指定された時刻に実行されるアプリケーション全てを対象とする時刻指定、アプリケーションを起動するためにジョブを指定するジョブ指定、ジョブの種別を指定するジョブクラス指定、ある特定の使用者が実行するジョブすべてを対象とするユーザ名指定等がある。これ以外に間接的に階層記憶対象のデータを指定してもよい。これらのデータの指定は複数の項目を指定することが出来る。
 また、複数の項目を指定する場合、それぞれの項目の優先度を指定する。一方、データの優先度には、高優先、低優先がある。制御対象のデータを複数指定する場合、指定した項目に該当するデータ全てが階層記憶制御の対象となる。ただし、複数の項目に1つのデータが該当する場合、入力項目の優先度の高い項目を優先する。管理計算機100は、使用者により指定された項目をユーザ設定情報管理テーブル114に格納する。ここで、管理計算機100の使用者は管理計算機100の入力画面をみながら、入力デバイスなどを介し、上記を設定することができる。
 ここで、図27に管理計算機100の入力画面の一例を示す。図27の入力画面140では、時刻指定、ジョブ名、ジョブクラスを指定することができ、それぞれの項目に対し、例えば時刻T1~T2に実行されるジョブが使用するデータすべてを、低優先で階層制御することを指定する。ここで低優先に設定され、かつ、上位階層記憶に配置されたデータについては、ページロックされていたとしても、ページ置き換えの対象になる場合がある。例えば、後続の高優先で設定されたデータの階層制御のために、上位階層記憶に空き領域を作る必要がある場合に、ページの置き換え処理が実行される。このようなページ置き換え処理を横取り処理と称して以降説明する。横取り処理については、後で詳細に説明する。
 次に、管理計算機100は、データを検出する(S4040)。管理計算機100は、ホスト計算機200のOS212に登録されているボリューム情報と、ステップ4020で作成したストレージ情報テーブル101を基にデータを検出する。具体的に、ホスト計算機200が認識するボリュームの内、仮想論理ボリュームであるものを選出する。データの検出処理は、管理計算機100が、ホスト計算機200のエージェントプログラム213向けの情報取得要求を作成し、当該要求をホスト計算機200に発行し指示することにより実行される。
 ホスト計算機200が情報取得要求を受信した場合、このホスト計算機200上のエージェントプログラム213の指示に基づき、このホスト計算機200の構成情報を管理計算機100に返信する。この構成情報には、データの名称とそのデータが格納される論理ボリューム及び論理ボリュームの格納アドレス(格納アドレスとは、例えば、論理ボリュームのシリンダ、ヘッダ数、もしくはSCSIのLBAなどである)の情報が含まれる。
 管理計算機100は、構成情報から検出した論理ボリュームをホスト構成管理テーブル118のボリューム情報(1182、1183、1184、1185,1186)に登録する。さらに、管理計算機100は、階層記憶制御処理の対象となる仮想論理ボリュームのみを絞り込むため、ストレージ情報テーブル101内の仮想フラグ1013が仮想論理ボリュームであるボリューム情報だけを、制御対象データ管理テーブル113のデータセット名11301、デバイスID11302、及び、格納ADR11303に登録する。
 次に、管理計算機100は、入出力頻度管理テーブル115を参照する。これにより管理計算機100は、制御対象データ管理テーブル113に登録された仮想論理ボリュームで、そのボリュームに配置されたデータに関するファイル編成や頻繁にアクセスされる領域を検出するための必要な情報を取得することができる。管理計算機100は、入出力頻度管理テーブル115の取得方法11504に指定されている手段を使用し、制御対象データ管理テーブル113に登録されているデータのファイル編成、ファイル編成詳細を取得する。ここで、ファイル編成にはOS212のファイル編成特定のためのツールの実施結果が登録され、ファイル編成詳細には、入出力頻度管理テーブル115の情報の取得方法11504に記載の手段で取得したデータ内で高頻度に入出力される領域の情報が登録されている。
 次に、運用段階における管理計算機100の動作の詳細について説明する。運用段階では、実行されるジョブの状態により、3つの動作、すなわち、階層記憶割り当て動作、階層記憶の優先度変更動作、階層記憶割り当て解除動作がある。以下、運用段階におけるそれぞれの段階の管理計算機100による動作の詳細を順次説明する。
 まず、図28を参照して、運用段階における階層記憶割り当て動作について説明する。管理計算機100による階層記憶割り当て動作は、階層記憶制御対象のジョブがホスト計算機200で実行された時点で開始される。上記ジョブの実行を検出するべく、ホスト計算機200は、エージェントプログラム213の指示にしたがって、ホスト計算機200のOS212の処理を監視する。
 管理計算機100は、ホスト計算機200上でジョブが実行されたかを判定する(S3010)。上記したように、ホスト計算機200は、OS212を介してジョブが投入されたことを検出する。ホスト計算機200は、OS212を介してジョブが実行されたことを検出し、管理計算機100にジョブが実行されたことを通知する。ここで、ホスト計算機200で実行されたジョブを実行ジョブとよぶことにする。
 次に、管理計算機100は、実行ジョブに関する情報の収集をホスト計算機200に指示する(S3020)。実行ジョブに関する情報収集の指示を受け取ったホスト計算機200は、OS213に問い合わせを実施し、実行ジョブに関する情報を収集して、管理計算機100に通知する。ステップS3020において収集される実行ジョブに関する情報は、ジョブ名、データセット名、ユーザ名、ジョブクラスなどが挙げられる。
 次に、管理計算機100は、ステップS3020において収集したジョブの情報が階層記憶制御対象のジョブであるかを判定する(S3030)。管理計算機100は、ユーザ設定情報管理テーブル114を参照し、使用者により設定された項目に、実行ジョブが該当するかを比較することによりステップS3030の判定を実行する。ステップS3030において、実行ジョブが階層記憶制御対象でないと判定された場合には、処理を終了する。
 一方、ステップ3030において、実行ジョブが階層記憶制御対象である場合には、管理計算機100はステップS3020において得られた実行ジョブの情報と、ユーザ設定情報管理テーブル114に該当する項目の階層記憶優先度11404を基に、実行中ジョブ管理テーブル112を作成する(S3040)。
 次に、管理計算機100は、実行ジョブが過去にホスト計算機200上で実行されたことがあるかを判定する(S3050)。ステップS3050では、作成した実行中ジョブ管理テーブル112のデータセット名11202と同名のデータセット名が制御対象データ管理テーブル113にあり、かつ、そのデータセット名に関連する制御対象データ管理テーブル113上の過去階層ポインタ11306が登録されている場合に、管理計算機100は過去に実行ジョブが実行されていると判定する。ステップ3050において、過去に実行ジョブが実行されていたと判定された場合には、管理計算機100は、後述の過去実行ジョブ割り当て階層記憶処理(S3200)を実行し、処理を終了する。
 一方、ステップS3050において、過去に実行ジョブが実行されていないと判定された場合には、後述の細粒度階層記憶割り当て処理(S3500)を実行し、処理を終了する。
 以上の管理計算機100による階層記憶割り当て動作により、ホスト計算機200で実行されるジョブの中で、階層記憶制御対象であるものが選出され、さらに、実行されるジョブが過去にも実行される場合、過去のジョブ実行の実績に基づいた階層記憶制御処理が実行される。また、過去にジョブの実行がない場合も、ファイル編成の特性に基づき階層記憶を細やかな単位で制御することができる。
 次に、図28のステップS3500における細粒度階層記憶割り当て処理について説明する。図29は、管理計算機100による細粒度階層記憶割り当て処理の処理手順を示すフローチャートである。
 まず、管理計算機100は、ストレージ装置300の階層記憶の状態を取得する(S3501)。具体的に、管理計算機100は、ストレージ装置300の階層記憶の状態を把握するため、ホスト計算機200にストレージ装置300における階層記憶容量の状態に関する問い合わせを指示する。ホスト計算機200は、管理計算機100の指示により、指示内容としてプール状態取得を指定したIO要求7300を作成し、ストレージ装置300に発行する。当該IO要求を受け取ったストレージ装置300は、IO要求に指示されたプールIDをもつ階層記憶プール管理情報1290を参照し、階層記憶番号とその総容量情報、空き総容量情報などをホスト計算機200に返す。IO要求の応答を受け取ったホスト計算機200は、取得した情報を管理計算機100に転送する。管理計算機100はホスト計算機200から情報を受信すると、階層記憶利用状況管理テーブル116の該当領域(全体容量11602、空き容量11603)を更新する。
 次に、管理計算機100は、階層記憶割り当て動作で検出した実行ジョブのファイル編成に基づいて、階層記憶制御処理を実行する。具体的に、管理計算機100は、実行ジョブのファイル編成を制御対象データ管理テーブル113から取得して、ファイル編成が仮想記憶アクセス(VSAM)かを判定する(S3510)。
 ステップS3510において、得られたファイル編成が仮想記憶アクセス(VSAM)である場合には、管理計算機100は、仮想記憶アクセスファイル編成用の階層記憶制御のための処理(ステップ3511、3512、3513、3514)を実行する。
 ステップ3511において、管理計算機100は、上位階層記憶の容量がデータセット(DS)分あるかを判定する(S3511)。具体的に、管理計算機100は、入出力頻度管理テーブル115の仮想記憶アクセスファイル編成の情報を取得して、実行ジョブ使用のデータのファイル編成に関する入出力頻度情報を取得する。そして、管理計算機100は、入出力頻度管理テーブル115を取得することにより、最も入出力頻度の高い領域がIndex領域であり、次に高い領域がデータセット全体であることを把握する。そこで、管理計算機100は、階層記憶利用状況管理テーブル116の空き容量11603を参照して、実行ジョブが使用するデータセット全体が上位の階層記憶に配置可能かを判定する。ステップS3511では、ストレージ装置300から最大の入出力性能を得るために、実行ジョブが使用するデータセット全体が上位の階層記憶に配置可能であるかを判定している。
 ステップS3511において、上位階層にデータセット全体が配置可能であると判定された場合には、管理計算機100は、データセット全体を上位階層に割り当てる(S3512)。具体的に、管理計算機100は、データセット全体とその階層番号を階層テーブル117に登録し、階層テーブル117を基に、ページ階層移動およびページロック開始を、ホスト計算機200に指示する。上記指示を受け付けたホスト計算機200は、指示内容にページ階層移動、オプションに階層テーブル117の内容を登録したIO要求を作成し、ストレージ装置300に指示する。次に、ホスト計算機200は、指示内容にページロック開始、オプションに階層テーブル117の内容を登録したIO要求を作成し、ストレージ装置300に指示する。ストレージ装置300は、上記2つのIO要求を受信し、IO要求に指定された記憶領域に関し、ページ移動、およびページロック処理を実施する。ストレージ装置300の階層記憶制御完了後、管理計算機100は、制御対象データ管理テーブル113のファイル編成詳細11305をデータセットに変更する。そして、管理計算機100は、階層記憶利用状況管理テーブル116のページロック済み容量11604、11605の値を更新する。ここで、高優先か、低優先のいずれを更新するかは、実行中ジョブ管理テーブルの優先度11204に設定された内容に基づき実施する。すなわち、実行中ジョブ管理テーブル112の優先度11204が高優先の場合、階層記憶利用状況管理テーブル116の高優先11604の情報を更新する。
 ステップ3511において、上位階層にデータセット全体が配置不可能であると判定された場合には、管理計算機100は、上位階層の容量がIndex分あるかを判定する(S3513)。具体的に、管理計算機100は、階層記憶利用状況管理テーブル116の空き容量11603を参照して、実行ジョブが使用するデータセットで最も参照頻度の高いIndex領域が上位階層記憶に配置可能かを判定する。
 ステップS3513において、上位階層へのIndex領域の配置が可能であると判定された場合には、ステップS3512で説明した処理と同様にIndex領域分の階層記憶制御をストレージ装置300に指示する。ストレージ装置300の階層記憶制御完了後、管理計算機100は、制御対象データ管理テーブル113のファイル編成詳細11305をIndexに変更する。次に、管理計算機100は、階層記憶利用状況管理テーブル116のページロック済み容量11604,11605の値を更新する(S3514)。
 ステップS3513において、上位階層へのIndex領域の配置が不可能であると判定された場合には、管理計算機100は、後述の横取り処理を実行する(S3600)。
 一方、ステップS3510において、実行ジョブのファイル編成がVSAMではなく、区分である場合には、管理計算機100は、区分ファイル編成用の階層記憶制御のための処理(ステップS3521、S3522)を実行する。
 ステップS3521において、管理計算機100は、上位階層記憶の容量がデータセットの先頭領域分あるかを判定する(S3521)。具体的に、管理計算機100は、入出力頻度管理テーブル115における区分の情報を取得して、実行ジョブ使用データのファイル編成に関する入出力頻度情報を取得する。管理計算機100は、入出力頻度管理テーブル115から情報を取得することにより、最も入出力頻度の高い領域がDirectory領域であることを把握する。そこで、管理計算機100は、階層記憶利用状況管理テーブル116の空き容量11603を参照して、実行ジョブが使用するデータセットの内、Directory領域が上位階層記憶に配置可能かを判定する。ステップS3521では、ストレージ装置300から最大の入出力性能を得るために、実行ジョブが使用するデータセットの内、Directory領域が上位階層記憶に配置可能かを判定している。
 ステップS3521において、上位階層へのDirectory領域の配置が可能であると判定された場合には、管理計算機100は、Directory領域を上位階層に割り当てる指示を行う(S3522)。具体的に、管理計算機100は、Directory領域とその階層番号を階層テーブル117に登録し、階層テーブル117を基に、ページ階層移動およびページロック開始を、ホスト計算機200に指示する。上記指示を受け付けたホスト計算機200は、指示内容にページ階層移動、オプションに階層テーブル117の内容を登録したIO要求を作成し、ストレージ装置300に指示する。次に、ホスト計算機200は、指示内容にページロック開始、オプションに階層テーブル117の内容を登録したIO要求を作成し、ストレージ装置300に指示する。ストレージ装置300は、上記2つのIO要求を受信し、IO要求に指定された記憶領域に関し、ページ移動、およびページロック処理を実行する。ストレージ装置300の階層記憶制御完了後、管理計算機100は制御対象データ管理テーブル113のファイル編成詳細11305をデータセットに変更する。次に、管理計算機100は、階層記憶利用状況管理テーブル116のページロック済み容量11604,11605の値を更新する。ここで、高優先か、低優先のいずれを更新するかは、実行中ジョブ管理テーブルの優先度11204に設定された内容に基づき実施する。すなわち、実行中ジョブ管理テーブル112の優先度11204が高優先の場合、階層記憶利用状況管理テーブル116の高優先11604の情報を更新する。
 ステップS3521において、上位階層へのDirectory領域の割り当てが不可能であると判定された場合には、管理計算機100は、後述の横取り処理を実行する(ステップ3600)。
 一方、ステップS3520において、実行ジョブのファイル編成が区分ではないと判定され、順次であると判定された場合には、管理計算機100は、順次ファイル編成用の階層記憶制御のための処理(ステップS3531、S3532)を実行する。
 ステップS3531において、管理計算機100は、上位階層記憶の容量がVTOC領域分あるかを判定する。具体的に、管理計算機100は、入出力頻度管理テーブル115における区分の情報を取得して、実行ジョブの使用データのファイル編成に関する入出力頻度情報を取得する。入出力頻度管理テーブル115から情報を取得することにより、管理計算機100は、最も入出力頻度の高い領域がVTOC領域であることを把握する。そこで、管理計算機100は、階層記憶利用状況管理テーブル116の空き容量11603を参照して、実行ジョブが使用するデータセットの内、VTOC領域が上位階層記憶に配置可能かを判定する。ステップS3531では、することでストレージ装置300から最大の入出力性能を得るために、VTOC領域が上位階層記憶に配置可能かを判定している。
 ステップS3531において、上位階層へのVTOC領域の配置が可能であると判定された場合には、管理計算機100は、VTOC領域を上位階層に割り当てる指示を行う(S3532)。具体的に、管理計算機100は、VTOC領域とその階層番号を階層テーブル117に登録し、階層テーブル117を基に、ページ階層移動およびページロック開始を、ホスト計算機200に指示する。上記指示を受け付けると、ホスト計算機200は指示内容にページ階層移動、オプションに階層テーブル117の内容を登録したIO要求を作成し、ストレージ装置300に指示する。次に、ホスト計算機200は、指示内容にページロック開始、オプションに階層テーブル117の内容を登録したIO要求を作成し、ストレージ装置300に指示する。ストレージ装置300は、上記2つのIO要求を受信し、IO要求に指定された記憶領域に関し、ページ移動、およびページロック処理を実施する。ストレージ装置300の階層記憶制御完了後、管理計算機100は制御対象データ管理テーブル113のファイル編成詳細11305をデータセットに変更する。次に、管理計算機100は、階層記憶利用状況管理テーブル116のページロック済み容量11604,11605の値を更新する。ここで、高優先か、低優先のいずれを更新するかは、実行中ジョブ管理テーブルの優先度11204に設定された内容に基づき実施する。すなわち、実行中ジョブ管理テーブル112の優先度11204が高優先の場合、階層記憶利用状況管理テーブル116の高優先11604の情報を更新する。
 一方、ステップS3530において、実行ジョブのファイル編成が順次ではなくそれ以外のファイル編成であると判定された場合には、管理計算機100は、入出力頻度管理テーブル115に基づき、上記ファイル編成がVSAMもしくは区分である場合の処理と同様の処理を実行する。
 次に、図28のステップS3200における過去データセット割り当て階層記憶再現処理について説明する。図30は、管理計算機100による過去データセット割り当て階層記憶再現処理の処理手順を示すフローチャートである。
 過去データセット割り当て階層記憶再現処理は、過去に階層記憶制御処理が実行され、所定の要件に合致する高い入出力性能が得られた場合に、当該階層記憶制御処理による階層記憶へのデータ配置を再現する処理である。過去データセット割り当て階層記憶再現処理は、同一ジョブが実行される毎に繰り返される。当該処理により、繰り返し実行されることが前提となるホスト計算機200のジョブの実行において、常に高い入出力性能を提供することが可能となる。
 まず、管理計算機100は、ストレージ装置300の階層記憶の状況を取得する(S3210)。具体的に、管理計算機100は、ストレージ装置300の階層記憶の状態を把握するため、ホスト計算機200にストレージ装置300における階層記憶容量の状態に関し問い合わせを指示する。ホスト計算機200は、管理計算機100の指示により、指示内容としてプール状態取得を指定したIO要求7300を作成し、ストレージ装置300に発行する。当該IO要求を受け取ったストレージ装置300は、IO要求に指示されたプールIDをもつ階層記憶プール管理情報1290を参照し、階層記憶番号とその総容量情報、空き総容量情報などをホスト計算機200に返す。IO要求の応答を受け取ったホスト計算機200は、取得した情報を管理計算機100に転送する。管理計算機100は、ホスト計算機200から情報を受信すると、階層記憶利用状況管理テーブル116の該当領域(全体容量11602、空き容量11603)を更新する。
 次に、管理計算機100は、階層記憶毎の空き容量が、過去のデータセットを再現するための容量分あるかを判定する(S3220)。具体的に、管理計算機100は、制御対象データ管理テーブル113において、実行ジョブが使用するデータセットと名称が合致するテーブル内の行にある過去階層ポインタ11306から、過去階層保持テーブル119を参照して、実行ジョブ使用データに対し、過去の同一ジョブの実行で割り当てた階層記憶の情報を取得する。管理計算機100は、この過去階層保持テーブル119における階層番号が共通のアドレスマップ内の行数を数えることで、階層番号毎に必要な空き容量を算出する。そして、管理計算機100は、階層記憶利用状況管理テーブル116の空き容量11603を参照して、算出した階層番号(階層記憶)毎の空き容量がストレージ装置300の該当プールに存在しているかを判定する。
 ステップS3220において、階層記憶に過去データセット再現分の空きがあると判定された場合には、過去の実行ジョブが使用したデータセットに割り当てていた階層記憶を再現する(S3230)。具体的に、管理計算機100は、上記の過去階層保持テーブル119の内容を階層テーブル117に複製し、IO要求7300を作成し、ホスト計算機200を経由して、ストレージ装置300に指示を出す。管理計算機100は、2種類のIO要求7300を作成し、順次ストレージ装置300に発行する。1つめのIO要求7300は、指示内容にページ階層移動、オプションに階層テーブル117の内容が登録されたものである。2つめのIO要求7300は、指示内容にページロック開始、オプションに階層テーブル117を登録したものである。
 ステップS3220において、階層記憶に過去データセット再現分の空きがないと判定された場合には、管理計算機100は、上記した細粒度階層記憶割り当て処理を実行して(S3500)、処理を呼び出し元に戻す。
 次に、図29のステップS3600における横取り処理について説明する。図31は、管理計算機100による横取り処理の処理手順を示すフローチャートである。当該横取り処理は、制御対象のアプリケーションデータを階層記憶に割り当てる際、割当先の階層記憶に空きが無い場合、当該アプリケーションデータよりも優先度の低いデータで上位階層記憶を利用しているデータがあれば、当該領域を制御対象のデータで置き換える処理である。これにより、優先度の高いアプリケーションデータを極力高い入出力性能の階層記憶に配置することが可能となり、結果として優先度の高いアプリケーションの処理を優先的に高い性能で処理させることが可能となる。
 まず、管理計算機100は、現状の階層記憶の割り当て状況を確認する(S3610)。具体的に、管理計算機100は、階層記憶利用状況管理テーブル116を参照し、上位階層記憶(例えば階層番号11601の値が1)で低優先のページロック済み容量を取得する。
 次に、管理計算機100は、階層記憶制御対象のデータと優先度の低い上位階層記憶に配置されるデータとの置き換えが可能か否かを判定する(S3620)。具体的に、管理計算機100は、階層記憶制御対象のデータの容量がステップS3610で得られた空き容量よりも小さいか否かを判定する。
 ステップS3620において、階層記憶制御対象のデータの容量がステップS3610で得られた空き容量よりも小さいか、等しいと判定された場合には、階層記憶制御対象のデータと優先度の低い上位階層記憶に配置されるデータとを置き換えて(S3640)、呼び出し元に処理を戻す。
 一方、ステップS3620において、階層記憶制御対象のデータの容量がステップS3610で得られた空き容量よりも大きいと判定された場合には、管理計算機100は、横取り処理の実行が不可能であると判定し、アラートを管理計算機100の使用者に通知し(ステップS3630)、呼び出し元に処理を戻す。
 次に、運用段階における階層記憶の優先度変更処理について説明する。図32は、管理計算機100による階層記憶の優先度変更処理の処理手順を示すフローチャートである。
 ホスト計算機200では、OS212のアプリケーション処理部の指示により、アプリケーションが実行される。アプリケーション処理部では、アプリケーションの実行時間があまりにも長い場合、当該アプリケーションの優先度を変更し、早期に処理を完了させる場合がある。階層記憶の優先度変更処理では、アプリケーションの優先度が変更になった場合に、階層記憶制御で対応するための処理である。例えば、優先度が高まったアプリケーションに対しては、当該アプリケーションが利用するデータで、低位の階層記憶に配置されているものを上位階層記憶に移動させることにより、アプリケーションの優先度の変更に対応することができる。
 まず、管理計算機100は、階層記憶制御処理を行っているジョブの優先度が変更したかを判定する(S6010)。ホスト計算機200でアプリケーションの優先度が変更になる場合、ホスト計算機200はエージェントプログラムの指示により、優先度が変更になったアプリケーションに関する情報(ジョブ名など)を管理計算機100に通知する。以下、優先度が変更になったジョブを該当ジョブと称して説明する。
 ステップS6010において、ホスト計算機200からの通知により、ジョブの優先度が変更したと判定された場合には、管理計算機100は、階層記憶の状況を取得する(S6025)。具体的に、管理計算機100は、ホスト計算機200から優先度が変更したことを通知されると、該当ジョブが入出力優先の処理か否かの調査をホスト計算機200のエージェントプログラム213に指示する。
 一方、ステップS6010において、入出力優先に関する処理ではないと判定された場合には、処理を終了する。
 そして、ステップS6025の後、管理計算機100は、ステップS6030の処理を実行する。ステップS6030では、管理計算機100は、ホスト計算機200にストレージ装置300における階層記憶容量の状態に関し問い合わせを指示する。ホスト計算機200は、管理計算機100の指示により、指示内容としてプール状態取得を指定したIO要求7300を作成し、ストレージ装置300に発行する。当該IO要求を受け取ると、ストレージ装置300は、ストレージ装置300のIO要求に指示されたプールIDをもつ階層記憶プール管理情報1290を参照し、階層記憶番号とその総容量情報、空き総容量情報などをホスト計算機200に返す。IO要求の応答を受け取ると、ホスト計算機200は得られた情報を管理計算機100に転送する。管理計算機100は上記情報を受信すると、階層記憶利用状況管理テーブル116の該当領域(全体容量11602、空き容量11603)を更新する。
 そして、管理計算機100は、ホスト計算機200に該当ジョブが使用するデータがストレージ装置300のどの階層記憶に配置されているかを調査する。具体的に、管理計算機100は、該当ジョブが使用するデータを、実行中ジョブ管理テーブル112を参照することで特定する。さらに、実行中ジョブ管理テーブル112を参照することで得られたデータセット名を下に、制御対象データ管理テーブル113を参照し、当該データがストレージ装置300のどのボリュームに配置されているかを特定する。そして、管理計算機100は、ホスト計算機200を介して、ストレージ装置300に指示内容をボリューム階層状態取得にしたIO要求7300を発行して、上記データがストレージ装置300のどの階層記憶に配置されているかを調査する。ストレージ装置300は、上記IO要求を受信すると、指定された論理ボリュームのアドレスと階層番号との関係を、仮想論理ボリューム管理情報1270を参照することで取得し、その情報をIO要求の応答と共に返す。管理計算機100は、ストレージ装置300からIO要求の応答が戻ると、IO要求の応答から得られた情報を階層テーブル117に設定する。
 次に、管理計算機100は、上位階層に空き容量があるかを判定する(S6040)。具体的に、管理計算機100は、階層テーブル117を参照し、中位階層記憶に配置されているデータの容量を計算する。そして、管理計算機100は、計算した容量がステップS6025で取得した階層記憶利用状況管理テーブル116の高位階層記憶の空き容量11603よりも小さいことを確認する。
 ステップS6040において、中位階層記憶に配置されているデータが上位階層記憶の空き容量よりも小さいか等しいと判定された場合には、管理計算機100は、階層テーブル117のデータで、階層番号11703が中位階層であるものを上位階層に書き換え、ホスト計算機200を介して2種類のIO要求7300をストレージ装置300に発行することにより、上位階層記憶に中位階層記憶に配置されているデータを移動する。ここで、2つのIO要求7300とは、1つ目のIO要求の指示内容がページ階層移動であり、2つめのIO要求の指示内容がページロックである。
 ステップS6040において、中位階層記憶に配置されているデータが上位階層記憶の空き容量よりも大きいと判定された場合には、管理計算機100は、上記した横取り処理3600を実行する(S3600)。
 次に、管理計算機100は、中位階層に空き容量があるかを判定する(S6060)。具体的に、管理計算機100は、階層テーブル117を参照し、下位階層記憶に配置されているデータの容量を計算する。そして、管理計算機100は、計算した容量がステップS6025で取得した階層記憶利用状況管理テーブル116の中位階層記憶の空き容量11603よりも小さいことを確認する。
 ステップS6060において、下位階層記憶に配置されているデータが中位階層記憶の空き容量よりも小さいか等しいと判定された場合には、管理計算機100は、階層テーブル117に格納されたデータのうち、階層番号11703が下位階層であるものを中位階層に書き換える。そして、ステップ6050同様、ホスト計算機200を介して2種類のIO要求7300をストレージ装置300に発行することにより、中位階層記憶に下位階層記憶に配置されているデータを移動する。
 ステップS6040において、下位階層記憶に配置されているデータが中位階層記憶の空き容量よりも大きいと判定された場合には、管理計算機100は、上記した横取り処理3600を実行し、処理を終了する。
 次に、運用段階における階層記憶割り当て解除処理について説明する。図33は、管理計算機100による階層記憶割り当て解除処理の処理手順を示すフローチャートである。階層記憶割り当て解除処理は、ホスト計算機200で実行されるジョブが終了することを検出すると、後続ジョブで同一データを使うものが無い限り、当該ジョブが使用するデータへの階層制御処理も終了する。
 まず、管理計算機100は、ホスト計算機200のエージェントプログラム213を介し、定期的にジョブの実行状況を監視して、実行中のジョブが終了したかを判定する(S9005)。
 ステップS9005において、実行中のジョブが終了したと判定された場合には、終了するジョブの情報を収集する。収集する情報は、ジョブ名、ジョブ開始時刻などである。ここで、管理計算機100によって検出される終了するジョブを終了ジョブとよぶことにする。
 次に、管理計算機100は、実行中ジョブ管理テーブル112を参照し、終了ジョブと同一のジョブが後続に実行されているかを判定する(ステップS9010)。具体的に、管理計算機100は、実行中ジョブ管理テーブル112を参照し、同テーブルに終了ジョブと同一ジョブ名のジョブが、終了ジョブとは別に存在しているかを確認する。
 ステップS9010において、終了ジョブと同一ジョブが存在していると判定された場合には、階層記憶制御を終了せず本処理を終了する。これにより、後続のジョブで終了ジョブと同一ジョブが実行された場合に、終了ジョブ使用データに割り当てた階層記憶を後続ジョブでも再利用することが可能となる。
 ステップS9010で後続ジョブに終了ジョブと同一ジョブが存在しない場合には、管理計算機100は、後続ジョブで終了ジョブが使用したデータセットと同一データセットを参照するものがあるか否かを確認する(S9020)。具体的に、管理計算機100は、実行中ジョブ管理テーブル112を参照し、終了ジョブが使用するデータセットと同一なデータセットを参照するジョブが存在しているか否かを確認する。
 ステップS9020において、終了ジョブと同一のデータセットを参照するジョブが存在していると判定された場合には、階層記憶制御を終了せず本処理を終了する。これにより、後続のジョブで終了ジョブと同一データセットが参照されるものと判定し、終了ジョブ使用データに割り当てた階層記憶を後続ジョブでも再利用することができる。
 ステップS9020において、後続ジョブが終了ジョブと同一のデータセットを参照するジョブが存在しないと判定された場合には、管理計算機100は、近い将来に終了ジョブと同一ジョブが再度実行されるかを判定する(S9030)。具体的に、管理計算機100は、ホスト計算機200のOS212などが備えるジョブスケジューラに終了ジョブと同一ジョブが登録されていないかを確認する。ジョブスケジューラに終了ジョブと同一ジョブが登録されている場合、さらに、管理計算機100は、スケジューラの該当ジョブが終了ジョブの終了時刻から近い間隔で実行されるものかを確認する。
 ステップS9030において、近い時間間隔で終了ジョブと同一ジョブが実行されると判定された場合には、スケジューラで実行される当該ジョブのために、階層記憶制御を終了せずに本処理を終了する。
 一方、ステップS9030において、近い時間間隔で終了ジョブと同一ジョブが実行されないと判定された場合には、ステップS9040の処理を実行する。
 ステップS9040では、管理計算機100は、現状の階層記憶の割り当て状況を取得して、当該割り当て状況を保存する。具体的に、管理計算機100は、ホスト計算機200を経由して、ストレージ装置300にIO要求(指示内容はボリューム階層状態取得)を発行し、終了ジョブが使用したデータへの階層記憶配置を取得する。ストレージ装置300は、上記IO要求を受け取ると、仮想論理ボリューム管理情報1270を参照し、同テーブル内の仮想アドレス12703と階層番号12704を抜き取り、IO要求の応答としてIO要求発行元に返す。管理計算機100は、IO要求の結果を基に、終了ジョブ使用データセット向けに過去階層保持テーブル119を作成し、保管する。
 ここで、管理計算機100は、別手段でジョブ使用データの入出力性能を監視しておき、その性能に基づき、過去階層保持テーブル119に保存する情報を変更しても良い。例えば、管理計算機100は、ジョブ使用データの入出力性能が想定よりも低いものであった場合、ストレージシステムから得られた階層記憶配置を変更し、階層記憶の低いものを高いものに変更して過去階層保持テーブル119に保存するといった処理をしても良い。この処理により、ジョブ使用データの実際の入出力性能結果に基づき、後続ジョブの入出力性能を適正化し、本来使用者が設定したジョブの入出力性能の要求値に近づけることができる。
 次に、管理計算機100は、過去のジョブが使用したデータセットに割当たっている階層記憶を解除する手続きを行う(S9040)。具体的に、管理計算機100は、過去のジョブが使用するデータセットが配置されているボリュームを宛先に設定し、ページロック解除を指示内容にしたIO要求7300をストレージ装置300に発行する。ストレージ装置300は、当該IO要求7300を受け取ると、ページロックしていた該当仮想論理ボリューム上の指定ページを解除する。
 以上、運用段階における階層記憶割り当て解除処理により、終了ジョブが使用したデータを後続ジョブで再利用することができる。これにより、高い入出力性能を常に再現することが可能となる。さらに、後続ジョブが実行されない間は、ページロックを解除することにより、上位階層記憶を別のジョブで使いまわすことができ、高価な階層記憶を有効に利用することが可能となる。
(1-6)本実施の形態の効果
 以上のように、本実施の形態によれば、アプリケーションが使用するデータのファイル編成を管理計算機100で管理することで、ファイル編成の特性を利用して、アプリケーションのデータ使用特性を引き出すことが可能となり、OSなどで管理するファイルなどの単位よりも細やかな階層制御を実現することができる。また、ホスト計算機200が備えるジョブの動作と連動することで、アプリケーションが動作する期間に相当するジョブ使用期間だけに、高価な上位階層を割り当てるように、限りある階層記憶の資源を有効に利用することが可能となる。これにより、本実施の形態による計算機システム10は、制御対象として設定したアプリケーションデータに関して、常に使用者が求める高い入出力性能を提供することが可能となる。
 また、計算機システム10では、ホスト計算機200で実行されるジョブとそのジョブが使用するデータを検出し、当該データのファイル編成を調査することで、当該データの中で参照頻度の高い領域を特定し、ストレージシステム内に配置された当該領域を上位階層記憶に移動し、ストレージシステム内の他階層記憶に移動しないように制御する。さらに、ジョブ終了を検出した際には、ジョブ使用データをストレージシステム内の上位階層記憶から移動が可能なように制御する。以上により、ジョブ実行時は当該ジョブが参照するデータを常に高い入出力性能で参照可能にするように制御することができる。また、ジョブが実行されていない場合は、当該ジョブのデータを上位階層記憶に配置しないようにすることで、資源に限りのあるストレージシステム内の階層記憶を有効に活用することが可能となり、計算機システム全体で高い入出力性能を提供することが可能となる。
(2)第2の実施の形態
(2-1)計算機システムのハードウェア構成
 次に、本発明の第2の実施の形態に係る計算機システムについて説明する。本発明の第2の実施の形態によれば、ファイル編成を持たない計算機システムであっても、アプリケーションの挙動に基づいて、階層記憶を細やかに利用して効率的な制御が可能となる。
 本実施の形態の一例として、例えば、図34に示す仮想テープシステム20を例示できる。仮想テープシステム20は、管理計算機100、ホスト計算機200A、仮想テープサーバ200B及びストレージ装置300から構成される。
 仮想テープサーバ200Bは、CPU(Central Processing Unit)やメモリ等の情報処理資源を備えたコンピュータ装置であり、例えばパーソナルコンピュータ、ワークステーション又はメインフレームなどから構成される。CPUは、演算処理装置として機能し、メモリに記憶されているプログラムや演算パラメータ等にしたがって、ホスト計算機200の動作を制御する。また、仮想テープサーバ200Bは、キーボード、スイッチやポインティングデバイス、マイクロフォン等の情報入力装置と、モニタディスプレイやスピーカ等の情報出力装置とを備えている。
 また、仮想テープサーバ200Bは、ネットワーク(図示せず)を介して管理計算機100、ホスト計算機200A及びストレージ装置300と接続されている。
 なお、本実施の形態にかかる管理計算機100、ホスト計算機200A及びストレージ装置300の構成は、第1の実施の形態にかかる管理計算機100、ホスト計算機200及びストレージ装置300と同様の構成であるため、詳細な説明は省略する。
(2-2)仮想テープシステムの動作の詳細
 仮想テープシステム20で、仮想テープサーバ200Bなどがストレージ装置300を仮想化して、ホスト計算機200Aからのテープ制御指示に基づいて、ホスト計算機200Aにはあたかもテープが動作しているものとして見せるシステムである。このように、仮想テープシステム20では、ストレージ装置300を仮想テープとして仮想化して、ホスト計算機から受信したテープ制御指示に含まれるデータをディスクドライブに保存し、ホスト計算機200Aの要求により、保存したディスクドライブからデータを読み出している。
 また、仮想テープシステム20では、論理ボリューム151にはテープフォーマットのデータが保存される。図35に、テープフォーマットのデータの一例を示す。
 図35に示すように、仮想テープフォーマット1510は、テープ関連の情報が保管されるヘッダ1511に加え、データを分割して保管するためのギャップ1512と、データそのもので、ホスト計算機に転送するために適切な容量であるレコード1513から構成される。
 仮想テープが参照される場合は、テープ同様にテープフォーマットの先頭(ヘッダ)から参照される。したがって、仮想テープのフォーマットでは、先頭に近いデータほど参照頻度が高いと言える。そこで、図36のように、管理計算機100の入出力頻度管理テーブル115に、ファイル編成が「仮想テープ」である仮想のデータセットを管理する。すなわち、ファイル編成が「仮想テープ」である場合に、高頻度入出力1欄11502に入出力頻度が最も高いデータとして「ヘッダ」が格納され、高頻度入出力2欄11503に入出力頻度が次いで高いデータとして「上位領域」が格納され、取得方法11504欄に当該高頻度入出力領域の論理ボリューム上の領域を取得するための手段として「仮想サーバツール」が格納される。
 上記した入出力頻度管理テーブル115を活用することにより、第1の実施の形態で説明したファイル編成と同様の細やかな階層制御を実現することが可能となる。
 また、仮想テープシステム20では、ホスト計算機200からのテープマウント指示により、ストレージ装置300へのデータ参照を開始する。また、ホスト計算機200からのテープアンマウント指示により、ストレージ装置300へのデータ参照を終了する。これは、上記した第1の実施の形態のジョブ開始とジョブ終了にそれぞれ相当する。
 本実施の形態では、管理計算機100が、ホスト計算機200Aによるテープ制御指示を仮想テープサーバ200Bが受信したことを検出する。管理計算機100は、検出したテープ制御指示を解析し、そのテープ制御指示がテープマウント指示である場合には、図28に示したジョブ投入に基づいた階層制御処理を実行する。一方、管理計算機100は、解析したテープ制御指示がテープアンマウント指示である場合、図33の階層記憶割り当て解除処理を実行する。
 100  管理計算機
 101  ストレージ情報テーブル
 111  ストレージ管理プログラム
 112  実行中ジョブ管理テーブル
 113  制御対象データ管理テーブル
 114  ユーザ設定情報管理テーブル
 115  入出力頻度管理テーブル
 116  階層記憶利用状況管理テーブル
 117  階層テーブル
 118  ホスト構成管理テーブル
 119  過去階層保持テーブル
 200  ホスト計算機
 211  アプリケーションプログラム
 213  エージェントプログラム
 300  ストレージ装置
 1200 共有メモリ
 1220 仮想ボリューム処理プログラム
 1230 コピー処理プログラム
 1240 入出力処理プログラム
 1250 ボリューム管理情報
 1260 ストレージ基本情報
 1270 仮想論理ボリューム管理情報
 1290 階層記憶プール管理情報
 1300 入出力制御部
 1310 プロセッサ
 1320 送受信部
 1330 メモリ
 1400 ディスク制御部
 1500 ディスクドライブ
 
 

Claims (9)

  1.  ストレージ装置と、前記ストレージ装置へのデータの書き込みを要求するホスト計算機と、前記ストレージ装置と前記ホスト計算機とを管理する管理計算機と、がネットワークを介してそれぞれ相互に接続された計算機システムであって、
     前記ストレージ装置は、
     性能の異なる複数種類の記憶媒体により提供される記憶領域をプールとして管理し、前記ホスト計算機からの前記データの書き込み要求に応じて、前記プールを構成する複数種類の階層記憶のうち何れかの階層記憶から仮想ボリュームに対してページ単位で記憶領域を割り当てる制御部と、を備え、
     前記制御部は、
     前記ホスト計算機により管理される特定のデータについて、当該特定のデータの編成情報に基づいて、当該特定のデータのうち参照頻度の高い領域を特定し、既に割り当てられている一の前記階層記憶からより性能の高い他の前記階層記憶に移動させる
     ことを特徴とする、計算機システム。
  2.  前記ストレージ装置の前記制御部は、
     前記仮想ボリュームの所定の領域に対して割当られた記憶領域に格納されているデータを、所定の条件にしたがって、既に割り当てられている一の前記階層記憶から性能の異なる他の前記階層記憶に移動させる
     ことを特徴とする、請求項1に記載の計算機システム。
  3.  前記ストレージ装置の前記制御部は、
     前記仮想ボリュームの所定の領域に対して割当られた記憶領域に格納されているデータを、当該データのアクセス頻度に応じて、既に割り当てられている一の前記階層記憶から性能の異なる他の前記階層記憶に移動させる
     ことを特徴とする、請求項2に記載の計算機システム。
  4.  前記ストレージ装置の前記制御部は、
     前記特定のデータのうち参照頻度の高い領域を前記特定のデータの編成情報に基づいて移動させた場合に、移動後の前記階層記憶から当該階層記憶と異なる前記階層記憶への前記特定のデータの移動を抑止する、
     ことを特徴とする、請求項1に記載の計算機システム。
  5.  前記管理計算機は、
     前記特定のデータの編成情報に基づいて、既に割り当てられている一の前記階層記憶からより性能の高い他の前記階層記憶に移動させる際に、前記他の階層記憶に空き領域がなかった場合には、前記ホスト計算機により実行されている複数のプログラムの優先度を比較し、当該優先度に応じて前記プログラムが使用する前記データを前記階層記憶間で移動させるように前記ストレージ装置を制御する
     ことを特徴とする、請求項1に記載の計算機システム。
  6.  前記管理計算機は、
     前記特定のデータの編成情報に基づいて、既に割り当てられている一の前記階層記憶からより性能の高い他の前記階層記憶に移動させる際に、前記他の階層記憶に空き領域がなかった場合には、前記ホスト計算機により実行されている複数のプログラムの優先度を比較し、前記特定のデータの移動先となる前記他の階層記憶の領域に記憶されている前記データを利用しているプログラムのうち、優先度の低い前記プログラムが使用する前記データを、既に割り当てられている一の前記階層記憶から、より性能の低い他の階層記憶に移動させるように前記ストレージ装置を制御する
     ことを特徴とする、請求項5に記載の計算機システム。
  7.  前記管理計算機は、
     前記ホスト計算機により実行されている一のプログラムとは異なる他のプログラムの実行が開始され、前記他のプログラムが使用するデータのうち参照頻度の高い領域を、既に割り当てられている一の前記階層記憶からより性能の高い他の前記階層記憶に移動させる際に、前記他の階層記憶に空き領域が存在せず、前記一のプログラムが前記他のプログラムよりも優先度が低い場合に、前記一のプログラムが使用するデータを、既に割り当てられている一の前記階層記憶からより性能の低い他の前記階層記憶に移動させるように前記ストレージ装置を制御する
     ことを特徴とする、請求項6に記載の計算機システム。
  8.  前記管理計算機は、
     前記ホスト計算機により実行されている一のプログラム終了時に、前記一のプログラムよりも後に実行される他のプログラムが前記一のプログラムと同一のデータを使用する場合に、前記一のプログラム終了後に、当該データが配置されている一の階層記憶から他の階層記憶への移動を抑止するように前記ストレージ装置を制御する
     ことを特徴とする、請求項5に記載の計算機システム。
  9.  ストレージ装置と、前記ストレージ装置へのデータの書き込みを要求するホスト計算機と、前記ストレージ装置と前記ホスト計算機とを管理する管理計算機と、がネットワークを介してそれぞれ相互に接続された計算機システムにおけるストレージ管理方法であって、
     前記ストレージ装置は、
     性能の異なる複数種類の記憶媒体により提供される記憶領域をプールとして管理し、前記ホスト計算機からの前記データの書き込み要求に応じて、前記プールを構成する複数種類の階層記憶のうち何れかの階層記憶から仮想ボリュームに対してページ単位で記憶領域を割り当てる制御部と、を備え、
     前記制御部が、
     前記ホスト計算機により管理される特定のデータについて、当該特定のデータの編成情報に基づいて、当該特定のデータのうち参照頻度の高い領域を特定する第1のステップと、
     既に割り当てられている一の前記階層記憶からより性能の高い他の前記階層記憶に移動させる第2のステップと、
     を含むことを特徴とする、ストレージ管理方法。
     
     
PCT/JP2011/006048 2011-10-28 2011-10-28 計算機システム及びストレージ管理方法 WO2013061382A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US13/384,040 US8954671B2 (en) 2011-10-28 2011-10-28 Tiered storage device providing for migration of prioritized application specific data responsive to frequently referenced data
PCT/JP2011/006048 WO2013061382A1 (ja) 2011-10-28 2011-10-28 計算機システム及びストレージ管理方法
JP2013540511A JP5771280B2 (ja) 2011-10-28 2011-10-28 計算機システム及びストレージ管理方法
US14/596,707 US9747036B2 (en) 2011-10-28 2015-01-14 Tiered storage device providing for migration of prioritized application specific data responsive to frequently referenced data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/006048 WO2013061382A1 (ja) 2011-10-28 2011-10-28 計算機システム及びストレージ管理方法

Related Child Applications (2)

Application Number Title Priority Date Filing Date
US13/384,040 A-371-Of-International US8954671B2 (en) 2011-10-28 2011-10-28 Tiered storage device providing for migration of prioritized application specific data responsive to frequently referenced data
US14/596,707 Continuation US9747036B2 (en) 2011-10-28 2015-01-14 Tiered storage device providing for migration of prioritized application specific data responsive to frequently referenced data

Publications (1)

Publication Number Publication Date
WO2013061382A1 true WO2013061382A1 (ja) 2013-05-02

Family

ID=48167250

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/006048 WO2013061382A1 (ja) 2011-10-28 2011-10-28 計算機システム及びストレージ管理方法

Country Status (3)

Country Link
US (2) US8954671B2 (ja)
JP (1) JP5771280B2 (ja)
WO (1) WO2013061382A1 (ja)

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013501293A (ja) * 2009-08-04 2013-01-10 アクサナ・(イスラエル)・リミテッド 遠隔データミラーリングシステムにおけるデータギャップ管理
US9335928B2 (en) * 2011-10-01 2016-05-10 International Business Machines Corporation Using unused portion of the storage space of physical storage devices configured as a RAID
US9836340B2 (en) * 2011-10-03 2017-12-05 International Business Machines Corporation Safe management of data storage using a volume manager
US9817733B2 (en) * 2011-10-05 2017-11-14 International Business Machines Corporation Resource recovery for checkpoint-based high-availability in a virtualized environment
US9811288B1 (en) * 2011-12-30 2017-11-07 EMC IP Holding Company LLC Managing data placement based on flash drive wear level
JP5886963B2 (ja) * 2012-03-21 2016-03-16 株式会社日立製作所 ストレージ装置及びデータ管理方法
KR20130131135A (ko) * 2012-05-23 2013-12-03 삼성전자주식회사 QoS 기반 캐시 컨트롤러 및 그 동작 방법
US9773531B2 (en) * 2012-06-08 2017-09-26 Hewlett Packard Enterprise Development Lp Accessing memory
US10037271B1 (en) * 2012-06-27 2018-07-31 Teradata Us, Inc. Data-temperature-based control of buffer cache memory in a database system
WO2014081719A1 (en) * 2012-11-20 2014-05-30 Peddle Charles I Solid state drive architectures
US11037625B2 (en) 2012-11-20 2021-06-15 Thstyme Bermuda Limited Solid state drive architectures
US9547454B2 (en) * 2013-01-15 2017-01-17 International Business Machines Corporation Selecting first data sets in a first storage group to swap with second data sets in a second storage group
US9778884B2 (en) * 2013-03-13 2017-10-03 Hewlett Packard Enterprise Development Lp Virtual storage pool
US9201662B2 (en) * 2013-03-29 2015-12-01 Dell Products, Lp System and method for pre-operating system memory map management to minimize operating system failures
US20140297953A1 (en) * 2013-03-31 2014-10-02 Microsoft Corporation Removable Storage Device Identity and Configuration Information
US9836413B2 (en) * 2013-04-03 2017-12-05 International Business Machines Corporation Maintaining cache consistency in a cache for cache eviction policies supporting dependencies
JP6142685B2 (ja) * 2013-06-12 2017-06-07 富士通株式会社 ストレージシステム、運用管理方法及び運用管理プログラム
US9552370B1 (en) * 2013-06-27 2017-01-24 EMC IP Holding Company LLC Signaling impending out of storage condition from a virtual tape drive
CN104516678B (zh) 2013-09-29 2017-09-26 国际商业机器公司 用于数据存储的方法和设备
US9824020B2 (en) * 2013-12-30 2017-11-21 Unisys Corporation Systems and methods for memory management in a dynamic translation computer system
WO2015116078A1 (en) * 2014-01-30 2015-08-06 Hewlett-Packard Development Company, L.P. Memory data versioning
US10031863B2 (en) * 2014-01-30 2018-07-24 Hewlett Packard Enterprise Development Lp Access controlled memory region
TWI552162B (zh) * 2014-07-31 2016-10-01 Zhi-Cheng Xiao Low power memory
US11095715B2 (en) 2014-09-24 2021-08-17 Ebay Inc. Assigning storage responsibility in a distributed data storage system with replication
WO2016095156A1 (en) * 2014-12-18 2016-06-23 Intel Corporation Translation cache closure and persistent snapshot in dynamic code generating system software
CN105518741B (zh) * 2014-12-23 2019-04-09 英特尔公司 用于管理虚拟图形处理器单元的装置和方法
US9430290B1 (en) * 2015-03-31 2016-08-30 International Business Machines Corporation Determining storage tiers for placement of data sets during execution of tasks in a workflow
US9875037B2 (en) * 2015-06-18 2018-01-23 International Business Machines Corporation Implementing multiple raid level configurations in a data storage device
US10432723B2 (en) * 2015-09-03 2019-10-01 Toshiba Memory Corporation Storage server and storage system
US9760290B2 (en) * 2015-09-25 2017-09-12 International Business Machines Corporation Smart volume manager for storage space usage optimization
US9946512B2 (en) * 2015-09-25 2018-04-17 International Business Machines Corporation Adaptive radix external in-place radix sort
US9513968B1 (en) 2015-12-04 2016-12-06 International Business Machines Corporation Dynamic resource allocation based on data transferring to a tiered storage
US9921757B1 (en) * 2016-03-31 2018-03-20 EMC IP Holding Company LLC Using an FPGA for integration with low-latency, non-volatile memory
US10552038B2 (en) 2016-05-13 2020-02-04 International Business Machines Corporation Object storage architecture based on file_heat
US10296460B2 (en) * 2016-06-29 2019-05-21 Oracle International Corporation Prefetch bandwidth throttling by dynamically adjusting miss buffer prefetch-dropping thresholds
US10740016B2 (en) * 2016-11-11 2020-08-11 Scale Computing, Inc. Management of block storage devices based on access frequency wherein migration of block is based on maximum and minimum heat values of data structure that maps heat values to block identifiers, said block identifiers are also mapped to said heat values in first data structure
US10691614B1 (en) * 2016-11-18 2020-06-23 Tibco Software Inc. Adaptive page replacement
JP6341307B1 (ja) * 2017-03-03 2018-06-13 日本電気株式会社 情報処理装置
US10379912B2 (en) 2017-04-11 2019-08-13 International Business Machines Corporation Data storage allocation utilizing virtual machine resource allocation
WO2019030883A1 (ja) * 2017-08-10 2019-02-14 株式会社日立製作所 計算機システムおよびデータ処理方法
US10534559B2 (en) 2018-02-14 2020-01-14 International Business Machines Corporation Heat-tiered storage system having host awareness
US11249852B2 (en) 2018-07-31 2022-02-15 Portwonx, Inc. Efficient transfer of copy-on-write snapshots
US10956058B2 (en) 2018-08-03 2021-03-23 Western Digital Technologies, Inc. Tiered storage system with tier configuration by peer storage devices
US10628074B2 (en) * 2018-08-03 2020-04-21 Western Digital Technologies, Inc. Tiered storage system with data routing by peer storage devices
US11354060B2 (en) 2018-09-11 2022-06-07 Portworx, Inc. Application snapshot for highly available and distributed volumes
US11494128B1 (en) 2020-01-28 2022-11-08 Pure Storage, Inc. Access control of resources in a cloud-native storage system
US11531467B1 (en) 2021-01-29 2022-12-20 Pure Storage, Inc. Controlling public access of resources in a secure distributed storage system
US11520516B1 (en) 2021-02-25 2022-12-06 Pure Storage, Inc. Optimizing performance for synchronous workloads
US11733897B1 (en) 2021-02-25 2023-08-22 Pure Storage, Inc. Dynamic volume storage adjustment
US11726684B1 (en) 2021-02-26 2023-08-15 Pure Storage, Inc. Cluster rebalance using user defined rules
US11797209B2 (en) * 2021-03-30 2023-10-24 Hitachi, Ltd. Storage pool determination system
US11907197B2 (en) * 2021-09-02 2024-02-20 Netapp, Inc. Volume placement failure isolation and reporting
US20240028205A1 (en) * 2022-07-20 2024-01-25 Dell Products L.P. Hybrid storage device with data migration for an information handling system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09128276A (ja) * 1995-08-28 1997-05-16 Toshiba Corp 計算機システムおよびそのシステムで使用されるファイル管理方法
WO2009088007A1 (ja) * 2008-01-11 2009-07-16 Nec Corporation コンテンツ管理装置、コンテンツ管理システム、コンテンツ管理方法およびプログラム

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3448068B2 (ja) 1991-12-24 2003-09-16 富士通株式会社 データ処理システムおよびストレージ管理方法
US6324620B1 (en) * 1998-07-23 2001-11-27 International Business Machines Corporation Dynamic DASD data management and partitioning based on access frequency utilization and capacity
US6904599B1 (en) * 1999-11-29 2005-06-07 Microsoft Corporation Storage management system having abstracted volume providers
JP2001337790A (ja) * 2000-05-24 2001-12-07 Hitachi Ltd 記憶システム及びその階層管理制御方法
JP4549787B2 (ja) * 2004-09-10 2010-09-22 株式会社日立製作所 ストレージ装置
GB0514529D0 (en) * 2005-07-15 2005-08-24 Ibm Virtualisation engine and method, system, and computer program product for managing the storage of data
JP2007066259A (ja) 2005-09-02 2007-03-15 Hitachi Ltd 計算機システムとストレージシステム並びにボリューム容量拡張方法
JP4749255B2 (ja) * 2006-07-03 2011-08-17 株式会社日立製作所 複数種類の記憶デバイスを備えたストレージシステムの制御装置
JP2008097502A (ja) * 2006-10-16 2008-04-24 Hitachi Ltd 容量監視方法及び計算機システム
JP4477681B2 (ja) * 2008-03-06 2010-06-09 富士通株式会社 階層記憶装置、制御装置、および制御方法
JP5186982B2 (ja) * 2008-04-02 2013-04-24 富士通株式会社 データ管理方法及びスイッチ装置
US8566550B2 (en) * 2009-09-22 2013-10-22 Hitachi, Ltd. Application and tier configuration management in dynamic page reallocation storage system
US8627004B2 (en) * 2010-01-07 2014-01-07 International Business Machines Corporation Extent migration for tiered storage architecture
US8375180B2 (en) * 2010-02-05 2013-02-12 International Business Machines Corporation Storage application performance matching

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09128276A (ja) * 1995-08-28 1997-05-16 Toshiba Corp 計算機システムおよびそのシステムで使用されるファイル管理方法
WO2009088007A1 (ja) * 2008-01-11 2009-07-16 Nec Corporation コンテンツ管理装置、コンテンツ管理システム、コンテンツ管理方法およびプログラム

Also Published As

Publication number Publication date
US20150127855A1 (en) 2015-05-07
JPWO2013061382A1 (ja) 2015-04-02
US9747036B2 (en) 2017-08-29
JP5771280B2 (ja) 2015-08-26
US8954671B2 (en) 2015-02-10
US20130111129A1 (en) 2013-05-02

Similar Documents

Publication Publication Date Title
JP5771280B2 (ja) 計算機システム及びストレージ管理方法
US8635427B2 (en) Data storage control on storage devices
US10977124B2 (en) Distributed storage system, data storage method, and software program
EP2239655B1 (en) Storage controller and storage control method
JP4943081B2 (ja) ファイル格納制御装置及び方法
JP4920976B2 (ja) データ移動方法及びストレージシステム
JP7097379B2 (ja) ストリームを使用するデータの割り振りエリアへの選択的記憶
US8650381B2 (en) Storage system using real data storage area dynamic allocation method
US20070239803A1 (en) Remote mirroring method between tiered storage systems
WO2012004837A1 (en) Storage apparatus and storage management method
JP2009093571A (ja) 記憶制御装置、記憶制御装置のデータアーカイブ方法及びストレージシステム
JP5957520B2 (ja) データ管理システム及び方法
US9547450B2 (en) Method and apparatus to change tiers
JP2006003973A (ja) ストレージ装置とその論理記憶装置割り当て制御方法
JP5606583B2 (ja) ストレージ装置及び同装置の制御方法
WO2015145707A1 (ja) 追記型記憶装置への書き込みデータ決定方法

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 13384040

Country of ref document: US

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

Ref document number: 11874719

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2013540511

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11874719

Country of ref document: EP

Kind code of ref document: A1