WO2011135617A1 - プールに関連付けられる仮想ボリュームの総容量を制限する方法及びストレージ装置 - Google Patents
プールに関連付けられる仮想ボリュームの総容量を制限する方法及びストレージ装置 Download PDFInfo
- Publication number
- WO2011135617A1 WO2011135617A1 PCT/JP2010/003018 JP2010003018W WO2011135617A1 WO 2011135617 A1 WO2011135617 A1 WO 2011135617A1 JP 2010003018 W JP2010003018 W JP 2010003018W WO 2011135617 A1 WO2011135617 A1 WO 2011135617A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- pool
- status
- virtual
- capacity
- real
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
Definitions
- the present invention relates to memory control according to Thin Provisioning.
- the storage apparatus generally provides a virtual logical volume (hereinafter referred to as a virtual volume) composed of a plurality of virtual pages, and has a pool composed of a plurality of real pages.
- a virtual volume composed of a plurality of virtual pages
- the storage apparatus allocates a real page from the pool to a write destination virtual page, and writes data to be written to the allocated real page.
- a virtual page is a virtual storage area
- a real page is a substantial storage area.
- Patent Documents 1 and 2 are known as technologies related to this type of storage device.
- Patent Document 1 if the number of real pages is zero, a physical storage device is added, and a logical disk is newly generated based on the physical storage device. By dividing the logical disk, a real page that can be allocated is newly generated.
- the capacity of the virtual volume is determined regardless of the pool capacity. In general, the total capacity of one or more virtual volumes is larger than the total capacity of one or more pools.
- an object of the present invention is to prevent a shortage of real pages that can be allocated.
- a first status that means it has been initialized and can be assigned to a virtual page
- a second status that means that it has been assigned to a virtual page
- a third status that means that initialization is not possible because it cannot be assigned to a virtual page and a predetermined data is written.
- the storage controller receives a write command for an unallocated virtual page in the virtual volume from a host (for example, a physical or virtual computer), and executes the first status from the pool with which the virtual volume is associated. Assign a page and change the status of the real page to the second status.
- a host for example, a physical or virtual computer
- the storage control device changes the status of the real page assigned to the virtual page to the third status at a certain timing.
- the storage control device initializes the real page of the third status, and when the initialization is completed, changes the status of the real page to the first status.
- the storage control device restricts the total virtual volume capacity, which is the total capacity of one or more virtual volumes associated with the pool, to be equal to or less than the capacity of the pool based on whether the pool has a real page with the third status. .
- the storage control device may be a controller included in the storage device, or a device that relays communication between the storage device and the host (for example, a server device or an intelligent switch device).
- Example 1 shows a configuration of a storage apparatus according to Embodiment 1 of the present invention.
- the relationship between various storage areas in the storage apparatus 101 is shown.
- FIG. 5A shows the control program 551.
- FIG. 5B shows management information stored in the shared memory (SM) 309. Indicates the relationship between various information in the management information.
- FIG. 7A shows the VOL management table 501.
- FIG. 7B shows the mapping table 503.
- FIG. 8A shows the free queue 505.
- FIG. 8B shows the deletion queue 509.
- FIG. 9A shows page information 701.
- FIG. 9B shows the pool management table 504. The flow of processing when starting the control program 551 is shown.
- FIG. 12A shows the VVOL list 1211.
- FIG. 12B shows the pool list 1221.
- the flow of VVOL association is shown.
- the flow of a VVOL capacity check is shown.
- the flow of zero writing check is shown.
- the flow of VVOL association cancellation is shown.
- the flow of zero writing processing is shown.
- the flow of calculating the deletion capacity is shown.
- a pool list 1901 is shown.
- the flow of expansion of VVOL capacity is shown. A comparison is made between the difference between the number of real pages 5043 in the target pool and the number of zero-written pages in the target pool, and the sum of the total number of virtual pages 5047 in the target pool and the number of virtual pages for the expanded capacity.
- FIG. 12A shows the VVOL list 1211.
- FIG. 12B shows the pool list 1221.
- the flow of VVOL association is shown.
- the flow of zero writing check is shown.
- the flow of VVOL association cancellation is shown.
- the flow of zero writing processing is
- FIG. 22A shows processing performed in Embodiment 2 of the present invention.
- FIG. 22B shows processing performed in Embodiment 3 of the present invention.
- the flow of the process performed in Example 4 of this invention is shown.
- 10 shows a flow of zero writing processing according to Embodiment 5 of the present invention.
- FIG. 25A shows an example of a situation before copying between VVOLs according to the sixth embodiment of the present invention.
- FIG. 25B shows that copying between VVOLs is performed after the status of the real page assigned to the secondary VVOL is changed.
- FIG. 25C shows a situation after the completion of inter-VVOL copy.
- a tier management table 506 is shown.
- xxx table or “xxx list”
- various types of information may be described using the expression “xxx table” or “xxx list”, but the various types of information may be expressed using a data structure other than the table and the list.
- the “xxx table” and “xxx list” can be referred to as “xxx information” to indicate that they are not dependent on the data structure.
- numbers are used as identification information for various objects, but types of identification information other than numbers (for example, identifiers including alphabetic characters and codes) can also be used.
- the process may be described using “program” as a subject.
- the program is executed by a processor (for example, a CPU (Central Processing Unit)), so that a predetermined processing is appropriately performed.
- a processor for example, a CPU (Central Processing Unit)
- the subject of processing may be a processor.
- the processing described with the program as the subject may be processing performed by the storage device or the storage control device.
- the processor may include a hardware circuit that performs part or all of the processing performed by the processor.
- the computer program may be installed on each computer from a program source.
- the program source may be, for example, a program distribution server or a storage medium.
- VOL a logical volume
- VVOL a virtual logical volume
- the target P having the number xx when expressed, it may be expressed as “P # xx”.
- a VVOL with a VOL number of 01 may be expressed as “VVOL # 01”.
- a virtual page and a real page have the same capacity (size), and therefore one real page is allocated to one virtual page.
- the present invention is not limited to this, and a plurality of real pages may be assigned to one virtual page, or one real page may be assigned to a plurality of virtual pages.
- the capacity (size) of the virtual page and the capacity of the real page are fixed, but may be variable.
- FIG. 1 shows an outline according to Embodiment 1 of the present invention.
- the storage device restricts the total capacity of the VVOL 111 that can be associated with the pool 113 to be equal to or less than the capacity of the pool 113.
- the capacity of the pool # 01 is 100 GB (gigabytes).
- the total capacity of one or more VVOLs associated with the pool 113 is referred to as “total VVOL capacity” for the pool 113.
- the storage apparatus limits the total capacity of the VVOL 111 that can be associated with the pool 113 to be equal to or less than the capacity of the pool 113. At that time, the storage apparatus considers the status of the real pages constituting the pool 113. In this embodiment, the status of the real page is one of “free”, “allocated”, and “writing zero”.
- Fig. 2 shows the status of the real page and the flow of the status transition.
- Free means that a real page is not assigned to a virtual page, and the real page can be assigned to a virtual page.
- the values of all the bits in the free real page are “0”. That is, a free real page is a real page that has been initialized (zero-written).
- “Assigned” means that the real page has already been assigned to any virtual page, and therefore the real page cannot be assigned.
- Zero writing means that the value of all bits in the real page should be “0” (for example, while the bit value “0” is being written from the beginning to the end of the real page). means. The real page being written zero is not allocated to the virtual page and cannot be allocated.
- the flow of the status change of the real page is as follows, for example.
- the storage apparatus allocates a free real page # 1 to the unallocated virtual page for writing to the unallocated virtual page.
- the storage apparatus changes the status of the real page # 1 from “free” to “allocated”.
- Data to be written is written to all or a part of the real page # 1.
- the data to be written is 4-bit data, and all four bit values are “1”.
- the storage apparatus changes the status of the real page # 1 from “allocated” to “writing zero”.
- the transition is that a predetermined event corresponding to the fact that the data in the real page # 1 is unnecessary (for example, the association with the pool # 01 of the VVOL including the virtual page to which the real page # 1 is allocated is released) )).
- the storage apparatus When the status of the real page # 1 is changed to “writing zero”, the storage apparatus writes zero to the real page # 1, thereby setting all the bit values in the real page # to “0”. Update. Specifically, the storage apparatus may write the bit value “0” in the entire area of the real page # 1, or may update only the bit value “1” in the real page # 1 to “0”. . (According to FIG. 2, “0” is being written to the real page # 1). The start timing of zero writing may be immediately after the status transitions to “writing zero”, or may be any timing after the status transits to “writing zero”.
- the transition indicated by arrow 211 is also possible. That is, the storage apparatus searches for an “allocated” zero page regularly or irregularly. When the storage device finds the “allocated” zero page # 2, as indicated by the arrow 211, the status of the zero page # 2 is not changed from “allocated” to “zero writing”. Transition to “Free”. This is because the real page # 2 is already a zero page, and it is not necessary to perform zero writing.
- the “unallocated virtual page” is a virtual page to which no real page is allocated.
- a virtual page to which a real page is not allocated substantially for example, a predetermined page It may be a virtual page to which a predetermined real page in which data is written (for example, a predetermined zero page) is allocated.
- the predetermined real page may be common to a plurality of unallocated virtual pages. In the case of writing to an unassigned virtual page, a free real page may be assigned to the virtual page instead of a predetermined real page.
- the “free” real page and the “allocated” real page contribute to the VVOL 111. This is because a “free” real page can be assigned to an unassigned virtual page in the VVOL 111, and a “assigned” real page is data (data used by the host device) for the virtual page to which the real page is assigned. ) Is stored.
- the storage apparatus restricts the total capacity of the VVOL 111 that can be associated with the pool 113 to be equal to or less than the capacity of the pool 113 based on whether the status of the real page in the pool 113 is “writing zero”.
- FIG. 3 shows a configuration of the storage apparatus according to the first embodiment of the present invention.
- One or more hosts 351 and the storage apparatus 101 are connected to the communication network 361.
- the host 351 is a physical or virtual device (for example, a computer).
- the host 351 transmits an access command having access destination information.
- the access command is a write command or a read command.
- the access destination information includes information indicating the access destination, for example, identification information associated with the VVOL 111 of the access destination (for example, LUN (Logical Unit Unit Number)) and an address belonging to the address range of the virtual page of the access destination (for example, LBA ( Logical Block Address)).
- the storage apparatus 101 has a physical storage device group, a controller 131, and an SVP (Service Processor) 311.
- SVP Service Processor
- the physical storage device group is a set of a plurality of physical storage devices (hereinafter referred to as PDEV) 371 (for example, HDD (Hard Disk Disk Drive) or flash memory device (for example, SSD (Solid Disk State Drive)).
- PDEV physical storage devices
- HDD Hard Disk Disk Drive
- flash memory device for example, SSD (Solid Disk State Drive)
- RAID Redundant Array of Independent (or Inexpensive) Disks
- the RAID group 375 is composed of two or more PDEVs 371, and stores data at a predetermined RAID level.
- the pool 113 is based on the storage space of the RAID group 375.
- the pool 113 is a set of one or more real volumes (substantial logical volumes based on one or more RAID groups 375), for example.
- the real volume may be divided into two or more real pages 191.
- the controller 131 includes a communication interface with the host 351, a communication interface with the PDEV 371, a memory, and a processor connected thereto.
- the controller 131 includes a CHA 301, a DKA 303, a cache memory (hereinafter referred to as CM) 307, a shared memory (hereinafter referred to as SM) 309, and a switch device (hereinafter referred to as SW) 305.
- the number of these elements is one or more.
- the CHA 301 is a communication interface device with the host 351.
- the CHA 301 has a port 302 and an MP (Micro Processor) 20.
- the number of these elements is one or more.
- the MP 20 processes a command from the host 351. For example, the MP 20 writes the write target data in the CM 307 in response to the write command received from the host 351 via the port 302.
- the DKA 303 is a communication interface device with the PDEV 371.
- the DKA 303 has one or more MP (Micro Processor) 30.
- the MP 30 controls data input / output with respect to the PDEV 371. For example, the MP 30 writes the write target data stored in the CM 307 to the RAID group 375 based on the real page to which the data is written.
- CM 307 is a memory shared by a plurality of MPs 20 and 30, and temporarily stores data input / output to / from the PDEV group.
- SM 309 is a memory shared by a plurality of MPs 20 and 30, and stores management information.
- CM 307 and SM 309 may be integrated instead of separate memories. That is, one memory may have an area used as a CM and an area used as an SM.
- CHA301, DKA303, CM307, and SM309 are connected to SW305.
- the SW 305 is, for example, a cross bus switch, and switches the connection between these elements.
- the CHA 301, DKA 303, CM 307, and SM 309 may be connected to each other by a connection unit (for example, a bus) other than the SW 305.
- the SVP 311 is one or more computers (management computers) used for maintenance or management of the storage apparatus 101, and is connected to the MPs 20 and 30 through, for example, a LAN (Local Area Network).
- the SVP 311 may be outside the storage apparatus 101.
- the SVP 311 may be configured with an input / output console (for example, an input device and a display device) and a control console (for example, a control board such as a motherboard). Both consoles may be in the storage apparatus 101, or the control console may be in the storage apparatus 101 and the input / output console may be in a location away from the storage apparatus 101.
- FIG. 4 shows the relationship between various storage areas in the storage apparatus 101.
- one or more RGs (RAID groups) 375, one or more pools 113, and one or more VVOLs 111 are managed from the lower level to the higher level.
- One RG 375 is composed of the same type of PDEV.
- the PDEV type is defined by, for example, performance.
- the performance is, for example, the data access speed to the PDEV or the response time (the length of time from when the PDEV receives a command until it returns a response).
- RG # 00 is composed of a plurality of SSDs
- RG # 01 is composed of a plurality of HDD-SASs (Serial Attached SCSI)
- RG # 02 is a plurality of HDD-SATAs (Serial ATA).
- the capacities of a plurality of PDEVs constituting one RG are the same, for example.
- the pool 113 is a set of real pages 231. Specifically, for example, the pool 113 is composed of one or more real volumes (RVOL) 205, and each RVOL 205 is composed of one or more real pages 231.
- RVOL real volumes
- the RVOL constituting the pool 113 is referred to as “pool VOL”.
- Real pages 231 constituting one pool 113 are hierarchized. That is, a plurality of tiers 441 exist in one pool 113.
- the tier 441 exists, for example, for each type of RVOL. For example, according to FIG. 4, since there are three types of RVOLs, the number of tiers 441 is also three. Therefore, one type of RVOL 205 corresponding to the tier belongs to one tier 441.
- tier # 00 is a type of SSD, and an RVOL based on RG375 configured by SSD belongs to it.
- Tier # 01 is a type of HDD-SAS, to which an RVOL based on RG375 configured by HDD-SAS belongs.
- Tier # 03 is a type of HDD-SATA, to which an RVOL based on RG375 configured by HDD-SATA belongs. Note that the tier 441 is not necessarily provided strictly for each RVOL type, and a plurality of RVOLs 205 based on similar types of RGs may belong to the same tier 441.
- the configuration of the pool 113 illustrated in FIG. 4 is an example, and the pool 113 may not have the multi-tier configuration as illustrated in FIG. That is, for example, the pool 113 may be configured by only the same type of pool VOL.
- the controller 131 limits the total capacity of the VVOL 111 that can be associated with the pool 113 to be equal to or less than the capacity of the pool 113. Even when the VVOL total capacity is equal to or less than the capacity of the pool 113, it can be expected that the access load is distributed. This is because the pool 113 is a group of real pages based on a plurality of RGs. Therefore, even if accesses to one VVOL are concentrated, those accesses may be distributed to a plurality of real pages based on different RGs. Because it is expected.
- control of writing or reading to a virtual page control of data relocation in the pool 113, control of allocation of the VVOL 111 to the pool 113, and control of capacity expansion of the VVOL 113 are performed. Is called.
- These controls are performed, for example, when a control program (computer program) 551 shown in FIG. 5A is executed by a processor (for example, MP20).
- the controller 131 is stored in a storage resource (for example, SM 309 or a memory (not shown) in the CHA 301) in the controller 131, read from the storage resource, and executed.
- the process performed by executing the control program 551 is a process performed by the controller 131.
- FIG. 5B shows management information stored in the SM 309.
- a part of the management information may be stored in a memory (not shown) in the CHA 301 and / or a memory (not shown) in the DKA 303.
- Management information includes, for example, a VOL management table 501, a mapping table 503, a pool management table 504, a tier management table 506, a free queue 505, a deletion queue 509, and page information 701.
- the VOL management table 501 has information on all VOLs (logical volumes) that the storage apparatus 101 has.
- the mapping table 503 exists for each VVOL.
- the mapping table 503 represents the correspondence between virtual pages and real pages. Specifically, for example, in the mapping table 503, page information 701 of the real page is associated with the virtual page to which the real page is assigned.
- the free queue 505 exists for each pool VOL.
- the free queue 505 is a column of page information 701 corresponding to “free” real pages.
- the deletion queue 509 exists for each pool 113.
- the deletion queue 509 is a column of the mapping table 503 corresponding to the VVOL whose allocation to the pool 113 has been released.
- the page information 701 exists for each real page.
- the page information 701 includes information regarding the actual page.
- the control program 551 identifies the actual page in the flow shown in FIG. (A)
- the control program 551 specifies the mapping table 503 corresponding to the target VVOL based on the VOL management table 501.
- the mapping table 503 specified in (A) is not associated with the deletion queue 509, and the page information 701 of the real page assigned to the target virtual page is associated with the table 503. If it is, the control program 551 identifies the page information 701.
- the real page corresponding to the page information 701 is an “allocated” real page, specifically, a real page assigned to the target virtual page.
- mapping table 503 specified in (A) When the mapping table 503 specified in (A) is not associated with the deletion queue 509 and the target virtual page is an unallocated virtual page, the control program 551 associates with the free queue 505.
- the specified page information 701 is specified.
- the real page corresponding to the page information 701 is a “free” real page.
- the control program 551 identifies the page information 701 associated with the mapping table 503.
- a real page corresponding to the page information 701 is a real page “writing zero”.
- the “free” real page is called “free page”
- the “zero-writing” real page is called “zero-written page”
- the “allocated” real page is “allocated”. "Page”.
- FIG. 7A shows the VOL management table 501.
- the VOL management table 501 includes the following information for each VOL: (*) VOL number 5011 which is an identification number of VOL, (*) VOL type 5012 indicating the type of VOL, (*) An association flag 5013 indicating whether or not it is associated with the pool 113; (*) Capacity 5014 representing the capacity of VOL, (*) Pool number 5015 which is the identification number of the associated pool, (*) Pointer 5016 indicating the identification information of the table to be referred to, Have
- VOL types include, for example, “virtual”, “pool”, and “normal”. “Virtual” means that the VOL is a VVOL. “Pool” means that the VOL is a pool VOL (a VOL not recognized by the host 351). “Normal” means that the VOL is not a pool VOL but an RVOL (real volume) recognized by the host.
- association flag 5013 “ON” means that the VVOL 111 is associated with the pool 113, and “OFF” means that the VVOL 111 is not associated with the pool 113.
- the association flag 5013 corresponding to a VOL other than the VVOL is an invalid value (for example, “NULL”).
- the pointer 5016 corresponding to the VVOL 111 associated with the pool 113 is a valid value, for example, identification information of the mapping table 503 corresponding to the VVOL 111.
- FIG. 7B shows the mapping table 503.
- the mapping table 503 includes the following information for each virtual page included in the VVOL 111 corresponding to the table 503: (*) Virtual page number 5031 which is the identification number of the virtual page, (*) A pointer 5032 which is identification information of page information 701 corresponding to the real page assigned to the virtual page.
- FIG. 8A shows the free queue 505.
- the free queue 505 exists for each pool VOL.
- the free queue 505 has, for example, a pointer that represents identification information of the first page information 701.
- the page information 701 has a pointer (see FIG. 9A) that represents the identification information of the next page information 701. Thereby, the order of the page information 701 associated with the free queue 505 is known.
- FIG. 8B shows the deletion queue 509.
- the deletion queue 509 exists for each pool 113 as described above.
- a mapping table 503 is associated with the deletion queue 509.
- the deletion queue 509 has, for example, a pointer that represents the identification information of the top mapping table 503.
- the pointer indicating the identification information of the next mapping table 503 is set in the mapping table 503. Thereby, the order of the mapping table 503 associated with the deletion queue 509 is known.
- mapping table 503 is associated with page information 701 corresponding to the real page assigned to the VVOL 111 corresponding to the table 503.
- the real page corresponding to the page information 701 associated with the mapping table 503 associated with the deletion queue 509 is a zero-written page.
- FIG. 9A shows page information 701.
- the page information 701 includes the following information about a real page corresponding to the page information 701 (hereinafter referred to as “target real page” in the description of FIG. 9A): (*) Next pointer 7011 which is identification information of the next page information 701 of the page information 701, (*) Pool VOL address indicating the location of the target real page (for example, an address including the VOL number of the pool VOL and the LBA in the pool VOL) 7012, (*) VVOL address indicating the location of the virtual page to which the target real page is allocated (for example, an address including the VOL number of the VVOL that includes the virtual page of the allocation destination and the LBA in the VVOL) 7013, (*) Status 7014 indicating the status of the target real page, Have The page information 701 may have a tier number to which the target real page belongs.
- FIG. 9B shows the pool management table 504.
- the pool management table 504 includes the following information for each pool 113: (*) Pool number 5041 which is an identification number of the pool 113, (*) Pool VOL number 5042 which is the number of pool VOLs constituting the pool 113, (*) Real page number 5043 which is the number of real pages constituting the pool 113, (*) The number of free pages 5044, which is the number of free pages among the real pages constituting the pool 113, (*) A threshold value 5045 that is a threshold value to be compared with the usage rate of the pool 113 (ratio of the number of allocated real pages to the total number of real pages constituting the pool 113).
- VVOL number 5046 which is the number of VVOLs associated with the pool 113
- Total number of virtual pages 5047 which is the number of virtual pages constituting one or more VVOLs associated with the pool 113
- Have The table 504 may have a value indicating the capacity of the pool 113.
- FIG. 26 shows a tier management table 506.
- the tier management table 506 includes the following information for each tier for each pool: (*) Pool number 5061 which is the identification number of the pool having a tier, (*) Tier number 5062 which is the number of the tier, (*) PDEV type 5063, which is information indicating the type of PDEV that is the basis of the pool VOL belonging to the tier, (*) A page information pointer 5064 that is a pointer to page information corresponding to a real page belonging to the tier; Have From this table 506, page information 701 corresponding to a real page belonging to which tier of which pool can be specified.
- control program 551 can perform the following processing.
- the control program 551 receives a write command from the host 351.
- the control program 551 identifies the write destination VVOL and the write destination virtual page based on the access destination information included in the received write command.
- the control program 551 writes the data to be written in accordance with the write command to the CM 307 (the control program 551 may respond to the host 351 of the completion of writing at this stage).
- the control program 551 Based on the mapping table 503 corresponding to the write destination VVOL specified in (a2), the control program 551 determines whether or not the write destination virtual page specified in (W2) is an unallocated virtual page. to decide.
- control program 551 If the result of the determination in (a4) is affirmative, the control program 551 corresponds to the real page assigned to the write destination virtual page (page information 701 associated with the write destination virtual page). Write target data in the CM 307 to the actual page. (A6) If the result of the determination in (a4) is negative, the control program 551 identifies a free page from the free queue 505. Here, the control program 551 may specify a free page from the free queue 505 corresponding to the upper tier as much as possible. (A7) The control program 551 associates the free page specified in (a6) with the write destination virtual page.
- the control program 551 writes the identification information of the page information 701 corresponding to the free page specified in (a6) as the pointer 5032 corresponding to the write destination virtual page in the mapping table 503. Further, the control program 551 removes the page information 701 corresponding to the identified free page from the free queue 505. Also, the control program 551 updates the page information 701 (for example, writes an invalid value (for example, “NULL”) as the next pointer 7011 and updates the status 7014 from “free” to “allocated”). (A8) The control program 551 writes the write target data in the CM 307 to the page specified in the above (a6) (the control program 551 may respond to the host 351 of completion of writing at this stage).
- the control program 551 may update the access load information and / or the last access time corresponding to the write destination virtual page in (a5) or (a8).
- the access load information is a value representing the load of access to the virtual page (for example, access frequency (number of accesses per unit time) or data transfer rate (amount of data input / output per unit time)).
- the access load information is information that exists for each virtual page, and may be included in the mapping table 503, for example.
- the control program 551 receives a read command from the host 351.
- the control program 551 identifies the read source VVOL and the read source virtual page based on the access destination information included in the read command.
- the control program 551 determines whether or not the data to be read remains in the CM 307.
- the control program 551 transmits the read target data in the CM 307 to the host 351. In this case, the control program 551 may or may not update the access load information and / or the last access time corresponding to the read source virtual page.
- control program 551 determines whether the read-source virtual page identified in (b2) is an unallocated virtual page based on the mapping table 503. Judging.
- the control program 551 transmits predetermined data (for example, an error) to the host 351.
- the control program 551 reads data from the real page assigned to the read source virtual page and writes the data to the CM 307. Then, the control program 551 transmits the data in the CM 307 to the host 351.
- the control program 551 may update the access load information and / or the last access time corresponding to the read source virtual page in the above (b6).
- the control program 551 determines whether to execute the rearrangement process based on the access load or the last access time corresponding to the allocated virtual page (virtual page to which the real page is allocated).
- the control program 551 determines that an access load corresponding to a certain virtual page (hereinafter referred to as “target virtual page” in this paragraph) corresponds to a tier having a real page assigned to the target virtual page. If it belongs to the load range, it is determined not to perform the rearrangement process, and if not, it is determined to perform the rearrangement process. In the rearrangement process, the control program 551 migrates the data in the real page assigned to the target virtual page to a free page in the tier corresponding to the access load range to which the access load of the target page belongs. Then, the control program 551 assigns a migration-destination real page to the target virtual page instead of the migration-source real page.
- target virtual page an access load corresponding to a certain virtual page
- control program 551 determines to perform the rearrangement process when a predetermined time has elapsed from the last access time corresponding to a certain virtual page, and determines not to perform the rearrangement process otherwise. To do. In the rearrangement process, the control program 551 migrates the data in the real page assigned to the target virtual page to a free page in a tier lower than the tier having the real page. Then, the control program 551 assigns a migration-destination real page to the target virtual page instead of the migration-source real page.
- FIG. 10 shows the flow of processing when the control program 551 is activated.
- the control program 551 determines whether or not it is started for the first time after the control program is updated (for example, after version upgrade) (S1001). Specifically, for example, when the activated state is not set, the control program 551 determines that it is activated for the first time. When the activated state is set, the control program 551 determines that it is not the first activated state.
- control program 551 executes the control program before update (a program that does not have a function of limiting the VVOL total capacity to the capacity of the pool 113 or less). Information necessary for limiting the VVOL total capacity to be equal to or less than the capacity of the pool 113 is prepared based on the information at the time when the data was stored. Specifically, the control program 551 performs VVOL total capacity calculation (see FIG. 11) (S1002).
- control program 551 sets, for example, already started (S1003) and ends.
- the determination result in S1001 is negative.
- FIG. 11 shows the flow of calculating the VVOL total capacity.
- the control program 551 performs S1101 for each VVOL (loop (A)).
- loop (A) the processing in the loop (A) will be described by taking one VVOL (referred to as “target VVOL” in the description of FIG. 11) as an example.
- control program 551 determines whether the target VVOL is associated with any pool 113 based on the VOL management table 501.
- the control program 551 based on the capacity of the target VVOL, associates the target VVOL (referred to as “target pool” in the description of FIG. 11). For 113, the VVOL total capacity is updated. Specifically, the control program 551 performs the following processing. (S1102) The control program 551 acquires the capacity of the target VVOL from the VVOL capacity 5014 corresponding to the target VVOL. (S1103) The control program 551 acquires the identification number (pool number) of the pool associated with the target VVOL from the pool number 5015 corresponding to the target VVOL.
- the control program 551 converts the capacity of the target VVOL acquired in S1102 into the number of virtual pages. A value obtained by dividing the capacity of the target VVOL by the capacity of the virtual page is the number of virtual pages of the target VVOL. (S1105) The control program 551 adds the number of virtual pages obtained in S1104 to the total number of virtual pages 5047 corresponding to the target pool (the pool number obtained in S1103).
- the virtual page total number 5047 is created (updated) by the updated control program 551.
- control program 551 does not perform S1102 to S1105 for the target VVOL.
- VVOL total capacity calculation is completion of preparation of information necessary for limiting the VVOL total capacity to the capacity of the pool 113 or less.
- the control program 551 may determine whether or not the updated virtual page total number 5047 is less than or equal to the actual page number 5043 (capacity of the target pool) of the target pool every time S1105 is performed. If the result of the determination is negative, the control program 551 may output a warning (for example, a warning may be output to the SVP 311).
- the control program 551 selects one VVOL (referred to as “selected VVOL” in the description) associated with the first pool.
- the control program 551 searches for a second pool in which the total number of virtual pages 5047 is equal to or less than the number of real pages 5043 even if the number of virtual pages of the selected VVOL is added to the total number of virtual pages 5047. If no such second pool is found, the VVOL migration process ends.
- the control program 551 migrates the data included in the selected VVOL from the first pool to the found second pool in real page units.
- the control program 551 releases the association of the selected VVOL with the first pool and associates the selected VVOL with the second pool.
- the control program 551 subtracts the number of virtual pages of the selected VVOL from the total number of virtual pages 5047 in the first pool, and subtracts 1 from the number of VVOLs 5046 in the first pool.
- the control program 551 changes the pool number 5015 corresponding to the selected VVOL from the identification number of the first pool to the identification number of the second pool.
- the control program 551 adds the number of virtual pages of the selected VVOL to the total number of virtual pages 5047 in the second pool, and adds 1 to the number of VVOLs 5046 in the second pool.
- the administrator uses the SVP 311 to associate an administrator-desired VVOL among one or more VVOLs not associated with the pool 113 with a desired pool 113 among the one or more pools 113 or cancel the association. Can be.
- the SVP 311 receives information stored in the VOL management table 501 from the control program 551, and displays the VVOL list 1211 shown in FIG. 12A based on the information.
- the VVOL list 1211 has information (VVOL number (VVOL VOL number), association flag, capacity, pool number) for each VVOL.
- the SVP 311 accepts designation of a VVOL desired by the administrator. If the VVOL desired by the administrator is a VVOL with the association flag “OFF”, the administrator is inquired whether to perform association. If the VVOL desired by the administrator is a VVOL with the association flag “ON”, the administrator is inquired whether to cancel the association.
- the SVP 311 When the SVP 311 receives an association from the administrator regarding the VVOL with the association flag “OFF”, the SVP 311 receives the information included in the pool management table 504 from the control program 551, and based on the information, the SVP 311 performs FIG.
- the pool list 1221 is calculated based on information for each pool (pool number, pool capacity (for example, a value calculated based on the actual page number 5043), and used capacity (for example, the actual page number 5043 and the free page number 5044). Value), threshold).
- the SVP 311 accepts designation of a pool desired by the administrator.
- FIG. 13 shows the flow of VVOL association. This process is performed, for example, when the control program 551 is instructed by the administrator to associate a VVOL through the VVOL list 1211 (see FIG. 12A) and the pool list 1221 (see FIG. 12B).
- the control program 551 acquires the identification number (pool number) of the pool (referred to as “target pool” in the description of FIGS. 13 and 14) designated by the administrator from the SVP 311 (S1301).
- control program 551 acquires the identification number (VVOL number) of the VVOL (referred to as “target VVOL” in the description of FIGS. 13 and 14) designated by the administrator from the SVP 311 and corresponds to the VVOL number.
- the capacity of the target VVOL is acquired from the capacity 5014 (S1302). Then, the control program 551 converts the VVOL capacity acquired in S1302 into the number of virtual pages (S1303).
- control program 551 acquires the total number of virtual pages from the total number of virtual pages 5047 (total number of virtual pages in the target pool 5047) corresponding to the pool number acquired in S1301 (S1304).
- the control program 551 checks the VVOL capacity based on the number of virtual pages after conversion in S1303 (the number of virtual pages in the target VVOL) and the total number of virtual pages acquired in S1304 (the total number of virtual pages in the target pool) (FIG. 14). (Refer to step S1305).
- the control program 551 associates the target VVOL with the target pool (S1307). Specifically, the following processing is performed. (*) The control program 551 adds the number of virtual pages of the target VVOL to the total number of virtual pages 5047 of the target pool. (*) The control program 551 adds 1 to the VVOL number 5046 of the target pool. (*) The control program 551 updates the target VVOL pool number 5015 to the target pool identification number.
- FIG. 14 shows the flow of the VVOL capacity check.
- the control program 551 determines whether option # 1 is ON (S1401). “Option # 1” is a mode in which the total VVOL capacity is limited to the capacity of the pool 113 or less for all the pools 113 existing in the storage apparatus 101.
- the control program 551 determines whether the sum of the number of virtual pages in the target VVOL and the total number of virtual pages in the target pool is equal to or less than the number of real pages 5043 in the target pool (S1404). (*) If the result of the determination in S1404 is negative, it means that the sum of the number of virtual pages in the target VVOL and the total number of virtual pages in the target pool exceeds the number of real pages 5043 in the target pool. In this case, the control program 551 outputs a return value indicating “abnormal” (S1407). As a result, as shown in FIG.
- the target pool has zero-written pages. This is because there is a possibility that there are not more free pages than the number of virtual pages of the target VVOL.
- control program 551 determines whether option # 2 is ON (S1402). “Option # 2” is a mode in which the VVOL total capacity is limited to the capacity of the pool 113 or less only for the pool 113 desired by the administrator among the pools 113 existing in the storage apparatus 101.
- control program 551 If the result of the determination in S1402 is negative (S1402: NO), the control program 551 outputs a return value that means “normal” (S1408). This is because both option # 1 and option # 2 are OFF, and therefore it is not necessary to limit the VVOL total capacity below the target pool capacity for the target pool.
- the control program 551 determines whether the target pool is a pool that needs to limit the VVOL total capacity to the pool capacity or less (S1403).
- the target pool threshold 5045 is a valid value or greater than or equal to the first value
- the result of the determination in S1403 is affirmative
- the target pool threshold 5045 is an invalid value (eg, “ NULL ”) or less than the second value (the second value is equal to or less than the first value)
- the result of the determination in S1403 is negative.
- control program 551 When the result of the determination in S1403 is negative (S1403: NO), the control program 551 outputs a return value that means “normal” (S1408). This is because it is not necessary to limit the total VVOL capacity to the target pool capacity or less for the target pool.
- control program 551 performs S1404 and subsequent steps. This is because it is necessary to limit the VVOL total capacity below the capacity of the target pool for the target pool.
- option # 1 when both option # 1 and option # 2 are ON, option # 1 is given priority, but option # 2 may be given priority instead.
- FIG. 15 shows the flow of zero writing check.
- the control program 551 acquires the identification number (pool number) of the target pool (S1501).
- the “target pool” referred to here may be the target pool in the description of FIGS. 13 and 14, or may be the pool associated with the capacity expansion target VVOL in the description of FIG. 20.
- the control program 551 determines whether the mapping table 503 is associated with the deletion queue (referred to as “target deletion queue” in the description of FIG. 15) 509 corresponding to the target pool (S1502).
- the control program 551 performs S1503. Specifically, the following processing is performed.
- the control program 551 selects one mapping table (for example, the first mapping table) 503 associated with the target deletion queue 509.
- the control program 551 adds the number of page information 701 associated with the mapping table 503 selected in (e1) to the number of zero-written pages.
- the control program 551 removes the mapping table 503 selected in the latest (e1) from the target deletion queue 509.
- the control program 551 removes the mapping table 503 from the target deletion queue 509 in S1503, and then performs S1502 again.
- control program 551 determines whether or not the number of zero-written pages is zero (S1504).
- control program 551 If the result of the determination in S1504 is affirmative (S1504: YES), the control program 551 outputs a determination result that there is no zero-written page (S1505).
- control program 551 If the determination result in S1504 is negative (S1504: NO), the control program 551 outputs a determination result that there is a zero-written page (S1506).
- FIG. 16 shows the flow of releasing the VVOL association. This process is performed, for example, when the control program 551 is instructed by the administrator to cancel the association of the VVOL through the VVOL list 1211 (see FIG. 12A).
- the control program 551 acquires the VOL number (VVOL number) of the VVOL designated by the administrator (referred to as “target VVOL” in the description of FIG. 16) (S1601).
- the control program 551 identifies a row in the VOL management table 501 having the VVOL number acquired in S1601 (S1602).
- the control program 551 specifies the pointer 5016 in the line (S1603).
- the control program 551 clears the specified pointer 5016 (S1604). For example, the control program 551 updates the pointer 5016 to an invalid value (for example, “NULL”).
- the control program 551 associates the mapping table (mapping table corresponding to the target VVOL) 503 indicated by the pointer 5016 before clearing with the deletion queue 509 corresponding to the pool with which the target VVOL is associated (S1605).
- the control program 551 performs zero write processing for each pool.
- the control program 551 transfers the real page associated with the deletion queue 509 corresponding to the pool (more precisely, the page information 701 associated with the mapping table 503 associated with the deletion queue 509).
- the bit value “0” is written in the corresponding real page.
- the start timing of the zero writing process may be an arbitrary timing after the status of the real page becomes “zero writing”. Specifically, for example, the following can be considered. (*) When the control program 551 changes the status of the real page to “zero writing”, zero writing is performed on the real page.
- the control program 551 determines whether or not there is a real page associated with the deletion queue 509 periodically or indefinitely, and if the result of the determination is affirmative, Write zero. (*) When the control program 551 writes to the virtual page in the VVOL and there is no free page in the pool associated with the VVOL, the control program 551 writes zero to the zero-written real page in the pool ( A real page that has been zero-written can be assigned as a free page to the virtual page of the write destination).
- FIG. 17 shows the flow of zero writing process.
- the control program 551 acquires the identification number (pool number) of the target pool for zero write processing (S1701).
- the control program 551 has the information represented by the pointer held by the deletion queue (referred to as “target deletion queue” in the description of FIG. 17) 509 corresponding to the acquired pool number, or the pointer held by the mapping table 503 in the latest S1704. Information to represent is acquired (S1702).
- control program 551 ends this process. This is because the mapping table 503 is not associated with the target deletion queue.
- the control program 551 indicates that the pointer 5032 is page information from the first virtual page of the VVOL corresponding to the mapping table 503 to the last virtual page. The following processing is performed for each virtual page representing the identification information 701.
- the control program 551 acquires the page information 701 based on the virtual page pointer 5032.
- the control program 551 writes one or more bit values “0” so that the values of all the bits in the actual page corresponding to the acquired page information 701 become “0”.
- S1706 The control program 551 waits for the sleep time after performing S1705.
- control program 551 If the control program 551 has not checked the final virtual page (S1707: NO), the control program 551 performs S1704 for another virtual page associated with the page information 701, and has checked the final virtual page. If (S1707: YES), S1702 is performed.
- the speed of the zero writing process can be adjusted by adjusting the length of the sleep time.
- the control program 551 normally sets the sleep time as the first time length. Thereafter, if the number of free pages in the pool is less than or equal to a predetermined value (the predetermined value is an integer greater than or equal to 0), the control program 551 sets the sleep time corresponding to the pool to the second shorter than the first time length. Change to the length of time.
- the control program 551 can calculate the deletion capacity for each pool and display the calculated deletion capacity on the SVP 311.
- “Delete capacity” is the product of the number of zero-written pages and the capacity of actual pages.
- FIG. 18 shows the flow of calculating the deleted capacity.
- the control program 551 performs S1801 and S1802 for each deletion queue 509 (loop (A)), and performs S1801 for each mapping table associated with the deletion queue 509 (loop (B)).
- the control program 551 grasps the number of page information 701 associated with the mapping table 503 associated with the deletion queue 509, and adds the number to the number of zero-written pages.
- the control program 551 converts the number of zero-written pages corresponding to one deletion queue 509 (one pool) into a deletion capacity.
- the control program 551 displays the deleted capacity for each pool in the pool list 1901 as shown in FIG. 19, for example (S1803).
- FIG. 20 shows the flow of VVOL capacity expansion.
- the control program 551 can expand the capacity of the VVOL desired by the administrator (referred to as “target VVOL” in the description of FIG. 20) in response to the VVOL expansion request from the SVP 311.
- the VVOL expansion request includes, for example, information indicating the identification number of the target VVOL and the capacity (extended capacity) to be added to the capacity of the target VVOL.
- processing similar to S1401 to S1406 in FIG. 14 is performed (S2001 to S2006).
- the control program 551 can expand the capacity of the target VVOL. Whether or not (S2007). Specifically, the control program 551 determines whether or not the difference between the actual number of pages in the target pool and the number of zero-written pages is equal to or greater than the total number of virtual pages after capacity expansion. More specifically, the control program 551 determines whether or not the following value (P) is equal to or greater than the following value (Q) (see FIG. 21).
- (P) A value obtained by subtracting the number of zero-written pages of the target pool (the total number of page information 701 associated with the deletion queue 509 corresponding to the target pool) from the actual number of pages 5043 of the target pool
- (Q) A value obtained by adding the number of virtual pages for the expanded capacity (the number of virtual pages to be increased) to the total number of virtual pages 5047 in the target pool.
- control program 551 does not expand the capacity of the target VVOL (S2008). For example, the control program 551 notifies the SVP 311 of an error.
- control program 551 expands the capacity of the target VVOL in accordance with the above-mentioned VVOL expansion request (S2009).
- control program 551 may perform S2008 without performing the determination in S2007.
- a real page assigned to a VVOL whose association has been released from the pool eventually becomes a zero-written page.
- VVOL association is not executed (cancelled).
- VVOL association is not executed (cancelled).
- the total capacity of the VVOL after capacity expansion is equal to the actual capacity of the pool (the capacity of the pool and the total capacity of one or more zero-written pages.
- the VVOL capacity expansion is not executed (cancelled).
- the capacity of the VVOL is expanded, it is possible to prevent a free page from being insufficient in the pool from being allocated to a write destination unallocated virtual page.
- Example 2 of the present invention will be described. At that time, differences from the first embodiment will be mainly described, and description of common points with the first embodiment will be omitted or simplified.
- the control program 551 determines that the VVOL total capacity after VVOL association is the real capacity ( If it does not exceed the difference between the pool capacity and the total capacity of one or more zero-written pages, the VVOL is associated with the pool.
- the control program 551 determines whether or not the value of the following (X) exceeds the value of the following (Y) (S2201). .
- (X) The sum of the total number of virtual pages 5047 in the target pool and the number of virtual pages in the target VVOL (association target VVOL),
- (Y) A value obtained by subtracting the number of pages written to zero in the target pool (the total number of page information 701 associated with the deletion queue 509 corresponding to the target pool) from the actual number of pages 5043 in the target pool.
- control program 551 If the result of the determination in S2201 is affirmative (S2201: YES), the control program 551 outputs a return value that means “abnormal” (S1407).
- control program 551 If the result of the determination in S2201 is negative (S2201: NO), the control program 551 outputs a return value that means “normal” (S1408).
- the second embodiment it is possible to prevent a free page to be allocated to an unallocated virtual page as a write destination from being insufficient in the pool, and to increase the possibility that the VVOL can be associated with the pool. be able to.
- the control program 551 does not execute (cancel) the VVOL total capacity update (association of VVOL or capacity expansion of VVOL) in the case of (k) below.
- S1408 output of a return value indicating “normal”) or S2009 (VVOL capacity expansion) is performed.
- the updated VVOL total capacity (VVOL total capacity after associating VVOL or VVOL total capacity after VVOL capacity expansion) is less than or equal to the capacity of the pool, and the page has zero-written pages, or The updated VVOL total capacity exceeds the actual capacity of the pool (the difference between the pool capacity and the total capacity of one or more zero-written pages).
- step S2211 the control program 551 performs the following (a) or (b).
- the control program 551 associates the target VVOL (association target VVOL or VVOL whose capacity is expanded) with the first pool (VVOL association destination pool or the VVOL whose capacity is expanded). Associated with the second pool.
- the second pool is a pool that satisfies the following conditions (v) and (w).
- V The updated VVOL total capacity (the sum of the VVOL total capacity of the pool and the capacity of the VVOL to be associated or the capacity to be expanded) is equal to or less than the capacity of the pool.
- W There is no zero-written page, or the updated VVOL total capacity is less than or equal to the real capacity of the pool (the difference between the pool capacity and the total capacity of one or more zero-written pages).
- VVOL association or VVOL capacity expansion is achieved while preventing a free page to be allocated to a write destination unallocated virtual page from being insufficient in the pool.
- the possibility of being able to perform can be increased.
- control program 551 does not execute (cancel) the update of the VVOL total capacity (association of VVOL or capacity expansion of VVOL) even in the case (k) described in the third embodiment. Rather than performing S2301 in FIG. 23, S1408 (output of a return value indicating “normal”) or S2009 (VVOL capacity expansion) is performed.
- control program 551 waits until the zero write processing is completed, and the pool in which the total capacity of the VVOL is updated (the pool to which the VVOL is associated or the pool to which the capacity is expanded is associated, Hereinafter, the zero writing process (refer to FIG. 17) for “target pool” in the description of the fourth embodiment is performed in preference to the zero writing process for other pools.
- the control program 551 may minimize the sleep time in the zero writing process for the target pool.
- VVOL association or VVOL capacity expansion is achieved while preventing a free page to be allocated to a write destination unallocated virtual page from being insufficient in the pool. It is possible to increase the possibility that it can be performed quickly.
- the control program 551 in the zero writing process for the pool, preferentially performs zero writing (writing of the bit value “0”) to the zero writing page in the higher tier. Specifically, in this embodiment, the control program 551 performs the zero writing process shown in FIG. 24 instead of the zero writing process shown in FIG.
- control program 551 selects the highest tier from among the target pools for zero write processing (referred to as “target pool” in the description of FIG. 25) (S2401).
- the control program 551 determines whether there is a zero-written page in the selected tier (S2402). Specifically, for example, the control program 551 identifies page information 701 belonging to the selected tier based on the tier management table 506, and for each identified page information 701, an actual page corresponding to the page information 701 is found. It is determined whether the page is a zero-written page.
- control program 551 updates the values of all bits in all zero-written pages in the selected tier to “0” (S2403).
- S2403 After S2403 or when the result of the determination in S2402 is negative (S2402: NO), if there is an unselected tier in the target pool (S2404: NO), the control program 551 follows the recently selected tier. A higher tier is selected (S2404), and S2402 is performed. On the other hand, if there is no unselected tier in the target pool, that is, if the lowest tier has already been selected (S2404: YES), the control program 551 ends the zero write processing for the target pool.
- the fifth embodiment it is possible to increase the number of free pages preferentially from the upper tier (that is, the tier with high performance). This is particularly effective when, for example, the initial allocation tier (the tier that is the source of a real page that is initially allocated to an unselected virtual page) is the highest tier.
- control program 551 instead of preferentially writing zeros in higher tiers, instead of writing zero pages in the initial allocation tier, zero write pages in other tiers.
- the zero writing may be performed with higher priority than the above.
- control program 551 copies (replicates or migrates) data from the primary VVOL (hereinafter referred to as PVOL) to the secondary VVOL (hereinafter referred to as SVOL).
- PVOL primary VVOL
- SVOL secondary VVOL
- the control program 551 is assigned to the SVOL.
- a real page may be a free page. This is to eliminate the possibility of a shortage of free pages from the pool with which the SVOL is associated.
- Example 6 will be described in detail with reference to FIGS. 25A to 25C.
- the PVOL 111P is associated with the pool 113P
- the SVOL 111S is associated with the pool 113S.
- Pools 113P and 113S are different pools. This is because the data is not lost even if a failure occurs in the RG (RAID group) storing the data in the PVOL 111P.
- the capacity of SVOL 111S is equal to or greater than the capacity of PVOL 111P.
- the pool 113S is not a target pool for limiting the VVOL total capacity
- the free pages are insufficient in the pool 113S.
- a new real page cannot be allocated to the SVOL 111S.
- the control program 551 may make all real pages allocated to the SVOL 113S free pages before copying all the data in the PVOL 111P to the SVOL 113S. Specifically, for example, the control program 551 performs the following processes (f1) to (f4). (F1) Based on the mapping table 503 corresponding to the PVOL 111P, the mapping table 503 corresponding to the SVOL 111S, and the pool management table 504, the control program 551 has more free pages than the number of real pages allocated to the PVOL 111P. It is determined whether or not it is in the pool 113S.
- the control program 551 waits for copying of data from the PVOL 111P to the SVOL 111S until at least as many free pages as the number of real pages allocated to the PVOL 111P are created in the pool 113S.
- the control program 551 changes the zero-written page to a free page by writing zero to the zero-written page in the pool 113S. That is, the control program 551 increases free pages in the pool 113S.
- the control program 551 may minimize the sleep time (the length of time from zero writing to a zero-written page to the next zero writing to a zero-written page).
- the same number of real pages as the number of real pages allocated to the PVOL 111P is allocated to the SVOL 111S from the pool 113S. If the data copy from the PVOL 111P to the SVOL 111S is migration, the control program 551 may change all the real pages assigned to the PVOL 111P to zero-written pages.
- the compared capacity is the capacity expressed by the number of pages, but instead, the capacity expressed in other types of units such as megabytes or gigabytes. But it ’s okay.
- the configuration of the controller 131 is not limited to the configuration shown in FIG.
- a module (processor module) other than CHA and DKA may have MP.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
(A)制御プログラム551は、VOL管理テーブル501を基に、対象のVVOLに対応したマッピングテーブル503を特定する。
(B1)(A)で特定されたマッピングテーブル503が、削除キュー509に関連付けられておらず、且つ、そのテーブル503に、対象の仮想ページに割り当てられている実ページのページ情報701が関連付けられている場合、制御プログラム551は、そのページ情報701を特定する。制御プログラム551は、そのページ情報701に対応する実ページが、「割当て済み」の実ページ、具体的には、対象の仮想ページに割り当てられている実ページである。
(B2)(A)で特定されたマッピングテーブル503が、削除キュー509に関連付けられておらず、且つ、対象の仮想ページが未割当ての仮想ページの場合、制御プログラム551は、フリーキュー505に関連付けられているページ情報701を特定する。そのページ情報701に対応する実ページが、「フリー」の実ページである。
(B3)(A)で特定されたマッピングテーブル503が、削除キュー509に関連付けられている場合、制御プログラム551は、そのマッピングテーブル503に関連付けられているページ情報701を特定する。そのページ情報701に対応する実ページが、「ゼロ書き中」の実ページである。
(*)VOLの識別番号であるVOL番号5011、
(*)VOLの種別を表すVOL種別5012、
(*)プール113に関連付けられているか否かを表す関連付けフラグ5013、
(*)VOLの容量を表す容量5014、
(*)関連付けられているプールの識別番号であるプール番号5015、
(*)参照すべきテーブルの識別情報を表すポインタ5016、
を有する。
(*)仮想ページの識別番号である仮想ページ番号5031、
(*)仮想ページに割り当てられている実ページに対応したページ情報701の識別情報であるポインタ5032、
を有する。
(*)そのページ情報701の次のページ情報701の識別情報である次ポインタ7011、
(*)対象実ページの場所を表すプールVOLアドレス(例えば、プールVOLのVOL番号と、そのプールVOLにおけるLBAとを含んだアドレス)7012、
(*)対象実ページの割当先の仮想ページの場所を表すVVOLアドレス(例えば、割当先の仮想ページを含んだVVOLのVOL番号と、そのVVOLにおけるLBAとを含んだアドレス)7013、
(*)対象実ページのステータスを表すステータス7014、
を有する。ページ情報701が、対象実ページが属するティアの番号を有していても良い。
(*)プール113の識別番号であるプール番号5041、
(*)プール113を構成するプールVOLの数であるプールVOL数5042、
(*)プール113を構成する実ページの数である実ページ数5043、
(*)プール113を構成する実ページのうちのフリーページの数であるフリーページ数5044、
(*)プール113の使用率(プール113を構成する実ページの総数に対する割当て済み実ページの数の割合)と比較される閾値である閾値5045、
(*)プール113に関連付けられているVVOLの数であるVVOL数5046、
(*)プール113に関連付けられている1以上のVVOLを構成する仮想ページの数である仮想ページ総数5047、
を有する。テーブル504は、プール113の容量を表す値を有しても良い。
(*)ティアを有するプールの識別番号であるプール番号5061、
(*)ティアの番号であるティア番号5062、
(*)ティアに属するプールVOLの基になっているPDEVの種類を表す情報であるPDEV種類5063、
(*)ティアに属する実ページに対応したページ情報へのポインタであるページ情報ポインタ5064、
を有する。このテーブル506から、どのプールのどのティアに属する実ページに対応したページ情報701を特定することができる。
(a1)制御プログラム551が、ライトコマンドをホスト351から受信する。
(a2)制御プログラム551が、受信したライトコマンドが有するアクセス先情報を基に、ライト先VVOLとライト先仮想ページとを特定する。
(a3)制御プログラム551が、ライトコマンドに従うライト対象のデータをCM307に書き込む(制御プログラム551は、この段階で、ホスト351にライト完了を応答して良い)。
(a4)制御プログラム551が、(a2)で特定されたライト先VVOLに対応するマッピングテーブル503を基に、上記(W2)で特定されたライト先仮想ページが未割当ての仮想ページか否かを判断する。
(a5)上記(a4)の判断の結果が肯定的であれば、制御プログラム551が、ライト先仮想ページに割り当てられている実ページ(ライト先仮想ページに関連付けられているページ情報701に対応した実ページ)に、CM307内のライト対象のデータを書き込む。
(a6)上記(a4)の判断の結果が否定的であれば、制御プログラム551が、フリーキュー505からフリーページを特定する。ここで、制御プログラム551は、なるべく上位のティアに対応したフリーキュー505からフリーページを特定して良い。
(a7)制御プログラム551が、上記(a6)で特定したフリーページをライト先仮想ページに対応付ける。具体的には、例えば、制御プログラム551は、マッピングテーブル503における、ライト先仮想ページに対応したポインタ5032として、上記(a6)で特定したフリーページに対応するページ情報701の識別情報を書き込む。また、制御プログラム551が、特定したフリーページに対応するページ情報701をフリーキュー505から外す。また、制御プログラム551が、そのページ情報701を更新する(例えば、次ポインタ7011として無効値(例えば「NULL」)を書込み、ステータス7014を「フリー」から「割当て済み」に更新する)。
(a8)制御プログラム551は、上記(a6)で特定したページに、CM307内のライト対象のデータを書き込む(制御プログラム551は、この段階で、ホスト351にライト完了を応答して良い)。
(a9)制御プログラム551は、は、上記(a5)又は(a8)において、ライト先仮想ページに対応したアクセス負荷情報及び/又は最終アクセス時刻を更新して良い。アクセス負荷情報は、仮想ページに対するアクセスの負荷(例えば、アクセス頻度(単位時間当りのアクセス回数)、或いは、データ転送速度(単位時間当たりに入出力されるデータの量))を表す値である。アクセス負荷情報は、仮想ページ毎に存在する情報であり、例えば、マッピングテーブル503に含まれていても良い。
(b1)制御プログラム551は、リードコマンドをホスト351から受信する。
(b2)制御プログラム551は、リードコマンドが有するアクセス先情報を基に、リード元VVOLとリード元仮想ページを特定する。
(b3)制御プログラム551が、リード対象のデータがCM307に残っているか否かを判断する。
(b4)上記(b3)の判断の結果が肯定的の場合、制御プログラム551は、CM307内のリード対象データを、ホスト351に送信する。この場合、制御プログラム551は、リード元仮想ページに対応したアクセス負荷情報及び/又は最終アクセス時刻を更新してもしなくても良い。
(b5)上記(b3)の判断の結果が否定的の場合、制御プログラム551は、マッピングテーブル503を基に、上記(b2)で特定されたリード元仮想ページが未割当ての仮想ページか否かを判断する。
(b6)上記(b5)の判断の結果が否定的であれば、制御プログラム551は、所定のデータ(例えばエラー)をホスト351に送信する。
(b7)上記(b5)の判断の結果が肯定的であれば、制御プログラム551は、リード元仮想ページに割り当てられている実ページからデータを読み出し、そのデータをCM307に書き込む。そして、制御プログラム551は、CM307内のそのデータをホスト351に送信する。
(b8)制御プログラム551は、上記(b6)において、リード元仮想ページに対応したアクセス負荷情報及び/又は最終アクセス時刻を更新して良い。
(S1102)制御プログラム551は、対象VVOLに対応したVVOL容量5014から、対象VVOLの容量を取得する。
(S1103)制御プログラム551は、対象VVOLに対応したプール番号5015から、対象VVOLが関連付けられているプールの識別番号(プール番号)を取得する。
(S1104)制御プログラム551は、S1102で取得した、対象VVOLの容量を、仮想ページ数に変換する。対象VVOLの容量を仮想ページの容量で除算することにより得られた値が、対象VVOLの仮想ページ数である。
(S1105)制御プログラム551は、S1104で得られた仮想ページ数を、対象プール(S1103で取得されたプール番号)に対応する仮想ページ総数5047に加算する。
(d1)制御プログラム551は、第1のプールに関連付けられている1つのVVOL(ここの説明において、「選択VVOL」と言う)を選択する。
(d2)制御プログラム551は、選択VVOLの仮想ページ数が仮想ページ総数5047に加算されても仮想ページ総数5047が実ページ数5043以下となる第2のプールを探す。そのような第2のプールが見つからなければ、VVOLマイグレーション処理が終了する。
(d3)制御プログラム551は、(d2)で第2のプールが見つかれば、選択VVOLが有するデータを、第1のプールから、実ページ単位で、見つかった第2のプールにマイグレーションする。
(d4)制御プログラム551は、選択VVOLの第1のプールに対する関連付けを解除し、選択VVOLを第2のプールに関連付ける。具体的には、以下の処理が行われる。
(d41)制御プログラム551は、第1のプールの仮想ページ総数5047から、選択VVOLの仮想ページ数を減算し、且つ、第1のプールのVVOL数5046から、1を減算する。
(d42)制御プログラム551は、選択VVOLに対応したプール番号5015を、第1のプールの識別番号から第2のプールの識別番号に変更する。
(d43)制御プログラム551は、第2のプールの仮想ページ総数5047に、選択VVOLの仮想ページ数を加算し、且つ、第2のプールのVVOL数5046に、1を加算する。
(*)制御プログラム551は、対象プールの仮想ページ総数5047に、対象VVOLの仮想ページ数を加算する。
(*)制御プログラム551は、対象プールのVVOL数5046に、1を加算する。
(*)制御プログラム551は、対象VVOLのプール番号5015を、対象プールの識別番号に更新する。
(*)制御プログラム551は、対象VVOLの仮想ページ数と対象プールの仮想ページ総数との和が、対象プールの実ページ数5043以下か否かを判断する(S1404)。
(*)S1404の判断の結果が否定的であれば、対象VVOLの仮想ページ数と対象プールの仮想ページ総数との和が、対象プールの実ページ数5043を越えてしまうということである。この場合、制御プログラム551は、「異常」を意味する戻り値を出力する(S1407)。この結果、図13に示したように、S1307(対象VVOLの対象プールに対する関連付け)は行われない。
(*)S1404の判断の結果が肯定的であれば、対象VVOLの仮想ページ数と対象プールの仮想ページ総数との和が、対象プールの実ページ数5043を越えないということである。この場合、制御プログラム551は、ゼロ書きチェック(図15参照)を行う(S1405)。つまり、制御プログラム551は、対象プールにゼロ書きページが存在するか否かを調べる。
(*)S1405の結果、対象プールにゼロ書きページが無ければ(S1406:NO)、制御プログラム551は、「正常」を意味する戻り値を出力する(S1408)。なぜなら、対象VVOLの仮想ページ数と対象プールの仮想ページ総数との和が、対象プールの実ページ数5043を越えておらず、且つ、対象プールがゼロ書きページ(VVOLへの割当てが不可能な実ページ)を有していないが故に、対象プールが、対象VVOLの仮想ページ数以上のフリーページを有するからである。S1408の結果、図13に示したように、S1307(対象VVOLの対象プールに対する関連付け)が行われる。
(*)S1405の結果、対象プールにゼロ書きページがあれば(S1406:YES)、制御プログラム551は、「異常」を意味する戻り値を出力する(S1407)。なぜなら、対象VVOLの仮想ページ数と対象プールの仮想ページ総数との和が、対象プールの実ページ数5043を越えていなくても、対象プールがゼロ書きページを有しているが故に、対象プールが、対象VVOLの仮想ページ数以上のフリーページを有していない可能性があるからである。
(e1)制御プログラム551は、対象削除キュー509に関連付けられている1つのマッピングテーブル(例えば先頭のマッピングテーブル)503を選択する。
(e2)制御プログラム551は、(e1)で選択したマッピングテーブル503に関連付けられているページ情報701の数を、ゼロ書きページ数に加算する。
(e3)制御プログラム551は、対象削除キュー509から、最近の(e1)で選択したマッピングテーブル503を除去する。
(*)制御プログラム551が、実ページのステータスを「ゼロ書き中」にしたら直ちに、その実ページに対するゼロ書きを行う。
(*)制御プログラム551が、定期的に又は不定的に、削除キュー509に関連付けられている実ページがあるか否かを判断し、その判断の結果が肯定的であれば、その実ページに対してゼロ書きを行う。
(*)制御プログラム551が、VVOL内の仮想ページに対する書込みの際に、そのVVOLが関連付けられているプールにフリーページが無い場合、そのプール内のゼロ書き実ページに対してゼロ書きを行う(ゼロ書きが済んだ実ページが、フリーページとして、書込み先の仮想ページに割り当てられて良い)。
(S1704)制御プログラム551は、仮想ページのポインタ5032を基に、ページ情報701を取得する。
(S1705)制御プログラム551は、取得したページ情報701に対応する実ページ内の全ビットの値が“0”になるよう、1以上のビット値“0”を書き込む。
(S1706)制御プログラム551は、S1705を行ってからスリープ時間待つ。
(S1707)制御プログラム551は、最終の仮想ページまでチェックしていなければ(S1707:NO)、ページ情報701が関連付けられている別の仮想ページについてS1704を行い、最終の仮想ページまでチェックしていれば(S1707:YES)、S1702を行う。
(S1801)制御プログラム551は、削除キュー509に関連付けられているマッピングテーブル503に関連付いたページ情報701の数を把握し、その数を、ゼロ書きページ数に加算する。
(S1802)制御プログラム551は、1つの削除キュー509(1つのプール)に対応したゼロ書きページ数を、削除容量に変換する。
(P)対象プールの実ページ数5043から対象プールのゼロ書きページ数(対象プールに対応した削除キュー509に関連付けられているページ情報701の総数)を減算した値、
(Q)対象プールの仮想ページ総数5047に拡張容量分の仮想ページ数(増加する仮想ページ数)を加算した値。
(X)対象プールの仮想ページ総数5047と対象VVOL(関連付け対象のVVOL)の仮想ページ数との和、
(Y)対象プールの実ページ数5043から対象プールのゼロ書きページ数(対象プールに対応した削除キュー509に関連付けられているページ情報701の総数)を減算した値。
(k)更新後のVVOL総容量(VVOL関連付け後のVVOL総容量、又は、VVOLの容量拡張後のVVOL総容量)がプールの容量以下であり、且つ、そのプールにゼロ書きページがある、又は、更新後のVVOL総容量がそのプールの実質容量(プールの容量と1以上のゼロ書きページの総容量との差)を超えてしまう。
(a)制御プログラム551は、ゼロ書き処理が終わるまで待つ。具体的には、例えば、制御プログラム551は、プールの実質容量(プール容量と1以上のゼロ書きページの総容量との差)が更新後のVVOL総容量以上になるぐらいに、プールからゼロ書きページが減るまで(プール内のゼロ書きページのステータスが「フリー」に遷移するまで)、待つ。制御プログラム551は、そのプール内のゼロ書きページの数がゼロになるまで、待っても良い。
(b)制御プログラム551は、対象VVOL(関連付け対象のVVOL、又は、容量が拡張されるVVOL)を、第1のプール(VVOLの関連付け先のプール、又は、容量が拡張されるVVOLが関連付けられているプール)に代えて、第2のプールに関連付ける。その第2のプールは、下記の条件(v)及び(w)を満たすプールである。
(v)更新後のVVOL総容量(プールのVVOL総容量と、関連付け対象のVVOLの容量、又は、拡張される容量との和)が、プールの容量以下である。
(w)ゼロ書きページが無い、又は、更新後のVVOL総容量がプールの実質容量(プールの容量と1以上のゼロ書きページの総容量との差)以下である。
(f1)制御プログラム551は、PVOL111Pに対応したマッピングテーブル503と、SVOL111Sに対応したマッピングテーブル503と、プール管理テーブル504とを基に、PVOL111Pに割り当てられている実ページの数以上のフリーページがプール113Sにあるか否かを判断する。
(f2)(f1)の判断の結果が肯定的の場合、制御プログラム551は、SVOL111Sに割り当てられている全ての実ページをゼロ書きページとし、且つ、PVOL111P内の全てのデータをSVOL111Sにコピーする。その際、SVOL111Sには、コピーの進捗に応じて、適宜にプール113Sからフリーページが割り当てられるが、フリーページが不足することはない。
(f3)(f2)の判断の結果が否定的の場合、制御プログラム551は、以下の処理を行う、
(f3-1)制御プログラム551は、SVOL111Sに割り当てられている全ての実ページをゼロ書きページとする。
(f3-2)制御プログラム551は、PVOL111PからSVOL111Sへのデータのコピーを、少なくとも、PVOL111Pに割り当てられている実ページの数と同数のフリーページがプール113Sにできるまで、待つ。
(f3-3)(f3-2)の間、制御プログラム551は、プール113S内のゼロ書きページにゼロ書きを行うことで、そのゼロ書きページをフリーページに変える。つまり、制御プログラム551は、プール113Sにフリーページを増やす。その際、制御プログラム551は、スリープ時間(或るゼロ書きページに対するゼロ書きを行ってから次にゼロ書きページに対するゼロ書きを行うまでの時間長)を最短にして良い。
(f4)(f3-3)により、PVOL111Pに割り当てられている実ページの数以上のフリーページがプール113Sにできた場合、制御プログラム551は、(f3-2)を終了し、PVOL111PからSVOL111Sへのデータのコピーを行う。
Claims (15)
- 物理記憶デバイス群と、
ホストと前記物理記憶デバイス群とに接続されたコントローラと
を有し、
Thin Provisioningが適用された仮想的な論理ボリュームであり複数の仮想領域で構成された仮想ボリュームがあり、
前記物理記憶デバイス群に基づくプールがあり、前記プールは、複数の実領域で構成され、
前記実領域のステータスとして、(1)初期化済みであり仮想領域に割当て可能であることを意味する第1ステータス、(2)仮想領域に割り当てられていることを意味する第2ステータス、及び、(3)仮想領域に割当て不可能であり所定データの書込みである初期化がされることを意味する第3ステータスがあり、
前記コントローラは、下記の処理を行うようになっており、
(a)前記ホストから前記仮想ボリューム内の未割当ての仮想領域に対するライトコマンドを受信し、前記仮想ボリュームが関連付けられているプールから、前記第1ステータスの実領域を割り当て、その実領域のステータスを前記第2のステータスに変更し、
(b)前記仮想領域に割り当てられている実領域のステータスを、前記第3ステータスに変更し、
(c)前記第3ステータスの実領域を初期化し、その初期化が終了した場合に、その実領域のステータスを、前記第1ステータスに変更し、
前記コントローラが、前記プールに関連付けられる1以上の仮想ボリュームの総容量である仮想ボリューム総容量を、前記第3ステータスの実領域を前記プールが有するか否かを基に、前記プールの容量以下に制限する、
ストレージ装置。 - 請求項1記載のストレージ装置であって、
(f)前記コントローラは、仮想ボリューム総容量が増える増加処理の要求である増加要求を受信し、
(g)前記コントローラは、下記(p)の値が下記(q)の値以上か否かを判断し、
(p)前記プールの容量と、前記プール内の第3ステータスの実領域の総容量との差、
(q)仮想ボリューム総容量の増加分の容量と、仮想ボリューム総容量との和、
(h)前記コントローラは、前記(g)の判断の結果が肯定的の場合、前記増加処理を実行する、
ストレージ装置。 - 請求項2記載のストレージ装置であって、
前記コントローラが、1つの第3ステータスの実領域を初期化し、且つ、その実領域のステータスを第1ステータスに変更することで、前記プールから第3ステータスの実領域が1つ減り、
(i)前記コントローラは、前記(g)の判断の結果が否定的の場合、前記(p)の値が前記(q)の値以上になるぐらいに、前記プールから前記第3ステータスの実領域が減るまで、待ち、その後、前記増加処理を実行する、
ストレージ装置。 - 請求項3記載のストレージ装置であって、
前記物理記憶デバイス群に基づく複数のプールがあり、
前記コントローラは、前記(i)において、前記プール内の第3ステータスの実領域を初期化することを、前記複数のプールのうちの別のプール内の第3ステータスの実領域を初期化することよりも優先する、
ストレージ装置。 - 請求項4記載のストレージ装置であって、
前記コントローラは、スリープ時間周期で、前記プール内の1つの第3ステータスの実領域を初期化し、
前記(i)の前、前記スリープ時間は、第1の時間であり、
前記コントローラは、前記(i)において、前記スリープ時間を、前記第1の時間より短い第2の時間に変更する、
ストレージ装置。 - 請求項5記載のストレージ装置であって、
前記増加処理は、新たに仮想ボリュームを前記プールに関連付ける処理、又は、前記プールに関連付けられている仮想ボリュームの容量を拡張する処理である、
ストレージ装置。 - 請求項2記載のストレージ装置であって、
(j)前記コントローラは、前記(g)の判断の結果が否定的の場合、前記増加処理を実行しない、
ストレージ装置。 - 請求項1記載のストレージ装置であって、
(t)前記コントローラは、仮想ボリューム総容量が増える増加処理の要求である増加要求を受信し、
(u)前記コントローラは、前記プールの容量が、仮想ボリューム総容量の増加分の容量と仮想ボリューム総容量との和以上か否かを判断し、
(v)前記コントローラは、前記(u)の判断の結果が肯定的の場合、前記プールが第3ステータスの実領域を有するか否かを判断し、
(w)前記コントローラは、前記(v)の判断の結果が否定的の場合、前記増加処理を実行する、
ストレージ装置。 - 請求項8記載のストレージ装置であって、
(x)前記コントローラは、前記(v)の判断の結果が肯定的の場合、前記増加処理を実行しない、
ストレージ装置。 - 請求項1記載のストレージ装置であって、
前記コントローラは、管理情報を記憶する記憶資源と、コンピュータプログラムを実行するプロセッサとを有し、
前記管理情報は、前記仮想ボリュームの容量を表す情報と、前記プールに関連付けられている仮想ボリュームを表す情報と、前記プールの容量を表す情報と、前記プール内の各実ページのステータスを表す情報とを含み、
前記プロセッサは、前記コンピュータプログラムを起動した場合、その起動が初めてか否かを判断し、その判断の結果が肯定的の場合、前記管理情報を基に、前記プールに関連付けられている仮想ボリュームの総容量を算出し、算出された仮想ボリューム総容量を表す情報を、前記管理情報に含める、
ストレージ装置。 - 請求項1記載のストレージ装置であって、
前記物理記憶デバイス群に基づく複数のプールがあり、
第1のモードと、第2のモードがあり、
前記第1のモードがONの場合、前記複数のプールの全てが、仮想ボリューム総容量がプール容量以下に制限され、
前記第2のモードがONの場合、前記複数のプールのうち所定の条件を満たすプールだけが、仮想ボリューム総容量がプール容量以下に制限され、
前記第1のモードと前記第2のモードの両方がONの場合、前記第1のモードが優先される、
ストレージ装置。 - 請求項1記載のストレージ装置であって、
第1及び第2のプールがあり、
第1及び第2の仮想ボリュームがあり、
前記第1のプールは、仮想ボリューム総容量がプール容量以下に制限されるプールであり、
前記第2のプールは、仮想ボリューム総容量がプール容量以下に制限されないプールであり、
前記第1の仮想ボリュームが、前記第1のプールに関連付けられており、
前記第2の仮想ボリュームが、前記第2のプールに関連付けられており、
(A)前記コントローラが、前記第2のプールから前記第2の仮想ボリュームに割り当てられている全ての実ページのステータスを、第3ステータスに変更し、
(B)前記コントローラが、前記第1のプールから前記第1の仮想ボリュームに割り当てられている全ての実ページ内のデータを、前記第1の仮想ボリュームから前記第2の仮想ボリュームにコピーすることを、前記第2のプール内の第3ステータスの実ページが初期化され、且つ、その実ページのステータスが第1ステータスに変わるまで、待つ、
ストレージ装置。 - 請求項1記載のストレージ装置であって、
前記コントローラが、前記プール内の第3ステータスの実ページの総容量を算出し、算出された総容量を表示するための情報を出力する、
ストレージ装置。 - プールに関連付けられる仮想ボリュームの総容量を制限する方法であって、
前記プールは、物理記憶デバイス群に基づく複数の実領域で構成されており、
前記仮想ボリュームは、Thin Provisioningが適用された仮想的な論理ボリュームであり、複数の仮想領域で構成されており、
前記実領域のステータスとして、(1)初期化済みであり仮想領域に割当て可能であることを意味する第1ステータス、(2)仮想領域に割り当てられていることを意味する第2ステータス、及び、(3)仮想領域に割当て不可能であり所定データの書込みである初期化がされることを意味する第3ステータスがあり、
前記実領域のステータスは、下記のように遷移し、
(a)ホストから前記仮想ボリューム内の未割当ての仮想領域に対するライトの際に、前記仮想ボリュームが関連付けられているプールから、前記第1ステータスの実領域が割り当てられ、その実領域のステータスが、前記第2のステータスに変更され、
(b)前記仮想領域に割り当てられている実領域のステータスが、前記第3ステータスに変更され、
(c)前記第3ステータスの実領域が初期化され、その初期化が終了した場合に、その実領域のステータスが、前記第1ステータスに変更され、
前記方法が、前記プールに関連付けられる1以上の仮想ボリュームの総容量である仮想ボリューム総容量を、前記第3ステータスの実領域を前記プールが有するか否かを基に、前記プールの容量以下に制限する、
方法。 - ホストに対する通信インタフェース装置と、
前記通信インタフェース装置に接続されたプロセッサと
を有し、
Thin Provisioningが適用された仮想的な論理ボリュームであり複数の仮想領域で構成された仮想ボリュームがあり、
物理記憶デバイス群に基づくプールがあり、前記プールは、複数の実領域で構成され、
前記実領域のステータスとして、(1)初期化済みであり仮想領域に割当て可能であることを意味する第1ステータス、(2)仮想領域に割り当てられていることを意味する第2ステータス、及び、(3)仮想領域に割当て不可能であり所定データの書込みである初期化がされることを意味する第3ステータスがあり、
前記プロセッサは、下記の処理を行うようになっており、
(a)前記ホストから前記仮想ボリューム内の未割当ての仮想領域に対するライトコマンドを受信し、前記仮想ボリュームが関連付けられているプールから、前記第1ステータスの実領域を割り当て、その実領域のステータスを前記第2のステータスに変更し、
(b)前記仮想領域に割り当てられている実領域のステータスを、前記第3ステータスに変更し、
(c)前記第3ステータスの実領域を初期化し、その初期化が終了した場合に、その実領域のステータスを、前記第1ステータスに変更し、
前記プロセッサが、前記プールに関連付けられる1以上の仮想ボリュームの総容量である仮想ボリューム総容量を、前記第3ステータスの実領域を前記プールが有するか否かを基に、前記プールの容量以下に制限する、
記憶制御装置。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2010/003018 WO2011135617A1 (ja) | 2010-04-27 | 2010-04-27 | プールに関連付けられる仮想ボリュームの総容量を制限する方法及びストレージ装置 |
JP2012512531A JP5303066B2 (ja) | 2010-04-27 | 2010-04-27 | プールに関連付けられる仮想ボリュームの総容量を制限する方法及びストレージ装置 |
US12/935,908 US8677080B2 (en) | 2010-04-27 | 2010-04-27 | Method of controlling total capacity of virtual volumes associated with pool and storage apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2010/003018 WO2011135617A1 (ja) | 2010-04-27 | 2010-04-27 | プールに関連付けられる仮想ボリュームの総容量を制限する方法及びストレージ装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2011135617A1 true WO2011135617A1 (ja) | 2011-11-03 |
Family
ID=44816768
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2010/003018 WO2011135617A1 (ja) | 2010-04-27 | 2010-04-27 | プールに関連付けられる仮想ボリュームの総容量を制限する方法及びストレージ装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8677080B2 (ja) |
JP (1) | JP5303066B2 (ja) |
WO (1) | WO2011135617A1 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016129053A1 (ja) * | 2015-02-10 | 2016-08-18 | 株式会社日立製作所 | ストレージ装置の管理計算機 |
JP2017130132A (ja) * | 2016-01-22 | 2017-07-27 | Necプラットフォームズ株式会社 | ストレージアクセス制御装置、ストレージアクセス制御システム、ストレージアクセス制御方法、及び、ストレージアクセス制御プログラム |
JP2020060983A (ja) * | 2018-10-10 | 2020-04-16 | 株式会社日立製作所 | ストレージシステム及びストレージ制御方法 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8543786B2 (en) * | 2010-09-29 | 2013-09-24 | Hitachi, Ltd. | Computer system and computer system management method for adding an unused real volume to a pool |
US8495331B2 (en) * | 2010-12-22 | 2013-07-23 | Hitachi, Ltd. | Storage apparatus and storage management method for storing entries in management tables |
WO2014002162A1 (ja) * | 2012-06-25 | 2014-01-03 | 富士通株式会社 | ストレージ制御装置、情報処理装置、ストレージ制御プログラム、及びストレージ制御方法 |
US9104590B2 (en) * | 2012-07-20 | 2015-08-11 | Hitachi, Ltd. | Storage system including multiple storage apparatuses and pool virtualization method |
TWI492051B (zh) * | 2012-09-05 | 2015-07-11 | Silicon Motion Inc | 資料儲存裝置與快閃記憶體控制方法 |
US9201598B2 (en) * | 2012-09-14 | 2015-12-01 | International Business Machines Corporation | Apparatus and method for sharing resources between storage devices |
US10248320B2 (en) * | 2016-10-28 | 2019-04-02 | International Business Machines Corporation | Workload-aware thin-provisioning storage-allocation system |
EP3695319B1 (en) * | 2017-09-27 | 2022-11-23 | Telefonaktiebolaget LM Ericsson (publ) | Method and reallocation component for managing reallocation of information from source to target memory sled |
US11249852B2 (en) | 2018-07-31 | 2022-02-15 | Portwonx, Inc. | Efficient transfer of copy-on-write snapshots |
US11354060B2 (en) | 2018-09-11 | 2022-06-07 | Portworx, Inc. | Application snapshot for highly available and distributed volumes |
US11494128B1 (en) | 2020-01-28 | 2022-11-08 | Pure Storage, Inc. | Access control of resources in a cloud-native storage system |
US11531467B1 (en) | 2021-01-29 | 2022-12-20 | Pure Storage, Inc. | Controlling public access of resources in a secure distributed storage system |
US11520516B1 (en) | 2021-02-25 | 2022-12-06 | Pure Storage, Inc. | Optimizing performance for synchronous workloads |
US11733897B1 (en) | 2021-02-25 | 2023-08-22 | Pure Storage, Inc. | Dynamic volume storage adjustment |
US11726684B1 (en) | 2021-02-26 | 2023-08-15 | Pure Storage, Inc. | Cluster rebalance using user defined rules |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008097502A (ja) * | 2006-10-16 | 2008-04-24 | Hitachi Ltd | 容量監視方法及び計算機システム |
JP2010033261A (ja) * | 2008-07-28 | 2010-02-12 | Hitachi Ltd | ストレージ装置及びその制御方法 |
JP2010073095A (ja) * | 2008-09-22 | 2010-04-02 | Hitachi Ltd | 計算機システム及びその制御方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7032093B1 (en) | 2002-08-08 | 2006-04-18 | 3Pardata, Inc. | On-demand allocation of physical storage for virtual volumes using a zero logical disk |
US6823442B1 (en) | 2003-05-12 | 2004-11-23 | 3Pardata, Inc. | Method of managing virtual volumes in a utility storage server system |
US8918585B2 (en) * | 2010-01-28 | 2014-12-23 | Hitachi, Ltd. | Management system calculating storage capacity to be installed/removed |
-
2010
- 2010-04-27 JP JP2012512531A patent/JP5303066B2/ja not_active Expired - Fee Related
- 2010-04-27 WO PCT/JP2010/003018 patent/WO2011135617A1/ja active Application Filing
- 2010-04-27 US US12/935,908 patent/US8677080B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008097502A (ja) * | 2006-10-16 | 2008-04-24 | Hitachi Ltd | 容量監視方法及び計算機システム |
JP2010033261A (ja) * | 2008-07-28 | 2010-02-12 | Hitachi Ltd | ストレージ装置及びその制御方法 |
JP2010073095A (ja) * | 2008-09-22 | 2010-04-02 | Hitachi Ltd | 計算機システム及びその制御方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016129053A1 (ja) * | 2015-02-10 | 2016-08-18 | 株式会社日立製作所 | ストレージ装置の管理計算機 |
JP2017130132A (ja) * | 2016-01-22 | 2017-07-27 | Necプラットフォームズ株式会社 | ストレージアクセス制御装置、ストレージアクセス制御システム、ストレージアクセス制御方法、及び、ストレージアクセス制御プログラム |
WO2017126586A1 (ja) * | 2016-01-22 | 2017-07-27 | Necプラットフォームズ株式会社 | ストレージアクセス制御装置、ストレージアクセス制御システム、ストレージアクセス制御方法、及び、ストレージアクセス制御プログラムが格納された記録媒体 |
JP2020060983A (ja) * | 2018-10-10 | 2020-04-16 | 株式会社日立製作所 | ストレージシステム及びストレージ制御方法 |
US11740823B2 (en) | 2018-10-10 | 2023-08-29 | Hitachi, Ltd. | Storage system and storage control method |
Also Published As
Publication number | Publication date |
---|---|
US8677080B2 (en) | 2014-03-18 |
US20110264868A1 (en) | 2011-10-27 |
JP5303066B2 (ja) | 2013-10-02 |
JPWO2011135617A1 (ja) | 2013-07-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5303066B2 (ja) | プールに関連付けられる仮想ボリュームの総容量を制限する方法及びストレージ装置 | |
JP5314772B2 (ja) | 性能の異なる実領域群で構成されたプールを有するストレージシステムの管理システム及び方法 | |
US8612704B2 (en) | Storage system with virtual areas and method for managing storage system | |
JP5749803B2 (ja) | 情報記憶システム及びストレージシステム管理方法 | |
JP4684864B2 (ja) | 記憶装置システム及び記憶制御方法 | |
EP1837751B1 (en) | Storage system, storage extent release method and storage apparatus | |
JP5080611B2 (ja) | ThinProvisioningが適用されたストレージ装置 | |
JP5706531B2 (ja) | 計算機システム、及び情報管理方法 | |
WO2012049711A1 (en) | Data migration system and data migration method | |
US9250813B2 (en) | Storage system coupled to a host computer and a management device | |
US20130036279A1 (en) | Storage system using real data storage area dynamic allocation method | |
US20120297156A1 (en) | Storage system and controlling method of the same | |
WO2013098960A1 (ja) | 計算機システム、ファイル管理方法及び記憶媒体 | |
JP2011070345A (ja) | 計算機システム、計算機システムの管理装置、計算機システムの管理方法 | |
JP5957520B2 (ja) | データ管理システム及び方法 | |
US7676644B2 (en) | Data processing system, storage apparatus and management console | |
JP6772202B2 (ja) | ストレージシステム及び記憶制御方法 | |
JP6019169B2 (ja) | 情報記憶システム | |
WO2017085792A1 (ja) | ストレージシステム、及びストレージシステムの制御方法 | |
JP7113698B2 (ja) | 情報システム | |
JP2015111460A (ja) | 管理計算機、計算機システム、及び管理方法 | |
WO2018167950A1 (ja) | ストレージシステム及び複製制御方法 | |
JP2024079042A (ja) | ストレージシステム及び記憶制御方法 | |
JP2018169637A (ja) | 情報処理装置,仮想化プログラムおよび仮想化方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WWE | Wipo information: entry into national phase |
Ref document number: 12935908 Country of ref document: US |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 10850640 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2012512531 Country of ref document: JP |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 10850640 Country of ref document: EP Kind code of ref document: A1 |