WO2016203612A1 - ストレージ装置 - Google Patents
ストレージ装置 Download PDFInfo
- Publication number
- WO2016203612A1 WO2016203612A1 PCT/JP2015/067604 JP2015067604W WO2016203612A1 WO 2016203612 A1 WO2016203612 A1 WO 2016203612A1 JP 2015067604 W JP2015067604 W JP 2015067604W WO 2016203612 A1 WO2016203612 A1 WO 2016203612A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- area
- data
- page
- storage
- write
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- 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/061—Improving I/O performance
-
- 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/0608—Saving storage space on 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/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0661—Format or protocol conversion arrangements
-
- 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/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- 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/0673—Single storage device
-
- 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
Definitions
- the present invention relates to a storage apparatus.
- the storage apparatus has a plurality of storage devices for storing data and a storage controller for controlling the storage devices, and aims to provide a large capacity data storage space to the host computer.
- Storage devices are required to store large amounts of data at low cost.
- a technique for recording data by lossless compression hereinafter simply referred to as compression
- the data retention cost bit cost of the storage medium, power consumption cost of the storage device, etc.
- Patent Document 1 discloses that, in a storage system that manages a plurality of storage hierarchies (tiers), for example, data to be moved to a lower tier is compressed and stored.
- the compression rate changes depending on the data content. Therefore, after the storage system compresses the data and stores it in the storage device, when the update data of the data is received from the host computer, the size of the update data after compression is larger than the size of the compressed data stored in the storage device. May grow. In this case, the compressed update data cannot be overwritten on the area where the compressed data before update is recorded, and a different storage method is required.
- a storage apparatus includes one or more storage devices and a storage controller.
- the storage controller manages the storage device area by dividing it into an overwrite storage area and an additional write storage area, and performs data movement between the overwrite storage area and the additional write storage area.
- the data that has been updated less frequently is moved from the overwrite storage area to the additional storage area.
- the storage controller adds the update data to the write-once storage area.
- the storage device according to one aspect of the present invention can improve the efficiency of the storage device.
- FIG. 1 is a configuration example of a computer system including a storage apparatus according to a first embodiment. It is a figure showing the relationship between a virtual volume and a page. It is a structural example of a pool management table. It is a structural example of a virtual volume management table. It is an example of a structure of a LBA management table. It is a structural example of a compression page management table. It is a structural example of a threshold value table. It is a structural example of a free space management table. It is a flowchart of a write process. It is a flowchart of a destage process. It is a conceptual diagram of the data movement from an additional writing page to an overwrite page. It is a flowchart of a movement determination process.
- 12 is a configuration example of a virtual volume management table included in a storage apparatus according to a second embodiment. 12 is a configuration example of a threshold table included in the storage apparatus according to the second embodiment. It is a flowchart (1) of a movement determination process. It is a flowchart (2) of a movement determination process. It is a flowchart of the movement process to the overwrite page of the data of an additional writing page based on a learning result.
- compression means a process of reducing the data size while maintaining the meaning of the data using a reversible compression algorithm such as the LZW algorithm.
- data written from the host to the storage apparatus may be compressed.
- compressed data Data that has been reduced in size as a result of compression processing performed by the storage device
- uncompressed data data that has not been subjected to compression processing by the storage device
- decompression or “decompression”.
- compression rate is used as an index of the data size reduction efficiency by data compression.
- the compression rate can take a value between 0 and 1.
- “low compression rate” means that the data size has not been reduced by compression.
- the compression rate is zero.
- “high compression rate” means that the amount of data size reduction due to compression is large.
- Updating the storage area means rewriting (overwriting) the contents of the data stored in the storage area with new contents.
- Data that has been stored in a storage area before it is updated is referred to as “pre-update data”.
- pre-update data data that has been stored in a storage area before it is updated
- update data data newly written in the storage area
- “Volume” means a storage space provided by a target device such as a storage device or storage device to an initiator device such as a host computer.
- a target device such as a storage device or storage device to an initiator device such as a host computer.
- the initiator device issues a data write request for an area on the storage space
- the data is stored in the area on the target device associated with the area.
- the storage apparatus provides a virtual volume formed by so-called Thin Provisioning technology to the host as a volume. In the initial state of the virtual volume (immediately after the virtual volume is defined), no storage device is associated with an area on the storage space.
- the initiator device host
- the storage apparatus dynamically determines a storage device associated with the area.
- block means an area on a storage space (volume or the like) provided by the target device to the initiator device.
- a block is an area having a size equal to the minimum access unit such as a volume and has a fixed length.
- the block size is 512 bytes.
- LBA Logical Block Address
- an LBA assigned to a block of a volume (virtual volume) provided to the host by the storage apparatus may be referred to as a “host LBA”.
- Append write or “append” means an operation of sequentially writing data to an unused area of a storage area.
- a storage area for additional writing is provided.
- the storage device stores the end address to which data has been written in the immediately preceding write process, and writes data from the address next to this end address when performing the write process.
- FIG. 1 shows a configuration example of a computer system including the storage apparatus 1 according to the first embodiment.
- the storage device 1 includes a storage controller 10 and a plurality of storage devices 20 connected to the storage controller 10.
- the storage device 20 is used for the storage device 1 to store write data from a host device such as the host 2.
- a host device such as the host 2.
- an HDD (Hard Disk Drive) 25 using a magnetic disk as a storage medium, or an SSD (Solid State Drive) 21 adopting a nonvolatile semiconductor memory such as a flash memory as a storage medium is used.
- a removable storage medium such as a DVD-RW (22) may be used.
- the storage device 20 is connected to the storage controller 10 by a transmission line (SAS link) conforming to the SAS (Serial Attached SCSI) standard, a transmission line (PCI link) conforming to the PCI (Peripheral Component Interconnect) standard, or the like.
- One or more hosts 2 are connected to the storage controller 10.
- a management host 5 is connected to the storage controller 10.
- the storage controller 10 and the host 2 are connected via a SAN (Storage Area Network) 3 formed using a fiber channel as an example.
- the storage controller 10 and the management host 5 are connected via a LAN (Local Area Network) 6 formed using Ethernet as an example.
- the storage controller 10 includes at least a processor (also referred to as a CPU) 11, a host interface (also referred to as “host I / F”) 12, a device interface (also referred to as “device I / F”) 13, a memory 14, and a management I / F 15. And a compression circuit (also referred to as a compression unit) 16.
- the processor 11, host I / F 12, device I / F 13, memory 14, management I / F 15, and compression unit 16 are interconnected via an internal switch (also referred to as an internal SW) 17.
- an internal switch also referred to as an internal SW
- the device I / F 13 has at least an interface controller and a transfer circuit.
- the interface controller is a component for converting a protocol (SAS in one example) used in the storage device 20 into a communication protocol (PCI-Express as an example) used in the storage controller 10.
- the transfer circuit is used when the storage controller 10 transfers data (read, write) to the storage device 20.
- the host I / F 12 has at least an interface controller and a transfer circuit, like the device I / F 13.
- the interface controller included in the host I / F 12 converts a communication protocol (for example, fiber channel) used in the data transfer path between the host 2 and the storage controller 10 and a communication protocol used in the storage controller 10. belongs to.
- the processor 11 performs various controls of the storage device 1.
- the memory 14 is used for storing a program executed by the processor 11 (referred to as a storage control program) and various management information of the storage apparatus 1 used by the processor 11.
- the storage apparatus 1 (or the storage controller 10) performs processing such as destage processing and movement determination processing (described later) is used.
- the storage control program is executed by the processor (CPU) 11 so that the CPU 11 performs these processes using the host I / F 12, the device I / F 13, the memory 14, and the compression circuit 16.
- the storage controller 10 (or the storage apparatus 1) may be expressed as performing these processes.
- the memory 14 is also used for temporarily storing I / O target data for the storage device 20.
- the storage area in the memory 14 used for temporarily storing the I / O target data for the storage device 20 is referred to as “cache memory” or “cache”.
- a volatile storage medium such as DRAM or SRAM is used.
- the memory 14 may be configured using a nonvolatile memory.
- an auxiliary power source such as a battery may be mounted on the storage device 1 so that the storage contents of the memory 14 can be maintained during a power failure.
- the management host 5 is a computer for performing management operations of the storage apparatus 1.
- the management host 5 includes input / output devices (not shown) such as a keyboard and a display, and a user (administrator) can issue a setting instruction to the storage apparatus 1 using the input / output devices.
- the management host 5 can also display information such as the status of the storage apparatus 1 on an output device such as a display.
- the compression unit (compression circuit) 16 is hardware having a function of compressing data or decompressing the compressed data.
- the storage device 1 can compress a part (or all) of data stored in the storage device 20 using the compression unit 16.
- the compression unit 16 is implemented by hardware such as ASIC (Application Specific Integrated Circuit).
- the compression unit 16 may be provided with a processor and a memory, and the compression unit 16 may be configured to compress or expand data by executing a program for performing data compression by the processor.
- the CPU 11 executes a program for performing data compression, thereby causing the CPU 11 to compress or expand data. You may do it.
- the one or more storage devices 20 included in the storage apparatus 1 according to the present embodiment provide a storage space of a predetermined size to the storage controller 10.
- the storage controller 10 does not directly provide the storage space provided by the storage device 20 to the host 2.
- the storage controller 10 provides the host 2 with one or more virtual storage spaces different from the storage space provided by the storage device 20. This virtual storage space is called a “virtual volume”.
- the storage controller 10 can provide a plurality of virtual volumes to the host 2, an example in which the storage controller 10 provides one virtual volume to the host 2 will be described below unless otherwise specified.
- the storage device 1 manages the storage space of the virtual volume by dividing it into a plurality of partial areas of a predetermined size (42 MB as an example). In this embodiment, this partial area is called a “virtual page”. In the following description, the virtual page size is 42 MB. However, the virtual page size may be other than this.
- the virtual volume is a volume that is formed using a known Thin Provisioning technology, and the storage apparatus 1 dynamically allocates the storage area of the storage device 20 to the virtual page when receiving an access request for the virtual page of the virtual volume. Assign to (map).
- the storage apparatus 1 When the storage apparatus 1 receives a write request for a virtual page of a virtual volume from the host 2, the storage apparatus 1 selects an unused area (an area not yet allocated to the virtual page) among the storage areas of the storage device 20. Then, the selected area is allocated (mapped) to the virtual page to be accessed. Write data from the host 2 is stored in an area (page) mapped to this access target virtual page. In addition, the storage device 1 stores the correspondence (mapping) between the virtual page and the storage area allocated to the virtual page in a mapping table (referred to as the virtual volume management table 100 in this embodiment). When the read request for the virtual page is received, the storage apparatus 1 refers to the mapping table to identify the storage area allocated to the virtual page, and reads data from the specified storage area.
- a mapping table referred to as the virtual volume management table 100 in this embodiment
- FIG. 2 shows an example of the relationship between the virtual volume and the storage area allocated to the virtual volume.
- a set of storage areas to be allocated to the virtual volume is referred to as a “pool”.
- the storage area in the pool is managed by being divided into partial areas having the same size as the virtual page.
- the partial area having the same size as the virtual page is called a “physical page” or “page”.
- the rectangular object 40 shown in FIG. 2 represents the storage space of the virtual volume.
- a cylindrical object 50 represents a pool.
- Each virtual page has a unique identification number (a non-negative integer value is used for the identification number) called a virtual page number (sometimes written as VP #).
- a virtual page with a virtual page number n (n is a non-negative integer value) is denoted as “VP # n”.
- each physical page is given a unique identification number in the storage apparatus 1 called a physical page number (or page #) (this identification number is also a non-negative integer value).
- page #n a physical page whose physical page number is n (n is a non-negative integer value) is denoted as “page #n”.
- the storage controller 10 determines a physical page to be allocated to a virtual page including the area only after receiving a write request for the area on the virtual page from the host 2. As the physical page determined here, any one page is selected from pages (unused pages) that have not yet been assigned to any virtual page. In the example of FIG. 2, page # 1 is mapped to VP # 0, and page # 0 is mapped to VP # 1.
- the storage apparatus 1 When the storage apparatus 1 receives a write request (and write data) for an area (one or a plurality of blocks) in the virtual page from the host 2, the write data is stored in the block in the physical page mapped to the virtual page. Is done.
- write data requested to be written to the nth block from the top of the virtual page is mapped to the virtual page.
- the storage device 1 Stored in the nth block from the top of the physical page being stored. Therefore, the storage device 1 is mapped to an arbitrary block on the virtual volume if only the mapping between the virtual page and the storage area (physical page) allocated to the virtual page is recorded in the mapping table.
- the storage area on the storage device 20 can be uniquely specified.
- VP # 2 and VP # 3 represent an example in which compressed data is stored.
- data written to the nth block from the top of the virtual page is the physical data.
- a regular relationship such as writing to the nth block of the page is not maintained. Details will be described later.
- FIG. 3 shows an example of the pool management table 200.
- the pool management table 200 is a table that manages a pool, that is, a set of storage areas to be allocated to virtual volumes, and is stored in the memory 14.
- Each row (record) of the pool management table 200 stores information on physical pages in the pool.
- Each record has columns of page # (201), DEV # (202), Addr (203), type (204), and use (205).
- Page number (201) stores the page number of the physical page. That is, the record of page # (201) n is a record for managing information of page #n.
- DEV # (202) and Addr (203) the identification number of the storage device to which the physical page belongs and the address in the storage device are stored.
- type (204) the type of storage device (for example, HDD, SSD, etc.) to which the physical page belongs is stored.
- Use (205) stores information indicating the usage status of the physical page. When the physical page is mapped to the virtual page, “1” is stored in the use (205). Conversely, when the physical page is not mapped to the virtual page, “0” is stored in use (205).
- the storage area of the storage device 20 (for example, HDD) is registered in the pool 50, and each page is composed of the storage areas in one storage device 20, but this is shown.
- the storage device 1 forms a single logical storage device (referred to as a logical device) from a plurality of storage devices 20 using RAID (Redundant Arrays of Independent (or Inexpensive) Disks) technology
- RAID Redundant Arrays of Independent (or Inexpensive) Disks
- storage of the logical device The area may be registered in the pool.
- the logical device identification number and the address in the logical device are stored in DEV # (202) and Addr (203) of the pool management table 200.
- FIG. 4 shows an example of the virtual volume management table 100.
- a virtual volume management table 100 is also stored in the memory 14.
- Each record of the virtual volume management table 100 stores information about virtual pages in the virtual volume. Specifically, each record includes virtual page # (101), host LBA (102), page layout (103), page # (104), presence / absence of update (105), period without continuous update (107), allocation amount (111) information is stored.
- each record of the virtual volume management table 100 represents that the virtual page specified by the virtual page # (101) corresponds to an area of one page (42 MB) having the host LBA (102) as the start address. Yes.
- the host LBA (102) of the record whose virtual page # (101) is 1 is “0015000”, it is confirmed that the area where the host LBA of the virtual volume is 0015000 to 0919fff corresponds to VP # 1. Represents.
- the page # of the physical page assigned to the virtual page is stored.
- an invalid value (null, eg, a value that is not normally used as a page number, such as “ ⁇ 1”) is stored in page # (104).
- the example of the virtual volume management table 100 described here shows an example in which one virtual volume is defined in the storage apparatus 1.
- the virtual volume identifier for example, the host 2 identifies the volume.
- a logical unit number (LUN) that is an identification number used for the purpose is also included in the virtual volume management table 100.
- the page compression performed in the storage apparatus 1 Before explaining the page arrangement 103 and the allocated amount (111), the page compression performed in the storage apparatus 1 according to the present embodiment will be described.
- the storage apparatus 1 receives a data write request for a virtual page of a virtual volume from the host 2, if the page is not mapped to the virtual page, the page is mapped to the virtual page, and then the data remains as it is ( Write to the page (without compression). Thereafter, the storage device 1 compresses the data in the page according to the page state.
- the storage device 1 compresses data in a page when it detects a page in a state where “write (update) has not been performed on the page for a certain period of time or longer”.
- other conditions may be used as the conditions for compressing the in-page data.
- a page to be compressed is designated from the outside (such as the management host 5 or the host 2), the data in the page may be compressed.
- the compressed data When compressing data (uncompressed data) stored in a page and not subjected to compression processing, the compressed data is stored in a page different from the page in which the uncompressed data is stored.
- a page storing uncompressed data is referred to as an “overwrite page”
- a page storing compressed data is referred to as an “additional page”.
- the additionally written page is sometimes called a compressed page.
- the additional write page is also a page in the pool 50 (a page managed by the pool management table 200).
- the storage device 1 has a table (additional page management table) for managing only the additional page so that the overwrite page and the additional page can be distinguished. Details will be described later.
- the storage apparatus 1 When compressing data, the storage apparatus 1 performs compression for each partial area of a predetermined size in the virtual page (or overwrite page).
- the area in the virtual page is divided into 8 KB partial areas in order from the top of the virtual page, and data compression is performed for each partial area.
- this 8 KB partial area is called a “segment”.
- a size other than 8 KB may be adopted as the size of the partial area.
- the storage controller 10 when compressing data of a page mapped to VP # 2 (overwrite page), the storage controller 10 reads the data from the top of the page mapped to VP # 2 by 8 KB and uses the compression circuit 16. Then, the read 8 KB data is compressed. A chunk of data generated by compressing 8 KB data is called a “compressed segment”. Then, the storage controller 10 stores the compressed segment into a write-once page. In principle, when compressing the data of the overwrite page, all the data in the overwrite page is compressed and moved to the additional page.
- overwritten page data (compressed segments) can be stored in one additional page.
- the data written to VP # 2 (more precisely, the data stored in the overwrite page mapped to VP # 2) and the data written to VP # 3 are additional write pages.
- An example of moving to page # 2 is shown.
- the allocation amount 111 of each record the data amount of the virtual page managed by the record is stored.
- the allocated amount 111 stores the same size (for example, 42 MB) as the size of the page (or virtual page).
- the allocated amount 111 stores the compressed size of the virtual page data.
- the allocation amount 111 of the record with the virtual page # (101) “2” that is, the record storing the management information of VP # 2) is 10 MB
- the data of VP # 2 is 10 MB. It means that it was compressed.
- the storage apparatus 1 When the virtual page data is moved to the write-once page, to manage the storage area mapped to the virtual page, it is necessary to manage at a finer granularity than the page. Therefore, the storage apparatus 1 according to the present embodiment has a table (LBA management table) for managing mapping information for a virtual page whose data has been moved to an additional write page.
- FIG. 5 shows an example of the LBA management table 120.
- the LBA management table 120 includes columns of a host LBA 121, a data length 122, and a data storage location 123.
- the LBA management table 120 is also stored in the memory 14.
- Each record of the LBA management table 120 stores information on a storage area mapped to a segment in a virtual page.
- the host LBA 121 stores the host LBA of the first block of the segment in the virtual page.
- position information on the additionally written page is stored.
- position information stored in the data storage position 123 a set of a physical page number and a relative address in the physical page is used.
- the relative address in the physical page is an offset address when the address of the first block in the physical page is 0. For example, when the position information of the kth block from the top of page #n (n is an integer value) is stored, (n, (k ⁇ 1)) is stored.
- each record is mapped to an 8 KB area starting from the address specified by the host LBA 121 in the area in the virtual volume (virtual page), and the area starting at the data storage position 123 and having a data length of 122 is mapped. (And compressed data is stored in this area).
- FIG. 6 shows an example of the additional write page (compressed page) management table 130 and the final write position 134.
- the additional write page management table 130 is a table for managing pages secured as additional write pages, and is stored in the memory 14.
- the additional page management table 130 includes columns of a relative address 131, a page # (132), and a host LBA (133). This indicates that the physical page with the page number recorded in the page # (132) column is secured as an additional page.
- the relative address 131 stores the relative address in the physical page specified by the page # (132).
- the block specified by the relative address 131 and page # (132) is mapped to an 8 KB virtual volume area starting from the host LBA (133). Since the size of the compressed data is indefinite (varies depending on the data contents), a plurality of blocks may be mapped to the 8 KB virtual volume area starting from the host LBA (133). For example, when the size of the compressed data is 1 KB, there are two records having the same host LBA (133) but different relative addresses 131 and page # (132).
- the storage apparatus 1 can manage the storage area in the pool separately for the additional page and the overwrite page.
- a page (page identified by page # (104)) mapped to a virtual page whose page layout (103) is “overwrite” is an overwrite page, and additional page management is performed.
- a page in which the page number is recorded in page # (132) in the table 130 is an additional page.
- a page that is neither an overwrite page nor an additional page (a page in which use (205) is “0” in the pool management table 200) can be an overwrite page or an additional page.
- the storage area used as the overwrite page and the storage area used as the additional page may be storage areas belonging to the same storage device 20.
- a storage area used as an overwrite page and a storage area used as an additional page may be storage areas belonging to different storage devices 20.
- a set of additional write pages is sometimes referred to as an “additional write pool”.
- the storage controller 10 also manages the final write position 134 (held on the memory 14).
- the final write position 134 indicates the position of the area where the compressed segment was last written, and the storage controller 10 determines the write destination of the compressed segment based on the final write position 134 at the time of additional writing.
- the next address after the final write position 134 corresponds to the start position of the unused area of the additional write page, and the area before the final write position 134 is an area in which a compressed segment is stored (or a compressed segment has been stored in the past). Area).
- the storage controller 10 writes a compressed segment to an additional write page, the compressed segment is written from the address next to the final write position 134 (that is, added). After writing the compressed segment, the storage controller 10 updates the final write position 134.
- each management table (LBA management table 120, additional page management table 130, etc.) described above is used when the storage controller 10 reads / writes the additional page.
- LBA management table 120, additional page management table 130, etc. each management table described above is used when the storage controller 10 reads / writes the additional page.
- the storage controller 10 calculates VP # from the read destination address (LBA) included in the read request.
- LBA read destination address
- the storage controller 10 refers to the virtual volume management table 100, and when the page arrangement 103 of VP # k is “additional writing”, the storage location of the read target data (by referring to the LBA management table 120) ( The data storage position 123 and the data length 122) are specified.
- the storage controller 10 refers to this and the pool management table 200 so that the storage controller 10 stores the read target data in which area of which storage device. Can be specified.
- Storage controller 10 reads the read target data from the specified storage device. Since the read data is compressed, the storage controller 10 decompresses the data using the compression circuit 16 and returns the decompressed data to the host 2.
- the storage apparatus 1 can accept an update request from the host 2 to the virtual page whose data has been moved to the write-once page.
- An outline of processing performed when the storage apparatus 1 receives a write (update) request from the host 2 to a virtual page to which an additional page is mapped will be described. Here, it is assumed that the data write range specified by the write request matches the segment boundary.
- the storage controller 10 compresses the write data (update data) received from the host 2 to generate a compressed segment.
- this compressed segment is referred to as an “updated compressed segment”.
- the pre-update data of the write data (update data) is recorded in a compressed state on the additional writing page.
- the pre-update data in the compressed state recorded on the additional page is referred to as “pre-update compressed segment”.
- the post-update compressed segment is appended after the last compressed segment stored in the postscript page. Then, the storage controller 10 updates the LBA management table 120 and the additional page management table 130.
- x is stored in the host LBA (133) of the record in which the page # (132) is y and the relative address (131) is z in the additional page management table 130. Then, the value of the host LBA (133) of the record with the page # (132) of y 'and the relative address (131) of z' in the additional page management table 130 is changed to "null". That is, the area where the pre-update compressed segment is stored is changed to an area not mapped to the virtual page.
- the reason why the post-update compressed segment is not stored (overwritten) in the storage area where the pre-update compressed segment is stored is that the size of the post-update compressed segment may be different from the size of the pre-update compressed segment.
- the size of the post-update compressed segment is larger than the size of the pre-update compressed segment, the post-update compressed segment cannot be overwritten in the storage area in which the pre-update compressed segment is stored.
- this problem is solved by additionally storing the updated compressed segment in the additional writing page.
- the storage controller 10 If the size of the write data is smaller than the segment size, the storage controller 10 reads the compressed segment stored in the additional page, decompresses it using the compression circuit 16, and stores the decompressed data on the cache memory. . Then, the storage controller 10 overwrites the decompressed data on the cache memory with the write data received from the host 2, and compresses the decompressed decompressed data using the compression circuit 16, thereby creating an updated compressed segment. The updated compressed segment is added to the unused area of the additional page.
- the above explanation is mainly for explaining how to use each management table (LBA management table 120, additional page management table 130, etc.). Therefore, particularly when a write (update) request from the host 2 is received for a virtual page, the processing actually performed by the storage controller 10 is slightly different from that described above. For example, when a write (update) request from the host 2 is received for a virtual page whose data has been moved to an additional page, depending on conditions, the data is moved from the additional page to the overwrite page, etc. Processing different from the processing described is performed. Details of processing performed when the storage apparatus 1 receives a write (update) request from the host 2 will be described later.
- garbage collection is a process of collecting an area (unused area) that is not mapped to a virtual page, and packing data (moving data to the front of the additional page).
- the host LBA 133 corresponding to the block whose relative address 131 is 1 and page # (132) is 2 is null. Therefore, in the garbage collection process, the data of the next block (the block whose relative address (131) is 2 and page (132) is 2) is moved to the block whose relative address 131 is 1 and page # (132) is 2. Further, the data of the next block (the block whose relative address (131) is 3 and page (132) is 2) is moved to the block whose relative address 131 is 2 and page # (132) is 2. . .
- the data packing is performed by repeatedly executing the process. At the same time, the LBA management table 120 is updated.
- garbage collection may be performed by a method other than that described here. For example, a plurality of blocks may be read out together and moved for efficient processing.
- FIG. 7 shows the contents of the threshold table 300 managed by the storage apparatus 1 according to this embodiment.
- the threshold table 300 is stored in the memory 14.
- the threshold table 300 stores a compression permission threshold 301 and a CM upper page update amount threshold 302.
- the values stored in the threshold value table 300 are set or changed by the administrator using the management host 5 or the like. Alternatively, as another embodiment, recommended values may be set in the threshold table 300 in advance.
- the compression permission threshold 301 stores the number of days (or time). When the overwritten page has not been updated for the period specified by the compression permission threshold 301 or more, the storage apparatus 1 according to the present embodiment moves the data in the overwritten page to the additional page. In the example of FIG. 7, since “7 days” is stored in the compression permission threshold 301, in this case, the storage apparatus 1 moves overwritten page data that has not been updated for more than 7 days to an additional page. .
- the on-CM page update amount threshold 302 stores information related to the trigger when moving the data of the additional page to the overwrite page.
- the amount of update data from the host 2 for a certain page to be added is greater than or equal to the amount specified by the CM page update amount threshold 302
- the storage apparatus 1 has data for that page to be written. Move to the overwrite page.
- the CM upper page update amount threshold 302 stores the ratio (percentage) of the update data amount to one page size. However, instead of the ratio, the data amount (byte, MB, etc.) may be stored.
- the virtual page is mapped to the overwrite page instead of the additional page, and the data stored in the additional page is stored in the overwrite page. Write the updated data on the overwrite page. Details will be described later.
- FIG. 8 shows the contents of the free space management table 400 managed by the storage apparatus 1 according to this embodiment.
- the free space management table 400 is stored in the memory 14.
- the free space management table 400 stores information on a free space securing ratio 401, an additional write data amount 402, an update reservable amount 403, a free space usage amount 404, and an update free space 405.
- the free space securing ratio 401 is a preset value (this value may be a fixed value that cannot be changed, or the administrator uses the management host 5 or the like). (The value may be a value that can be set or changed), but the other values are values determined (calculated) by the storage device 1 based on the amount of data moved from the overwrite page to the write-once page. It is.
- the additional data amount 402 is the amount of data moved from the overwrite page to the additional page. In this embodiment, this data amount represents the data amount at the time of compression. However, the uncompressed data amount may be used as the additional write data amount 402. In addition, when the data of the additional writing page is updated, the value of the additional writing data amount 402 is recalculated. Details will be described later.
- the free space allocation ratio 401 is information for calculating the amount of pages for storing update data for the data in the additional page. This page (set) for storing update data is referred to as “free area”.
- the storage apparatus 1 determines the amount of pages that can be secured as a free area based on the additional write data amount 402.
- the value stored in the free space securing ratio 401 is the ratio (percentage) of the free space size to the additional write data amount 402.
- the additional write data amount 402 is 4200 MB and the free area securing ratio 401 is 10%. Therefore, the storage apparatus 1 can secure a number of pages corresponding to 420 MB (4200 MB ⁇ 10%) as a free area. .
- This value (that is, 420 MB) is stored in the reservable reserve amount 403.
- the free space usage amount 404 stores the amount of the area where update data is stored in the additional writing page. This does not include the amount of data moved from the overwrite page to the write-on page. Therefore, the free space usage amount 404 is 0 when the data moved from the overwrite page to the additional writing page has not been updated.
- the free space usage amount 404 represents the total size of data (update data) actually written on the additional writing page. Therefore, when compressed update data is stored, the free space usage amount 404 is equal to the total size of the post-compression update data written to the additional write page.
- the update free capacity 405 stores a difference between the update reservable amount 403 and the free space usage amount 404.
- the update reservable amount 403 is an upper limit value of the page amount that can be secured as an additional page, and a page exceeding the renewable reservable amount 403 is not secured as a free area. If the total amount of update data written to the additional write page is greater than or equal to the update reservable amount 403 (this is the same as when the update free space 405 is 0 or less), the update data is additionally written. Cannot be stored (appended) on the page. In such a case, the storage device 1 returns the data in the updated write page to the overwrite page. By performing such control, the storage apparatus 1 prevents an excessively written page from being secured excessively, and suppresses a page whose update frequency has been increased from continuing to remain on the additionally written page.
- the flow of processing (write processing) when the storage apparatus 1 receives a write request and write data for a virtual volume from the host 2 will be described with reference to FIG.
- the write request issued by the host 2 includes information (host LBA and data length) on the write data write destination position.
- the CPU 11 calculates the virtual page number of the virtual page that is the write destination of the write data from the information of the write destination position included in the write request (s51).
- the CPU 11 refers to the virtual volume management table 100 and determines whether a page is allocated to the virtual page specified in s51 (s52).
- the virtual page # (101) of the virtual volume management table 100 stores a valid value (a non-null value) in the page # (104) of the record equal to the virtual page number specified in s51, or the virtual volume
- the page layout (103) of the record in which the virtual page # (101) of the management table 100 is equal to the virtual page number specified in s51 is set to “additional writing”, the page is displayed on the virtual page specified in s51. Means that is assigned.
- the CPU 11 selects one unused page (a page whose use (205) is “0”) from the pool management table 200. Then, the selected page is allocated to the write target virtual page (s53). In s53, the CPU 11 stores the page number of the selected page (page # (201)) in the page # (104) of the write target virtual page in the virtual volume management table 100, and also the page of the write target virtual page. By storing “overwrite” in the arrangement (103), the selected page is assigned to the write target virtual page. The use (205) of the selected page is changed to “1”.
- the CPU 11 secures a cache memory area for temporarily storing the write data received from the host 2, and in s55, the CPU 11 stores the write data in the cache area secured in s54. Finally, the CPU 11 sets whether or not to update the write target virtual page (105) (set “Yes”) (s56), and ends the process. Since the process such as securing the cache memory area is a known process, a description thereof will be omitted.
- the CPU 11 also has information for managing the write data stored in the cache memory (for example, the LBA of the virtual volume where the write data is stored).
- the write process of FIG. 9 is a process until the write data received from the host 2 is stored in the cache memory, and the contents of this process are mapped to either the overwrite page or the additional write page on the virtual page of the write destination. But it is the same.
- the cache memory is used as a so-called write-back cache. Therefore, immediately after the write data is stored in the cache memory (after completion of s55 or s56 in FIG. 9), the host 2 is notified that the write processing has been completed. After a while has passed since the write data is stored in the cache memory, the CPU 11 stores the write data on the cache memory in the storage device 20. This process is called “destage”.
- Destage processing The flow of destage processing will be described with reference to FIG. The processing in FIG. 10 is periodically performed. Alternatively, the destage processing may be executed when the unused area on the cache memory falls below a predetermined amount.
- the CPU 11 selects data to be processed from each data stored on the cache memory (s501). There are various methods for selecting data. As an example, there is a method of selecting data with the oldest time written from the host 2. In this case, the storage controller 10 needs to store the time written from the host 2 for each data stored in the cache memory.
- the CPU 11 specifies the virtual page number of the virtual page to which the data selected in s501 is written, and determines whether the page layout (103) of the virtual page is “overwrite” or “additional write” (s502).
- the page layout (103) is “overwrite” (s502: No)
- the overwrite page is mapped to the data write destination virtual page. Therefore, the CPU 11 specifies the destaging destination area of the data selected in s501, that is, the overwriting page upper area (the area on the storage device 20) mapped to the virtual page, and the specified destaging destination area.
- the data is destaged (S511), and the process is terminated.
- the page # is identified by referring to the page # (104) of the virtual volume management table 100, and then the page # (201) is identified from the pool management table 200. Reference is made to DEV # (202) and Addr (203) of the record equal to the page #.
- the additional writing page is mapped to the data writing destination virtual page.
- the CPU 11 selects all the data on the cache memory whose write destination virtual page is the same as the write destination virtual page of the data selected in s501.
- the data selected here is referred to as “destage target data”
- the write destination virtual page of the selected data is referred to as “destage target virtual page”.
- the CPU 11 moves the data of the additional page mapped to the destage target virtual page to the overwrite page (s504).
- the CPU 11 reads data belonging to the same virtual page as the write destination virtual page number of the data selected in s501 from the additional write page (corresponding area on the storage device 20) onto the cache memory. At this time, it is not necessary to read the area where data is stored in the cache memory from the additional writing page.
- the CPU 11 decompresses the data using the compression circuit 16, and stores the decompressed data in the cache memory.
- the CPU 11 performs page allocation to the destage target virtual page.
- the page assigned here is an overwrite page, and here, the same processing as s53 is performed.
- the CPU 11 destages the data to the assigned overwrite page and ends the process.
- the LBA management table 120 and the additional page management table 130 are updated. Specifically, the host LBA 121 deletes a record that is a value within the range of the destage target virtual page from the LBA management table 120. Further, among the records in the additional page management table 130, the host LBA 133 is changed to null for a record in which the value of the host LBA 133 is included in the range of the destage target virtual page.
- FIG. 11 is a conceptual diagram of a process of moving data from the additional writing page to the overwriting page.
- FIG. 11A shows a state in which update data from the host 2 for the virtual page to which the additional page is mapped is accumulated in the cache memory by a predetermined amount (CM page update amount threshold 302) or more.
- CM page update amount threshold 302 a predetermined amount
- the host 2 writes to the areas B, C, and D
- write data update data
- a write-once page is mapped to the virtual page shown in FIG. 11 (1), and the compressed segments associated with the areas A, B, C, and D on the virtual page are respectively compressed segments (a), ( b), (c), (d).
- FIG. 11 (2) shows a data movement method performed in s504 when the virtual page, the data on the cache memory, and the additionally written page are in the state of FIG. 11 (1).
- the CPU 11 reads the compressed segment (a) from the additional writing page, decompresses it, and writes it to the overwrite page (area (A) thereof) (At this time, the decompressed data may be temporarily stored in the cache memory).
- the compressed segments (b), (c), and (d) of the additional page need not be read from the additional page. Instead, the data (B, C, D data) on the cache is destaged to the overwrite page.
- the data movement from the additional writing page to the overwriting page is performed for the virtual page having a large amount of update data, so that the overhead of the data compression process can be reduced. Further, since the amount of compressed data read from the additionally written page on the storage device can be minimized, the overhead of data read processing from the storage device and the overhead of decompression processing of read data can be reduced.
- the CPU 11 compresses the destage target data (s505), and compares the size of the compressed data with the update free space 405, so that It is determined whether there is a free area in which stage target data (after compression) can be stored.
- s506 no case.
- the update reserveable amount 403 is exceeded. Expands the data of the write-once page mapped to the write destination virtual page of the destage target data and returns it to the overwrite page (s509).
- the process of s509 is the same as that of s504. That is, it is not necessary to read the area where the destage target data is stored on the cache memory from the additional writing page.
- the CPU 11 updates the contents of the free space management table 400 (s510) and ends the process.
- the CPU 11 may preferentially select a page with a low compression rate and move the data of the page to the overwrite page. This is because it is possible to save the storage area by preferentially storing a page with a high compression rate in an additional write page (compressed page).
- the CPU 11 adds the destage target data (after compression) to the additional page (s507), and the free area management table.
- the contents of 400 are updated (s508), and the process is terminated.
- the CPU 11 since the data (compressed segment) is additionally written to the additional page, the CPU 11 also updates the LBA management table 120 and the additional page management table 130 as described above.
- the storage apparatus 1 may additionally write the update data on the additional page without compressing the update data. In that case, the processing of s505 is unnecessary, and the overhead of the compression processing can be reduced.
- the CPU 11 searches the virtual volume management table 100 to select one virtual page to which the overwrite page is mapped (that is, a virtual page whose page layout (103) is “overwrite”) (s1010).
- a virtual page whose page layout (103) is “overwrite” the virtual page selected in s1010 is referred to as a “target virtual page”.
- the CPU 11 determines whether the target virtual page is updated or not (105) as “None” or “Yes” (s1020).
- the CPU 11 sets the continuous update non-update period (107) of the target virtual page to 0 (s1120). Then, the CPU 11 changes whether or not the target virtual page is updated (105) to “None” (s1095). After that, the CPU 11 ends the process when processing is performed for all virtual pages (s1100: Yes), and when there are remaining virtual pages that have not been processed (s1100: No), the process is repeated from s1010.
- the CPU 11 updates the continuous no-update period (107) of the target virtual page (s1030). Specifically, for example, when the process of FIG. 12 is performed every 24 hours (1 day), “1” is added to the period (107) in which the target virtual page is not continuously updated.
- the CPU 11 determines whether or not the continuous update-free period (107) of the target virtual page is equal to or greater than the compression permission threshold 301.
- the CPU 11 reads data from the overwrite page mapped to the target virtual page and reads it using the compression circuit 16. Compress the output data.
- the CPU 11 adds the compressed data to the additional page, and also updates the LBA management table 120 and the additional page management table 130 as described above (s1080).
- the CPU 11 refers to the additional page management table 130 and the final writing position 134 to determine whether there is an unused additional page necessary for additionally writing the compressed data. To do. If there is no unused additional write page, the CPU 11 selects an unused page (a page with use (205) of “0”) from the pages managed in the pool management table 200, and the additional write page management table. In 130, the selected unused page is registered.
- the CPU 11 changes the page layout 103 of the target virtual page to “additional writing”, the page # (104) to null, and the allocation amount (111) to the data size (compressed size) compressed in s1080. (S1090). Further, in s1090, the CPU 11 updates the contents of the free space management table 400. Note that the mapping to the target virtual page is canceled for the page (overwrite page) that has been mapped to the target virtual page so far. Therefore, the CPU 11 updates the use (205) column of the page mapped to the target virtual page in the record of the pool management table 200 to “0”.
- the CPU 11 executes s1095 and s1100. If all virtual pages have been processed (s1100: Yes), the process ends, and if virtual pages that have not yet been processed remain (s1100: No), s1010 Repeat the process.
- FIG. 13 shows a change in the state of a page (particularly an additional page) when data of an overwrite page mapped to a virtual page (hereinafter referred to as “virtual page V”) is moved to the additional page. It is expressed conceptually.
- FIG. 13 (1) shows an overwrite page mapped to the virtual page V.
- FIG. 13 (2) represents an additional page that is a data movement destination of the overwrite page in FIG. 13 (1).
- FIG. 13 (2) In the areas (a), (b), and (c) of FIG. 13 (2), data moved from the areas A, B, and C (after compression) are stored.
- FIG. 13 (3) shows an update to the area (b) of FIG. 13 (2) (when update data for the area on the virtual page V to which the area (b) is mapped is received from the host 2) In this example, update data is added to the area (b ′). At this time, the area (b) becomes an invalid area (area not mapped to the virtual page).
- FIG. 13 (4) shows an example in which the data of the additionally written page (data in the areas (a), (b ′), and (c)) is moved to the overwrite page.
- the sizes of the areas (a), (b), (b ′), and (c) are a, b, b ′, and c, respectively, and the free area securing ratio 401 is p.
- the free area securing ratio 401 is p.
- step s1090 the CPU 11 stores (adds) “a + b + c” (the compressed size of one page of data moved from the overwrite page) in the additional write data amount 402 of the free space management table 400.
- the update reservable amount 403 is also updated.
- the update reservable amount 403 stores (adds) a value obtained by multiplying the data amount (a + b + c) moved to the write-once page by the free space securing ratio 401 (p).
- the update reservable amount 403 is “(a + b + c) ⁇ p”.
- the free space for update 405 is updated to a value obtained by subtracting the free space usage amount 404 from the update reservable amount 403 after updating (that is, “(a + b + c) ⁇ p”).
- the CPU 11 adds “b ′” to the free area usage amount 404. Further, the update reservable amount 403 is also updated in accordance with the change of the additional writing data amount 402.
- the reservable reservable amount 403 stores a value obtained by multiplying the additional write data amount 402 (that is, “a + c + b ′”) by the free space securing ratio 401 (p).
- the free space for update 405 is updated to a value (that is, “(a + c + b ′) ⁇ p ⁇ b ′”) obtained by subtracting the free space use amount 404 (b ′) from the update reservable amount 403. .
- the free space usage amount 404 is not changed.
- the update free space 405 is updated to a value obtained by subtracting the free space usage amount 404 from the update reservable amount 403.
- the update free space 405 may be a negative value.
- the free space usage amount 404 is not changed (reduced) (it remains b '). This is because valid data is not stored in the area (b ′), but only write-once is permitted for data writing to the additional writing page, and update data cannot be written in the area (b ′).
- the opportunity to reduce the free space usage amount 404 is when garbage collection is performed. After the garbage collection is performed, the CPU 11 changes the free space usage amount 404 to 0, and also changes the update free space 405 (changed to a value obtained by subtracting the free space usage amount 404 from the update reservable amount 403). To do).
- the amount of additional writing data 402 does not change, so the values of the additional writing data amount 402 and the update reservable amount 403 are not updated.
- garbage collection is performed together with processing that causes a change in the additional data amount 402 (for example, processing such as moving data with a low compression rate to an overwrite page)
- the additional data amount 402 and the update data amount 402 are updated.
- the value of the secureable amount 403 is also updated.
- the storage device 1 periodically executes garbage collection.
- garbage collection may be executed during the process described above.
- the CPU 11 may execute garbage collection when it is determined in s506 in FIG. 10 that there is no free area in which the destage target data can be stored.
- update data for the data in the additional writing page is written (appended) based on the amount of data moved to the additional writing page.
- the free space is used for writing update data, and is not used for storing write data in an overwrite page (a page for storing uncompressed data). Substantial decrease.
- the efficiency (performance) at the time of garbage collection of the additionally written page is lowered.
- the storage device temporarily stores write data for a virtual page from the host in the cache memory. If the amount of data stored in the cache memory for the virtual page to which the additional page is mapped (that is, the compressed data is stored) exceeds the threshold (CM page update amount threshold 302), the data is additionally written. Read from page and move to overwrite page. At this time, the area where the write data from the host is accumulated in the cache memory is not read from the additional page. Therefore, the data transfer efficiency from the overwritten page to the overwritten page is good.
- CM page update amount threshold 302 the threshold
- the hardware configuration of the storage apparatus according to the second embodiment is the same as that described in the first embodiment.
- the data of the additional page is returned to the overwrite page. For example, when data writing exceeding the CM upper page update amount threshold value 302 occurs for one virtual page and the data is accumulated in the cache memory, even if the additional page is mapped to the virtual page, it is changed to the overwrite page. Returned.
- Such an event can be considered, for example, when a sequential write request is received from the host 2 to the virtual volume.
- the host 2 uses a virtual volume as a data backup destination volume, the host 2 sequentially writes a large amount of data to the virtual volume.
- the compression permission threshold 301 is 28 days and the host 2 uses a virtual volume as a backup destination volume once a month (30 days).
- the data is moved from the page (overwrite page) mapped to the virtual page of the virtual volume to the additional write page. Occurs.
- the data written in this case is preferably stored in a compressed state.
- the data access pattern is learned, and in the case described above, the period during which the data is compressed and stored is lengthened.
- the time (date) when data update occurs is predicted in advance, and the data is moved to the overwrite page before that date.
- FIG. 14 is a configuration example of the virtual volume management table 100 ′ managed by the storage apparatus according to the second embodiment.
- the virtual volume management table 100 ′ includes virtual page # (101 ′), host LBA (102 ′), page layout (103 ′), page # (104 ′), update presence / absence (current) (105 ′), update presence / absence ( (Previous) (106 ′), no continuous update period (current) (107 ′), no continuous update period (evacuation) (108 ′), no continuous update period (after learning movement) (109 ′), learning movement flag (110) ') And the column of the allocated amount (111').
- the contents of the information stored in the allocation amount (111 ′) are the virtual page # (101), host LBA (102), page layout (103), page # of the virtual volume management table 100 described in the first embodiment. (104), presence / absence of update (105), period of no continuous update (107), and allocation amount (111). Other information will be described later.
- FIG. 15 is a configuration example of the threshold table 300 ′ managed by the storage apparatus according to the second embodiment.
- the threshold table 300 ′ stores a compression permission threshold 301, a CM upper page update amount threshold 302, and a learning movement threshold 303.
- the compression permission threshold 301 and the CM upper page update amount threshold 302 are the same as those described in the first embodiment.
- the contents of the learning movement threshold value 303 will be described in the process of explaining the overwrite page movement determination process.
- the contents of the virtual volume management table 100 ′ and the threshold table 300 ′ described above are different, and the contents of the overwrite page movement determination process are the same as those described in the first embodiment (FIG. 12). ) Is different.
- a process of moving the data of the additional write page to the overwrite page is added based on the learning result.
- the flow of the write process is basically the same as that described in the first embodiment (FIG. 9), but at the end of the write process, the CPU 11 replaces the update presence / absence (105) with the update presence / absence (current) (105 ′). The difference is that “Yes” is set for.
- the storage apparatus according to the second embodiment is the same as the storage apparatus according to the first embodiment.
- the destage processing (FIG. 10) described in the first embodiment is also performed in the storage apparatus according to the second embodiment.
- movement determination process the flow of the overwrite page movement determination process (hereinafter referred to as “movement determination process”) performed in the storage apparatus according to the second embodiment will be described with reference to FIGS. 16 and 17. Since many processes are the same as those described in the first embodiment (FIG. 12), the following description will focus on differences from the processes in FIG.
- S1010, s1020, and s1030 in FIG. 16 are the same as those described in the first embodiment (FIG. 12). However, in the movement determination process in the second embodiment, the CPU 11 in s1020, based on whether or not the virtual page selected in s1010 (hereinafter, this virtual page is referred to as “target virtual page”) is updated (this time) (105 ′). Make a decision. In the following, a case will be described first where the determination of s1020 indicates whether the target virtual page is updated (this time) (105 ') is "present" (s1020: No).
- the CPU 11 sets the value of the period without current update (current) (107 ′) of the target virtual page as the period without continuous update (evacuation) (108 ') (S1110). Thereafter, the CPU 11 sets a period (No) (107 ′) without continuous update and a period (109 ′) without continuous update (109 ′) of the target virtual page to 0 (s1120 ′). Then, the CPU 11 saves the value of whether or not the target virtual page is updated (current) (105 ′) to the update presence / absence (previous) (106 ′), and then sets the value of updated presence / absence (current) (105 ′) to “none”. (S1095 ′). Thereafter, when processing has been performed on all virtual pages (s1100: Yes), the CPU 11 ends the processing, and when virtual pages that have not yet been processed remain (s1100). : No), the process is repeated from s1010.
- the CPU 11 executes s1030. After s1030, the CPU 11 determines whether the learning movement flag 110 'for the target virtual page is ON. When the learning movement flag 110 'is ON (s1040: Yes), the CPU 11 updates the period without continuous update (after learning movement) (109') (s1050). For example, when the movement determination process (the process of FIGS. 16 and 17) is performed every 24 hours (one day), “1” is set in the period (109 ′) where the target virtual page is not continuously updated (after learning movement). to add. Thereafter, the process of s1060 is performed. When the learning movement flag 110 'is OFF (s1040: No), the process of s1050 is skipped.
- the CPU 11 determines whether or not the continuous update period (current) (107 ') of the target virtual page is equal to or greater than the compression permission threshold 301 (s1060). When the period (currently) (107 ') in which the target virtual page is not continuously updated is equal to or greater than the compression permission threshold 301 (s1060: Yes), the CPU 11 determines whether the learning movement flag 110' is ON (s1070). When the learning movement flag 110 'is OFF (s1070: No), the CPU 11 executes s1080 and s1090 as in the first embodiment. Then, after executing s1095 ′, the CPU 11 ends the processing when all virtual pages are processed (s1100: Yes), and there is a virtual page that has not yet been processed. (S1100: No), the process is repeated from s1010.
- the CPU 11 determines whether the period without continuous update (after learning movement) (109 ′) is the learning movement threshold value 303 or more (s 1072). If the determination in s1072 is Yes, the CPU 11 changes the learning movement flag 110 'to OFF (s1074), and then performs the processing after s1080. It is determined whether the period without continuous update (after learning movement) (109 ') is greater than or equal to the learning movement threshold 303 (s1072).
- the CPU 11 determines whether or not update (previous) (106 ′) is “present”. It is determined whether it is “none” (s1062). When the update presence / absence (previous) (106 ') is "None” (s1062: No), the CPU 11 performs the processing after s1095'.
- the CPU 11 determines whether the period without continuous update (retraction) (108 ′) is greater than or equal to the learning movement threshold 303. (S1064). If the determination in s1064 is Yes, the CPU 11 changes the learning movement flag 110 'to OFF (s1066), and then performs the processing after s1080. When the determination in s1064 is No, the CPU 11 performs the processing after s1095 '.
- the CPU 11 searches the virtual volume management table 100 to turn on the learning movement flag 110 ′ in the virtual page to which the additional page is mapped (that is, the virtual page whose page layout (103) is “Additional”).
- One virtual page is selected (s1510).
- the virtual page selected in s1510 is referred to as a “target virtual page”.
- the additional page mapped to the target virtual page is called a “target additional page”.
- the CPU 11 determines whether or not the target virtual page is updated (this time) (105 ') is "present” or “absent” (s1520). If the target virtual page is updated or not (current) (105 ') is "None" (s1520: Yes), the target virtual page non-continuous update period (current) (107') is updated (s1530). This process is the same as s1030.
- the CPU 11 determines whether or not the continuous update non-period (current) (107 ′) of the target virtual page is the same as the non-continuous update period (evacuation) (108 ′) (s1550).
- the data of the additionally written page mapped to is decompressed and moved to the overwrite page (s1560).
- the same processing as in s509 and s510 of the first embodiment is performed.
- the CPU 11 sets the period without continuous update of the target virtual page (after learning movement) (109 ′) to 0 (s1570), and after saving to the update presence / absence (previous) (106 ′), the update presence / absence (current) (105 ′).
- the CPU 11 changes the content of the continuous update non-period (current) (107 ′) Copy (save) to (save) (108 ') (s1610), and set the contents of no continuous update period (current) (107') and no continuous update period (after learning transfer) (109 ') to 0 (s1620) Then, the learning movement flag (110 ′) is set to OFF (s1630). Thereafter, the determination at s1580 is performed.
- the storage apparatus learns the virtual page update cycle (update pattern) and suppresses the virtual page data with a low update frequency from occupying the overwrite page. Specifically, the storage apparatus specifies a virtual page having an update pattern in which an update occurs once every (n + 1) days (no update is performed continuously for n days, and an update is performed on the (n + 1) day). .
- n is a value greater than or equal to the learning movement threshold 303.
- the storage apparatus moves the data of the virtual page from the overwrite page to the additional write page (FIG. 17: processing from s1062 to s1090).
- the storage apparatus stores a period during which no update has occurred for the virtual page (in a continuous update no period (save) 108 ').
- the storage device stores a learning result (estimation result) that the virtual page update cycle is (1 + no continuous update period (save) 108 ') days.
- the storage apparatus determines that an update to the virtual page will occur soon, and moves the data of the additional page mapped to the virtual page to the overwrite page before the update occurs (FIG. 18: s1550 to s1570). . Therefore, it is possible to improve the access performance when data update occurs.
- the data moved to the overwrite page is subjected to the processing shown in FIG. 17 (processing such as s1062 to s1090) as long as there is no change in the update cycle, whereby the compression permission threshold 301 is set. It is moved to the postscript page without waiting for elapse. For this reason, since data is stored in the storage device in a compressed state during a period when there is no data update, it is possible to achieve both performance of the storage apparatus and storage efficiency.
- the present invention is not limited to a mode in which information is managed by a table structure.
- the storage apparatus may manage information using a data structure other than a table, such as a list structure.
- the data stored in the additional page is compressed data.
- the data stored in the additional page may not be limited to the compressed data.
- the storage device has a function of performing data conversion such as encryption, and data conversion is performed such that the data size fluctuates due to the data conversion function, the converted data is stored in an additional page, When returning the data from the additional writing page to the overwriting page, the data may be reversely converted.
- data stored in the additional page is not limited to data that has been subjected to data conversion such as compression or encryption. Any of the data stored in the overwrite page and the additional writing page may be uncompressed data or data that has not undergone data conversion. As an example, it is assumed that a storage device is used as a storage device in a storage device that does not have high random write performance but high sequential write performance.
- the storage device observes the access characteristics (write frequency, sequential / random write ratio, etc.) of each virtual page, and based on the observation result, the data of the virtual page with a high random write frequency moves to the write-once page, When control is performed so that an overwrite page is assigned to a virtual page that is often written sequentially, random write data is stored in the additional write page, so that sequential write is performed when data is written to the storage device. Therefore, improvement of access performance can be expected.
- control method described in the above embodiment is also effective in the case of a storage apparatus in which a plurality of different types of storage devices are mounted.
- a write-once type storage device (a storage device using a storage medium that cannot be overwritten and needs to be erased for rewriting, such as a DVD-RW or a flash memory) can be overwritten as a storage device.
- the storage device is controlled so that the storage area of the overwritable storage device is used as the overwrite page and the storage area of the write-once storage device is used as the additional page. Good.
- the write-once storage device can suppress the frequency of erasing the storage medium and can improve the access efficiency of the storage apparatus.
- the data stored in the additional writing page may be data that is subjected to data conversion such as compression, or may be uncompressed data.
- 1 storage device
- 2 host
- 3 SAN
- 5 management host
- 10 storage controller
- 11 CPU
- 13 device I / F
- 14 memory
- 15 management I / F F
- 16 compression circuit
- 20 storage device
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
圧縮率=(非圧縮データのサイズ-圧縮データのサイズ)÷非圧縮データのサイズ
図1は、第1の実施例に係るストレージ装置1を含む計算機システムの構成例を示している。ストレージ装置1は、ストレージコントローラ10と、ストレージコントローラ10に接続された複数の記憶デバイス20を有する。
続いて、本実施例に係るストレージ装置1が管理する記憶領域について説明する。本実施例に係るストレージ装置1が有する1以上の記憶デバイス20は、所定サイズの記憶空間をストレージコントローラ10に提供する。ストレージコントローラ10は、記憶デバイス20の提供する記憶空間を直接ホスト2には提供しない。ストレージコントローラ10はホスト2に、記憶デバイス20の提供する記憶空間とは異なる、1以上の仮想的な記憶空間を提供する。この仮想的な記憶空間を「仮想ボリューム」と呼ぶ。なお、ストレージコントローラ10は複数の仮想ボリュームをホスト2に提供可能だが、以下では特に断りのない限り、ストレージコントローラ10が仮想ボリュームを1つ、ホスト2に提供する例について説明する。
図7に、本実施例に係るストレージ装置1が管理する、閾値テーブル300の内容を示す。閾値テーブル300はメモリ14に格納されている。閾値テーブル300には、圧縮許可閾値301、CM上ページ更新量閾値302が格納される。閾値テーブル300に格納される値は、管理者が管理ホスト5等を用いて設定または変更することになっている。あるいは別の実施形態として、推奨値があらかじめ閾値テーブル300に設定されていても良い。圧縮許可閾値301には、日数(または時間)が格納される。本実施例に係るストレージ装置1は、上書きページが、圧縮許可閾値301で指定される期間以上更新されていなかった場合、その上書きページ内のデータを追書きページに移動する。図7の例では、圧縮許可閾値301に「7日」が格納されているので、この場合ストレージ装置1は、7日以上更新が行われなかった上書きページのデータを、追書きページに移動する。
続いてストレージ装置1が、ホスト2から仮想ボリュームに対するライト要求及びライトデータを受領した時の処理(ライト処理)の流れを、図9を用いて説明する。なお、ホスト2が発行するライト要求には、ライトデータの書き込み先位置の情報(ホストLBA及びデータ長)が含まれている。ストレージコントローラ10がライト要求を受領すると、CPU11はライト要求に含まれる書き込み先位置の情報から、ライトデータの書き込み先となる仮想ページの仮想ページ番号を算出する(s51)。
図10を用いてデステージ処理の流れを説明する。図10の処理は定期的に実施される。あるいはキャッシュメモリ上の未使用領域が所定量を下回った時にデステージ処理が実行されるようにしてもよい。最初にCPU11は、キャッシュメモリ上に格納された各データの中から、処理対象のデータを選択する(s501)。データの選択方法は、様々な方法がありえる。一例として、ホスト2からライトされた時刻が最も古いデータを選択する方法がある。その場合、ストレージコントローラ10は、キャッシュメモリ上に格納された各データについて、ホスト2からライトされた時刻を記憶しておく必要がある。
続いて、上書きページの移動判定処理について図12を用いて説明する。ここでは、所定の条件(所定期間更新がないか?)を満たしている上書きページを特定し、その上書きページのデータを追書きページに移動する処理が行われる。この処理はCPU11が定期的に、たとえば1日に1回の頻度で実行する。
空き領域管理テーブル400の更新が行われる箇所、つまりs504、s508、s510、そしてs1080での処理内容について、図13を用いて説明する。図13は、ある仮想ページ(以下では、「仮想ページV」と呼ぶ)にマッピングされている上書きページのデータが追書きページに移動された時の、ページ(特に追書きページ)の状態変化を概念的に表している。図13(1)は、仮想ページVにマッピングされている上書きページを表している。
Claims (12)
- 1以上の記憶デバイスと、ストレージコントローラと、を有し、
前記ストレージコントローラは、前記記憶デバイスの記憶領域を、前記ホストからの更新データの上書きを許す上書き用領域と、前記ホストからの更新データを追記格納するための追書き用領域に分けて管理しており、
前記ストレージコントローラは、前記上書き用領域と前記追書き用領域の間でデータの移動を行う、
ことを特徴とする、ストレージ装置。 - 前記ストレージコントローラは、データの格納された前記上書き用領域が、あらかじめ定められた条件に該当する状態にあることを検出した時、前記上書き用領域に格納された前記データを前記追書き用領域に移動する、
ことを特徴とする、請求項1に記載のストレージ装置。 - 前記ストレージコントローラは、データの格納された前記上書き用領域に対し、前記ホストからの書き込みが所定期間発生していないことを検出した時、前記上書き用領域に格納された前記データを前記追書き用領域に移動する、
ことを特徴とする、請求項2に記載のストレージ装置。 - 前記ストレージコントローラは、前記上書き用領域に格納された前記データを前記追書き用領域に移動する時、
前記データから圧縮データを生成し、前記圧縮データを前記追書き用領域に追記する、
ことを特徴とする、請求項2に記載のストレージ装置。 - 前記ストレージコントローラは、前記上書き用領域から前記追書き用領域に移動される前記データの量に基づいて、前記追書き用領域のサイズを決定する、
ことを特徴とする、請求項2に記載のストレージ装置。 - 前記ストレージコントローラは、ホストに対してボリュームを提供し、前記ホストからライト要求のあった前記ボリューム上領域に動的に前記記憶デバイスの記憶領域を割り当てるよう構成されており、
前記ストレージコントローラは、前記追書き用領域が割り当てられた前記ボリューム上領域に対するライトデータを前記ホストから受領すると、前記ライトデータを前記追書き用領域に追記し、
前記追書き用領域に書き込まれるデータ量が、前記追書き用領域のサイズを超過する場合、前記追書き用領域内のデータを前記上書き用領域に戻す、
ことを特徴とする、請求項5に記載のストレージ装置。 - 前記ストレージコントローラは、前記追書き用領域に圧縮データが格納されている場合、前記圧縮データのうち圧縮率の低い前記圧縮データから優先的に前記上書き用領域に戻し、
前記ストレージコントローラは、前記圧縮データを前記上書き用領域に戻す際に、前記圧縮データを伸長してから前記上書き用領域に戻す、
ことを特徴とする、請求項6に記載のストレージ装置。 - 前記ストレージコントローラは、前記ホストからのライトデータを一時格納するキャッシュメモリを有し、
前記ストレージコントローラは、前記追書き用領域が割り当てられた前記ボリューム上領域に対する前記ライトデータが、所定量以上前記キャッシュメモリに蓄積された場合、
前記追書き用領域に格納されているデータを前記上書き用領域に戻す、
ことを特徴とする、請求項6に記載のストレージ装置。 - 前記ストレージコントローラは、前記追書き用領域が割り当てられた前記ボリューム上領域のうち、第1の領域に対する前記ライトデータが前記キャッシュメモリに蓄積されており、第2の領域に対する前記ライトデータは前記キャッシュメモリに蓄積されていない場合、
前記追書き用領域に格納されているデータのうち、前記第1の領域に対する前記ライトデータの更新前データは前記上書き用領域に戻さない、
ことを特徴とする、請求項8に記載のストレージ装置。 - 前記ストレージコントローラは、前記ボリューム上領域に対する前記ホストからのアクセスパターンを観測することで、前記ボリューム上領域の更新周期を推定し、
前記推定した更新周期に基づいて、前記ホストから前記ボリューム上領域に対するライト要求を受領する前に、前記ボリューム上領域に割り当てられた前記追書き用領域に格納されたデータを、前記上書き領域に戻す、
ことを特徴とする、請求項2に記載のストレージ装置。 - 前記ストレージコントローラは、前記ホストからのライトデータを一時格納するキャッシュメモリを有し、
前記ストレージコントローラは、ホストに対してボリュームを提供し、前記ホストからライト要求のあった前記ボリューム上領域に、前記上書き用領域か前記追書き用領域のいずれかを動的に割り当てるよう構成されており、
前記ストレージコントローラは、
A)前記ボリューム上領域に対する更新データを前記ホストから受領すると、前記キャッシュメモリに前記更新データを格納し、
B)前記更新データが、前記上書き用領域が割り当てられた前記ボリューム上領域に対する更新データの場合、前記上書き用領域に前記更新データを上書きし、
C)前記上書き用領域が割り当てられた前記ボリューム上領域に対して書き込みが所定期間発生していないことを検出した時、前記ボリューム上領域に前記追書き用領域を割り当て、前記上書き用領域に格納されているデータを圧縮して前記追書き用領域に移動し、前記上書き用領域から前記追書き用領域に移動される前記データの量に基づいて、前記追書き用領域のサイズを増加させ、
D)前記更新データが、前記追書き用領域が割り当てられた前記ボリューム上領域に対する更新データの場合、前記ボリューム上領域に対する前記更新データが、所定量以上前記キャッシュメモリに格納されているか判定し、
D-1)前記ボリューム上領域に対する前記更新データが、所定量以上前記キャッシュメモリに格納されている場合、前記ボリューム上領域に前記上書き用領域を割り当て、前記キャッシュメモリに格納されている前記更新データを前記上書き用領域に格納し、前記ボリューム上領域に割り当てられていた前記追書き用領域に格納されているデータのうち、前記更新データが前記キャッシュメモリに格納されていないデータについて、前記上書き領域に移動し、
D-2)前記ボリューム上領域に対する前記更新データが、所定量以上前記キャッシュメモリに格納されていない場合、
D-2-1)前記追書き用領域に前記更新データを追記可能な領域がある時には、前記ライトデータを前記追書き用領域に追記し、
D-2-1)前記追書き用領域に前記更新データを追記可能な領域がない時には、前記追書き用領域内のデータを前記上書き用領域に戻す、
よう構成されている、
ことを特徴とする、請求項2に記載のストレージ装置。 - 1以上の記憶デバイスと、ストレージコントローラと、を有するストレージ装置の制御方法であって、
前記ストレージコントローラが、前記前記複数の前記記憶デバイスの記憶領域を、前記ホストからの更新データの上書きを許す上書き用領域と、前記ホストからの更新データを追記格納するための追書き用領域に分けて管理し、
前記ストレージコントローラが、前記上書き用領域と前記追書き用領域の間で前記データの移動を行う、
ことを特徴とする、ストレージ装置の制御方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2015/067604 WO2016203612A1 (ja) | 2015-06-18 | 2015-06-18 | ストレージ装置 |
JP2017524232A JP6298932B2 (ja) | 2015-06-18 | 2015-06-18 | ストレージ装置 |
US15/557,967 US10296229B2 (en) | 2015-06-18 | 2015-06-18 | Storage apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2015/067604 WO2016203612A1 (ja) | 2015-06-18 | 2015-06-18 | ストレージ装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2016203612A1 true WO2016203612A1 (ja) | 2016-12-22 |
Family
ID=57545774
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2015/067604 WO2016203612A1 (ja) | 2015-06-18 | 2015-06-18 | ストレージ装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10296229B2 (ja) |
JP (1) | JP6298932B2 (ja) |
WO (1) | WO2016203612A1 (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019128906A (ja) * | 2018-01-26 | 2019-08-01 | 株式会社日立製作所 | ストレージ装置及びその制御方法 |
CN110244905A (zh) * | 2018-03-09 | 2019-09-17 | 株式会社日立制作所 | 具有数据量削减功能的计算机***,和存储控制方法 |
JP2020052919A (ja) * | 2018-09-28 | 2020-04-02 | 株式会社日立製作所 | ストレージ装置、管理方法及びプログラム |
JP7479441B2 (ja) | 2020-04-01 | 2024-05-08 | 株式会社日立製作所 | ストレージ装置 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11385926B2 (en) * | 2017-02-17 | 2022-07-12 | Intel Corporation | Application and system fast launch by virtual address area container |
US10133658B1 (en) * | 2017-05-02 | 2018-11-20 | Google Llc | Garbage collection for data storage |
CN111124276B (zh) * | 2019-11-15 | 2023-09-29 | 中国运载火箭技术研究院 | 一种可多模态工作的数据存储***及方法 |
US11934678B2 (en) * | 2022-07-22 | 2024-03-19 | Hewlett Packard Enterprise Development Lp | Data reduction for storage volumes |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11272521A (ja) * | 1998-03-25 | 1999-10-08 | Matsushita Electric Ind Co Ltd | ファイル管理装置 |
JP2003216460A (ja) * | 2002-01-21 | 2003-07-31 | Hitachi Ltd | 階層ストレージ装置及びその制御装置 |
JP2006259962A (ja) * | 2005-03-16 | 2006-09-28 | Hitachi Ltd | ストレージシステム |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070005625A1 (en) * | 2005-07-01 | 2007-01-04 | Nec Laboratories America, Inc. | Storage architecture for embedded systems |
US8359444B2 (en) | 2008-09-24 | 2013-01-22 | Hitachi, Ltd. | System and method for controlling automated page-based tier management in storage systems |
JP6094267B2 (ja) | 2013-03-01 | 2017-03-15 | 日本電気株式会社 | ストレージシステム |
US10108644B1 (en) * | 2014-03-12 | 2018-10-23 | EMC IP Holding Company LLC | Method for minimizing storage requirements on fast/expensive arrays for data mobility and migration |
-
2015
- 2015-06-18 JP JP2017524232A patent/JP6298932B2/ja active Active
- 2015-06-18 WO PCT/JP2015/067604 patent/WO2016203612A1/ja active Application Filing
- 2015-06-18 US US15/557,967 patent/US10296229B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11272521A (ja) * | 1998-03-25 | 1999-10-08 | Matsushita Electric Ind Co Ltd | ファイル管理装置 |
JP2003216460A (ja) * | 2002-01-21 | 2003-07-31 | Hitachi Ltd | 階層ストレージ装置及びその制御装置 |
JP2006259962A (ja) * | 2005-03-16 | 2006-09-28 | Hitachi Ltd | ストレージシステム |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019128906A (ja) * | 2018-01-26 | 2019-08-01 | 株式会社日立製作所 | ストレージ装置及びその制御方法 |
US10521122B2 (en) | 2018-01-26 | 2019-12-31 | Hitachi, Ltd. | Storage apparatus and method of controlling same |
CN110244905A (zh) * | 2018-03-09 | 2019-09-17 | 株式会社日立制作所 | 具有数据量削减功能的计算机***,和存储控制方法 |
JP2019159605A (ja) * | 2018-03-09 | 2019-09-19 | 株式会社日立製作所 | データ量削減機能を有する計算機システム、及び、記憶制御方法 |
CN110244905B (zh) * | 2018-03-09 | 2022-07-22 | 株式会社日立制作所 | 具有数据量削减功能的计算机***,和存储控制方法 |
JP2020052919A (ja) * | 2018-09-28 | 2020-04-02 | 株式会社日立製作所 | ストレージ装置、管理方法及びプログラム |
CN110968262A (zh) * | 2018-09-28 | 2020-04-07 | 株式会社日立制作所 | 存储装置和数据存储方法 |
US11093134B2 (en) | 2018-09-28 | 2021-08-17 | Hitachi, Ltd. | Storage device, management method, and program in tiered storage system |
JP6995728B2 (ja) | 2018-09-28 | 2022-01-17 | 株式会社日立製作所 | ストレージ装置、管理方法及びプログラム |
CN110968262B (zh) * | 2018-09-28 | 2023-04-11 | 株式会社日立制作所 | 存储装置和数据存储方法 |
JP7479441B2 (ja) | 2020-04-01 | 2024-05-08 | 株式会社日立製作所 | ストレージ装置 |
Also Published As
Publication number | Publication date |
---|---|
JPWO2016203612A1 (ja) | 2017-09-14 |
JP6298932B2 (ja) | 2018-03-20 |
US20180052614A1 (en) | 2018-02-22 |
US10296229B2 (en) | 2019-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6298932B2 (ja) | ストレージ装置 | |
US11922039B2 (en) | Storage device that secures a block for a stream or namespace and system having the storage device | |
US20220100377A1 (en) | Memory system and method of controlling memory system | |
US10635310B2 (en) | Storage device that compresses data received from a host before writing therein | |
CN108604165B (zh) | 存储装置 | |
JP5707540B1 (ja) | 階層化ストレージシステム、ストレージコントローラ、及び階層間のデータ移動を代替する方法 | |
WO2015162681A1 (ja) | ストレージシステムおよび記憶デバイスの制御方法 | |
JP6685334B2 (ja) | ストレージ装置 | |
WO2015076354A1 (ja) | ストレージ装置と方法並びにプログラム | |
JP6608468B2 (ja) | ストレージ装置及びその制御方法 | |
US9785547B2 (en) | Data management apparatus and method | |
JP6724534B2 (ja) | 情報処理装置、重複除去プログラム、及び重複除去方法 | |
US20110125950A1 (en) | Systems and methods for performing deduplicated data processing on tape | |
JP2019169101A (ja) | 電子機器、コンピュータシステム、および制御方法 | |
US20110264848A1 (en) | Data recording device | |
WO2018061161A1 (ja) | ストレージ装置およびその制御方法 | |
US11263132B2 (en) | Method and system for facilitating log-structure data organization | |
JP6805501B2 (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: 15895632 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2017524232 Country of ref document: JP Kind code of ref document: A |
|
WWE | Wipo information: entry into national phase |
Ref document number: 15557967 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: 15895632 Country of ref document: EP Kind code of ref document: A1 |