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

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

Info

Publication number
WO2017168499A1
WO2017168499A1 PCT/JP2016/059846 JP2016059846W WO2017168499A1 WO 2017168499 A1 WO2017168499 A1 WO 2017168499A1 JP 2016059846 W JP2016059846 W JP 2016059846W WO 2017168499 A1 WO2017168499 A1 WO 2017168499A1
Authority
WO
WIPO (PCT)
Prior art keywords
meta
data
unstructured data
metadata
type metadata
Prior art date
Application number
PCT/JP2016/059846
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/739,028 priority Critical patent/US10685046B2/en
Priority to PCT/JP2016/059846 priority patent/WO2017168499A1/ja
Priority to JP2018507826A priority patent/JP6585283B2/ja
Publication of WO2017168499A1 publication Critical patent/WO2017168499A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • 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/25Integrating or interfacing systems involving database management systems
    • G06F16/254Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0873Mapping of cache memory to specific storage devices or parts thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • 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/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1056Simplification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/25Using a specific main memory architecture
    • G06F2212/251Local memory within processor subsystem
    • G06F2212/2515Local memory within processor subsystem being configurable for different purposes, e.g. as cache or non-cache memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/26Using a specific storage system architecture
    • G06F2212/261Storage comprising a plurality of storage devices
    • G06F2212/262Storage comprising a plurality of storage devices configured as RAID
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/312In storage controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/46Caching storage objects of specific type in disk cache
    • G06F2212/466Metadata, control data

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.
  • DM data mart
  • Patent Document 1 discloses a technique that enables data replication in a short time by showing source data as virtually replicated snapshot data to a host computer.
  • Patent Document 1 it is necessary to specify an address of a data source such as a source volume in order to show snapshot data to the host computer. It is difficult to apply such a snapshot creation technique requiring addressing to a process of creating a DM from an unstructured data source (for example, a source storing a large amount of unstructured data).
  • 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.
  • the first type metadata is associated with the unstructured data included in the unstructured data source.
  • the data processing system executes the extraction process.
  • the extraction process for each corresponding unstructured data in the unstructured data source, (a) the second type metadata which is metadata including content information representing one or more content attributes of the unstructured data And (b) associating the created second type metadata with the first type metadata of the unstructured data.
  • Non-referenced by the first type metadata associated with the second type metadata that meets the condition among the plurality of second type metadata associated with the plurality of first type metadata of the plurality of unstructured data A virtual data set composed of structured data can be created. For this reason, it is expected that a data set can be created in a short time.
  • Example 1 An outline of an example of a series of processes including a C snap process and processes before and after the C snap process will be described.
  • 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.
  • summary of Example 4 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).
  • 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 200P executes the business application 211B
  • 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 data including at least one in the object.
  • the “unstructured data” may be a concept including so-called semi-structured data.
  • one or more data chunks included in one object may be referred to as “data chunk unit” or “object data”.
  • the “unstructured data” may be each data chunk in the object, a part of the data chunk, or a data chunk unit (object data).
  • 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 units (all data chunks 81) included in the object.
  • the S meta ID (object ID) and each data chunk 81 included in the corresponding object are stored. Information indicating the storage location.
  • 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 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 metadata based on the copy of the first S meta 82S, is the same as the first S meta 82. 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 is asynchronous with the search request 42 from the analysis application 211A (host computer 200A) (for example, before the C snap is started in response to the search request 42).
  • C meta # 1 and # 2 corresponding to the data chunks # 1 and # 2 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 refers to the data chunk # 1
  • the C meta # 2 refers to the first S meta # 2 that refers to the data chunk # 2.
  • the storage controller 329 starts C snap in response to the search request 42.
  • 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 and # 2 for a C meta 83 that matches the search condition specified in the search request 42. 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 ′ based on a copy of the first S meta # 1 referred to by the C meta # 1, and the SSVOL 26S (VDM to which the second S meta # 1 ′ belongs. ).
  • the storage controller 392 provides the SSVOL 26S to at least the host computer 200A (the transmission source of the search request 42) among the one or more host computers 200.
  • the analysis application 211A (host computer 200A) can perform analysis using the data chunk 81 referred to by the second S meta # 1 ′ belonging to the SSVOL 26S.
  • the access state (access restriction) of the data chunk 81 referred to by the SSVOL 26S 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 impossible) may be adopted.
  • the access state of the SSVOL 26S may be “RO”. Thereby, it is possible to maintain data consistency among the plurality of host computers 200.
  • V2 When the provision destination of the SSVOL 26S is only the host computer 200A, the access state of the SSVOL 26S may be “R / W”.
  • the host computer 200A can customize the SSVOL 26S.
  • the storage controller 392 receives a write request designating the SSVOL 26S, the storage controller 392 may store a data chunk associated with the write request in the pool.
  • the C snap processing is expected to be completed in a short time because the data chunk 81 does not need to be copied.
  • 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 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, and a C snap program 1291.
  • 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. At least one of the extraction program 1290 and the C snap program 1291 may be a user program that is a program created by the user. That is, at least one of the extraction program 1290 and the C snap program 1291 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 may be executed.
  • At least one of the extraction program 1290 and the C snap program 1291 is a user program
  • at least one of the C meta 83 and the SSVOL 26S (VDM) that can obtain a desired analysis result by a user (for example, an analyst) I can expect.
  • 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. 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 122005 and 122006, 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 122005 and 122006 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 122005 and 122006.
  • 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 1290R executes 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 S meta 82 that refers 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).
  • the C snap is a process of screening data that matches the search condition specified in the specified route (VOL) with reference to the C meta 83 associated with the S meta 82 in the extraction process.
  • 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 data chunks 81 in the route specified by ⁇ target route ID> are narrowed down to data chunks 81 that match the search key (search condition) specified by ⁇ search key>.
  • One or more S metas 82 that refer to the one or more data chunks 81 that have been narrowed down are 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 S meta 82 corresponding to the route ID designated 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 S meta 82, C snap (snap acquisition) is performed.
  • SSVOL26S is created based on the copy of the S meta 82 obtained in the C snap (selection). By providing the SSVOL 26S to the host computer 200, 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 the copy destination route ID (ID of SSVOL26S) designated by the user as the route ID 1251 to the storage management table 1250, and adds the copy of the S meta 82 to the route ID 1251.
  • the pointer 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 # 1-1 to # 1-3 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.
  • 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.
  • FIG. 16 shows an outline of the second embodiment.
  • the storage system according to the second embodiment includes a plurality of storage apparatuses 300X and 300A to 300C.
  • one virtual storage system is configured by the storage apparatuses 300X, 300A to 300C. That is, the storage system according to the present embodiment may be a virtual storage system.
  • the number of storage apparatuses 300 is not limited to the example shown in FIG.
  • the storage apparatus 300X has a data VOL 26D as a data source.
  • SSVOLs 26S (# 1-1 to # 1-3) that refer to at least one data chunk in the data VOL 26D are generated in the storage devices 300A to 300C, respectively. That is, the C snap process is performed across a plurality of storage apparatuses 300.
  • the storage apparatus 300A receives a search request in which the route of the data VOL 26D is specified
  • the storage apparatus 300X searches the storage apparatus 300X for a C meta 83 that matches the search key specified in the search request,
  • the first S meta # 1 associated with the found C meta 83 is copied to the storage apparatus 300A.
  • the storage apparatus 300A provides the host computer 200A with SSVOL # 1-1 corresponding to the route to which the second S meta # 1-1 based on the copy of the first S meta # 1 belongs.
  • FIG. 17 shows an outline of the scale-out process.
  • FIG. 17 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 (74A) 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 100A, 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.
  • the C snap process is performed across a plurality of storage apparatuses 300.
  • the storage apparatus 300X can store only the data VOL 26D (data chunk), and the storage apparatus 300A can store only the SSVOL 26S (snapshot data), and can be used for different purposes. It becomes possible to prevent the influence of the performance by the analysis using the DM (SSVOL # 1-2) of the storage apparatus 300B from being given to the other storage apparatus 300C.
  • FIG. 18 shows an outline of the third embodiment.
  • the storage system according to the third embodiment includes storage devices 300A and 300B that exist in a plurality of bases A and B, respectively, and a storage device 300X that exists in a central data center.
  • the number of bases and the number of storage apparatuses 300 are not limited to the example shown in FIG.
  • each of the storage apparatuses 300A and 300B executes an extraction process
  • the storage apparatus 300X executes a C snap process.
  • the bases A and B each have one or more IoT devices 86A and 82B (IoT: Internet of Things).
  • IoT device means a device capable of exchanging the state and control of the sensor included in the device and the device itself via the network.
  • the host computers 200X and Y can access the storage device 300X in the central data center.
  • the storage apparatus 300A receives the sensor information of the IoT device 86A, the device status information, and the like via the network.
  • the storage apparatus 300A that has received the information stores one or more data chunks including the information in a data VOL (an example of a first unstructured data source) (not shown).
  • the storage apparatus 300A executes an extraction process including a process of creating one or more C metas from one or more data chunks.
  • the storage apparatus 300A deletes data that is not necessary at the time of analysis (for example, information that has failed to be acquired, sensor information that includes a value that is sufficiently small to be ignored, stable device status, etc.). However, it may be excluded from the target of remote copy described later.
  • the storage apparatus 300A transfers one or more data chunks and one or more C meta corresponding to the data chunk to the storage apparatus 300X of the central data center (remote copy).
  • the storage apparatus 300X that has received the data chunk and the C meta stores the data chunk in the data VOL 26D (an example of the second unstructured data source), and stores the C meta in the local memory.
  • the storage apparatus 300X receives a search request specifying the data VOL 26D from the host computers 200X and 200Y, the storage apparatus 300X executes C snap processing. That is, the storage apparatus 300X generates the second S meta # 1-1 and # 1-2 by duplicating the first S meta # 1 associated with the C meta that matches the search key, and the second S meta # 1- SSVOL # 1-1 and # 1-2 to which 1 and # 1-2 respectively belong are provided to the host computers 200X and 200Y, respectively.
  • the storage apparatus 300A receives information such as the sensor of the IoT device 86A, and the storage apparatus 300A extracts the content information to create the C meta, and the data chunk At the same time, the C meta is transferred to the storage apparatus 300X of the central data center.
  • This makes it possible to avoid extraction processing in the storage apparatus 300X in the central data center. That is, in the storage apparatus 300X, it is possible to reduce the load of extraction processing for a large amount of data chunks including information generated from the IoT device 86.
  • the base storage apparatus 300A thins out data that cannot be analyzed, and transfers the data chunk and C meta to the storage apparatus 300X in the central data center. Thereby, the load of the C snap processing of the storage apparatus 300X and the total amount of data stored in the storage apparatus 300X can be reduced.
  • FIG. 9 shows an outline of the fourth embodiment.
  • SCM Storage Class Memory 943
  • Each of the host computer 200 and the storage apparatus 300 can use the SCM 943 to which the memory area of the host computer 200 and the memory area of the storage apparatus 300 are allocated as if it were its own memory. Therefore, for example, the C snap program 1291 is executed by the host computer 200, and the C snap program 1291 can search for the C meta that matches the search key from the C meta in the SCM 943.
  • 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 may exist in the host system or the management system instead of or in addition to the storage system.
  • 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.
  • the processor unit 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 and the C snap program 1291) may be executed by any of the management computer 100, the host computer 200, and the storage controller 329.
  • 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.

Abstract

非構造化データソースに含まれている非構造化データには、第1種メタデータが関連付けられている。データ処理システムが、抽出処理を実行する。抽出処理は、非構造化データソース内の該当する非構造化データ毎に、(a)その非構造化データの1以上のコンテンツ属性を表すコンテンツ情報を含んだメタデータである第2種メタデータを作成することと、(b)その作成された第2種メタデータを、その非構造化データの第1種メタデータに関連付けることと、を含む。

Description

データ処理システム及びデータ処理方法
 本発明は、概して、データ処理に関する。
 ストレージシステムにより管理されているデータは、検索及び分析等の様々な用途に使用し得る。
 例えば、ビックデータ分析では、特に、ファイルなど保存構造が定まっていない非構造化データに対する分析が、業務における新たな知見や気づきを得る有用な方法として期待されている。このビックデータ分析では、大量のデータを対象に分析を行うことで検索に時間がかかり、分析完了までに多大な時間を要してしまうことを防ぐため、大量のデータから分析に必要なデータのみの集合を作成することがある。必要なデータのみの集合を「データマート」(以下、DM)と呼び、当該データ集合の作成を「DM作成処理」という。
 ビッグデータ分析では、一般に、DM作成処理に多大な時間を要する。これは、大量のデータからデータ分析に必要なデータを複製(抽出)しDMに格納する処理に時間を要するためである。特許文献1は、ソースデータを仮想的に複製されたスナップショットデータとしてホスト計算機に示すことで短時間にデータの複製を可能とする技術を開示している。
US5819292
 しかし、特許文献1に開示の技術では、スナップショットデータをホスト計算機に示すために、ソースボリュームのようなデータソースのアドレスを指定する必要がある。このようなアドレス指定を必要とするスナップショット作成技術を、非構造化データソース(例えば大量の非構造化データを格納したソース)からDMを作成する処理に適用することは困難である。
 このような課題は、非構造化データソースから分析を目的としてDMを作成する処理に限らず、分析以外の用途のために非構造化データソースからデータ集合(部分集合)を作成する処理についてもあり得る。
 非構造化データソースに含まれている非構造化データには、第1種メタデータが関連付けられている。データ処理システムが、抽出処理を実行する。抽出処理は、非構造化データソース内の該当する非構造化データ毎に、(a)その非構造化データの1以上のコンテンツ属性を表すコンテンツ情報を含んだメタデータである第2種メタデータを作成することと、(b)その作成された第2種メタデータを、その非構造化データの第1種メタデータに関連付けることと、を含む。
 複数の非構造化データの複数の第1種メタデータに関連付けられた複数の第2種メタデータのうち条件に適合する第2種メタデータに関連付いた第1種メタデータにより参照される非構造化データで構成された仮想的なデータ集合を作成できる。このため、短時間でデータ集合を作成できることが期待される。
実施例1の概要を示す。 Cスナップ処理とその前後の処理とを含んだ一連の処理の一例の概要を示す。 実施例1に係る計算機システムのブロック図である。 スナップショット処理の一例を示す。 ストレージ管理テーブルの構成を示す。 1つのSメタに含まれるSメタ管理情報及びSメタ属性情報の構成を示す。 1つのCメタに含まれるCメタ管理情報の構成を示す。 コピーペア管理テーブルの構成を示す。 実施例4の概要を示す。 データリード処理のフローチャートである。 データライト処理のフローチャートである。 抽出処理のフローチャートである。 Cスナップ(選別)のフローチャートである。 Cスナップ(スナップ取得)のフローチャートである。 1つのデータVOLと複数のスナップショットVOL(仮想DM)との関係の一例を示す。 実施例2の概要を示す。 スケールアウト処理の概要を示す。 実施例3の概要を示す。
 以下、図面を参照して、幾つかの実施例を説明する。
 なお、以下の説明では、「インターフェース部」は、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を実行する。例えば、ホスト計算機200Pは、業務アプリ211Bを実行し、ホスト計算機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つのオブジェクトに含まれる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は、オブジェクトに含まれるデータチャンクユニット(全てのデータチャンク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メタ82と完全には一致しないこともある。第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)からの検索要求42とは非同期に(例えば、検索要求42に応答してCスナップが開始される前に)、ストレージコントローラ329が、データVOL26D内のデータチャンク#1及び#2にそれぞれ対応したCメタ#1及び#2を作成してローカルメモリ1200に格納する。Cメタ#1は、データチャンク#1を参照する第1Sメタ#1を参照し、Cメタ#2は、データチャンク#2を参照する第1Sメタ#2を参照する。
 図1の例によれば、ストレージコントローラ329は、検索要求42に応答して、Cスナップを開始する。Cスナップ処理は、「Cスナップ(選別)」と、「Cスナップ(スナップ取得)」の2つに大別される。Cスナップ(選別)では、ストレージコントローラ329は、存在するCメタ#1及び#2から、検索要求42で指定されている検索条件に適合するCメタ83を探す。つまり、検索範囲が、データチャンク81ではなくCメタ83である。検索条件に適合した少なくとも1つのCメタ83が見つかった場合、Cスナップ(スナップ取得)が実行される。Cメタ#1が見つかったとする。Cスナップ(スナップ取得)では、ストレージコントローラ329は、Cメタ#1が参照する第1Sメタ#1の複製に基づく第2Sメタ#1´を作成し、第2Sメタ#1´が属するSSVOL26S(VDM)を作成する。ストレージコントローラ392は、SSVOL26Sを、1以上のホスト計算機200のうちの少なくともホスト計算機200A(検索要求42の送信元)に提供する。分析アプリ211A(ホスト計算機200A)は、SSVOL26Sに属する第2Sメタ#1´が参照するデータチャンク81を用いて分析を実行できる。なお、SSVOL26Sが参照するデータチャンク81のアクセス状態(アクセス制限)として、例えば、“R/W可”(リード及びライトのいずれも可)、“RO”(リードオンリー(リードのみ可))、及び、“R/W不可”(リード及びライトのいずれも不可)のいずれが採用されてもよい。例えば下記のうちの少なくとも1つが採用されてよい。
(V1)SSVOL26Sの提供先が複数のホスト計算機200の場合、SSVOL26Sのアクセス状態は“RO”とされてよい。これにより、複数のホスト計算機200間でデータの整合性を維持できる。
(V2)SSVOL26Sの提供先がホスト計算機200Aのみの場合、SSVOL26Sのアクセス状態は“R/W”とされてよい。これにより、ホスト計算機200AがSSVOL26Sをカスタマイズできる。例えば、ストレージコントローラ392は、SSVOL26Sを指定したライト要求を受けた場合、そのライト要求に付随するデータチャンクを、プールに格納してよい。
 以上の通り、Cスナップ処理は、データチャンク81の複製が不要のため、短時間で終了することが期待できる。
 以下、本実施例を詳細に説明する。
 図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、ストレージ管理テーブル1250及びコピーペア管理テーブル1260を記憶する。また、例えば、ローカルメモリ1200は、I/Oプログラム61、オブジェクトプログラム62、データ処理プログラム63、スナップショットプログラム64、抽出プログラム1290及びCスナッププログラム1291を記憶する。
 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スナップ処理を実行するプログラムである。抽出プログラム1290及びCスナッププログラム1291のうちの少なくとも1つが、ユーザにより作成されたプログラムであるユーザプログラムでよい。つまり、抽出プログラム1290及びCスナッププログラム1291のうちの少なくとも1つが、ユーザ毎に存在し、ホスト計算機200のユーザに対応した抽出プログラム1290及びCスナッププログラム1291のうちの少なくとも1つが実行されてよい。抽出プログラム1290及びCスナッププログラム1291のうちの少なくとも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)を表す情報である。
 以下、実施例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を、取得されたアドレス122005及び122006が表す開始アドレス及び終了アドレスに変換し、変換後の共通要求を、データ処理プログラム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を取得し、これらのアドレス122005及び122006が表す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を、当該取得したアドレス122005及び122006に置き換える。
 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の処理負荷が一定時間以上低い状態が続いた時点等で、抽出プログラム1290Rがプロセッサ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を参照するSメタ82に関連付ける(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スナップ(選別)は、抽出処理でSメタ82に関連付けられたCメタ83を参照して、指定されたルート(VOL)に指定された検索条件に適合するデータを選別する処理である。Cスナッププログラム1291は、本実施例では、ストレージ装置300で動作するが、管理計算機100及びホスト計算機200のいずれで動作しても構わない。
 Cスナップ処理の開始が、ユーザにより指示される。その指示を、Cスナッププログラム1291が受ける。指示形式は、例えば以下の通りである。
CSNAP <検索鍵> <対象ルートID> <コピー先ルートID> <オプション>
 上記指示形式の場合、<対象ルートID>で指定されたルート内のデータチャンク81が、<検索鍵>で指定された検索鍵(検索条件)に適合するデータチャンク81に絞り込まれる。絞り込んだ1以上のデータチャンク81を参照する1以上のSメタ82が、それぞれ、<コピー先ルート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に対応した全てのSメタ82に対してS5710を実施したか否かを判断する(S5750)。S5750の判断結果が偽の場合(S5750:No)、未処理のSメタ82についてS5710が行われる。S5750の判断結果が真の場合(S5750:Yes)、処理が終了する。少なくとも1つのSメタ82についてS5740が行われた場合、Cスナップ(スナップ取得)が実施される。
 <(2-2)Cスナップ(スナップ取得)>
 Cスナップ(選別)において得られたSメタ82の複製に基づき、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に、Sメタ82の複製へのポインタ1254を関連付ける(S5690)。スナップショットプログラム64は、そのコピー先ルートID(SSVOL26S)を、Cスナップの開始指示を出したユーザ(検索要求元のユーザ)のホスト計算機200に提供してよい。
 以上のように、ストレージ装置300におけるCスナップ処理では、Cスナップ(選別)において、ユーザから与えられた検索鍵に基づきスナップショット対象のデータチャンク(VDMに含められるデータチャンク)が選別され、Cスナップ(スナップ取得)において、選別されたデータチャンクを含んだSSVOL26S(VDM)が作成される。
 また、原理的に、1つのルートID(データVOL26D)について複数のコピー先ルートID(SSVOL26S)を作成することが可能である。具体的には、例えば、図15に例示するように、1つのデータVOL26Dについて、複数のSSVOL#1-1~#1-3を作成できる。
 また、Cスナップ処理後に、ホスト計算機200から、Cスナップ作成時に指定したコピー先ルートIDにアクセスすると、そのホスト計算機200からは、DM(SSVOL26S)が存在しているように見えるようになる。複数のSSVOL26Sが作成された場合は、例えば、観点の異なるDM(データマート)が作成されたように見える。
 実施例2を説明する。その際、実施例1との相違点を主に説明し、実施例1との共通点については説明を省略又は簡略する。これは、他の実施例についても同様である。
 図16は、実施例2の概要を示す。
 実施例2に係るストレージシステムは、複数のストレージ装置300X、300A~300Cから構成される。例えば、ストレージ装置300X、300A~300Cにより1つの仮想ストレージシステムが構成されている。つまり、本実施例に係るストレージシステムは、仮想ストレージシステムでよい。ストレージ装置300の数は図16に示す例に限られない。
 ストレージ装置300Xが、データソースとしてのデータVOL26Dを有する。ストレージ装置300A~300Cに、それぞれ、データVOL26D内の少なくとも1つのデータチャンクを参照するSSVOL26S(#1-1~#1-3)が生成される。つまり、Cスナップ処理が、複数のストレージ装置300に跨がって実施される。具体的には、例えば、ストレージ装置300Aが、データVOL26Dのルートが指定された検索要求を受けた場合、その検索要求で指定されている検索鍵に適合するCメタ83をストレージ装置300Xから探し、見つかったCメタ83に紐付いた第1Sメタ#1をストレージ装置300Aに複製する。ストレージ装置300Aは、第1Sメタ#1の複製に基づく第2Sメタ#1-1が属するルートに対応したSSVOL#1-1を、ホスト計算機200Aに提供する。
 ストレージ装置300間でCスナップ処理を行うためには、スケールアウト処理が必要となる。図17が、スケールアウト処理の概要を示す。図17には、ストレージ装置300X及び300Aが例示されている。ストレージ装置300X及び300Aには、それぞれ、スケールアウトプログラム74X及び74Aが追加されている。例えば、スケールアウトプログラム74X(74A)は、I/Oプログラム61X(61A)とオブジェクトプログラム62X(62A)間の連携を中継してよい。ストレージ装置300X及び300Aには、キャッシュメモリ1100X及び100Aがそれぞれ存在する。
 ここで、ストレージ装置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スナップ処理が実施される。これにより、例えば、ストレージ装置300XはデータVOL26D(データチャンク)の格納のみ、ストレージ装置300AはSSVOL26S(スナップショットデータ)のみを格納し、用途を分けることが可能となる。ストレージ装置300BのDM(SSVOL#1-2)を使用した分析による性能の影響を別ストレージ装置300Cに与えないようにすることが可能となる。
 図18は、実施例3の概要を示す。
 実施例3に係るストレージシステムは、複数の拠点A及びBにそれぞれ存在するストレージ装置300A及び300Bと、中央データセンタに存在するストレージ装置300Xとで構成されている。拠点の数及びストレージ装置300の数は図18に示す例に限られない。本実施例では、ストレージ装置300A及び300Bの各々が抽出処理を実行し、ストレージ装置300XがCスナップ処理を実行する。
 拠点A及びBには、それぞれ、1以上のIoTデバイス86A及び82Bが存在する(IoT:Internet of Things)。ここで、「IoTデバイス」とは、当該デバイスが具備するセンサやデバイス自身の状態や制御をネットワーク経由でやりとりできるデバイスを意味する。
 中央データセンタのストレージ装置300Xには、ホスト計算機200X及びYがアクセス可能である。
 本実施例では、例えば拠点Aにおいて、IoTデバイス86Aのセンサ情報やデバイスの状態情報等を、ストレージ装置300Aがネットワーク経由で受信する。情報を受信したストレージ装置300Aが、その情報を含んだ1以上のデータチャンクを、図示しないデータVOL(第1の非構造化データソースの一例)に格納する。ストレージ装置300Aが、1以上のデータチャンクから1以上のCメタを作成する処理を含んだ抽出処理を実行する。抽出処理では、ストレージ装置300Aは、分析時に必要とならないデータ(例えば、取得に失敗した情報、十分に無視できる程との小さい値を含んだセンサ情報、安定的なデバイスの状態など)は削除し、後述のリモートコピーの対象から外しても良い。
 抽出処理後、ストレージ装置300Aは、1以上のデータチャンクとそれに対応した1以上のCメタとを中央データセンタのストレージ装置300Xに転送する(リモートコピー)。
 データチャンク及びCメタを受信したストレージ装置300Xは、データチャンクをデータVOL26D(第2の非構造化データソースの一例)に格納し、Cメタをローカルメモリに格納する。ストレージ装置300Xは、データVOL26Dを指定した検索要求をホスト計算機200X及び200Yから受けた場合、Cスナップ処理を実行する。すなわち、ストレージ装置300Xは、検索鍵に適合したCメタが紐付いている第1Sメタ#1を複製することで第2Sメタ#1-1及び#1-2を生成し、第2Sメタ#1-1及び#1-2がそれぞれ属するSSVOL#1-1及び#1-2をホスト計算機200X及び200Yにそれぞれ提供する。
 以上、実施例3によれば、例えば拠点Aにおいて、IoTデバイス86Aのセンサなどの情報をストレージ装置300Aが受信し、ストレージ装置300Aが、コンテンツ情報を抽出することでCメタを作成し、データチャンクと共にCメタを中央データセンタのストレージ装置300Xに転送する。これにより、中央データセンタにあるストレージ装置300Xでは抽出処理を回避することが可能となる。つまり、ストレージ装置300Xでは、IoTデバイス86から発生する情報を含んだ大量のデータチャンクを対象とした抽出処理の負荷を削減できる。また、拠点のストレージ装置300Aが分析の対象になり得ないデータを間引いてデータチャンク及びCメタを中央データセンタのストレージ装置300Xに転送する。これにより、ストレージ装置300XのCスナップ処理の負荷と、ストレージ装置300Xが格納するデータの総量とを削減できる。
 図9は、実施例4の概要を示す。
 SCM(Storage Class Memory)943が採用される。ホスト計算機200及びストレージ装置300の各々は、ホスト計算機200のメモリ領域とストレージ装置300のメモリ領域とが割り当てられたSCM943を、自身のメモリであるかのように使用可能である。このため、例えば、ホスト計算機200でCスナッププログラム1291が実行され、Cスナッププログラム1291は、SCM943にあるCメタから、検索鍵に適合するCメタを探すことができる。
 以上、幾つかの実施例を説明したが、本発明は、それらの実施例に限定されるものでなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
 例えば、実施例1~4のうちの任意の2以上の実施例を組み合わせることが可能である。
 また、実施例1~4では、データ処理システムの一例がストレージシステムであるが、データ処理システムは、ストレージシステム、ホストシステム及び管理システムのうちの少なくとも1つに該当してもよい。例えば、ホストシステムがデータ処理システムに該当する場合、ホストシステムに対して検索鍵を指定した検索要求を送信する要求元はクライアントシステム(1以上のクライアント計算機)であってもよい。
 また、実施例1~4では、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のうちの少なくとも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以上のコンテンツ属性を表すコンテンツ情報を含んだメタデータである第2種メタデータを作成することと、
      前記作成された第2種メタデータを、その非構造化データの第1種メタデータに関連付けることと
    を含む、
    データ処理システム。
  2.  1又は複数の第2種メタデータが、ユーザから指定された検索条件を含む検索要求に応答した検索の対象であり、
     前記プロセッサ部は、前記検索条件に適合した1以上の第2種メタデータがそれぞれ関連付けられている1以上の第1種メタデータを特定する、
    請求項1記載のデータ処理システム。
  3.  前記特定した1以上の第1種メタデータの各々は、非構造化データのオリジナルのメタデータである第1の第1種メタデータであり、
     前記プロセッサ部は、
      前記特定した1以上の第1種メタデータである1以上の第1の第1種メタデータの各々について、その第1種メタデータの複製に基づくメタデータである第2の第1種メタデータを作成し、
      作成された1以上の第2の第1種メタデータが属し前記ユーザに対して提供される仮想ボリュームを生成する、
    請求項2記載のデータ処理システム。
  4.  前記プロセッサ部は、前記検索要求に応答して前記仮想ボリュームを生成する、
    請求項3記載のデータ処理システム。
  5.  前記仮想ボリュームに対するライト対象の非構造化データが、前記仮想ボリュームに属する第1種メタデータ複製が参照する非構造化データを含んだ非構造化データソースと異なる領域に格納される、
    請求項3記載のデータ処理システム。
  6.  前記ユーザに提供される前記仮想ボリュームは、スナップショットボリュームであり、
     前記スナップショットボリュームは、前記非構造化データソースにおける1又は複数の非構造化データのうちの、前記1以上の第2の第1種メタデータにより参照される1以上の非構造化データのデータ集合である、
    請求項3記載のデータ処理システム。
  7.  前記抽出処理は、前記検索要求に応答した処理とは非同期の処理である、
    請求項2記載のデータ処理システム。
  8.  前記抽出処理において抽出される非構造化データと前記抽出処理において作成される第2種メタデータとのうちの少なくとも1つが、前記ユーザにより定義され前記プロセッサ部により実行されるコンピュータプログラムであるユーザプログラムと、前記ユーザにより定義され前記プロセッサ部により参照されるルールとのうちの少なくとも1つに従う、
    請求項2記載のデータ処理システム。
  9.  前記非構造化データソースに格納された1又は複数の非構造化データは、1以上のオブジェクトに含まれており、
     オブジェクト毎に第1種メタデータが存在し、
     前記第1種メタデータ複製は、その第1種メタデータ複製に対応した第1種メタデータが参照する1以上の非構造化データのうち、前記検索条件に適合した第2種メタデータが関連付いた非構造化データのみ参照する、
    請求項3記載のデータ処理システム。
  10.  前記プロセッサ部は、同一の第1の第1種メタデータから複数の第2の第1種メタデータを作成する、
    請求項3記載のデータ処理システム。
  11.  前記非構造化データソースを提供する第1装置と別の装置である第2装置から前記仮想ボリュームが提供される、
    請求項3記載のデータ処理システム。
  12.  前記インターフェース部及び前記プロセッサ部を含んだ複数のストレージ装置を有し、
     前記第1装置及び前記第2装置の各々は、前記複数のストレージ装置のうちのいずれかのストレージ装置である、
    請求項11記載のデータ処理システム。
  13.  前記インターフェース部及び前記プロセッサ部を含んだ複数の装置を有し、
     前記複数の装置が、
      それぞれ第1の非構造化データソースを有する1以上の第1装置と、
      前記1以上の第1装置に接続され第2の非構造化データソースを有する第2装置と
    を含み、
     前記1以上の第1装置の各々が、
      複数のデバイスから収集された情報を含んだ1又は複数の非構造化データを、その第1装置が有する第1の非構造化データソースに格納し、
      前記抽出処理を実行し、
      前記抽出処理により得られた第2種メタデータとその第2種メタデータに対応した非構造化データとを前記第2装置に送信し、
     前記第2装置が、
      第2種メタデータとその第2種メタデータに対応した非構造化データとを前記1以上の第1装置の各々から受信し、
      受信した第2種メタデータを格納し、且つ、その第2種メタデータに対応した非構造化データを前記第2の非構造化データソースに格納する、
    請求項1記載のデータ処理システム。
  14.  第1種メタデータが関連付けられている非構造化データを含んだ非構造化データソース内の該当する非構造化データ毎に、
      その非構造化データの1以上のコンテンツ属性を表すコンテンツ情報を含んだメタデータである第2種メタデータを作成し、
      前記作成された第2種メタデータを、その非構造化データの第1種メタデータに関連付ける、
    データ処理方法。
  15.  第1種メタデータが関連付けられている非構造化データを含んだ非構造化データソース内の該当する非構造化データ毎に、
      その非構造化データの1以上のコンテンツ属性を表すコンテンツ情報を含んだメタデータである第2種メタデータを作成し、
      前記作成された第2種メタデータを、その非構造化データの第1種メタデータに関連付ける、
    ことをコンピュータに実行させるコンピュータプログラムを記録したコンピュータ読取り可能な記録媒体。
PCT/JP2016/059846 2016-03-28 2016-03-28 データ処理システム及びデータ処理方法 WO2017168499A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US15/739,028 US10685046B2 (en) 2016-03-28 2016-03-28 Data processing system and data processing method
PCT/JP2016/059846 WO2017168499A1 (ja) 2016-03-28 2016-03-28 データ処理システム及びデータ処理方法
JP2018507826A JP6585283B2 (ja) 2016-03-28 2016-03-28 データ処理システム及びデータ処理方法

Applications Claiming Priority (1)

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

Publications (1)

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

Family

ID=59963638

Family Applications (1)

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

Country Status (3)

Country Link
US (1) US10685046B2 (ja)
JP (1) JP6585283B2 (ja)
WO (1) WO2017168499A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114945702A (zh) 2019-12-02 2022-08-26 公益财团法人福冈县产业·科学技术振兴财团 蒸镀装置、升华纯化装置、有机电子器件的生产方法及升华纯化方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010073095A (ja) * 2008-09-22 2010-04-02 Hitachi Ltd 計算機システム及びその制御方法
JP2012212389A (ja) * 2011-03-31 2012-11-01 Hitachi Solutions Ltd 情報処理システム、バックアップ管理方法、及びプログラム
US20130262756A1 (en) * 2012-03-29 2013-10-03 International Business Machines Corporation Snapshot content metadata for application consistent backups
JP2015515034A (ja) * 2012-04-25 2015-05-21 株式会社日立製作所 ファイルストレージシステムとファイルクローニング方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1003103B1 (en) 1993-06-03 2008-10-01 Network Appliance, Inc. Write anywhere file-system layout method and apparatus
US20060129745A1 (en) * 2004-12-11 2006-06-15 Gunther Thiel Process and appliance for data processing and computer program product
US8843522B2 (en) * 2008-09-15 2014-09-23 Thomson Reuters (Markets) Llc Systems and methods for rapid delivery of tiered metadata
US8352514B2 (en) * 2008-12-10 2013-01-08 Ck12 Foundation Association and extraction of content artifacts from a graphical representation of electronic content

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010073095A (ja) * 2008-09-22 2010-04-02 Hitachi Ltd 計算機システム及びその制御方法
JP2012212389A (ja) * 2011-03-31 2012-11-01 Hitachi Solutions Ltd 情報処理システム、バックアップ管理方法、及びプログラム
US20130262756A1 (en) * 2012-03-29 2013-10-03 International Business Machines Corporation Snapshot content metadata for application consistent backups
JP2015515034A (ja) * 2012-04-25 2015-05-21 株式会社日立製作所 ファイルストレージシステムとファイルクローニング方法

Also Published As

Publication number Publication date
US10685046B2 (en) 2020-06-16
JPWO2017168499A1 (ja) 2018-08-09
JP6585283B2 (ja) 2019-10-02
US20180225362A1 (en) 2018-08-09

Similar Documents

Publication Publication Date Title
US11520670B2 (en) Method and apparatus for restoring data from snapshots
Niazi et al. {HopsFS}: Scaling Hierarchical File System Metadata Using {NewSQL} Databases
JP7053682B2 (ja) データベーステナントマイグレーションのシステム及び方法
JP5706966B2 (ja) 情報処理システム、及び、それを用いたファイル復元方法
JP7090606B2 (ja) データベース・システムにおけるテスト・データの形成及び動作
JP4741371B2 (ja) システム、サーバ装置及びスナップショットの形式変換方法
US6973556B2 (en) Data element including metadata that includes data management information for managing the data element
US7937369B1 (en) Data mover discovery of object extent
US20160062694A1 (en) Object store architecture for distributed data processing system
US9075755B1 (en) Optimizing data less writes for restore operations
US10387369B1 (en) Managing file deletions of files and versions of files in storage systems
US9047169B1 (en) Resizing snapshot mount points
US11860892B2 (en) Offline index builds for database tables
US9063892B1 (en) Managing restore operations using data less writes
JP2008146212A (ja) 共有ディレクトリの設定情報を変更する方法、及びファイルサーバ装置
US10936243B2 (en) Storage system and data transfer control method
CN109947730A (zh) 元数据恢复方法、装置、分布式文件系统及可读存储介质
Sinnamohideen et al. A {Transparently-Scalable} Metadata Service for the Ursa Minor Storage System
WO2017168578A1 (ja) データ処理システム及びデータ処理方法
JP6585283B2 (ja) データ処理システム及びデータ処理方法
JP2021092915A (ja) ストレージシステム及びボリューム複製方法
US11829328B2 (en) Garbage collection from archival of storage snapshots
WO2016117007A1 (ja) データベースシステム及びデータベース管理方法
JP2004252957A (ja) 分散ファイルシステムのファイルレプリケーション方法及び装置
WO2017122313A1 (ja) オブジェクト履歴として表示される情報をクライアントに提供する計算機システム及び計算機

Legal Events

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

Ref document number: 15739028

Country of ref document: US

ENP Entry into the national phase

Ref document number: 2018507826

Country of ref document: JP

Kind code of ref document: A

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: 16896719

Country of ref document: EP

Kind code of ref document: A1

122 Ep: pct application non-entry in european phase

Ref document number: 16896719

Country of ref document: EP

Kind code of ref document: A1