[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

WO2015132873A1 - 階層化ブロックストレージ装置を有するコンピュータシステム、ストレージコントローラ、及びプログラム - Google Patents

階層化ブロックストレージ装置を有するコンピュータシステム、ストレージコントローラ、及びプログラム Download PDF

Info

Publication number
WO2015132873A1
WO2015132873A1 PCT/JP2014/055424 JP2014055424W WO2015132873A1 WO 2015132873 A1 WO2015132873 A1 WO 2015132873A1 JP 2014055424 W JP2014055424 W JP 2014055424W WO 2015132873 A1 WO2015132873 A1 WO 2015132873A1
Authority
WO
WIPO (PCT)
Prior art keywords
file
block
hierarchical
hierarchy
storage
Prior art date
Application number
PCT/JP2014/055424
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 JP2014534841A priority Critical patent/JP5797848B1/ja
Priority to CN201480000789.9A priority patent/CN105074675B/zh
Priority to PCT/JP2014/055424 priority patent/WO2015132873A1/ja
Priority to US14/482,311 priority patent/US9594508B2/en
Publication of WO2015132873A1 publication Critical patent/WO2015132873A1/ja

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/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • G06F12/0692Multiconfiguration, e.g. local and global addressing
    • 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/11File system administration, e.g. details of archiving or snapshots
    • G06F16/122File system administration, e.g. details of archiving or snapshots using management policies
    • 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/13File access structures, e.g. distributed indices
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • 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/064Management of blocks
    • 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/0643Management of files
    • 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/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1008Correctness of operation, e.g. memory ordering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/222Non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management

Definitions

  • Embodiments described herein relate generally to a computer system having a hierarchical block storage device, a storage controller, and a program.
  • the storage tiering technology bundles physical storage areas (hereinafter referred to as physical volumes) of a plurality of types of storage apparatuses having different access response performance. Thereby, the storage tiering technology forms at least one virtual storage area (hereinafter referred to as a logical volume) having a plurality of physical volumes as entities.
  • a logical volume is also called a logical disk and can be recognized from a host device (computer).
  • the hierarchical block storage apparatus includes a plurality of types of storage apparatuses having different hierarchies, and the logical disk is configured using physical volumes of such storage apparatuses having different hierarchies.
  • a specified file is required to be arranged in a specified hierarchy.
  • a hierarchical block storage device cannot recognize a file. Therefore, in the prior art, a special file system (file system program) is provided in the hierarchical block storage apparatus.
  • This special file system associates a file used by a host device with a position on a logical disk of a block constituting the file.
  • the hierarchical block storage device (more specifically, the storage controller of the hierarchical block storage device) can specify the blocks constituting the specified file and place the specified blocks in the specified hierarchy. it can.
  • the function of arranging a specified file in a specified hierarchy is realized by a special file system provided in the hierarchical block storage device.
  • the hierarchical block storage device requires a special file system.
  • a problem to be solved by the present invention is to provide a computer system, a storage controller, and a program capable of arranging a specified file in a specified hierarchy without requiring a file system on the hierarchical block storage device side There is to do.
  • the computer system includes a hierarchical block storage system and a host device.
  • the host device accesses the hierarchical block storage system.
  • the hierarchical block storage system includes a hierarchical block storage device and a storage controller.
  • the hierarchical block storage device includes a plurality of types of storage devices having different access response performance.
  • the plurality of types of storage apparatuses are assigned to tiers corresponding to the access response performances.
  • At least a part of the storage area of each of the at least two types of storage devices of the plurality of types of storage devices is allocated to a logical disk having a plurality of blocks of the first size.
  • the logical disk is used to store files used by the host device.
  • the storage controller includes a mode switching unit, a data input / output control unit, and a data arrangement control unit.
  • the host device includes a file system, a rule input unit, a hierarchical arrangement instruction unit, and a file designation unit.
  • the mode switching unit switches the operation mode of the hierarchical block storage system from the first mode to the second mode in response to a request from the host device.
  • the data input / output control unit accesses the logical disk in response to an access request from the host device. For each file stored in the logical disk, the file system manages a correspondence between a file path indicating a corresponding file and a logical address range in which the corresponding file is stored.
  • the file designation unit when the file designation unit requests access to a logical address range in which a block sequence constituting a file is stored, the data input / output is performed on the block sequence in the requested logical address range. Access through the control unit.
  • the rule input unit inputs a hierarchy arrangement rule including file path information for designating a file and hierarchy information for designating a hierarchy in which the file is to be arranged based on an external request.
  • the tier placement instruction unit requests the storage controller to switch to the second mode based on the tier placement rule.
  • the file designating unit accesses the file system to access a logical address range in which a first block sequence constituting a first file indicated by a file path indicated by the file path information in the hierarchical arrangement rule is stored. Request.
  • the data arrangement control unit is an extent including a block string within a logical address range accessed in the second mode, and stores data in an extent composed of a second number of blocks having consecutive logical addresses. , Move to the storage area of the hierarchy specified by the hierarchy arrangement rule.
  • FIG. 1 is a block diagram illustrating a typical hardware configuration of a computer system according to one embodiment.
  • FIG. 2 is a block diagram mainly showing typical functional configurations of the hierarchical storage system and the host device shown in FIG.
  • FIG. 3 is a diagram showing an example of the data structure of the extent management table in the embodiment.
  • FIG. 4 is a diagram showing an example of the data structure of the file-logical address management table in the embodiment.
  • FIG. 5 is a diagram showing an example of the data structure of the hierarchical arrangement rule list in the embodiment.
  • FIG. 6 is a diagram showing an example of the data structure of the file path list in the embodiment.
  • FIG. 7 is a flowchart for explaining a typical procedure of hierarchical arrangement processing executed on the host device side in the embodiment.
  • FIG. 1 is a block diagram illustrating a typical hardware configuration of a computer system according to one embodiment.
  • FIG. 2 is a block diagram mainly showing typical functional configurations of the hierarchical storage system and the host device shown in FIG
  • FIG. 8 is a flowchart for explaining a typical procedure of block access processing included in the hierarchical arrangement processing shown in FIG.
  • FIG. 9 is a flowchart for explaining a typical procedure of the tier arrangement processing executed on the hierarchical storage system side in the same embodiment.
  • FIG. 10 is a diagram for explaining the outline of the file arrangement process in the first modification of the embodiment.
  • FIG. 11 is a flowchart for explaining a typical procedure of file arrangement processing executed on the host device side in the first modification.
  • FIG. 12 is a diagram for explaining the outline of the partial read process in the second modification of the embodiment.
  • FIG. 13 is a flowchart for explaining a typical procedure of partial read processing executed on the host device side in the second modification.
  • FIG. 1 is a block diagram illustrating a typical hardware configuration of a computer system according to one embodiment.
  • the computer system includes a hierarchical storage system 10 and a host device 20.
  • the hierarchical storage system 10 (more specifically, the storage controller 12 of the hierarchical storage system 10) includes Fiber Channel (FC), Small Computer System Interface (SCSI), Serial Attached SCSI (SAS), and Internet SCSI (iSCSI). , Ethernet (registered trademark), or serial AT attachment (SATA), is connected to the host device 20 via a host interface bus 30.
  • the host device 20 uses the hierarchical storage system 10 as an external storage device.
  • the hierarchical storage system 10 may be connected to the host device 20 via a network such as a storage area network (SAN), the Internet, or an intranet.
  • the hierarchical storage system 10 may be connected to a plurality of host devices including the host device 20.
  • the hierarchical storage system 10 includes a hierarchical block storage device 11 and a storage controller 12.
  • the hierarchical block storage device 11 includes a high-speed storage device (first type storage device) 111 and a low-speed storage device (second type storage device) 112.
  • the high-speed storage device 111 and the low-speed storage device 112 are connected to the storage controller 12 via a storage interface bus 13 such as FC, SCSI, SAS, iSCSI, Ethernet, or SATA.
  • the high-speed storage device 111 is composed of a flash storage device with excellent access response performance (that is, high access speed) such as a flash array.
  • the flash storage device is realized using a plurality of flash memory boards.
  • Each of the flash memory boards includes a collection of flash memories.
  • HDD hard disk drive
  • SSDs solid state drives
  • the low-speed storage device 112 is composed of, for example, a hard disk drive (HDD) array having lower access response performance (that is, lower access speed) than the high-speed storage device 111 (flash storage device).
  • the HDD array is a storage device having a RAID (Redundant Arrays of Inexpensive Disks or Redundant Arrays of Independent Disks) configuration including a plurality of HDDs, for example.
  • the high-speed storage device 111 and the low-speed storage device 112 do not necessarily have an array configuration.
  • the high-speed storage device 111 and the low-speed storage device 112 can be accessed using a block of data of the first size as a minimum unit. This block of data of the first size is called a block. For this reason, the high-speed storage device 111 and the low-speed storage device 112 are called block storage devices.
  • the hierarchical storage system 10 (hierarchical block storage apparatus 11) shown in FIG. 1 includes two (two types) storage apparatuses (that is, high-speed storage apparatuses) having different access response performance (access speed). 111 and low-speed storage device 112).
  • the high speed storage device 111 is assigned to the upper tier (high speed tier, first tier)
  • the low speed storage device 112 is assigned to the lower tier (low speed tier, second tier).
  • the hierarchical storage system 10 includes a storage device (third tier storage device) of lower speed (lower tier, third tier) than the low speed storage device 112 such as a magnetic tape device. Also good.
  • the storage controller 12 includes a host interface controller (hereinafter referred to as HIFC) 120, a storage interface controller (hereinafter referred to as SIFC) 121, a memory 122, an HDD 123, and a CPU 124.
  • HIFC host interface controller
  • SIFC storage interface controller
  • the HIFC 120 controls data transfer (data transfer protocol) with the host device 20.
  • the HIFC 120 receives a data access request (read request or write request) for the logical volume from the host device 20, and returns a response to the data access request.
  • a data access request read request or write request
  • the HIFC 120 transmits the request to the CPU 124.
  • the CPU 124 that has received the data access request processes the data access request.
  • the SIFC 121 receives an input / output (I / O) request based on a data access request (write request or read request for a logical volume) received from the host device 20 by the CPU 124.
  • the SIFC 121 executes access to the high speed storage device 111 or the low speed storage device 112 in accordance with the received I / O request.
  • the memory 122 is a rewritable volatile memory such as a DRAM. A part of the memory 122 is used to store a storage control program loaded from the HDD 123. Another part of the memory 122 is used as a work area for the CPU 124.
  • the HDD 123 stores a storage control program.
  • the CPU 124 loads the storage control program stored in the HDD 123 into the memory 122 by executing an initial program loader (IPL) when the storage controller 12 is activated.
  • IPL is stored in a non-volatile memory such as a read only memory (ROM) or a flash ROM (FROM).
  • the CPU 124 functions as a mode switching unit 125, a data input / output control unit 126, and a data arrangement control unit 127, which will be described later, according to the storage control program loaded in the memory 122. That is, the CPU 124 executes the storage control program stored in the memory 122 to control the entire hierarchical storage system 10 (particularly, each unit in the storage controller 12).
  • the host device 20 includes an SIFC (interface controller) 201, a memory 202, an HDD 203, and a CPU 204.
  • the SIFC 201 controls data transfer with the storage controller 12 of the hierarchical storage system 10 (more specifically, the HIFC 120 of the storage controller 12).
  • the SIFC 201 transmits a data access request from the CPU 204 to the storage controller 12 and receives a response from the storage controller 12 to the data access request.
  • the SIFC 201 transmits the response to the CPU 204.
  • the memory 202 is a rewritable volatile memory such as a DRAM.
  • a part of the memory 202 is used for storing an operating system (OS) and various programs loaded from the HDD 203.
  • Another part of the memory 202 is used as a work area for the CPU 204.
  • the HDD 203 stores an OS and a plurality of programs.
  • the plurality of programs include application programs (hereinafter referred to as applications) and utility programs.
  • applications application programs
  • utility programs utility programs.
  • the CPU 204 loads the OS stored in the HDD 203 into the memory 202 by executing an IPL stored in a non-volatile memory such as ROM or FROM.
  • the CPU 204 loads a program stored in the HDD 203 into the memory 202 as appropriate.
  • the CPU 204 follows a specific program (for example, a specific utility program) loaded in the memory 202 and the OS, and will be described later, a rule input unit 21, a hierarchy placement instruction unit 22, a file extraction unit 23, a file specification unit 24, and a file system 25. (More specifically, the file access control unit 251 of the file system 25) and the file arrangement unit 26 function.
  • the CPU 204 functions as the rule input unit 21, the hierarchy arrangement instruction unit 22, the file extraction unit 23, and the file arrangement unit 26 according to a specific utility program, and according to the OS, the file designation unit 24 and the file system 25 ( It functions as a file access control unit 251).
  • FIG. 2 is a block diagram mainly showing typical functional configurations of the hierarchical storage system 10 and the host device 20 shown in FIG.
  • the hierarchical block storage device 11 of the hierarchical storage system 10 includes a logical disk 110.
  • the hierarchical block storage apparatus 11 includes one logical disk (110) for the sake of simplification of description.
  • the hierarchical block storage device 11 may include a plurality of logical disks.
  • the logical disk 110 is also called a logical volume and has a virtual storage area (so-called logical address space). This virtual storage area is divided into a plurality of logical blocks of the first size for management. In other words, the logical disk 110 includes a plurality of logical blocks. Each of the plurality of logical blocks is designated by a logical block address (LBA).
  • LBA logical block address
  • the virtual storage area is further divided into a plurality of logical extents of the second size for management.
  • the second size is N times the first size, where N is an integer greater than one. That is, each logical extent is composed of N logical blocks specified by N consecutive LBAs. In this embodiment, N is 8,192. However, N may be an integer larger than 1 other than 8,192.
  • a logical block and a logical extent may be simply referred to as a block and an extent, respectively.
  • a part of the virtual storage area of the logical disk 110 is assigned (that is, mapped) at least a part of the storage area (that is, physical volume) of the high-speed storage device 111. Further, at least a part of the storage area of the low-speed storage device 112 is allocated to another part of the virtual storage area.
  • the logical disk 110 has a plurality of physical volumes having different tiers (here, a physical volume of an upper tier and a physical volume of a lower tier) as entities. That is, the logical disk 110 (more specifically, the entity of the logical disk 110) is configured by combining physical volumes (first and second physical volumes) in the high-speed storage device 111 and the low-speed storage device 112.
  • Each of the first and second physical volumes includes a plurality of physical blocks having the same size (first size) as the logical block.
  • files used by the host device 20 are stored in the logical disk 110. This file is composed of one or more blocks.
  • the storage controller 12 of the hierarchical storage system 10 includes a mode switching unit 125, a data input / output control unit 126, and a data arrangement control unit 127.
  • These functional elements 125 to 127 are software modules realized by the CPU 124 of the storage controller 12 shown in FIG. 1 executing a storage control program. However, at least one of the functional elements 125 to 127 may be realized by a hardware module.
  • the mode switching unit 125 switches the operation mode of the tiered storage system 10.
  • the storage controller 12 of the hierarchical storage system 10 can operate at least in the normal mode (first mode) and the area arrangement mode (second mode).
  • the normal mode refers to an operation mode for executing access to one or more blocks in the logical disk 110 requested by the host device 20. In the following description, for the sake of simplification, access to more than one block is assumed unless otherwise specified.
  • the area arrangement mode refers to an operation mode mainly for executing the following first and second operations in addition to access to a block requested by the host device 20.
  • the first operation includes turning on the hierarchy movement flag associated with the extent including the accessed block. The hierarchy movement flag will be described later.
  • the data input / output control unit 126 accesses a block in the logical disk 110 requested by the host device 20.
  • the data arrangement control unit 127 operates the above-described hierarchy movement flag and arranges all extents corresponding to the hierarchy movement flag in the on state in the storage area of the designated hierarchy.
  • the storage controller 12 further includes an extent management table 128.
  • the extent management table 128 is stored in the HDD 123 of the storage controller 12 shown in FIG. 1, and is loaded from the HDD 123 to the memory 122 as necessary (for example, when the storage controller 12 is activated).
  • FIG. 3 shows an example of the data structure of the extent management table 128.
  • the extent management table 128 has entries associated with the extents of the logical disk 110, respectively.
  • Each entry in the extent management table 128 includes an extent identifier (ID) field, an LBA field, a physical storage ID field, a physical storage address field, and a tier migration flag field.
  • the hierarchy movement flag field is used to hold a hierarchy movement flag indicating whether the corresponding extent should be moved to a specified hierarchy.
  • the extent ID field is used to hold an ID (extent ID) for identifying the corresponding extent.
  • the LBA field is used to hold LBA information related to N consecutive blocks (logical blocks) constituting the corresponding extent.
  • the LBA information includes the LBA of each of the first block and the last block of the corresponding extent. That is, the LBA information indicates the LBA range of the corresponding extent.
  • the physical storage ID field holds an ID (physical storage ID) for identifying a storage device (physical storage device) including N physical blocks allocated to N consecutive blocks in the corresponding extent. Used for.
  • the physical storage address field is used to hold physical storage address information regarding N physical blocks allocated to N consecutive logical blocks (that is, a column of N logical blocks) in the corresponding extent. .
  • N physical blocks are continuous in the corresponding physical storage device.
  • the physical storage address information includes the physical storage addresses of the first physical block and the last physical block of the N consecutive physical blocks. That is, the physical storage address information indicates the physical address range of the corresponding extent.
  • each entry of the extent management table 128 holds extent information used for managing the corresponding extent.
  • This extent information includes extent ID, LBA information, physical storage ID, physical storage address information, and tier migration flag.
  • the same number of extent management tables 128 as the plurality of logical disks may be prepared in association with the plurality of logical disks. Further, if a logical disk ID field is added to each entry of the extent management table 128, the extent management table 128 can be used in common for a plurality of logical disks. The same applies to, for example, a file-logical address management table 252 described later.
  • the host device 20 includes a rule input unit 21, a hierarchy arrangement instruction unit 22, a file extraction unit 23, a file designation unit 24, a file system 25, and a file arrangement unit 26.
  • the file system 25 includes a file access control unit 251.
  • these functional elements 21 to 26 are executed by the CPU 204 of the host device 20 shown in FIG. This is a software module realized by. However, at least one of the functional elements 21 to 26 may be realized by a hardware module.
  • the file system 25 further includes a file-logical address management table 252.
  • the host device 20 also includes a hierarchical arrangement rule list 27, a file path list 28, and an application 29.
  • the hierarchical arrangement rule list 27, the file path list 28, the application 29, and the file-logical address management table 252 are stored in the HDD 203 of the host device 20 shown in FIG. 20 is loaded into the memory 202 from the HDD 203.
  • the rule input unit 21 inputs a hierarchical arrangement rule (more specifically, hierarchical arrangement rule information describing the hierarchical arrangement rule) from the outside of the host device 20.
  • the hierarchy arrangement rule refers to a rule for moving (arranging) an extent including a block constituting a designated file to a designated hierarchy. Details of the hierarchical arrangement rule will be described later.
  • the hierarchical arrangement rule input by the rule input unit 21 is held in the hierarchical arrangement rule list 27.
  • the tier placement instructing unit 22 performs mode switching in the storage controller 12 in order to move an extent including a block constituting a file designated by the tier placement rule in the tier placement rule list 27 to the tier designated by the rule.
  • the unit 125 controls the file extraction unit 23, the file designation unit 24, and the file arrangement unit 26 in the host device 20.
  • the file extraction unit 23 extracts all file paths indicated by the hierarchical arrangement rules. The extracted file path is held in the file path list 28.
  • the file specification unit 24 requests the file access control unit 251 of the file system 25 to access the file specified by the corresponding file path for each file path held in the file path list 28.
  • the file system 25 includes a file stored in a logical disk (logical disk 110 in the example of FIG. 2) in the hierarchical block storage device 11 and a set of blocks constituting the file (more specifically, one or more blocks). And a well-known function for managing access to the logical disk.
  • the hierarchical storage system 10 (more specifically, the storage controller 12 of the hierarchical storage system 10) does not consider which set of blocks in the logical disk is associated with which file.
  • the file access control unit 251 of the file system 25 accesses the block constituting the file requested by the file specifying unit 24 via the data input / output control unit 126 of the storage controller 12.
  • the file placement unit 26 rearranges so that a set of blocks constituting the file specified by the file path held in the file path list 28 is continuous in the logical disk 110.
  • the file placement unit 26 is used in a first modification described later.
  • FIG. 4 shows an example of the data structure of the file-logical address management table 252.
  • the file-logical address management table 252 has an entry associated with each file managed by the file system 25.
  • Each entry of the file-logical address management table 252 includes a file path field and an LBA field.
  • the file path field is used to hold the file path of the corresponding file (more specifically, information indicating the file path).
  • the LBA field is used to hold LBA information related to a set of blocks constituting the corresponding file.
  • the LBA information includes the LBAs of the first block and the last block in the continuous block (that is, the row of blocks in which the LBA is continuous). That is, the LBA information indicates the LBA range of the continuous block. This LBA range may be indicated by the LBA of the head block in the continuous block and the number of the continuous blocks (or the size of the entire continuous block).
  • the corresponding file may be composed of one block. In this case, the LBAs of the first block and the last block included in the LBA information match.
  • the corresponding file is fragmented, and the set of blocks constituting the corresponding file is divided into a plurality of segments in the hierarchical storage system 10.
  • Each of the plurality of segments is composed of continuous blocks (that is, a row of blocks) in the logical disk 110.
  • the LBA information includes, for each segment, the LBA of the first block and the last block of the corresponding segment. That is, the LBA information indicates the LBA range of the corresponding segment for each segment. Note that at least one of the plurality of segments may be composed of one block.
  • a file is assumed to be composed of one or more segments.
  • FIG. 5 shows an example of the data structure of the hierarchical arrangement rule list 27.
  • Each element of the hierarchical arrangement rule list 27 (that is, the hierarchical arrangement rule) includes a rule ID, hierarchical information, rule type, rule content, start time information, and discontinuation time information.
  • the rule ID indicates an ID unique to the corresponding hierarchical arrangement rule.
  • the hierarchy information indicates the hierarchy where data is to be arranged.
  • the rule type indicates the type of hierarchical arrangement rule, for example, whether it is file designation (first type) or application linkage (second type).
  • the file designation indicates that a file is designated as data to be arranged in a hierarchy (that is, a designated hierarchy) indicated by the hierarchy information.
  • Application cooperation indicates that data to be arranged in a designated hierarchy is a block accessed by a specific application activated by a predetermined program (hereinafter referred to as a cooperation program).
  • a hierarchical arrangement rule whose rule type is file designation is referred to as a file designation arrangement rule
  • a hierarchical arrangement rule whose rule type is application cooperation is referred to as an application cooperation arrangement rule.
  • the rule contents depend on the rule type.
  • the file path is described as the rule content (first rule content).
  • the file path it is possible to specify a regular expression or a wild card using a special symbol such as *, for example. That is, the file designation arrangement rule indicates a rule for moving (arranging) an extent including a block (a set of blocks) constituting a file designated by the rule contents to a designated hierarchy.
  • the rule type is application cooperation
  • program information for designating a cooperation program is described as rule contents (second rule contents). That is, the application cooperation arrangement rule indicates a rule for moving an extent including a block accessed by a specific application (in this embodiment, the application 29) started by the cooperation program specified in the rule contents to a specified hierarchy.
  • Information specifying a program such as a batch file (batch program) or a script may be described as the second rule content.
  • the start time information indicates the time when the hierarchical arrangement process to which the corresponding hierarchical arrangement rule is applied is started.
  • the discontinuation time information indicates the time at which the corresponding hierarchical arrangement process is discontinued. Note that the start time information may indicate the date and time when the corresponding hierarchy arrangement process is started, and the discontinuation time information may indicate the date and time when the corresponding hierarchy arrangement process is aborted.
  • FIG. 6 shows an example of the data structure of the file path list 28.
  • the file path list 28 is used to hold the file path extracted by the file extraction unit 23.
  • Each element of the file path list 28 includes a file path ID and a file path (file path information).
  • the file path ID indicates the ID of the corresponding file path.
  • FIG. 7 is a flowchart for explaining a typical procedure of a hierarchical arrangement process (hereinafter referred to as a first hierarchical arrangement process) executed on the host device 20 side
  • FIG. 8 is a first flowchart shown in FIG. It is a flowchart for demonstrating the typical procedure of the block access process included in a hierarchy arrangement
  • FIG. 9 shows a tier placement process executed on the side of the hierarchical storage system 10 in response to the mode switching command issued in the first tier placement process shown in FIG. 7 (hereinafter referred to as the second tier placement process). It is a flowchart for demonstrating the typical procedure of.
  • the hierarchical arrangement instructing unit 22 monitors the start times of all hierarchical arrangement rules held in the hierarchical arrangement rule list 27, and determines whether the start time has arrived (step S1).
  • the start time (0:00) of the hierarchical arrangement rule with the rule ID 1 has arrived (Yes in step S1).
  • the hierarchy arrangement instructing unit 22 proceeds to step S2 in order to start applying the hierarchy arrangement rule whose start time has arrived.
  • step S2 the tier placement instructing unit 22 issues a mode switching command for instructing to switch the tiered storage system 10 from the normal mode to the region placement mode to the storage controller 12 of the tiered storage system 10.
  • This mode switching command also designates a hierarchy in which all extents corresponding to the hierarchy movement flag set to the on state are to be arranged in the area arrangement mode.
  • the mode switching command issued by the hierarchical arrangement instructing unit 22 is received by the mode switching unit 125 of the storage controller 12. Then, the storage controller 12 starts the second tier arrangement process shown in the flowchart of FIG. 9 as follows. First, the mode switching unit 125 switches the hierarchical storage system 10 from the normal mode to the area arrangement mode (step S31). Then, the mode switching unit 125 determines whether the mode switching has succeeded (step S32). If the mode switching is successful (Yes in step S32), the mode switching unit 125 notifies the host device 20 of the successful mode switching as a response to the mode switching command (step S33). On the other hand, if mode switching has failed (No in step S32), the mode switching unit 125 notifies the host device 20 of mode switching failure (step S34). In this case, the second hierarchical arrangement process ends.
  • step S3 The notification returned from the mode switching unit 125 to the host device 20 is received by the hierarchical arrangement instructing unit 22. Then, the hierarchy arrangement instructing unit 22 determines whether it is a mode switching success notification (step S3). If it is a mode switching failure notification (No in step S3), the first hierarchical arrangement process ends. On the other hand, if it is a mode switching success notification (Yes in step S3), the block access process (step S4) is executed as follows according to the flowchart shown in FIG.
  • the hierarchical arrangement instruction unit 22 determines whether the rule type of the hierarchical arrangement rule whose start time has arrived is file designation or application cooperation (step S11).
  • step S11 the rule type of the hierarchical arrangement rule whose start time has arrived is file designation or application cooperation.
  • 2a) block access processing in the case of file designation and 2b) block access processing in the case of application cooperation will be described in order.
  • Step S11 Block access processing in the case of file designation
  • the hierarchical arrangement instruction unit 22 issues a file extraction command to the file extraction unit 23.
  • This file extraction command includes the rule contents of the hierarchical arrangement rule whose start time has arrived, that is, file path information.
  • the file extraction unit 23 receives the file extraction command issued by the hierarchy arrangement instruction unit 22. Then, the file extraction unit 23 extracts all the file paths indicated by the file path information included in the received file extraction command (that is, the file paths indicated by the hierarchical arrangement rule) from the file-logical address management table 252.
  • the rule ID of this hierarchical arrangement rule is 1, the rule content is file path / var / log / *. log.
  • file path / var / log / message Assume that a set of file paths including log is extracted. A set of extracted file paths is held in the file path list 28.
  • the hierarchical arrangement instructing unit 22 issues an access command for instructing access to each set of files indicated by the extracted file path to the file specifying unit 24.
  • the file designation unit 24 selects one unselected file path from the file path list 28 (step S13). Then, the file specifying unit 24 inquires of the file access control unit 251 about the LBA (logical block address) range associated with the selected file path.
  • LBA logical block address
  • the file access control unit 251 refers to the file-logical address management table 252 and specifies all the LBA ranges associated with the selected file path (step S14). The file access control unit 251 notifies the file designation unit 24 of all the specified LBA ranges.
  • the file specification unit 24 selects one LBA range from the notified LBA range (step S15). Then, the file designation unit 24 requests the file access control unit 251 to access a block (block row) within the selected LBA range.
  • the file access control unit 251 exists in the logical disk 110 in the hierarchical block storage device 11 and is within the selected LBA range (more specifically, a sequence of blocks with consecutive LBAs, That is, the segment is accessed via the data input / output control unit 126 of the storage controller 12 (step S16).
  • this access is a read access, and data of a block within the selected LBA range is read.
  • the file designating unit 24 determines whether there is an unselected LBA range in the specified LBA range (step S17). If there is an unselected LBA range (Yes in step S17), the file designating unit 24 returns to step S15 and selects one unselected LBA range.
  • the file access control unit 251 accesses the block within the LBA range selected by the file specifying unit 24 via the data input / output control unit 126 (step S16).
  • the hierarchical storage system 10 is set to the area arrangement mode by the mode switching unit 125 (steps S31 to S33).
  • the mode switching unit 125 notifies the host device 20 of the successful mode switching (step S33)
  • the data input / output control unit 126 performs access (that is, block access) from the file access control unit 251 of the host device 20, for example,
  • the first time is monitored with the upper limit (step S35).
  • block access is performed by the file access control unit 251 before the first time elapses in the area arrangement mode (Yes in step S35)
  • the data input / output control unit 126 is within the accessed LBA range.
  • the data placement control unit 127 is requested to turn on the hierarchy movement flag corresponding to the extent including the block.
  • the data arrangement control unit 127 executes the first operation. That is, the data placement control unit 127 refers to the extent management table 128, identifies an extent that includes a block within the accessed LBA range, and turns on the tier migration flag associated with the identified extent (step S1). S36). The data arrangement control unit 127 passes control to the mode switching unit 125. Then, the mode switching unit 125 determines whether an area arrangement mode end command has been received (step S37). If the mode switching unit 125 has not received the region arrangement mode end command (No in step S37), the mode switching unit 125 passes control to the data input / output control unit 126.
  • step S35 the data input / output control unit 126 waits for the next block access with the first time as an upper limit. If the next block access is performed by the file access control unit 251 before the first time elapses (Yes in step S35), the data input / output control unit 126 determines that the hierarchy movement flag as described above. Is requested to the data arrangement control unit 127 to turn on.
  • the file access control unit 251 has accessed all the blocks within the specified LBA range.
  • the file designating unit 24 determines that access to the file designated by the selected file path has been completed. Then, the file designation unit 24 determines whether there is an unselected file path in the file path list 28 (step S18).
  • step S18 If there is an unselected file path (Yes in step S18), the file designating unit 24 returns to step S13 and selects one unselected file path. Then, as described above, the file specifying unit 24 inquires the file access control unit 251 about the LBA range associated with the selected file path. Then, the file access control unit 251 specifies all the LBA ranges associated with the selected file path (step S14). Then, Steps S15 to S17 are executed for all the specified LBA ranges. That is, the file indicated by the selected file path is accessed.
  • step S4 ends.
  • the hierarchical arrangement instructing unit 22 issues an area arrangement mode end command for instructing the end of the area arrangement mode to the storage controller 12 (step S5). Thereby, the first hierarchical arrangement process in the host device 20 is completed.
  • the area arrangement mode end command issued by the tier arrangement instruction unit 22 is received by the mode switching unit 125 of the storage controller 12.
  • the storage controller 12 passes control to the mode switching unit 125 when the next block access is not performed even after the above-described first time has elapsed (No in step S35). Even when the hierarchy movement flag is turned on (step S36), the control is passed to the mode switching unit 125 as described above. In such a case, the mode switching unit 125 determines whether an area arrangement mode end command has been received (step S37).
  • the mode switching unit 125 If the mode switching unit 125 has received the region arrangement mode end command (Yes in step S37), the mode switching unit 125 passes control to the data arrangement control unit 127. Then, the data arrangement control unit 127 executes the second operation.
  • the data placement control unit 127 refers to the extent management table 128, identifies all extents corresponding to the tier migration flag that is currently in the on state, and identifies all of the identified extents (more specifically, the identified extents). (Data in all extents) are arranged (moved) in the storage area of the physical storage of the designated hierarchy (step S38).
  • step S38 the data placement control unit 127, for example, updates the contents of the physical storage ID field and the physical storage address field of the corresponding entry of the extent management table 128 every time an extent is placed in the physical storage of the specified hierarchy.
  • the physical storage of the designated tier is the high speed storage device 111 and the first extent is arranged in the first physical storage address range of the high speed storage device 111.
  • the data arrangement control unit 127 uses the contents of the physical storage ID field and physical storage address field of the entry of the extent management table 128 corresponding to the first extent as the ID of the high speed storage device 111 and the first physical storage address. Update to range.
  • the data arrangement control unit 127 turns off the hierarchy movement flag in the corresponding entry.
  • the data placement control unit 127 selects the placement destination of the first extent from a set of free extents in the high-speed storage device 111 (physical storage of the designated tier). If there is no free extent in the high-speed storage device 111 that can be used for the placement of the first extent, the data placement control unit 127 starts from the high-speed storage device 111 before placing the first extent. A second extent to which data is to be moved (evicted) to the storage device 112 is selected. Then, the data arrangement control unit 127 secures a free extent that can be used for the arrangement of the first extent by moving the data of the second extent to the low-speed storage device 112. The second extent is, for example, an extent having the lowest access frequency among all extents arranged in the high speed storage device 111.
  • step S17 if there is no unselected LBA range (No in step S17), the file specifying unit 24 proceeds to step S18.
  • the file path selected in step S13 is, for example, / var / log / message. In the case of log, as apparent from the file-logical address management table 252 shown in FIG. 4, only one LBA range 000-015 is specified. In this case, when a block in the LBA range 000-015 is accessed (step S16), since there is no unselected LBA range (No in step S17), the file designation unit 24 proceeds to step S18.
  • step S38 If all the specified extents have been placed in the physical storage of the designated tier (step S38), the mode switching unit 125 is notified accordingly. Then, the mode switching unit 125 ends the area allocation mode and returns the operation mode of the hierarchical storage system 10 to the normal mode (step S39). Thereby, the second tier arrangement processing in the tiered storage system 10 (storage controller 12) ends.
  • step S11 Block Access Processing in Case of Application Cooperation
  • the hierarchical arrangement instructing unit 22 activates the cooperation program indicated by the rule content of the hierarchical arrangement rule whose start time has arrived (step S19). That is, the hierarchical arrangement instructing unit 22 executes the cooperation program. Then, the cooperation program starts a specific application, for example, the application 29, which is predetermined so as to cooperate with the cooperation program (step S20).
  • the hierarchical arrangement instruction unit 22 waits for the cooperation program to end (step S21).
  • the application 29 requests block access (read access or write access) to the hierarchical storage system 10 (more specifically, the logical disk 110 in the hierarchical storage system 10) as appropriate in the operation state of the application 29.
  • the file access control unit 251 sends the data input / output control unit 126 of the storage controller 12 to a block (block row) within the requested LBA range. (Step S23).
  • the hierarchical storage system 10 is set to the area arrangement mode (steps S31 to S33).
  • step S35 block access is performed by the file access control unit 251 in the area allocation mode
  • step S35 the data allocation control unit 127 specifies an extent including a block within the accessed LBA range
  • step S36 The hierarchy movement flag associated with the specified extent is turned on.
  • step S4 ends.
  • the subsequent operations are the same as when the rule type is file designation. That is, the hierarchical arrangement instructing unit 22 issues an area arrangement mode end command to the storage controller 12 (step S5).
  • the data arrangement control unit 127 of the storage controller 12 identifies all extents corresponding to the currently-on tier migration flag, and designates all the identified extents in the specified tier. It is arranged in the storage area of the physical storage (step S38).
  • the layer arrangement instruction unit 22 ends the block access process (step S4). More specifically, after waiting for the end of the currently executing block access, the hierarchy placement instructing unit 22 ends the block access process (step S4). Then, the hierarchical arrangement instructing unit 22 issues an area arrangement mode end command to the storage controller 12 (step S5).
  • the host device 20 uses the mode switching unit 125 to place the hierarchical storage system 10 in an area layout in order to place the specified file in the storage area of the specified hierarchy in the hierarchical storage system 10.
  • the mode is set (step S2).
  • the host device 20 specifies blocks constituting the designated file based on the file system 25 as in the case of normal file access (steps S13 and S14).
  • the host device 20 accesses the specified block without recognizing the correspondence between the specified block and the extent in the hierarchical storage system 10 necessary for the arrangement of the specified file (step S15). And S16).
  • the storage controller 12 of the hierarchical storage system 10 manages the correspondence between blocks and extents using the extent management table 128.
  • the storage controller 12 identifies an extent including the accessed block in response to a block access from the host device 20 in the area allocation mode, and turns on the tier migration flag associated with the identified extent (that is, (Hierarchy movement instruction state) is set (steps S35 and S36).
  • the above-mentioned designated file (more specifically, the file path) is described in the hierarchical arrangement rule.
  • the host device 20 specifies a designated file based on the hierarchical arrangement rule whose start time has arrived, and accesses a block constituting the designated file.
  • the file described in the hierarchical arrangement rule may be a file scheduled to be used by the host device 20 when the start time indicated by the hierarchical arrangement rule arrives.
  • the host device 20 can use the file described in the tier placement rule, and at the same time, the file can be placed in the storage area of the specified tier in the hierarchical block storage device 11.
  • the block access based on the hierarchical arrangement rule may be a kind of dummy access (when the type of the hierarchical arrangement rule is file designation).
  • block access based on the hierarchy placement rule specifies an extent including the accessed block (that is, an extent to be placed in the specified hierarchy), and turns on the hierarchy move flag associated with the extent. It may be used as a trigger for setting the state. In this case, the accessed block data may be discarded without being used by the host device 20.
  • the host device 20 issues an area placement mode end command to the storage controller 12 when accessing the blocks constituting all the specified files. Then, the storage controller 12 arranges all extents associated with the tier migration flag in the on state in the storage area of the designated tier in the tiered block storage apparatus 11 (steps S37 and S38). As described above, according to this embodiment, the storage controller 12 arranges a file (designated file) to be arranged in a designated hierarchy in a storage area of the designated hierarchy without requiring a special file system. can do.
  • the host device 20 does not need to handle the correspondence between blocks and extents, and the storage controller 12 does not need to access the file system 25 in the host device 20.
  • the storage controller 12 when the rule type of the hierarchical arrangement rule is application cooperation, the storage controller 12 according to the access to the block requested from the application 29 (that is, a specific application) started by the cooperation program. Sets the hierarchy movement flag associated with the extent including the accessed block to the ON state (steps S35 and S36). Therefore, according to the present embodiment, in response to a block access request from the application 29, the extent including the requested block can be arranged in the storage area of the designated hierarchy.
  • a block access is requested to the file access control unit 251 from a normal application operating on the host device 20 in a state where the hierarchical storage system 10 is set to the area arrangement mode. To do.
  • the file access control unit 251 accesses the requested block via the data input / output control unit 126.
  • the hierarchy movement flag corresponding to the extent including the accessed block is turned on. That is, an extent including a block accessed from a normal application is also arranged in a storage area of a hierarchy specified by the hierarchy arrangement rule applied in the current area arrangement mode. Therefore, an access request from a normal application may be waited during the area arrangement mode.
  • FIG. 10 is a diagram for explaining the outline of the file arrangement processing.
  • blocks Ba, Bb, Bc, Bd. Be, Bf, Bg, and Bh constitute a specified file.
  • blocks Ba and Bb are included in extent EXTa1
  • blocks Bc and Bd are included in extent EXTa2.
  • the block Be is included in the extent EXTa3, and the blocks Bf and Bg are included in the extent EXTa4.
  • the block Bh is included in the extent EXTa5.
  • the extents EXTa1 to EXTa5 are arranged in the storage area of the designated hierarchy.
  • the blocks Ba, Bb, Bc, Bd. Be, Bf, Bg, and Bh are arranged in the extent EXTb as shown in FIG.
  • this extent EXTb is arranged in the storage area of the designated hierarchy. Therefore, in the example of FIG. 10, the number of extents arranged in the storage area of the designated hierarchy is reduced from 5 to 1 as compared with the embodiment.
  • FIG. 11 is a flowchart for explaining a typical procedure of file arrangement processing executed on the host device 20 side.
  • the file extraction unit 23 has extracted all the file paths indicated by the hierarchical arrangement rules from the file-logical address management table 252 (step S12).
  • the hierarchical arrangement instructing unit 22 issues a file arrangement instruction to the file arrangement unit 26 before issuing an access instruction instructing access to the set of files indicated by the extracted file path to the file specifying unit 24.
  • This file placement instruction instructs to place the blocks constituting the file in the same extent as much as possible.
  • the file placement unit 26 executes the file placement process as follows in accordance with the file placement command from the hierarchy placement instruction unit 22. First, the file placement unit 26 selects one unselected file path from the file path list 28 (step S41). Then, the file placement unit 26 transfers the blocks (a set of blocks) constituting the file indicated by the selected file path (that is, the designated file) to the logical disk 110 via the data input / output control unit 126 of the storage controller 12. It replicates in the area
  • Step S42 will be described in detail.
  • the file allocation unit 26 copies the blocks constituting the specified file to the area where the LBAs in the logical disk 110 are continuous, and the data input / output of the storage controller 12 via the file access control unit 251 of the file system 25. Requests to the control unit 126. Then, the data input / output control unit 126 copies the requested block to a free extent in the logical disk 110.
  • the area used for the duplication is an area starting from the head of the free extent. By this duplication, there is a high possibility that the blocks (a set of blocks) constituting the designated file are arranged in the same extent.
  • a method for managing which of the extents indicated by the extent management table 128 is a free extent has been well known.
  • One method is to use a free extent list that holds a set of free extent IDs. Further, a flag field indicating whether the corresponding extent is a free extent may be prepared in each entry of the extent management table 128.
  • the data input / output control unit 126 When the data input / output control unit 126 replicates the requested block to a free extent in the logical disk 110, the data input / output control unit 126 notifies the file placement unit 26 of the LBA range of the area where the block is replicated. Then, the file placement unit 26 uses the temporary file path as the copy destination file path, and enters an entry including a pair of the copy destination file path and the notified LBA range via the file access control unit 251. Add to the logical address management table 252.
  • the file placement unit 26 renames (overwrites) the copy destination (provisional) file path to the same file path name (file name) as the copy source via the file access control unit 251 (step S43). Upon this renaming, the file placement unit 26 deletes the entry including the copy source file path from the file-logical address management table 252 via the file access control unit 251. The file placement unit 26 repeats the above operation (steps S41 to S43) until there is no unselected file path in the file path list 28 (step S44).
  • the set of files indicated by the file paths in the file path list 28 includes the first and second files. Further, it is assumed that the first block (first block set) constituting the first file is copied to the first area starting from the head of the first extent in the first step S42. Further, in this state, the first extent is free, and the remaining area of the first extent is larger than the size of the second block (second block set) constituting the second file. Shall. In such a case, in the second step S42, the set of the second blocks may be copied to the second area subsequent to the first area of the first extent.
  • the remaining area of the first extent is smaller than the size of the second block set
  • a part of the second block set is copied to the remaining area of the first extent
  • the second extent For example, the rest of the set of blocks may be copied to an area starting from the beginning of the second extent different from the first extent.
  • step S44 the file placement unit 26 notifies the hierarchical placement instruction unit 22 of completion of the file placement process. Then, the hierarchical arrangement instructing unit 22 instructs the access to the set of files indicated by the extracted file paths in the same manner as when all the file paths indicated by the hierarchical arrangement rules are extracted in the embodiment (step S12). An access command to be issued is issued to the file designation unit 24. Thereby, similarly to the above-described embodiment, the process starting from step S13 is executed.
  • a set of blocks included in a file to be arranged in the storage area of the designated hierarchy is arranged in the same extent as much as possible.
  • the designated hierarchy is an upper hierarchy
  • the probability that blocks not included in the designated file are mixed into the extent arranged in the upper hierarchy is reduced. Therefore, according to the first modification, the use efficiency of the storage area of the high-speed storage device 111 can be increased.
  • a process for reading only a part of the blocks (a set of blocks) constituting the designated file is applied. That is, in the second modification, the partial read process is applied to block access based on the hierarchical arrangement rule.
  • This partial read process is a dummy access process and is used as a trigger for setting the hierarchy movement flag associated with the extent including the accessed block to the ON state.
  • the specified file is composed of a plurality of segments, and each of the plurality of segments extends over a plurality of extents.
  • one block is selected from each of a plurality of extents in which the corresponding segment exists.
  • the selected block (block data) is read.
  • the segment is divided into small segments from the beginning of the segment with the extent size N (here, the number of blocks constituting the extent).
  • the final small segment size is N or less.
  • the head block in the corresponding small segment is selected.
  • the final block in the final small segment is also selected. If the segment size (number of blocks) is N or less, the first block and the last block in the segment may be selected.
  • FIG. 12 is a diagram for explaining the outline of the partial read process in the second modification.
  • the extents EXTc1 to EXTc8 are assumed to be continuous in the logical disk 110.
  • the segments SEGa and SEGb constitute a designated file.
  • the segment SEGa is composed of blocks Ba1 to Ba23 and exists across the extents EXTc1 to EXTc4.
  • the segment SEGb is composed of blocks Bb1 to Bb13, and exists across the extents EXTc5 and EXTc6.
  • N 8
  • the first (first) block Ba1, the ninth block Ba9, the 17th block Ba17, and the last (23rd) block Ba23 in the segment SEGa are selected as blocks to be read.
  • the Similarly, the first (first) block Bb1, the ninth block Bb9, and the last (13th) block Ba13 in the segment SEGb are selected as blocks to be read. Blocks selected from these segments SEGa and SEGb are indicated by black squares in FIG. 12, and blocks not selected from the segments SEGa and SEGb are indicated by white squares in FIG.
  • a total of 36 blocks that is, blocks Ba1 to Ba23 and Bb1 to Bb13 constituting the segments SEGa and SEGb are read.
  • only seven blocks selected from the segments SEGa and SEGb that is, the blocks Ba1, Ba9, Ba17, Ba23, Bb1, Bb9, and Bb13 are read.
  • the hierarchy movement flags respectively associated with the extents EXTc1, EXTc2, EXTc3, EXTc4 and EXTc5 are turned on. Further, according to the reading of the blocks Bb9 and Bb13, the hierarchy movement flag associated with the extent EXTc6 is turned on. Thereafter, the extents EXTc1 to EXTc6 are arranged in the designated hierarchy.
  • the second modification example reads only a part of the blocks in the file, turns on the hierarchy movement flag associated with all the extents in which the file exists, and sets all the extents. Can be placed in a specified hierarchy. That is, according to the second modification, it is possible to access all extents in which a file exists with a minimum block read.
  • FIG. 13 is a flowchart for explaining a typical procedure of partial read processing executed on the host device 20 side.
  • the file extraction unit 23 has extracted all the file paths indicated by the hierarchical arrangement rules from the file-logical address management table 252 (step S12).
  • the hierarchical arrangement instructing unit 22 issues an access command for instructing access to the set of files indicated by the extracted file path to the file specifying unit 24
  • the file specifying unit 24 reads from the file path list 28.
  • One unselected file path is selected (step S51).
  • the file specifying unit 24 inquires of the file access control unit 251 about the LBA (logical block address) range associated with the selected file path.
  • the file access control unit 251 specifies all the LBA ranges associated with the selected file path (step S52).
  • the file access control unit 251 notifies the file designation unit 24 of all the specified LBA ranges.
  • the file designation unit 24 selects one LBA range from the notified LBA range (step S53). Steps S51 to S53 described above are the same as Steps 13 to S15 shown in FIG.
  • the file designation unit 24 sets the pointer P to the initial value 1 (step S54).
  • Pointer P points to the relative position of the block to be accessed in the selected LBA range (ie segment).
  • the pointer P points to the first (first) block in the selected LBA range.
  • the file designation unit 24 requests the file access control unit 251 to access the Pth block within the selected LBA range. That is, the file designation unit 24 requests the file access control unit 251 to access a block whose LBA is LBA_P.
  • the file access control unit 251 accesses the P-th block existing in the logical disk 110 and within the selected LBA range via the data input / output control unit 126 (step S55). That is, the file access control unit 251 accesses the block located at LBA_P in the logical disk 110 via the data input / output control unit 126 of the storage controller 12. In response to this block access (Yes in step S35), the data arrangement control unit 127 of the storage controller 12 turns on the tier migration flag corresponding to the extent including the accessed block (step S36).
  • the file designation unit 24 increments the pointer P by N (step S56).
  • the incremented pointer P points to a block that is N blocks ahead in the direction in which the LBA increases from the block pointed to by the pointer P before being incremented. For example, when the pointer P before being incremented points to the block Ba1 shown in FIG. 12, the incremented pointer P points to the block Ba9.
  • the file designation unit 24 determines whether the incremented pointer P is greater than or equal to M (step S57).
  • the file designating unit 24 determines that the pointer P has not reached the last block in the selected LBA range. In this case, the file designation unit 24 requests the file access control unit 251 to access the block indicated by the incremented pointer P. Then, the file access control unit 251 accesses the P-th block existing in the logical disk 110 and within the selected LBA range via the data input / output control unit 126 (step S55).
  • the file designating unit 24 determines whether the pointer P has reached the last block in the selected LBA range, or It is determined that the last block has been passed. In this case, the file designation unit 24 requests the file access control unit 251 to access the last block in the selected LBA range. Then, the file access control unit 251 accesses the last block in the logical disk 110 and within the selected LBA range via the data input / output control unit 126 (step S58).
  • step S58 the file designating unit 24 determines whether there is an unselected LBA range in the specified LBA range.
  • step S59 If there is an unselected LBA range (Yes in step S59), the file designating unit 24 returns to step S53 and selects one unselected LBA range. On the other hand, if there is no unselected LBA range (No in step S59), the file designating unit 24 determines whether there is an unselected file path in the file path list 28 (step S60).
  • step S60 If there is an unselected file path (Yes in step S60), the file designation unit 24 returns to step S51. On the other hand, if there is no unselected file path (No in step S60), the block access process (step S4) ends.
  • the second modification only a part of the blocks constituting the designated file is read, and the respective hierarchy migration flags corresponding to the extents including the read block are turned on. That is, in the second modification, the partial read process is applied to block access for designating an extent to be arranged in the designated hierarchy. Therefore, according to the second modification, it is possible to reduce the time required for block access for designating an extent to be arranged in the designated hierarchy, and to prevent the throughput of the hierarchical storage system 10 from being lowered by the block access. it can.
  • a specified file can be arranged in a specified tier without requiring a file system on the hierarchical block storage device side.

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)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

 実施形態によれば、ストレージコントローラは、モード切替部と、データ入出力制御部と、データ配置制御部とを含む。モード切替部は、階層配置ルールに基づくホスト機器からのモード切替要求に応じて、階層化ブロックストレージシステムを第1のモードから第2のモードに切り替える。前記データ入出力制御部は、前記階層配置ルールの示す第1のファイルを構成する第1のブロック列が格納された論理アドレス範囲へのアクセスが前記ホスト機器から要求された場合、前記要求された論理アドレス範囲内の前記第1のブロック列にアクセスする。前記データ配置制御部は、前記第2のモードにおいてアクセスされた論理アドレス範囲内のブロック列を含むエクステント内のデータを、前記階層配置ルールによって指定される階層の記憶領域に移動する。

Description

階層化ブロックストレージ装置を有するコンピュータシステム、ストレージコントローラ、及びプログラム
 本発明の実施形態は、階層化ブロックストレージ装置を有するコンピュータシステム、ストレージコントローラ、及びプログラムに関する。
 近年、ストレージ階層化技術を利用した種々のストレージ装置、いわゆる階層化ブロックストレージ装置が開発されている。ストレージ階層化技術は、アクセス応答性能の異なる複数種類のストレージ装置の物理的な記憶領域(以下、物理ボリュームと称する)を束ねる。これによりストレージ階層化技術は、複数の物理ボリュームを実体として有する少なくとも1つの仮想的な記憶領域(以下、論理ボリュームと称する)を構成する。論理ボリュームは論理ディスクとも呼ばれ、ホスト機器(コンピュータ)から認識可能である。
 ストレージ階層化技術では、同種類のストレージ装置(物理ボリューム)の集合は、「階層」と呼ばれる。一般にアクセス応答性能が高いストレージ装置ほど、上位の階層に割り当て(位置付け)られる。つまり、階層化ブロックストレージ装置は、階層の異なる複数種類のストレージ装置を備え、論理ディスクは、このような階層の異なるストレージ装置の物理ボリュームを用いて構成される。
 階層化ブロックストレージ装置を備えたコンピュータシステムでは、指定のファイルが指定の階層に配置されることが要求される。一般に、階層化ブロックストレージ装置は、ファイルを認識することはできない。そこで従来技術では、階層化ブロックストレージ装置に特別なファイルシステム(ファイルシステムプログラム)が設けられる。この特別なファイルシステムは、ホスト機器によって利用されるファイルと、当該ファイルを構成するブロックの論理ディスク上の位置とを対応付ける。これにより階層化ブロックストレージ装置(より詳細には、階層化ブロックストレージ装置のストレージコントローラ)は、指定のファイルを構成するブロックを特定して、当該特定されたブロックを指定の階層に配置することができる。
特開2004-295457号公報 特開2010-257094号公報
 上述したように、従来技術は、指定のファイルを指定の階層に配置する機能を、階層化ブロックストレージ装置に設けられた特別のファイルシステムにより実現している。つまり、従来技術では、階層化ブロックストレージ装置は、特別のファイルシステムを必要とする。
 本発明が解決しようとする課題は、階層化ブロックストレージ装置側にファイルシステムを必要とすることなく、指定のファイルを指定の階層に配置することができる、コンピュータシステム、ストレージコントローラ、及びプログラムを提供することにある。
 実施形態によれば、コンピュータシステムは、階層化ブロックストレージシステムと、ホスト機器とを備える。前記ホスト機器は、前記階層化ブロックストレージシステムにアクセスする。前記階層化ブロックストレージシステムは、階層化ブロックストレージ装置と、ストレージコントローラとを備える。前記階層化ブロックストレージ装置は、アクセス応答性能の異なる複数種類のストレージ装置を備える。前記複数種類のストレージ装置は、前記アクセス応答性能にそれぞれ対応した階層に割り当てられる。前記複数種類のストレージ装置の少なくとも2種類のストレージ装置のそれぞれ少なくとも一部の記憶領域は、第1のサイズの複数のブロックを備えた論理ディスクに割り当てられる。前記論理ディスクは、前記ホスト機器によって利用されるファイルを格納するのに用いられる。前記ストレージコントローラは、モード切替部と、データ入出力制御部と、データ配置制御部とを備える。前記ホスト機器は、ファイルシステムと、ルール入力部と、階層配置指示部と、ファイル指定部とを備える。前記モード切替部は、前記ホスト機器からの要求に応じて、前記階層化ブロックストレージシステムの動作モードを第1のモードから第2のモードに切り替える。前記データ入出力制御部は、前記ホスト機器からのアクセス要求に応じて前記論理ディスクにアクセスする。前記ファイルシステムは、前記論理ディスクに格納されるファイル毎に、対応するファイルを示すファイルパスと当該対応するファイルが格納されている論理アドレス範囲との対応を管理する。前記ファイルシステムは更に、前記ファイル指定部から、ファイルを構成するブロック列が格納された論理アドレス範囲へのアクセスが要求された場合、前記要求された論理アドレス範囲内のブロック列に前記データ入出力制御部を介してアクセスする。前記ルール入力部は、外部からの要求に基づいて、ファイルを指定するためのファイルパス情報と、当該ファイルが配置されるべき階層を指定するため階層情報とを含む階層配置ルールを入力する。前記階層配置指示部は、前記階層配置ルールに基づいて、前記第2のモードへの切り替えを前記ストレージコントローラに要求する。前記ファイル指定部は、前記階層配置ルール内の前記ファイルパス情報によって示されるファイルパスの示す第1のファイルを構成する第1のブロック列が格納された論理アドレス範囲へのアクセスを前記ファイルシステムに要求する。前記データ配置制御部は、前記第2のモードにおいてアクセスされた論理アドレス範囲内のブロック列を含むエクステントであって、論理アドレスが連続する第2の数のブロックから構成されるエクステント内のデータを、前記階層配置ルールによって指定される階層の記憶領域に移動する。
図1は、1つの実施形態に係るコンピュータシステムの典型的なハードウェア構成を示すブロック図である。 図2は、図1に示される階層化ストレージシステム及びホスト機器の典型的な機能構成を主として示すブロック図である。 図3は、同実施形態におけるエクステント管理テーブルのデータ構造の例を示す図である。 図4は、同実施形態におけるファイル-論理アドレス管理テーブルのデータ構造の例を示す図である。 図5は、同実施形態における階層配置ルールリストのデータ構造の例を示す図である。 図6は、同実施形態におけるファイルパスリストのデータ構造の例を示す図である。 図7は、同実施形態においてホスト機器側で実行される階層配置処理の典型的な手順を説明するためのフローチャートである。 図8は、図7に示される階層配置処理に含まれているブロックアクセス処理の典型的な手順を説明するためのフローチャートである。 図9は、同実施形態において階層化ストレージシステム側で実行される階層配置処理の典型的な手順を説明するためのフローチャートである。 図10は、同実施形態の第1の変形例におけるファイル配置処理の概要を説明するための図である。 図11は、同第1の変形例においてホスト機器側で実行されるファイル配置処理の典型的な手順を説明するためのフローチャートである。 図12は、同実施形態の第2の変形例における部分リード処理の概要を説明するための図である。 図13は、第2の変形例においてホスト機器側で実行される部分リード処理の典型的な手順を説明するためのフローチャートである。
 以下、種々の実施の形態につき図面を参照して説明する。 
 図1は、1つの実施形態に係るコンピュータシステムの典型的なハードウェア構成を示すブロック図である。コンピュータシステムは、階層化ストレージシステム10及びホスト機器20から構成される。階層化ストレージシステム10(より詳細には、階層化ストレージシステム10のストレージコントローラ12)は、ファイバチャネル(FC)、スモールコンピュータシステムインタフェース(SCSI)、シリアルアタッチドSCSI(SAS)、インターネットSCSI(iSCSI)、イーサネット(登録商標)、或いはシリアルATアタッチメント(SATA)のようなホストインタフェースバス30を介してホスト機器20と接続されている。ホスト機器20は、階層化ストレージシステム10を外部ストレージ装置として利用する。なお、階層化ストレージシステム10が、ストレージエリアネットワーク(SAN)、インターネット或いはイントラネットのようなネットワークを介してホスト機器20と接続されていても良い。更に、階層化ストレージシステム10が、ホスト機器20を含む複数のホスト機器と接続されていても良い。
 階層化ストレージシステム10は、階層化ブロックストレージ装置11と、ストレージコントローラ12とから構成される。階層化ブロックストレージ装置11は、高速ストレージ装置(第1の種類のストレージ装置)111と、低速ストレージ装置(第2の種類のストレージ装置)112とを備えている。高速ストレージ装置111及び低速ストレージ装置112は、FC、SCSI、SAS、iSCSI、イーサネット、或いはSATAのようなストレージインタフェースバス13を介してストレージコントローラ12と接続されている。
 高速ストレージ装置111は、例えば、フラッシュアレイのような、アクセス応答性能に優れた(つまり、アクセス速度が高速な)フラッシュストレージ装置から構成される。フラッシュストレージ装置は、複数のフラッシュメモリボードを用いて実現される。フラッシュメモリボードの各々は、フラッシュメモリの集合を含む。本実施形態では、複数のフラッシュメモリボードの各々はハードディスクドライブ(HDD)との互換性を有していないものとする。しかし、複数のフラッシュメモリボードに代えて、HDDとの互換性を有する複数のソリッドステートドライブ(SSD)が用いられても構わない。
 一方、低速ストレージ装置112は、例えば、高速ストレージ装置111(フラッシュストレージ装置)と比較してアクセス応答性能が低い(つまり、アクセス速度が低速な)ハードディスクドライブ(HDD)アレイから構成される。HDDアレイは、例えば、複数のHDDを備えたRAID(Redundant Arrays of Inexpensive DisksまたはRedundant Arrays of Independent Disks)構成のストレージ装置である。なお、高速ストレージ装置111及び低速ストレージ装置112が必ずしもアレイ構成を有している必要はない。
 高速ストレージ装置111及び低速ストレージ装置112は、第1のサイズのデータの塊を最小単位としてアクセスが可能である。この第1のサイズのデータの塊はブロックと呼ばれる。このため、高速ストレージ装置111及び低速ストレージ装置112は、ブロックストレージ装置と呼ばれる。
 上述のように、図1に示される階層化ストレージシステム10(階層化ブロックストレージ装置11)には、アクセス応答性能(アクセス速度)の異なる2つ(2種類)のストレージ装置(つまり、高速ストレージ装置111及び低速ストレージ装置112)が存在する。この場合、高速ストレージ装置111は上位階層(高速階層、第1の階層)に、低速ストレージ装置112は下位階層(低速階層、第2の階層)に、それぞれ割り当てられる。なお、階層化ストレージシステム10が、例えば磁気テープ装置のような、低速ストレージ装置112よりも更に低速(低階層、第3の階層)のストレージ装置(第3の階層のストレージ装置)を備えていても良い。
 ストレージコントローラ12は、ホストインタフェースコントローラ(以下、HIFCと称する)120と、ストレージインタフェースコントローラ(以下、SIFCと称する)121と、メモリ122と、HDD123と、CPU124とを備えている。
 HIFC120は、ホスト機器20との間のデータ転送(データ転送プロトコル)を制御する。HIFC120は、ホスト機器20からの論理ボリュームに対するデータアクセス要求(リード要求またはライト要求)を受信し、当該データアクセス要求に対する応答を返信する。HIFC120は、ホスト機器20からデータアクセス要求を受信すると、当該要求を、CPU124に伝達する。データアクセス要求を受け取ったCPU124は、当該データアクセス要求を処理する。
 SIFC121は、CPU124が受信したホスト機器20からのデータアクセス要求(論理ボリュームに対するライト要求またはリード要求)に基づく入出力(I/O)要求を受信する。SIFC121は、受信されたI/O要求に応じて、高速ストレージ装置111または低速ストレージ装置112へのアクセスを実行する。
 メモリ122は、DRAMのような書き換えが可能な揮発性メモリである。メモリ122の一部の領域は、HDD123からロードされるストレージ制御プログラムを格納するのに用いられる。メモリ122の他の一部の領域は、CPU124のためのワーク領域として用いられる。
 HDD123には、ストレージ制御プログラムが格納されている。CPU124は、ストレージコントローラ12が起動されたときにイニシャルプログラムローダ(IPL)を実行することにより、HDD123に格納されているストレージ制御プログラムをメモリ122にロードする。IPLは、読み出し専用メモリ(ROM)またはフラッシュROM(FROM)のような不揮発性メモリに格納されている。
 CPU124は、メモリ122にロードされたストレージ制御プログラムに従い、後述のモード切替部125、データ入出力制御部126及びデータ配置制御部127として機能する。つまりCPU124は、メモリ122に格納されているストレージ制御プログラムを実行することで、階層化ストレージシステム10全体(特にストレージコントローラ12内の各部)を制御する。
 ホスト機器20は、SIFC(インタフェースコントローラ)201と、メモリ202と、HDD203と、CPU204とを備えている。SIFC201は、階層化ストレージシステム10のストレージコントローラ12(より詳細には、ストレージコントローラ12のHIFC120)との間のデータ転送を制御する。SIFC201は、CPU204からのデータアクセス要求をストレージコントローラ12に送信し、当該データアクセス要求に対するストレージコントローラ12からの応答を受信する。SIFC201は、ストレージコントローラ12からの応答を受信すると、当該応答を、CPU204に伝達する。
 メモリ202は、メモリ122と同様に、DRAMのような書き換えが可能な揮発性メモリである。メモリ202の一部の領域は、HDD203からロードされるオペレーティングシステム(OS)及び種々のプログラムを格納するのに用いられる。メモリ202の他の一部の領域は、CPU204のためのワーク領域として用いられる。
 HDD203には、OS及び複数のプログラムが格納されている。複数のプログラムは、アプリケーションプログラム(以下、アプリケーションと称する)及びユーティリティプログラムを含む。CPU204は、ホスト機器20が起動されたときに、ROMまたはFROMのような不揮発性メモリ格納されているIPLを実行することにより、HDD203に格納されているOSをメモリ202にロードする。またCPU204は、HDD203に格納されているプログラムを適宜メモリ202にロードする。
 CPU204は、メモリ202にロードされた特定のプログラム(例えば、特定のユーティリティプログラム)及びOSに従い、後述のルール入力部21、階層配置指示部22、ファイル抽出部23、ファイル指定部24、ファイルシステム25(より詳細には、ファイルシステム25のファイルアクセス制御部251)、及びファイル配置部26として機能する。本実施形態では、CPU204は、特定のユーティリティプログラムに従い、ルール入力部21、階層配置指示部22、ファイル抽出部23及びファイル配置部26として機能し、OSに従い、ファイル指定部24及びファイルシステム25(ファイルアクセス制御部251)として機能する。
 図2は、図1に示される階層化ストレージシステム10及びホスト機器20の典型的な機能構成を主として示すブロック図である。階層化ストレージシステム10の階層化ブロックストレージ装置11は、論理ディスク110を備えている。本実施形態では、説明の簡略化のために、階層化ブロックストレージ装置11が1つの論理ディスク(110)を備えている場合を想定している。しかし、階層化ブロックストレージ装置11が、複数の論理ディスクを備えていても構わない。
 論理ディスク110は、論理ボリュームとも呼ばれ、仮想的な記憶領域(いわゆる、論理アドレス空間)を有する。この仮想的な記憶領域は、管理のために第1のサイズの複数の論理ブロックに分割される。つまり、論理ディスク110は、複数の論理ブロックを備えている。複数の論理ブロックはそれぞれ論理ブロックアドレス(LBA)で指定される。仮想的な記憶領域は更に、管理のために第2のサイズの複数の論理エクステントにも分割される。第2のサイズは、Nを1より大きい整数とすると、第1のサイズのN倍である。つまり、論理エクステントの各々は、N個の連続するLBAで指定されるN個の論理ブロックから構成される。本実施形態において、Nは8,192である。しかし、Nが8,192以外の1より大きい整数であっても構わない。なお、以下の説明では、論理ブロック及び論理エクステントが、それぞれ単にブロック及びエクステントと称されることもある。
 論理ディスク110の仮想的な記憶領域の一部には、高速ストレージ装置111の少なくとも一部の記憶領域(つまり物理ボリューム)が割り当てられる(つまりマッピングされる)。また、この仮想的な記憶領域の他の一部には、低速ストレージ装置112の少なくとも一部の記憶領域が割り当てられる。このように、論理ディスク110は、階層の異なる複数の物理ボリューム(ここでは、上位階層の物理ボリューム及び下位階層の物理ボリューム)を実体として有する。つまり論理ディスク110(より詳細には論理ディスク110の実体)は、高速ストレージ装置111及び低速ストレージ装置112内の物理ボリューム(第1及び第2の物理ボリューム)を組み合わせて構成される。第1及び第2の物理ボリュームの各々は、論理ブロックと同一サイズ(第1のサイズ)の複数の物理ブロックを備えている。論理ディスク110には、例えばホスト機器20によって利用されるファイルが格納される。このファイルは、1つ以上のブロックから構成される。
 階層化ストレージシステム10のストレージコントローラ12は、モード切替部125、データ入出力制御部126及びデータ配置制御部127を備えている。これらの機能要素125乃至127は、図1に示されるストレージコントローラ12のCPU124がストレージ制御プログラムを実行することにより実現されるソフトウェアモジュールである。しかし、機能要素125乃至127の少なくとも1つがハードウェアモジュールによって実現されても構わない。
 モード切替部125は、階層化ストレージシステム10の動作モードを切り替える。本実施形態において、階層化ストレージシステム10のストレージコントローラ12は、少なくとも通常モード(第1のモード)及び領域配置モード(第2のモード)でそれぞれ動作可能である。通常モードとは、ホスト機器20によって要求された論理ディスク110内の1つ以上のブロックへのアクセスを実行するための動作モードを指す。以下の説明では簡略化のために、特に断らない限り、1つを超えるブロックへのアクセスを前提とする。領域配置モードとは、ホスト機器20によって要求されたブロックへのアクセスに加えて、主として次の第1及び第2の動作を実行するための動作モードを指す。第1の動作は、アクセスされたブロックを含むエクステントに対応付けられた階層移動フラグをオンすることを含む。階層移動フラグについては後述する。第2の動作は、ホスト機器20によって領域配置モードの終了が指定された場合に、オン状態にある階層移動フラグに対応する全てのエクステントを指定の階層の記憶領域に配置して、しかる後に、階層化ストレージシステム10の動作モードを領域配置モードから通常モードに切り替えることを含む。
 データ入出力制御部126は、ホスト機器20によって要求された論理ディスク110内のブロックにアクセスする。データ配置制御部127は、上述の階層移動フラグを操作し、且つオン状態にある階層移動フラグに対応する全てのエクステントを指定の階層の記憶領域に配置する。
 ストレージコントローラ12は、エクステント管理テーブル128を更に備える。エクステント管理テーブル128は、図1に示されるストレージコントローラ12のHDD123に保存されており、必要に応じて(例えば、当該ストレージコントローラ12の起動時に)HDD123からメモリ122にロードされる。
 図3は、エクステント管理テーブル128のデータ構造の例を示す。エクステント管理テーブル128は、論理ディスク110のエクステントにそれぞれ対応付けられたエントリを有する。エクステント管理テーブル128の各エントリは、エクステント識別子(ID)フィールド、LBAフィールド、物理ストレージIDフィールド、物理ストレージアドレスフィールド、及び階層移動フラグフィールドを含む。階層移動フラグフィールドは、対応するエクステントが指定の階層に移動されるべきかを示す階層移動フラグを保持するのに用いられる。
 エクステントIDフィールドは、対応するエクステントを識別するためのID(エクステントID)を保持するのに用いられる。LBAフィールドは、対応するエクステントを構成するN個の連続するブロック(論理ブロック)に関するLBA情報を保持するのに用いられる。本実施形態では、LBA情報は、対応するエクステントの先頭ブロック及び最終ブロックのそれぞれLBAを含む。つまり、LBA情報は、対応するエクステントのLBA範囲を示す。
 物理ストレージIDフィールドは、対応するエクステント内のN個の連続するブロックに割り当てられたN個の物理ブロックを含む記憶装置(物理ストレージ装置)を識別するためのID(物理ストレージID)を保持するのに用いられる。物理ストレージアドレスフィールドは、対応するエクステント内のN個の連続する論理ブロック(つまり、N個の論理ブロックの列)に割り当てられたN個の物理ブロックに関する物理ストレージアドレス情報を保持するのに用いられる。
 本実施形態では、N個の物理ブロックは対応する物理ストレージ装置において連続している。物理ストレージアドレス情報は、この連続するN個の物理ブロックの先頭物理ブロック及び最終物理ブロックのそれぞれ物理ストレージアドレスを含む。つまり、物理ストレージアドレス情報は、対応するエクステントの物理アドレス範囲を示す。
 このように、エクステント管理テーブル128のエントリの各々には、対応するエクステントを管理するのに用いられるエクステント情報が保持される。このエクステント情報は、エクステントID、LBA情報、物理ストレージID、物理ストレージアドレス情報及び階層移動フラグを含む。
 なお、階層化ブロックストレージ装置11が複数の論理ディスクを備えている場合、当該複数の論理ディスクにそれぞれ対応付けて、当該複数の論理ディスクと同数のエクステント管理テーブル128が用意されれば良い。また、エクステント管理テーブル128の各エントリに、論理ディスクIDフィールドを追加するならば、当該エクステント管理テーブル128を、複数の論理ディスクに共通に用いることも可能である。これらは、例えば、後述のファイル-論理アドレス管理テーブル252においても同様である。
 ホスト機器20は、図2に示されているように、ルール入力部21、階層配置指示部22、ファイル抽出部23、ファイル指定部24、ファイルシステム25、及びファイル配置部26を備えている。ファイルシステム25は、ファイルアクセス制御部251を含む。前述したように、これらの機能要素21乃至26(より詳細には、機能要素21乃至24,26及び251)は、図1に示されるホスト機器20のCPU204が特定のプログラム及びOSを実行することにより実現されるソフトウェアモジュールである。しかし、機能要素機能要素21乃至26の少なくとも1つがハードウェアモジュールによって実現されても構わない。ファイルシステム25は、ファイル-論理アドレス管理テーブル252を更に含む。
 ホスト機器20はまた、階層配置ルールリスト27、ファイルパスリスト28及びアプリケーション29を備えている。階層配置ルールリスト27、ファイルパスリスト28、アプリケーション29及びファイル-論理アドレス管理テーブル252は、図1に示されるホスト機器20のHDD203に保存されており、必要に応じて(例えば、当該当ホスト機器20の起動時に)HDD203からメモリ202にロードされる。
 ルール入力部21は、ホスト機器20の外部から階層配置ルール(より詳細には、階層配置ルールが記述された階層配置ルール情報)を入力する。階層配置ルールとは、指定のファイルを構成するブロックを含むエクステントを、指定階層に移動(配置)するためのルールを指す。階層配置ルールの詳細については後述する。ルール入力部21によって入力された階層配置ルールは、階層配置ルールリスト27に保持される。
 階層配置指示部22は、階層配置ルールリスト27内の階層配置ルールで指定されたファイルを構成するブロックを含むエクステントを当該ルールで指定された階層に移動するために、ストレージコントローラ12内のモード切替部125と、ホスト機器20内のファイル抽出部23、ファイル指定部24及びファイル配置部26とを制御する。ファイル抽出部23は、階層配置ルールによって示されるファイルパスを全て抽出する。抽出されたファイルパスはファイルパスリスト28に保持される。
 ファイル指定部24は、ファイルパスリスト28に保持されているファイルパス毎に、対応するファイルパスで指定されるファイルへのアクセスを、ファイルシステム25のファイルアクセス制御部251に対して要求する。ファイルシステム25は、階層化ブロックストレージ装置11内の論理ディスク(図2の例では、論理ディスク110)に格納されるファイルと当該ファイルを構成するブロックの集合(より詳細には、1つ以上のブロック列)との対応を管理し、且つ当該論理ディスクへのアクセスを制御する周知の機能を有する。一方、階層化ストレージシステム10(より詳細には、階層化ストレージシステム10のストレージコントローラ12)は、論理ディスク内のいずれのブロックの集合がいずれのファイルに対応付けられているかを考慮しない。
 ファイルシステム25のファイルアクセス制御部251は、ファイル指定部24によって要求されたファイルを構成するブロックに、ストレージコントローラ12のデータ入出力制御部126を介してアクセスする。ファイル配置部26は、ファイルパスリスト28に保持されているファイルパスで指定されるファイルを構成するブロックの集合が論理ディスク110内で連続するように再配置する。ファイル配置部26は、後述の第1の変形例で用いられる。
 図4は、ファイル-論理アドレス管理テーブル252のデータ構造の例を示す。ファイル-論理アドレス管理テーブル252は、ファイルシステム25によって管理されるファイルにそれぞれ対応付けられたエントリを有する。ファイル-論理アドレス管理テーブル252の各エントリは、ファイルパスフィールド、及びLBAフィールドを含む。
 ファイルパスフィールドは、対応するファイルのファイルパス(より詳細には、ファイルパスを示す情報)を保持するのに用いられる。LBAフィールドは、対応するファイルを構成するブロックの集合に関するLBA情報を保持するのに用いられる。ここで、対応するファイルを構成するブロックの全てが、論理ディスク110(より詳細には、論理ディスク110の仮想的な記憶領域)において連続しているものとする。この場合、LBA情報は、前記連続するブロック(つまり、LBAが連続するブロックの列)内の先頭ブロック及び最終ブロックのそれぞれLBAを含む。つまりLBA情報は、前記連続するブロックのLBA範囲を示す。このLBA範囲が、前記連続するブロック内の先頭ブロックのLBAと、当該連続するブロックの数(または当該連続するブロック全体のサイズ)とにより示されても構わない。なお、対応するファイルが1つのブロックから構成されていても構わない。この場合、LBA情報に含まれる先頭ブロック及び最終ブロックのLBAは一致する。
 次に、対応するファイルが断片化を起こして、当該対応するファイルを構成するブロックの集合が、階層化ストレージシステム10において複数のセグメントに分断されているものとする。複数のセグメントの各々は、論理ディスク110において連続するブロック(つまり、ブロックの列)から構成される。この場合、LBA情報は、セグメント毎に、対応するセグメントの先頭ブロック及び最終ブロックのそれぞれLBAを含む。つまりLBA情報は、セグメント毎に、対応するセグメントのLBA範囲を示す。なお、複数のセグメントの少なくとも1つが、1つのブロックから構成されていても構わない。
 以下の説明では、ファイルを構成するブロックの全てが論理ディスク110において連続している場合にも、当該ブロックの集合を便宜的にセグメントと称する。つまり以下の説明では、ファイルは、1つ以上のセグメントから構成されるものとする。
 図5は、階層配置ルールリスト27のデータ構造の例を示す。階層配置ルールリスト27の各要素(つまり、階層配置ルール)は、ルールID、階層情報、ルール種別、ルール内容、及び開始時刻情報及び打切時刻情報を含む。ルールIDは、対応する階層配置ルールに固有のIDを示す。階層情報は、データが配置されるべき階層を示す。ルール種別は、階層配置ルールの種別、例えばファイル指定(第1の種別)であるか、或いはアプリケーション連携(第2の種別)であるかを示す。ファイル指定とは、階層情報によって示される階層(つまり指定階層)に配置されるべきデータとして、ファイルが指定されることを示す。アプリケーション連携とは、指定階層に配置されるべきデータが、予め定められたプログラム(以下、連携プログラムと称する)によって起動される特定のアプリケーションによりアクセスされるブロックであることを示す。以下の説明では、ルール種別がファイル指定である階層配置ルールを、ファイル指定配置ルールと称し、ルール種別がアプリケーション連携である階層配置ルールを、アプリケーション連携配置ルールと称する。
 ルール内容は、ルール種別に依存する。ルール種別がファイル指定の場合、ルール内容(第1のルール内容)として、ファイルパスが記述される。ファイルパスには、例えば*のような特別の記号を用いた、正規表現またはワイルドカードの指定も可能である。つまり、ファイル指定配置ルールは、ルール内容で指定されたファイルを構成するブロック(ブロックの集合)を含むエクステントを、指定階層に移動(配置)するルールを指す。一方、ルール種別がアプリケーション連携の場合、ルール内容(第2のルール内容)として、連携プログラムを指定するプログラム情報が記述される。つまり、アプリケーション連携配置ルールは、ルール内容で指定された連携プログラムによって起動された特定のアプリケーション(本実施形態では、アプリケーション29)がアクセスしたブロックを含むエクステントを、指定階層に移動するルールを指す。第2のルール内容として、バッチファイル(バッチプログラム)或いはスクリプトのようなプログラムを指定する情報が記述されても良い。
 開始時刻情報は、対応する階層配置ルールが適用される階層配置処理が開始される時刻を示す。打切時刻情報は、対応する階層配置処理が打ち切られる時刻を示す。なお、開始時刻情報が、対応する階層配置処理が開始される日時を示し、打切時刻情報が、対応する階層配置処理が打ち切られる日時を示しても良い。
 図6は、ファイルパスリスト28のデータ構造の例を示す。ファイルパスリスト28は、ファイル抽出部23によって抽出されたファイルパスを保持するのに用いられる。ファイルパスリスト28の各要素は、ファイルパスID、及びファイルパス(ファイルパス情報)を含む。ファイルパスIDは、対応するファイルパスのIDを示す。
 次に、本実施形態における、(1)階層配置ルールの登録、及び(2)階層配置処理について順に説明する。 
 (1)階層配置ルールの登録
 まず、階層配置ルールの登録について説明する。今、ホスト機器20の外部から当該ホスト機器20に対して、階層配置ルールの登録が要求されたものとする。ここでは、階層配置ルールの登録が、ユーザの操作に従って要求されたものとする。この場合、ホスト機器20のルール入力部21は、ユーザの操作によって指定された階層配置ルールを当該ホスト機器20の外部から入力し、当該入力された階層配置ルールを階層配置ルールリスト27に追加する。なお、ユーザの操作は、例えば、ホスト機器20に接続されたキーボード、或いは当該ホスト機器20にネットワークを介して接続された端末のような外部機器を用いて行われる。
 (2)階層配置処理
 次に、階層配置処理について、図7乃至図9を参照して説明する。図7は、ホスト機器20側で実行される階層配置処理(以下、第1の階層配置処理と称する)の典型的な手順を説明するためのフローチャート、図8は図7に示される第1の階層配置処理に含まれているブロックアクセス処理の典型的な手順を説明するためのフローチャートである。図9は、図7に示される第1の階層配置処理で発行されるモード切替命令に応じて階層化ストレージシステム10側で実行される階層配置処理(以下、第2の階層配置処理と称する)の典型的な手順を説明するためのフローチャートである。
 まず階層配置指示部22は、階層配置ルールリスト27に保持されている全ての階層配置ルールの開始時刻を監視して、開始時刻が到来したかを判定する(ステップS1)。ここでは、ルールIDが1の階層配置ルールの開始時刻(0:00)が到来したものとする(ステップS1のYes)。この場合、階層配置指示部22は、開始時刻が到来した階層配置ルールの適用を開始するために、ステップS2に進む。
 ステップS2において階層配置指示部22は、階層化ストレージシステム10を通常モードから領域配置モードに切り替えることを指示するモード切替命令を、当該階層化ストレージシステム10のストレージコントローラ12に発行する。このモード切替命令は、領域配置モードにおいて、オン状態に設定された階層移動フラグに対応する全てのエクステントが配置されるべき階層をも指定する。
 階層配置指示部22によって発行されたモード切替命令は、ストレージコントローラ12のモード切替部125によって受信される。するとストレージコントローラ12では、図9のフローチャートで示される第2の階層配置処理が次のように開始される。まずモード切替部125は、階層化ストレージシステム10を通常モードから領域配置モードに切り替える(ステップS31)。そしてモード切替部125は、モード切替に成功したかを判定する(ステップS32)。もし、モード切替に成功したならば(ステップS32のYes)、モード切替部125は、モード切替命令に対する応答として、モード切替成功をホスト機器20に通知する(ステップS33)。これに対し、モード切替に失敗したならば(ステップS32のNo)、モード切替部125は、モード切替失敗をホスト機器20に通知する(ステップS34)。この場合、第2の階層配置処理は終了する。
 モード切替部125からホスト機器20に返された通知は階層配置指示部22によって受信される。すると階層配置指示部22は、モード切替成功通知であるかを判定する(ステップS3)。もし、モード切替失敗通知であるならば(ステップS3のNo)、第1の階層配置処理は終了する。これに対してモード切替成功通知であるならば(ステップS3のYes)、ブロックアクセス処理(ステップS4)が、図8に示されるフローチャートに従って次のように実行される。
 まず階層配置指示部22は、開始時刻が到来した階層配置ルールのルール種別が、ファイル指定またはアプリケーション連携のいずれであるかを判定する(ステップS11)。以下、2a)ファイル指定の場合のブロックアクセス処理、及び2b)アプリケーション連携の場合のブロックアクセス処理について順に説明する。
 2a)ファイル指定の場合のブロックアクセス処理
 ステップS11においてルール種別がファイル指定であると判定された場合、階層配置指示部22は、ファイル抽出部23にファイル抽出命令を発行する。このファイル抽出命令は、開始時刻が到来した階層配置ルールのルール内容、つまりファイルパス情報を含む。ファイル抽出部23は、階層配置指示部22によって発行されたファイル抽出命令を受信する。するとファイル抽出部23は、受信されたファイル抽出命令に含まれているファイルパス情報の示すファイルパス(つまり、階層配置ルールによって示されるファイルパス)を、ファイル-論理アドレス管理テーブル252から全て抽出する(ステップS12)。この階層配置ルールのルールIDが1である場合、ルール内容は、ファイルパス/var/log/*.logを含む。ここでは、例えば、ファイルパス/var/log/message.logを含むファイルパスの集合が抽出されたものとする。抽出されたファイルパスの集合はファイルパスリスト28に保持される。
 このように、階層配置ルールによって示される全てのファイルパスがファイル抽出部23によって抽出されて、当該抽出されたファイルパスがファイルパスリスト28に保持されたものとする(ステップS12)。この場合、階層配置指示部22は、抽出されたファイルパスで示されるそれぞれのファイルの集合へのアクセスを指示するアクセス命令を、ファイル指定部24に発行する。
 するとファイル指定部24は、ファイルパスリスト28から1つの未選択のファイルパスを選択する(ステップS13)。そしてファイル指定部24は、選択されたファイルパスに対応付けられているLBA(論理ブロックアドレス)範囲を、ファイルアクセス制御部251に問い合わせる。
 この問い合わせに応じて、ファイルアクセス制御部251はファイル-論理アドレス管理テーブル252を参照して、選択されたファイルパスに対応付けられているLBA範囲を全て特定する(ステップS14)。ファイルアクセス制御部251は、特定されたLBA範囲を全てファイル指定部24に通知する。
 するとファイル指定部24は、通知されたLBA範囲から1つのLBA範囲を選択する(ステップS15)。そしてファイル指定部24は、選択されたLBA範囲内のブロック(ブロックの列)へのアクセスをファイルアクセス制御部251に要求する。
 この要求に応じてファイルアクセス制御部251は、階層化ブロックストレージ装置11内の論理ディスク110に存在し、且つ選択されたLBA範囲内のブロック(より詳細には、LBAが連続するブロックの列、つまりセグメント)に、ストレージコントローラ12のデータ入出力制御部126を介してアクセスする(ステップS16)。本実施形態では、このアクセスはリードアクセスであり、選択されたLBA範囲内のブロックのデータが読み出される。
 選択されたLBA範囲内のブロックへのアクセス(ステップS16)が完了すると、ファイル指定部24は、特定されたLBA範囲の中に未選択のLBA範囲があるかを判定する(ステップS17)。もし、未選択のLBA範囲があるならば(ステップS17のYes)、ファイル指定部24はステップS15に戻って、未選択の1つのLBA範囲を選択する。ファイルアクセス制御部251は、ファイル指定部24によって選択されたLBA範囲内のブロックにデータ入出力制御部126を介してアクセスする(ステップS16)。
 このとき、階層化ストレージシステム10は、モード切替部125によって領域配置モードに設定されている(ステップS31乃至S33)。データ入出力制御部126は、モード切替部125によってモード切替成功がホスト機器20に通知された場合(ステップS33)、ホスト機器20のファイルアクセス制御部251からのアクセス(つまりブロックアクセス)を、例えば第1の時間を上限に監視する(ステップS35)。領域配置モードにおいて、この第1の時間が経過する前に、ファイルアクセス制御部251によってブロックアクセスが行われた場合(ステップS35のYes)、データ入出力制御部126は、アクセスされたLBA範囲内のブロックを含むエクステントに対応する階層移動フラグをオンするように、データ配置制御部127に要求する。
 この要求に応じて、データ配置制御部127は第1の動作を実行する。即ちデータ配置制御部127は、エクステント管理テーブル128を参照して、アクセスされたLBA範囲内のブロックを含むエクステントを特定し、当該特定されたエクステントに対応付けられた階層移動フラグをオンする(ステップS36)。そしてデータ配置制御部127はモード切替部125に制御を渡す。するとモード切替部125は、領域配置モード終了命令を受信しているかを判定する(ステップS37)。もし、モード切替部125が領域配置モード終了命令を受信していないならば(ステップS37のNo)、当該モード切替部125はデータ入出力制御部126に制御を渡す。
 するとデータ入出力制御部126は、第1の時間を上限に次のブロックアクセスを待つ(ステップS35)。もし、第1の時間が経過する前に、ファイルアクセス制御部251によって次のブロックアクセスが行われたならば(ステップS35のYes)、データ入出力制御部126は、上述したように階層移動フラグをオンするように、データ配置制御部127に要求する。
 ここで、ファイルアクセス制御部251が、特定された全てのLBA範囲内のブロックにアクセスしたものとする。この場合、未選択のLBA範囲がないことから(ステップS17のNo)、ファイル指定部24は、選択されたファイルパスで指定されるファイルへのアクセスが完了したと判定する。そしてファイル指定部24は、ファイルパスリスト28内に未選択のファイルパスがあるかを判定する(ステップS18)。
 もし、未選択のファイルパスがあるならば(ステップS18のYes)、ファイル指定部24はステップS13に戻り、未選択の1つのファイルパスを選択する。そしてファイル指定部24は、前述したように、選択されたファイルパスに対応付けられているLBA範囲を、ファイルアクセス制御部251に問い合わせる。するとファイルアクセス制御部251は、選択されたファイルパスに対応付けられているLBA範囲を全て特定する(ステップS14)。そして、特定された全てのLBA範囲について、ステップS15乃至S17が実行される。即ち選択されたファイルパスで示されるファイルがアクセスされる。
 このようにして、ファイルパスリスト28内の全てのファイルパスで示されるファイルへのアクセスが完了し、これによりファイルパスリスト28内に未選択のファイルパスがなくなったものとする(ステップS18のNo)。この場合、ブロックアクセス処理(ステップS4)は終了する。
 すると階層配置指示部22は、領域配置モードの終了を指示する領域配置モード終了命令をストレージコントローラ12に発行する(ステップS5)。これにより、ホスト機器20における第1の階層配置処理は終了する。階層配置指示部22によって発行された領域配置モード終了命令は、ストレージコントローラ12のモード切替部125によって受信される。
 さてストレージコントローラ12では、上述の第1の時間が経過しても次のブロックアクセスが行われなかった場合(ステップS35のNo)、モード切替部125に制御が渡される。また、階層移動フラグがオンされた場合にも(ステップS36)、前述のようにモード切替部125に制御が渡される。このような場合、モード切替部125は、領域配置モード終了命令を受信しているかを判定する(ステップS37)。
 もし、モード切替部125が領域配置モード終了命令を受信していたならば(ステップS37のYes)、当該モード切替部125はデータ配置制御部127に制御を渡す。するとデータ配置制御部127は、第2の動作を実行する。即ちデータ配置制御部127は、エクステント管理テーブル128を参照して、現在オン状態にある階層移動フラグに対応する全てのエクステントを特定し、当該特定された全てのエクステント(より詳細には、特定された全てのエクステント内のデータ)を指定の階層の物理ストレージの記憶領域に配置(移動)する(ステップS38)。
 ステップS38においてデータ配置制御部127は、例えば、指定階層の物理ストレージにエクステントが配置される都度、エクステント管理テーブル128の対応するエントリの物理ストレージIDフィールド及び物理ストレージアドレスフィールドの内容を更新する。ここで、指定階層の物理ストレージが高速ストレージ装置111であり当該高速ストレージ装置111の第1の物理ストレージアドレス範囲に第1のエクステントが配置されたものとする。この場合、データ配置制御部127は、第1のエクステントに対応するエクステント管理テーブル128のエントリの物理ストレージIDフィールド及び物理ストレージアドレスフィールドの内容を、高速ストレージ装置111のID及び第1の物理ストレージアドレス範囲に更新する。またデータ配置制御部127は、上述の対応エントリ内の階層移動フラグをオフする。
 ところでデータ配置制御部127は、第1のエクステントの配置先を、高速ストレージ装置111(指定階層の物理ストレージ)内の空きエクステントの集合から選択する。もし、第1のエクステントの配置に用いることが可能な空きエクステントが高速ストレージ装置111内に存在しないならば、データ配置制御部127は第1のエクステントを配置する前に、高速ストレージ装置111から低速ストレージ装置112にデータが移動される(追い出される)べき第2のエクステントを選択する。そしてデータ配置制御部127は、第2のエクステントのデータを低速ストレージ装置112に移動することにより、第1のエクステントの配置に用いることが可能な空きエクステントを確保する。第2のエクステントは、例えば、高速ストレージ装置111に配置されている全てのエクステントのうち、アクセス頻度が最も低いエクステントである。
 一方、未選択のLBA範囲がないならば(ステップS17のNo)、ファイル指定部24はステップS18に進む。ステップS13で選択されたファイルパスが、例えば/var/log/message.logである場合、図4に示されるファイル-論理アドレス管理テーブル252から明らかなように、1つのLBA範囲000-015のみが特定される。この場合、LBA範囲000-015内のブロックがアクセスされると(ステップS16)、未選択のLBA範囲がないことから(ステップS17のNo)、ファイル指定部24はステップS18に進む。
 特定された全てのエクステントが指定階層の物理ストレージに配置されたならば(ステップS38)、その旨をモード切替部125に通知する。するとモード切替部125は、領域配置モードを終了させて、階層化ストレージシステム10の動作モードを通常モードに戻す(ステップS39)。これにより、階層化ストレージシステム10(ストレージコントローラ12)における第2の階層配置処理は終了する。
 2b)アプリケーション連携の場合のブロックアクセス処理
 次に、開始時刻が到来した階層配置ルールのルール種別がアプリケーション連携であるとステップS11で判定された場合のブロックアクセス処理について説明する。この場合、階層配置指示部22は、開始時刻が到来した階層配置ルールのルール内容の示す連携プログラムを起動する(ステップS19)。即ち階層配置指示部22は、連携プログラムを実行する。すると連携プログラムは、当該連携プログラムと連携するように予め定められた特定のアプリケーション、例えばアプリケーション29を起動する(ステップS20)。
 階層配置指示部22は、連携プログラムによってアプリケーション29が起動されると(ステップS20)、当該連携プログラムの終了を待つ(ステップS21)。一方、アプリケーション29は、当該アプリケーション29の動作状態において、適宜階層化ストレージシステム10(より詳細には、階層化ストレージシステム10内の論理ディスク110)へのブロックアクセス(リードアクセスまたはライトアクセス)を要求する。ファイルアクセス制御部251は、アプリケーション29からブロックアクセスが要求される都度(ステップS22のYes)、要求されたLBA範囲内のブロック(ブロックの列)に、ストレージコントローラ12のデータ入出力制御部126を介してアクセスする(ステップS23)。
 このとき、階層化ストレージシステム10は、領域配置モードに設定されている(ステップS31乃至S33)。領域配置モードにおいてファイルアクセス制御部251によってブロックアクセスが行われた場合(ステップS35のYes)、前述したようにデータ配置制御部127は、アクセスされたLBA範囲内のブロックを含むエクステントを特定し、当該特定されたエクステントに対応付けられた階層移動フラグをオンする(ステップS36)。
 やがて、連携プログラムによってアプリケーション29が終了させられ、しかる後に当該連携プログラムの実行が終了したものとする(ステップS21のYes)。この場合、ブロックアクセス処理(ステップS4)は終了する。以降の動作は、ルール種別がファイル指定の場合と同様である。即ち、階層配置指示部22は、領域配置モード終了命令をストレージコントローラ12に発行する(ステップS5)。この場合(ステップS37のYes)、ストレージコントローラ12のデータ配置制御部127は、現在オン状態にある階層移動フラグに対応する全てのエクステントを特定し、当該特定された全てのエクステントを指定の階層の物理ストレージの記憶領域に配置する(ステップS38)。
 なお、現在適用されている階層配置ルールの終了時刻が、ブロックアクセス処理(ステップS4)の途中で到来した場合、階層配置指示部22は当該ブロックアクセス処理(ステップS4)を終了する。より詳細には、現在実行中のブロックアクセスの終了を待って、階層配置指示部22はブロックアクセス処理(ステップS4)を終了する。そして、階層配置指示部22は領域配置モード終了命令をストレージコントローラ12に発行する(ステップS5)。
 上述のように本実施形態においてホスト機器20は、指定のファイルを、階層化ストレージシステム10内の指定の階層の記憶領域に配置するために、モード切替部125によって階層化ストレージシステム10を領域配置モードに設定させる(ステップS2)。この状態においてホスト機器20は、通常のファイルアクセスの場合と同様に、ファイルシステム25に基づいて指定のファイルを構成するブロックを特定する(ステップS13及びS14)。そしてホスト機器20は、指定のファイルの配置に必要な、階層化ストレージシステム10内の当該特定されたブロックとエクステントとの対応関係を認識することなく、当該特定されたブロックにアクセスする(ステップS15及びS16)。
 一方、階層化ストレージシステム10のストレージコントローラ12は、ブロックとエクステントとの対応関係をエクステント管理テーブル128を用いて管理する。そしてストレージコントローラ12は、領域配置モードにおけるホスト機器20からのブロックアクセスに応じて、アクセスされたブロックを含むエクステントを特定し、特定されたエクステントに対応付けられた階層移動フラグをオン状態(つまり、階層移動指示状態)に設定する(ステップS35及びS36)。
 上述の指定ファイル(より詳細には、ファイルパス)は、階層配置ルールに記述されている。ホスト機器20は、開始時刻が到来した階層配置ルールに基づいて指定ファイルを特定し、当該指定ファイルを構成するブロックにアクセスする。ここで、階層配置ルールに記述されるファイルが、当該階層配置ルールの示す開始時刻が到来した場合にホスト機器20によって利用されることが予定されているファイルであっても良い。この場合、階層配置ルールに記述されたファイルをホスト機器20が利用すると同時に、階層化ブロックストレージ装置11における指定階層の記憶領域に配置することができる。なお、階層配置ルールに基づくブロックアクセスが、一種のダミーアクセスであっても良い(階層配置ルールの種別がファイル指定の場合)。より詳細には、階層配置ルールに基づくブロックアクセスが、アクセスされるブロックを含むエクステント(つまり、指定階層に配置されるべきエクステント)を指定して、当該エクステントに対応付けられた階層移動フラグをオン状態に設定するためのトリガとして用いられても良い。この場合、アクセスされたブロックのデータがホスト機器20で利用されずに捨てられても構わない。
 ホスト機器20は、全ての指定ファイルをそれぞれ構成するブロックにアクセスすると、領域配置モード終了命令をストレージコントローラ12に発行する。するとストレージコントローラ12は、オン状態にある階層移動フラグに対応付けられたエクステントを全て階層化ブロックストレージ装置11内の指定階層の記憶領域に配置する(ステップS37及びS38)。このように本実施形態によれば、ストレージコントローラ12は、指定の階層に配置されるべきファイル(指定ファイル)を、特別なファイルシステムを必要とすることなく、当該指定の階層の記憶領域に配置することができる。ここで、ホスト機器20は、ブロックとエクステントとの対応関係を扱う必要がなく、ストレージコントローラ12はホスト機器20内のファイルシステム25にアクセスする必要がない。
 また本実施形態によれば、階層配置ルールのルール種別がアプリケーション連携の場合、連携プログラムによって起動されたアプリケーション29(つまり、特定のアプリケーション)から要求されたブロックへのアクセスに応じて、ストレージコントローラ12は当該アクセスされたブロックを含むエクステントに対応付けられた階層移動フラグをオン状態に設定する(ステップS35及びS36)。したがって本実施形態によれば、アプリケーション29からのブロックアクセス要求に応じて、要求されたブロックを含むエクステントを、指定階層の記憶領域に配置することができる。
 さて本実施形態において、階層化ストレージシステム10が領域配置モードに設定されている状態で、ホスト機器20上で動作する通常のアプリケーションからファイルアクセス制御部251に対してブロックアクセスが要求されたものとする。この要求に応じてファイルアクセス制御部251は、要求されたブロックにデータ入出力制御部126を介してアクセスする。この場合、アクセスされたブロックを含むエクステントに対応する階層移動フラグがオンされる。つまり通常のアプリケーションからアクセスされたブロックを含むエクステントも、現在の領域配置モードで適用されている階層配置ルールで指定される階層の記憶領域に配置される。そこで、領域配置モードの期間、通常のアプリケーションからのアクセス要求が待たされるようにしても構わない。
 <第1の変形例>
 次に、前記実施形態の第1の変形例について説明する。まず前記実施形態において、指定ファイルのサイズが小さく、当該指定ファイルを構成するブロックが、対応するエクステントのごく一部だけを占めているものとする。このような場合、指定階層の記憶領域に配置(つまり移動)されるエクステント内の殆どのブロックは、指定ファイルとは無関係である。つまり、前記実施形態では、指定ファイルとは無関係のブロックのデータも指定階層の記憶領域に移動される。したがって、指定階層が上位階層である場合、当該上位階層(高速ストレージ装置111)の記憶領域の利用効率が低下する。
 そこで、第1の変形例は、上位階層の記憶領域の利用効率の低下を防止するために、指定ファイルを構成するブロック(ブロックの集合)を、同一エクステントに予め配置するための処理(以下、ファイル配置処理と称する)を適用する。図10は、このファイル配置処理の概要を説明するための図である。図10において、ブロックBa,Bb,Bc,Bd.Be,Bf,Bg及びBhは、指定ファイルを構成するものとする。図10の例では、ブロックBa及びBbはエクステントEXTa1に、ブロックBc及びBdはエクステントEXTa2に、それぞれ含まれている。またブロックBeはエクステントEXTa3に、ブロックBf及びBgはエクステントEXTa4に、それぞれ含まれている。そしてブロックBhはエクステントEXTa5に含まれている。なお図10では、作図の都合で、1エクステントが8個のブロックから構成される場合(つまり、N=8)を想定している。
 前記実施形態では、エクステントEXTa1乃至EXTa5が、指定階層の記憶領域に配置される。これに対して第1の変形例では、まずブロックBa,Bb,Bc,Bd.Be,Bf,Bg及びBhが、図10に示されるようにエクステントEXTbに配置される。そして、このエクステントEXTbが指定階層の記憶領域に配置される。したがって図10の例では、指定階層の記憶領域に配置されるエクステントの数が、前記実施形態と比較して、5から1に低減される。
 上述のファイル配置処理は、例えば図8に示されるフローチャートのステップS12及びS13の間で実行される。以下、このファイル配置処理の手順について、図11を参照して説明する。図11は、ホスト機器20側で実行されるファイル配置処理の典型的な手順を説明するためのフローチャートである。
 今、ファイル抽出部23が、階層配置ルールによって示されるファイルパスを、ファイル-論理アドレス管理テーブル252から全て抽出したものとする(ステップS12)。この場合、階層配置指示部22は、抽出されたファイルパスで示されるファイルの集合へのアクセスを指示するアクセス命令をファイル指定部24に発行する前に、ファイル配置命令をファイル配置部26に発行する。このファイル配置命令は、ファイルを構成するブロックを、できる限り同一エクステントに配置することを指示する。
 ファイル配置部26は、階層配置指示部22からのファイル配置命令に従い、ファイル配置処理を次のように実行する。まずファイル配置部26は、ファイルパスリスト28から1つの未選択のファイルパスを選択する(ステップS41)。そしてファイル配置部26は、選択されたファイルパスで示されるファイル(つまり、指定ファイル)を構成するブロック(ブロックの集合)を、ストレージコントローラ12のデータ入出力制御部126を介して、論理ディスク110内のLBAが連続する領域に複製する(ステップS42)。
 ステップS42について、詳細に説明する。まずファイル配置部26は、指定ファイルを構成するブロックを、論理ディスク110内のLBAが連続する領域に複製することを、ファイルシステム25のファイルアクセス制御部251を介してストレージコントローラ12のデータ入出力制御部126に要求する。するとデータ入出力制御部126は、要求されたブロックを、論理ディスク110内の空きエクステントに複製する。最初のステップS42において、この複製に用いられる領域は、空きエクステントの先頭から始まる領域である。この複製により、指定ファイルを構成するブロック(ブロックの集合)が同一エクステントに配置される可能性が高くなる。
 なお、エクステント管理テーブル128によって示されるエクステントのうちのいずれが空きエクステントであるかを管理する手法は従来からよく知られている。このような手法の1つに、空きエクステントのIDの集合が保持される空きエクステントリストを用いる手法がある。また、エクステント管理テーブル128の各エントリに、対応するエクステントが空きエクステントであるかを示すフラグフィールドを用意しても良い。
 データ入出力制御部126は要求されたブロックを、論理ディスク110内の空きエクステントに複製すると、当該ブロックが複製された領域のLBA範囲をファイル配置部26に通知する。するとファイル配置部26は、仮のファイルパスを複製先のファイルパスとして用い、当該複製先のファイルパスと通知されたLBA範囲との対を含むエントリを、ファイルアクセス制御部251を介して、ファイル-論理アドレス管理テーブル252に追加する。
 次にファイル配置部26は、複製先(仮)のファイルパスを、ファイルアクセス制御部251を介して、複製元と同じファイルパス名(ファイル名)にリネーム(上書き)する(ステップS43)。このリネームに際し、ファイル配置部26は、複製元のファイルパスを含むエントリを、ファイルアクセス制御部251を介して、ファイル-論理アドレス管理テーブル252から削除する。ファイル配置部26は、上述の動作(ステップS41乃至S43)を、ファイルパスリスト28内に未選択のファイルパスがなくなるまで繰り返す(ステップS44)。
 ここで、ファイルパスリスト28内のファイルパスで示されるファイルの集合が第1及び第2のファイルを含むものとする。また、第1のファイルを構成する第1のブロック(第1のブロックの集合)が、最初のステップS42において、第1のエクステントの先頭から始まる第1の領域に複製されたものとする。更に、この状態で、第1のエクステントに空きがあり、且つ第1のエクステントの残りの領域が、第2のファイルを構成する第2のブロック(第2のブロックの集合)のサイズよりも大きいものとする。このような場合、2回目のステップS42において、第2のブロックの集合が、第1のエクステントの第1の領域に後続する第2の領域に複製されると良い。一方、第1のエクステントの残りの領域が第2のブロックの集合のサイズよりも小さい場合、第2のブロックの集合の一部が、第1のエクステントの前記残りの領域に複製され、第2のブロックの集合の例えば残りが、第1のエクステントとは別の第2のエクステントの先頭から始まる領域に複製されると良い。
 ファイル配置部26は、ステップS41乃至S43を、ファイルパスリスト28内に未選択のファイルパスがなくなるまで繰り返すと(ステップS44のNo)、ファイル配置処理の完了を階層配置指示部22に通知する。すると階層配置指示部22は、前記実施形態において階層配置ルールによって示されるファイルパスが全て抽出された場合(ステップS12)と同様に、抽出されたファイルパスで示されるファイルの集合へのアクセスを指示するアクセス命令を、ファイル指定部24に発行する。これにより前記実施形態と同様に、ステップS13から始まる処理が実行される。
 第1の変形例によれば、指定階層の記憶領域に配置されるべきファイルに含まれるブロックの集合が、可能な限り同一のエクステントに配置される。これにより、指定階層が上位階層である場合に、上位階層(つまり高速ストレージ装置111)に配置されるエクステントに、指定ファイルに含まれないブロックが紛れ込む確率が少なくなる。よって第1の変形例によれば、高速ストレージ装置111の記憶領域の利用効率を高めることができる。
 <第2の変形例>
 次に、前記実施形態の第2の変形例について説明する。まず前記実施形態において、指定ファイルのサイズが大きいものとする。このような場合、指定ファイルを構成する全てのブロックのデータをリードするのに多大な時間を要し、階層化ストレージシステム10のスループットが低下する。一方、階層配置ルールに基づくブロックアクセスがダミーアクセスであるならば(階層配置ルールの種別がファイル指定の場合)、指定ファイルを構成するブロックを必ずしも全てリードする必要はない。
 そこで、第2の変形例は、指定ファイルを構成するブロック(ブロックの集合)のうちの一部のブロックのみをリードするための処理(以下、部分リード処理)を適用する。つまり第2の変形例では、階層配置ルールに基づくブロックアクセスに、部分リード処理が適用される。この部分リード処理はダミーアクセス処理であり、アクセスされたブロックを含むエクステントに対応付けられた階層移動フラグをオン状態に設定するためのトリガとして用いられる。
 ここで、指定ファイルが複数のセグメントから構成され、当該複数のセグメントがそれぞれ複数のエクステントにまたがっているものとする。この場合、部分リード処理では、セグメント毎に、対応するセグメントが存在する複数のエクステントからそれぞれ1つずつブロックが選択される。そして1つのブロックが選択される毎に、当該選択されたブロック(ブロックのデータ)がリードされる。第2の変形例では、この選択の効率化のために、セグメントは、当該セグメントの先頭からエクステントのサイズN(ここでは、エクステントを構成するブロックの数)で小セグメントに分割される。この場合、最終の小セグメントのサイズ(ブロックの数)は、N以下となる。そして小セグメント毎に、対応する小セグメント内の先頭ブロックが選択される。更に、セグメント内の最終ブロックを含む最終の小セグメントの場合、当該最終の小セグメント内の最終ブロックも選択される。なお、セグメントのサイズ(ブロックの数)がN以下である場合、当該セグメント内の先頭ブロック及び最終ブロックが選択されれば良い。
 図12は、第2の変形例における部分リード処理の概要を説明するための図である。図12において、エクステントEXTc1乃至EXTc8は、論理ディスク110において連続するものとする。また、セグメントSEGa及びSEGbは、指定ファイルを構成するものとする。セグメントSEGaは、ブロックBa1乃至Ba23から構成され、エクステントEXTc1乃至EXTc4にまたがって存在する。セグメントSEGbは、ブロックBb1乃至Bb13から構成され、エクステントEXTc5及びEXTc6にまたがって存在する。なお図12では、作図の都合で、1エクステントが8個のブロックから構成される場合(つまり、N=8)を想定している。
 図12の例では、セグメントSEGa内の先頭(1番目)のブロックBa1、9番目のブロックBa9、17番目のブロックBa17、及び最終(23番目)のブロックBa23が、リードされるべきブロックとして選択される。同様に、セグメントSEGb内の先頭(1番目)のブロックBb1、9番目のブロックBb9、及び最終(13番目)のブロックBa13が、リードされるべきブロックとして選択される。これらのセグメントSEGa及びSEGbから選択されるブロックは、図12において黒四角で示されており、セグメントSEGa及びSEGbから選択されないブロックは、図12において白四角で示されている。
 前記実施形態では、セグメントSEGa及びSEGbを構成する合計36個のブロック(即ち、ブロックBa1乃至Ba23及びBb1乃至Bb13)がリードされる。これに対して、第2の変形例では、セグメントSEGa及びSEGbから選択された7個のブロック(即ち、ブロックBa1,Ba9,Ba17,Ba23,Bb1,Bb9及びBb13)のみがリードされる。
 そして、ブロックBa1,Ba9,Ba17,Ba23及びBb1のリードに応じて、エクステントEXTc1,EXTc2,EXTc3,EXTc4及びEXTc5にそれぞれ対応付けられた階層移動フラグがオンされる。また、ブロックBb9及びBb13のリードに応じて、エクステントEXTc6に対応付けられた階層移動フラグがオンされる。その後、エクステントEXTc1乃至EXTc6は、指定階層に配置される。
 このように、第2の変形例は、ファイル内の一部のブロックをリードするだけで、ファイルが存在する全てのエクステントにそれぞれ対応付けられた階層移動フラグをオンして、当該全てのエクステントを指定階層に配置することができる。つまり第2の変形例によれば、最小限のブロックリードで、ファイルが存在する全てのエクステントにアクセスすることができる。
 上述の部分リード処理は、例えば図8に示されるフローチャートのステップS13乃至S18に代えて実行される。以下、この部分リード処理の手順について、図13を参照して説明する。図13は、ホスト機器20側で実行される部分リード処理の典型的な手順を説明するためのフローチャートである。
 今、ファイル抽出部23が、階層配置ルールによって示されるファイルパスを、ファイル-論理アドレス管理テーブル252から全て抽出したものとする(ステップS12)。この場合、階層配置指示部22は、抽出されたファイルパスで示されるファイルの集合へのアクセスを指示するアクセス命令を、ファイル指定部24に発行する
 するとファイル指定部24は、ファイルパスリスト28から1つの未選択のファイルパスを選択する(ステップS51)。そしてファイル指定部24は、選択されたファイルパスに対応付けられているLBA(論理ブロックアドレス)範囲を、ファイルアクセス制御部251に問い合わせる。
 この問い合わせに応じて、ファイルアクセス制御部251は、選択されたファイルパスに対応付けられているLBA範囲を全て特定する(ステップS52)。ファイルアクセス制御部251は、特定されたLBA範囲を全てファイル指定部24に通知する。ファイル指定部24は、通知されたLBA範囲から1つのLBA範囲を選択する(ステップS53)。上述のステップS51乃至S53は、図8に示されるステップ13乃至S15と同様である。
 次にファイル指定部24は、ポインタPを初期値1に設定する(ステップS54)。ポインタPは、選択されたLBA範囲(つまりセグメント)におけるアクセスされるべきブロックの相対位置を指す。ポインタPが1の場合、当該ポインタは、選択されたLBA範囲内の先頭(1番目)のブロックを指す。また、ステップS54においてファイル指定部24は、パラメータN及びMとして、それぞれエクステントのサイズ(より詳細には、エクステントを構成するブロックの数)及び選択されたLBA範囲のサイズ(より詳細には、選択されたLBA範囲内のブロックの数)を設定する。図12のセグメントSEGaの例では、N=8、M=23である。
 次にファイル指定部24は、選択されたLBA範囲の先頭ブロックのLBA(以下、LBA_1と称する)とポインタPとに基づいて、選択されたLBA範囲のP番目のブロックのLBA(以下、LBA_Pと称する)を、次式に従って算出する。 
  LBA_P=LBA_1+(P-1)
 次にファイル指定部24は、選択されたLBA範囲内のP番目のブロックへのアクセスをファイルアクセス制御部251に要求する。即ちファイル指定部24は、LBAがLBA_Pであるブロックへのアクセスをファイルアクセス制御部251に要求する。するとファイルアクセス制御部251は、論理ディスク110に存在し、且つ選択されたLBA範囲内のP番目のブロックに、データ入出力制御部126を介してアクセスする(ステップS55)。即ちファイルアクセス制御部251は、論理ディスク110内のLBA_Pに位置するブロックに、ストレージコントローラ12のデータ入出力制御部126を介してアクセスする。ストレージコントローラ12のデータ配置制御部127は、このブロックアクセスに応じて(ステップS35のYes)、アクセスされたブロックを含むエクステントに対応する階層移動フラグをオンする(ステップS36)。
 一方、ファイル指定部24は、選択されたLBA範囲内のP番目のブロックへのアクセス(ステップS55)が完了すると、ポインタPをNだけインクリメントする(ステップS56)。インクリメントされたポインタPは、インクリメントされる前のポインタPの指すブロックよりもLBAが増加する方向に、Nブロックだけ先のブロックを指す。例えば、インクリメントされる前のポインタPが、図12に示されるブロックBa1を指している場合、インクリメントされたポインタPはブロックBa9を指す。次にファイル指定部24は、インクリメントされたポインタPの値がM以上であるかを判定する(ステップS57)。
 もし、インクリメントされたポインタPの値がM未満であるならば(ステップS57のNo)、ファイル指定部24は、選択されたLBA範囲の最終ブロックにポインタPが到達していないと判定する。この場合、ファイル指定部24は、インクリメントされたポインタPの指すブロックへのアクセスをファイルアクセス制御部251に要求する。するとファイルアクセス制御部251は、論理ディスク110に存在し、且つ選択されたLBA範囲内のP番目のブロックに、データ入出力制御部126を介してアクセスする(ステップS55)。
 これに対し、インクリメントされたポインタPの値がM以上であるならば(ステップS57のYes)、ファイル指定部24は、ポインタPが、選択されたLBA範囲の最終ブロックに到達したか、或いは当該最終ブロックを通過したものと判定する。この場合、ファイル指定部24は、選択されたLBA範囲の最終ブロックへのアクセスをファイルアクセス制御部251に要求する。するとファイルアクセス制御部251は、論理ディスク110に存在し、且つ選択されたLBA範囲内の最終ブロックに、データ入出力制御部126を介してアクセスする(ステップS58)。
 例えば、インクリメントされる前のポインタPが、図12に示されるブロックBa17を指している場合(P=17)、インクリメントされたポインタPの値(P=25)は、M=23を超える(ステップS57のYes)。この場合、セグメントSEGa内の最終ブロックBa23がアクセスされる(ステップS58)。そして、ブロックBa23を含むエクステントEXTc4に対応する階層移動フラグがオンされる(ステップS36)
 選択されたLBA範囲内の最終ブロックへのアクセス(ステップS58)が完了すると、ファイル指定部24は、特定されたLBA範囲の中に未選択のLBA範囲があるかを判定する(ステップS59)。もし、未選択のLBA範囲があるならば(ステップS59のYes)、ファイル指定部24はステップS53に戻って、未選択の1つのLBA範囲を選択する。これに対し、未選択のLBA範囲がないならば(ステップS59のNo)、ファイル指定部24は、ファイルパスリスト28内に未選択のファイルパスがあるかを判定する(ステップS60)。
 もし、未選択のファイルパスがあるならば(ステップS60のYes)、ファイル指定部24はステップS51に戻る。これに対し、未選択のファイルパスがないならば(ステップS60のNo)、ブロックアクセス処理(ステップS4)は終了する。
 このように第2の変形例では、指定ファイルを構成するブロックのうちの一部のブロックのみがリードされ、リードされたブロックを含むエクステントに対応するそれぞれの階層移動フラグがオンされる。つまり第2の変形例では、指定階層に配置されるべきエクステントを指定するためのブロックアクセスに部分リード処理が適用される。したがって第2の変形例によれば、指定階層に配置されるべきエクステントを指定するためのブロックアクセスに要する時間を短縮でき、且つ当該ブロックアクセスによって階層化ストレージシステム10のスループットが低下するのを防止できる。
 以上説明した少なくとも1つの実施形態によれば、階層化ブロックストレージ装置側にファイルシステムを必要とすることなく、指定のファイルを指定の階層に配置することができる。
 本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、請求の範囲に記載された発明とその均等の範囲に含まれる。

Claims (11)

  1.  階層化ブロックストレージシステムと、前記階層化ブロックストレージシステムにアクセスするホスト機器とを備えるコンピュータシステムにおいて、
     前記階層化ブロックストレージシステムは、階層化ブロックストレージ装置と、ストレージコントローラとを備え、
     前記階層化ブロックストレージ装置は、アクセス応答性能の異なる複数種類のストレージ装置であって、前記アクセス応答性能にそれぞれ対応した階層に割り当てられた複数種類のストレージ装置を備え、
     前記複数種類のストレージ装置の少なくとも2種類のストレージ装置のそれぞれ少なくとも一部の記憶領域は、第1のサイズの複数のブロックを備えた論理ディスクであって、前記ホスト機器によって利用されるファイルを格納するのに用いられる論理ディスクに割り当てられ、
     前記ストレージコントローラは、モード切替部と、データ入出力制御部と、データ配置制御部とを備え、
     前記ホスト機器は、ファイルシステムと、ルール入力部と、階層配置指示部と、ファイル指定部とを備え、
     前記モード切替部は、前記ホスト機器からの要求に応じて、前記階層化ブロックストレージシステムの動作モードを第1のモードから第2のモードに切り替え、
     前記データ入出力制御部は、前記ホスト機器からのアクセス要求に応じて前記論理ディスクにアクセスし、
     前記ファイルシステムは、前記論理ディスクに格納されるファイル毎に、対応するファイルを示すファイルパスと当該対応するファイルが格納されている論理アドレス範囲との対応を管理し、前記ファイル指定部から、ファイルを構成するブロック列が格納された論理アドレス範囲へのアクセスが要求された場合、前記要求された論理アドレス範囲内のブロック列に前記データ入出力制御部を介してアクセスし、
     前記ルール入力部は、外部からの要求に基づいて、ファイルを指定するためのファイルパス情報と、当該ファイルが配置されるべき階層を指定するため階層情報とを含む階層配置ルールを入力し、
     前記階層配置指示部は、前記階層配置ルールに基づいて、前記第2のモードへの切り替えを前記ストレージコントローラに要求し、
     前記ファイル指定部は、前記階層配置ルール内の前記ファイルパス情報によって示されるファイルパスの示す第1のファイルを構成する第1のブロック列が格納された論理アドレス範囲へのアクセスを前記ファイルシステムに要求し、
     前記データ配置制御部は、前記第2のモードにおいてアクセスされた論理アドレス範囲内のブロック列を含むエクステントであって、論理アドレスが連続する第2の数のブロックから構成されるエクステント内のデータを、前記階層配置ルールによって指定される階層の記憶領域に移動する
     コンピュータシステム。
  2.  前記第1のファイルへのアクセスがリードアクセスである請求項1記載のコンピュータシステム。
  3.  前記ファイル指定部は、前記第1のファイルを構成する第1のブロック列から一部のブロックを選択し、当該選択されたブロックが格納された論理アドレス範囲へのリードアクセスを、前記ファイルシステムを介して前記データ入出力制御部に要求する請求項2記載のコンピュータシステム。
  4.  前記ファイル指定部は、前記第1のファイルを構成する前記第1のブロック列から、前記第2の数のブロック毎に先頭のブロックを選択し、且つ前記第1のブロック列の最終のブロックを選択する請求項3記載のコンピュータシステム。
  5.  前記第1のファイルが断片化を起こしているために、当該第1のファイルが複数のセグメントから構成され、且つ前記複数のセグメントの各々が、論理アドレスが連続するブロック列から構成されている場合、前記ファイル指定部は、前記複数のセグメントのそれぞれから、前記第2の数のブロック毎に先頭のブロックを選択し、且つ対応するセグメントの最終のブロックを選択する請求項4記載のコンピュータシステム。
  6.  前記ホスト機器は、前記第1のファイルを構成する前記第1のブロック列を、前記論理ディスク内の論理アドレスが連続する記憶領域に前記ファイルシステムによって複製させるファイル配置部を更に具備し、
     前記ファイル指定部は、前記複製の後に、前記複製されたファイルを構成する前記第1のブロック列が格納された論理アドレス範囲へのリードアクセスを前記ファイルシステムを介して前記データ入出力制御部に要求する
     請求項2記載のコンピュータシステム。
  7.  前記階層配置ルールは、当該階層配置ルールの種別が第1の種別であるか、或いは第2の種別であるかを示すルール種別を含み、
     前記階層配置ルールの種別が前記第1の種別である場合、前記階層配置ルールは前記ファイルパス情報を含み、前記階層配置ルールの種別が前記第2の種別である場合、前記階層配置ルールは、特定のアプリケーションを起動する第1のプログラムを指定するプログラム指定情報を含み、
     前記階層配置指示部は、前記階層配置ルールの種別が前記第2の種別である場合、前記プログラム指定情報によって指定される第1のプログラムを起動し、
     前記ファイルシステムは、前記第1のプログラムによって前記特定のアプリケーションが起動されて、前記特定のアプリケーションから前記論理ディスクへのアクセスが要求された場合、要求された論理アドレス範囲内のブロック列に前記データ入出力制御部を介してアクセスする
     請求項1記載のコンピュータシステム。
  8.  前記ストレージコントローラは、前記第2の数のブロックから構成されるそれぞれのエクステントに対応付けられたエントリを含むエクステント管理テーブルを更に備え、
     前記エントリの各々にはエクステント情報が保持され、
     前記エクステント情報は、対応するエクステントの論理アドレス範囲及び物理アドレス範囲を示すアドレス情報と、当該対応するエクステントが移動されるべき階層を指定する階層情報と、当該対応するエクステントが指定の階層に移動されるべきかを示す階層移動フラグとを含み、
     前記データ配置制御部は、前記第2のモードにおいて、前記データ入出力制御部が前記ホスト機器からのアクセス要求に応じて前記論理ディスクにアクセスした場合、前記アクセスされた論理アドレス範囲内のブロック列を含むエクステントに対応付けられた、前記エクステント管理テーブルのエントリ内の前記階層移動フラグを、当該エクステントが指定の階層に移動されるべきであることを示す第1の状態に設定し、
     前記データ配置制御部は、前記階層配置指示部によって前記第2のモードから前記第1のモードへの切り替えが要求された場合、前記エクステント管理テーブルを参照し、前記第1の状態に設定されている階層移動フラグを含むエントリに対応するエクステントを、指定される階層に移動されるべきエクステントと特定する
     請求項1記載のコンピュータシステム
  9.  前記ホスト機器は、ファイル抽出部を更に備え、
     前記階層配置指示部は、前記階層配置ルールに基づいてファイルパスの抽出を前記ファイル抽出部に要求し、
     前記ファイル抽出部は、前記ファイルパス抽出要求に応じて、前記階層配置ルール内の前記ファイルパス情報の示すファイルパスを前記ファイルシステムから抽出し、
     前記第1のファイルは、前記抽出されたファイルパスによって示される
     請求項1記載のコンピュータシステム。
  10.  アクセス応答性能の異なる複数種類のストレージ装置であって、前記アクセス応答性能にそれぞれ対応した階層に割り当てられた複数種類のストレージ装置を備え、前記複数種類のストレージ装置の少なくとも2種類のストレージ装置のそれぞれ少なくとも一部の記憶領域が、第1のサイズの複数のブロックを備えた論理ディスクであって、ホスト機器によって利用されるファイルを格納するのに用いられる論理ディスクに割り当てられる階層化ブロックストレージ装置を具備する階層化ストレージシステムにおいて、前記ホスト機器からのアクセス要求を処理するストレージコントローラにおいて、
     前記ホスト機器への外部から要求に基づいて、前記ホスト機器に入力された階層配置ルールであって、ファイルを指定するためのファイルパス情報と、当該ファイルが配置されるべき階層を指定するため階層情報とを含む階層配置ルールに基づいて、前記ホスト機器から前記ストレージコントローラに第1のモードから第2のモードへの切り替えが要求された場合、前記階層化ブロックストレージシステムの動作モードを前記第1のモードから前記第2のモードに切り替えるモード切り替え部と、
     前記階層配置ルール内の前記ファイルパス情報によって示されるファイルパスの示す第1のファイルを構成する第1のブロック列が格納された論理アドレス範囲へのアクセスが、前記ホスト機器から前記ストレージコントローラに要求された場合、前記論理ディスクの前記要求された論理アドレス範囲内の前記第1のブロック列にアクセスするデータ入出力制御部と、
     前記第2のモードにおいてアクセスされた論理アドレス範囲内のブロック列を含むエクステントであって、論理アドレスが連続する第2の数のブロックから構成されるエクステント内のデータを、前記階層配置ルールによって指定される階層の記憶領域に移動するデータ配置制御部と
     を具備するストレージコントローラ。
  11.  アクセス応答性能の異なる複数種類のストレージ装置であって、前記アクセス応答性能にそれぞれ対応した階層に割り当てられた複数種類のストレージ装置を備え、前記複数種類のストレージ装置の少なくとも2種類のストレージ装置のそれぞれ少なくとも一部の記憶領域が、第1のサイズの複数のブロックを備えた論理ディスクであって、ホスト機器によって利用されるファイルを格納するのに用いられる論理ディスクに割り当てられる階層化ブロックストレージ装置を具備する階層化ストレージシステムにおいて、前記ホスト機器からのアクセス要求を処理するストレージコントローラに、
     前記ホスト機器への外部から要求に基づいて、前記ホスト機器に入力された階層配置ルールであって、ファイルを指定するためのファイルパス情報と、当該ファイルが配置されるべき階層を指定するため階層情報とを含む階層配置ルールに基づいて、前記ホスト機器から前記ストレージコントローラに第1のモードから第2のモードへの切り替えが要求された場合、前記階層化ブロックストレージシステムの動作モードを前記第1のモードから前記第2のモードに切り替えることと、
     前記階層配置ルール内の前記ファイルパス情報によって示されるファイルパスの示す第1のファイルを構成する第1のブロック列が格納された論理アドレス範囲へのアクセスが、前記ホスト機器から前記ストレージコントローラに要求された場合、前記論理ディスクの前記要求された論理アドレス範囲内の前記第1のブロック列にアクセスすることと、
     前記第2のモードにおいてアクセスされた論理アドレス範囲内のブロック列を含むエクステントであって、論理アドレスが連続する第2の数のブロックから構成されるエクステント内のデータを、前記階層配置ルールによって指定される階層の記憶領域に移動すること
     を実行させるためのプログラム。
PCT/JP2014/055424 2014-03-04 2014-03-04 階層化ブロックストレージ装置を有するコンピュータシステム、ストレージコントローラ、及びプログラム WO2015132873A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2014534841A JP5797848B1 (ja) 2014-03-04 2014-03-04 階層化ブロックストレージ装置を有するコンピュータシステム、ストレージコントローラ、及びプログラム
CN201480000789.9A CN105074675B (zh) 2014-03-04 2014-03-04 具有层级化块存储装置的计算机系统、存储控制器及介质
PCT/JP2014/055424 WO2015132873A1 (ja) 2014-03-04 2014-03-04 階層化ブロックストレージ装置を有するコンピュータシステム、ストレージコントローラ、及びプログラム
US14/482,311 US9594508B2 (en) 2014-03-04 2014-03-04 Computer system having tiered block storage device, storage controller, file arrangement method and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/055424 WO2015132873A1 (ja) 2014-03-04 2014-03-04 階層化ブロックストレージ装置を有するコンピュータシステム、ストレージコントローラ、及びプログラム

Publications (1)

Publication Number Publication Date
WO2015132873A1 true WO2015132873A1 (ja) 2015-09-11

Family

ID=54054713

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2014/055424 WO2015132873A1 (ja) 2014-03-04 2014-03-04 階層化ブロックストレージ装置を有するコンピュータシステム、ストレージコントローラ、及びプログラム

Country Status (4)

Country Link
US (1) US9594508B2 (ja)
JP (1) JP5797848B1 (ja)
CN (1) CN105074675B (ja)
WO (1) WO2015132873A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022548642A (ja) * 2019-09-17 2022-11-21 マイクロン テクノロジー,インク. タイプ付けされていないメモリアクセスのタイプ付けされているメモリアクセスに対するマッピング
JP2022548886A (ja) * 2019-09-17 2022-11-22 マイクロン テクノロジー,インク. メモリ名前空間へデータをバインドするためのメモリシステム

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11789631B2 (en) * 2010-11-29 2023-10-17 Pure Storage, Inc. Utilizing metadata storage trees in a vast storage network
JP6307962B2 (ja) * 2014-03-19 2018-04-11 日本電気株式会社 情報処理システム、情報処理方法、及び、情報処理プログラム
JP6067819B1 (ja) * 2015-10-21 2017-01-25 株式会社東芝 階層化ストレージシステム、ストレージコントローラ、並びに重複排除及びストレージ階層化のための方法
JP6165909B1 (ja) * 2016-03-16 2017-07-19 株式会社東芝 階層化ストレージシステム、ストレージコントローラ、及び階層化制御方法
JP6814020B2 (ja) * 2016-10-26 2021-01-13 キヤノン株式会社 情報処理装置とその制御方法、及びプログラム
JP6253752B1 (ja) 2016-11-29 2017-12-27 株式会社東芝 階層化ストレージシステム
JP7244551B2 (ja) 2018-06-27 2023-03-22 華為技術有限公司 ストレージシステム及びストレージシステムの稼働モードを切り替えるための方法
US11494311B2 (en) 2019-09-17 2022-11-08 Micron Technology, Inc. Page table hooks to memory types
US11650742B2 (en) 2019-09-17 2023-05-16 Micron Technology, Inc. Accessing stored metadata to identify memory devices in which data is stored

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007305012A (ja) * 2006-05-15 2007-11-22 Fujitsu Ltd Hsm制御プログラム、hsm制御装置、hsm制御方法
JP2009251751A (ja) * 2008-04-02 2009-10-29 Fujitsu Ltd データ管理方法及びスイッチ装置
JP2014500542A (ja) * 2010-10-27 2014-01-09 エンモータス・インコーポレイテッド データ管理を有する階層データ記憶システムおよびその操作方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4322031B2 (ja) 2003-03-27 2009-08-26 株式会社日立製作所 記憶装置
JP2004310621A (ja) * 2003-04-10 2004-11-04 Hitachi Ltd 記憶装置システムにおけるファイルアクセス方法及びファイルアクセスのためのプログラム
US7185020B2 (en) * 2003-10-01 2007-02-27 Hewlett-Packard Development Company, L.P. Generating one or more block addresses based on an identifier of a hierarchical data structure
JP2005228170A (ja) * 2004-02-16 2005-08-25 Hitachi Ltd 記憶装置システム
JP2010257094A (ja) 2009-04-23 2010-11-11 Hitachi Ltd 階層ストレージ管理システムにおける移動候補ファイルの抽出方法
US8402205B2 (en) * 2010-03-18 2013-03-19 Seagate Technology Llc Multi-tiered metadata scheme for a data storage array
US8639899B2 (en) * 2011-04-26 2014-01-28 Hitachi, Ltd. Storage apparatus and control method for redundant data management within tiers
WO2013065081A1 (en) * 2011-10-31 2013-05-10 Hitachi, Ltd. Storage apparatus and data management method
US9703500B2 (en) * 2012-04-25 2017-07-11 International Business Machines Corporation Reducing power consumption by migration of data within a tiered storage system
US9092461B1 (en) * 2012-06-30 2015-07-28 Emc Corporation System and method for tiering data storage

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007305012A (ja) * 2006-05-15 2007-11-22 Fujitsu Ltd Hsm制御プログラム、hsm制御装置、hsm制御方法
JP2009251751A (ja) * 2008-04-02 2009-10-29 Fujitsu Ltd データ管理方法及びスイッチ装置
JP2014500542A (ja) * 2010-10-27 2014-01-09 エンモータス・インコーポレイテッド データ管理を有する階層データ記憶システムおよびその操作方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022548642A (ja) * 2019-09-17 2022-11-21 マイクロン テクノロジー,インク. タイプ付けされていないメモリアクセスのタイプ付けされているメモリアクセスに対するマッピング
JP2022548886A (ja) * 2019-09-17 2022-11-22 マイクロン テクノロジー,インク. メモリ名前空間へデータをバインドするためのメモリシステム
JP7427081B2 (ja) 2019-09-17 2024-02-02 マイクロン テクノロジー,インク. メモリ名前空間へデータをバインドするためのメモリシステム

Also Published As

Publication number Publication date
CN105074675A (zh) 2015-11-18
JP5797848B1 (ja) 2015-10-21
JPWO2015132873A1 (ja) 2017-03-30
US20160371001A1 (en) 2016-12-22
US9594508B2 (en) 2017-03-14
CN105074675B (zh) 2017-11-07

Similar Documents

Publication Publication Date Title
JP5797848B1 (ja) 階層化ブロックストレージ装置を有するコンピュータシステム、ストレージコントローラ、及びプログラム
JP4869368B2 (ja) ストレージ装置及び仮想化装置
US7975115B2 (en) Method and apparatus for separating snapshot preserved and write data
US7574577B2 (en) Storage system, storage extent release method and storage apparatus
US8639899B2 (en) Storage apparatus and control method for redundant data management within tiers
JP5707540B1 (ja) 階層化ストレージシステム、ストレージコントローラ、及び階層間のデータ移動を代替する方法
US8392685B2 (en) Arrangements for managing metadata of an integrated logical unit including differing types of storage media
US8639876B2 (en) Extent allocation in thinly provisioned storage environment
JP4990828B2 (ja) ストレージ装置及びこれの制御方法
KR20150105323A (ko) 데이터 스토리지 방법 및 시스템
WO2015162758A1 (ja) ストレージシステム
JP5944001B2 (ja) ストレージシステム、管理計算機、ストレージ装置及びデータ管理方法
JP2004295457A (ja) 記憶装置
JP2008015769A (ja) ストレージシステム及び書き込み分散方法
US7343465B2 (en) Storage system
US8849966B2 (en) Server image capacity optimization
JP2005228170A (ja) 記憶装置システム
US20140075111A1 (en) Block Level Management with Service Level Agreement
WO2018051505A1 (ja) ストレージシステム
JP4409521B2 (ja) 記憶装置
JP2001337850A (ja) 記憶装置および記憶装置の制御方法
US10089125B2 (en) Virtual machines accessing file data, object data, and block data
JP5910596B2 (ja) ストレージ管理システム、ストレージ管理方法、プログラム、および、情報処理システム
JP5355603B2 (ja) ディスクアレイ装置及び論理ボリュームアクセス方法
JP5691234B2 (ja) ディスクアレイ装置、及び、ミラーリング制御方法

Legal Events

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

Ref document number: 201480000789.9

Country of ref document: CN

ENP Entry into the national phase

Ref document number: 2014534841

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 14482311

Country of ref document: US

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

Ref document number: 14884398

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14884398

Country of ref document: EP

Kind code of ref document: A1