WO2015063859A1 - 計算機システム及び制御方法 - Google Patents

計算機システム及び制御方法 Download PDF

Info

Publication number
WO2015063859A1
WO2015063859A1 PCT/JP2013/079251 JP2013079251W WO2015063859A1 WO 2015063859 A1 WO2015063859 A1 WO 2015063859A1 JP 2013079251 W JP2013079251 W JP 2013079251W WO 2015063859 A1 WO2015063859 A1 WO 2015063859A1
Authority
WO
WIPO (PCT)
Prior art keywords
capacity
reserved
pool
computer system
reservation
Prior art date
Application number
PCT/JP2013/079251
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 PCT/JP2013/079251 priority Critical patent/WO2015063859A1/ja
Priority to US14/768,165 priority patent/US20160004460A1/en
Publication of WO2015063859A1 publication Critical patent/WO2015063859A1/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
    • 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/0614Improving the reliability of storage systems
    • G06F3/0617Improving the reliability of storage systems in relation to availability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/188Virtual file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • 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/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Definitions

  • the present invention relates to a computer system and a control method.
  • a block storage system provides a virtual volume to a host computer and allocates a real storage area in response to a write request from the host computer to the virtual volume. Also, when creating a virtual volume, a real storage area in the block storage pool is reserved according to the type of OS / application that uses the virtual volume. Since a large amount of data tends to be written immediately after the creation of the virtual volume, the creation of the virtual volume is prohibited unless a predetermined storage capacity can be reserved.
  • the server there is a NAS (Network Attached Storage) server (file server) that manages content data.
  • the NAS server collectively manages a plurality of virtual volumes provided by the block storage system as a NAS server pool (NAS pool).
  • the virtual volume in the NAS pool is divided into chunks for each predetermined address range, and the chunks are allocated to the file system. Chunks are allocated to the virtual volume in response to a write request to the file system.
  • the block storage system must ensure that a real storage area having a predetermined capacity can be allocated to a chunk (specific address range) in a virtual volume used by the file system.
  • Patent Document 1 In the technique of Patent Document 1, a predetermined storage capacity is reserved for the entire virtual volume. However, if the entire capacity is reserved for the entire virtual volume, the storage capacity cannot be used efficiently. As described above, the technology of Patent Document 1 cannot reserve a storage capacity for a specific address range of a virtual volume. Further, such a problem occurs not only in the NAS server but also in a general server.
  • a storage apparatus having a plurality of storage media and a storage controller that provides a virtual volume, and a write / read request to a virtual volume provided from the storage apparatus are issued.
  • a storage controller that divides each of a plurality of storage media into a plurality of real storage areas to form a block storage pool having a plurality of real storage areas, and a capacity from a server to a specific address range of a virtual volume
  • a reservation request is received, a predetermined number of real storage areas are reserved as the capacity of the block storage pool for a specific address range of the virtual volume.
  • a predetermined real storage area is allocated from the reserved real storage area, and if it is for a non-specific address range, block storage Allocate real storage from capacity not reserved in the pool. Furthermore, when a predetermined condition is satisfied, the reserved capacity is released or switched to pool reservation.
  • the virtual volume reserves the capacity of the block storage pool for each specific address range, thereby guaranteeing the storage capacity and simplifying the allocation process, thereby improving the response performance.
  • FIG. 1 is a diagram showing an outline of the present invention.
  • FIG. 2 is a block diagram showing the configuration of the computer system.
  • FIG. 3 is a diagram illustrating a configuration example of the virtual VOL mapping information table.
  • FIG. 4 is a diagram illustrating a configuration example of the pool capacity management table.
  • FIG. 5 is a flowchart showing the page reservation main process.
  • FIG. 6 is a flowchart showing the reserved page number acquisition process.
  • FIG. 7 is a flowchart showing the page reservation process.
  • FIG. 8 is a flowchart showing the Tier capacity reservation process.
  • FIG. 9 is a flowchart showing the pool capacity reservation process.
  • FIG. 10 is a flowchart showing reservation information setting processing for the virtual VOL.
  • FIG. 10 is a flowchart showing reservation information setting processing for the virtual VOL.
  • FIG. 11 is an allocation table showing which pages are allocated from the pool according to the page status to the virtual VOL.
  • FIG. 12 is a flowchart showing page allocation processing.
  • FIG. 13 is a flowchart showing the reserved page assignment process.
  • FIG. 14 is a flowchart showing page allocation processing from the allocation priority Tier.
  • FIG. 15 is a flow chart showing an operation operation associated with a timer excess in a system unit.
  • FIG. 16 is a flowchart showing an operation process associated with a timer excess in VOL units.
  • FIG. 17 is a flowchart showing the operation operation associated with the timer excess in page units.
  • FIG. 18 is a flowchart showing reserved capacity release processing.
  • FIG. 19 is a flowchart showing a setting timer release process.
  • FIG. 20 is a flowchart showing the pre-assignment process to the span.
  • FIG. 21 is a flowchart showing VOL information acquisition processing.
  • FIG. 22 is a flowchart showing the free space check process.
  • FIG. 23 is a flowchart showing an automatic release process for a pre-allocation page.
  • FIG. 24 is a diagram illustrating a problem in prior allocation to the circumscribed pool VOL.
  • FIG. 25 is a flowchart showing the pre-page allocation process for the circumscribed pool VOL.
  • FIG. 26 is a flowchart showing circumscribed VOL information acquisition processing.
  • management table various types of information may be described using an expression such as “management table”, but the various types of information may be expressed using a data structure other than a table. Further, the “management table” can be referred to as “management information” to indicate that it does not depend on the data structure.
  • the program is executed by a processor, for example, an MP (Micro Processor) or a CPU (Central Processing Unit), and performs a predetermined process.
  • a processor for example, an MP (Micro Processor) or a CPU (Central Processing Unit)
  • the subject of processing may be a processor because the storage resource (for example, a memory) and a communication interface device (for example, a communication port) are used as appropriate.
  • the processor may have dedicated hardware in addition to the CPU.
  • the computer program may be installed on each computer from a program source.
  • the program source may be provided by, for example, a program distribution server or a storage medium.
  • each element for example, the controller can be identified by a number or the like, but other types of identification information such as a name may be used as long as it is identifiable information.
  • identification information such as a name
  • the same reference numerals are given to the same parts, but the present invention is not limited to the present embodiment, and any application examples that meet the idea of the present invention are technical. Included in the range. Further, unless specifically limited, each component may be plural or singular.
  • FIG. 1 is a diagram showing an outline of the present invention.
  • M1 Block storage media cost reduction by optimizing the capacity between NAS servers
  • m1-1 Optimizing the capacity of the NAS pool
  • a file system larger than the NAS pool capacity can be defined.
  • the real capacity (chunk) is allocated only to the write part to the file system.
  • a chunk is a storage unit configured by using a plurality of storage areas managed in units of a fixed size (for example, 10 MB) called a page.
  • M1-2 Block storage pool capacity optimization The capacity of the block storage pool is guaranteed by the capacity of the pool VOL (Span) of the NAS pool.
  • a predetermined Tier capacity or pool capacity of the block storage system 1 is reserved (Tier capacity reservation or pool capacity reservation) in the specific address range of the virtual VOL used by Span to guarantee the storage capacity. Also, it is determined whether or not the write request is within the reserved address range of the virtual volume. If the write is within the reserved address range, the reserved capacity of the block storage pool is allocated, and if the write request is outside the reserved range, the block storage is allocated. Allocate the amount of unreserved space in the pool. Further, when the predetermined condition is satisfied, the reserved capacity is released.
  • the reserved capacity unit of Tier capacity reservation or pool capacity reservation is referred to as a page, but the present invention is not limited to this.
  • FIG. 2 is a block diagram showing the configuration of the computer system.
  • the computer system 10 includes a block storage system 1 connected to the NAS server 4 via a SAN (Storage Area Network) 5.
  • SAN Storage Area Network
  • the NAS server 4 includes a CPU 41 that controls the entire server, a memory 42 that stores control information such as various programs and various tables that operate on the CPU 41, and an FC (Fibre Channel) _I / F 43 that is connected to the SAN 5.
  • a CPU 41 that controls the entire server
  • a memory 42 that stores control information such as various programs and various tables that operate on the CPU 41
  • FC (Fibre Channel) _I / F 43 that is connected to the SAN 5.
  • the block storage system 1 includes a storage controller (DKC) 2 and a disk unit 3.
  • the DKC 2 includes a CPU 21 that controls the entire system, various programs that operate on the CPU 21, various tables, a memory 22 that stores system configuration information, an FC_I / F 23 that is connected to the SAN 5, and a plurality of SSDs (Solids) of the disk unit 3.
  • State Drive 31 / SAS-HDD 32 / SATA-HDD 33 are connected to SAS_I / F 24 and SATA_I / F 25 for connection.
  • the block storage system 1 configures a RAID group using a plurality of storage drives (SSD 31, SAS-HDD 32, SATA-HDD 33), and configures a block storage pool from the plurality of RAID groups. Further, the block storage system 1 provides a virtual VOL as an LU (Logical Unit) to the NAS server 4, and the actual capacity of the block storage pool is allocated to the virtual VOL as necessary.
  • LU Logical Unit
  • FIG. 3 is a diagram illustrating a configuration example of the virtual VOL mapping information table.
  • the virtual VOL mapping information table 30 is a table for managing the real page allocation for the virtual page of the virtual VOL 311.
  • the virtual VOL mapping information table 30 uniquely identifies the virtual page within the virtual VOL 311 and indicates the status of the real page allocated to the virtual page.
  • An allocation page state 302 a reservation Tier # 303 for identifying the Tier level of the reservation page, a reservation cancellation timer 304 for setting a predetermined time in order to execute an accompanying operation to the reservation page when the reservation page is unused and a predetermined time has elapsed, a timer It has a timer excess accompanying operation 305 for setting an accompanying operation type to be executed when the timer is exceeded.
  • An entry of the virtual VOL mapping information table 30 is set for each virtual page of the virtual VOL 311.
  • “unallocated” indicates a page that is not reserved or allocated
  • “reserved” indicates a reserved page in a pre-allocation (capacity reservation) command
  • “allocated” indicates an allocated page.
  • the reservation Tier # 303 can be set as undecided ("-") without setting a reservation Tier level and can be reserved for pool capacity.
  • Functions of the accompanying operation 305 when the timer is exceeded include page reservation release, change from Tier capacity reservation to pool capacity reservation, release of pool reservation capacity, and no execution (NOP: No-Operation, reservation continuation). This timer-accompanying operation 305 can prevent unnecessary tier capacity reservation and pool reservation continuation, and can maintain the tier capacity and pool capacity for which reservation is desired to continue even after a predetermined time has elapsed without being used.
  • FIG. 4 is a diagram illustrating a configuration example of the pool capacity management table.
  • the pool capacity management table 40 is a table that manages each storage capacity in each tier and each storage capacity in DT (Dynamic Tiering) / DP (Dynamic Provisioning).
  • the pool capacity management table 40 includes an item 401, a symbol 402 for uniquely identifying each item 401, and a calculation formula (for each pool type) 403 for calculating the storage capacity from each storage capacity.
  • DT means that virtual VOL data is transferred to an appropriate storage tier (in terms of Tier, SSD / SAS-HDD, SATA-HDD) in megabyte units (for example, 10 MB units) with finer granularity than volume units depending on the access frequency. It is a technology that improves access performance and reduces operating costs for hierarchical management by dynamically rearranging.
  • a tier having a smaller number i is called a “higher tier” storage area, and the higher tier has higher access performance than a lower tier having a larger number.
  • the DP dynamically allocates a real storage area in units of a real storage area of a fixed size (for example, the above-mentioned page) when writing to the virtual VOL, and writes the write data to the allocated storage area, This technology reduces costs and reduces operational management.
  • Calculation formula (for each pool type) 403 includes a calculation formula for DP pool 4031 and a calculation formula for DT pool 4032.
  • a page in which “free (FP)” is not reserved or allocated can be used for allocation / reservation)
  • a page in which “reserved (RP)” is reserved by a pre-allocation command “Assigned (AP)” represents an assigned page.
  • P1-1 Increase in the user response time of the NAS server 4 side task (pool creation / expansion) Before the NAS server 4 uses the virtual VOL, page allocation is performed to secure the actual capacity (page) of the virtual VOL. Then, the user response time increases due to the page allocation overhead on the block storage (block storage system 1) side by the operations (a1) to (a4) below. Therefore, it is necessary to shorten the processing time for securing the capacity.
  • A1 Issuing a NAS pool creation instruction from the user to the NAS server 4 or an addition instruction for adding a Span (pool VOL, one Span is composed of a plurality of virtual VOLs)
  • a2) Chunk selection at the NAS server 4 (a3) NAS
  • a pre-allocation command is issued from the server 4 to the DKC 2 in units of chunks.
  • the DKC 2 allocates chunk capacity (for multiple pages).
  • Non-pre-allocation target DT-VOL cannot use upper tier DT-VOL can designate which tier is preferentially allocated (allocation priority tier) for each VOL. For this reason, when a large-capacity pre-allocation is performed for a DT-VOL whose allocation priority Tier is the upper Tier, the free area of the upper Tier is reduced and depleted in a short time. As a result, page allocation in the non-pre-allocation target DT-VOL (volume whose capacity is not reserved in advance for the allocation priority Tier) concentrates on the lower Tier, and access performance deteriorates.
  • Tier capacity reservation As a means for solving the above problem (p1-1), there is a Tier capacity reservation or a pool capacity reservation. This does not allocate pages (real capacity) from the block storage pool to the unallocated area of the virtual VOL in synchronization with the pre-allocation command, but reserves pages (real capacity) for the capacity and transfers them to other virtual VOLs. The reservation page is not allocated.
  • FIG. 5 is a flowchart showing the page reservation main process. This process is a process of reserving the real storage area (in this example, in units of pages) of the block storage system 1 in the specific address range of the virtual VOL used by the file system from the NAS server 4.
  • the reservation 50 command 50 is started upon receipt of the block storage system 1.
  • the CPU 21 of the block storage system 1 analyzes the content of the pre-allocation command 50 from the NAS server 4.
  • the pre-allocation command 50 includes an operation code 501 (0x42), an Anchor Bit (1: Anchor, 0: Unmap) 502 indicating reservation / release, and a start LBA (Logical Block Address) 503 indicating the start address of the real storage area to be reserved / released.
  • SBK Sub Block number 504 indicating the data length (number of LBAs) to be reserved / released, timer designation (0: invalid, 1: valid) 505, timer value 506 indicating the time for executing the accompanying operation, accompanying when the timer is exceeded Operation (0: release reservation, 1: pool capacity reservation) 507.
  • the CPU 21 executes reservation page number acquisition processing (FIG. 6).
  • the CPU 21 reserves the page number acquired by the reserved page number acquisition process by the page reservation process (FIG. 7).
  • the CPU 21 determines whether a necessary page capacity (tier capacity) or pool capacity has been reserved. When the reservation can be made (Yes), the CPU 21 executes S505, and when the reservation cannot be made (No), the CPU 21 executes S506.
  • the CPU 21 returns a Good response indicating that the pre-allocation command 50 has been completed normally to the NAS server 4.
  • the CPU 21 cannot reserve the required number of pages, and returns a Check response requesting confirmation.
  • FIG. 6 is a flowchart showing the reserved page number acquisition process.
  • step S601 the CPU 21 first initializes the number of reserved pages, calculates a range for executing the pre-allocation command from the start LBA 503 of the command 50 and the number of SBKs 504, and performs steps S602 to S604 for the page to which the address range belongs. Execute.
  • the CPU 21 acquires the page # 301 and the page state 302 of the virtual VOL mapping information table 30. In S603, the CPU 21 determines whether the page state 302 of the page # 301 is “unallocated”. If it is unallocated (Yes), in S604, the CPU 21 adds 1 to the number of reserved pages, and if it is not unallocated (No), executes S605.
  • the CPU 21 determines whether or not the reserved page number acquisition process within the address range of the pre-allocation command is completed. If not completed, the CPU 21 repeats the processing from S602 on for the next page. If completed, the reserved page number acquisition processing is terminated, and the processing returns to the call routine.
  • FIG. 7 is a flowchart showing the page reservation process.
  • the CPU 21 determines whether the number of reserved pages in the reserved page number acquisition process is 0 or more. If it is 0 or more (Yes), the CPU 21 executes S702, and if it is less than 0 (No), it executes S708. In S702, the CPU 21 determines whether the reserved virtual VOL is a DT-VOL. If it is DT-VOL (Yes), the CPU 21 executes S703 to reserve the necessary Tier capacity (the number of reserved pages), and if it is not DT-VOL (No), it executes S706 to reserve the necessary pool capacity. To do.
  • the CPU 21 executes a Tier capacity reservation process (FIG. 8).
  • S ⁇ b> 704 the CPU 21 determines whether the necessary Tier capacity has been successfully reserved. If it has succeeded (Yes), the CPU 21 executes S705, and if it has failed (No), it executes S706 to reserve the pool capacity. In S705, the CPU 21 returns the completion result of the Tier capacity reservation execution to the call routine, ends the processing, and returns the processing to S503.
  • step S706 the CPU 21 executes a pool capacity reservation process (FIG. 9).
  • step S707 the CPU 21 determines whether the necessary pool capacity has been successfully reserved. If it has succeeded (Yes), the CPU 21 executes S705, and if it has failed (No), it executes S708.
  • step S708 the CPU 21 returns the result of the reservation of the Tier capacity and the pool capacity not yet implemented to the call routine and ends the process.
  • FIG. 8 is a flowchart showing the Tier capacity reservation process.
  • the CPU 21 acquires the pool reserved capacity (RP) from the pool capacity management table 40.
  • the CPU 21 determines whether the capacity obtained by adding the reserved page capacity necessary to the acquired pool reserved capacity (RP) is equal to or less than the pool reservable capacity (RAP) in the pool capacity management table 40.
  • the CPU 21 adds the reserved page capacity necessary to the calculated Tier usage capacity (U2), and is equal to or less than the reservation capacity threshold calculated by Tier 2 capacity (TC2) * Tier reservation threshold (RT2). Determine whether. If it is below (Yes), the CPU 21 executes S808, and if it is not below (No), it executes S811.
  • the CPU 21 adds the reserved page capacity secured to the Tier reserved capacity (R2).
  • the CPU 21 executes reservation information setting processing (FIG. 10) for the virtual VOL.
  • the CPU 21 returns the completion result of the Tier capacity reservation in S810, returns the non-execution result of the Tier capacity reservation in S811, ends the Tier capacity reservation process, and returns the process to the call routine.
  • FIG. 9 is a flowchart showing the pool capacity reservation process.
  • Processes S901 to S906 are the same as S801 to S806, process S910 is the same as S810, and process S911 is the same as S811.
  • the CPU 21 adds the reserved page capacity necessary for the pool reserved capacity (RP) acquired in S908, and executes the reservation information setting process for the virtual VOL in S909.
  • RP pool reserved capacity
  • FIG. 10 is a flowchart showing reservation information setting processing for the virtual VOL.
  • the CPU 21 calculates the address range of the pre-allocation command 50 as in the process S601.
  • the CPU 21 acquires page # 301 and page status 302 of the virtual VOL mapping information table 30.
  • the CPU 21 determines whether the page state 302 of the page is “unallocated”. If it is “unallocated” (Yes), the CPU 21 executes S1004, and if it is not “unallocated” (No), it executes S1009.
  • the CPU 21 sets “reserved” in the page state 302 of the virtual VOL mapping information table 30. A page set as reserved cannot be reserved or assigned by another virtual VOL.
  • the CPU 21 determines whether the Tier capacity is reserved. In the case of Tier capacity reservation (Yes), the CPU 21 executes S1006, and in the case of pool capacity reservation (No), executes S1007. In S1006, the CPU 21 sets the reserved Tier number in the reservation Tier # 303 of the virtual VOL mapping information table 30.
  • the CPU 21 determines whether or not the timer is set by the timer setting 505 of the pre-allocation command 50 (operation code 501: 0x42). If the timer setting is present (the setting of the timer setting 505 is “1: valid”) (Yes), the CPU 21 executes S1008. If not (No), the CPU 21 executes S1009. In step S ⁇ b> 1008, the CPU 21 sets the timer value 506 information of the pre-allocation command 50 in the reservation cancellation timer 304 of the virtual VOL mapping information table 30, and the timer excess accompanying operation 507 information in the timer excess accompanying operation 305.
  • the CPU 21 determines whether the reservation information setting process within the address range of the pre-allocation command is completed. If not completed, the CPU 21 repeats the processing from S1002 onward for the next address, and if completed, ends the reserved page number acquisition processing and returns the processing to the call routine.
  • the page allocation to the pre-allocation area does not allocate in synchronization with the pre-allocation command, but reserves the actual capacity Tier capacity or pool capacity from the block storage pool by the capacity of the unallocated area of the virtual VOL, The reserved page is not allocated to another virtual VOL. As a result, the overhead of actual capacity allocation of the block storage pool can be reduced, and the response performance can be improved.
  • FIG. 11 is an allocation table showing which pages are allocated from the pool according to the page status 302 to the virtual VOL.
  • the allocation table 110 includes a pool / tier page status (free / reserved / allocated) and a code 1101 indicating the meaning of the status, and a page allocation availability 1102 in the page status 302 of the virtual VOL mapping information table 30.
  • the page status of the pool / tier is “free”, it can be assigned to “unallocated” in the page status 302 of the virtual VOL mapping information table 30. Similarly, if the page state of the pool / Tier is “reserved”, the page state 302 can be assigned to “reserved”.
  • FIG. 12 is a flowchart showing page allocation processing.
  • this page allocation process it is determined whether or not the write request is within the reserved address range of the virtual volume. If the write request is within the reserved address range, the reserved page of the block storage pool is allocated and the write outside the reserved range is performed. Then, an unallocated page that is not reserved in the block storage pool is allocated.
  • the CPU 21 receives a write command from the NAS server 4.
  • the CPU 21 acquires information on the write area indicated by the write command from the virtual VOL mapping information table 30.
  • the CPU 21 determines whether the page state 302 of the light page is “unallocated”. If it is “unallocated” (Yes: “free” state), the CPU 21 executes S1206. If it is not “unallocated” (No: “allocated” or “reserved” state), the CPU 21 executes S1204.
  • the CPU 21 determines whether the page state 302 is “reserved”. When it is not “reserved” (No: “allocated” state), the CPU 21 executes S1207, and when it is “reserved” (Yes), executes S1205. In step S1205, the CPU 21 executes the reserved page assignment process of FIG. In S1206, the CPU 21 executes a page allocation process from the allocation priority Tier of FIG.
  • the processing from S1203 to S1206 is processing for selecting a page (reserved page or unallocated page) to be allocated from the pool based on the address range on the virtual volume.
  • step S1207 the CPU 21 determines whether a page has been allocated. When the allocation is successful (Yes), the CPU 21 executes S1208. When the allocation is not possible (No), the CPU 21 executes S1209. In S1208, the CPU 21 responds to the NAS server 4 that writing is possible, and writes the write data to the assigned page. In S1209, the CPU 21 responds to the NAS server 4 that writing is impossible.
  • FIG. 13 is a flowchart showing the reserved page assignment process.
  • the CPU 21 determines whether the virtual VOL is a DT-VOL. If it is DT-VOL (Yes), the CPU 21 executes S1302, otherwise (No), executes S1306. In S1302, the CPU 21 checks the virtual VOL mapping information table 30 to confirm whether the Tier level is set in the reservation Tier # 303. If it is set (Yes, Tier capacity reservation), the CPU 21 executes S1303. If not set (No, pool capacity reservation), the CPU 21 executes S1306.
  • the CPU 21 allocates a page from the reservation Tier.
  • the CPU 21 subtracts the allocated page capacity from the Tier reserved capacity (R2) of the pool capacity management table 40.
  • the CPU 21 adds the page capacity allocated to the Tier allocated capacity (A2).
  • the CPU 21 executes a page allocation process from the allocation priority Tier in FIG.
  • the CPU 21 subtracts the allocated page capacity in S1306 from the pool reserved capacity (RP).
  • the CPU 21 adds the allocated page capacity in S1303 to S1306 to the pool allocated capacity (AP).
  • the CPU 21 returns a result of the assignment execution, ends the reserved page assignment process, and returns the process to the call routine.
  • the CPU 21 acquires the allocation priority Tier # of the virtual VOL.
  • the CPU 21 determines whether Tier 1 has a free capacity. If yes (Yes), the CPU 21 executes S1408. If not (No), the CPU 21 executes S1405. In S1405, the CPU 21 selects the next tier. In S1406, the CPU 21 determines whether the processing for the number of Tiers has been completed. If the processing from Tier 1 to Tier 3 has been completed, the CPU 21 repeats the processing of S1407, and if not, the processing of S1403 to S1405 is repeated at the next Tier. In S ⁇ b> 1407, the CPU 21 determines that the page capacity cannot be allocated by checking the space from Tier 1 to Tier 3, and returns a page allocation unexecuted result.
  • the CPU 21 executes page allocation from the designated Tier that has secured the free capacity.
  • the CPU 21 returns a result of page allocation execution completion, ends the page allocation process, and returns the process to the call routine.
  • FIG. 15 is a flow chart showing an operation operation associated with a timer excess in a system unit.
  • the CPU 21 extracts all virtual VOLs created in the block storage system 1 and sets the number of VOLs in order to execute the processing of S1502.
  • the CPU 21 executes an accompanying operation process (FIG. 16) when the VOL unit timer is exceeded.
  • the CPU 21 determines whether or not the processing of S1502 has been completed for all the virtual VOLs of the extracted block storage system 1, and executes the processing S1502 to the next virtual VOL when not completed, and ends the processing when completed. .
  • FIG. 16 is a flowchart showing an operation process associated with a timer excess in VOL units. This process is executed for all virtual VOLs extracted in the process of FIG.
  • the CPU 21 sets the total number of pages in the entire area of the virtual VOL.
  • the CPU 21 executes an accompanying operation process (FIG. 17) when the page unit timer is exceeded.
  • the CPU 21 determines whether or not the processing has been completed for the pages in the entire area of the virtual VOL. If not completed, the CPU 21 executes the processing S1602 to the next page. return.
  • FIG. 17 is a flowchart showing the operation operation associated with the timer excess in page units. This process is executed for all virtual pages extracted in the process of FIG.
  • step S1701 the CPU 21 acquires information on the page status 302 of the virtual VOL mapping information table 30.
  • step S1702 the CPU 21 determines whether the page state 302 is “reserved”. If it is “Reserved” (Yes), the CPU 21 terminates the process and returns to the call routine if S1703 is not present (No).
  • step S ⁇ b> 1703 the CPU 21 acquires information set in the timer excess accompanying operation 305 in the virtual VOL mapping information table 30.
  • the CPU 21 determines whether or not the acquired information of the operation 305 associated with the timer excess is “pool capacity reservation”. If it is “pool capacity reservation” (Yes), the CPU 21 executes the reserved capacity release processing (FIG. 18) of S1705 to release the Tier capacity in order to change the virtual page state from the Tier capacity reservation to the pool capacity reservation. In step S1706, a new pool capacity is reserved. If it is not “pool capacity reservation” (No), S1707 is executed to release the reservation Tier capacity. Then, the accompanying operation process when the page unit timer is exceeded is terminated, and the process is returned to the call routine. As described above, the accompanying operation when the timer is exceeded can release a reserved page that is not allocated to the virtual VOL volume even after a certain period of time has elapsed since the Tier capacity reservation or the pool capacity reservation. Can be used.
  • FIG. 18 is a flowchart showing reserved capacity release processing.
  • the CPU 21 changes the information of the reservation Tier # 303 in the virtual VOL mapping information table 30 to “-” without setting, and releases the Tier page reserved for the virtual page.
  • the CPU 21 subtracts the released page capacity from the reserved capacity (R2) of the Tier.
  • the CPU 21 subtracts the released page capacity from the reserved capacity (RP) of the pool.
  • the CPU 21 transmits a reservation change notification to the host (the NAS server 4 or the like), ends the reserved capacity release process, and returns the process to the call routine.
  • the reserved capacity can be allocated to other virtual VOLs for reservation or allocation. Therefore, the use efficiency of the storage capacity can be improved.
  • FIG. 19 is a flowchart showing a setting timer release process.
  • the setting timer release processing is processing for invalidating the timer release information set in the virtual VOL mapping information table 30.
  • the CPU 21 receives the timer cancel command 190.
  • the timer cancel command 190 has an operation code 1901 (the values of 0xYY and YY do not overlap with other commands), a start LBA 1902, and an SBK number 1903.
  • the CPU 21 calculates and sets the application range of the timer release command from the start LBA 1902 and the SBK number 1903. Also, the top page number is calculated from the start LBA 1902.
  • the CPU 21 acquires information on the page state 302 of the corresponding page in the virtual VOL mapping information table 30.
  • the CPU 21 determines whether the page state 302 is “reserved”. If “Reserved” (Yes), the CPU 21 executes S1905, otherwise (No), executes S1906.
  • step S1905 the CPU 21 sets “ ⁇ ” in the reservation cancellation timer 304 and the timer excess accompanying operation 305 of the virtual VOL mapping information table 30 to invalidate them.
  • step S1906 the CPU 21 determines whether the processing within the application range of the timer release command has been completed. When the processing is not completed, the processing from step S1903 is repeated, and when the processing is completed, the timer cancellation processing is terminated. As a result, the timer setting for the reservation page can be canceled, so that the reservation page set for cancellation can be continuously reserved.
  • the pre-allocation of P1 and P2 to the virtual VOL (LU1 / LU2) is meaningless processing and causes the file system to be unmounted. .
  • FIG. 20 is a flowchart showing the pre-assignment process to the span.
  • the CPU 21 acquires information (SUN number, volume capacity, etc.) of a span LUN (Logical Unit Number) specified by the user and received by the block storage system 1. In S2002, the CPU 21 calculates an area constituting the span from the acquired LUN information.
  • the CPU 21 acquires VOL information by a VOL information acquisition process (FIG. 21) using a RAID management program (a program for managing RAID groups and volumes).
  • the CPU 21 executes a free space check process (FIG. 22) using the acquired VOL information.
  • the CPU 21 determines whether the free space check is OK. If OK (Yes, sufficient capacity), the CPU 21 executes S2006, and if not OK (No, insufficient capacity), executes S2014.
  • the CPU 21 sets the number of LUNs to be processed.
  • the CPU 21 issues a pre-allocation command and executes page reservation processing (FIG. 5).
  • the CPU 21 determines whether the returned command result is Good. If it is Good (Yes), the CPU 21 performs the processes of S2007 and S2008 up to the set LUN number (S2009).
  • the CPU 21 responds OK to the user's host, and notifies that the pre-allocation to Span has been completed normally.
  • the CPU 21 sets the number of LUNs for which the pre-allocation command has been issued, and in S2012, issues an allocation release command to the LUN (anchor bit 502 is set to 0: Unmap with the pre-allocation command 50), and releases the reserved page. To do.
  • the CPU 21 responds NG to the user's host, and notifies that the pre-allocation to the span has failed.
  • FIG. 21 is a flowchart showing VOL information acquisition processing.
  • the CPU 21 executes the processing from S2102 to S2107 for the number of LUNs acquired in S2001, and acquires the VOL information of the LUN for Span.
  • the CPU 21 sets DKC # (DKC number) in S2102, LDEV # (LDEV number) in S2103, the total capacity of the LDEV in S2104, the allocated capacity of the LDEV in S2105, and the pool related to the LDEV in S2106.
  • # pool number
  • the above processing is executed for each LUN, and VOL information in each LUN is acquired.
  • FIG. 22 is a flowchart showing the free space check process.
  • the CPU 21 sets the number of DKCs acquired in the VOL information acquisition process of FIG. 21 in S2201, the number of pools in S2202, the number of LDEVs in S2203, and initializes the accumulated unallocated capacity to 0.
  • the CPU 21 calculates the unallocated capacity in the LDEV by subtracting the allocated capacity from the total capacity of the LDEV.
  • the CPU 21 adds the unallocated capacity to the accumulated unallocated capacity. The processes S2204 and S2205 are repeated for the number of LDEVs to obtain the accumulated unallocated capacity.
  • the CPU 21 determines whether or not the pool free capacity (FP) acquired in S2107 is equal to or greater than the accumulated unallocated capacity. If not (No), the CPU 21 determines that the capacity is insufficient, and returns NG to the main routine (FIG. 20) (S2211). If it is above (Yes in S2207), in S2208, the CPU 21 determines whether or not the number of pools has been completed. If not, the accumulated unallocated capacity is initialized to 0, and the processing from S2203 to S2207 is executed again. . In S2209, the CPU 21 determines whether or not the number of DKCs has been completed.
  • FP pool free capacity
  • the CPU 21 initializes the accumulated unallocated capacity to 0, and executes the processes from S2203 to S2207 again.
  • the CPU 21 returns in S2210 that the free capacity check is OK.
  • the timer setting 505 of the pre-allocation command 50 is set to “1: valid”, and the reservation cancellation timer 506 is set to a predetermined value (for example, 1/30 which is a date / time). (January 30)), the bit of the timer excess associated operation 507 is set to “0: reservation release”. If the timer cancel command 190 is not issued to the block storage system 1 by the set date and time with the timer value 506 from the NAS server 4, the DKC 2 automatically releases the capacity due to the Tier capacity reservation or the pool capacity reservation. It is also possible to set a predetermined time instead of the date and time, and to release the capacity due to Tier capacity reservation or pool capacity reservation if the timer cancel command 190 is not issued even after the predetermined time has elapsed.
  • FIG. 23 is a flowchart showing an automatic release process for a pre-allocation page.
  • the processing from S2301 to S2309 is equivalent to the processing from S2001 to S2009, and the difference is that the pre-allocation command 50 of S2307 is set to automatically release the reserved page when the timer is exceeded.
  • the CPU 21 monitors whether the timer cancellation command 190 to the block storage system 1 has been issued after the completion of the issuance of the pre-allocation command 50 in S2309. If the timer cancellation command 190 is not issued, the CPU 21 of the DKC 2 issues the timer cancellation command 190 to all the areas where the pre-allocation command 50 has been issued in S2311 to release the reserved page.
  • the DKC 2 of the block storage system 1 automatically releases the reserved page, so that the reserved capacity that is left unfairly can be released.
  • a general storage area can be used.
  • FIG. 25 is a flowchart showing the pre-page allocation process for the circumscribed pool VOL.
  • the CPU 21 acquires the pool information of the circumscribed VOL by the RAID management program (FIG. 26). Then, the number of reserved pages is initialized to zero. The CPU 21 executes the processing from S2502 to S2507 for the number of pages of the circumscribed VOL capacity acquired in S2501. In S2503, the CPU 21 determines whether the capacity obtained by adding the capacity of one page to the acquired pool usage capacity is equal to or less than the capacity obtained by multiplying the pool capacity acquired in S2501 by the same acquired pool threshold. When exceeding (No), the CPU 21 executes S2508, and when following (Yes), executes S2504.
  • the CPU 21 issues a pre-allocation command in S2504, and determines in S2505 whether the response is Good. If it is Good (Yes), the CPU 21 adds one page to the reserved page number in S2506 and adds the capacity for one page to the pool usage capacity of the circumscribed VOL. In S2507, the CPU 21 determines whether or not the processing for the number of pages corresponding to the capacity of the circumscribed VOL has been completed. If the processing has not been completed, the processing from S2503 is repeated. Then, the CPU 21 sets the capacity corresponding to the number of reserved pages secured in S2508 as the pool VOL capacity, and additionally registers the circumscribed VOL as the pool VOL in S2509 and ends the process.
  • FIG. 26 is a flowchart showing circumscribed VOL information acquisition processing.
  • the processing of S2601 and S2602 is the same as the processing of S2103 and S2104, and S2603 is the same as the processing of S2106.
  • the CPU 21 acquires a pool capacity in S2604, a pool use capacity in S2605, and a pool threshold value in S2606.
  • this invention is not limited to the above-mentioned Example, Various modifications are included.
  • the above-described embodiments have been described in detail for easy understanding of the present invention, and are not necessarily limited to those having all the configurations described. Further, a part of the configuration of one embodiment can be replaced with the configuration of another embodiment, and the configuration of another embodiment can be added to the configuration of one embodiment. Further, it is possible to add, delete, and replace other configurations for a part of the configuration of each embodiment.
  • each of the above-described configurations, functions, processing units, processing means, and the like may be realized by hardware by designing a part or all of them with, for example, an integrated circuit.
  • Each of the above-described configurations, functions, and the like may be realized by software by interpreting and executing a program that realizes each function by the processor.
  • Information such as programs, tables, and files for realizing each function may be stored in a recording device such as a memory, a hard disk, and an SSD, or a recording medium such as an IC card, an SD card, and a DVD.
  • the control lines and information lines indicate what is considered necessary for the explanation, and not all the control lines and information lines on the product are necessarily shown. Actually, it may be considered that almost all the components are connected to each other.

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)
  • Computer Networks & Wireless Communication (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

 プール内の仮想ボリュームに対して記憶容量を保証できる計算機システムを提供する。そのため、本発明では、仮想ボリュームの特定アドレス範囲にブロックストレージのプール容量を予約し、特定アドレス範囲へのデータライトで予約した容量を割り当てる。また、予約した容量が所定時間割り当てられない場合は予約を解除する。

Description

計算機システム及び制御方法
 本発明は、計算機システム及び制御方法に関する。
 近年、データ量の増大が著しく、ストレージシステムの実記憶領域の記憶容量を効率的に使用したいというニーズが大きい。また、これに伴い、データを格納する多数の記憶デバイスを備えるブロックストレージシステム及びサーバの数が増加している。このため、複数のサーバが使用する容量をブロックストレージシステムに集約し、複数のサーバ及びブロックストレージ装置が記憶容量を共有し、効率的に使用する技術が求められている。
 ブロックストレージシステムにおいて記憶容量を効率的に使用する技術として、特許文献1の技術がある。この技術でのブロックストレージシステムは、ホストコンピュータに仮想ボリュームを提供し、ホストコンピュータから仮想ボリュームへのライト要求に応じて実記憶領域を割当てる。また、仮想ボリュームを作成する際に、仮想ボリュームを使用するOS/アプリケーションの種類に応じてブロックストレージプール内の実記憶領域を予約する。仮想ボリュームの作成直後は大量のデータが書き込まれる傾向にあるため、所定の記憶容量を予約できなければ、仮想ボリュームの作成を禁止するものである。
日本公開特許第2010-282608号公報        (米国特許出願公開第2010/0312976号明細書)
 サーバには、一例として、コンテンツデータを管理するNAS(Network Attached Storage)サーバ(ファイルサーバ)がある。NASサーバは、ブロックストレージシステムの記憶容量を使用する際、ブロックストレージシステムが外部に提供している仮想ボリュームを複数纏めてNASサーバ用のプール(NASプール)として管理する。NASプール内の仮想ボリュームは所定のアドレス範囲毎にチャンクとして区切られ、チャンクがファイルシステムに割当てられる。ファイルシステムへのライト要求に応じて仮想ボリュームにチャンクが割当てられる。
 しかし、ファイルシステムが使用する仮想ボリュームに割当てる実記憶領域が不足した場合、つまりファイルシステムへのライト要求に基づくデータ書き込みが失敗した場合、ファイルシステムがアンマウント(接続遮断)し使用不可能となる。このため、ブロックストレージシステムは、ファイルシステムが使用する仮想ボリューム内のチャンク(特定のアドレス範囲)に対して所定容量の実記憶領域が割当て可能であることを保証する必要がある。
 特許文献1の技術では、仮想ボリューム全体に対して所定の記憶容量が予約される。ところが、仮想ボリューム全体に対して全容量分を予約すると、記憶容量の効率的な使用はできない。このように、特許文献1の技術では、仮想ボリュームの特定のアドレス範囲に対して、記憶容量を予約することができなかった。また、このような課題はNASサーバに限らず、一般的なサーバにおいても発生する。
 上記課題を解決するために、本発明の計算機システムでは、複数の記憶媒体と仮想ボリュームを提供するストレージコントローラとを有するストレージ装置と、ストレージ装置から提供される仮想ボリュームに対して書き込み/読み出し要求を行うサーバとを備え、ストレージコントローラは、複数の記憶媒体のそれぞれを複数の実記憶領域に区切り、複数の実記憶領域を有するブロックストレージプールを構成し、サーバから仮想ボリュームの特定のアドレス範囲対する容量予約の要求を受けると、仮想ボリュームの特定のアドレス範囲に対して、ブロックストレージプールの容量として所定数の実記憶領域を予約する。
 また、サーバから仮想ボリュームへの書き込み要求が、特定のアドレス範囲に対するものである場合は、予約した実記憶領域から所定の実記憶領域を割り当て、特定のアドレス範囲以外に対するものである場合はブロックストレージプールで予約されていない容量から実記憶領域を割り当てる。更に、所定条件を満足する場合は予約された容量の解放ないしプール予約への切り替えを行う。
 本発明の計算機システムでは、仮想ボリュームは特定のアドレス範囲毎にブロックストレージプールの容量を予約することで、記憶容量を保証でき割り当て処理も簡素化できるので応答性能を向上できる。前述以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
図1は、本発明の概要を示す図である。 図2は、計算機システムの構成を示すブロック図である。 図3は、仮想VOLマッピング情報テーブルの構成例を示す図である。 図4は、プール容量管理テーブルの構成例を示す図である。 図5は、ページ予約メイン処理を示すフローチャート図である。 図6は、予約ページ数取得処理を示すフローチャート図である。 図7は、ページ予約処理を示すフローチャート図である。 図8は、Tier容量予約処理を示すフローチャート図である。 図9は、プール容量予約処理を示すフローチャート図である。 図10は、仮想VOLへの予約情報設定処理を示すフローチャート図である。 図11は、仮想VOLへのページ状態によりプールからどのページを割り当てるかを示した割当表である。 図12は、ページ割当処理を示すフローチャート図である。 図13は、予約ページ割当処理を示すフローチャート図である。 図14は、割当優先Tierからのページ割当処理を示すフローチャート図である。 図15は、システム単位でのタイマ超過時付随動作処理を示すフローチャート図である。 図16は、VOL単位でのタイマ超過時付随動作処理を示すフローチャート図である。 図17は、ページ単位でのタイマ超過時付随動作処理を示すフローチャート図である。 図18は、予約容量解放処理を示すフローチャート図である。 図19は、設定タイマの解除処理を示すフローチャート図である。 図20は、Spanへの事前割当処理を示すフローチャート図である。 図21は、VOL情報取得処理を示すフローチャート図である。 図22は、空き容量チェック処理を示すフローチャート図である。 図23は、事前割当ページの自動解放処理を示すフローチャート図である。 図24は、外接プールVOLへの事前割当での課題を示す図である。 図25は、外接プールVOLへの事前ページ割当処理を示すフローチャート図である。 図26は、外接VOL情報取得処理を示すフローチャート図である。
 以下、図面を参照しながら本発明の実施の形態を説明する。なお、以下の説明では、「管理テーブル」等の表現にて各種情報を説明することがあるが、各種情報は、テーブル以外のデータ構造で表現されていてもよい。また、データ構造に依存しないことを示すために「管理テーブル」を「管理情報」と呼ぶことができる。
 また、「プログラム」を主語として処理を説明する場合がある。そのプログラムは、プロセッサ、例えば、MP(Micro Processor)やCPU(Central Processing Unit)によって実行されるもので、定められた処理をするものである。なお、適宜に記憶資源(例えばメモリ)及び通信インターフェース装置(例えば、通信ポート)を用いながら行うため、処理の主語がプロセッサとされてもよい。プロセッサは、CPUの他に専用ハードウェアを有していても良い。コンピュータプログラムは、プログラムソースから各コンピュータにインストールされても良い。プログラムソースは、例えば、プログラム配布サーバ又は記憶メディアなどで提供されるものであっても良い。
 また、各要素、例えば、コントローラは番号などで識別可能であるが、識別可能な情報であれば、名前など他種の識別情報が用いられても良い。本発明の図及び説明において同一部分には同一符号を付与しているが、本発明が本実施例に制限されることは無く、本発明の思想に合致するあらゆる応用例が本発明の技術的範囲に含まれる。また、特に限定しない限り、各構成要素は複数でも単数でも構わない。
 <概要>
 図1は、本発明の概要を示す図である。各NASサーバのストレージを単一のブロックストレージプール(記憶ドライブの集合体、単にプールと呼称することもある)に集約することで、以下のメリットをユーザへ提供できる。
(m1)NASサーバ間の容量最適化によるブロックストレージのメディアコスト削減
 (m1-1)NASプールの容量最適化
 NASプール容量よりも大きなファイルシステムを定義することができる。また、ファイルシステムへのライト部分だけ、実容量(チャンク)を割当てる。チャンクは、ページと呼ばれる固定サイズ(例えば、10MB)単位で管理している記憶領域を複数使用して構成する記憶単位である。
 (m1-2)ブロックストレージプールの容量最適化
 NASプールのプールVOL(Span)容量分だけ、ブロックストレージプールの容量を保証する。
(m2)大規模ストライピングによるNASスループット性能向上
 NASプールのプールVOLに、ブロックストレージプールの仮想VOLを使用することで、Spanの領域がブロックストレージプールにおける複数のプールVOLに分散して配置できる。そのため、ブロックストレージの記憶ドライブへ並列アクセス可能となりデータアクセス時間を短縮でき、NASサーバのスループット性能向上が可能となる。
 ファイルシステムの使用する部分に実容量(チャンク)を割り当てるためには、NASサーバにおけるプールVOL(Span)分の実領域分の容量をブロックストレージプールが保証できることが前提となる。そこで、本発明では、Spanが使用する仮想VOLの特定アドレス範囲に、ブロックストレージシステム1の所定Tier容量ないしはプール容量を予約(Tier容量予約ないしプール容量予約)し、記憶容量を保証する。また、ライト要求が仮想ボリュームの予約されたアドレス範囲内に対するものか否かを判定し、予約アドレス範囲内へのライトならブロックストレージプールの予約した容量を割当て、予約範囲外へのライトならブロックストレージプールの予約されていない領域の容量を割り当てる。更に、所定条件を満足する場合は予約された容量を解放する。以降の説明では、Tier容量予約ないしプール容量予約の予約容量単位をページとするが、これに限定されるものではない。
 <全体システム>
 図2は、計算機システムの構成を示すブロック図である。計算機システム10は、NASサーバ4とSAN(Storage Area Network)5経由で接続するブロックストレージシステム1を備える。
 NASサーバ4は、サーバ全体を制御するCPU41、CPU41上で動作する各種プログラムや各種テーブルなどの制御情報を格納するメモリ42、SAN5に接続するためのFC(Fibre Channel)_I/F43を備える。
 ブロックストレージシステム1はストレージコントローラ(DKC)2とディスクユニット3を備える。DKC2は、システム全体を制御するCPU21、CPU21上で動作する各種プログラム、各種テーブル、システム構成情報などを格納するメモリ22、SAN5に接続するためのFC_I/F23、ディスクユニット3の複数のSSD(Solid State Drive)31/SAS-HDD32/SATA-HDD33と接続するためのSAS_I/F24及びSATA_I/F25を有する。
 ブロックストレージシステム1は複数の記憶ドライブ(SSD31、SAS-HDD32、SATA-HDD33)を用いてRAIDグループを構成し、複数のRAIDグループからブロックストレージプールを構成する。また、ブロックストレージシステム1は、NASサーバ4へLU(Logical Unit)としての仮想VOLを提供し、必要に応じて仮想VOLにブロックストレージプールの実容量が割り当てられる。
 <仮想VOLマッピング情報テーブル>
 図3は、仮想VOLマッピング情報テーブルの構成例を示す図である。仮想VOLマッピング情報テーブル30は、仮想VOL311の仮想ページに対する実ページ割当を管理するテーブルで、仮想ページを仮想VOL311内で一意に識別するPAGE#301、仮想ページに割り当てられた実ページの状態を示す割当ページ状態302、予約ページのTierレベルを識別する予約Tier#303、予約ページが未使用で所定時間経過したら予約ページへの付随動作を実行するため、所定時間を設定する予約解除タイマ304、タイマ超過時に実行される付随動作種別を設定するタイマ超過時付随動作305を有する。
 仮想VOL311の仮想ページ毎に仮想VOLマッピング情報テーブル30のエントリを設定する。ページ状態302で、“未割当”は予約も割当もされてないページを、“予約済”は事前割当(容量予約)コマンドでの予約済ページを、“割当済”は割当済ページを表す。また、予約Tier#303は予約するTierレベルを設定せず、未定(“-”)とし、プール容量の予約とすることもできる。タイマ超過時付随動作305の機能として、ページ予約解放、Tier容量予約からプール容量予約への変更、プール予約容量の解放、未実行(NOP:No-Operation、予約継続)がある。このタイマ超過時付随動作305で不必要なTier容量予約やプール予約の継続を防止できると共に、未使用で所定時間経過した後でも、予約を継続したいTier容量やプール容量を予約状態に保てる。
 <プール容量管理テーブル>
 図4は、プール容量管理テーブルの構成例を示す図である。プール容量管理テーブル40は、各Tierにおける各記憶容量及びDT(Dynamic Tiering)/DP(Dynamic Provisioning)での各記憶容量を管理するテーブルである。プール容量管理テーブル40は、項目401、各項目401を一意に識別するための記号402、各記憶容量から当該記憶容量を算出するための計算式(プール種別毎)403を有する。
 なお、DTとは、アクセス頻度に応じてボリューム単位より粒度の細かいメガバイト単位(例えば、10MB単位)で仮想VOLのデータを適切なストレージ階層(Tierで、SSD/SAS-HDD、SATA-HDD)へ動的に再配置することでアクセス性能向上と階層管理の運用コスト削減を図る技術である。図4で番号iが小さいTierほど「上位Tier」の記憶領域と呼ばれ、上位Tierは番号が大きい下位Tierよりもアクセス性能が高い。また、DPは、仮想VOLへの書き込み時に固定サイズ(例えば、前述のページ)の実記憶領域単位で動的に実記憶領域を割り当てて、この割り当てられた記憶領域にライトデータを書き込むことで、コスト削減や運用管理の軽減を図る技術である。
 計算式(プール種別毎)403は、DPプール4031用計算式とDTプール4032用計算式を有する。また、DPプールのページ状態で、“空き(FP)”が予約も割当もされてないページ(割当/予約で使用可能)を、“予約済(RP)”が事前割当コマンドで予約されたページを、“割当済(AP)”が割当済のページを表す。
 次に、課題と解決手段を個々に説明する。
(p1)課題1
 (p1-1)NASサーバ4側タスク(プール作成/拡張)のユーザ応答時間増大
 NASサーバ4が仮想VOLを使用する前に、仮想VOLの実容量(ページ)を確保するためのページ割当を行うと、下記(a1)から(a4)の動作によるブロックストレージ(ブロックストレージシステム1)側のページ割り当てオーバヘッドで、ユーザ応答時間が増大する。そのため、容量確保の処理時間を短縮する必要がある。
  (a1)ユーザからNASサーバ4へNASプールの作成指示またはSpan(プールVOL、複数の仮想VOLで1つのSpanを構成)の追加指示の発行
  (a2)NASサーバ4でチャンクの選択
  (a3)NASサーバ4からDKC2へチャンク単位に事前割当コマンド(Anchorコマンド)を発行
  (a4)DKC2で、チャンク容量分(複数ページ分)の割当実施
 (p1-2)非事前割当対象のDT-VOLが上位Tierを使用不可
 DT-VOLは、VOL単位にどのTierを優先して割り当て(割当優先Tier)するかを指定することができる。そのため、割当優先Tierを上位TierとしているDT-VOLに対し大容量の事前割り当てを実施した場合、上位Tierの空き領域が短時間で減少し枯渇する。その結果、非事前割当対象DT-VOL(事前に割当優先Tierへ容量予約しないボリューム)におけるページ割り当てが下位Tierに集中し、アクセス性能劣化が起きる。
 上記課題(p1-1)の解決手段として、Tier容量予約ないしプール容量予約がある。これは、事前割当コマンドに同期して仮想VOLの未割り当て領域へブロックストレージプールからページ(実容量)を割り当てるのではなく、容量分だけのページ(実容量)を予約し、他の仮想VOLへ当該予約ページを割り当てしないようにするものである。
 上記課題(p1-2)の解決手段として予約容量制限がある。これは、Tier容量予約に容量制限を行い各Tierに空き領域を確保する。Tier容量予約でTier容量が予約容量閾値を超える場合は、プール容量予約に切り替える。また、別の解決手段として、タイマ超過時の付随動作がある。これは、全仮想VOLの予約ページを調べ、タイマ超過のTier容量予約を付随動作でTier容量予約解放ないしはTier容量予約からプール容量予約への切り替えを行い、上位Tierの空き領域を増加させるものである。
 <ページ予約メイン処理>
 図5は、ページ予約メイン処理を示すフローチャート図である。本処理は、NASサーバ4からファイルシステムが使用する仮想VOLの特定アドレス範囲に、ブロックストレージシステム1の実記憶領域(本例ではページ単位)を予約する処理で、NASサーバ4からの事前割当(予約)コマンド50をブロックストレージシステム1の受領を契機に開始される。
 S501で、ブロックストレージシステム1のCPU21は、NASサーバ4からの事前割当コマンド50の内容を解析する。事前割当コマンド50は、オペコード501(0x42)、予約/解放を示すAnchor Bit(1:Anchor、0:Unmap)502、予約/解放する実記憶領域の先頭アドレスを示す開始LBA(Logical Block Address)503、予約/解放するデータ長(LBA数)を示すSBK(Sub Block)数504、タイマ指定(0:無効、1:有効)505、付随動作を実行する時間を示すタイマ値506、タイマ超過時付随動作(0:予約解放、1:プール容量予約)507である。
 S502で、CPU21は、予約ページ数の取得処理(図6)を実行する。S503で、CPU21は、予約ページ数取得処理で取得したページ数を、ページ予約処理(図7)でページ予約する。S504で、CPU21は、必要なページ容量(Tier容量)ないしプール容量を予約できたかを判断する。予約できた場合(Yes)、CPU21はS505を、出来ない場合(No)、S506を実行する。
 S505で、CPU21は、NASサーバ4へ事前割当コマンド50が正常に終了したGood応答を返信する。S506で、CPU21は、ページを必要数予約できなかったので、確認を要求するCheck応答を返信する。
 <予約ページ数取得処理>
 図6は、予約ページ数取得処理を示すフローチャート図である。
 S601で、CPU21は、まず、予約ページ数を初期化し、事前割当コマンドを実行する範囲をコマンド50の開始LBA503とSBK数504から計算し、そのアドレス範囲の属するページに対して処理S602からS604を実行する。
 S602で、CPU21は、仮想VOLマッピング情報テーブル30のページ#301及びページ状態302を取得する。S603で、CPU21は、このページ#301のページ状態302は“未割当”であるかを判断する。未割当であれば(Yes)、S604で、CPU21は、予約ページ数に1を加算し、未割当でなければ(No)、S605を実行する。
 S605で、CPU21は、事前割当コマンドのアドレス範囲での予約ページ数取得処理が完了したかを判断する。完了していなければ、次のページに対し、CPU21はS602以降の処理を繰り返し、完了していれば、予約ページ数取得処理を終了し、処理をコールルーチンに戻す。
 <ページ予約処理>
 図7は、ページ予約処理を示すフローチャート図である。
 S701で、CPU21は、予約ページ数取得処理での予約ページ数が0以上かを判断する。0以上であれば(Yes)、CPU21は、S702を、0未満であれば(No)、S708を実行する。S702で、CPU21は、予約する仮想VOLはDT-VOLであるかを判断する。DT-VOLであれば(Yes)、CPU21は、必要なTier容量(予約ページ数)を予約するためS703を、DT-VOLでなければ(No)、必要なプール容量を予約するためS706を実行する。
 S703で、CPU21は、Tier容量予約処理(図8)を実行する。S704で、CPU21は、必要なTier容量の予約に成功したかを判断する。成功していれば(Yes)、CPU21はS705を、失敗していれば(No)、プール容量を予約するためS706を実行する。S705で、CPU21は、Tier容量予約実施の完了結果をコールルーチンに返却し、処理を終了しS503に処理を戻す。
 S706で、CPU21は、プール容量予約処理(図9)を実行する。S707で、CPU21は、必要なプール容量の予約に成功したかを判断する。成功していれば(Yes)、CPU21はS705を、失敗していれば(No)、S708を実行する。S708で、CPU21は、Tier容量及びプール容量の予約が未実施に終わった結果をコールルーチンに返却して処理を終了する。
 <Tier容量予約処理>
 図8は、Tier容量予約処理を示すフローチャート図である。
 S801で、CPU21は、仮想VOLの割当優先Tierの番号を予めメモリ22に格納しておいた装置構成情報から取得する。例えば、割当優先TierをTier2(i=2)とする。S802で、CPU21は、同じく、Tier予約済容量(Ri=R2)をプール容量管理テーブル40から取得する。S803で、CPU21は、Tier割当済容量(Ai=A2)をプール容量管理テーブル40から取得する。そして、DTプールの計算式4032に従い、U2(=R2+A2)を求める。
 S804で、CPU21は、Tier予約閾値(RTi=RT2)をプール容量管理テーブル40から取得する。S805で、CPU21は、プール予約済容量(RP)をプール容量管理テーブル40から取得する。
 S806で、CPU21は、取得したプール予約済容量(RP)に必要な予約ページ容量を加算した容量が、プール容量管理テーブル40のプール予約可能容量(RAP)以下であるかを判断する。なお、プール予約可能容量(RAP)は、プール容量管理テーブル40から各Tierの空き容量Fi(i=1から3)の合計からプール予約済容量(RP)を減算した容量である。以下である場合(S806でYes)、CPU21はS807を、以下でない場合(No)、S811を実行する。
 S807で、CPU21は、算出したTierの使用容量(U2)に必要な予約ページ容量を加算した容量が、Tier2の容量(TC2)*Tier予約閾値(RT2)で算出された予約容量閾値以下であるかを判断する。以下であれば(Yes)、CPU21はS808を、以下でなければ(No)、S811を実行する。
 S808で、CPU21は、Tier予約済容量(R2)に、確保した予約ページ容量を加算する。S809で、CPU21は、仮想VOLへの予約情報設定処理(図10)を実行する。CPU21は、S810でTier容量予約実施の完了結果を返却し、S811でTier容量予約の未実施結果を返却し、Tier容量予約処理を終了し処理をコールルーチンに戻す。
 <プール容量予約処理>
 図9は、プール容量予約処理を示すフローチャート図である。処理S901からS906まではS801からS806までと、処理S910はS810と、処理S911はS811と同じである。CPU21は、S908で取得したプール予約済容量(RP)に必要な予約ページ容量を加算し、S909で仮想VOLへの予約情報設定処理を実行する。
 <仮想VOLに予約情報設定処理>
 図10は、仮想VOLへの予約情報設定処理を示すフローチャート図である。
 S1001で、CPU21は、処理S601のように事前割当コマンド50のアドレス範囲を算出する。S1002で、CPU21は、仮想VOLマッピング情報テーブル30のページ#301とページ状態302を取得する。S1003で、CPU21は、当該ページのページ状態302は“未割当”であるかを判断する。“未割当”であれば(Yes)、CPU21はS1004を、“未割当”でなければ(No)、S1009を実行する。
 S1004で、CPU21は、仮想VOLマッピング情報テーブル30のページ状態302に“予約済”と設定する。予約済と設定されたページは、他の仮想VOLで予約または割当を行うことができない。S1005で、CPU21は、Tier容量予約か判断する。Tier容量予約の場合(Yes)、CPU21はS1006を、プール容量予約の場合(No)、S1007を実行する。S1006で、CPU21は、仮想VOLマッピング情報テーブル30の予約Tier#303に予約できたTier番号を設定する。
 S1007で、CPU21は、事前割当コマンド50(オペコード501:0x42)のタイマ設定505でタイマ設定有りかを判断する。タイマ設定有り(タイマ設定505の設定が“1:有効”)であれば(Yes)、CPU21は、S1008を、有りでなければ(No)、S1009を実行する。S1008で、CPU21は、仮想VOLマッピング情報テーブル30の予約解除タイマ304に事前割当コマンド50のタイマ値506の情報を、タイマ超過時付随動作305にタイマ超過時付随動作507の情報を設定する。
 S1009で、CPU21は、事前割当コマンドのアドレス範囲での予約情報設定処理が完了したかを判断する。完了していなければ、次のアドレスに対し、CPU21はS1002以降の処理を繰り返し、完了していれば、予約ページ数取得処理を終了し、処理をコールルーチンに戻す。
 事前割当領域に対するページ割り当ては以上のように、事前割当コマンドに同期して割当を行わず、仮想VOLの未割当領域の容量分だけブロックストレージプールから実容量のTier容量ないしプール容量を予約し、他の仮想VOLへ当該予約ページを割当しないようにする。これにより、ブロックストレージプールの実容量割当のオーバヘッドを低減でき、応答性能を向上できる。
 <仮想VOLへのページ割当処理>
 図11は、仮想VOLへのページ状態302によりプールからどのページを割り当てるかを示した割当表である。割当表110は、プール/Tierのページ状態(空き/予約済/割当済)と状態の意味を示す符号1101と、仮想VOLマッピング情報テーブル30のページ状態302におけるページ割り当て可否1102を有する。
 プール/Tierのページ状態が“空き”であれば、仮想VOLマッピング情報テーブル30のページ状態302の“未割当”に割当が可能である。同じく、プール/Tierのページ状態が“予約済”であれば、ページ状態302の“予約済”に割当が可能である。
 <ページ割当処理>
 図12は、ページ割当処理を示すフローチャート図である。このページ割当処理は、ライト要求が仮想ボリュームの予約されたアドレス範囲内に対するものか否かを判定し、予約アドレス範囲内へのライトならブロックストレージプールの予約ページを割当て、予約範囲外へのライトならブロックストレージプールの予約されていない未割当ページを割り当てるものである。
 S1201で、CPU21は、NASサーバ4からのライトコマンドを受領する。S1202で、CPU21は、ライトコマンドが示すライト領域の情報を仮想VOLマッピング情報テーブル30から取得する。S1203で、CPU21は、ライトページのページ状態302は“未割当”であるかを判断する。“未割当”である場合(Yes:“空き”状態)、CPU21はS1206を、“未割当”でない場合(No:“割当済”または“予約済”状態)、S1204を実行する。
 S1204で、CPU21は、ページ状態302は“予約済”であるかを判断する。“予約済”でない場合(No:“割当済”状態)、CPU21はS1207を、“予約済”である場合(Yes)、S1205を実行する。S1205で、CPU21は、図13の予約ページ割当て処理を実行する。S1206で、CPU21は、図14の割当優先Tierからのページ割当処理を実行する。このS1203からS1206の処理が、前述の仮想ボリューム上のアドレス範囲に基づいて、プールから割当てるページ(予約ページか未割当ページ)を選択する処理である。
 S1207で、CPU21は、ページを割当できたかを判断する。割当ができた場合(Yes)、CPU21はS1208を、割当ができない場合(No)、S1209を実行する。S1208で、CPU21は、ライトが可能である旨をNASサーバ4に応答し、ライトデータを割当できたページに書き込む。S1209で、CPU21は、ライトが不可能である旨をNASサーバ4に応答する。
 <予約ページ割当処理>
 図13は、予約ページ割当処理を示すフローチャート図である。優先TierレベルをTier1(i=1)、予約TierレベルをTier2(i=2)とする。
 S1301で、CPU21は、仮想VOLはDT-VOLかどうかを判断する。DT-VOLであれば(Yes)、CPU21はS1302を、なければ(No)、S1306を実行する。S1302で、CPU21は、仮想VOLマッピング情報テーブル30を調べ、予約Tier#303にTierレベルが設定されているかを確認する。設定されていれば(Yes、Tier容量予約)、CPU21はS1303を実行し、設定されていなければ(No、プール容量予約)、S1306を実行する。
 S1303で、CPU21は、予約Tierからページを割り当てる。S1304で、CPU21は、プール容量管理テーブル40のTier予約済容量(R2)から割当ページ容量分を減算する。S1305で、CPU21は、Tier割当済容量(A2)に割り当てたページ容量分を加算する。
 S1306で、CPU21は、図14の割当優先Tierからのページ割当処理を実行する。S1307で、CPU21は、プール予約済容量(RP)からS1306での割当ページ容量を減算する。S1308で、CPU21は、プール割当済容量(AP)にS1303ないしS1306での割当ページ容量を加算する。S1309で、CPU21は、割当て実施の完了結果を返却して予約ページ割当処理を終了し、処理をコールルーチンに戻す。
 <割当優先Tierからのページ割当処理>
 図14は、割当優先Tierからのページ割当処理を示すフローチャート図である。優先TierレベルをTier1(i=1)と、Tier数を3(3階層)とし、また、優先Tier1から空き容量を確保してページ割当をできたものとする。
 S1401で、CPU21は、仮想VOLの割当優先Tier#を取得する。S1402で、CPU21は、処理するTier数(=3)を設定し、Tier1からTier3に対し処理S1403からS1405を実行するが、まず、優先Tier1の処理から実行する。S1403で、CPU21は、プール容量管理テーブル40から優先Tier1(指定Tier)の空き容量(Fi=F1)をプール容量管理テーブル40から取得する。
 S1404で、CPU21は、Tier1に空き容量が有るかを判断する。有る場合(Yes)、CPU21はS1408を、無い場合(No)、S1405を実行する。S1405で、CPU21は、次のTierを選択する。S1406で、CPU21は、Tier数分の処理を完了したかを判断する。Tier1からTier3までの処理を完了していれば、CPU21はS1407を、完了していなければ、次のTierでS1403からS1405の処理を繰り返す。S1407で、CPU21は、Tier1からTier3までを調べても空き容量を確保してページ割当をできないと判断し、ページ割当の未実施結果を返却する。
 S1408で、CPU21は、空き容量を確保できた指定Tierからページ割当を実行する。S1409で、CPU21は、Tierの割当済容量(Ai=A1)に割当ページ容量を加算する。S1410で、CPU21は、Tierの空き容量(Fi=F1)から割当ページ容量を減算する。S1411で、CPU21は、ページ割り当て実施の完了結果を返却し、ページ割当処理を終了して、処理をコールルーチンに戻す。
 図12のページ割当処理から図14の割当優先Tierからのページ割当処理で、仮想VOLの事前割当領域(Tier容量予約ないしプール容量予約を行った領域)にライト要求が発生した場合、実記憶領域を割り当てることができる。
 <予約ページ解放>
 次に、図15から図17で、Tier容量予約ないしプール容量予約後一定時間経過しても仮想VOLボリュームへ割当てられない予約ページの解放処理を、ブロックストレージシステムの全仮想VOLの全予約ページに対して実行する例で説明する。
 <システム単位でのタイマ超過時付随動作>
 図15は、システム単位でのタイマ超過時付随動作処理を示すフローチャート図である。
 S1501で、CPU21は、S1502の処理を実行するため、ブロックストレージシステム1に作成された全仮想VOLを抽出し、そのVOL数を設定する。S1502で、CPU21は、VOL単位タイマ超過時の付随動作処理(図16)を実行する。S1503で、CPU21は、抽出したブロックストレージシステム1の全仮想VOLについてS1502の処理が完了したかを判断し、未完了時は次の仮想VOLへ処理S1502を実行し、完了時は処理を終了する。
 <VOL単位でのタイマ超過時付随動作>
 図16は、VOL単位でのタイマ超過時付随動作処理を示すフローチャート図である。図15の処理で抽出した全仮想VOLに本処理を実行する。
 S1601で、CPU21は、仮想VOLの全領域の全ページ数を設定する。S1602で、CPU21は、ページ単位タイマ超過時の付随動作処理(図17)を実行する。S1603で、CPU21は、仮想VOLの全領域のページについて処理を完了したかを判断し、未完了時は次のページへ処理S1602を実行し、完了時は処理を終了し、コールルーチンに処理を戻す。
 <ページ単位でのタイマ超過時付随動作>
 図17は、ページ単位でのタイマ超過時付随動作処理を示すフローチャート図である。図16の処理で抽出した全仮想ページに本処理を実行する。
 S1701で、CPU21は、仮想VOLマッピング情報テーブル30のページ状態302の情報を取得する。S1702で、CPU21は、ページ状態302は“予約済”であるかを判断する。“予約済”であれば(Yes)、CPU21はS1703を、なければ(No)、処理を終了しコールルーチンへ戻す。S1703で、CPU21は、仮想VOLマッピング情報テーブル30のタイマ超過時付随動作305に設定されている情報を取得する。
 S1704で、CPU21は、取得したタイマ超過時付随動作305の情報が“プール容量予約”であるかを判断する。“プール容量予約”であれば(Yes)、CPU21は、仮想ページの状態をTier容量予約からプール容量予約に変更するため、S1705の予約容量解放処理(図18)を実行しTier容量を解放し、S1706で新たにプール容量を予約する。“プール容量予約”でなければ(No)、予約Tier容量を解放するため、S1707を実行する。そして、ページ単位タイマ超過時の付随動作処理を終了し、コールルーチンに処理を戻す。タイマ超過時付随動作は、以上のようにTier容量予約ないしプール容量予約後一定時間経過しても仮想VOLボリュームへ割当てられない予約ページの解放を行うことができるので、ブロックストレージにおける記憶容量の効率的な使用を実現できる。
 <予約容量解放処理>
 図18は、予約容量解放処理を示すフローチャート図である。
 S1801で、CPU21は、仮想VOLマッピング情報テーブル30の予約Tier#303に情報(Tierレベルの値i、i=2とする)があるかを判断する。情報があれば(Yes)、CPU21はTier容量予約と判断してS1802のTier容量解放を実行する。一方、情報がなければ(No)、CPU21はプール容量予約と判断してS1804のプール容量解放を実行する。
 S1802で、CPU21は、仮想VOLマッピング情報テーブル30の予約Tier#303の情報を設定無し“-”に変更し、仮想ページに予約したTierのページを解放する。S1803で、CPU21は、Tierの予約済容量(R2)から解放したページ容量を減算する。S1804で、CPU21は、プールの予約済容量(RP)から解放したページ容量を減算する。S1805で、CPU21は、ホスト(NASサーバ4他)への予約変更通知を送信し、予約容量解放処理を終了し、コールルーチンへ処理を戻す。
 図15のシステム単位のタイマ超過時付随動作から図18の予約容量解放処理で、仮想VOLの事前割当領域(Tier容量予約ないしプール容量予約領域)で、設定時間が経過した予約領域での予約ページ解放/プール容量予約への変更/予約プール容量の解放を行うことで、予約容量を他の仮想VOLに振り分けて予約ないし割当が可能となる。そのため、記憶容量の使用効率を向上できる。
 <設定タイマの解除処理>
 図19は、設定タイマの解除処理を示すフローチャート図である。設定タイマの解除処理は、仮想VOLマッピング情報テーブル30に設定されたタイマ解除情報を無効とする処理である。S1901で、CPU21は、タイマ解除コマンド190を受領する。タイマ解除コマンド190は、オペコード1901(0xYY、YYの値は他のコマンドと重ならない値)、開始LBA1902、SBK数1903を有する。S1902で、CPU21は、開始LBA1902及びSBK数1903からタイマ解除コマンドの適用範囲を計算し設定する。また、開始LBA1902から先頭ページ番号を算出する。
 S1903で、CPU21は、仮想VOLマッピング情報テーブル30で、該当ページのページ状態302の情報を取得する。S1904で、CPU21は、ページ状態302は“予約済”であるかを判断する。“予約済”であれば(Yes)、CPU21はS1905を、なければ(No)、S1906を実行する。
 S1905で、CPU21は、仮想VOLマッピング情報テーブル30の予約解除タイマ304及びタイマ超過時付随動作305に“-”を設定し無効とする。S1906で、CPU21は、タイマ解除コマンドの適用範囲での処理を完了したかを判断し、未完了時はS1903以降の処理を繰り返し、完了時はタイマ解除処理を終了する。これにより、予約ページへのタイマ設定を解除できるので、解除設定した予約ページを継続的に予約することが可能となる。
(p2)課題2
 (p2-1)事前割当コマンドの発行順序が保証されない
 Spanのチャンク(NASプールの実記憶領域)は複数の仮想VOLを跨ぐことができる。そのため、NASサーバ4は1つのSpanに対し事前割当コマンドを、仮想VOLの順番(図1に示すChunkでP1、P2、P3)に跨り数分発行する必要がある。また、チャンクに対応する仮想VOLの全部のページ(P1からP3)に事前割当が成立しないとチャンクとして使用できない。
 例えば、P3の仮想VOL(LU3)への事前割当で容量枯渇になった場合、P1及びP2の仮想VOL(LU1/LU2)への事前割当は無意味な処理となりファイルシステムをアンマウントさせる要因となる。
 今、この課題(P2-1)の解決手段として、NASサーバ4のSpanへの事前割当がある。これは、NASサーバ4が、ブロックストレージシステム1のDKC2側プールの空き容量をチェックし十分な空き容量があると判断できたら、Spanへの事前割当コマンドを発行する。また、事前割当コマンド発行中に容量枯渇等でDKC2がチェック応答(NG返却)した場合は、事前割当済ページに対し割当解放コマンドでロールバック(解放)する。
 <Spanへの事前割当処理>
 図20は、Spanへの事前割当処理を示すフローチャート図である。
 S2001で、CPU21は、ユーザで指定されブロックストレージシステム1で受け付けたSpan用LUN(Logical Unit Number)の情報(LUN数、ボリューム容量等)を取得する。S2002で、CPU21は、取得したLUNの情報よりSpanを構成する領域を算出する。
 S2003で、CPU21は、RAID管理プログラム(RAIDグループやボリュームを管理するプログラム)でVOL情報をVOL情報取得処理(図21)で取得する。S2004で、CPU21は、取得したVOL情報で空き容量チェック処理(図22)を実行する。S2005で、CPU21は、空き容量チェックはOKかを判断する。OKであれば(Yes、容量充分)、CPU21はS2006を、OKでなければ(No、容量不足)、S2014を実行する。
 S2006で、CPU21は、処理するLUN数を設定する。S2007で、CPU21は、事前割当コマンド発行し、ページ予約処理(図5)を実行する。S2008で、CPU21は、返却されたコマンド結果はGoodであるかを判断する。Goodであれば(Yes)、CPU21は設定LUN数までS2007及びS2008の処理を行う(S2009)。S2010で、CPU21は、ユーザのホストへOKを応答し、Spanへの事前割当が正常に終了したことを通知する。
 S2011で、CPU21は、事前割当コマンドを発行したLUN数を設定し、S2012でLUNへ割当解放コマンド(事前割当コマンド50でAnchor Bit502を0:Unmapと設定)を発行し、予約されたページを解放する。そして、S2014で、CPU21はユーザのホストへNGを応答し、Spanへの事前割当が出来なかったことを通知する。
 <VOL情報取得処理> 
 図21は、VOL情報取得処理を示すフローチャート図である。CPU21は、S2001で取得したLUN数分、S2102からS2107の処理を実行し、Span用LUNのVOL情報を取得する。
 CPU21は、S2102でDKC#(DKC番号)を、S2103でLDEV#(LDEV番号)を、S2104で当該LDEVの全容量を、S2105で当該LDEVの割当済容量を、S2106で当該LDEVに関連するプール#(プール番号)を、S2107で当該プールの空き容量を取得する。以上の処理をLUN毎に実行し、各LUNでのVOL情報を取得する。
 <空き容量チェック処理>
 図22は、空き容量チェック処理を示すフローチャート図である。CPU21は、図21のVOL情報取得処理で取得したDKC数をS2201で、プール数をS2202で、LDEV数をS2203で設定し、累計未割当容量を0に初期化する。
 S2204で、CPU21は、LDEVの全容量から割当済容量を減算し、LDEVでの未割当容量を算出する。S2205で、CPU21は、累計未割当容量に未割当容量を加算する。この処理S2204及びS2205をLDEV数分繰り返して、累計未割当容量を求める。
 S2207で、CPU21は、S2107で取得したプール空き容量(FP)が累計未割当容量以上であるかを判断する。以上でなければ(No)、CPU21は容量不足と判断しメインルーチン(図20)にNGを返却する(S2211)。以上であれば(S2207でYes)、S2208で、CPU21は、プール数分完了したかを判断し、完了していなければ累計未割当容量を0に初期化してS2203からS2207の処理を再び実行する。S2209で、CPU21は、DKC数分完了したかを判断し、完了していなければ累計未割当容量を0に初期化してS2203からS2207の処理を再び実行する。全てのDKC及びプールで空き容量を確保できた場合、CPU21はS2210で、空き容量チェックがOKであったことを返却する。
 以上のように、事前割当コマンド発行前にプールの空き容量をチェックし、予約に必要な容量が確保できるかを事前割当コマンド発行前に確認することで、無用な事前割当コマンド発行を削減できる。
 (p2-2)NASサーバがコマンド発行済の領域情報を失った場合
 また、コマンドの発行順序に対してもコマンド発行途中でNASサーバ4が停電等で再起動した場合など、NASサーバ4がどこまでコマンドを発行したかが不明となる可能性がある。そうすると、事前割当した予約領域が不当に残り続けるので、予約領域の解放が必要である。
 上記課題(p2-2)の解決手段として、ブロックストレージシステム1による事前割当ページの自動解放がある。これは、NASサーバ4がSpanへの事前割当コマンドを発行する際に、事前割当コマンド50のタイマ設定505を“1:有効”、予約解除タイマ506を所定値(例えば、日時である1/30(1月30日))に、タイマ超過時付随動作507のビットを“0:予約解放”と設定しておく。そして、NASサーバ4からタイマ値506での設定日時までにタイマ解除コマンド190が、ブロックストレージシステム1へ発行されない場合はDKC2が自動的にTier容量予約やプール容量予約による容量を解放する。なお、日時の代わりに所定時間を設定し、設定後の所定時間経過してもタイマ解除コマンド190がされなければTier容量予約やプール容量予約による容量を解放することもできる。
 <事前割当ページの自動解放処理>
 図23は、事前割当ページの自動解放処理を示すフローチャート図である。S2301からS2309までの処理はS2001からS2009までの処理と同等であり、相違点はS2307の事前割当コマンド50を、タイマ超過時に自動で予約ページを解放するよう設定しておく点である。
 CPU21は、S2309の事前割当コマンド50の発行完了後からブロックストレージシステム1へのタイマ解除コマンド190が発行されたかを監視する。タイマ解除コマンド190が発行されない場合は、DKC2のCPU21はS2311で、タイマ解除コマンド190を、事前割当コマンド50が発行された領域の全てに発行し予約されたページを解放する。
 このように、所定時間内にNASサーバよりタイマ解除コマンド190が発行されない場合でも、ブロックストレージシステム1のDKC2が自動的に予約ページを解放することで、不当に残った予約容量を解放できるので効率的な記憶領域の使用が可能となる。
(p3)課題3
 (p3-1)外接VOLでの容量不足
 外接VOLをプールとしてブロックストレージプールに含む構成において、外接VOLがDPの仮想VOLであったとすると、事前割当コマンドによる容量予約は可能である。しかしながら、実際にライトIOを実行する場合に、外接VOLのプールが満杯でライトできない可能性がある。その課題を図24で説明する。図24は、外接プールVOLへの事前割当での課題を示す図である。
 これは、ブロックストレージシステム1に接続している外部ブロックストレージシステム6に100GBの仮想VOL61が作成され、その仮想VOL61へは、40GBの外部ブロックストレージシステムのブロックストレージプール62が割当可能であったとする。その仮想VOL61がブロックストレージシステム1のブロックストレージプール12に割り当てられていると、例えば50GBの事前割当(仮想VOL11の容量分)は可能である。しかしながら、実際に、NASサーバ4からDKC#0 2経由DKC#1 7へライトが可能な容量は40GBであるので、40GBを超えるライトは外部ブロックストレージシステム6のブロックストレージプールが満杯なので不可能となる。そのため、事前割当コマンドによる予約された容量は、割り当てたら必ず書込める必要がある。
 そこで、外接VOLをブロックストレージシステム1のプールへ追加する際、事前割当コマンドで確保できた容量だけをプールVOL容量として登録する。これにより、上記課題(p3-1)を解決できる。
<外接プールVOLへの事前ページ割当処理>
 図25は、外接プールVOLへの事前ページ割当処理を示すフローチャート図である。
 S2501で、CPU21は、RAID管理プログラムで、外接VOLのプール情報を取得する(図26)。そして、予約ページ数を0に初期化する。CPU21は、S2501で取得した外接VOL容量のページ数分、S2502からS2507の処理を実行する。S2503で、CPU21は、取得したプール使用容量に1ページの容量を加算した容量が、S2501で取得したプール容量に、同じく取得したプール閾値を乗算した容量以下であるかを判断する。超える場合(No)、CPU21はS2508を、以下である場合(Yes)、S2504を実行する。
 CPU21は、S2504で事前割当コマンドを発行し、S2505で応答はGoodであるかを判断する。Goodであれば(Yes)、CPU21はS2506で予約ページ数に1ページを加算するとともに、外接VOLのプール使用容量に1ページ分の容量を加算する。S2507で、CPU21は、外接VOLの容量に相当するページ数分の処理が完了したかを判断し完了していない場合は、S2503以降の処理を繰り返す。そして、CPU21は、S2508で確保できた予約ページ数に相当する容量をプールVOL容量とし、S2509で外接VOLをプールVOLとして追加登録し処理を終了する。
<外接VOL情報取得処理>
 図26は、外接VOL情報取得処理を示すフローチャート図である。S2601及びS2602の処理はS2103及びS2104の処理と、S2603はS2106の処理と同じである。CPU21は、S2604でプール容量を、S2605でプール使用容量を、S2606でプール閾値を取得する。
 以上のように、外接VOLをブロックストレージシステム1のプールへ追加する際、事前割当コマンドで確保できた容量だけをプールVOL容量として登録することで、事前割り当て領域に対する実際のライトが行えないという課題を解決できる。
 なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
 また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置いてもよい。また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
 1:ブロックストレージシステム、2:ストレージコントローラ(DKC)、3:ディスクユニット、4:NASサーバ、10:計算機システム、21:CPU、30:仮想VOLマッピング情報テーブル、40:プール容量管理テーブル、50:事前割当コマンド、190:タイマ解除コマンド、505:タイマ指定、506:タイマ値、507:タイマ超過時付随動作

Claims (18)

  1.  複数の記憶媒体と、仮想ボリュームを提供するストレージコントローラと、を有するストレージ装置と、
     前記ストレージ装置から提供される前記仮想ボリュームに対して書き込み/読み出し要求を行うサーバと、
    を備え、
     前記ストレージコントローラは、
     前記複数の記憶媒体のそれぞれを複数の実記憶領域に区切り、前記複数の実記憶領域を有するブロックストレージプールを構成し、
     前記サーバから、前記仮想ボリュームの特定のアドレス範囲に対する容量予約の要求を受けると、前記仮想ボリュームの特定のアドレス範囲に対して、前記ブロックストレージプールの容量として所定数の実記憶領域を予約し、
     前記サーバから前記仮想ボリュームへの書き込み要求が、前記特定のアドレス範囲に対するものである場合は、前記予約した実記憶領域から所定の実記憶領域を割り当て、前記特定のアドレス範囲以外に対するものである場合は前記ブロックストレージプールで予約されていない容量から実記憶領域を割り当てる
     ことを特徴とする計算機システム。
  2.  請求項1記載の計算機システムにおいて、
     前記ブロックストレージプールは階層毎に予約容量閾値が設定される複数の記憶階層を有し、
     前記所定数の実記憶領域を予約する階層での予約容量が予約容量閾値を超える場合は、当該階層以外の階層の容量を予約する
     ことを特徴とする計算機システム。
  3.  請求項1記載の計算機システムにおいて、
    前記所定数の実記憶領域が予約された時点から一定時間を経過するか、ないし所定時刻に到達しても当該所定数の実記憶領域が前記仮想ボリュームの特定のアドレス範囲へ割当てられなければ、予約した容量を解放する
     ことを特徴とする計算機システム。
  4.  請求項2記載の計算機システムにおいて、
    前記所定数の実記憶領域へ容量が予約された時点から一定時間を経過するか、ないし所定時刻に到達しても当該所定数の実記憶領域が前記仮想ボリュームの特定のアドレス範囲割当てられなければ、階層容量予約からプール容量予約へ切り替える
     ことを特徴とする計算機システム。
  5.  請求項1記載の計算機システムにおいて、前記ストレージ装置に複数の記憶媒体を有する外部ストレージ装置が接続され、
     前記外部ストレージ装置は、前記記憶媒体から外部ブロックストレージプールを構成し、当該外部ブロックストレージプールが割り当てられる外部仮想ボリュームを前記ブロックストレージプールに外部ボリュームとして提供し、
     前記外部ボリュームに予約コマンドを発行して予約可能容量を取得し、当該予約可能容量での外部ボリュームとして前記ブロックストレージプールに登録する
     ことを特徴とする計算機システム。
  6.  請求項1記載の計算機システムにおいて、前記サーバはファイルシステムを制御するNASサーバで、前記NASサーバは、前記ストレージ装置から提供される仮想ボリュームを複数纏めてNASプールとして管理して前記ファイルシステムに提供する
     ことを特徴とする計算機システム。
  7.  請求項6記載の計算機システムにおいて、前記所定数の実記憶領域を複数の仮想ボリュームに跨って構成する場合、前記NASサーバは前記仮想ボリューム毎に容量を予約する予約コマンドを発行し、当該所定数の実記憶領域単位で容量の予約を行う
     ことを特徴とする計算機システム。
  8.  請求項7記載の計算機システムにおいて、前記複数の仮想ボリュームのいずれかへの予約コマンドで容量の予約が出来ない場合は、前記所定数の実記憶領域に予約できた容量を解放する
     ことを特徴とする計算機システム。
  9.  請求項7記載の計算機システムにおいて、前記複数の仮想ボリュームへの予約コマンド全てが完了しない場合は、前記所定数の実記憶領域に予約できた容量を解放する
     ことを特徴とする計算機システム。
  10.  複数の記憶媒体と、仮想ボリュームを提供するストレージコントローラと、を有するストレージ装置と、
     前記ストレージ装置から提供される前記仮想ボリュームに対して書き込み/読み出し要求を行うサーバと、
    を備え、
     前記ストレージコントローラは、
     前記複数の記憶媒体のそれぞれを複数の実記憶領域に区切り、前記複数の実記憶領域を有するブロックストレージプールを構成し、
     前記サーバから、前記仮想ボリュームの特定のアドレス範囲に対する容量予約の要求を受けると、前記仮想ボリュームの特定のアドレス範囲に対して、前記ブロックストレージプールの容量として所定数の実記憶領域を予約し、
     前記サーバから前記仮想ボリュームへの書き込み要求が、前記特定のアドレス範囲に対するものである場合は、前記予約した実記憶領域から所定の実記憶領域を割り当て、前記特定のアドレス範囲以外に対するものである場合は前記ブロックストレージプールで予約されていない容量から実記憶領域を割り当てる
     ことを特徴とする計算機システムの制御方法。
  11.  請求項10記載の計算機システムの制御方法において、
     前記ブロックストレージプールは階層毎に予約容量閾値が設定される複数の記憶階層を有し、
     前記所定数の実記憶領域の容量を予約する階層での予約容量が予約容量閾値を超える場合は、当該階層以外の階層の容量を予約する
     ことを特徴とする計算機システムの制御方法。
  12.  請求項10記載の計算機システムの制御方法において、前記所定数の実記憶領域へ容量が予約された時点から一定時間を経過するか、ないし所定時刻に到達しても当該所定数の実記憶領域が前記仮想ボリュームの特定のアドレス範囲へ割当てられなければ、予約した容量を解放する
     ことを特徴とする計算機システムの制御方法。
  13.  請求項11記載の計算機システムの制御方法において、前記所定数の実記憶領域へ容量が予約された時点から一定時間を経過するか、ないし所定時刻に到達しても当該所定数の実記憶領域が前記仮想ボリュームの特定のアドレス範囲割当てられなければ、階層容量予約からプール容量予約へ切り替える
     ことを特徴とする計算機システムの制御方法。
  14.  請求項10記載の計算機システムの制御方法において、前記ストレージ装置に複数の記憶媒体を有する外部ストレージ装置が接続され、
     前記外部ストレージ装置は、前記記憶媒体から外部ブロックストレージプールを構成し、当該外部ブロックストレージプールが割り当てられる外部仮想ボリュームを前記ブロックストレージプールに外部ボリュームとして提供し、
     前記外部ボリュームに事前割り当てコマンドを発行して予約可能容量を取得し、当該予約可能容量での外部ボリュームとして前記ブロックストレージプールに登録する
     ことを特徴とする計算機システムの制御方法。
  15.  請求項10記載の計算機システムの制御方法において、前記サーバはファイルシステムを制御するNASサーバで、前記NASサーバは、前記ストレージ装置から提供される仮想ボリュームを複数纏めてNASプールとして管理して前記ファイルシステムに提供する
     ことを特徴とする計算機システムの制御方法。
  16.  請求項15記載の計算機システムの制御方法において、前記所定数の実記憶領域を複数の仮想ボリュームに跨って構成する場合、前記NASサーバは前記仮想ボリューム毎に容量を予約する予約コマンドを発行し、当該所定数の実記憶領域単位で容量の予約を行う
     ことを特徴とする計算機システムの制御方法。
  17.  請求項16記載の計算機システムの制御方法において、前記複数の仮想ボリュームのいずれかへの予約コマンドで容量の予約が出来ない場合は、前記所定数の実記憶領域に予約できた容量を解放する
     ことを特徴とする計算機システムの制御方法。
  18.  請求項16記載の計算機システムの制御方法において、前記複数の仮想ボリュームへの予約コマンド全てが完了しない場合は、前記所定数の実記憶領域に予約できた容量を解放する
     ことを特徴とする計算機システムの制御方法。
PCT/JP2013/079251 2013-10-29 2013-10-29 計算機システム及び制御方法 WO2015063859A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/JP2013/079251 WO2015063859A1 (ja) 2013-10-29 2013-10-29 計算機システム及び制御方法
US14/768,165 US20160004460A1 (en) 2013-10-29 2013-10-29 Computer system and control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/079251 WO2015063859A1 (ja) 2013-10-29 2013-10-29 計算機システム及び制御方法

Publications (1)

Publication Number Publication Date
WO2015063859A1 true WO2015063859A1 (ja) 2015-05-07

Family

ID=53003510

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/079251 WO2015063859A1 (ja) 2013-10-29 2013-10-29 計算機システム及び制御方法

Country Status (2)

Country Link
US (1) US20160004460A1 (ja)
WO (1) WO2015063859A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10433288B2 (en) * 2014-12-31 2019-10-01 Lg Electronics Inc. Uplink control information transmitting method and user equipment, and uplink control information receiving method and base station
JP2019067251A (ja) * 2017-10-03 2019-04-25 株式会社日立製作所 計算機システム及び通信経路の制御方法
JP6851350B2 (ja) * 2018-08-30 2021-03-31 株式会社日立製作所 ストレージシステム及び記憶制御方法
US10972539B2 (en) * 2019-01-31 2021-04-06 Walmart Apollo, Llc Methods and apparatus for determining block storage status
US11775174B1 (en) * 2019-10-11 2023-10-03 Amzetta Technologies, Llc Systems and methods of data migration in a tiered storage system based on volume priority category
CN112083886B (zh) * 2020-09-09 2022-11-25 杭州海康威视系统技术有限公司 一种nas设备的存储管理方法、系统及装置
CN116192806A (zh) * 2023-01-13 2023-05-30 北京信而泰科技股份有限公司 一种基于测试仪的ip分配方法、系统、终端及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007094505A (ja) * 2005-09-27 2007-04-12 Hitachi Ltd データ処理システム及びデータ管理方法並びにストレージシステム
JP2008134712A (ja) * 2006-11-27 2008-06-12 Hitachi Ltd ファイル共有システム、ファイル共有装置及びファイル共有用ボリュームの移行方法
JP2010282608A (ja) * 2009-06-03 2010-12-16 Hitachi Ltd 動的チャンク割り当て機能を有するデータストレージシステムに於けるデータボリューム生成を制御するための方法及び装置
US20120096165A1 (en) * 2010-10-18 2012-04-19 International Business Machines Corporation Reallocating resource capacity among resource pools in a cloud computing environment
WO2012081074A1 (ja) * 2010-12-13 2012-06-21 株式会社日立製作所 計算機システム、及びその管理方法、並びに、プログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2858795B2 (ja) * 1989-07-14 1999-02-17 株式会社日立製作所 実記憶割り当て方法
US5768623A (en) * 1995-09-19 1998-06-16 International Business Machines Corporation System and method for sharing multiple storage arrays by dedicating adapters as primary controller and secondary controller for arrays reside in different host computers
US8560671B1 (en) * 2003-10-23 2013-10-15 Netapp, Inc. Systems and methods for path-based management of virtual servers in storage network environments
JP5192932B2 (ja) * 2008-07-23 2013-05-08 株式会社日立製作所 ストレージシステム内の論理ユニットを論理ボリュームに割り当てる方法及び記憶制御装置
KR101222129B1 (ko) * 2008-12-22 2013-01-15 한국전자통신연구원 메타데이터 서버 및 메타데이터 서버의 디스크볼륨 선정 방법
US20110320754A1 (en) * 2010-02-23 2011-12-29 Hitachi, Ltd Management system for storage system and method for managing storage system
US9563555B2 (en) * 2011-03-18 2017-02-07 Sandisk Technologies Llc Systems and methods for storage allocation

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007094505A (ja) * 2005-09-27 2007-04-12 Hitachi Ltd データ処理システム及びデータ管理方法並びにストレージシステム
JP2008134712A (ja) * 2006-11-27 2008-06-12 Hitachi Ltd ファイル共有システム、ファイル共有装置及びファイル共有用ボリュームの移行方法
JP2010282608A (ja) * 2009-06-03 2010-12-16 Hitachi Ltd 動的チャンク割り当て機能を有するデータストレージシステムに於けるデータボリューム生成を制御するための方法及び装置
US20120096165A1 (en) * 2010-10-18 2012-04-19 International Business Machines Corporation Reallocating resource capacity among resource pools in a cloud computing environment
WO2012081074A1 (ja) * 2010-12-13 2012-06-21 株式会社日立製作所 計算機システム、及びその管理方法、並びに、プログラム

Also Published As

Publication number Publication date
US20160004460A1 (en) 2016-01-07

Similar Documents

Publication Publication Date Title
WO2015063859A1 (ja) 計算機システム及び制御方法
JP4806556B2 (ja) ストレージシステム及び構成変更方法
JP5749803B2 (ja) 情報記憶システム及びストレージシステム管理方法
US8984221B2 (en) Method for assigning storage area and computer system using the same
JP5981563B2 (ja) 情報記憶システム及び情報記憶システムの制御方法
US8549247B2 (en) Storage system, management method of the storage system, and program
JP5303066B2 (ja) プールに関連付けられる仮想ボリュームの総容量を制限する方法及びストレージ装置
WO2011104741A1 (en) Management system for storage system and method for managing storage system
JP5073259B2 (ja) 仮想化システム及び領域割当て制御方法
GB2496807B (en) Computer system, management method of the computer system, and program
JP2013114624A (ja) ストレージシステム及びプール容量縮小の制御方法
JPWO2011135635A1 (ja) 計算機システム及びその記憶制御方法
JP2007140728A (ja) 記憶装置システム及び記憶制御方法
JP6206161B2 (ja) ストレージ制御装置、制御方法、および制御プログラム
CN103761053A (zh) 一种数据处理方法和装置
WO2014013524A1 (en) Storage system and storage control method
WO2014013527A1 (en) Storage system including multiple storage apparatuses and pool virtualization method
WO2015198441A1 (ja) 計算機システム、管理計算機、および管理方法
JP2020052919A (ja) ストレージ装置、管理方法及びプログラム
WO2016139787A1 (ja) ストレージシステム及びデータ書込み制御方法
WO2013061368A1 (en) Storage apparatus and method of controlling storage apparatus
WO2015056332A1 (ja) ストレージ装置及び制御方法
JP6019169B2 (ja) 情報記憶システム
JP2015111460A (ja) 管理計算機、計算機システム、及び管理方法
WO2017085870A1 (ja) 計算機システム

Legal Events

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

Ref document number: 13896780

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 14768165

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13896780

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP