WO2017168578A1 - データ処理システム及びデータ処理方法 - Google Patents

データ処理システム及びデータ処理方法 Download PDF

Info

Publication number
WO2017168578A1
WO2017168578A1 PCT/JP2016/060192 JP2016060192W WO2017168578A1 WO 2017168578 A1 WO2017168578 A1 WO 2017168578A1 JP 2016060192 W JP2016060192 W JP 2016060192W WO 2017168578 A1 WO2017168578 A1 WO 2017168578A1
Authority
WO
WIPO (PCT)
Prior art keywords
metadata
meta
type
data
program
Prior art date
Application number
PCT/JP2016/060192
Other languages
English (en)
French (fr)
Inventor
司 柴山
裕教 江丸
耕一 村山
Original Assignee
株式会社日立製作所
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to US15/736,190 priority Critical patent/US20180165380A1/en
Priority to PCT/JP2016/060192 priority patent/WO2017168578A1/ja
Publication of WO2017168578A1 publication Critical patent/WO2017168578A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/164File meta data generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2219Large Object storage; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9038Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices

Definitions

  • the present invention generally relates to data processing.
  • Data managed by the storage system can be used for various purposes such as search and analysis.
  • a search is performed on a large amount of data, which takes time for the search and a specific storage device (for example, DWH (data warehouse))
  • a specific storage device for example, DWH (data warehouse)
  • a bottleneck may occur due to concentration of access to a storage device (based on a data source called DL or data lake).
  • Such issues are not limited to the process of creating a DM from an unstructured data source for the purpose of analysis, but also the process of creating a data set (subset) from an unstructured data source for uses other than analysis. possible.
  • Content information representing one or more content attributes of the unstructured data is included in the first type metadata of at least one of the plurality of unstructured data included in the unstructured data source.
  • Second type metadata which is metadata, is associated.
  • the two or more first type metadata referring to the unstructured data includes first and second first type metadata.
  • the first type 1 metadata is original metadata of the unstructured data.
  • the second type 1 metadata is metadata based on a copy of the first type 1 metadata associated with the type 2 metadata that matches the search condition.
  • the data processing system displays recommended information that is information related to a plurality of virtual volumes recommended to be used in parallel.
  • the plurality of virtual volumes are associated with a plurality of second type metadata that match at least one of the plurality of search conditions.
  • Two first type metadata are associated.
  • Each of the one or more duplication degrees is a value according to the data amount of the duplication portion of at least two reference destinations respectively corresponding to at least two first type metadata.
  • the search condition is a search condition according to, for example, an analysis viewpoint.
  • a data set that meets such a search condition can be generated without having to search unstructured data in the unstructured data source or duplicate the unstructured data. Therefore, a data set that matches the search condition can be generated in a short time while suppressing an increase in the storage capacity. Furthermore, information regarding a plurality of virtual volumes recommended to be used in parallel can be displayed. As a result, it is possible to reduce the time required from generation of the data set to processing using the data set.
  • Example 1 is a block diagram of a computer system related to Example 1.
  • FIG. An example of a snapshot process is shown.
  • the structure of a storage management table is shown.
  • the structure of S meta management information and S meta attribute information contained in one S meta is shown.
  • the structure of the C meta management information contained in one C meta is shown.
  • the structure of a copy pair management table is shown.
  • the structure of a configuration management table is shown. It is a flowchart of a data read process. It is a flowchart of a data write process. It is a flowchart of an extraction process. It is a flowchart of C snap (selection).
  • FIG. 10 is a block diagram of a computer system related to Example 2.
  • FIG. The structure of a performance management table is shown. It is a flowchart of the whole process from an extraction process to a duplication check process. It is a flowchart of S5920. It is a flowchart of S5960. An outline of the scale-out process is shown.
  • the “interface part” includes one or more interfaces.
  • the one or more interfaces may be one or more similar interface devices (for example, one or more NIC (Network Interface Card)) or two or more different interface devices (for example, NIC and HBA (Host Bus Adapter)). There may be.
  • NIC Network Interface Card
  • HBA Home Bus Adapter
  • the “storage unit” includes one or more memories.
  • the at least one memory may be a volatile memory or a non-volatile memory.
  • the storage unit may include one or more PDEVs in addition to one or more memories.
  • PDEV means a physical storage device and may typically be a non-volatile storage device (eg, an auxiliary storage device).
  • the PDEV may be, for example, an HDD (Hard Disk Drive) or an SSD (Solid State Drive).
  • the “processor unit” includes one or more processors.
  • the at least one processor is typically a CPU (Central Processing Unit).
  • the processor may include a hardware circuit that performs part or all of the processing.
  • the process may be described using “program” as the subject, but the program is executed by the processor unit, so that the determined process can be appropriately performed in the storage unit and the interface unit.
  • the subject of processing may be a processor unit (or a computer or a computer system having a processor unit).
  • the program may be installed in the computer from a program source.
  • the program source may be, for example, a program distribution server or a computer-readable recording medium.
  • two or more programs may be realized as one program, or one program may be realized as two or more programs.
  • information may be described using an expression such as “xxx table”, but the information may be expressed in any data structure. That is, in order to show that the information does not depend on the data structure, the “xxx table” can be referred to as “xxx information”.
  • the configuration of each table is an example, and one table may be divided into two or more tables, or all or part of the two or more tables may be a single table. Good.
  • a reference code (or a common part in the reference sign) is used, and when explaining the same kind of element separately, the element ID (or Element reference signs) may be used.
  • the “host system” may be one or more physical host computers (for example, a cluster of host computers), or at least one virtual host computer (for example, VM (Virtual Machine)). ) May be included.
  • VM Virtual Machine
  • the “management system” may be composed of one or more computers.
  • the management computer when the management computer has a display device and the management computer displays information on its own display device, the management computer may be a management system.
  • a management computer for example, a server
  • transmits display information to a remote display computer for example, a client
  • the display computer displays the information (when the management computer displays information on the display computer)
  • a system including at least the management computer among the management computer and the display computer may be a management system.
  • the “storage system” may be one or more physical storage devices, or at least one virtual storage device (for example, LPAR (Logical Partition) or SDS (Software Defined Storage). ) May be included.
  • LPAR Logical Partition
  • SDS Software Defined Storage
  • RAID is an abbreviation for Redundant “Array” of “Independent” (or “Inexpensive)” Disks.
  • the RAID group is composed of a plurality of PDEVs (typically the same kind of PDEVs), and stores data according to the RAID level associated with the RAID group.
  • the RAID group may be referred to as a parity group.
  • the parity group may be, for example, a RAID group that stores parity.
  • VOL is an abbreviation for logical volume and may be a logical storage device.
  • the VOL may be a substantial VOL (RVOL) or a virtual VOL (VVOL).
  • the “RVOL” may be a VOL based on a physical storage resource (for example, one or more RAID groups) included in the storage system that provides the RVOL.
  • VVOL may be any one of an external connection VOL (EVOL), a capacity expansion VOL (TPVOL), and a snapshot VOL.
  • EVOL is based on a storage space (for example, VOL) of an external storage system, and may be a VOL according to a storage virtualization technology.
  • the TPVOL is composed of a plurality of virtual areas (virtual storage areas), and may be a VOL according to capacity virtualization technology (typically ThinThProvisioning).
  • the snapshot VOL may be a VOL provided as a snapshot of the original VOL.
  • the snapshot VOL may be an RVOL.
  • the “pool” may be a logical storage area (for example, a set of a plurality of pool VOLs). For example, there may be at least one of a TP pool and a snapshot pool as a pool.
  • the TP pool may be a storage area composed of a plurality of real areas (substantial storage areas).
  • a storage system (for example, a storage controller to be described later) does not allocate a real area to a virtual area (TPVOL virtual area) to which an address specified by a write request received from a host system belongs, the virtual area (write destination virtual area) ) May be allocated from the TP pool (even if another real area has already been allocated to the write destination virtual area, the real area may be newly allocated to the write destination virtual area).
  • the storage system may write the write target data accompanying the write request in the allocated real area.
  • the snapshot pool may be a storage area in which data saved from the original VOL is stored.
  • One pool may be used as both a TP pool and a snapshot pool.
  • the “pool VOL” may be a VOL that is a component of the pool.
  • the pool VOL may be an RVOL or an EVOL.
  • FIG. 1 shows an outline of the first embodiment.
  • the computer system includes one or more host computers 200, a management computer 100, and a storage device 300.
  • the host computer 200 is connected to the storage apparatus 300 via the network 500.
  • the management computer 100 is connected to the storage apparatus 300 via the network 550.
  • the host computer 200 executes an application program (hereinafter, application) 211.
  • application an application program
  • the host computer 200A executes the analysis application 211A.
  • the management computer 100 executes a management program 112.
  • the storage device 300 is an object storage device and has a storage controller 329.
  • the storage controller 329 has a local memory 1200 and provides the VOL 26.
  • the data VOL 26D is an example of a data source (typically an unstructured data source) such as a namespace or DWH (Data Ware House).
  • a data chunk 81 is stored in the data VOL 26D.
  • the “data chunk” is a significant unit of data (for example, a still image, a moving image, or an e-mail).
  • the data chunk may be, for example, a part of time-series data including data from a sensor (for example, data every certain time).
  • the “object” is a data set including one or more data chunks 81 and one S meta 82 corresponding to the one or more data chunks 81.
  • the data chunk 81 is data from a data issuer (for example, a sensor such as a camera)
  • each piece of data from the same data issuer is a “data chunk”
  • Data chunks (a plurality of data chunks having the same data attribute “issuer”) are included in the same “object”.
  • the “unstructured data” may be a concept including so-called semi-structured data.
  • one or more data chunks included in one object are referred to as a “data chunk unit”.
  • the “unstructured data” may be each data chunk in the object, a part of the data chunk, or a data chunk unit.
  • the two types of metadata there are two types of metadata. At least a part of the two types of metadata is stored in the local memory 1200.
  • the two types of metadata are referred to as “S meta” and “C meta” in this embodiment.
  • the S meta 82 (or S meta attribute information 1220 described later corresponding to one data chunk) is an example of the first type metadata
  • the C meta 83 is an example of the second type metadata.
  • the S meta 82 and the object correspond 1: 1. Therefore, the S meta 82 and the data chunk 81 correspond 1: 1 or 1: multiple.
  • the C meta 83 and the data chunk 81 correspond 1: 1 or many: 1.
  • the S meta 82 is metadata associated with the data chunk unit 80 (all data chunks 81) included in the object.
  • the S meta ID object ID
  • the C meta 83 is metadata including content information representing one or more content attributes specified from the data chunk 81 (data content) extracted from the data VOL 26D.
  • the “content attribute” is an attribute related to the content of the data, and is, for example, a data type (for example, image or e-mail), time (for example, acquisition time or update time), and the like.
  • the content information is information expressed in text (for example, a character string), but may include other types of information (for example, numerical values indicating feature amounts) in addition to the text.
  • the S meta 82 and the C meta 83 also hold information for indicating the relationship between them. Specifically, the C meta 83 refers to the S meta 82 that refers to the data chunk 81 corresponding to the C meta 83, and the S meta 82 referenced by the C meta 83 refers to the C meta 83. .
  • the C meta 83 and the S meta 82 corresponding to the same data chunk 81 refer to each other.
  • a unidirectional reference from the C meta 83 to the S meta 82 may be employed instead of such a bi-directional reference (link).
  • the C meta 83 is a kind of metadata of the data chunk 81, the data amount is typically smaller than that of the data chunk 81.
  • the S meta 82 and the object are not limited to 1: 1 (for example, many: many or 1: many may be used).
  • the host computer 200 issues an I / O (Input / Output) request to the storage apparatus 300.
  • the I / O request is a write request or a read request.
  • an object ID corresponding to the data chunk 81 to be read is designated.
  • the storage controller 329 receives a read request from the host computer 200A, the storage controller 329 identifies the S meta 82 in which the object ID specified by the read request is described, and the data chunk 81 pointed to by the identified S meta 82 from the data VOL 26D. Read and return the data chunk 81 to the host computer 200A.
  • the storage controller 329 executes DM creation processing.
  • the DM creation process is started in response to a user request that is a specific type of request from the user.
  • the user request may be an explicit request for DM creation, or may be a request defined as one of DM creation requests such as a search request.
  • the storage controller 329 accepts a search request from a user (eg, an analyst) of the host computer 200 and accepts a DM creation request from a user (eg, an administrator) of the management computer 100.
  • a search condition (a condition regarding data to be included in the DM) according to an analysis viewpoint is specified.
  • Search conditions include, for example, data type (for example, photo, email), data issuer (for example, sensor model number), position (for example, data acquisition position such as shooting position), time zone (for example, shooting time) A time period) and a data value range (for example, an upper limit and a lower limit of metric values included in the data) may be adopted.
  • data type for example, photo, email
  • data issuer for example, sensor model number
  • position for example, data acquisition position such as shooting position
  • time zone for example, shooting time
  • a time period for example, shooting time
  • a data value range for example, an upper limit and a lower limit of metric values included in the data
  • the address of the area (for example, VOL area) where the data chunk 81 is actually stored is not specified. This is because the user usually does not know such an address.
  • the DM creation process according to the present embodiment is expected to be completed in a short time from at least (reason 3) of the following (reason 1) to (reason 3).
  • (Reason 1) In the DM creation process, the C meta 83 is referenced, and the data chunk 81 in the data VOL 26D is not referenced.
  • (Reason 2) The C meta 83 referred to in the DM creation process is a C meta 83 created asynchronously with the DM creation process (for example, the C meta 83 created before the start of the DM creation process). In other words, the C meta 83 is created with a different trigger from the user request that triggers the start of the DM creation process.
  • the C meta 83 of the data chunk 81 is created.
  • the created DM is not a substantive DM in which a copy of the data chunk 81 in the data VOL 26D is stored, but a virtual DM (hereinafter referred to as VDM) that refers to the data chunk 81 in the data VOL 26D.
  • VDM is SSVOL (snapshot VOL) 26S in this embodiment.
  • the first S meta 82S may be duplicated, and the data chunk 81 itself does not need to be duplicated.
  • the second S meta 82T which is the metadata based on the copy of the first S meta 82S, is the first S meta 82S. It may not be exactly the same.
  • the first S meta 82S is original metadata included in the object
  • the second S meta 82T is metadata based on a copy of the first S meta 82S as described above.
  • the first S meta 82S is an example of first first type metadata
  • the second S meta 82T is an example of second second type metadata. That is, in the present embodiment, the S meta 82 includes the first S meta 82S and the second S meta 82T.
  • the second S meta 82T is data that holds information on a snapshot data chunk (actually, a data chunk in the data VOL 26D) that is a data chunk that can be referred to through the SSVOL 26S. It may not be used, and may be called by another name such as snapshot management data (in this case, since the confusion does not occur, the first S meta is simply “S meta” or “meta data”). May be called).
  • the DM creation according to the present embodiment is hereinafter referred to as “C snap”, and the DM creation processing is referred to as “C snap processing”.
  • C snap is an example of a data set
  • VDM is an example of a virtual data set.
  • the storage controller 329 operates asynchronously with the search request from the analysis application 211A (host computer 200A) (for example, before the C snap process is started in response to the search request).
  • the C meta # 1, # 2 and # 3 corresponding to the data chunk units # 1, # 2 and # 3 in the data VOL 26D are created and stored in the local memory 1200.
  • the C meta # 1 refers to the first S meta # 1 that references the data chunk unit # 1
  • the C meta # 2 refers to the first S meta # 2 that refers to the data chunk unit # 2
  • the C meta # 3. Refers to the first S meta # 3 referring to the data chunk unit # 3.
  • the data unit # 1 is one data chunk, and therefore, one C meta # 1 is associated with the first S meta # 1 that refers to the data chunk unit # 1.
  • each of the data chunk units # 2 and # 3 is a plurality of data chunks. Therefore, in the first S meta # 2 referring to the data chunk unit # 2, a plurality of C metas including the C meta # 2 are included. A plurality of C metas including the C meta # 3 are associated with the first S meta # 3 that is associated and refers to the data chunk unit # 3.
  • the storage controller 329 starts the C snap process in response to the search request.
  • the C snap process is roughly divided into two, “C snap (selection)” and “C snap (snap acquisition)”.
  • the storage controller 329 searches the existing C meta # 1 to # 3 for a C meta 83 that matches the search condition specified in the search request (for example, the condition according to the analysis viewpoint # 1). That is, the search range is not the data chunk 81 but the C meta 83. If at least one C meta 83 matching the search condition is found, C snap (snap acquisition) is executed. Assume that C meta # 1 is found.
  • the storage controller 329 creates a second S meta # 1-1 based on a copy of the first S meta # 1 referenced by the C meta # 1 (S1A).
  • the storage controller 329 creates SSVOL # 1 (VDM) to which the second S meta # 1-1 belongs.
  • the storage controller 392 provides SSVOL # 1 to at least the host computer 200A (search request transmission source) of the one or more host computers 200.
  • the analysis application 211A host computer 200A
  • an access state (access restriction) of one or more data chunks 81 referred to by SSVOL # 1 for example, “R / W is possible” (both read and write are possible), “RO” (read only (read only) And “R / W not possible” (both read and write are not possible) may be adopted.
  • the access state of SSVOL # 1 may be “RO”. Thereby, it is possible to maintain data consistency among the plurality of host computers 200.
  • V2 When the provision destination of SSVOL # 1 is only the host computer 200A, the access state of SSVOL # 1 may be “R / W”. Thereby, the host computer 200A can customize SSVOL # 1.
  • the storage controller 329 receives a write request designating SSVOL # 1
  • the storage controller 329 may store a data chunk accompanying the write request in the pool.
  • the second S meta 82T is associated with the C meta 83 for the data chunk 81 referred to by the second S meta 82T, and the C meta 83 associated with the first S meta 82S as the duplication source of the second S meta 82T is associated with the second S meta 82T. It is done.
  • a part of the data chunk unit # 2 and a part of the data chunk unit # 3 are overlapped (common).
  • some data chunks 81 belong to both an object including data chunk unit # 2 and an object including data chunk unit # 3.
  • a part of the second S meta # 2-1 and a part of the second S meta # 3-1 also overlap each other.
  • a part of the reference destination of the second S meta # 2-1 and a part of the reference destination of the second S meta # 3-1 are the same data chunk 81.
  • the analysis application 211B of the host computer 200B transmits a search request specifying a search condition according to analysis viewpoint # 2 to the storage controller 329.
  • the storage controller 329 finds the C meta # 2 that matches the search condition, duplicates the first S meta # 2 referenced by the C meta # 2 (S1B), and performs the first based on the duplication of the first S meta # 2.
  • the SSVOL # 2 (VDM) to which the 2S meta # 2-1 belongs is created, and the SSVOL # 2 is provided to at least the host computer 200B (search request transmission source) among the one or more host computers 200.
  • the analysis application 211C of the host computer 200C transmits a search request specifying a search condition according to the analysis viewpoint # 3 to the storage controller 329.
  • the storage controller 329 finds the C meta # 3 that matches the search condition, duplicates the first S meta # 3 referenced by the C meta # 3 (S1C), and performs the first based on the duplication of the first S meta # 3.
  • the SSVOL # 3 (VDM) to which the 2S meta # 3-1 belongs is created, and the SSVOL # 3 is provided to at least the host computer 200C (search request transmission source) of the one or more host computers 200.
  • a user request such as a search request may be issued by the management computer 100 instead of or in addition to the host computer 200.
  • a plurality of division viewpoints (for example, a plurality of search conditions respectively corresponding to a plurality of division viewpoints) may be specified by one user request.
  • the storage controller 329 can specify designation of a plurality of division viewpoints from one or more user requests.
  • the VDM (SSVOL 26S) can be created without performing both the search of the data chunk 81 and the duplication of the data chunk 81. That is, a DM suitable for the analysis viewpoint can be generated in a short time while suppressing an increase in storage capacity. For this reason, it is considered that a large number (for example, several hundreds) of VDMs having different analysis viewpoints are created. It is desirable that as many analyzes as possible among a plurality of analyzes according to a plurality of analysis viewpoints are performed in parallel.
  • a resource amount for example, a capacity of a cache memory in which a data chunk to be referred to in the VDM is temporarily stored.
  • processing focusing on the above-described characteristic that a part of the reference destinations of the plurality of second S meta 82T corresponding to the plurality of VDMs may overlap is executed. That is, the storage controller 329 has two or more second S meta 82Ts corresponding to two or more VDMs (SSVOL 26S) recommended to be used in parallel (for example, simultaneously) based on the overlapping degree of the plurality of second S metas 82T.
  • the second S meta 82T in the analysis group is known, the VDM corresponding to the second S meta 82T and the C meta 83 associated with the second S meta 82T are known, and the analysis viewpoint corresponding to the C meta 83 is known.
  • the storage controller 329 executes analysis control processing that is control based on one or more constructed analysis groups.
  • the “plurality of second S metas 82T” may be all the second S metas 82T managed by the storage controller 329, or may be the second S metas 82T associated with one or more C metas 83.
  • the “one or more C metas 83” is a C meta 83 suitable for a plurality of analysis viewpoints specified by one or more user requests.
  • the storage controller 329 may execute analysis group construction regardless of whether or not one or more user requests specifying a plurality of analysis viewpoints are received (for example, periodically). For example, the storage controller 329 calculates the duplication degree of the existing second S meta 82T. The storage controller 329 constructs an analysis group based on the degree of duplication of the existing second S meta 82T and the existing C meta 83 associated with the second S meta 82T. Thereafter, when the storage controller 329 receives a request (for example, a recommendation display request), the storage controller 329 presents recommended information that is information about the constructed analysis group.
  • a request for example, a recommendation display request
  • the recommended information includes information indicating all analyzes included in the analysis group (that is, a plurality of analyzes (analysis viewpoints recommended to be executed in parallel)) and all the second S metas 82T belonging to the analysis group.
  • Information representing the SSVOL 26S associated with the second S meta 82T belonging to the analysis group for example, a route ID described later
  • information representing the C meta 83 associated with the second S meta 82T belonging to the analysis group May be included.
  • the storage controller 329 may execute analysis group construction and analysis control processing in response to the one or more user requests.
  • the storage controller 329 finds a C meta 83 that matches the analysis viewpoint, and identifies the second S meta 82T associated with the C meta 83.
  • the storage controller 329 calculates the duplication degree of the plurality of second S meta 82T specified for the plurality of analysis viewpoints.
  • the storage controller 329 constructs one or more analysis groups based on the calculated redundancy.
  • the storage controller 329 executes analysis control processing for one or more constructed analysis groups.
  • the analysis control process includes, for example, presenting the recommended information described above for one or more constructed analysis groups. Note that at least one analysis group includes two or more second S metas 82T, but the number of second S metas 82T included in any analysis group may be one.
  • the “redundancy” of the plurality of second S meta 82T is a value according to the data amount of the overlapping portion of at least two reference destinations of the plurality of second S meta 82T.
  • the “duplication degree” of the plurality of second S meta 82Ts may be the amount of the reference destination overlapping address range (in other words, duplicate data chunk group) of the plurality of second S meta 82T, It may be a ratio of the amount of the reference destination overlapping address range (in other words, the duplicate data chunk group) to the amount of the reference destination address range (in other words, the reference data chunk group) of the plurality of second S meta 82T.
  • the “duplicate data chunk group” is one or more duplicate data chunks.
  • the “duplicate data chunk” is a data chunk that is referenced from two or more second S metas 82T among the plurality of second S metas 82T.
  • the overlapping degree of the plurality of second S meta 82Ts may be the overlapping degree between a certain second S meta 82T and each of the remaining second S meta 82T.
  • the structure of the two or more second S metas 82T is a star structure.
  • the degree of duplication of the plurality of second S meta 82Ts may be a value (for example, total or average) based on a plurality of duplication degrees respectively corresponding to the plurality of duplications in the plurality of second S meta 82T.
  • Each of the multiple overlaps is an overlap of any two or more second S metas 82T.
  • the structure of the two or more second S metas 82T is a tree structure.
  • the analysis control process is a process including at least one of the following (p) to (s).
  • the recommended information includes, for each of the constructed one or more analysis groups, information indicating all analyzes specified from the analysis group (that is, analyzes recommended to be executed in parallel (analysis viewpoint)) Information representing all the second S meta 82T included in the analysis group (for example, S meta ID 1210001 described later), information indicating the SSVOL 26S to which the second S meta 82T included in the analysis group belongs (for example, a route ID described later), and It includes at least one of information (for example, a C meta ID 123001 and a user extension 123006 described later) representing the C meta 83 associated with the second S meta 82T included in the analysis group.
  • the presentation destination of the recommended information may be at least one of the host computer 200 and the management computer 100 (for example, the transmission source of the user request that triggered the presentation of the recommended information).
  • An analysis group that meets a predetermined group condition is selected from the constructed one or more analysis groups, the second S meta 82T included in the selected analysis group, and a data chunk referenced by the second S meta 82T A process of copying 81 and the C meta 83 associated with the second S meta 82T to another storage device.
  • the “predetermined group condition” refers to, for example, referring to a data chunk group having a capacity larger than that of the cache memory.
  • An analysis group that refers to a data chunk group (at least a duplicate data chunk group) larger than the capacity of the cache memory is hereinafter referred to as a “large capacity analysis group”.
  • an analysis group that refers to a data chunk group (at least a duplicate data chunk group) having a capacity less than or equal to the capacity of the cache memory is hereinafter referred to as a “low capacity analysis group”.
  • the process (p) may be performed on the analysis group remaining as a result of the process (r). That is, the analysis group presented may be only the low-capacity analysis group. Note that when the analysis group is constructed, it may be controlled so that only the low-capacity analysis group is constructed. For example, in the construction of an analysis group, a low-capacity analysis including one or more second S meta 82T that refers to a data chunk group that is less than the capacity of a cache memory (a cache memory capacity specified from the configuration management table 1240 described later). Groups may be constructed.
  • the “low redundancy analysis group” is an analysis group including two or more second S meta 82T having a redundancy less than a threshold.
  • the “high redundancy analysis group” is an analysis group that includes two or more second S metas 82T having a duplication degree equal to or greater than a threshold and does not include two or more second S metas 82T having a duplication degree less than the threshold.
  • the process (p) may be performed after the process (s).
  • the advantages of the process (s) are, for example, as follows.
  • the storage controller 329 receives the designations of the plurality of division viewpoints # 2 and # 3, and sets the C meta # 2 and # 3 respectively corresponding to the plurality of division viewpoints # 2 and # 3. Then, the degree of duplication of the plurality of second S meta # 2-1 and # 3-1 associated with the C meta # 2 and # 3 is calculated. The storage controller 329 selects the second S meta # 2-1 and # 3-1 according to the calculated redundancy (S2) and includes the selected second S meta # 2-1 and # 3-1 An analysis group is created, and the second S meta # 2-1 and # 3-1 are presented as S meta corresponding to SSVOL # 2 and # 3 recommended to be used in parallel (S3).
  • the second S metas # 2-1 and # 3-1 may be an example of two or more second S metas 82T having a duplication degree equal to or greater than a threshold value.
  • a high degree of duplication means that there are many data chunks 81 having a high reference frequency, and that there are many data chunks 81 having a high reference frequency means that the data chunk 81 referred to in the analysis is a cache memory of the storage controller 329. Therefore, it can be expected to shorten the time required for a plurality of analyses.
  • FIG. 2 shows an outline of an example of a series of processes including a C snap process and processes before and after the C snap process.
  • the C snap process is roughly divided into two processes, specifically, “(2-1) C snap (selection)” and “(2-2) C snap (snap acquisition)”.
  • FIG. 3 is a block diagram of the computer system according to the first embodiment.
  • the computer system includes the management computer 100, the host computer 200, and the storage device 300. Any one or more of the management computer 100, the host computer 200, and the storage device 300 may be provided.
  • the management computer 100 is an example of a management system.
  • the host computer 200 is an example of a host system.
  • the storage device 300 is an example of a storage system.
  • the management computer 100, the host computer 200, and the storage apparatus 300 are connected to each other via a network (for example, a LAN (Local Area Network)) 500.
  • the management computer 100 is connected to the host computer 200 and the storage device 300 via a network (e.g., SAN (Storage Area Network)) 550.
  • Networks 500 and 550 may be integrated.
  • the management computer 100 includes an I / F (interface) 131, an I / F 130, a memory 110, and a processor 120 connected thereto.
  • the I / F 131 and the I / F 130 are examples of an interface unit.
  • the I / F 131 is connected to the network 550.
  • the I / F 130 is connected to the network 500.
  • the memory 110 stores the management program 112.
  • the processor 120 can issue a request to the storage apparatus 300 by executing the management program 112.
  • the request may be a write request, a read request, a copy control request, or the like.
  • the host computer 200 has an I / F 231, an I / F 230, a memory 210, and a processor 220 connected to them.
  • the I / F 231 and the I / F 230 are examples of an interface unit.
  • the I / F 231 is connected to the network 550.
  • the I / F 230 is connected to the network 500.
  • the memory 210 stores programs such as an OS (Operating System) 212, an application 211, and an agent program 213.
  • the processor 220 executes a program in the memory 210.
  • the processor 220 transmits an I / O request to the storage apparatus 300 by executing a program. Thereby, the VOL 26 provided by the storage apparatus 300 can be accessed.
  • the application 211 is, for example, an analysis application.
  • the analysis application performs analysis processing such as correlation analysis.
  • the OS 212 controls the entire processing of the host computer 200.
  • the agent program 213 transmits an instruction to the management computer 100, and the management computer 100 can transfer the instruction to the storage apparatus 300. If the analysis application 211 wants to use the storage function, the agent program 213 can be used to perform storage control linked to the analysis processing via the management program 112. For example, when the analysis application has a DM creation function, the agent program 213 transmits the operation content to the management program 112 in response to the DM creation operation by the user, and the management program 112 converts the operation content into a copy control request. Then, the copy control request is transmitted to the storage apparatus 300.
  • the storage apparatus 300 includes one or more PDEV 1500 and a storage controller 329 connected thereto.
  • One or more PDEV 1500s may constitute one or more RAID groups.
  • the PDEV 1500 is, for example, an HDD or an SSD.
  • One or more PDEV 1500 stores the data chunk 81 and the like stored in the data VOL 26D.
  • One or more PDEV 1500 may store at least some of the plurality of C metas 83 and the plurality of S metas 82.
  • the storage controller 329 includes an I / F 1321, an I / F 1320, an I / F 1400, a cache memory 1100, a local memory 1200, and a processor 1310 connected thereto.
  • a local memory 1200 stores information and programs.
  • the processor 1310 refers to or updates information in the local memory 1200, performs I / O to the VOL, creates a C meta 83, and executes C snap. To do.
  • the I / F 1321, the I / F 1320, and the I / F 1400 are examples of an interface unit.
  • the I / F 1321 is connected to the network 550.
  • the I / F 1320 is connected to the network 500.
  • the I / F 1400 is connected to one or more PDEV 1500.
  • the cache memory 1100 and the local memory 1200 are examples of a storage unit.
  • the cache memory 1100 and the local memory 1200 are a single memory, and a cache area as a cache memory and a local memory area as a local memory may be provided in the memory.
  • the cache memory 1100 is a memory for temporarily storing data (for example, data (write target data or read target data) in accordance with an I / O request from the host computer 200) input / output to / from one or more PDEV 1500s. .
  • the local memory 1200 stores information and programs. Specifically, for example, the local memory 1200 stores S meta management information 1210, S meta attribute information 1220, C meta management information 1230, a configuration management table 1240, a storage management table 1250, and a copy pair management table 1260. For example, the local memory 1200 stores an I / O program 61, an object program 62, a data processing program 63, a snapshot program 64, an extraction program 1290, a C snap program 1291, and a duplication check program 1292.
  • S meta management information 1210 and S meta attribute information 1220 exist for each S meta 82.
  • the S meta management information 1210 is information for managing objects.
  • the S meta attribute information 1220 is information for managing the data chunk 81.
  • the C meta management information 1230 exists for each C meta 83.
  • the C meta 83 includes content information representing one or more content attributes specified from the data chunk 81.
  • the C meta management information 1230 is at least a part of the C meta 83.
  • the storage management table 1250 is a table that holds information regarding the VOL 26 provided by the storage apparatus 300.
  • the copy pair management table 1260 is a table that holds information regarding the copy configuration to which the SSVOL 26S belongs.
  • the I / O program 61 is a program for processing an I / O request.
  • the object program 62 is a program for processing an object.
  • the data processing program 63 is a program that accesses the VOL 26.
  • the snapshot program 64 is a program for creating the SSVOL 26S.
  • the extraction program 1290 is a program that creates the C meta 83 based on the extracted data chunk 81 by extracting the data chunk 81.
  • the C snap program 1291 is a program that executes C snap processing.
  • the duplication check program 1292 checks the duplication degree of the plurality of S metas 82.
  • At least one of the extraction program 1290, the C snap program 1291, and the duplication check program 1292 may be a user program that is a program created by the user. That is, at least one of the extraction program 1290, the C snap program 1291, and the duplication check program 1292 exists for each user, and at least one of the extraction program 1290 and the C snap program 1291 corresponding to the user of the host computer 200 is present. May be executed.
  • the C meta 83 and the SSVOL 26S can obtain a desired analysis result by a user (for example, an analyst). At least one of them can be expected.
  • FIG. 4 shows an example of snapshot processing.
  • the snapshot process is a process at the time of writing to the SSVOL 26S.
  • the storage controller 329 manages a pool 91 composed of one or more pool VOLs 26P (pool VOLs # 1 to # 4).
  • the storage controller 329 receives a write request designating SSVOL 26S from the host computer 200.
  • the write request is, for example, a write request in which an object ID of an object including a reference data chunk of S meta (S meta duplication) belonging to SSVOL 26 is designated.
  • the storage controller 329 stores the data chunk 81 (for example, # 1) according to the write request in the pool 91, not the reference destination of the SSVOL 26 (S meta). That is, the write target data chunk 81 is stored in a pool VOL 26P which is an example of a VOL different from the reference VOL of the SSVOL 26 (S meta).
  • the storage controller 329 manages the association between the virtual address of the data chunk (SSVOL 26S area address) and the real address of the data chunk 81 (pool VOL 26P area address).
  • a process of the direct-on-write method may be employed. That is, when a write occurs in a data chunk in the SSVOL 26S (or data VOL 26D), the write is performed on a new area, and the areas (addresses) indicated by the first S meta 82S and the second S meta 82T are rewritten.
  • the snapshot process of the direct-on-write method may be adopted, but the snapshot process of other methods such as the copy-on-write method may be adopted.
  • FIG. 5 shows the configuration of the storage management table 1250.
  • the storage management table 1250 includes a storage ID 1252.
  • Each storage ID 1252 includes one or more route IDs 1251.
  • the storage ID 1252 is information indicating an identifier (storage ID) of the storage apparatus 300.
  • the route ID 1251 is information indicating a route identifier (route ID).
  • the route ID 1251 of the route that the storage apparatus 300 has is associated with the storage ID 1252 of the storage apparatus 300.
  • a “root” is a group of one or more S meta 82.
  • a VOL 26 exists for each route.
  • the route ID can also be referred to as a VOL identifier (VOL_ID).
  • the S meta pointer 1254 of the S meta 82 belonging to the route is associated with the route ID 1251 of the route.
  • the S meta pointer 1254 is information (pointer) indicating the location of the S meta 82 in the local memory 1200.
  • FIG. 6 shows a configuration of S meta management information 1210 and S meta attribute information 1220 included in one S meta 82.
  • the S meta 82 includes S meta management information 1210 and S meta attribute information 1220. As described above, the S meta management information 1210 manages objects, and the S meta attribute information 1220 manages data chunks 81. In the S meta management information 1210, S meta attribute information 1220 is associated with each data chunk 81 in the object corresponding to the S meta management information 1210.
  • the S meta management information 1210 includes an S meta ID 121001.
  • the S meta ID 121001 is information indicating an S meta identifier (S meta ID). In other words, the S meta ID is an object ID.
  • the S meta management information 1210 includes an S meta attribute ID 121002 and an S attribute pointer 12103 for each data chunk 81 in the corresponding object.
  • the S meta attribute ID 121002 is information representing an identifier (S meta attribute ID) of the S meta attribute information 1220.
  • the S attribute pointer 121003 is information (pointer) indicating the location of the S meta attribute information 1220 in the local memory 1200. Thereby, the C meta 83 as the reference destination of the S meta 82 can be specified.
  • the S meta management information 1210 includes a user ID 12011 and a user pointer 121012 for each C meta 83 that refers to the S meta 82 including the S meta management information 1210.
  • the user ID 121011 is information representing an identifier (C meta ID) of the C meta 83, and specifically, for example, additional information (that is, additional information (that is, the extraction program 1290) added to the S meta management information 1210 by the user program (for example, the extraction program 1290) This is information used when managing the C meta 83) and is an identifier of additional information.
  • the user pointer 121012 is information (pointer) indicating the location of the local memory 1200 of the C meta management information 1230 included in the C meta 83.
  • the S meta attribute information 1220 includes an S meta attribute ID 122001, an access status 122002, a copy status 122003, a storage ID 122004, a start address 122005, an end address 122006, and a data validity 122007.
  • the S meta attribute ID 122001 is information representing the S meta attribute ID.
  • the S meta attribute ID may be a data chunk identifier (data chunk ID). In the I / O request, either an object ID or a data chunk ID may be specified.
  • the access state 122002 is information indicating an access method and access restriction to the data chunk 81.
  • Examples of the access method include object access (“Object”) that is access in units of objects, block access that is access in units of blocks, and file access that is access in units of files.
  • Access restrictions include, for example, “R / W possible”, “RO”, and “R / W not possible”.
  • the access state 122002 may further include information such as which users are accessible.
  • the copy status 122003 is information indicating the copy status for the data chunk.
  • the copy status 122003 includes “SVOL” (data chunk referenced from SSVOL 26S), “NULL” (data chunk 81 is not a copy target), and the like.
  • Storage ID 122004 is information indicating the identifier (storage ID) of the storage device in which the data chunk 81 is stored.
  • the data chunk 81 referred to by the S meta 82 may be arranged in a storage apparatus 300 different from the storage apparatus 300 in which the S meta 82 exists.
  • the processor 1310 can identify the storage apparatus 300 storing the corresponding data chunk 81 by referring to the storage ID 122004.
  • the start address 122005 is information indicating the start address of the area where the data chunk 81 exists.
  • the end address 122006 is information indicating the end address of the area where the data chunk 81 exists.
  • the data validity 122007 is information (for example, a flag) indicating whether or not the data chunk 81 itself is valid. “YES” means valid and “NO” means invalid.
  • S meta #X referring to data chunks #A and #B in data VOL 26D
  • S meta #X ′ (a copy of S meta #X) is data chunk # of data chunks #A and #B.
  • FIG. 7 shows the configuration of C meta management information 1230 included in one C meta 83.
  • the C meta management information 1230 is at least a part of the C meta 83.
  • the C meta management information 1230 includes a C meta ID 123001, a type 123002, a start address 123003, an end address 123004, an S meta attribute ID 123005, and a user extension 123006.
  • the C meta ID 123001 is information indicating an identifier (C meta ID) of the C meta 83. From the C meta ID 123001, the reference S meta 82 of the C meta 83 (the S meta 82 including the same C meta ID as the user ID 121011) is known.
  • the type 123002 is information indicating the type of the C meta 83.
  • the type 123002 is referred to, for example, when the C snap program 1291 searches from the viewpoint of the metadata type.
  • the start address 123003 is information indicating the start address of an area (for example, an area of the VOL 26) in which information related to the C meta management information 1230 (for example, part of content information (part of the C meta 83)) is stored.
  • the end address 123004 is information indicating the end address of an area in which information associated with the C meta management information 1230 is stored.
  • the S meta attribute ID 123005 is information indicating the S meta attribute ID of the S meta attribute information 1220 indicating the data chunk corresponding to the C meta 83. From the S meta attribute ID 123005, the S meta attribute information 1220 indicating the data chunk 81 corresponding to the C meta 83 can be specified.
  • User extension 123006 is extension information added by the user program and is at least part of the content information. For example, when the extracted data chunk 81 is a shot image, information on the shooting position of the image is included in the C meta management information 1230 as the user extension 123006.
  • FIG. 8 shows the configuration of the copy pair management table 1260.
  • the copy pair management table 1260 is a table that holds information relating to the configuration of the copy pair.
  • the copy pair management table 1260 holds a route ID 12601, a copy status 12602, a copy target storage ID 12603, a copy target route ID 12604, and a group ID 12605.
  • the route ID 12601 is information indicating a route identifier (route ID).
  • the copy status 12602 is information indicating the current status of copying for a route (for example, VOL) identified from the route ID 12601.
  • the copy target route ID 12604 is information indicating an identifier of a copy target route that is a route that forms a pair with the route represented by the route ID 12601.
  • the copy target route may be either the copy source or the copy destination.
  • At least one of the route ID 12601 and the copy target route ID 12604 may include information (for example, a symbol) indicating whether the route corresponding to the information is the copy source or the copy destination.
  • the group ID 12605 is information representing an identifier (group ID) of a copy group including the copy pair.
  • FIG. 9 shows the configuration of the configuration management table 1240.
  • the configuration management table 1240 is a table that holds information related to the configuration of the storage apparatus 300.
  • the configuration management table 1240 has a record for each resource (component) that the storage apparatus 300 has.
  • Each record holds information such as a resource type 12401, a resource ID 12402, a related resource ID 12403, and a specification 12404.
  • the resource type 12401 is information indicating the type of resource. Examples of the value of the resource type 12401 include “processor”, “Cache” (cache memory 1100), “Port” (for example, a port of the I / F 1320 that accepts an I / O request from the host computer 200), and “SSD” (an example of the PDEV 1500). ), “HDD” (an example of PDEV 1500), “Pool”, “Pool 91” in FIG. 4, “Volume” (VOL mentioned above), and the like.
  • Resource ID 12402 represents a resource identifier.
  • the related resource ID 12403 represents an identifier of a resource related to the resource, specifically, an identifier of a parent resource of the resource.
  • “Parent resource” means a resource one level higher than resources related to the resource.
  • the “higher resource” means a higher resource (host computer 200 side) than the resource.
  • a plurality of resources each have a tree structure as a plurality of resource nodes. In the tree structure, the host computer 200 side is higher, and the PDEV 1500 side is lower.
  • Spec 12404 represents a resource specification.
  • the value of the spec 12404 is a frequency
  • the resource type 12401 is “Cache”
  • the value of the spec 12404 is a capacity.
  • the value (unit) of the spec 12404 may be a value corresponding to the resource type.
  • the information held in the configuration management table 1240 may be held in the format illustrated in FIG. 5 instead of the format illustrated in FIG.
  • FIG. 10 is a flowchart of the data read process.
  • the I / O program 61 determines whether the I / O request is a read request (S5010). If the determination result in S5010 is false (S5010: No), the process proceeds to S5510 in FIG.
  • the I / O program 61 converts the read request into a common read request, and passes the converted read request to the object program 62 (S5020).
  • the reason for converting an I / O request such as a read request into a common I / O request is to make it possible to use various protocols (access methods) as the protocol of the I / O request. For example, there are protocols such as block, file, and object, and any protocol can be converted into a common I / O request so that the processing after the conversion can be performed in common.
  • the object access protocol is an input / output protocol for performing data access using an object as a basic unit
  • the operation format can be operated using a Web interface such as a REST (Representational State Transfer) protocol.
  • a Web interface such as a REST (Representational State Transfer) protocol.
  • REST Representational State Transfer
  • an I / O request can be converted into a common request WRITE
  • S5050 is performed. That is, the object program 62 converts the read source address according to the common read request into a VOL address.
  • S meta management information 1210 and S meta attribute information 1220 are used. Specifically, the object program 62 refers to the S meta management information 1210 including the S meta ID 121001 that matches the object ID in the common request, and the S meta attribute information from the S attribute pointer 121003 of the S meta management information 1210 See 1220.
  • the object program 62 acquires a start address 122005 and an end address 122006 included in the S meta attribute information 1220.
  • the object program 62 converts the object ID in the common request into the start address and end address represented by the acquired addresses 122004 and 122005, and passes the converted common request to the data processing program 63.
  • the data processing program 63 determines whether or not the data specified from the common request exists in the cache memory 1100 (S5090). If the determination result in S5090 is false (S5090: No), the data processing program 63 writes the data in the cache memory 1100 and passes the processing to the object program 62 (S5100).
  • the object program 62 reads the data from the cache memory 1100 (S5060).
  • the I / O program 61 returns the data to the host computer 200 that is the source of the read request (S5030).
  • the three programs 61 to 63 operate in parallel and cooperate with each other as necessary, so that data according to the read request is read from the VOL 26 and returned to the host computer 200. it can.
  • the read source VOL may be the data VOL 26D or the SSVOL 26S.
  • it may be determined whether or not reading is permitted based on the access state 122002 corresponding to the data chunk 81 to be read.
  • FIG. 11 is a flowchart of data write processing.
  • the I / O program 61 determines whether or not the I / O request is a write request (S5510). If the determination result in S5510 is false (S5510: No), processing according to the request is performed.
  • the I / O program 61 converts the write request into a common request for the storage apparatus 300 (S5520).
  • the object program 62 determines whether or not the copy state 122003 of the write target data (object) according to the common request is “SVOL” (S5540). Specifically, the object program 62 specifies the S meta management information 1210 of the same S meta ID 121001 as the object ID in the common request, and further, the S meta attribute information from the S attribute pointer 121003 of the S meta management information 1210 1220 is specified, and the copy status 122003 of the specified S meta attribute information 1220 is referred to.
  • the snapshot program 64 changes the write destination VOL to another VOL (pool VOL) (S5550). Specifically, the snapshot program 64 refers to the S meta management information 1210 including the S meta ID 121001 that matches the object ID in the common request, and the S meta attribute from the S attribute pointer 121003 of the S meta management information 1210 Reference is made to information 1220. Next, the snapshot program 64 acquires the start address 122005 and the end address 122006 of the S meta attribute information 1220, and changes the VOL_ID represented by these addresses 122004 and 122005 to the ID of the pool VOL. Thereby, it is possible to avoid the data chunk 81 referred to by the SSVOL 26S from being updated by writing to the SSVOL 26S.
  • S5560 is performed. That is, the object program 62 converts the object ID in the common request into the VOL address. Specifically, the object program 62 refers to the S meta management information 1210 including the S meta ID 121001 that matches the object ID, and refers to the S meta attribute information 1220 from the S attribute pointer 121003 of the S meta management information 1210. To do. Next, the object program 62 acquires the start address 122005 and the end address 122006 of the S meta attribute information 1220, and replaces the object ID in the common request with the acquired addresses 122004 and 122005.
  • the object program 62 secures an area from the cache memory 1110 (S5570). Then, the object program 62 writes data according to the common request in the reserved area (S5530). When S5530 is completed, the I / O program 61 may return write completion to the host computer 200 that is the transmission source of the write request. The data written in the cache memory 1110 is written into the PDEV 1500 corresponding to the area indicated by the write destination address of the data by the data processing program 63.
  • the data access processing in the storage apparatus 300 is completed in the host computer 200 by writing the write target data to the cache memory 1100 by operating the three programs 61 to 63 in parallel and cooperating as necessary. Can be notified. In the data write process, it may be determined whether writing is permitted based on the access state 122002 corresponding to the data chunk 81 to be written.
  • FIG. 2 there are “(0) normal state” and “(1) extraction process” before the C snap process, and “(2-1) C snap (selection)” and “( 2-2) C snap (snap acquisition) ”and“ (3) analysis ”after C snap processing.
  • the data chunk 81 is stored in the storage apparatus 300, and the first S meta 82S is associated with the object including the data chunk 81.
  • the data chunk 81 may be, for example, image data generated from a monitoring camera, or log information output from a manufacturing device in a factory.
  • data chunks # 1 and # 2 are stored, and there are first S metas # 1 and # 2 that refer to them, respectively.
  • the extraction program 1290 is executed by the processor 1310. Works on.
  • FIG. 12 is a flowchart of the extraction process.
  • the extraction process is performed by the extraction program 1290 and the object program 62.
  • the extraction process may target a route ID specified by the user.
  • the route ID (for example, VOL_ID) may be specified in advance.
  • the extraction program 1290 acquires content information that can be an analysis point of view from data (object) stored in the storage apparatus 300 and stores the C meta 83 including the content information in the storage apparatus 300 in association with the S meta 82 of the data. It is a program to do.
  • the extraction program 1290 operates in the storage apparatus 300, but may operate in either the host computer 200 or the management computer 100.
  • the extraction program 1290 compares the time when the data chunk 81 is stored in the designated route (VOL) with the time of the previous extraction process, so that the storage time is newer than the time of the previous extraction process. It is determined whether there is a data chunk (hereinafter referred to as update data chunk) 81 (S5610). If the determination result in S5610 is false (S5610: No), the process ends.
  • the “time of the previous extraction process” is the time stored in the local memory 1200 by the extraction program 1290 during the previous extraction process.
  • the extraction program 1290 extracts the update data chunk 81, and whether or not the extracted update data chunk 81 is a data chunk that conforms to the defined extraction rule. Is determined (S5620).
  • the extraction rule specifies a data condition (a search condition for extraction) of a data chunk to be extracted.
  • the data condition may be, for example, a data type (for example, photo, email).
  • an extraction rule may be prepared for each user.
  • the extraction program 1290 extracts content information representing one or more content attributes represented by the update data chunk 81 from the update data chunk 81 based on the data format ( S5630).
  • content information representing one or more content attributes represented by the update data chunk 81
  • the extraction program 1290 creates the C meta 83 based on the extracted content information (S5640).
  • the content information may be stored in at least one of the local memory 1200 and the VOL 26. If the content information capacity is sufficiently smaller than the free space of the local memory 1200, the entire content information may be stored in the local memory 1200.
  • the extraction program 1290 creates C meta management information 1230 based on the storage location of the content information.
  • the C meta ID 1230 may be an arbitrary value.
  • the start address 123003 and the end address 123004 may be “NULL” when content information is stored in the local memory 1200.
  • the S meta attribute ID 123005 may be an update data chunk identifier.
  • User extension 123006 may be at least part of the content information.
  • the entire content information may be stored in the local memory 1200 as a result.
  • at least a part of the content information may be stored in the VOL 26.
  • the address of the storage location of the content information can be obtained by inquiring the object program 62, for example.
  • the user extension 123006 may be “NULL”.
  • the extraction program 1290 requests the object program 62 to register the C meta 83 including the C meta management information 1230 created in S5640 (S5650).
  • the object program 62 associates the C meta 83 with the first S meta 82S referring to the extracted update data chunk 81 (S5660).
  • the object program 62 adds the same value as the C meta ID 1230 to the S meta management information 1210 in the S meta 82 that refers to the extracted update data chunk 81 as the user ID 121011, and the C meta management A pointer to the information 1230 is added as a user pointer 121012.
  • the extraction program 1290 makes the same determination as in S5610 (S5670). If the determination result in S5670 is true (S5670: Yes), the process advances to S5620 for another update data chunk. If the determination result in S5670 is false (S5670: No), the process ends.
  • C meta # 1 and # 2 corresponding to data chunks # 1 and # 2 are created by the extraction process.
  • C meta # 1 refers to the first S meta # 1
  • C meta # 2 refers to the first S meta # 2.
  • Both C meta # 1 and # 2 use the specified search condition (data condition (for example, time zone)) and the search condition as a key instead of or in addition to the above-described data type as the content attribute. Search results (for example, search hits or misses).
  • C snap selection is a process of selecting the C meta 83 that matches the search condition from the C meta 83 associated with the first S meta 82S.
  • the C snap program 1291 operates in the storage apparatus 300 in this embodiment, but may operate in either the management computer 100 or the host computer 200.
  • the start of the C snap process is instructed by the user.
  • the C snap program 1291 receives the instruction.
  • the instruction format is, for example, as follows. CSNAP ⁇ Search key> ⁇ Target route ID> ⁇ Copy destination route ID> ⁇ Option>
  • the C meta 83 corresponding to the data chunk 81 in the route specified by ⁇ target route ID> becomes the C meta 83 that matches the search key (search condition) specified by ⁇ search key>. It is narrowed down.
  • One or more first S metas 82S referred to by the one or more narrowed C metas 83 are respectively copied below the route specified by ⁇ copy destination route ID>.
  • FIG. 13 is a flowchart of C snap (selection).
  • the C snap program 1291 identifies the S meta pointer 1254 corresponding to the route ID specified by the instruction from the user from the storage management table 1250.
  • the C snap program 1291 refers to the S meta management information 1210 from the identified S meta pointer 1254, and further uses the C meta 83 associated with the S meta from the user ID 121011 and the user pointer 12101 of the S meta management information 1210. Is identified.
  • the C snap program 1291 determines whether the C meta 83 (content information included in the C meta 83) matches the search key designated by the user (S5720).
  • the C snap program 1291 copies the first S meta 82S (S meta management information 1210 and S meta attribute information 1220) associated with the C meta 83 to the object program 62. (S5730).
  • the object program 62 duplicates the designated first S meta 82S (S5740).
  • an S meta ID different from the S meta ID of the original first S meta 82S may be assigned as the S meta ID of the second S meta 82T based on the replication of the first S meta 82S.
  • any one of the C snap program 1291 and the object program 62 may execute duplication narrowing processing that is one of the following (a) and (b).
  • Whether or not to execute such a replication narrowing process may be described in an instruction from the user (a start instruction to the C snap program 1291). It is possible to narrow down the data chunks 81 included in the SSVOL 26S (VDM) by the replication narrowing process.
  • the C snap program 1291 determines whether or not S5710 has been performed on all the first S meta 82S corresponding to the route ID specified by the user (S5750). When the determination result of S5750 is false (S5750: No), S5710 is performed for the unprocessed S meta 82. If the determination result in S5750 is true (S5750: Yes), the process ends. When S5740 is performed for at least one first S meta 82S, a C snap (snap acquisition) is performed.
  • SSVOL26S is created based on the second S meta 82T obtained in the C snap (selection).
  • the host computer 200 can use the SSVOL 26S as a DM.
  • FIG. 14 is a flowchart of C snap (snap acquisition).
  • the C snap program 1291 requests the snapshot program 64 to create a snapshot (S5770).
  • the C snap program 1291 passes the S meta ID in the second S meta 82T created by the C snap (selection) to the snapshot program 64.
  • the snapshot program 64 identifies the S meta management information 1210 that matches the S meta ID passed from the C snap program 1291, and the S meta attribute information associated with the S meta management information 1210.
  • the copy status 122003 of 1220 is set to “SVOL” (S5680). By setting the copy status 122003 to “SVOL”, it is determined that the data is the snapshot target data when writing to the object, and the necessary snapshot processing (see FIG. 4) is performed.
  • the snapshot program 64 adds a copy destination route ID (ID of SSVOL26S) designated by the user as a route ID 1251 to the storage management table 1250, and a pointer to the second S meta 82T in the route ID 1251. 1254 is associated (S5690).
  • the snapshot program 64 may provide the copy destination route ID (SSVOL 26S) to the host computer 200 of the user (search request source user) who issued the C snap start instruction.
  • C snap selection
  • data chunks to be snapshot data chunks included in the VDM
  • C snap In selection
  • an SSVOL 26S (VDM) including the selected data chunk is created.
  • a plurality of copy destination route IDs can be created for one route ID (data VOL 26D).
  • a plurality of SSVOLs 26S can be created for one data VOL 26D.
  • the host computer 200 accesses the copy destination route ID specified at the time of creating the C snap, the host computer 200 appears to have a DM (SSVOL 26S).
  • SSVOL 26S When a plurality of SSVOLs 26S are created, for example, it appears that DMs (data marts) with different viewpoints have been created.
  • FIG. 15 is a flowchart of the duplication check process.
  • the duplication check process is executed by the duplication check program 1292.
  • the duplication check process is a process including the creation of the above-described analysis group and the presentation of recommended information.
  • the duplication check program 1292 constructs an analysis group including two or more second S meta 82T having a degree of duplication equal to or higher than a threshold, and corresponds to the second S meta 82T (and the second S meta 82T included in the analysis group). This is a program for presenting information representing SSVOL26S).
  • the duplicate check process may be started in response to one or more user requests that specify a plurality of analysis viewpoints, or when a predetermined duplicate check start event is detected without receiving such user requests. (E.g., periodically). In this duplication check process, the analysis group constructed in the previous duplication check process may be updated, or all analysis groups constructed in the previous duplication check process are discarded and a new analysis group is updated. Good.
  • the duplication check program 1292 executes S5810. That is, the duplication check program 1292 selects one metaset.
  • a “meta set” is a set of one C meta 83 and one second S meta 82T.
  • the metaset is selected from one or more metasets that are not included in any analysis group.
  • the duplication check program 1292 calculates the degree of duplication between the reference destination (address range) represented by the selected metaset and the reference destination represented by all metasets other than the selected metaset.
  • the “reference destination represented by the meta set” is a reference destination (address range) represented by the start address 122005 and the end address 122006 of all the S meta attribute information 1220 included in the second S meta 82T in the meta set.
  • the duplication check program 1292 specifies a comparison destination metaset whose degree of duplication with the comparison source metaset is equal to or greater than a threshold value.
  • the duplication check program 1292 groups the comparison source metaset and the identified comparison destination metaset (that is, the comparison destination metaset whose degree of overlap with the comparison source metaset is equal to or greater than a threshold), Build one analysis group.
  • the “threshold value” for the degree of overlap may be provided in advance, may be set by the user, may be a fixed value, or may be a variable value.
  • an analysis group including only the comparison source metaset may be constructed.
  • the comparison source metaset when the comparison source metaset and any of the comparison destination metasets are less than the threshold, the comparison source metaset has the highest K duplication degree among the one or more comparison destination metasets ( K may be a natural number) comparison destination metaset (for example, a comparison destination metaset having the highest degree of overlap).
  • the duplication check program 1292 determines whether or not S5810 has been executed for all the second S meta 82T (S5820). When the determination result in S5820 is false (S5820: No), S5810 is executed again.
  • the duplication check program 1292 presents recommended information (S5830). Specifically, for example, the duplication check program 1292 presents information (for example, S meta 121001) representing the second S meta 82T corresponding to the SSVOL 26S recommended to be used in parallel. Information representing the second S meta 82T is presented for each analysis group (reference numeral 5840 is an example of a presentation screen on which information representing the second S meta 82T is presented for each analysis group).
  • the analysis group is typically a high-multiplicity analysis group (an analysis group that includes two or more second S metas 82T with a multiplicity of a threshold value equal to or greater than a threshold and does not include two or more second S metas 82T with a multiplicity less than a threshold) Therefore, by performing a plurality of analyzes belonging to the analysis group in parallel (for example, simultaneously), the probability that a duplicate data chunk exists in the cache memory (cache hit rate) is increased, and access to the PDEV 1500 can be reduced.
  • a high-multiplicity analysis group an analysis group that includes two or more second S metas 82T with a multiplicity of a threshold value equal to or greater than a threshold and does not include two or more second S metas 82T with a multiplicity less than a threshold
  • the duplication check program 1292 can narrow down analysis groups to be presented from one or more constructed analysis groups based on the configuration management table 1240.
  • an analysis group whose amount of data chunk group to be referred to can be executed in parallel may be selected as a presentation target. .
  • the duplication check program 1292 may select an analysis group that is a low capacity analysis group (an analysis group that references a chunk data group having a capacity equal to or smaller than the cache memory capacity represented by the configuration management table 1240) as a presentation target.
  • the duplication check program 1292 may select an analysis group that is a low-duplication analysis group as a presentation target instead of an analysis group that is a high-duplication analysis group and a large-capacity analysis group. That is, the duplication check program 1292 may execute the process (s) described in the description of FIG. Thereby, it can be expected that access to the PDEV 1500 is distributed to a plurality of PDEV 1500s.
  • the storage controller 329 creates a C meta 83 including one or more content attributes represented by the data chunk 81 for the data chunk 81, and uses the C meta 83 as the first data chunk 81. Associate with 1S meta 82S.
  • the search target according to the search request specifying the search key is not the data chunk 81 but the C meta 83.
  • the storage controller 329 creates the second S meta 82T by duplicating the first S meta 82S associated with the found C meta 83, and constructs the SSVOL 26S to which the second S meta 82T belongs.
  • VDM DM
  • the storage controller 329 constructs an analysis group including the second S meta 82T having a degree of overlap equal to or greater than the threshold, and corresponds to the second S meta 82T (and / or the second S meta 82T included in the constructed analysis group).
  • Information representing SSVOL26S The duplicate data chunk referenced by the second S meta 82T having a duplicate degree equal to or higher than the threshold is a data chunk that can be referenced frequently. Therefore, it is possible to execute parallel analysis that avoids the occurrence frequency of access to the PDEV 1500 as much as possible in the storage apparatus 300.
  • the duplication check program 1292 may specify the cache memory capacity from the configuration management table 1240 and construct only the low-capacity analysis group when constructing the analysis group.
  • Example 2 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 same applies to the other embodiments.
  • a plurality of analyzes using a plurality of VDMs are distributed to a plurality of storage apparatuses 300.
  • the storage apparatus in which the C snap (SSVOL 26S) is created includes a plurality of storage devices. Selected from the device. After the selection, C snap creation and duplication check processing are performed in the selected storage apparatus.
  • FIG. 16 is a block diagram of a computer system according to the second embodiment.
  • the local memory 1200 stores a performance management table 1270, a copy program 65, and a scale-out program 74.
  • the performance management table 1270 is a table that holds information representing the performance of resources in the storage apparatus 300 (details will be described with reference to FIG. 17).
  • the copy program 65 executes copying between the storage apparatuses 300.
  • the scale-out program 74 executes I / O request exchange between the storage apparatuses 300.
  • the management computer 100 can collect information stored in the configuration management table 1240 and the performance management table 1270 from the plurality of storage apparatuses 300 and store the information in the memory 110. That is, the management computer 100 can aggregate the configuration management table 1240 and the performance management table 1270 of the plurality of storage apparatuses 300 in the memory 110 of the management computer 100.
  • the management computer 100 may periodically collect information from a plurality of storage apparatuses 300, or may collect information from the storage apparatus 300 when a notification that the information has been changed is received from the storage apparatus 300. Good.
  • the function as the management computer 100 may be in a computer independent of the host computer 200 and the storage apparatus 300, but may be in either the storage apparatus 300 or the host computer 200. Further, the management computer 100 does not collect the information of the configuration management table 1240 and the performance management table 1270 of all the storage apparatuses 300, but each storage apparatus 300 collects information from all the storage apparatuses 300 other than the storage apparatus 300. May be.
  • FIG. 17 shows the configuration of the performance management table 1270.
  • the performance management table 1270 has a record for each resource. Each record holds information such as resource type 12701, resource ID 12702, time 12703, and performance value 12704.
  • the resource type 12701 is information indicating the type of resource (component) in the storage apparatus 300.
  • the resource ID 12702 is information representing a resource identifier.
  • the time 12703 is information representing the acquisition time of performance information including the performance value represented by the corresponding performance value 12704.
  • the performance information of “Processor1” is acquired every 10 minutes, but the time interval for acquiring the performance information can be arbitrarily set. Only the latest performance information may be held in the performance management table 1270.
  • the performance value 12704 is information representing the acquired performance value.
  • the performance value 12704 represents the CPU usage rate.
  • the unit of the performance value represented by the performance value 12704 may differ depending on the resource type 12701.
  • a plurality of performance values for one resource type may be included in the performance value 12704.
  • the performance value 12704 may be a cumulative value or a value per unit time. .
  • a cumulative value for example, a count value of the number of I / O requests
  • a value per unit time for example, IOPS (number of I / O requests per second)
  • FIG. 18 is a flowchart of the entire process from the extraction process to the duplication check process.
  • the extraction process is the process shown in FIG. 12 (S5910).
  • the management program 112 of the management computer 100 receives a plurality of search keys (a plurality of analysis viewpoints) passed from the analysis application 211 of the host computer 200 via the agent program 213, the configuration management table 1240 and performance of each storage device 300. Based on the management table 1270, it is determined whether a plurality of analyzes are executed by one storage apparatus 300 having the data VOL 26D (data source) or two or more storage apparatuses 300 (S5920).
  • FIG. 19 is a flowchart of S5920.
  • the management program 112 issues a C snap (selection) instruction to the storage apparatus 300 having the data VOL 26D (S6010).
  • a route ID is specified.
  • the C snap program 1291 in the storage apparatus 300 executes the same processing as S5710 and S5720 (YES) in FIG. 13 (S6020).
  • the C snap program 1291 identifies the S meta pointer 1254 corresponding to the designated route ID from the storage management table 1250.
  • the C snap program 1291 specifies the C meta 83 corresponding to any one of the search keys received in S5920 among the C meta 83 associated with the first S meta 82S identified from the identified S meta pointer 1254.
  • the duplication check program 1292 uses two or more first S meta 82S start addresses 122005 and end addresses 122006 associated with the plurality of C meta 83 identified in S6020.
  • the degree of duplication is calculated, and one or more analysis groups are constructed based on the calculated degree of duplication (S6030). This is substantially the same processing as S5810 in FIG. Specifically, in S5810, an analysis group of the meta set including the second S meta 82T is constructed, but in S6030, the meta set including the first S meta 82S (the set of the C meta 83 and the first S meta 82S). ) Analysis group is established.
  • the duplication check program 1292 returns the result of S6030 (for example, information on the constructed analysis group) to the management program 112.
  • the management program 112 that has received the result copies based on the association between the first S meta 82S and the C meta 83, the capacity of the SSVOL associated with the first S meta 82S and the C meta 83, and the configuration management table 1240.
  • the required time (time required for copying) is predicted (S6040).
  • the “capacity of SSVOL” here corresponds to, for example, the specified one or more C metas 83 of the data chunk group referred to by the first S meta 82S associated with the specified one or more C metas 83.
  • the total capacity of one or more data chunks may be sufficient.
  • Tsc (capacity of Sx volume excluding duplication) / ((read performance on copy source storage device catalog) / Ndm) It becomes.
  • Ttc (copy destination copy time) (VOL capacity for Gx excluding duplication) / (write performance on catalog of copy destination storage device), It becomes.
  • Ttr (time required for read processing for analysis at the copy destination) (Capacity of VDM for Gx) / ((Read performance on copy destination storage device catalog) / Number of VOLs for Gx) it is conceivable that.
  • Ndm means (number of VDMs not copied) + (number of Gx excluding duplication).
  • “Gx” means a set of analysis groups of the C meta 83 and the first S meta 82S to be copied.
  • the “copy destination storage device” may be a storage device satisfying the conditions such as having free capacity capable of storing information in the analysis group and having a lower CPU usage rate and cache usage rate than the copy source storage device. However, the storage device may satisfy other conditions.
  • “Max (X, Y)” is the larger value of X and Y. Therefore, the management program 112 finds a combination that minimizes Tsum.
  • Tsc, Ttc, and Ttr are all 0, but the CPU time allocated to one VDM is small because of the large number of VDMs. As a result, the Tsr of one VOL is increased, and as a result, the Tsr of all VDMs is increased.
  • Gy y is a natural number
  • Tsr decreases, and Tsc, Ttc, and Ttr all increase.
  • Ttc + Ttr
  • ⁇ (Ttc + Ttr) can be reduced even if the number of analysis groups G to be copied increases. If the number of analysis groups is increased in descending order of the degree of duplication (the number of analysis groups to be copied is increased), the minimum Tsum can be found. This calculation is an example, and optimization calculation may be performed by other methods.
  • the process proceeds to S5950.
  • the management program 112 determines whether or not the capacity when the duplication of the analysis group Gy to be copied confirmed in S5920 is less than or equal to the cache memory capacity of the copy destination storage apparatus.
  • FIG. 20 is a flowchart of S5960.
  • the management program 112 instructs the copy source storage apparatus 300 (typically, the storage apparatus 300 having the data VOL 26D) to perform C snap (selection) and copy (S6110).
  • a root ID and information of a copy destination storage device for example, a storage ID 1252 of the copy destination storage device are designated.
  • the C snap program (hereinafter referred to as copy source C snap program) 1291 in the copy source storage apparatus 300 executes the same processing as S5710 and S5720 (YES) in FIG. 13 (S6120). That is, the copy source C snap program 1291 identifies the S meta pointer 1254 corresponding to the designated root ID from the storage management table 1250. The copy source C snap program 1291 identifies the C meta 83 corresponding to one of the search keys received in S5920 among the C meta 83 associated with the first S meta 82S identified from the identified S meta pointer 1254. .
  • the copy source C snap program 1291 specifies the specified C meta 83 in the copy program (hereinafter referred to as copy source copy program) 65 in the copy source storage apparatus 300 specified by the instruction received in S6120, and A copy request for copying the associated first S meta 82S and the actual data corresponding to the C meta 83 and the first S meta 82S is transmitted (S6130).
  • the copy source copy program 65 sends a write instruction for the first S meta 82S and the C meta 83 specified in the copy request and the corresponding actual data to the copy destination specified in the copy request.
  • the data is output to the storage apparatus 300 (S6140).
  • the copy program (hereinafter referred to as the copy destination copy program) 65 in the copy destination storage apparatus 300 receives the first S meta 82S and the C meta 83 specified by the write instruction and the corresponding actual data.
  • the data is stored in the copy destination storage apparatus 300 (S6150).
  • the storage destination of the first S meta 82S and the C meta 83 may be the local memory 1200 of the copy destination storage apparatus 300.
  • the storage of the first S meta 82S may be the storage of the second S meta 82T based on a copy of the first S meta 82S.
  • the actual data storage destination may be a data VOL provided by the copy destination storage apparatus 300.
  • the data VOL may be an RVOL (real VOL) or a TPVOL (virtual logical volume according to ThinThProvisioning).
  • RVOL real VOL
  • TPVOL virtual logical volume according to ThinThProvisioning
  • the copy destination copy program 65 refers to the reference destination address corresponding to the saved actual data, that is, the saved reference destination addresses (start address 122005 and end address 122006) of the second S meta 82T, and the saved C
  • the reference destination addresses (start address 123003 and end address 123004) of the meta 83 are rewritten to the address of the area where the actual data is stored (S6160).
  • the copy destination copy program 65 requests the C snap program (hereinafter referred to as copy destination C snap program) 1291 in the copy destination storage apparatus 300 for C snap (snap acquisition) (S6170).
  • C snap sinap acquisition
  • the SSVOL 26S corresponding to the stored second S meta 82T is created.
  • the completion of C snap is notified to the management program 112.
  • the first S meta 82S in the analysis group may be replaced with the second S meta 82T stored in the copy destination storage apparatus.
  • FIG. 18 shows an outline of the scale-out process.
  • FIG. 21 illustrates storage apparatuses 300X and 300A. Scale-out programs 74X and 74A are added to the storage devices 300X and 300A, respectively.
  • the scale-out program 74X may relay the cooperation between the I / O program 61X (61A) and the object program 62X (62A).
  • the storage devices 300X and 300A have cache memories 1100X and 1100A, respectively.
  • the scale-out program 74A of the storage apparatus 300A determines whether the destination of the read request is the local storage apparatus 300A. If the determination result is false, the scale-out program 74A transfers the read request to the storage apparatus 300X that is the destination of the read request.
  • the storage apparatus 300X that has received the transferred read request reads the data chunk 81 to the cache memory 1100X based on the read request.
  • the processing after S5020 is different from that of the first embodiment.
  • the scale-out program 74A acquires a common request, and determines whether the access destination of the common request is the local storage apparatus 300A. If the determination result is false, the scale-out program 74A transfers the common request to the scale-out program 74X of the storage apparatus 300X that is the access destination of the common request. The scale-out program 74X passes the common request to the object program 62X. On the other hand, when the access destination of the common request is the own storage apparatus 300A, the scale-out program 74A passes the common request to the object program 62A of the own storage apparatus 300A.
  • the scale-out program 74A acquires a common request, and determines whether the access destination of the common request is the local storage apparatus 300A. If the determination result is false, the scale-out program 74A transfers the common request to the scale-out program 74X of the storage apparatus 300X that is the access destination of the common request. The scale-out program 74X passes the common request to the object program 62X. On the other hand, when the access destination of the common request is the own storage apparatus 300A, the scale-out program 74A passes the common request to the object program 62A of the own storage apparatus 300A.
  • C snap processing can be realized across a plurality of storage apparatuses 300.
  • the storage device 300A can store data only
  • the storage device 300B can store only snapshot data, which can be used for different purposes. It becomes possible not to give to an apparatus.
  • a plurality of analyzes can be distributed to a plurality of storage apparatuses 300 by arranging a plurality of SSVOLs in the plurality of storage apparatuses 300. Thereby, it can be expected that the time required for a plurality of analyzes is shortened.
  • copying between the storage apparatuses 300 may be performed in units of analysis groups, or may be performed in units of metasets included in the analysis group. In the latter case, if the value obtained by subtracting the capacity of the data chunk group referred to by the copy target metaset from the capacity of the data chunk group referred to by the analysis group is equal to or smaller than the cache memory capacity of the copy source storage apparatus 300, copying is performed. Selection of the target metaset may end.
  • the stored information (at least one of the second S meta 82T, the C meta 83, and the actual data) is stored. Is deleted from the copy destination storage apparatus. For example, if the same C meta 83 is specified with the same search key within a specified time after the C meta 83 matching a certain search key is specified, the C meta 83 and the second S associated with the C meta 83 are related. The meta 82T and actual data corresponding to the meta 82T may not be deleted from the copy destination storage apparatus.
  • the specified search key and the C meta specific time (the time when the C meta 83 is specified) may be stored in the user extension 123006 of the C meta management information 1230 of the specified C meta 83, or other places May be stored. Specific examples will be described below.
  • the C snap program 1291 registers the specified search key and the time when the C meta 83 is specified in the user extension 123006 of the C meta management information 1230 of the specified C meta 83. If the same search key and copy destination storage information (information indicating the copy destination storage device, for example, a storage ID) are already registered in the user extension 123006 of the C meta management information 1230 of the specified C meta 83, the user The C meta specific time in the extension 123006 is updated. The C snap program 1291 does not copy the C meta 83 including the copy destination storage information, the first S meta 82S associated with the C meta 83, and the corresponding actual data again in the subsequent processing.
  • the C snap program 1291 performs the processing after S5930 on the C meta 83 and the like that do not include the copy destination storage information, and adds the copy destination storage information to the user extension 123006 of the C meta 83 to be copied at the time of copying.
  • the management program 112 periodically checks the C meta management information 1230 of each storage device 300, and the C meta 83 that has passed a specified time (can be a fixed value or a user set value) from the last C meta specific time.
  • a specified time can be a fixed value or a user set value
  • the second S meta 82T associated with the C meta 83 and the corresponding actual data and SSVOL 26S are deleted from the storage apparatus 300, and the search key, C meta is deleted from the user extension 123006 of the copy source C meta 83. Delete specific time and copy destination storage information.
  • the storage device 300 uses the analysis group
  • the performance management table 1270 is monitored while a plurality of analyzes corresponding to the analysis group are executed in parallel.
  • the C meta 83 corresponding to the unexecuted analysis among the plurality of analyzes corresponding to the analysis group, etc. Is copied to another storage device 300.
  • “Resource depletion” means that the performance value of a resource has reached a threshold value (for example, the cache memory usage rate or CPU usage rate has reached a threshold value).
  • a threshold value for example, the cache memory usage rate or CPU usage rate has reached a threshold value.
  • the following processing is performed. That is, S5920 and S5930 in FIG. 18 are not performed. S5940 is performed.
  • the storage controller 329 performs in parallel a plurality of analyzes using a plurality of SSVOLs 26S (VDM) corresponding to the analysis groups presented by the processing of FIG.
  • VDM SSVOLs 26S
  • the management program 112 periodically checks the performance management table 1270 to determine whether resource depletion has occurred. If occurrence of resource depletion is detected and there is an SSVOL corresponding to an unexecuted analysis among a plurality of analyses, the storage controller 329 sequentially selects the second S meta 82T having the highest degree of duplication among the unimplemented analyses. Copy to another storage device.
  • the series of processing steps for copying may be the same as that after S5950 in FIG.
  • the SSVOL 26S corresponding to the unexecuted analysis is included in the other storage apparatus 300. Copied.
  • an example of the data processing system is a storage system, but the data processing system may correspond to at least one of a storage system, a host system, and a management system.
  • a request source that transmits a search request specifying a search key to the host system may be a client system (one or more client computers).
  • the C meta 83 exists in the host system or the management system instead of or in addition to the storage system. Also good. Specifically, for example, for the same object (same data chunk 81), a C meta 83 is created for each user (for example, for each host system or each management system), and the C meta 83 is stored in the C meta 83. It may be provided to the corresponding user's host system or management system. When the host system or management system receives a search condition specification from a user, the processor in the host system or management system selects a C meta 83 that matches the search condition from among the C meta 83 corresponding to the user.
  • the host system or the management system may request the storage system to create an SSVOL to which the S meta 82 referred to by the C meta 83 belongs.
  • the storage system may execute C snap processing.
  • the C meta 83 may exist for each user.
  • the C meta 83 created by the user A extraction program 1290 is stored as the C meta 83 for the user A
  • the C meta 83 created by the user B extraction program 1290 is: It may be stored as C meta 83 for user B.
  • the storage controller 329 (C snap program 1291) may search for the C meta 83 that matches the search key specified in the search request and the user A of the request source.
  • the user A's C snap program 1291 exists as the C snap program 1291
  • the user A's C snap program 1291 matches the search key specified in the search request from the user A and the user A's C meta. You may look for 83.
  • the C snap process may be started when a C snap event which is a predetermined event defined to start the C snap process is detected.
  • the C snap event has received a user request (for example, an explicit request for C snap processing or a request in which execution of the C snap processing is defined), or has come at a predefined time (for example, periodically)
  • the C snap process is started), and the load of the processor executing the C snap program 1291 may be less than a predetermined value, such as a predetermined performance status (performance-related status).
  • the storage controller 329 may receive a user request from at least one of the management computer 100 and the host computer 200 and execute a C snap process in response to the user request.
  • the user program (for example, at least one of the extraction program 1290, the C snap program 1291, and the duplication check program 1292) is executed by any of the management computer 100, the host computer 200, and the storage controller 329. Also good.
  • SSVOL26S may be updated regularly or irregularly.
  • the C snap program 1291 specifies the C meta 83 that represents the same content attribute as the content attribute represented by the C meta 83 associated with the second S meta 82T belonging to the existing SSVOL 26S, and the C meta 83 refers to the first S
  • the second S meta 82T may be newly created by duplicating the meta 82S, and the new second S meta 82T may be newly associated with the existing SSVOL 26S.
  • a file may be adopted as an example of the object.
  • the file data may be an example of a data chunk in the object
  • the file metadata may be an example of an S meta of the object.
  • the data VOL may be an example of a data area
  • the SSVOL may be an example of a snapshot that references a part of unstructured data in the data area.
  • the search condition it may be determined whether or not the search condition is met with reference to the first S meta 82S instead of or in addition to data extraction from the unstructured data source.
  • the above-described C meta 83 may be created based on the first S meta 82S, and the C meta 83 may be associated with the first S meta 82S that matches the search condition.
  • one or more data chunks 81 referenced from the first S meta 82S that match the search condition may be an example of the corresponding unstructured data.

Landscapes

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

Abstract

非構造化データの第1種メタデータに、その非構造化データの1以上のコンテンツ属性を表すコンテンツ情報を含んだ第2種メタデータが関連付けられる。1以上の非構造化データの各々について、その非構造化データを参照する2以上の第1種メタデータが、その非構造化データのオリジナルのメタデータである第1の第1種メタデータと、検索条件に適合した第2種メタデータが関連付けられている第1の第1種メタデータの複製に基づく第2の第1種メタデータとを含む。データ処理システムは、並列に使用されることが推奨される複数の仮想ボリュームに関わる情報を表示する。その複数の仮想ボリュームは、複数の検索条件の少なくとも1つに適合する複数の第2種メタデータが関連付いている複数の第1種メタデータの1又は複数の重複度に基づく2以上の第2の第1種メタデータが関連付けられる。

Description

データ処理システム及びデータ処理方法
 本発明は、概して、データ処理に関する。
 ストレージシステムにより管理されているデータは、検索及び分析等の様々な用途に使用し得る。
 例えば、ビックデータ分析では、特に、ファイルなど保存構造が定まっていない非構造化データに対する分析が、業務における新たな知見や気づきを得る有用な方法として期待されている。このビックデータ分析では、大量のデータを対象に分析を行うことで検索に時間がかかり、分析完了までに多大な時間を要してしまうことを防ぐため、大量のデータから分析に必要なデータのみの集合を作成することがある。必要なデータのみの集合を「データマート」(以下、DM)と呼び、当該データ集合の作成を「DM作成処理」という。特許文献1には、データマートを作成する技術が開示されている。
特開2002-366401号公報
 ユーザによっては、多数(例えば数百)の観点でデータ分析を行うために多数(例えば数百)ものDMを作成して分析を行いたいことがある。
 しかし、特許文献1の技術を利用して数百のDMを作成すると、コピー時間及び容量が膨大になってしまう。
 一方で、DMを作成せずに分析を行おうとすると、大量のデータを対象に検索を行うため、検索に時間を要してしまう上に、特定の記憶デバイス(例えば、DWH(データウェアハウス)やDL(データレイク)と呼ばれるようなデータソースに基づき記憶デバイス)に対するアクセス集中によりボトルネックが発生する場合がある。
 このような課題は、非構造化データソースから分析を目的としてDMを作成する処理に限らず、分析以外の用途のために非構造化データソースからデータ集合(部分集合)を作成する処理についてもあり得る。
 非構造化データソースに含まれる複数の非構造化データのうちの少なくとも1つの非構造化データの第1種メタデータに、その非構造化データの1以上のコンテンツ属性を表すコンテンツ情報を含んだメタデータである第2種メタデータが関連付けられる。1以上の非構造化データの各々について、その非構造化データを参照する2以上の第1種メタデータが、第1及び第2の第1種メタデータを含む。第1の第1種メタデータは、その非構造化データのオリジナルのメタデータである。第2の第1種メタデータは、検索条件に適合した第2種メタデータが関連付けられているその第1の第1種メタデータの複製に基づくメタデータである。データ処理システムは、並列に使用されることが推奨される複数の仮想ボリュームに関わる情報である推奨情報を表示する。複数の仮想ボリュームには、複数の検索条件の少なくとも1つに適合する複数の第2種メタデータが関連付いている複数の第1種メタデータの1又は複数の重複度に基づく2以上の第2の第1種メタデータが関連付けられる。1又は複数の重複度の各々は、少なくとも2つの第1種メタデータにそれぞれ対応した少なくとも2つの参照先の重複部分のデータ量に従う値である。
 検索条件は、例えば分析観点に従う検索条件である。そのような検索条件に適合するデータ集合を、非構造化データソース内の非構造化データを検索することと非構造化データを複製することのいずれも行うこと無しに、生成可能である。このため、検索条件に適合するデータ集合を、消費記憶容量の増大を抑え短時間に生成することができる。更に、並列に使用されることが推奨される複数の仮想ボリュームに関する情報を表示できる。結果として、データ集合の生成からデータ集合を使用した処理までに必要となる時間の削減が可能となる。
実施例1の概要を示す。 Cスナップ処理とその前後の処理とを含んだ一連の処理の一例の概要を示す。 実施例1に係る計算機システムのブロック図である。 スナップショット処理の一例を示す。 ストレージ管理テーブルの構成を示す。 1つのSメタに含まれるSメタ管理情報及びSメタ属性情報の構成を示す。 1つのCメタに含まれるCメタ管理情報の構成を示す。 コピーペア管理テーブルの構成を示す。 構成管理テーブルの構成を示す。 データリード処理のフローチャートである。 データライト処理のフローチャートである。 抽出処理のフローチャートである。 Cスナップ(選別)のフローチャートである。 Cスナップ(スナップ取得)のフローチャートである。 重複チェック処理のフローチャートである。 実施例2に係る計算機システムのブロック図である。 性能管理テーブルの構成を示す。 抽出処理から重複チェック処理までの処理全体のフローチャートである。 S5920のフローチャートである。 S5960のフローチャートである。 スケールアウト処理の概要を示す。
 以下、図面を参照して、幾つかの実施例を説明する。
 なお、以下の説明では、「インターフェース部」は、1以上のインターフェースを含む。1以上のインターフェースは、1以上の同種のインターフェースデバイス(例えば1以上のNIC(Network Interface Card))であってもよいし2以上の異種のインターフェースデバイス(例えばNICとHBA(Host Bus Adapter))であってもよい。
 また、以下の説明では、「記憶部」は、1以上のメモリを含む。少なくとも1つのメモリは、揮発性メモリであってもよいし不揮発性メモリであってもよい。記憶部は、1以上のメモリに加えて、1以上のPDEVを含んでもよい。「PDEV」は、物理的な記憶デバイスを意味し、典型的には、不揮発性の記憶デバイス(例えば補助記憶デバイス)でよい。PDEVは、例えば、HDD(Hard Disk Drive)又はSSD(Solid State Drive)でよい。
 また、以下の説明では、「プロセッサ部」は、1以上のプロセッサを含む。少なくとも1つのプロセッサは、典型的には、CPU(Central Processing Unit)である。プロセッサは、処理の一部または全部を行うハードウェア回路を含んでもよい。
 また、以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサ部によって実行されることで、定められた処理を、適宜に記憶部及びインターフェース部のうちの少なくとも1つを用いながら行うため、処理の主語が、プロセッサ部(或いは、プロセッサ部を有する計算機又は計算機システム)とされてもよい。プログラムは、プログラムソースから計算機にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバ又は計算機が読み取り可能な記録媒体であってもよい。また、以下の説明において、2以上のプログラムが1つのプログラムとして実現されてもよいし、1つのプログラムが2以上のプログラムとして実現されてもよい。
 また、以下の説明では、「xxxテーブル」といった表現にて情報を説明することがあるが、情報は、どのようなデータ構造で表現されていてもよい。すなわち、情報がデータ構造に依存しないことを示すために、「xxxテーブル」を「xxx情報」と言うことができる。また、以下の説明において、各テーブルの構成は一例であり、1つのテーブルは、2以上のテーブルに分割されてもよいし、2以上のテーブルの全部又は一部が1つのテーブルであってもよい。
 また、以下の説明では、同種の要素を区別しないで説明する場合には、参照符号(又は参照符号における共通部分)を使用し、同種の要素を区別して説明する場合は、要素のID(又は要素の参照符号)を使用することがある。
 また、以下の説明では、「ホストシステム」は、1以上の物理的なホスト計算機(例えばホスト計算機のクラスタ)であってもよいし、少なくとも1つの仮想的なホスト計算機(例えばVM(Virtual Machine))を含んでもよい。
 また、以下の説明では、「管理システム」は、一以上の計算機で構成されてよい。具体的には、例えば、管理計算機が表示デバイスを有していて管理計算機が自分の表示デバイスに情報を表示する場合、管理計算機が管理システムでよい。また、例えば、管理計算機(例えばサーバ)が表示用情報を遠隔の表示用計算機(例えばクライアント)に送信し表示用計算機がその情報を表示する場合(管理計算機が表示用計算機に情報を表示する場合)、管理計算機と表示用計算機とのうちの少なくとも管理計算機を含んだシステムが管理システムでよい。
 また、以下の説明では、「ストレージシステム」は、1以上の物理的なストレージ装置であってもよいし、少なくとも1つの仮想的なストレージ装置(例えばLPAR(Logical Partition)又はSDS(Software Defined Storage))を含んでもよい。
 また、以下の説明では、「RAID」は、Redundant Array of Independent (or Inexpensive) Disksの略である。RAIDグループは、複数のPDEV(典型的には同種のPDEV)で構成され、そのRAIDグループに関連付けられたRAIDレベルに従いデータを記憶する。RAIDグループは、パリティグループと呼ばれてもよい。パリティグループは、例えば、パリティを格納するRAIDグループのことでよい。
 また、以下の説明では、「VOL」は、論理ボリュームの略であり、論理的な記憶デバイスでよい。VOLは、実体的なVOL(RVOL)であってもよいし、仮想的なVOL(VVOL)であってもよい。「RVOL」は、そのRVOLを提供するストレージシステムが有する物理的な記憶資源(例えば、1以上のRAIDグループ)に基づくVOLでよい。「VVOL」は、外部接続VOL(EVOL)と、容量拡張VOL(TPVOL)と、スナップショットVOLとのうちのいずれでもよい。EVOLは、外部のストレージシステムの記憶空間(例えばVOL)に基づいておりストレージ仮想化技術に従うVOLでよい。TPVOLは、複数の仮想領域(仮想的な記憶領域)で構成されており容量仮想化技術(典型的にはThin Provisioning)に従うVOLでよい。スナップショットVOLは、オリジナルのVOLのスナップショットとして提供されるVOLでよい。スナップショットVOLは、RVOLであってもよい。「プール」は、論理的な記憶領域(例えば複数のプールVOLの集合)でよい。例えば、プールとして、TPプールと、スナップショットプールとのうちの少なくとも1種類があってよい。TPプールは、複数の実領域(実体的な記憶領域)で構成された記憶領域でよい。ストレージシステム(例えば後述のストレージコントローラ)が、ホストシステムから受信したライト要求が指定するアドレスが属する仮想領域(TPVOLの仮想領域)に実領域が割り当てられていない場合、その仮想領域(ライト先仮想領域)にTPプールから実領域を割り当ててよい(ライト先仮想領域に他の実領域が割り当て済であっても実領域が新たにライト先仮想領域に割り当てられてもよい)。ストレージシステムは、割り当てられた実領域に、そのライト要求に付随するライト対象データを書き込んでよい。スナップショットプールは、オリジナルのVOLから退避されたデータが格納される記憶領域でよい。1つのプールが、TPプールとしてもスナップショットプールとしても使用されてもよい。「プールVOL」は、プールの構成要素となるVOLでよい。プールVOLは、RVOLであってもよいしEVOLであってもよい。
 図1は、実施例1の概要を示す。
 実施例1に係る計算機システムは、1以上のホスト計算機200、管理計算機100、及び、ストレージ装置300を含む。ホスト計算機200はネットワーク500を介しストレージ装置300に接続される。管理計算機100はネットワーク550を介しストレージ装置300に接続される。
 ホスト計算機200は、アプリケーションプログラム(以下、アプリ)211を実行する。例えば、ホスト計算機200Aは、分析アプリ211Aを実行する。管理計算機100は、管理プログラム112を実行する。
 ストレージ装置300は、オブジェクトストレージ装置であり、ストレージコントローラ329を有する。ストレージコントローラ329は、ローカルメモリ1200を有し、VOL26を提供する。VOL26として、少なくとも、データVOL26Dがある。データVOL26Dは、ネームスペース又はDWH(Data Ware House)のようなデータソース(典型的には非構造化データソース)の一例である。データVOL26Dには、データチャンク81が格納される。本実施例において、「データチャンク」は、有意な単位のデータ(例えば、静止画、動画、Eメール)である。データチャンクは、例えば、センサからのデータを含んだ時系列データのうちの一部分(例えば或る時間毎のデータ)であってもよい。所定のデータ属性が共通する1以上のデータチャンク81が同一のオブジェクトに含まれる。本実施例において、「オブジェクト」は、1以上のデータチャンク81と、その1以上のデータチャンク81に対応した1つのSメタ82とを含むデータセットである。例えば、データチャンク81が、データ発行元(例えば、カメラ等のセンサ)からのデータの場合、同一のデータ発行元からの各データが「データチャンク」であり、同一のデータ発行元からの複数のデータチャンク(データ属性「発行元」が共通する複数のデータチャンク)が同一の「オブジェクト」に含まれる。なお、「非構造化データ」は、いわゆる半構造化データを含む概念であってもよい。以下、1つのオブジェクトに含まれる1以上のデータチャンクを「データチャンクユニット」と言う。「非構造化データ」は、オブジェクト内の各データチャンクであってもよいし、一部のデータチャンクであってもよいし、データチャンクユニットであってもよい。
 本実施例では、2種類のメタデータが存在する。2種類のメタデータの少なくとも一部がローカルメモリ1200に格納される。2種類のメタデータを、本実施例では、「Sメタ」及び「Cメタ」と呼ぶ。Sメタ82(又は、1つのデータチャンクに対応した後述のSメタ属性情報1220)が、第1種メタデータの一例であり、Cメタ83が、第2種メタデータの一例である。本実施例では、Sメタ82とオブジェクトが1:1で対応する。故に、Sメタ82とデータチャンク81が1:1又は1:多で対応する。一方、Cメタ83とデータチャンク81は、1:1又は多:1で対応する。ユーザ毎に後述の抽出プログラムが存在することがあり、その場合、抽出プログラムによって同一のデータチャンク81であっても作成するCメタ83が異なるためである。故に、Sメタ82とCメタ83が1:1又は1:多で対応する。Sメタ82は、オブジェクトに含まれるデータチャンクユニット80(全てのデータチャンク81)に紐付いているメタデータであり、例えば、SメタID(オブジェクトID)と、対応するオブジェクトに含まれる各データチャンク81の格納場所を表す情報とを含む。一方、Cメタ83は、データVOL26Dから抽出されたデータチャンク81(データコンテンツ)から特定された1以上のコンテンツ属性を表すコンテンツ情報を含んだメタデータである。「コンテンツ属性」とは、データのコンテンツに関する属性であり、例えば、データ種別(例えば画像、Eメール)、時刻(例えば、取得時刻又は更新時刻)等である。コンテンツ情報は、テキスト(例えば文字列)で表現された情報であるが、テキストに代えて加えて他種の情報(例えば特徴量等を表す数値)を含んでもよい。Sメタ82とCメタ83には、相互にその関係性を示すための情報も保持される。具体的には、Cメタ83は、そのCメタ83に対応したデータチャンク81を参照するSメタ82を参照し、そのCメタ83により参照されるSメタ82は、そのCメタ83を参照する。つまり、同一のデータチャンク81に対応したCメタ83及びSメタ82が互いに参照し合う。なお、このような双方向の参照(リンク)に代えて、Cメタ83からSメタ82への単方向の参照が採用されてもよい。Cメタ83は、データチャンク81のメタデータの一種であるため、典型的には、データチャンク81よりもデータ量が小さい。また、Sメタ82とオブジェクトは、1:1に限らない(例えば、多:多又は1:多でもよい)。
 ホスト計算機200は、I/O(Input/Output)要求をストレージ装置300に発行する。I/O要求は、ライト要求又はリード要求である。I/O要求がリード要求の場合、リード対象のデータチャンク81に対応したオブジェクトIDが指定されるようになっている。ストレージコントローラ329は、例えばホスト計算機200Aからリード要求を受信した場合、そのリード要求が指定するオブジェクトIDが記述されたSメタ82を特定し、特定したSメタ82が指すデータチャンク81をデータVOL26Dから読み出し、そのデータチャンク81をホスト計算機200Aに返信する。
 ストレージコントローラ329は、DM作成処理を実行する。DM作成処理は、ユーザからの特定種類の要求であるユーザ要求に応答して開始される。ユーザ要求は、DM作成の明示的な要求であってもよいし、検索要求のようにDM作成要求の1つとして定義された要求であってもよい。本実施例では、ストレージコントローラ329は、ホスト計算機200のユーザ(例えば分析者)から検索要求を受け付け、管理計算機100のユーザ(例えば管理者)からDM作成要求を受け付ける。ユーザ要求では、分析観点等に従う検索条件(DMに含まれるべきデータに関する条件)が指定される。検索条件としては、例えば、データ種別(例えば、写真、Eメール)、データ発行元(例えば、センサ型番)、位置(例えば、撮影位置のようなデータ取得位置)、時間帯(例えば、撮影時刻のような時間帯)及びデータ値範囲(例えば、データに含まれるメトリック値の上限と下限)のうちの少なくとも1つについての条件を採用し得る。
 検索条件として、通常は、データチャンク81が実際に格納されている領域(例えばVOL領域)のアドレスは指定されない。通常、そのようなアドレスをユーザは知らないためである。
 しかし、本実施例に係るDM作成処理は、以下の(理由1)~(理由3)のうちの少なくとも(理由3)から、短時間で終了することが期待される。
(理由1)DM作成処理では、Cメタ83が参照され、データVOL26D内のデータチャンク81は参照されない。
(理由2)DM作成処理において参照されるCメタ83は、DM作成処理と非同期に作成されたCメタ83(例えば、DM作成処理の開始前に作成されたCメタ83)である。言い換えれば、Cメタ83は、DM作成処理の開始の契機であるユーザ要求とは異なる契機で作成される。例えば、データチャンク81がデータVOL26Dに格納されたときにそのデータチャンク81のCメタ83が作成される。
(理由3)DM作成のためにデータチャンク81を複製することは不要である。すなわち、作成されるDMは、データVOL26D内のデータチャンク81の複製が格納される実体的なDMではなく、データVOL26D内のデータチャンク81を参照する仮想的なDM(以下、VDM)である。VDMは、本実施例ではSSVOL(スナップショットVOL)26Sである。SSVOL26Sの作成のためには、第1Sメタ82Sを複製すればよく、データチャンク81それ自体の複製は不要である。なお、VDMに含まれるデータチャンク81がSメタ82の全ての参照先データチャンク81とは限らないため、第1Sメタ82Sの複製に基づくメタデータである第2Sメタ82Tは、第1Sメタ82Sと完全には一致しないこともある。第1Sメタ82Sは、オブジェクトに含まれるオリジナルのメタデータであり、第2Sメタ82Tは、上述したように、第1Sメタ82Sの複製に基づくメタデータである。第1Sメタ82Sが、第1の第1種メタデータの一例であり、第2Sメタ82Tが、第2の第2種メタデータの一例である。つまり、本実施例では、Sメタ82として、第1Sメタ82Sと第2Sメタ82Tとがある。なお、第2Sメタ82Tは、SSVOL26Sを通じて参照可能なデータチャンクであるスナップショットデータチャンク(実体は、データVOL26D内のデータチャンク)に関する情報を保持するデータなので、必ずしもメタデータといった便宜的なデータ名を使用しなくてもよく、例えば、スナップショット管理データのように別の名称で呼ばれてもよい(この場合、混同が生じないので、第1Sメタは、単に「Sメタ」又は「メタデータ」と呼ばれてもよい)。
 以上の理由を基に、以下、本実施例に係るDM作成を、「Cスナップ」と呼び、DM作成処理を「Cスナップ処理」と呼ぶ。なお、DMは、データ集合の一例であり、VDMは、仮想的なデータ集合の一例である。
 図1の例によれば、例えば、分析アプリ211A(ホスト計算機200A)からの検索要求とは非同期に(例えば、検索要求に応答してCスナップ処理が開始される前に)、ストレージコントローラ329が、データVOL26D内のデータチャンクユニット#1、#2及び#3にそれぞれ対応したCメタ#1、#2及び#3を作成してローカルメモリ1200に格納する。Cメタ#1は、データチャンクユニット#1を参照する第1Sメタ#1を参照し、Cメタ#2は、データチャンクユニット#2を参照する第1Sメタ#2を参照し、Cメタ#3は、データチャンクユニット#3を参照する第1Sメタ#3を参照する。図1の例によれば、データユニット#1は1つのデータチャンクであり、故に、データチャンクユニット#1を参照する第1Sメタ#1には、1つのCメタ#1が関連付けられる。一方、データチャンクユニット#2及び#3の各々は、複数のデータチャンクであり、故に、データチャンクユニット#2を参照する第1Sメタ#2には、Cメタ#2を含む複数のCメタが関連付けられ、データチャンクユニット#3を参照する第1Sメタ#3には、Cメタ#3を含む複数のCメタが関連付けられる。
 図1の例によれば、ストレージコントローラ329は、検索要求に応答して、Cスナップ処理を開始する。Cスナップ処理は、「Cスナップ(選別)」と、「Cスナップ(スナップ取得)」の2つに大別される。Cスナップ(選別)では、ストレージコントローラ329は、存在するCメタ#1~#3から、検索要求で指定されている検索条件(例えば分析観点#1に従う条件)に適合するCメタ83を探す。つまり、検索範囲が、データチャンク81ではなくCメタ83である。検索条件に適合した少なくとも1つのCメタ83が見つかった場合、Cスナップ(スナップ取得)が実行される。Cメタ#1が見つかったとする。Cスナップ(スナップ取得)では、ストレージコントローラ329は、Cメタ#1が参照する第1Sメタ#1の複製に基づく第2Sメタ#1-1を作成する(S1A)。ストレージコントローラ329は、第2Sメタ#1-1が属するSSVOL#1(VDM)を作成する。ストレージコントローラ392は、SSVOL#1を、1以上のホスト計算機200のうちの少なくともホスト計算機200A(検索要求の送信元)に提供する。分析アプリ211A(ホスト計算機200A)は、SSVOL#1に属する第2Sメタ#1-1が参照する1以上のデータチャンク81を用いて分析を実行できる。なお、SSVOL#1が参照する1以上のデータチャンク81のアクセス状態(アクセス制限)として、例えば、“R/W可”(リード及びライトのいずれも可)、“RO”(リードオンリー(リードのみ可))、及び、“R/W不可”(リード及びライトのいずれも不可)のいずれが採用されてもよい。例えば下記のうちの少なくとも1つが採用されてよい。
(V1)SSVOL#1の提供先が複数のホスト計算機200の場合、SSVOL#1のアクセス状態は“RO”とされてよい。これにより、複数のホスト計算機200間でデータの整合性を維持できる。
(V2)SSVOL#1の提供先がホスト計算機200Aのみの場合、SSVOL#1のアクセス状態は“R/W”とされてよい。これにより、ホスト計算機200AがSSVOL#1をカスタマイズできる。例えば、ストレージコントローラ329は、SSVOL#1を指定したライト要求を受けた場合、そのライト要求に付随するデータチャンクを、プールに格納してよい。
 以上の通り、Cスナップ処理は、データチャンク81の複製が不要のため、短時間で終了することが期待できる。第2Sメタ82Tには、その第2Sメタ82Tが参照するデータチャンク81についてのCメタ83であって、その第2Sメタ82Tの複製元の第1Sメタ82Sに関連付いていたCメタ83が関連付けられる。
 図1の例によれば、データチャンクユニット#2の一部とデータチャンクユニット#3の一部が重複(共通)している。言い換えれば、一部のデータチャンク81が、データチャンクユニット#2を含むオブジェクトとデータチャンクユニット#3を含むオブジェクトの両方に所属している。第2Sメタ#2-1の一部と第2Sメタ#3-1の一部も互いに重複している。具体的には、第2Sメタ#2-1の参照先の一部と第2Sメタ#3-1の参照先の一部は、同一のデータチャンク81である。
 ホスト計算機200Bの分析アプリ211Bが、分析観点#2に従う検索条件を指定した検索要求をストレージコントローラ329に送信したとする。この場合、ストレージコントローラ329が、その検索条件に適合するCメタ#2を見つけ、Cメタ#2が参照する第1Sメタ#2を複製し(S1B)、第1Sメタ#2の複製に基づく第2Sメタ#2-1が属するSSVOL#2(VDM)を作成し、SSVOL#2を、1以上のホスト計算機200のうちの少なくともホスト計算機200B(検索要求の送信元)に提供する。同様に、ホスト計算機200Cの分析アプリ211Cが、分析観点#3に従う検索条件を指定した検索要求をストレージコントローラ329に送信したとする。この場合、ストレージコントローラ329が、その検索条件に適合するCメタ#3を見つけ、Cメタ#3が参照する第1Sメタ#3を複製し(S1C)、第1Sメタ#3の複製に基づく第2Sメタ#3-1が属するSSVOL#3(VDM)を作成し、SSVOL#3を、1以上のホスト計算機200のうちの少なくともホスト計算機200C(検索要求の送信元)に提供する。
 検索要求のようなユーザ要求は、ホスト計算機200に代えて又は加えて管理計算機100が発行してもよい。また、1つのユーザ要求で、複数の分割観点(例えば、複数の分割観点にそれぞれ対応した複数の検索条件)が指定されてもよい。ストレージコントローラ329は、複数の分割観点の指定を1以上のユーザ要求から特定できる。
 本実施例では、データチャンク81の検索とデータチャンク81の複製とのいずれも行うこと無しに、VDM(SSVOL26S)を作成することができる。つまり、分析観点に適合するDMを、消費記憶容量の増大を抑え短時間に生成することができる。このため、分析観点の異なる多数(例えば数百)のVDMが作成されることが考えられる。複数の分析観点に従う複数の分析のうち可能な限り多くの分析が並列に実行されることが望ましい。しかし、複数のVDMを使用して並列に複数の分析を実行するには必ずしもリソース量(例えば、VDM内の参照対象のデータチャンクが一時的に格納されるキャッシュメモリの容量)が十分でない。
 そこで、本実施例では、複数のVDMに対応した複数の第2Sメタ82Tの参照先の一部が重複し得るという上述の特性に着目した処理が実行される。すなわち、ストレージコントローラ329が、複数の第2Sメタ82Tの重複度に基づき、並列に(例えば同時に)使用することが推奨される2以上のVDM(SSVOL26S)に対応した2以上の第2Sメタ82Tが属するグループを構築する(「構築」は「更新」を含んでよい)。以下、このグループを「分析グループ」と言う。分析グループ内の第2Sメタ82Tがわかり、その第2Sメタ82Tに対応したVDMと、その第2Sメタ82Tに関連付いたCメタ83とがわかり、そのCメタ83に対応した分析観点がわかる。ストレージコントローラ329は、構築された1以上の分析グループに基づく制御である分析制御処理を実行する。「複数の第2Sメタ82T」とは、ストレージコントローラ329が管理する全ての第2Sメタ82Tであってもよいし、1以上のCメタ83が関連付いた第2Sメタ82Tであってもよい。この「1以上のCメタ83」は、1以上のユーザ要求で指定された複数の分析観点に適合するCメタ83である。
 ストレージコントローラ329は、複数の分析観点を指定した1以上のユーザ要求を受信したか否かに関わらず(例えば定期的に)、分析グループの構築を実行してもよい。例えば、ストレージコントローラ329は、既存の複数の第2Sメタ82Tの重複度を算出する。ストレージコントローラ329は、既存の複数の第2Sメタ82Tの重複度と、その複数の第2Sメタ82Tに関連付いた既存のCメタ83とに基づき、分析グループを構築する。その後、ストレージコントローラ329は、要求(例えば、推奨表示要求)を受信したときに、その構築した分析グループに関する情報である推奨情報を提示する。その推奨情報は、分析グループに含まれる全ての分析(すなわち、並列に実行することが推奨される複数の分析(分析観点))を表す情報と、その分析グループに属する全ての第2Sメタ82Tを表す情報と、その分析グループに属する第2Sメタ82Tが関連付いたSSVOL26Sを表す情報(例えば後述のルートID)と、その分析グループに属する第2Sメタ82Tに関連付いたCメタ83を表す情報とのうちの少なくとも1つを含んでいてもよい。
 或いは、ストレージコントローラ329は、複数の分析観点を指定した1以上のユーザ要求を受信したときに、その1以上のユーザ要求に応答して、分析グループの構築と分析制御処理とを実行してもよい。例えば、ストレージコントローラ329は、複数の分析観点の各々について、その分析観点に適合するCメタ83を見つけて、そのCメタ83が関連付いた第2Sメタ82Tを特定する。ストレージコントローラ329は、複数の分析観点について特定された複数の第2Sメタ82Tの重複度を算出する。ストレージコントローラ329は、算出された重複度に基づき、1以上の分析グループを構築する。ストレージコントローラ329は、構築された1以上の分析グループについて分析制御処理を実行する。分析制御処理は、例えば、構築された1以上の分析グループについて上述した推奨情報を提示することを含む。なお、少なくとも1つの分析グループが、2以上の第2Sメタ82Tを含むが、いずれかの分析グループに含まれる第2Sメタ82Tの数は1であることもあり得る。
 <複数の第2Sメタ82Tの重複度>
 複数の第2Sメタ82Tの「重複度」とは、複数の第2Sメタ82Tの少なくとも2つの参照先の重複部分のデータ量に従う値である。具体的には、例えば、複数の第2Sメタ82Tの「重複度」とは、複数の第2Sメタ82Tの参照先重複アドレス範囲(言い換えれば重複データチャンク群)の量であってもよいし、複数の第2Sメタ82Tの参照先アドレス範囲(言い換えれば、参照先のデータチャンク群)の量に対する参照先重複アドレス範囲(言い換えれば重複データチャンク群)の量の割合であってもよい。「重複データチャンク群」は、1以上の重複データチャンクである。「重複データチャンク」は、複数の第2Sメタ82Tのうちの2以上の第2Sメタ82Tから参照されるデータチャンクである。
 第1の例として、複数の第2Sメタ82Tの重複度は、或る第2Sメタ82Tと残りの第2Sメタ82Tの各々との重複度でよい。1つの分析グループに含まれる2以上の第2Sメタ82Tの各々をノードとした場合、その2以上の第2Sメタ82Tの構造は、スター型の構造である。
 第2の例として、複数の第2Sメタ82Tの重複度は、複数の第2Sメタ82Tにおける複数の重複にそれぞれ対応した複数の重複度に基づく値(例えば、合計又は平均)であってよい。複数の重複の各々は、いずれかの2以上の第2Sメタ82Tの重複である。1つの分析グループに含まれる2以上の第2Sメタ82Tの各々をノードとした場合、その2以上の第2Sメタ82Tの構造は、木構造である。
 <分析制御処理>
 分析制御処理は、下記(p)~(s)のうちの少なくとも1つを含んだ処理である。
 (p)構築された1以上の分析グループに関する推奨情報を提示(表示)する処理。推奨情報は、その構築された1以上の分析グループの各々について、分析グループから特定される全ての分析(すなわち、並列に実行することが推奨される分析(分析観点))を表す情報と、その分析グループに含まれる全ての第2Sメタ82Tを表す情報(例えば後述のSメタID1210001)と、その分析グループに含まれる第2Sメタ82Tが属するSSVOL26Sを表す情報(例えば後述のルートID)と、その分析グループに含まれる第2Sメタ82Tに関連付いたCメタ83を表す情報(例えば後述のCメタID123001及びユーザ拡張123006)とのうちの少なくとも1つを含む。推奨情報の提示先は、ホスト計算機200と管理計算機100のうちの少なくとも1つ(例えば、推奨情報の提示をするトリガとなったユーザ要求の送信元)でよい。
 (q)構築された1以上の分析グループから所定のグループ条件に適合する分析グループを選択し、選択された分析グループに含まれる第2Sメタ82Tと、その第2Sメタ82Tにより参照されるデータチャンク81と、その第2Sメタ82Tに関連付いたCメタ83とを、別のストレージ装置にコピーする処理。「所定のグループ条件」とは、例えば、キャッシュメモリの容量よりも大容量のデータチャンク群を参照することである。キャッシュメモリの容量よりも大容量のデータチャンク群(少なくとも重複データチャンク群)を参照する分析グループを、以下、「大容量分析グループ」と言う。一方、キャッシュメモリの容量以下の容量のデータチャンク群(少なくとも重複データチャンク群)を参照する分析グループを、以下、「低容量分析グループ」と言う。
 (r)構築された1以上の分析グループから大容量分析グループを間引く処理。処理(r)の結果として残った分析グループについて処理(p)が行われてよい。つまり、提示される分析グループは、低容量分析グループのみでよい。なお、分析グループの構築の際に、低容量分析グループのみが構築されるよう制御されてもよい。例えば、分析グループの構築において、キャッシュメモリの容量(後述の構成管理テーブル1240から特定されるキャッシュメモリ容量)以下のデータチャンク群を参照するような1以上の第2Sメタ82Tを含んだ低容量分析グループが構築されるようになっていてもよい。
 (s)高重複度分析グループ且つ大容量分析グループである分析グループに代えて、低重複度分析グループを採用する処理。「低重複度分析グループ」とは、重複度が閾値未満の2以上の第2Sメタ82Tを含んだ分析グループである。一方、「高重複度分析グループ」とは、重複度が閾値以上の2以上の第2Sメタ82Tを含み重複度が閾値未満の2以上の第2Sメタ82Tを含まない分析グループである。処理(s)の後に処理(p)が行われてよい。処理(s)の利点は、例えば次の通りである。すなわち、高重複度分析グループ且つ大容量分析グループである分析グループに属する複数の分析が並列に実行されると、高頻度に参照され得る重複データチャンクがキャッシュメモリから溢れてそれ故に同一のPDEV1500に対してアクセスが集中し得る。一方、処理(s)が行われれば、同一のPDEV1500に対してアクセスが集中する可能性を低減できる。重複データチャンクが少なく、故に、アクセス先が複数のPDEV1500に分散し得るからである。
 図1の例によれば、ストレージコントローラ329は、複数の分割観点#2及び#3の指定を受けて、複数の分割観点#2及び#3にそれぞれに対応したCメタ#2及び#3を見つけ、そのCメタ#2及び#3が関連付いた複数の第2Sメタ#2-1及び#3-1の重複度を算出する。ストレージコントローラ329は、算出された重複度に応じた第2Sメタ#2-1及び#3-1を選択し(S2)、選択された第2Sメタ#2-1及び#3-1を含んだ分析グループを作成し、第2Sメタ#2-1及び#3-1を、並列に使用することが推奨されるSSVOL#2及び#3に対応したSメタとして提示する(S3)。第2Sメタ#2-1及び#3-1は、重複度が閾値以上の2以上の第2Sメタ82Tの一例でよい。重複度が大きいということは、参照頻度の高いデータチャンク81が多いということであり、参照頻度の高いデータチャンク81が多いということは、分析において参照されるデータチャンク81がストレージコントローラ329のキャッシュメモリに存在する可能性が高く、故に、複数の分析に要する時間を短縮することが期待できる。
 以下、本実施例を詳細に説明する。
 図2は、Cスナップ処理とその前後の処理とを含んだ一連の処理の一例の概要を示す。
 図2の例によれば、Cスナップ処理の前は、「(0)通常状態」及び「(1)抽出処理」である。「(0)通常状態」は、Cメタ83が作成される前の状態である。「(1)抽出処理」では、Cメタ83が作成される。Cメタ83は、第1Sメタ82Sを参照する。
 Cスナップ処理は、2つの処理に大別され、具体的には、「(2-1)Cスナップ(選別)」と、「(2-2)Cスナップ(スナップ取得)」である。
 Cスナップ処理の後は、上述したように、「(3)分析」が行われる。
 図2の詳細な説明は後述する。
 図3は、実施例1に係る計算機システムのブロック図である。
 上述したように、計算機システムは、管理計算機100、ホスト計算機200及びストレージ装置300を備える。管理計算機100、ホスト計算機200及びストレージ装置300のうちのいずれも、1台以上備わっていてよい。管理計算機100は、管理システムの一例である。ホスト計算機200は、ホストシステムの一例である。ストレージ装置300は、ストレージシステムの一例である。
 管理計算機100、ホスト計算機200及びストレージ装置300は、ネットワーク(例えばLAN(Local Area Network))500を介して相互に接続される。また、管理計算機100は、ホスト計算機200及びストレージ装置300は、ネットワーク(例えばSAN(Storage Area Network))550を介して接続される。ネットワーク500及び550は一体でもよい。
 管理計算機100は、I/F(インターフェース)131、I/F130、メモリ110及びそれらに接続されたプロセッサ120を有する。I/F131及びI/F130は、インターフェース部の一例である。I/F131は、ネットワーク550に接続される。I/F130は、ネットワーク500に接続される。メモリ110が、管理プログラム112を記憶する。プロセッサ120は、管理プログラム112を実行することで、ストレージ装置300に要求を発行できる。なお、要求は、ライト要求、リード要求、又はコピー制御要求等でよい。
 ホスト計算機200は、I/F231、I/F230、メモリ210及びそれらに接続されたプロセッサ220を有する。I/F231及びI/F230は、インターフェース部の一例である。I/F231は、ネットワーク550に接続される。I/F230は、ネットワーク500に接続される。メモリ210が、OS(Operating System)212、アプリ211及びエージェントプログラム213等のプログラムを記憶する。プロセッサ220は、メモリ210内のプログラムを実行する。例えば、プロセッサ220は、プログラムを実行することによりストレージ装置300にI/O要求を送信する。それにより、ストレージ装置300によって提供されるVOL26にアクセスできる。
 アプリ211は、例えば分析アプリである。例えば、分析アプリは、相関分析などの分析処理を実施する。OS212は、ホスト計算機200の処理の全体を制御する。エージェントプログラム213は、管理計算機100に指示を送信し、管理計算機100は、その指示をストレージ装置300に転送できる。分析アプリ211は、ストレージ機能を利用したい場合、エージェントプログラム213を利用することで、管理プログラム112を経由して、分析処理と連動したストレージ制御が可能となる。例えば、分析アプリがDM作成機能を有する場合、ユーザによるDM作成操作に応答してエージェントプログラム213が管理プログラム112にその操作内容を送信し、管理プログラム112がその操作内容を、コピー制御要求に変換し、そのコピー制御要求をストレージ装置300に送信する。
 ストレージ装置300は、1以上のPDEV1500と、それに接続されたストレージコントローラ329とを有する。
 1以上のPDEV1500は、1以上のRAIDグループを構成してもよい。PDEV1500は、例えば、HDD又はSSDである。1以上のPDEV1500に、データVOL26Dに格納されたデータチャンク81等が格納される。1以上のPDEV1500に、複数のCメタ83と複数のSメタ82のうちの少なくとも一部が格納されてもよい。
 ストレージコントローラ329は、I/F1321、I/F1320、I/F1400、キャッシュメモリ1100、ローカルメモリ1200、及びそれらに接続されたプロセッサ1310を有する。ローカルメモリ1200が、情報及びプログラムを記憶する。プロセッサ1310が、ローカルメモリ1200内のプログラムを実行することにより、ローカルメモリ1200内の情報を参照又は更新したり、VOLに対するI/Oを行ったり、Cメタ83を作成したり、Cスナップを実行したりする。
 I/F1321、I/F1320及びI/F1400は、インターフェース部の一例である。I/F1321は、ネットワーク550に接続される。I/F1320は、ネットワーク500に接続される。I/F1400は、1以上のPDEV1500に接続される。
 キャッシュメモリ1100及びローカルメモリ1200は、記憶部の一例である。キャッシュメモリ1100及びローカルメモリ1200は1つのメモリであって、そのメモリに、キャッシュメモリとしてのキャッシュ領域と、ローカルメモリとしてのローカルメモリ領域とが設けられていてもよい。
 キャッシュメモリ1100は、1以上のPDEV1500に入出力されるデータ(例えば、ホスト計算機200からのI/O要求に従うデータ(ライト対象データ又はリード対象データ))を一時的に格納するためのメモリである。
 ローカルメモリ1200は、情報及びプログラムを記憶する。具体的には、例えば、ローカルメモリ1200は、Sメタ管理情報1210、Sメタ属性情報1220、Cメタ管理情報1230、構成管理テーブル1240、ストレージ管理テーブル1250及びコピーペア管理テーブル1260を記憶する。また、例えば、ローカルメモリ1200は、I/Oプログラム61、オブジェクトプログラム62、データ処理プログラム63、スナップショットプログラム64、抽出プログラム1290、Cスナッププログラム1291及び重複チェックプログラム1292を記憶する。
 Sメタ82毎に、Sメタ管理情報1210及びSメタ属性情報1220が存在する。Sメタ管理情報1210は、オブジェクトを管理するため情報である。Sメタ属性情報1220は、データチャンク81を管理するための情報である。
 Cメタ83毎に、Cメタ管理情報1230が存在する。Cメタ83は、データチャンク81から特定された1以上のコンテンツ属性を表すコンテンツ情報を含む。Cメタ管理情報1230は、Cメタ83の少なくとも一部である。
 ストレージ管理テーブル1250は、ストレージ装置300によって提供されるVOL26に関する情報を保持するテーブルである。コピーペア管理テーブル1260は、SSVOL26Sが属するコピー構成に関する情報を保持するテーブルである。
 I/Oプログラム61は、I/O要求を処理するためのプログラムである。オブジェクトプログラム62は、オブジェクトを処理するためのプログラムである。データ処理プログラム63は、VOL26にアクセスするプログラムである。スナップショットプログラム64は、SSVOL26Sを作成するプログラムである。
 抽出プログラム1290は、データチャンク81を抽出し抽出したデータチャンク81を基にCメタ83を作成するプログラムである。Cスナッププログラム1291は、Cスナップ処理を実行するプログラムである。重複チェックプログラム1292は、複数のSメタ82の重複度合をチェックする。抽出プログラム1290、Cスナッププログラム1291及び重複チェックプログラム1292のうちの少なくとも1つが、ユーザにより作成されたプログラムであるユーザプログラムでよい。つまり、抽出プログラム1290、Cスナッププログラム1291及び重複チェックプログラム1292のうちの少なくとも1つが、ユーザ毎に存在し、ホスト計算機200のユーザに対応した抽出プログラム1290及びCスナッププログラム1291のうちの少なくとも1つが実行されてよい。抽出プログラム1290、Cスナッププログラム1291及び重複チェックプログラム1292のうちの少なくとも1つがユーザプログラムであることにより、ユーザ(例えば分析者)により望ましい分析結果が得られるようなCメタ83及びSSVOL26S(VDM)のうちの少なくとも1つが期待できる。
 図4は、スナップショット処理の一例を示す。
 スナップショット処理は、SSVOL26Sに対するライト時の処理である。ストレージコントローラ329は、1以上のプールVOL26P(プールVOL#1~#4)で構成されたプール91を管理している。
 ストレージコントローラ329は、SSVOL26Sを指定したライト要求をホスト計算機200から受信する。そのライト要求は、例えば、SSVOL26に属するSメタ(Sメタ複製)の参照先のデータチャンクを含んだオブジェクトのオブジェクトIDを指定したライト要求である。ストレージコントローラ329は、そのライト要求に従うデータチャンク81(例えば#1)を、SSVOL26(Sメタ)の参照先ではなく、プール91に格納する。すなわち、ライト対象データチャンク81が、SSVOL26(Sメタ)の参照先のVOLとは異なるVOLの一例であるプールVOL26Pに格納される。ストレージコントローラ329は、データチャンクの仮想アドレス(SSVOL26Sの領域のアドレス)と、データチャンク81の実アドレス(プールVOL26Pの領域のアドレス)との対応付けを管理する。このように、スナップショット処理として、Ridirect-on-write方式の処理が採用されてよい。すなわち、SSVOL26S(又はデータVOL26D)内のデータチャンクに対して書き込みが発生すると、その書き込みは新たな領域に対して行われ、第1Sメタ82S及び第2Sメタ82Tが指し示す領域(アドレス)が書き換わる。このように、Ridirect-on-write方式のスナップショット処理が採用されてよいが、Copy-on-write方式など他の方式のスナップショット処理が採用されてもよい。
 図5は、ストレージ管理テーブル1250の構成を示す。
 ストレージ管理テーブル1250は、ストレージID1252を含む。ストレージID1252毎に、1以上のルートID1251を含む。
 ストレージID1252は、ストレージ装置300の識別子(ストレージID)を表す情報である。
 ルートID1251は、ルートの識別子(ルートID)を表す情報である。ストレージ装置300が有するルートのルートID1251が、そのストレージ装置300のストレージID1252に関連付けられている。本実施例において、「ルート」とは、1以上のSメタ82のグループである。ルート毎にVOL26が存在する。このため、例えば、ルートIDは、VOLの識別子(VOL_ID)と言うこともできる。ルートに属するSメタ82のSメタポインタ1254が、そのルートのルートID1251に関連付けられている。Sメタポインタ1254は、Sメタ82のローカルメモリ1200における在り処を指す情報(ポインタ)である。
 図6は、1つのSメタ82に含まれるSメタ管理情報1210及びSメタ属性情報1220の構成を示す。
 Sメタ82は、Sメタ管理情報1210及びSメタ属性情報1220で構成される。上述したように、Sメタ管理情報1210は、オブジェクトを管理し、Sメタ属性情報1220は、データチャンク81を管理する。Sメタ管理情報1210には、そのSメタ管理情報1210に対応したオブジェクト内の各データチャンク81についてSメタ属性情報1220が関連付けられる。
 Sメタ管理情報1210は、SメタID121001を含む。SメタID121001は、Sメタの識別子(SメタID)を表す情報である。SメタIDは、言い換えれば、オブジェクトIDである。
 また、Sメタ管理情報1210は、対応したオブジェクト内のデータチャンク81毎に、Sメタ属性ID121002及びS属性ポインタ12103を含む。Sメタ属性ID121002は、Sメタ属性情報1220の識別子(Sメタ属性ID)を表す情報である。S属性ポインタ121003は、Sメタ属性情報1220のローカルメモリ1200の在り処を指す情報(ポインタ)である。これにより、Sメタ82の参照先としてのCメタ83を特定可能である。
 また、Sメタ管理情報1210は、このSメタ管理情報1210を含むSメタ82を参照するCメタ83毎に、ユーザID12011及びユーザポインタ121012を含む。ユーザID121011は、Cメタ83の識別子(CメタID)を表す情報であり、具体的には、例えば、ユーザプログラム(例えば抽出プログラム1290)により当該Sメタ管理情報1210に付与された付加情報(つまりCメタ83)を管理する際に使用する情報であり付加情報の識別子である。ユーザポインタ121012は、そのCメタ83が含むCメタ管理情報1230のローカルメモリ1200の在り処を指す情報(ポインタ)である。
 Sメタ属性情報1220は、Sメタ属性ID122001、アクセス状態122002、コピー状態122003、ストレージID122004、開始アドレス122005、終了アドレス122006及びデータ有効性122007を含む。
 Sメタ属性ID122001は、Sメタ属性IDを表す情報である。Sメタ属性IDは、データチャンクの識別子(データチャンクID)でよい。I/O要求では、オブジェクトIDとデータチャンクIDのうちのいずれかが指定されてよい。
 アクセス状態122002は、データチャンク81へのアクセス方法及びアクセス制限を表す情報である。アクセス方法としては、例えば、オブジェクト単位のアクセスであるオブジェクトアクセス(“Object”)、ブロック単位のアクセスであるブロックアクセス、及び、ファイル単位のアクセスであるファイルアクセスがある。アクセス制限としては、例えば、“R/W可”、“RO”及び“R/W不可”がある。アクセス状態122002は、更に、どのユーザがアクセス可能であるかといった情報を含んでもよい。
 コピー状態122003は、データチャンクについてのコピー状態を表す情報である。例えば、コピー状態122003としては、“SVOL”(SSVOL26Sから参照されたデータチャンクである)、“NULL”(データチャンク81がコピー対象ではない)等がある。
 ストレージID122004は、データチャンク81が格納されるストレージ装置の識別子(ストレージID)を表す情報である。後述する別実施例のように、Sメタ82が参照するデータチャンク81が、そのSメタ82が存在するストレージ装置300とは別のストレージ装置300に配置される場合がある。プロセッサ1310は、ストレージID122004を参照することで、対応するデータチャンク81を格納したストレージ装置300を特定できる。
 開始アドレス122005は、データチャンク81が存在する領域の開始アドレスを表す情報である。終了アドレス122006は、データチャンク81が存在する領域の終了アドレスを表す情報である。データ有効性122007は、データチャンク81自身が有効か否かを表す情報(例えばフラグ)である。“YES”は有効を意味し、“NO”は無効を意味する。例えば、データVOL26D内のデータチャンク#A及び#Bを参照するSメタ#Xがあり、Sメタ#X´(Sメタ#Xの複製)がデータチャンク#A及び#Bのうちのデータチャンク#Aのみを参照する場合、Sメタ#X´において、データチャンク#Aに対応したデータ有効性12007は“YES”であるが、データチャンク#Bに対応したデータ有効性12007は“NO”とされる。
 図7は、1つのCメタ83に含まれるCメタ管理情報1230の構成を示す。
 Cメタ管理情報1230は、Cメタ83の少なくとも一部である。Cメタ管理情報1230は、CメタID123001、種別123002、開始アドレス123003、終了アドレス123004、Sメタ属性ID123005及びユーザ拡張123006を含む。
 CメタID123001は、Cメタ83の識別子(CメタID)を表す情報である。CメタID123001から、Cメタ83の参照先のSメタ82(同一のCメタIDをユーザID121011として含んだSメタ82)がわかる。
 種別123002は、Cメタ83の種別を表す情報である。種別123002は、例えば、Cスナッププログラム1291がメタデータ種別を観点に検索する場合に参照される。
 開始アドレス123003は、Cメタ管理情報1230に関連付いた情報(例えばコンテンツ情報の一部(Cメタ83の一部))が格納された領域(例えばVOL26の領域)の開始アドレスを表す情報である。終了アドレス123004は、Cメタ管理情報1230に関連付いた情報が格納された領域の終了アドレスを表す情報である。Cメタ83の全部がローカルメモリ1200に存在する場合、開始アドレス123003及び終了アドレス123004の各々は、“NULL”となる。
 Sメタ属性ID123005は、Cメタ83に対応するデータチャンクを指すSメタ属性情報1220のSメタ属性IDを表す情報である。Sメタ属性ID123005から、Cメタ83に対応したデータチャンク81を指すSメタ属性情報1220を特定可能である。
 ユーザ拡張123006は、ユーザプログラムにより付加された拡張情報であり、コンテンツ情報の少なくとも一部である。例えば、抽出されたデータチャンク81が、撮影画像の場合、その画像の撮影位置の情報が、ユーザ拡張123006としてCメタ管理情報1230に含められる。
 図8は、コピーペア管理テーブル1260の構成を示す。
 コピーペア管理テーブル1260は、コピーペアの構成に関する情報を保持するテーブルである。コピーペア管理テーブル1260は、ルートID12601、コピー状態12602、コピー対象ストレージID12603、コピー対象ルートID12604及びグループID12605を保持する。
 ルートID12601は、ルートの識別子(ルートID)を表す情報である。コピー状態12602は、ルートID12601から識別されるルート(例えばVOL)についてのコピーの現在の状態を表す情報である。コピー対象ルートID12604は、ルートID12601が表すルートとペアを構成するルートであるコピー対象ルートの識別子を表す情報である。コピー対象ルートは、コピー元及びコピー先のいずれでもよい。ルートID12601及びコピー対象ルートID12604のうちの少なくとも1つは、当該情報に対応するルートがコピー元及びコピー先のいずれであるかを表す情報(例えば記号)を含んでもよい。グループID12605は、当該コピーペアを含んだコピーグループの識別子(グループID)を表す情報である。
 図9は、構成管理テーブル1240の構成を示す。
 構成管理テーブル1240は、ストレージ装置300の構成に関する情報を保持するテーブルである。構成管理テーブル1240は、ストレージ装置300が有するリソース(コンポーネント)毎に、レコードを有する。各レコードは、リソース種別12401、リソースID12402、関連リソースID12403及びスペック12404といった情報を保持する。
 リソース種別12401は、リソースの種別を表す報である。リソース種別12401の値としては、プロセッサ”、“Cache”(キャッシュメモリ1100)、“Port”(例えば、ホスト計算機200からI/O要求を受け付けるI/F1320のポート)、“SSD”(PDEV1500の一例)、“HDD”(PDEV1500の一例)、“Pool”“例えば図4のプール91”、“Volume”(上述したVOL)等がある。
 リソースID12402は、リソースの識別子を表す。関連リソースID12403は、リソースに関連するリソースの識別子、具体的には、リソースの親リソースの識別子を表す。「親リソース」とは、リソースに関連するリソースのうちの1つ上位のリソースを意味する。「上位のリソース」とは、リソースより上位(ホスト計算機200側)のリソースを意味する。ストレージ装置300では、複数のリソースが、それぞれ複数のリソースノードとして木構造を有している。その木構造において、ホスト計算機200側が上位であり、PDEV1500側が下位である。
 スペック12404は、リソースのスペックを表す。リソース種別12401が“プロセッサ”の場合、スペック12404の値は、周波数であり、リソース種別12401が“Cache”の場合、スペック12404の値は、容量である。このように、スペック12404の値(単位)は、リソース種別に応じた値でよい。
 構成管理テーブル1240に保持される情報は、図9に例示の形式に代えて、図5に例示の形式で保持されてもよい。
 以下、実施例1で行われる幾つかの処理を説明する。
 図10は、データリード処理のフローチャートである。
 ストレージ装置300がホスト計算機200からI/O要求を受信した場合、I/Oプログラム61は、そのI/O要求がリード要求か否かを判断する(S5010)。S5010の判断結果が偽の場合(S5010:No)、図11のS5510に進む。
 S5010の判断結果が真の場合(S5010:Yes)、I/Oプログラム61は、リード要求を共通のリード要求に変換し、変換後のリード要求をオブジェクトプログラム62に処理を渡す(S5020)。リード要求のようなI/O要求を共通のI/O要求に変換する理由は、I/O要求のプロトコルとして多様なプロトコル(アクセス方法)を利用できるようにするためである。例えば、ブロック、ファイル、オブジェクトといったプロトコルがあり、いずれのプロトコルであっても共通のI/O要求に変換することで、変換以降の処理を共通に実施することができる。例えば、オブジェクトアクセスプロトコルとは、オブジェクトを基本単位としたデータアクセスを行う入出力プロトコルで、操作形式はREST(Representational State Transfer)プロトコル等のWebインターフェースを使って操作することができる。具体的には、例えば、以下のような形式
PUT <オブジェクトID> <書込み|読み出し|コピー制御> [<オプション>]
で操作することができ、S5020により、I/O要求を以下の共通形式の共通要求
WRITE|READ|COPY <オブジェクトID> [<オプション>]
に変換することができる。
 次に、S5050が行われる。すなわち、オブジェクトプログラム62は、共通リード要求に従うリード元アドレスをVOLのアドレスに変換する。その変換では、Sメタ管理情報1210及びSメタ属性情報1220が使用される。具体的には、オブジェクトプログラム62は、共通要求中のオブジェクトIDに一致するSメタID121001を含んだSメタ管理情報1210を参照し、そのSメタ管理情報1210のS属性ポインタ121003からSメタ属性情報1220を参照する。次に、オブジェクトプログラム62は、そのSメタ属性情報1220に含まれる開始アドレス122005及び終了アドレス122006を取得する。オブジェクトプログラム62は、上記共通要求中のオブジェクトIDを、取得されたアドレス122004及び122005が表す開始アドレス及び終了アドレスに変換し、変換後の共通要求を、データ処理プログラム63に渡す。
 データ処理プログラム63は、共通要求から特定されるデータがキャッシュメモリ1100に存在するか否かを判断する(S5090)。S5090の判断結果が偽の場合(S5090:No)、データ処理プログラム63は、当該データをキャッシュメモリ1100に書き込み、処理をオブジェクトプログラム62に渡す(S5100)。
 5090の判断結果が真の場合(S5090:Yes)、又は、S5100の後、オブジェクトプログラム62は、キャッシュメモリ1100から当該データを読み出す(S5060)。I/Oプログラム61が、当該データを、リード要求の送信元のホスト計算機200に返す(S5030)。
 以上のように、ストレージ装置300におけるデータアクセス処理は、3つのプログラム61~63が並列に動作し、必要に応じ連携することで、リード要求に従うデータをVOL26から読み出してホスト計算機200に返すことができる。リード元のVOLは、データVOL26DでもよいしSSVOL26Sでもよい。データリード処理において、リード対象のデータチャンク81に対応したアクセス状態122002を基に、読み出しが許可されているか否かの判断が行われてよい。
 図11は、データライト処理のフローチャートである。
 I/Oプログラム61は、I/O要求がライト要求か否かを判断する(S5510)。S5510の判断結果が偽の場合(S5510:No)、その要求に従う処理が行われる。
 S5510の判断結果が真の場合(S5510:Yes)、I/Oプログラム61は、ライト要求をストレージ装置300の共通要求に変換する(S5520)。
 次に、オブジェクトプログラム62が、その共通要求に従うライト対象のデータ(オブジェクト)のコピー状態122003が“SVOL”か否かを判断する(S5540)。具体的には、オブジェクトプログラム62は、共通要求中のオブジェクトIDと同一のSメタID121001のSメタ管理情報1210を特定し、さらに、そのSメタ管理情報1210のS属性ポインタ121003からSメタ属性情報1220を特定し、その特定されたSメタ属性情報1220のコピー状態122003を参照する。
 コピー状態122003が“SVOL”の場合(S5540:Yes)、スナップショットプログラム64が、ライト先VOLを別VOL(プールVOL)に変更する(S5550)。具体的には、スナップショットプログラム64が、共通要求中のオブジェクトIDに一致するSメタID121001を含んだSメタ管理情報1210を参照し、当該Sメタ管理情報1210のS属性ポインタ121003からSメタ属性情報1220を参照する。次に、スナップショットプログラム64は、そのSメタ属性情報1220の開始アドレス122005及び終了アドレス122006を取得し、これらのアドレス122004及び122005が表すVOL_IDをプールVOLのIDに変更する。これにより、SSVOL26Sにより参照されるデータチャンク81がSSVOL26Sに対するライトによって更新されることを回避できる。
 コピー状態122003が“SVOL”ではない場合(S5540:No)、S5560が行われる。すなわち、オブジェクトプログラム62は、共通要求中のオブジェクトIDからVOLのアドレスに変換する。具体的には、オブジェクトプログラム62は、そのオブジェクトIDと一致するSメタID121001を含んだSメタ管理情報1210を参照し、当該Sメタ管理情報1210のS属性ポインタ121003からSメタ属性情報1220を参照する。次に、オブジェクトプログラム62は、そのSメタ属性情報1220の開始アドレス122005及び終了アドレス122006を取得し、共通要求中のオブジェクトIDを、当該取得したアドレス122004及び122005に置き換える。
 S5550又はS5560の後、オブジェクトプログラム62は、キャッシュメモリ1110から領域を確保する(S5570)。そして、オブジェクトプログラム62は、確保された領域に、共通要求に従うデータを書き込む(S5530)。S5530が完了したときに、I/Oプログラム61が、ライト要求の送信元のホスト計算機200に、ライト完了を返してもよい。キャッシュメモリ1110に書かれたデータは、データ処理プログラム63により、そのデータのライト先のアドレスが示す領域に対応したPDEV1500に書き込まれる。
 以上のように、ストレージ装置300におけるデータアクセス処理は、3つのプログラム61~63が並列に動作し、必要に応じ連携することで、ライト対象のデータをキャッシュメモリ1100に書き出し、ホスト計算機200に完了を通知することができる。データライト処理において、ライト対象のデータチャンク81に対応したアクセス状態122002を基に、書き込みが許可されているか否かの判断が行われてよい。
 ここからは、図2及び図12~図14を参照して、Cスナップ処理を含んだ一連の処理を説明する。
 図2によれば、Cスナップ処理の前に「(0)通常状態」及び「(1)抽出処理」があり、Cスナップ処理として、「(2-1)Cスナップ(選別)」及び「(2-2)Cスナップ(スナップ取得)」があり、Cスナップ処理の後に「(3)分析」がある。
 <(0)通常状態>
 データチャンク81がストレージ装置300に格納され、データチャンク81を含んだオブジェクトに対して第1Sメタ82Sが関連付けられる。データチャンク81は、例えば、監視カメラから生成された画像データであってもよいし、工場の製造機器が出力するログ情報であってもよい。
 図2によれば、データチャンク#1及び#2が格納され、且つ、それらをそれぞれ参照する第1Sメタ#1及び#2がある。
 <(1)抽出処理>
 少なくとも1つのデータチャンク81がストレージ装置300のデータVOL26Dに格納された時点、一定の時間間隔、又は、プロセッサ1310の処理負荷が一定時間以上低い状態が続いた時点等で、抽出プログラム1290がプロセッサ1310上で動作する。
 図12は、抽出処理のフローチャートである。
 抽出処理は、抽出プログラム1290とオブジェクトプログラム62により実施される。抽出処理は、ユーザにより指定されたルートIDが対象とされてよい。ルートID(例えばVOL_ID)は、予め指定されていてもよい。抽出プログラム1290は、ストレージ装置300に格納されるデータ(オブジェクト)から分析観点となり得るコンテンツ情報を取得し、当該コンテンツ情報を含んだCメタ83をデータのSメタ82に関連付けてストレージ装置300に保存するプログラムである。本実施例では、抽出プログラム1290は、ストレージ装置300内で動作するが、ホスト計算機200及び管理計算機100のうちのいずれで動作しても構わない。
 抽出プログラム1290は、指定されたルート(VOL)にデータチャンク81が格納された時刻と、直前回の抽出処理の時刻とを比較することで、直前回の抽出処理の時刻よりも格納時刻が新しいデータチャンク(以下、更新データチャンク)81があるか否かを判断する(S5610)。S5610の判断結果が偽の場合(S5610:No)、処理が終了する。なお、「直前回の抽出処理の時刻」は、直前回の抽出処理のときに抽出プログラム1290によりローカルメモリ1200に保存された時刻である。
 S5610の判断結果が真の場合(S5610:Yes)、抽出プログラム1290は、更新データチャンク81を抽出し、抽出された更新データチャンク81が、定められた抽出ルールに適合したデータチャンクであるか否かを判断する(S5620)。例えば、抽出ルールには、抽出されるべきデータチャンクのデータ条件(抽出のための検索条件)が指定されている。データ条件は、例えば、データ種別(例えば、写真、Eメール)でよい。抽出プログラム1290がユーザ毎に用意されることに代えて又は加えて、抽出ルールが、ユーザ毎に用意されていてもよい。
 S5620の判断結果が偽の場合(S5620:No)、S5670に進む(処理が終了してもよい)。
 S5620の判断結果が真の場合(S5620:Yes)、抽出プログラム1290は、更新データチャンク81から、そのデータ形式に基づき、更新データチャンク81が表す1以上のコンテンツ属性を表すコンテンツ情報を抽出する(S5630)。更新データチャンク81からコンテンツ情報を取得するには、データ種別に応じアプローチを変える必要がある。例えば、画像から位置情報を取得する場合、画像ファイルの属性情報を参照し、当該属性情報に含まれる位置情報を読み取ることで、コンテンツ情報の少なくとも一部を取得できる。
 次に、抽出プログラム1290は、抽出したコンテンツ情報を基にCメタ83を作成する(S5640)。コンテンツ情報は、ローカルメモリ1200及びVOL26のうちの少なくとも1つに格納されてよい。ローカルメモリ1200の空き容量よりもコンテンツ情報の容量の方が十分に小さければ、コンテンツ情報全体がローカルメモリ1200に格納されてよい。抽出プログラム1290は、コンテンツ情報の格納場所に基づくCメタ管理情報1230を作成する。CメタID1230は、任意の値でよい。開始アドレス123003及び終了アドレス123004は、ローカルメモリ1200にコンテンツ情報が格納された場合、“NULL”でよい。Sメタ属性ID123005は、更新データチャンクの識別子でよい。ユーザ拡張123006は、コンテンツ情報の少なくとも一部でよい。このように、コンテンツ情報の少なくとも一部が、Cメタ管理情報1230に登録され得るため、結果として、コンテンツ情報全体が、ローカルメモリ1200に格納されることがある。一方、コンテンツ情報の少なくとも一部がVOL26に格納されることもある。その場合、コンテンツ情報の格納場所のアドレスは、例えば、オブジェクトプログラム62に問い合わせることで入手可能である。また、コンテンツ情報全体がVOLに登録される場合、ユーザ拡張123006は“NULL”でよい。
 次に、抽出プログラム1290は、オブジェクトプログラム62に、S5640で作成したCメタ管理情報1230を含むCメタ83の登録を依頼する(S5650)。オブジェクトプログラム62は、その依頼に応答して、そのCメタ83を、抽出された更新データチャンク81を参照する第1Sメタ82Sに関連付ける(S5660)。具体的には、オブジェクトプログラム62は、抽出された更新データチャンク81を参照するSメタ82内のSメタ管理情報1210に、CメタID1230と同じ値をユーザID121011として追加し、且つ、Cメタ管理情報1230へのポインタをユーザポインタ121012として追加する。
 抽出プログラム1290は、S5610と同様の判断を行う(S5670)。S5670の判断結果が真の場合(S5670:Yes)、別の更新データチャンクについて、S5620に進む。S5670の判断結果が偽の場合(S5670:No)、処理が終了する。
 図2によれば、抽出処理により、データチャンク#1及び#2にそれぞれ対応したCメタ#1及び#2が作成される。Cメタ#1は第1Sメタ#1を参照し、Cメタ#2は第1Sメタ#2を参照する。なお、Cメタ#1及び#2のいずれも、コンテンツ属性として、上述したデータ種別等に代えて又は加えて、指定された検索条件(データ条件(例えば時間帯))とその検索条件をキーにした検索の検索結果(例えば検索ヒット又はミス)とを含んでよい。
 <(2-1)Cスナップ(選別)>
 Cスナップ(選別)は、第1Sメタ82Sに関連付けられたCメタ83から、検索条件に適合するCメタ83を選別する処理である。Cスナッププログラム1291は、本実施例では、ストレージ装置300で動作するが、管理計算機100及びホスト計算機200のいずれで動作しても構わない。
 Cスナップ処理の開始が、ユーザにより指示される。その指示を、Cスナッププログラム1291が受ける。指示形式は、例えば以下の通りである。
CSNAP <検索鍵> <対象ルートID> <コピー先ルートID> <オプション>
 上記指示形式の場合、<対象ルートID>で指定されたルート内のデータチャンク81に対応したCメタ83が、<検索鍵>で指定された検索鍵(検索条件)に適合するCメタ83に絞り込まれる。絞り込んだ1以上のCメタ83が参照する1以上の第1Sメタ82Sが、それぞれ、<コピー先ルートID>で指定されたルート以下に複製されることになる。
 図13は、Cスナップ(選別)のフローチャートである。
 S5710が行われる。すなわち、Cスナッププログラム1291は、ユーザからの指示で指定されたルートIDに対応したSメタポインタ1254をストレージ管理テーブル1250から特定する。次に、Cスナッププログラム1291は、特定したSメタポインタ1254からSメタ管理情報1210を参照し、さらに当該Sメタ管理情報1210のユーザID121011及びユーザポインタ121011から、当該Sメタに関連付くCメタ83を特定する。
 次に、Cスナッププログラム1291は、ユーザに指定された検索鍵に、当該Cメタ83(Cメタ83が含むコンテンツ情報)が適合するか否かを判断する(S5720)。
 S5720の判断結果が真の場合(S5720:Yes)、Cスナッププログラム1291は、当該Cメタ83に関連付く第1Sメタ82S(Sメタ管理情報1210及びSメタ属性情報1220)の複製をオブジェクトプログラム62に依頼する(S5730)。その依頼に応答して、オブジェクトプログラム62は、指定された第1Sメタ82Sの複製を行う(S5740)。なお、複製において、第1Sメタ82Sの複製に基づく第2Sメタ82TのSメタIDとして、オリジナルの第1Sメタ82SのSメタIDと異なるSメタIDが付与されてよい。また、複製において、Cスナッププログラム1291及びオブジェクトプログラム62のうちのいずれかが、下記の(a)及び(b)のうちのいずれかである複製絞込み処理を実行してよい。
(a)分析に必要ないデータチャンクを参照するSメタ属性情報1220(検索鍵に適合しないCメタ83の参照先のSメタ属性情報1220)の複製をスキップする。
(b)そのSメタ属性情報1220のデータ有効性122007を“NO”に変更する。
 このような複製絞込み処理を実行するか否かは、ユーザからの指示(Cスナッププログラム1291に対する開始指示)に記述されていてよい。複製絞込み処理により、SSVOL26S(VDM)に含まれるデータチャンク81を絞り込むことが可能となる。
 次に、Cスナッププログラム1291は、ユーザから指定されたルートIDに対応した全ての第1Sメタ82Sに対してS5710を実施したか否かを判断する(S5750)。S5750の判断結果が偽の場合(S5750:No)、未処理のSメタ82についてS5710が行われる。S5750の判断結果が真の場合(S5750:Yes)、処理が終了する。少なくとも1つの第1Sメタ82SについてS5740が行われた場合、Cスナップ(スナップ取得)が実施される。
 <(2-2)Cスナップ(スナップ取得)>
 Cスナップ(選別)において得られた第2Sメタ82Tに基づき、SSVOL26Sが作成される。このSSVOL26Sがホスト計算機200に提供されることで、ホスト計算機200からはSSVOL26SをDMとして利用可能となる。
 図14は、Cスナップ(スナップ取得)のフローチャートである。
 Cスナッププログラム1291は、スナップショット作成をスナップショットプログラム64に依頼する(S5770)。ここで、スナップショット作成にあたり、Cスナッププログラム1291は、Cスナップ(選別)で作成された第2Sメタ82TにおけるSメタIDをスナップショットプログラム64に渡す。
 その依頼に応答して、スナップショットプログラム64は、Cスナッププログラム1291から渡されたSメタIDに合致するSメタ管理情報1210を特定し、当該Sメタ管理情報1210に関連付いたSメタ属性情報1220のコピー状態122003を“SVOL”にする(S5680)。コピー状態122003が“SVOL”にされることで、当該オブジェクトへのライトの際にスナップショット対象データと判定され、必要なスナップショット処理(図4参照)が実施される。
 次に、スナップショットプログラム64は、ストレージ管理テーブル1250に、ユーザに指定されたコピー先ルートID(SSVOL26SのID)をルートID1251として追加し、且つ、そのルートID1251に、第2Sメタ82Tへのポインタ1254を関連付ける(S5690)。スナップショットプログラム64は、そのコピー先ルートID(SSVOL26S)を、Cスナップの開始指示を出したユーザ(検索要求元のユーザ)のホスト計算機200に提供してよい。
 以上のように、ストレージ装置300におけるCスナップ処理では、Cスナップ(選別)において、ユーザから与えられた検索鍵に基づきスナップショット対象のデータチャンク(VDMに含められるデータチャンク)が選別され、Cスナップ(スナップ取得)において、選別されたデータチャンクを含んだSSVOL26S(VDM)が作成される。
 また、原理的に、1つのルートID(データVOL26D)について複数のコピー先ルートID(SSVOL26S)を作成することが可能である。具体的には、例えば、1つのデータVOL26Dについて、複数のSSVOL26Sを作成できる。
 また、Cスナップ処理後に、ホスト計算機200から、Cスナップ作成時に指定したコピー先ルートIDにアクセスすると、そのホスト計算機200からは、DM(SSVOL26S)が存在しているように見えるようになる。複数のSSVOL26Sが作成された場合は、例えば、観点の異なるDM(データマート)が作成されたように見える。
 図15は、重複チェック処理のフローチャートである。
 重複チェック処理は、重複チェックプログラム1292により実行される。重複チェック処理は、上述した分析グループの作成と推奨情報の提示とを含んだ処理である。重複チェックプログラム1292は、閾値以上の重複度を有する2以上の第2Sメタ82Tを含んだ分析グループを構築し、その分析グループに含まれる第2Sメタ82T(及び、その第2Sメタ82Tに対応したSSVOL26S)を表す情報を提示するプログラムである。重複チェック処理は、複数の分析観点を指定した1以上のユーザ要求に応答して開始されてもよいし、そのようなユーザ要求を受信すること無しに所定の重複チェック開始イベントが検出されたときに(例えば定期的に)開始されてもよい。この重複チェック処理では、前回の重複チェック処理において構築された分析グループが更新されてもよいし、前回の重複チェック処理において構築された分析グループは全て破棄されて新たに分析グループが更新されてもよい。
 重複チェックプログラム1292は、S5810を実行する。すなわち、重複チェックプログラム1292は、1つのメタセットを選択する。「メタセット」とは、1つのCメタ83と1つの第2Sメタ82Tとのセットである。メタセットは、いずれの分析グループにも含まれていない1以上のメタセットから選択される。次に、重複チェックプログラム1292は、選択されたメタセットが表す参照先(アドレス範囲)と、選択されたメタセット以外の全てのメタセットがそれぞれ表す参照先との重複度を算出する。「メタセットが表す参照先」とは、そのメタセット内の第2Sメタ82Tに含まれる全てのSメタ属性情報1220の開始アドレス122005及び終了アドレス122006が表す参照先(アドレス範囲)である。以下、選択されたメタセットを「比較元メタセット」と言い、比較元メタセット以外のメタセットを「比較先メタセット」と言う。重複チェックプログラム1292は、比較元メタセットとの間での重複度が閾値以上である比較先メタセットを特定する。重複チェックプログラム1292は、比較元メタセットと、特定された比較先メタセット(すなわち、比較元メタセットとの間での重複度が閾値以上である比較先メタセット)とをグルーピングすることで、1つの分析グループを構築する。なお、重複度の「閾値」は、事前に設けられておいてもよく、ユーザが設定してもよく、固定値でもよく、可変値でもよい。なお、S5810において、比較元メタセットがいずれの比較先メタセットとの間で重複度が閾値未満の場合、比較元メタセットのみを含んだ分析グループが構築されてよい。或いは、S5810において、比較元メタセットがいずれの比較先メタセットとの間で重複度が閾値未満の場合、比較元メタセットは、1以上の比較先メタセットのうち重複度が上位K個(Kは自然数)の比較先メタセット(例えば重複度が最も高い比較先メタセット)とグルーピングされてよい。
 重複チェックプログラム1292は、全ての第2Sメタ82TについてS5810を実行したか否かを判断する(S5820)。S5820の判断結果が偽の場合(S5820:No)、再度S5810が実行される。
 S5820の判断結果が真の場合(S5820:Yes)、いずれのメタセットもいずれかの分析グループGn(nは自然数)に属することとなる。重複チェックプログラム1292は、推奨情報を提示する(S5830)。具体的には、例えば、重複チェックプログラム1292は、並列に使用することが推奨されるSSVOL26Sに対応する第2Sメタ82Tを表す情報(例えば、Sメタ121001)を提示する。第2Sメタ82Tを表す情報は、分析グループ毎に提示される(参照符号5840は、分析グループ毎に第2Sメタ82Tを表す情報が提示された提示画面の一例である)。分析グループは、典型的には、高重複度分析グループ(重複度が閾値以上の2以上の第2Sメタ82Tを含み重複度が閾値未満の2以上の第2Sメタ82Tを含まない分析グループ)であるため、その分析グループに属する複数の分析を並列に(例えば同時に)実施することで、重複データチャンクがキャッシュメモリに存在する確率(キャッシュヒット率)が高くなりPDEV1500に対するアクセスを低減できる。
 なお、S5830において、重複チェックプログラム1292は、構築された1以上の分析グループのうちの提示対象となる分析グループを、構成管理テーブル1240を基に絞り込むことができる。
 例えば、構成管理テーブル1240が表すリソース種別12401、リソースID12402、関連リソース12403及びスペック12404を基に、参照するデータチャンク群が並列実行可能な程度の量である分析グループを提示対象として選択してよい。
 また、重複チェックプログラム1292は、低容量分析グループ(構成管理テーブル1240が表すキャッシュメモリ容量以下の容量のチャンクデータ群を参照する分析グループ)である分析グループを提示対象として選択してよい。
 また、重複チェックプログラム1292は、高重複度分析グループ且つ大容量分析グループである分析グループに代えて、低重複度分析グループである分析グループを、提示対象として選択してよい。つまり、重複チェックプログラム1292は、図1の説明において述べた処理(s)を実行してよい。これにより、PDEV1500へのアクセスが複数のPDEV1500に分散することが期待できる。
 以上、実施例1によれば、ストレージコントローラ329が、データチャンク81について、そのデータチャンク81が表す1以上のコンテンツ属性を含んだCメタ83を作成し、そのCメタ83をデータチャンク81の第1Sメタ82Sに関連付ける。検索鍵を指定した検索要求に従う検索の対象、データチャンク81ではなくCメタ83である。ストレージコントローラ329は、見つかったCメタ83が関連付いた第1Sメタ82Sを複製することで第2Sメタ82Tを生成し、第2Sメタ82Tが属するSSVOL26Sを構築する。これにより、データチャンク81の複製無しにDM(VDM)が作成される。そして、ストレージコントローラ329は、重複度が閾値以上の第2Sメタ82Tを含んだ分析グループを構築し、構築された分析グループに含まれる第2Sメタ82T(及び/又は、その第2Sメタ82Tに対応したSSVOL26S)を表す情報を提示する。重複度が閾値以上の第2Sメタ82Tが参照する重複データチャンクは、高頻度に参照され得るデータチャンクである。このため、ストレージ装置300内でPDEV1500へのアクセスの発生頻度をできるだけ避ける並列分析の実行が可能となる。
 なお、実施例1において、重複チェックプログラム1292は、分析グループの構築において、構成管理テーブル1240からキャッシュメモリ容量を特定し、低容量分析グループのみを構築するようにしてもよい。
 実施例2を説明する。その際、実施例1との相違点を主に説明し、実施例1との共通点については説明を省略又は簡略する。これは、他の実施例についても同様である。
 実施例2では、複数のVDM(SSVOL26S)を使用した複数の分析が複数のストレージ装置300に分散される。具体的には、実施例2では、抽出処理及びCスナップ(選別)まで実施された後、Cスナップ(スナップ取得)の実施前に、Cスナップ(SSVOL26S)の作成先のストレージ装置が複数のストレージ装置から選択される。その選択の後に、選択されたストレージ装置にて、Cスナップ作成及び重複チェック処理が実施される。
 図16は、実施例2に係る計算機システムのブロック図である。
 複数のストレージ装置300がある。各ストレージ装置300において、ローカルメモリ1200が、性能管理テーブル1270、コピープログラム65及びスケールアウトプログラム74を記憶する。性能管理テーブル1270は、ストレージ装置300内のリソースの性能を表す情報を保持するテーブルである(詳細は図17で説明する)。コピープログラム65は、ストレージ装置300間のコピーを実行する。スケールアウトプログラム74は、ストレージ装置300間のI/O要求の受け渡しを実行する。
 管理計算機100は、複数のストレージ装置300からそれぞれ構成管理テーブル1240及び性能管理テーブル1270が有する情報を収集しメモリ110に保持することができる。つまり、管理計算機100は、複数のストレージ装置300の構成管理テーブル1240及び性能管理テーブル1270を管理計算機100のメモリ110に集約することができる。管理計算機100は、複数のストレージ装置300から定期的に情報を収集してもよいし、情報が変更されことの通知をストレージ装置300から受信したときにそのストレージ装置300から情報を収集してもよい。なお、管理計算機100としての機能は、ホスト計算機200及びストレージ装置300から独立した計算機にあってもよいが、ストレージ装置300とホスト計算機200のいずれにあってもよい。また、管理計算機100が全てのストレージ装置300の構成管理テーブル1240と性能管理テーブル1270の情報を収集せずに、各ストレージ装置300がそのストレージ装置300以外の全てのストレージ装置300から情報を収集してもよい。
 図17は、性能管理テーブル1270の構成を示す。
 性能管理テーブル1270は、リソース毎にレコードを有する。各レコードが、リソース種別12701、リソースID12702、時間12703及び性能値12704といった情報を保持する。
 リソース種別12701は、ストレージ装置300内のリソース(コンポーネント)の種別を表す情報である。リソースID12702は、リソースの識別子を表す情報である。
 時間12703は、対応する性能値12704が表す性能値を含んだ性能情報の取得時間を表す情報である。図17の例によれば、“Processor1”の性能情報が10分毎に取得されるが、性能情報の取得ための時間間隔は任意の設定が可能である。また最新の性能情報だけが性能管理テーブル1270に保持されてもよい。
 性能値12704は、取得した性能値を表す情報である。リソース種別“プロセッサ”の場合、性能値12704は、CPU利用率を表す。性能値12704が表す性能値の単位は、リソース種別12701によって異なっていてよい。1つのリソース種別について複数種類の性能値が性能値12704に含まれていてもよい。なお、性能値12704として、時間帯毎の性能値ではなく最新の性能値のみが保持される場合、性能値12704は、累積値であってもよいし、単位時間当たりの値であってもよい。例えば、Volumeの性能値12704として、累積値(例えばI/O要求数のカウント値)が保持されてもよいし、単位時間当たりの値(例えばIOPS(1秒当たりのI/O要求数))が保持されてもよい。
 図18は、抽出処理から重複チェック処理までの処理全体のフローチャートである。
 まず、抽出処理は、図12に示した処理である(S5910)。
 次に、管理計算機100の管理プログラム112が、ホスト計算機200の分析アプリ211からエージェントプログラム213経由で渡される複数の検索鍵(複数の分析観点)と、各ストレージ装置300の構成管理テーブル1240及び性能管理テーブル1270とに基づき、複数の分析を、データVOL26D(データソース)を有する1台のストレージ装置300で実行するか2以上のストレージ装置300で実行するかを判断する(S5920)。
 図19は、S5920のフローチャートである。
 管理プログラム112が、データVOL26Dを有するストレージ装置300に対してCスナップ(選別)の指示を出す(S6010)。指示には、ルートIDが指定される。その指示を受けたストレージ装置300内のCスナッププログラム1291が、図13のS5710及びS5720(YES)と同様の処理を実行する(S6020)。すなわち、Cスナッププログラム1291が、指定されたルートIDに対応したSメタポインタ1254をストレージ管理テーブル1250から特定する。Cスナッププログラム1291は、特定したSメタポインタ1254から特定された第1Sメタ82Sに関連付いたCメタ83のうち、S5920で受けたいずれかの検索鍵に該当するCメタ83を特定する。
 次に、重複チェックプログラム1292が、S6020で特定された複数のCメタ83に関連付いている複数の第1Sメタ82Sの開始アドレス122005及び終了アドレス122006を用いて、2以上の第1Sメタ82Sの重複度を算出し、算出された重複度に基づき、1以上の分析グループを構築する(S6030)。これは、図15のS5810と実質的に同じ処理である。具体的には、S5810では、第2Sメタ82Tを含んだメタセットの分析グループが構築されるが、S6030では、第1Sメタ82Sを含んだメタセット(Cメタ83と第1Sメタ82Sとのセット)の分析グループが構築される。重複チェックプログラム1292は、S6030の結果(例えば、構築された分析グループの情報)を管理プログラム112へ返す。
 結果を受け取った管理プログラム112は、第1Sメタ82SとCメタ83との関連と、それらの第1Sメタ82S及びCメタ83に関連するSSVOLの容量と、構成管理テーブル1240とを基に、コピー所要時間(コピーにかかる時間)を予測する(S6040)。ここで言う「SSVOLの容量」は、例えば、特定された1以上のCメタ83に関連付いた第1Sメタ82Sが参照するデータチャンク群のうちのその特定された1以上のCメタ83に対応した1以上のデータチャンクの総容量でよい。
 コピー所要時間の予測の一例は、次の通りである。管理プログラム112は、S6030で構築された分析グループG1、G2、...、Gnを利用して、分析のリード処理に要する時間とコピーに要する時間の総和が最小となる組み合わせを探す。コピー元の分析のリード処理に要する時間をTsrとし、1つのVDM(DM)に均等にCPU時間が割り当てられると仮定すると、
Tsr(1つのVDMの分析のリード処理に要する時間)
=(VDMの容量)/((コピー元ストレージ装置のカタログ上のリード性能)/Ndm)、
である。また、コピー元のコピー時間(データ転送時間)をTscとすると、
Tsc=(重複を排除したSxのボリュームの容量)/((コピー元ストレージ装置のカタログ上のリード性能)/Ndm)
となる。このため、
Ttc(コピー先のコピー時間)=(重複を排除したGxについてのVOLの容量)/(コピー先ストレージ装置のカタログ上のライト性能)、
となる。また、
Ttr(コピー先での分析のリード処理に要する時間)
=(GxについてのVDMの容量)/((コピー先ストレージ装置のカタログ上のリード性能)/GxについてのVOL数)
と考えられる。ここで、「Ndm」は、(コピーされないVDMの数)+(重複を排除したGxの数)を意味する。「Gx」は、コピーされるCメタ83及び第1Sメタ82Sの分析グループの集合を意味する。また、「コピー先ストレージ装置」は、分析グループ内の情報を記憶可能な空き容量を有すること、CPU利用率及びキャッシュ利用率がコピー元ストレージ装置よりも低いこと、といった条件を満たすストレージ装置でよいし、他の条件を満たすストレージ装置であってもよい。全ての処理の時間の総和Tsumは、Tsum=Max(Σ(Tsr)、Σ(Tsc+Ttc+Ttr))となる。ここで、「Max(X,Y)」は、X及びYのうち大きい方の値である。よって、管理プログラム112は、Tsumが最小となる組み合わせを見つける。グルーピングされたCメタ83と第1Sメタ82Sとのメタセットが1つもコピーされない場合、Tsc、Ttc及びTtrはいずれも0となるが、VDM数が多いため1つのVDMに割り当てられるCPU時間が少なくなり1つのVOLのTsrが大きくなり結果として全てのVDMのTsrが大きくなる。最も重複度が高いグループであるGy(yは自然数)をコピーするとTsrが小さくなり、Tsc、Ttc及びTtrがいずれも増加する。コピー先が2以上のストレージ装置に分散すれば、Σ(Ttc+Ttr)は、コピーされる分析グループGの数が増えても、小さくすることができる。この繰り返し計算を、分析グループを重複度が高い順に増やしていくと(コピーする分析グループの数を増やしていくと)、最小となるTsumを見つけることができる。なお、この計算は一例であり、他の方法で最適化計算が行われてもよい。
 図18に戻る。S5920の結果(図19の結果)、1つの分析グループもコピーしなくてよい場合は1台のストレージ装置で実行すべきということになるため、S5940へ進む。S5940では、実施例1の図13のS5730及びS5740が全ての観点について実施され、その後、図14及び図15の処理が実施される。
 一方、S5920の結果(図19の結果)、少なくとも1つの分析グループがコピーされる場合はS5950へ進む。S5950では、管理プログラム112は、S5920で確認したコピーすべき分析グループGyの重複を排除したときの容量がコピー先ストレージ装置のキャッシュメモリ容量以下か否かを判断する。
 S5950の判断結果が真の場合(S5950:Yes)、Cメタ83及び第1Sメタ82Sのみコピーされる(S5970)。一方、S5950の判断結果が偽の場合(S5950:No)、Cメタ83及び第1Sメタ82Sだけでなく実データ(データチャンク)もコピーされる(S5960)。
 図20は、S5960のフローチャートである。
 管理プログラム112は、コピー元ストレージ装置300(典型的には、データVOL26Dを有するストレージ装置300)に対して、Cスナップ(選別)とコピーとの指示を出す(S6110)。その指示には、ルートIDと、コピー先ストレージ装置の情報(例えば、コピー先ストレージ装置のストレージID1252)とが指定される。
 その指示を受けたコピー元ストレージ装置300内のCスナッププログラム(以下、コピー元Cスナッププログラム)1291は、図13のS5710及びS5720(YES)と同様の処理を実行する(S6120)。すなわち、コピー元Cスナッププログラム1291が、指定されたルートIDに対応したSメタポインタ1254をストレージ管理テーブル1250から特定する。コピー元Cスナッププログラム1291は、特定したSメタポインタ1254から特定された第1Sメタ82Sに関連付いたCメタ83のうち、S5920で受けたいずれかの検索鍵に該当するCメタ83を特定する。
 次に、コピー元Cスナッププログラム1291が、S6120で受けた指示で指定されているコピー元ストレージ装置300内のコピープログラム(以下、コピー元コピープログラム)65に、特定されたCメタ83と、それに関連付く第1Sメタ82Sと、そのCメタ83及び第1Sメタ82Sに対応した実データとをコピーすることのコピー要求を送信する(S6130)。コピー元コピープログラム65は、そのコピー要求に応答して、そのコピー要求で指定された第1Sメタ82SとCメタ83とそれに対応する実データとのライト指示を、コピー要求で指定されたコピー先ストレージ装置300に出す(S6140)。
 コピー先ストレージ装置300内のコピープログラム(以下、コピー先コピープログラム)65は、ライト指示に応答して、ライト指示で指定された第1Sメタ82SとCメタ83とそれに対応した実データを、そのコピー先ストレージ装置300に保存する(S6150)。第1Sメタ82SとCメタ83の保存先は、コピー先ストレージ装置300のローカルメモリ1200でよい。また、第1Sメタ82Sの保存は、その第1Sメタ82Sの複製に基づく第2Sメタ82Tの保存でよい。実データの保存先は、コピー先ストレージ装置300が提供するデータVOLでよい。データVOLは、RVOL(実VOL)でもTPVOL(Thin Provisioningに従う仮想的な論理ボリューム)でもよい。このように、S6150の時点では、ライト指示に従うCメタ83、ライト指示に従う第1Sメタ82Sの複製に基づく第2Sメタ82T、及び、実データ(1以上のデータチャンク)が保存される。
 次に、コピー先コピープログラム65は、保存された実データに対応する参照先アドレス、すなわち、保存された第2Sメタ82Tの参照先アドレス(開始アドレス122005及び終了アドレス122006)と、保存されたCメタ83の参照先アドレス(開始アドレス123003及び終了アドレス123004)とを、実データが保存された領域のアドレスに書き換える(S6160)。
 その後、コピー先コピープログラム65は、コピー先ストレージ装置300内のCスナッププログラム(以下、コピー先Cスナッププログラム)1291に、Cスナップ(スナップ取得)を依頼する(S6170)。その依頼に応答してコピー先Cスナッププログラム1291により行われるCスナップ(スナップ取得)では、保存された第2Sメタ82Tに対応したSSVOL26Sが作成される。その後、Cスナップ(スナップ取得)の完了が、管理プログラム112に通知される。
 以上の処理の後にS5980へ進む。S5980では、管理プログラム112により、図15のS5830と同様の処理が行われる。
 なお、S5980では、分析グループ内の第1Sメタ82Sは、コピー先ストレージ装置で保存された第2Sメタ82Tに差し替えられてもよい。
 また、図18で示したS5970の処理は、実データが無いこと(例えば、実データコピーと参照先アドレス変更)が無いことを除いて、S5960の処理と同様である。このため、コピー先ストレージ装置300に保存されたCメタ83及び第2Sメタ82Tは、コピー元ストレージ装置300のデータVOL26Dの領域のアドレスを指す。この場合のデータアクセスのためには、スケールアウト処理が必要となる。図21が、スケールアウト処理の概要を示す。図21には、ストレージ装置300X及び300Aが例示されている。ストレージ装置300X及び300Aには、それぞれ、スケールアウトプログラム74X及び74Aが追加されている。例えば、スケールアウトプログラム74X(74A)は、I/Oプログラム61X(61A)とオブジェクトプログラム62X(62A)間の連携を中継してよい。ストレージ装置300X及び300Aには、キャッシュメモリ1100X及び1100Aがそれぞれ存在する。
 ここで、ストレージ装置300Aがホスト計算機200Aからリード要求を受けると、ストレージ装置300Aのスケールアウトプログラム74Aが、当該リード要求の宛先が自ストレージ装置300Aか否かを判断する。その判断結果が偽の場合、スケールアウトプログラム74Aが、リード要求の宛先となるストレージ装置300Xに当該リード要求を転送する。転送されたリード要求を受けたストレージ装置300Xは、当該リード要求に基づきデータチャンク81をキャッシュメモリ1100Xに読み出す。
 例えば、図10のフローチャートは、S5020後の処理が実施例1と異なる。具体的には、例えば、スケールアウトプログラム74Aが共通要求を取得し、当該共通要求のアクセス先が自ストレージ装置300Aか否かを判断する。その判断結果が偽の場合、スケールアウトプログラム74Aが、当該共通要求のアクセス先となるストレージ装置300Xのスケールアウトプログラム74Xに当該共通要求を転送する。スケールアウトプログラム74Xは、当該共通要求をオブジェクトプログラム62Xに渡す。一方、当該共通要求のアクセス先が自ストレージ装置300Aである場合、スケールアウトプログラム74Aは、自ストレージ装置300Aのオブジェクトプログラム62Aに当該共通要求を渡す。
 また、例えば、図11のフローチャートは、S5520後の処理が異なる。具体的には、例えば、スケールアウトプログラム74Aが共通要求を取得し、当該共通要求のアクセス先が自ストレージ装置300Aか否かを判断する。その判断結果が偽の場合、スケールアウトプログラム74Aが、当該共通要求のアクセス先となるストレージ装置300Xのスケールアウトプログラム74Xに当該共通要求を転送する。スケールアウトプログラム74Xが当該共通要求をオブジェクトプログラム62Xに渡す。一方、当該共通要求のアクセス先が自ストレージ装置300Aである場合、スケールアウトプログラム74Aは、自ストレージ装置300Aのオブジェクトプログラム62Aに当該共通要求を渡す。
 以上、実施例2によれば、複数のストレージ装置300を跨いでCスナップ処理が実現できる。これにより、例えば、ストレージ装置300Aはデータの格納のみ、ストレージ装置300Bはスナップショットデータのみを格納し、用途を分けることが可能となり、特定のストレージ装置のVDMの分析による性能の影響を別のストレージ装置に与えないようにすることが可能となる。
 また、実施例2によれば、複数のストレージ装置300に複数のSSVOLを配置することで複数のストレージ装置300に複数の分析を分散できる。これにより、複数の分析の所要時間を短縮することが期待できる。
 なお、ストレージ装置300間のコピーは、分析グループ単位で行われてもよいし、分析グループに含まれるメタセット単位で行われてもよい。後者の場合、分析グループが参照するデータチャンク群の容量から、コピー対象メタセットが参照するデータチャンク群の容量が減算された値が、コピー元ストレージ装置300のキャッシュメモリ容量以下となれば、コピー対象とするメタセットの選択は終了してよい。
 <実施例2の変形例1>
 実施例2の変形例1では、分析終了後に(例えば図2の「(3)分析」の後に)、保存された情報(第2Sメタ82T、Cメタ83及び実データのうちの少なくとも1つ)をコピー先ストレージ装置から削除するか否かが判断される。例えば、或る検索鍵に適合するCメタ83が特定されてから規定時間内に同一検索鍵で同一Cメタ83が特定されれば、そのCメタ83、そのCメタ83が関連付いた第2Sメタ82T及びそれらに対応した実データはコピー先ストレージ装置から削除されないでよい。指定された検索鍵と、Cメタ特定時刻(Cメタ83が特定された時刻)は、特定されたCメタ83のCメタ管理情報1230のユーザ拡張123006に保存されてもよいし、他の場所に保存されてもよい。以下、具体例を説明する。
 図19のS6020において、Cスナッププログラム1291は、指定された検索鍵とCメタ83を特定した時刻とを、特定されたCメタ83のCメタ管理情報1230のユーザ拡張123006に登録する。特定したCメタ83のCメタ管理情報1230のユーザ拡張123006に、既に、同一検索鍵とコピー先ストレージ情報(コピー先ストレージ装置を表す情報、例えばストレージID)とが登録されている場合、そのユーザ拡張123006におけるCメタ特定時刻を更新する。Cスナッププログラム1291は、コピー先ストレージ情報を含んだCメタ83と、そのCメタ83が関連付けられた第1Sメタ82Sと、対応した実データとを、以降の処理で再度コピーしない。Cスナッププログラム1291は、コピー先ストレージ情報を含まないCメタ83等についてS5930以降の処理を実施し、コピーの際に、コピー先ストレージ情報をコピー対象のCメタ83のユーザ拡張123006に追記する。
 また、管理プログラム112が、定期的に、各ストレージ装置300のCメタ管理情報1230を調べ、最後のCメタ特定時刻から規定時間(固定値でもユーザ設定値でも可)以上経過したCメタ83と、そのCメタ83が関連付けられた第2Sメタ82Tと、それに対応する実データ及びSSVOL26Sとを、ストレージ装置300から削除し、且つ、コピー元のCメタ83のユーザ拡張123006から検索鍵、Cメタ特定時刻及びコピー先ストレージ情報を削除する。
 以上の処理により、コピー先ストレージ装置に保存されたCメタ83等が使用されないまま残ってしまうことを回避でき、一方で、繰り返し分析で利用するCメタ83等はコピー先ストレージ装置300に残るためコピー不要にできる。
 <実施例2の変形例2>
 実施例2の変形例2では、コピー所要時間の予測においてコピー先ストレージ装置が選択され複数の分析の前にSSVOLがコピー先ストレージ装置に用意されることに代えて、ストレージ装置300が、分析グループに対応する複数の分析を並列に実行しながら性能管理テーブル1270を監視し、リソース枯渇が生じたときに、分析グループに対応する複数の分析のうちの未実施の分析に対応したCメタ83等を別ストレージ装置300にコピーする。「リソース枯渇」とは、リソースの性能値が閾値に達したこと(例えば、キャッシュメモリ利用率やCPU利用率が閾値に達したこと)を意味する。また、複数の分析が並列に実施されても、全ての分析が同時に開始されるとは限らない。
 変形例2では、例えば次の処理が行われる。すなわち、図18のS5920及びS5930は実施されない。S5940が実施される。ストレージコントローラ329は、図15の処理により提示された分析グループに対応する複数のSSVOL26S(VDM)を使用した複数の分析を並列に実施する。分析中に、管理プログラム112が、定期的に性能管理テーブル1270をチェックし、リソース枯渇が発生したか否かを判断する。リソース枯渇が発生が検出され、且つ、複数の分析のうち未実施の分析に対応したSSVOLがあれば、ストレージコントローラ329は、未実施の分析のうち、重複度が高い第2Sメタ82T等から順に別ストレージ装置にコピーする。コピーする処理の一連の流れは、図18のS5950以降と同じでよい。
 変形例2によれば、ストレージ装置300の複数のSSVOL26Sを使用した複数の分析が並列に実行され、リソース枯渇が発生した場合にのみ、未実施の分析に対応したSSVOL26S等が別ストレージ装置300にコピーされる。
 以上、幾つかの実施例及び変形例を説明したが、本発明は、それらの実施例及び変形例に限定されるものでなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
 例えば、上述した実施例及び変形例のうちの任意の2以上の例を組み合わせることが可能である。
 また、上述した実施例及び変形例では、データ処理システムの一例がストレージシステムであるが、データ処理システムは、ストレージシステム、ホストシステム及び管理システムのうちの少なくとも1つに該当してもよい。例えば、ホストシステムがデータ処理システムに該当する場合、ホストシステムに対して検索鍵を指定した検索要求を送信する要求元はクライアントシステム(1以上のクライアント計算機)であってもよい。
 また、上述した実施例及び変形例では、Sメタ82だけでなくCメタ83もストレージシステムに存在するが、Cメタ83は、ストレージシステムに代えて又は加えてホストシステム又は管理システムに存在してもよい。具体的には、例えば、同一オブジェクト(同一データチャンク81)について、ユーザ毎に(例えばホストシステム毎に又は管理システム毎に)、Cメタ83が作成され、Cメタ83は、そのCメタ83に対応したユーザのホストシステム又は管理システムに提供されてよい。ホストシステム又は管理システムがユーザから検索条件の指定を受けた場合、ホストシステム又は管理システム内のプロセッサが、そのユーザに対応するCメタ83のうちその検索条件に適合するCメタ83をホストシステム又は管理システムから探してよい。ホストシステム又は管理システムは、Cメタ83が見つかった場合、そのCメタ83が参照するSメタ82が属するSSVOLの作成をストレージシステムに要求してもよい。その要求に応答して、ストレージシステムが、Cスナップ処理を実行してもよい。
 また、Cメタ83は、ユーザ毎に存在してもよい。例えば、同一のデータチャンク81について、ユーザAの抽出プログラム1290により作成されたCメタ83は、ユーザA用のCメタ83として保存され、ユーザBの抽出プログラム1290により作成されたCメタ83は、ユーザB用のCメタ83として保存されてよい。ユーザAから検索要求を受けた場合、ストレージコントローラ329(Cスナッププログラム1291)は、検索要求で指定された検索鍵と要求元のユーザAとに適合するCメタ83を探してよい。また、Cスナッププログラム1291として、ユーザAのCスナッププログラム1291が存在する場合、ユーザAのCスナッププログラム1291が、ユーザAからの検索要求で指定された検索鍵とユーザAとに適合するCメタ83を探してよい。
 また、Cスナップ処理は、Cスナップ処理を開始すると定義付けられた所定のイベントであるCスナップイベントが検出されたときに開始されてよい。Cスナップイベントは、ユーザ要求(例えば、Cスナップ処理の明示的な要求、又は、Cスナップ処理の実行が定義づけられた要求)を受信したこと、予め定義された時刻になったこと(例えば定期的にCスナップ処理の実行が開始される)、及び、Cスナッププログラム1291を実行するプロセッサの負荷が所定値未満になった等の所定の性能状況(性能に関する状況)のいずれであってもよい。例えば、ストレージコントローラ329が、管理計算機100及びホスト計算機200のうちの少なくとも1つからユーザ要求を受信し、そのユーザ要求に応答してCスナップ処理を実行してよい。
 また、ユーザプログラム(例えば、抽出プログラム1290、Cスナッププログラム1291、及び重複チェックプログラム1292のうちの少なくとも1つ)は、管理計算機100、ホスト計算機200、及びストレージコントローラ329のうちのいずれで実行されてもよい。
 また、SSVOL26S(VDM)は、定期的に又は不定期的に更新されてよい。例えば、Cスナッププログラム1291が、既存のSSVOL26Sに属する第2Sメタ82Tに関連付いたCメタ83が表すコンテンツ属性と同じコンテンツ属性を表すCメタ83を特定し、そのCメタ83が参照する第1Sメタ82Sを複製することにより新たに第2Sメタ82Tを作成し、その新たな第2Sメタ82Tを既存のSSVOL26Sに新たに関連付けてもよい。
 また、オブジェクトの一例として、ファイルが採用されてよい。ファイルのデータが、オブジェクト内のデータチャンクの一例でよく、ファイルのメタデータが、オブジェクトのSメタの一例でよい。
 また、データVOLは、データ領域の一例でよく、SSVOLは、データ領域内の一部の非構造データを参照するスナップショットの一例でよい。
 また、抽出処理では、非構造化データソースからのデータ抽出に代えて又は加えて、第1Sメタ82Sを参照して検索条件に適合するか否かが判断されてもよい。その判断結果が真の場合、第1Sメタ82Sに基づき上述のCメタ83が作成され、そのCメタ83が、検索条件に適合した第1Sメタ82Sに関連付けられてもよい。また、この場合、検索条件に適合した第1Sメタ82Sから参照される1以上のデータチャンク81が、該当する非構造化データの一例でよい。
300:ストレージ装置

Claims (15)

  1.  複数の非構造化データを含んだ非構造化データソースへのアクセスのためのインターフェースを含んだ1以上のインターフェースであるインターフェース部と、
     1以上のメモリを含んだ記憶部と、
     前記インターフェース部及び記憶部に接続された1以上のプロセッサであるプロセッサ部と
    を有し、
     少なくとも1つの非構造化データの第1種メタデータに、その非構造化データの1以上のコンテンツ属性を表すコンテンツ情報を含んだメタデータである第2種メタデータが関連付けられ、
     1以上の非構造化データの各々について、その非構造化データを参照する2以上の第1種メタデータが、
      その非構造化データのオリジナルのメタデータである第1の第1種メタデータと、
      検索条件に適合した第2種メタデータが関連付けられた第1の第1種メタデータの複製に基づくメタデータである第2の第1種メタデータと
    を含み、
     前記プロセッサ部は、並列に使用されることが推奨される複数の仮想ボリュームに関わる情報である推奨情報を表示し、
     前記複数の仮想ボリュームには、複数の検索条件の少なくとも1つに適合する複数の第2種メタデータが関連付いている複数の第1種メタデータの1又は複数の重複度に基づく2以上の第2の第1種メタデータが関連付けられ、
     前記1又は複数の重複度の各々は、少なくとも2つの第1種メタデータにそれぞれ対応した少なくとも2つの参照先の重複部分のデータ量に従う値である、
    データ処理システム。
  2.  前記複数の仮想ボリュームに関連付けられた前記2以上の第2の第1種メタデータは、それぞれが閾値以上である1以上の重複度に基づく2以上の第2の第1種メタデータである、
    請求項1記載のデータ処理システム。
  3.  前記2以上の第2の第1種メタデータの参照先のデータ量のうちの少なくとも重複部分のデータ量が、前記非構造化データソースに対して読み書きされるデータが一時的に格納されるキャッシュ領域の容量を超えている場合、前記複数の仮想ボリュームは、それぞれが前記閾値未満である1以上の重複度に基づく2以上の第2の第1種メタデータが関連付けられた複数の仮想ボリュームである、
    請求項2記載のデータ処理システム。
  4.  前記複数の仮想ボリュームが、前記非構造化データソースを提供する第1ストレージ装置と、前記第1ストレージ装置に接続された1以上の第2ストレージ装置とのうちの少なくとも1つから提供される、
    請求項1記載のデータ処理システム。
  5.  前記複数の仮想ボリュームのうち、前記1以上の第2ストレージ装置のうちのいずれかの第2ストレージ装置から提供された仮想ボリュームは、その第2のストレージ装置に前記第1のストレージ装置からコピーされた第2の第1種メタデータが関連付けられた仮想ボリュームである、
    請求項4記載のデータ処理システム。
  6.  前記第1ストレージ装置が、前記非構造化データソースに対して読み書きされるデータが一時的に格納されるキャッシュ領域を有しており、
     前記プロセッサ部が、
      前記1又は複数の重複度に基づく前記2以上の第2の第1種メタデータに対応した参照先のデータ量のうちの少なくとも重複部分のデータ量、又は、前記1又は複数の重複度に基づく2以上の第1の第1種メタデータに対応した参照先のデータ量のうちの少なくとも重複部分のデータ量が、前記キャッシュ領域の容量以下か否かを判断し、
      前記判断の結果に応じたメタデータコピー処理を実行する、
    請求項5記載のデータ処理システム。
  7.  前記判断の結果が真の場合、前記メタデータコピー処理は、該当する第1種メタデータと、それに関連付いている第2種メタデータのみを、前記第1ストレージ装置から前記1以上の第2ストレージ装置にコピーする処理である、
    請求項6記載のデータ処理システム。
  8.  前記判断の結果が偽の場合、前記メタデータコピー処理は、該当する第1種メタデータと、それに関連付いている第2種メタデータとに加えて、それらのメタデータに対応した非構造化データを、前記第1ストレージ装置から前記1以上の第2ストレージ装置にコピーする処理である、
    請求項6記載のデータ処理システム。
  9.  前記プロセッサ部が、前記1以上の第2ストレージ装置におけるコピーされた第2種メタデータがいずれかの検索条件に適合した最新時刻からの経過時間に基づき、その第2種メタデータを含むコピーされた情報を前記1以上の第2ストレージ装置から削除するか否かを決定する、
    請求項5記載のデータ処理システム。
  10.  前記プロセッサ部が、前記複数の仮想ボリュームを使用する複数の処理を並列に実行している間、前記第1ストレージ装置のリソースが枯渇した場合、前記複数の処理のうちの未実行の処理が使用する仮想ボリュームに関わる第1種メタデータ及び第2種メタデータを前記1以上の第2ストレージ装置にコピーする、
    請求項5記載のデータ処理システム。
  11.  前記プロセッサ部は、
      ユーザから指定された検索条件に適合する1以上の第2種メタデータを検索し、
      見つかった1以上の第2種データが関連付けられている1以上の第1の第1種メタデータを特定し、
      前記特定した1以上の第1の第1種メタデータをそれぞれ複製し、
      前記複製により得られた1以上の第2の第1種メタデータが関連付けられ前記ユーザに対して提供される仮想ボリュームを生成する、
    請求項1記載のデータ処理システム。
  12.  前記推奨情報は、1又は複数のグループのうちの1以上のグループであって前記複数の仮想ボリュームに関わる1以上のグループに関する情報であり、
     前記1又は複数のグループの各々は、前記プロセッサ部により構築されたグループであり、それぞれが所定の条件を満たす1以上の重複度を有する2以上の第1種メタデータを含む、
    請求項1記載のデータ処理システム。
  13.  前記プロセッサ部は、下記(x)と(y)とのうちの少なくとも1つを、前記非構造化データソースを提供するストレージ装置のスペックと性能とのうちの少なくとも1つに基づき絞り込む、
      (x)前記推奨情報に関連付けられるグループ、
      (y)前記1又は複数のグループのうちの少なくとも1つのグループに含まれる第1種メタデータ、
    請求項1記載のデータ処理システム。
  14.  要求を受信し、
     前記要求に応答して、並列に使用されることが推奨される複数の仮想ボリュームに関わる情報である推奨情報を表示し、
     非構造化データソースに含まれている複数の非構造化データのうちの少なくとも1つの非構造化データの第1種メタデータに、その非構造化データの1以上のコンテンツ属性を表すコンテンツ情報を含んだメタデータである第2種メタデータが関連付けられ、
     1以上の非構造化データの各々について、その非構造化データを参照する2以上の第1種メタデータが、
      その非構造化データのオリジナルのメタデータである第1の第1種メタデータと、
      検索条件に適合した第2種メタデータが関連付けられた第1の第1種メタデータの複製に基づくメタデータである第2の第1種メタデータと
    を含み、
     前記複数の仮想ボリュームには、複数の検索条件の少なくとも1つに適合する複数の第2種メタデータが関連付いている複数の第1種メタデータの1又は複数の重複度に基づく2以上の第2の第1種メタデータが関連付けられ、
     前記1又は複数の重複度の各々は、少なくとも2つの第1種メタデータにそれぞれ対応した少なくとも2つの参照先の重複部分のデータ量に従う値である、
    データ処理方法。
  15.  (a)要求を受信し、
     (b)前記要求に応答して、並列に使用されることが推奨される複数の仮想ボリュームに関わる情報である推奨情報を表示する、
      非構造化データソースに含まれている複数の非構造化データのうちの少なくとも1つの非構造化データの第1種メタデータに、その非構造化データの1以上のコンテンツ属性を表すコンテンツ情報を含んだメタデータである第2種メタデータが関連付けられ、
      1以上の非構造化データの各々について、その非構造化データを参照する2以上の第1種メタデータが、
        その非構造化データのオリジナルのメタデータである第1の第1種メタデータと、
        検索条件に適合した第2種メタデータが関連付けられた第1の第1種メタデータの複製に基づくメタデータである第2の第1種メタデータと
    を含み、
      前記複数の仮想ボリュームには、複数の検索条件の少なくとも1つに適合する複数の第2種メタデータが関連付いている複数の第1種メタデータの1又は複数の重複度に基づく2以上の第2の第1種メタデータが関連付けられ、
      前記1又は複数の重複度の各々は、少なくとも2つの第1種メタデータにそれぞれ対応した少なくとも2つの参照先の重複部分のデータ量に従う値であり、
    (a)及び(b)をコンピュータに実行させるコンピュータプログラムを記録したコンピュータ読取り可能な記録媒体。
PCT/JP2016/060192 2016-03-29 2016-03-29 データ処理システム及びデータ処理方法 WO2017168578A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US15/736,190 US20180165380A1 (en) 2016-03-29 2016-03-29 Data processing system and data processing method
PCT/JP2016/060192 WO2017168578A1 (ja) 2016-03-29 2016-03-29 データ処理システム及びデータ処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2016/060192 WO2017168578A1 (ja) 2016-03-29 2016-03-29 データ処理システム及びデータ処理方法

Publications (1)

Publication Number Publication Date
WO2017168578A1 true WO2017168578A1 (ja) 2017-10-05

Family

ID=59963658

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2016/060192 WO2017168578A1 (ja) 2016-03-29 2016-03-29 データ処理システム及びデータ処理方法

Country Status (2)

Country Link
US (1) US20180165380A1 (ja)
WO (1) WO2017168578A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10817540B2 (en) 2016-09-02 2020-10-27 Snowflake Inc. Incremental clustering maintenance of a table
CN111857602B (zh) * 2020-07-31 2022-10-28 重庆紫光华山智安科技有限公司 数据处理方法、装置、数据节点及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000348061A (ja) * 1998-06-10 2000-12-15 Nippon Telegr & Teleph Corp <Ntt> 半構造化文書情報統合検索装置および半構造化文書情報抽出装置、その方法、ならびにそのプログラムを格納する記録媒体
JP2003316783A (ja) * 2002-04-24 2003-11-07 Nippon Telegr & Teleph Corp <Ntt> 異種半構造化情報源統合検索装置、方法、プログラム及び該プログラムを記録した記録媒体
JP2012212389A (ja) * 2011-03-31 2012-11-01 Hitachi Solutions Ltd 情報処理システム、バックアップ管理方法、及びプログラム
JP2015515034A (ja) * 2012-04-25 2015-05-21 株式会社日立製作所 ファイルストレージシステムとファイルクローニング方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000348061A (ja) * 1998-06-10 2000-12-15 Nippon Telegr & Teleph Corp <Ntt> 半構造化文書情報統合検索装置および半構造化文書情報抽出装置、その方法、ならびにそのプログラムを格納する記録媒体
JP2003316783A (ja) * 2002-04-24 2003-11-07 Nippon Telegr & Teleph Corp <Ntt> 異種半構造化情報源統合検索装置、方法、プログラム及び該プログラムを記録した記録媒体
JP2012212389A (ja) * 2011-03-31 2012-11-01 Hitachi Solutions Ltd 情報処理システム、バックアップ管理方法、及びプログラム
JP2015515034A (ja) * 2012-04-25 2015-05-21 株式会社日立製作所 ファイルストレージシステムとファイルクローニング方法

Also Published As

Publication number Publication date
US20180165380A1 (en) 2018-06-14

Similar Documents

Publication Publication Date Title
US11003476B2 (en) Entity database historical data
US10241907B2 (en) DBMS storage management for non-volatile memory
JP5154200B2 (ja) データ読出し方法、データ管理システム及びストレージシステム
US20170371750A1 (en) Method and apparatus for restoring data from snapshots
US8856079B1 (en) Application programming interface for efficient object information gathering and listing
US8103628B2 (en) Directed placement of data in a redundant data storage system
US10942814B2 (en) Method for discovering database backups for a centralized backup system
US9582213B2 (en) Object store architecture for distributed data processing system
JP4741371B2 (ja) システム、サーバ装置及びスナップショットの形式変換方法
US8346788B1 (en) Techniques for mapping data models using an intermediate processing layer
US20110060940A1 (en) N+1 failover and resynchronization of data storage appliances
US9075755B1 (en) Optimizing data less writes for restore operations
US9047169B1 (en) Resizing snapshot mount points
US11250022B1 (en) Offline index builds for database tables
US8224879B2 (en) Management system and management method for storage system
US9063892B1 (en) Managing restore operations using data less writes
US20200073584A1 (en) Storage system and data transfer control method
CN109947730A (zh) 元数据恢复方法、装置、分布式文件系统及可读存储介质
US9158828B1 (en) Techniques using associated object properties
WO2017156855A1 (en) Database systems with re-ordered replicas and methods of accessing and backing up databases
WO2017168578A1 (ja) データ処理システム及びデータ処理方法
JP6585283B2 (ja) データ処理システム及びデータ処理方法
US9870152B2 (en) Management system and management method for managing data units constituting schemas of a database
Tate et al. IBM Real-time Compression in IBM SAN Volume Controller and IBM Storwize V7000
JP7458610B2 (ja) データベースシステム、及びクエリ実行方法

Legal Events

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

Ref document number: 15736190

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

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

Ref document number: 16896798

Country of ref document: EP

Kind code of ref document: A1

122 Ep: pct application non-entry in european phase

Ref document number: 16896798

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP