WO2016174739A1 - 複合計算機システム、管理計算機、およびデータ連携管理方法 - Google Patents
複合計算機システム、管理計算機、およびデータ連携管理方法 Download PDFInfo
- Publication number
- WO2016174739A1 WO2016174739A1 PCT/JP2015/062822 JP2015062822W WO2016174739A1 WO 2016174739 A1 WO2016174739 A1 WO 2016174739A1 JP 2015062822 W JP2015062822 W JP 2015062822W WO 2016174739 A1 WO2016174739 A1 WO 2016174739A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- computer system
- task
- distributed
- computer
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
Definitions
- the present invention relates to a technology for linking data between computer systems having different storage configurations.
- Virtualization technologies such as server virtualization and storage virtualization are generally used for the purpose of reducing capital investment related to information systems and increasing the agility of system operation. According to these virtualization technologies, the utilization efficiency of physical resources can be increased by sharing physical resources among a plurality of systems. In addition, it is possible to generate a resource in software beyond the limitation due to the configuration of the physical resource. Therefore, a system can be constructed flexibly and quickly, and the system once constructed can be transferred to another physical resource. However, a system constructed by virtualization technology cannot have a processing performance that exceeds physical limits in terms of performance. Therefore, the characteristics and performance of the system are determined to some extent depending on what kind of physical resource constitutes the system.
- scale-out aggregation platforms
- a parallel distributed system is configured by a plurality of physical servers and a plurality of storage devices built in the physical servers.
- the scale-out type infrastructure makes it possible to configure a resource pool that spans multiple nodes (physical servers) in the same cluster, and a virtual server or process can be executed on any physical node.
- the scale-up platform Since there is a fixed shared storage device in the scale-up type infrastructure, storage resources are added by adding devices mounted on each device in principle.
- the scale-up platform has one aspect that the hardware is likely to be complicated, the reliability can be improved by making each module such as a controller redundant. Therefore, the scale-up platform is suitable for applications such as databases that require high reliability and performance. And to date, many business systems have been operating on this scale-up platform. Therefore, it can be considered that a lot of data cultivated by companies, such as customer information and transaction information, is stored and updated in the existing scale-up base.
- the scale-up base and the scale-out base will be used properly in the right place due to the fact that the scale-up base and the scale-out base are different. Is important.
- a new scale-out platform is introduced, and a utilization method is required in which the data are linked by connecting them via a network.
- various business applications will be provided on an optimal basis according to the data format and required performance. In that case, it is efficient to load the data accumulated in the existing scale-up base into the scale-out base, and conversely store the processing results in the scale-out base into the scale-up base.
- Data linkage technology is essential.
- Patent Document 1 discloses a virtualization technology that uses a storage device in a data center as if it is part of a remote site.
- a storage device provided virtually includes an interface for grasping IO (Input / Output) characteristics for each storage block, and a necessary storage block can be transferred when necessary based on the IO characteristics.
- Patent Document 1 discloses a technique for transferring data between different sites with high efficiency by transferring storage blocks that are likely to be required next in advance.
- Patent Document 2 storage in a distributed processing node is performed so as to increase the efficiency of IO for a storage device based on distributed processing execution information such as how to divide processing and in what order.
- a technique for controlling area allocation is disclosed.
- Patent Document 1 When the technology of Patent Document 1 is applied to a scale-out type base, it becomes possible to access a specific area of the scale-up type base without changing the configuration of the scale-out type base.
- the scale-up type base is logically recognized as a part of the scale-out type base, it depends only on the IO characteristics for each storage block. The efficiency of data transfer cannot be increased sufficiently in a suitable form.
- the scale-out type platform has a unique behavior such as copying the same storage block multiple times in order to make the data redundant and distributed, and there is a high possibility of performing redundant data transfer to the scale-up type platform.
- Patent Document 2 does not disclose a method for transferring data from a scale-up base so that it can cope with dynamically distributed parallel distributed processing.
- processing processes are asynchronously and parallelly arranged, and the response performance between the processing processes and the distributed data dynamically changes. Therefore, in order to improve access efficiency, it is necessary to consider not only the execution order of processing processes but also data arrangement.
- An object of the present invention is to provide a technology that realizes suitable data linkage between a scale-up type base and a scale-out type base.
- a compound computer system includes a first computer system having one or more distributed processing computers each having one or more distributed storages constituting a resource pool and executing parallel distributed processing of jobs, One or more computers share a shared storage, and have a second computer system that is connected to the first computer system and transmits / receives data, and the first computer system has one job. Dividing into the above tasks, determining a method of expanding the data accessed by the task to the distributed storage, requesting the data to the second computer system, and the second computer system The first computer system transmits the received data to the distributed storage by the expansion method. To.
- the data of the second computer system which is a scale-up type computer system
- the data of the second computer system is expanded to the distributed storage in the first computer system by a method suitable for the first computer system, which is a scale-out type computer system. Therefore, it is possible to realize suitable data linkage between the scale-up computer system and the scale-out computer system.
- FIG. 1 is a schematic block diagram of a computer system according to a first embodiment. It is a block diagram which shows the physical structure of a 1st computer system. It is a block diagram which shows the logic structure of a 1st computer system. It is a block diagram which shows the physical structure of the 2nd computer system 40b. It is a figure which shows the specific example of the storage structure management table 153c. It is a block diagram which shows the logic structure of the 2nd computer system 40b.
- 2 is a diagram showing a configuration of a management program that runs on a management computer 200.
- FIG. 6 is a diagram illustrating a specific example of a task management table 203.
- FIG. 5 is a diagram illustrating a specific example of a data arrangement management table 206.
- FIG. 3 is a diagram illustrating an example of a resource configuration managed by a resource configuration management unit 207.
- FIG. FIG. 6 is a sequence diagram showing a flow from when a user submits a job in the first computer system 40a to when necessary data is specified in the second computer system 40b. It is a sequence diagram which shows the process which expand
- FIG. 10 is a diagram illustrating a data transfer operation in the second embodiment.
- a composite computer system that efficiently loads data from a scale-up base to a scale-out base is provided.
- FIG. 1 is a schematic block diagram of a computer system according to the first embodiment.
- the computer system of this embodiment is mainly composed of a first computer system 40a and a second computer system 40b. Due to architectural differences, the first computer system 40a is also referred to as a scale-out type base 40a, and the second computer system 40b is also referred to as a scale-up type base 40b.
- the first computer system 40 a is mainly composed of a cluster 11 of one or more physical servers 10.
- the physical server 10 is also referred to as a node, referring to the state of participating in the cluster 11.
- Each physical server 10 is connected to the network 50a and set so as to be able to communicate with each other.
- the configuration of the network 50a, each physical server 10, the cluster 11, and the application 30a operating on each node constituting the computer system 40a is controlled by the management computer 200a.
- the computer system 40a provides a service realized by the application 30a to one or more client computers 250 via the network 50a.
- each physical server 10 participating in the cluster 11 constitutes a distributed system and a distributed storage, and the first computer system 40a is suitable for parallel processing.
- Each node 10 can access a storage area physically provided in another node via the network 50a, and can distribute computation processing as necessary.
- the first computer system 40a is called a scale-out type base 40a.
- the second computer system 40b takes a form in which one or more physical servers 20 share the storage apparatus 100 connected via the network 50b.
- the configuration of the network 50b, each physical server 20, the storage apparatus 100, and the application 30b running on each physical server 20 configuring the computer system 40b is controlled by the management computer 200b.
- the computer system 40b provides a service realized by the application 30b to one or more client computers 250 via the network 50b.
- the main operation is to reserve a sufficient resource capacity after estimating the required resource amount required by the application in advance.
- the above-described virtualization technology makes it possible to define a larger resource reservation amount with respect to the total amount of resources that exist physically, thereby improving the resource utilization efficiency of the entire system.
- the real resource allocated to a certain application can be expanded in the single capacity up to the reserved amount.
- the first computer system 40b is called a scale-up type base 40b in the sense that it is expanded by a single resource.
- mission critical missions such as customer management systems or production management systems have been built on scale-up platforms 40b, where the upper and lower limits of demand are easy to estimate and reliability and unit performance are required. .
- the scale-out type base 40a is attracting attention as a base that can flexibly respond to such a large-scale demand that is drastically changing.
- FIG. 2 is a block diagram showing the physical configuration of the first computer system.
- the main physical components in the first computer system 40 a are one or more physical servers 10.
- the physical server 10 is used for the purpose of operating the application 30a, the purpose of installing a control unit for realizing the cluster 11 function, or a management program for realizing the management computer 200a.
- An OS Operating System
- An OS that controls the physical server 10 and a program that realizes the main functions of the application 12 are developed on the memory (main storage device) 22, and the CPU 21 performs calculation processing.
- Non-volatile input / output devices are responsible for device control, such as the disk controller 27, depending on the type of SSD (Solid State Drive) 108, HDD (Hard Disk Drive) 105, flash memory 29, etc. May be connected via a controller.
- SSD Solid State Drive
- HDD Hard Disk Drive
- flash memory 29 flash memory 29
- PCIe Peripheral Component Interconnect Express
- Devices that can be used as storage media are not limited to the SSD 108, HDD 105, and PCI connection flash memory 29 shown in the figure, and the configuration such as the type and quantity of media including other media may be changed according to performance and price.
- storage media that can be read and written at high speed, such as PCI-connected flash memory and SSD, are used in combination with storage media that have a high price per capacity, while HDDs that are low speed but have a lower price per capacity.
- cost performance is directly linked to the type of hardware used, it is handled by a concept called a storage tier in which devices are grouped by type.
- the physical server 10 is connected to the network 50a by the NIC 25 included in each physical server.
- the network 50a only needs to connect the physical server 10 and the management computer 200a to each other, and may be configured by one or a plurality of network switches.
- the network 50a may use any protocol as long as the network 50a does not depend on the physical configuration shown in FIG. For example, another protocol such as Infini-Band may be used. Generally, these devices are physically connected to a plurality of lines as shown in the figure in order to cope with an apparatus failure in the network 50a.
- FIG. 3 is a block diagram showing a logical configuration of the first computer system.
- the physical server 10 is mainly used as a distributed processing node including the hypervisor 31, but in addition, it can be used as a management computer 200a or a storage appliance 36c by installing necessary software.
- a plurality of physical servers 10 in the cluster 11 have a function of forming a single file system in cooperation with each other, and it can be said that the first computer system 40a is a distributed storage type system.
- a physical server 10 that is used as a distributed processing node is a so-called virtual machine host having a hypervisor 31.
- the hypervisor 31 is a general virtualization mechanism, also called a virtual machine monitor, and operates a plurality of guest OSs 32 on one physical server by simulating virtual hardware by software. .
- An area partitioned by the hypervisor 31 for each guest OS 32 used by the user is called a virtual machine, in particular, an instance 35 when used for a service for the user, and the application 30a uses a virtual resource controlled by the guest OS 32. And operate.
- the hypervisor 31 uses a higher-order interrupt instruction (hypervisor call) than a general OS (guest OS 32) controls the hardware, for example, the CPU 21 by time division scheduling or address conversion. Multiple devices such as the memory 22 are multiplexed. There are a variety of mounting forms, such as a hypervisor 31 that operates between physical hardware and the OS, and a built-in firmware that controls a physical device. Due to the function of the hypervisor 31, virtual resources are allocated to each instance 35, and it is apparently not limited by the quantity or capacity of physical devices included in the physical server 10.
- the distributed storage controller 36a controls the internal storage 37 (for example, the SSD 108, the HDD 105, the flash memory 29, etc.) and cooperates with the distributed storage controller 36a operating on another distributed processing node via the network 50a to realize distributed storage. It is a control unit. All instances 35 on which the application 30 a operates access the storage area via the distributed storage controller 36 a arranged on the same physical server 10.
- the distributed file system is configured by the cooperation of the distributed storage controllers 36a in the plurality of distributed processing nodes 10. With the distributed file system, the guest OS 32 in one instance 35 can access the internal storage 37 stored in another physical server 10 in the same cluster 11.
- a file system has metadata that expresses a storage destination address and a file structure separately from a stored data body.
- all distributed storage controllers 36a in the same cluster 11 synchronize metadata, and all nodes share storage resources. With this function, the instance 35 can logically use the total capacity of the built-in storage 37 in the cluster 11 regardless of the physical server 10 arranged.
- the data body is not one, but the replica is placed on another node.
- Such a redundancy mechanism improves fault tolerance and at the same time improves reading performance.
- instances executed in parallel may refer to the internal storage 37 in the vicinity, and one of the internal storages 37 reads and writes due to a physical failure. Even if it becomes impossible, processing can be continued with reference to one of the other two remaining internal storages.
- the distributed storage controller 36a In order to make the data body redundant, the distributed storage controller 36a continuously updates the data body in the other node when data is written in a certain data area. At this time, the data area as the replication source is called a master.
- Such a replication process in the file system layer is a data management process unique to the scale-out type board 40a, and is a difference from the scale-up type board 40b that performs redundancy in the hardware device layer.
- the replication process is performed via the network 50a, and is not synchronized with the master until the distributed storage controller 36a on the other node completes the replication process (writing as a file system has not been completed) ) State. Therefore, the writing process in this type of distributed file system requires a longer time than the reading process.
- the storage area of the data is once secured on the file system, and then the replication process is performed inside the scale-out type base 40a. It is necessary to follow the procedure.
- the data communication between the internal storage 37 and the instance 35 in the same physical server 10 is faster than the case where the physical server 10 is separated. For this reason, when the performance is insufficient, the data on the internal storage 37 of the storage destination is transferred to the internal storage 37 of another node, or is transferred to the node where the data using the instance 35 is stored. Can improve performance.
- One advantage of the parallel distributed system is that performance and storage capacity are balanced in the entire system by devising the arrangement of these data and processing mechanisms (instances in this embodiment).
- the distributed storage controllers 36a communicate with each other via the network 50a.
- a connection protocol at that time for example, general iSCSI (Internet Small Computer System Interface) connection, NFS (Network File System), or the like is used. Therefore, if the storage apparatus 100 corresponding to the same protocol is prepared in the second computer system 40b, the distributed storage controller 36a is connected to the network 50b of the second computer system 40b via the network 50c, and Can read and write storage resources.
- the distributed storage controller 36a at the boundary between the first computer system 40a and the second computer system 40b may be referred to as a storage gateway.
- the storage area in the second computer system 40b recognized by the storage gateway is in a readable / writable state from the first computer system 40a.
- the first computer system 40a performs parallel distributed processing that exhibits its original performance, as described above, a procedure for relocating necessary data to the distributed file system on the first computer system 40a is performed.
- This is called “development” of data.
- the distributed storage controller 36 a is a virtual machine that operates on virtual resources partitioned by the hypervisor 31. However, unlike the other instances 35, the distributed storage controller 36a does not provide the application 30a to the user.
- the storage controller 36a is not necessarily a virtual machine, and may be a storage appliance 36c that occupies a single physical server 10 and does not require the hypervisor 31, for example.
- the management computer 200a is composed of a management program group installed on the physical server 10 or the virtual machine.
- the management computer 200a is mainly connected to each physical server 10 (distributed processing node) and storage appliance 36c via the network 50a, and controls their configuration. Details of the management program constituting the management computer 200a will be described later.
- FIG. 4 is a block diagram showing a physical configuration of the second computer system 40b.
- the main components of the second computer system 40b are one or more physical servers 20, one or more storage apparatuses 100 for operating an application 30b and a management program used by the user, and interconnecting them. Networks 55 and 65.
- the physical server 20 has the same physical configuration as the physical server 10 in the first computer system 40a shown in FIG. However, it may be connected to a SAN (Storage Area Network) 55 for the purpose of increasing the speed and reliability of data communication with the storage apparatus 100.
- SAN Storage Area Network
- FC SAN composed of one or a plurality of fiber channel switches and HBA (host bus adapter) 51 for connecting each data input / output device.
- HBA host bus adapter
- the HBA is mounted on the physical server 20 or the storage apparatus 100 and connected to another HBA or a fiber channel switch by a port installed on the HBA 51.
- the implementation of SAN 55 is not limited to fiber channel, but may be anything that can achieve the same purpose of large-capacity data communication. For example, it uses another type of device and protocol such as iSCSI, FCoE, and Infini-band. May be.
- the storage apparatus 100 has a function of providing storage resources to each physical server 20 and the physical server 10 in the first computer system 40a.
- the storage apparatus 100 is physically composed of one or more shared storage controllers 150 and one or more storage media 105. With the function of the shared storage controller 150, a logical configuration of storage resources is constructed.
- the shared storage controller 150 has a general computer architecture, and provides a function specialized for controlling storage resources by a control program group 153b read by the processor (CPU) 151 onto the memory 152.
- control program group 153 includes at least a response program 153a for returning a response to a data read or write request from the server, and a storage control for controlling the logical storage configuration described above.
- a program 153b and a storage configuration management table 153c for holding a storage configuration controlled by the storage control program 153b are included.
- Data communication from the server to the storage resource is performed via the SAN 55 connected by the HBA 51 or the LAN 65 connected by the NIC 155.
- the storage response program 153a interprets a plurality of protocols according to the communication method to be used. More specifically, for example, a read / write function for storage resources is provided by a fiber channel connection for the HBA 51 on the storage controller 150 and an iSCSI connection or NFS for the NIC 155.
- Communication from the management computer 200b to the shared storage controller 150 is mainly transmitted and received by the NIC 155.
- the processor 151 uses the SAS IF 154 for transmitting / receiving data to / from the storage medium 105 or the cache 153, which is a temporary data area installed for the purpose of performing a response to the server at a high speed, to function the shared storage controller 150.
- the cache 153 is smaller in capacity than the non-volatile storage medium 105, but utilizes the characteristic that data can be read and written at a very high speed.
- the data requested from the server is stored in the cache 153. The higher the cache hit rate is, the higher the IO performance can be expected.
- Reading from and writing to the storage medium 105 from the cache 153 also involves processing costs for the CPU 151 such as calculation of parity values and Read Modify Write, for example. These processing costs vary depending on the IO characteristics such as the IO length or sequential access ratio and the setting of the shared storage controller 150 such as the threshold of the allowable dirty rate that affects the timing of accessing the medium.
- the IO length here is the data size transferred for each IO command.
- the storage control program 153b does not provide the storage medium 105 to the server as it is, but defines a logical data structure on the storage medium 105 to realize efficient operation management of storage resources.
- the storage control program 153b provides storage resources in the unit of volume 101 to the physical server 20 in the second computer system 40b and the physical server 10 in the first computer system 40a.
- any volume 101 is defined as a data structure in a RAID (Redundant Arrays of Independent Disks) group 104 composed of a plurality of storage media (HDDs in this case) 105.
- the storage resource providing method is roughly divided into a method (physical volume) in which the volume 101 defined directly from the RAID group 104 is provided to the server, and a storage unit 106 that is once incorporated into another structural unit.
- the latter is, for example, for realizing a storage capacity virtualization function in which only the capacity in which data is actually written is allocated from the storage pool 106 while recognizing it as a virtually defined volume 107 for the physical server 20. Necessary data structure.
- a plurality of shared storage controllers 150 are mounted on one storage device 100, the plurality of shared storage controllers 150 cooperate with each other through a data bus 156 that connects the shared storage controllers 150 to each other. Control is performed so that no inconsistency occurs in the data area.
- the storage control program 153 b further has a function of defining a path that is a logical connection from the volume 101 to the provision destination physical server 20 or creating a copy of a specific volume in the storage apparatus 100.
- the above-described data structure controlled by the storage control program 153b is held by the storage configuration management table 153c.
- a specific example of the storage configuration management table 153c is shown in FIG.
- the table 153c indicates an identifier (volume ID) 501 unique to a single storage apparatus 100 assigned to the volume 101, a volume type 502, a capacity 503, and a logical connection.
- a path 504, a connection destination ID 505 indicating a storage resource providing destination, and a medium 506 constituting the volume are held.
- the media field 506 is information indicating the allocation source.
- the identifier of the storage pool 106 is described in the case of a virtual volume, and the storage tier and identifier of the RAID group 104 are described in the case of a physical volume.
- Storage tiers are assigned numbers such as “T1”, “T2”, and “T3” because of their high speed.
- connection destination ID field 505 describes the identifier of the storage pool 106.
- the connection destination ID field 505 describes the identifier of the physical server 20.
- the connection destination ID field 505 describes “External” in the sense that it is not included in the second computer system 40b. The When creating a copy of the specific volume (backup volume 108) by the storage control program 153b, the connection destination ID field 505 holds the volume ID of the volume that is the copy source.
- FIG. 6 is a block diagram showing a logical configuration of the second computer system 40b.
- a plurality of physical servers 20 that operate the application 30 b operate by sharing a smaller number of storage devices 100 than the physical servers 20.
- a network 50b that interconnects these devices is physically implemented as a network 65 or a network 55.
- the application 30b can efficiently use the capability provided by the physical server 20. .
- the second computer system 40b uses a shared storage type storage subsystem.
- the physical server 20 is operated in two ways: a bare metal host and a virtual machine host.
- a bare metal host an OS 32 that directly controls physical processing resources is running on the physical server 20, and an application administrator or user directly uses this as the guest OS 32 to directly The logical configuration of the host 20 can be controlled.
- the user may refer to an area where the application 30b is operated and is called an instance 35.
- the guest OS 32 directly reads from and writes to the volume 101 in the storage apparatus 100.
- the hypervisor 31 is operated on the physical server 20, and the physical resources of the physical server 20 are partitioned into virtual resources.
- the guest OS 32 is logically operating in another partition, and the user configures an instance 35 that operates the application 30b.
- a file system is further defined for the volume 101 in the storage apparatus 100, and the guest OS 32 recognizes a file called the virtual disk 102 as a storage area. Therefore, the guest OS 32 recognizes the virtual disk 102 as the virtual volume 103 and performs reading and writing. Thereby, for example, even when the hypervisor 31 migrates the virtual disk 102 to another volume 101, it is possible to read and write continuously without changing the setting of the guest OS 32.
- the management computer 200b is constructed by a management program group operating on the physical server 20 or a virtual machine.
- the management computer 200b is connected to each physical server 20 and the storage apparatus 100 or a network switch constituting the network 55 through the network 50b, and manages the respective configurations. Details of the management program constituting the management computer 200b will be described later.
- FIG. 7 is a diagram showing a configuration of a management program that runs on the management computer 200.
- the management program on the management computer 200 is composed of a plurality of modules. The role of each module of the management program will be described below.
- Management programs having similar functions in the first computer system 40a and the second computer system 40b give the same name, but as shown in FIG. It may be distinguished whether the program is on the first computer system 40a or the second computer system 40b.
- the management computer 200a that manages the first computer system 40a includes an application configuration management unit A 201a, a task execution management unit 202, a data arrangement management unit 204, and a data linkage control unit A 205a that are configured by modules of a management program. . Each of these modules may be operated simultaneously as long as consistency is not impaired, or may be distributed on a plurality of physical servers.
- Application configuration management unit A 201 a manages the configuration of the application 30 a running on the cluster 11.
- the application 30a operates using a function provided by the OS and a computing resource provided by the first computer system 40a.
- the application configuration management unit 201a holds these settings, and changes the settings and reflects them in the system according to the user's specification.
- the settings managed by the application configuration management unit A 201a include, for example, the type of software that configures the application, the identifier that uniquely identifies the installation destination resource, the access control information of the user or processing process that uses the application, and the resource allocation amount This refers to the parameters to be executed and the operating status of the application.
- the task execution management unit 202 has a function of dividing a series of processes (jobs) into processes called tasks according to the designation of the application configuration management unit A 201a and arranging them in each physical server 10. For example, when the job requested by the user is MapReduce processing that handles a large volume of data set, it is more detailed such as allocation for each distributed processing node in consideration of the dependency between data and processing, or aggregation of calculation results for each node. It is divided into processing steps of fine granularity. Here, an execution unit like the processing step is called a task.
- ⁇ To place tasks on each node at least a schedule for determining the task execution order and an algorithm for determining the placement destination node for each task are implemented.
- the scale-out type base 40a it is necessary to consider the tradeoff between the processing performance realized by parallel execution and the amount of consumed resources, and the redundancy to cope with hardware failure and logical failure.
- Each process is asynchronously and dynamically arranged by 202. For this reason, the task arrangement method is not constant, and is not deterministic depending on the operating state of the scale-out type base board 40a.
- Information on tasks managed by the task execution management unit 202 is held in a task management table 203 included in the task execution management unit 202.
- FIG. 8 is a diagram showing a specific example of the task management table 203.
- the job accepted by the task execution management unit 202 is divided into tasks.
- Each task is managed by a set of job ID 203a and task ID 203b in the table.
- Each task is determined according to the execution order and the efficiency of parallelization, and is held as a record in the task management table 203 according to the order in which the tasks should be arranged.
- a record held in the task management table 203 may be referred to as task execution information.
- Priority is given to each task, for example, a small number is assigned from the highest priority.
- the priority is held in the priority field 203c.
- the number of distributed processing nodes or the number of processes arranged simultaneously is managed by the multiplicity 203d.
- an identifier for identifying the node is recorded in the placement node ID field 203e.
- an area necessary for the task to read and write data is called a directory here, and its identifier (path) is held in the directory field 203f.
- path an area necessary for the task to read and write data
- a data usage method is defined for the same directory, it is stored in the task management table 203 as an attribute 203g.
- the data utilization method indicates that the read-only data “R” and the write-only data “W” are both indefinite data “R / W”. Further, if the job designates an external data source not included in the first computer system 40a, specifically, data included in the second computer system 40b, the job is external data. “E” is added to indicate “R (E)”, “W (E)”, and the like.
- the data arrangement management unit 204 manages the identifier of the storage device and the address on the device that are actually assigned to the directory required for task execution. Even if the data allocation management unit 204 manages data allocation (volume identifier such as device identifier or LUN (Logical Unit Number) or block address on the device), the data used by which application and in which task Whether it is an area cannot be grasped alone.
- volume identifier such as device identifier or LUN (Logical Unit Number) or block address on the device
- the data arrangement management unit 204 manages the data arrangement by the data arrangement management table 206, and associates the directory included in the task execution information with the data arranged in each distributed processing node 10.
- the data arrangement management table 206 includes a directory 206a indicating a logical data storage destination for each task, an assignment flag 206b indicating whether or not task assignment is received by the task execution management unit 202, and the data A master flag 206c indicating whether or not the area is a master, a state 206d indicating whether or not the data area can be used from a task, and a placement destination device 206e indicating the internal storage of the placement destination are held.
- the data arrangement management table 206 may be further provided with an attribute 206f.
- the value of the attribute 206f conforms to the attribute 203g held in the task management table 203.
- a combination of a node name and a drive number is used so that it is at least unique within the cluster 11 to which the node belongs.
- a name other than the node name for example, the name “G01” of the storage gateway is used in the sense that it is not secured in the internal storage of any node.
- the media tier type may be added to the placement destination device 206e in the form of “(T1)” for the storage controller 36a to use for control.
- the storage controller 36a is responsible for processing such as securing, deleting, duplicating, and transferring the storage area, the master 206c and the state 206d follow the metadata held by the storage controller 36a on each node.
- the data linkage control unit A 205a particularly controls the exchange of data held by the first computer system 40a and the second computer system 40b.
- the data linkage control unit A 205a communicates with a management program group operating on the other management computer 200a, and can interpret the configuration managed by each management program. Further, management information can be transmitted / received to / from the data linkage control unit B 205b operating in the second computer system 40b, and a linkage function characteristic of the present invention is realized.
- Application configuration management unit B 201b manages the configuration of the application 30b running on the second computer system 40b.
- the resource configuration management unit 207 manages the configuration of resources necessary for the operation of the application 30b.
- a management method in which resource design is performed in advance and necessary resources are reserved is generally used. Therefore, the second computer system 40b is static in the sense that there is less change compared to the first computer system 40a. is there.
- FIG. 10 is a diagram illustrating an example of a resource configuration managed by the resource configuration management unit 207. A specific example of the resource configuration managed by the resource configuration management unit 207 will be described using the resource configuration management table 208 of FIG.
- a type 208b indicating whether it is a virtual machine or a bare metal host
- a physical server identifier 208c indicating a working physical server
- a storage resource (volume 101) to be used are uniquely specified.
- a partition 208g indicating a mount point managed by the guest OS 32 is held.
- the resource configuration management unit 207 adjusts the storage destination device by the partition 208g.
- a large-capacity partition “/ dev / db” for storing the data body and an update log before the transaction processing is completed are stored.
- a partition with high write performance “/ dev / log” is prepared separately, and the volume to be used is separated.
- the resource configuration management unit 207 records these configuration information in the resource configuration management table 208 when creating each instance, and updates the table when the configuration is changed.
- the data cooperation control unit B 205b operates in cooperation with the data cooperation control unit A 205a operating in the first computer system 40a, and transfers data held by the second computer system 40b to the data cooperation control unit A 205a.
- the second computer system 40b is in operation at any time as a whole. Therefore, when the first computer system 40a requests the data in the second computer system 40b, if the data is staticized or transferred in error, a service response is sent to the end user of the second computer system 40b. There may be disadvantages such as delay or loss.
- data transfer management is performed so that both the data and the processing performance of both computer systems can be utilized while minimizing such a decrease in service level.
- the transfer of necessary data from the second computer system 40b to the first computer system 40a according to the job and task executed on the first computer system 40a is taken as an example, and data transfer management is performed. A method will be described.
- the processing related to data transfer is roughly divided into two processes.
- the first process is a process for grasping the correspondence between the data arrangement recognized by the first computer system 40a and the data arrangement recognized by the second computer system 40b. This process will be described later with reference to FIG.
- the second process is a process of determining demand in the first computer system 40a, transferring data from the second computer system 40b to the first computer system 40a, and expanding the data in the first computer system 40a. is there. This process will be described later with reference to FIG.
- FIG. 11 is a sequence diagram showing a flow from when a user submits a job in the first computer system 40a to when necessary data is specified in the second computer system 40b.
- step 701 the user (job requester 700) submits a desired job from the client computer 250 to the application configuration management unit A 201a.
- the application configuration management unit A 201a responds to the client computer 250 that the job requested by the job requester 700 has been received if there is no problem in setting.
- the identifier is designated in the job program or directory.
- a format of the identifier a format in which the identifier is represented by a URI (Uniform Resource Identifier), a database connection string (connection string), an NFS mount point, or a path pointing to a partial area in the storage gateway is used.
- step 702 the application configuration management unit A 201a newly registers the job submitted by the job requester 700 in the task execution management unit 202.
- the task execution management unit 202 divides the job received from the application configuration management unit A 201a into a plurality of tasks, and holds it in the task management table 203 (step 704).
- the task execution information is managed so that the execution status and schedule of the job and related tasks can be transmitted (step 703).
- the data linkage control unit A 205a monitors whether a new job has been input by a method such as periodically checking the application configuration management unit A 201a. If it is confirmed in step 705 that a new job has been submitted, the data linkage control unit A 205a searches the task management table 203 of the task execution management unit 202 and acquires task execution information of the task corresponding to the job. .
- This task execution information includes information such as a priority and a directory for a task to be executed.
- the data linkage control unit A 205a performs a task for accessing data stored in the second computer system 40b (with the attribute 203g indicating that the directory to be used does not exist in the first computer system 40a). Determine.
- the data linkage control unit A 205a inquires of the data arrangement management unit 204 about the directory arrangement location that is determined not to exist in the first computer system 40a, and from which device the data arrangement management unit 204 is reading the data source. Is determined (step 706). More specifically, with reference to the value of the field of the placement destination device 206e in the data placement management table 206, for example, a directory described as a storage gateway (G01, etc.) is scanned, and the field of the placement destination device 206e of the corresponding directory is scanned. The device identifier (D101 (T1), etc.) included in is acquired. The data cooperation control unit A 205a combines the obtained device identifier and task execution information and notifies the data cooperation control unit B 205b on the second computer system 40b.
- a directory described as a storage gateway G01, etc.
- the task execution information transmitted to the data linkage control unit B 205b includes an address (device information) given by the first computer system 40a to the resource in the second computer system 40b.
- a Web application running on the first computer system 40a connects to a database in the second computer system 40b, a connection character string, an NFS mount point, or an iSCSI connection IQN ( This includes the iSCSI Qualified Name) and the SCSI ID (a set of target ID and LUN, etc.).
- step 707 the data linkage control unit B 205b needs to read this access information into an address in the second computer system 40b.
- the data linkage control unit B 205b acquires the corresponding storage resource address (target ID and LUN pair) and usage status from the resource configuration management unit 207 (step 708), and further makes an inquiry to the shared storage controller 150. (Step 709), the storage configuration of the storage area storing the necessary data is uniquely identified.
- connection destination ID 505 of the storage configuration management table 153c it is provided to the outside, that is, the first computer system 40a in this embodiment. Search for. Further, a set of a connection destination ID 505 and a path 504 that uses the same volume 501 as the path 504 provided to the outside is specified. Further, the resource configuration management table 208 is searched by the set of the connection destination ID 505 and the path 504, and the instance ID 208a of the physical server to which the corresponding device belongs and the use status 208d of the device are specified.
- the volume having the connection destination ID 505 described as “External”, that is, the volume ID “VOL201” to which the path connected to the outside belongs has “Host 01” as the other connection destination ID, and the target They are connected by ID “TRG0” and LUN “LUN3”.
- the physical server ID 208c is “Host 01” and the instance ID 208a is “INS-01-032”. It can be seen that the device with the target ID 208e “TRG0” and LUN 208f “3” corresponds to it.
- FIG. 12 is a sequence diagram showing a process for expanding the data of the second computer system into the first computer system.
- the task execution time when the task execution time is approaching, necessary data is transferred from the second computer system 40b to the first computer system 40a, and the data is expanded in the distributed storage system of the first computer system 40a.
- a series of processes to be performed is shown. It is assumed that the correspondence between data in the first computer system 40a and the second computer system 40b can be grasped by the processing in the previous stage shown in FIG.
- step 710 the data linkage control unit A 205 a on the first computer system 40 a requests and acquires the latest task execution information from the task execution management unit 202, and refers to the task execution information to place the task.
- the node 10 to be checked is checked (step 711).
- the data linkage control unit A 205a requests the data linkage control unit B 205b on the second computer system 40b to start data transfer.
- the data linkage control unit A 205a inquires of the data arrangement management unit 204 about the data arrangement based on the directory path of the task, the arrangement destination device 206e serving as the load destination, the arrangement destination of the master, and the status 206d of the expansion process Such information is acquired (step 712).
- the data linkage control unit B 205b on the second computer system 40b receives a data transfer request and starts securing resources for performing the data transfer.
- the data linkage control unit B 205b first requests the resource configuration management unit 207 to acquire the lock of the corresponding volume 101 so that it is not accessed by the application of the other second computer system 40b (step 714). If the lock acquisition is successful, the data linkage control unit B 205b instructs the shared storage controller 150 in the second computer system 40b that manages the data of the volume to transfer the data.
- the shared storage controller 150 actually waits for a request from the first computer system 40a in accordance with the data transfer instruction (step 715).
- the data linkage control unit A 205a uses a specific algorithm as to how to arrange (expand) the data scheduled to be transferred from the second computer system 40b on the first computer system 40a. Therefore, calculate. More specifically, as an algorithm for calculating this expansion method, a placement destination device 206e having the highest response speed is selected for the distributed processing node 10 where the task is placed, or a plurality of distributed processing nodes 10 are selected. A node having a low processing load at that time is selected from among the distributed storage controllers 36, or a storage tier (SSD 108, HDD 105, or flash 29) on the node 10 is selected according to the task priority. Can be considered.
- the processing load relationship between the storage controller 36 and the distributed processing node can be controlled by aggregating the placement destination device 206e described in the data placement management table 206 and the placement node 203e described in the task management table 203. .
- the placement destination device 206e is specified so that the master or copy data accessed by the task is expanded in the internal storage of the distributed processing node where the task is placed, the IO response can be speeded up.
- the data linkage control unit A 205a determines the transfer order and expansion method for the transfer target data by the above algorithm and instructs the data arrangement management unit 204 to expand the data. Upon receiving the instruction, the data arrangement management unit 204 instructs the corresponding storage gateway to acquire data (step 718). Data acquisition here is data copy or reading.
- the distributed storage controller 36 in the first computer system 40a requests the shared storage controller 150 in the second computer system 40b, and the shared storage controller 150 receives the request and transfers data to the distributed storage controller 36. Thereby, the distributed storage controller 36 in the first computer system 40a acquires the data from the shared storage controller 150 in the second computer system 40b via the storage gateway. The acquired data is expanded to the internal storage 37 of each node 10 in accordance with designation from the data arrangement management unit 204.
- the data linkage control unit B 205b of the second computer system 40b instructs the resource configuration management unit 207 to release the lock (step 720), and the data linkage control unit A 205a of the first computer system 40a. Return control to.
- the data is efficiently scaled up (second computer system 40b).
- a computer system are provided.
- the amount of data communication and the storage capacity between the scale-out type base and the scale-up type base can be reduced, and the time required for executing the processing across the two can be reduced.
- the user of the computer system can enjoy the benefits of reducing the cost per processing and using the collected and stored data more effectively.
- the compound computer system has one or more (preferably a plurality (preferably the same below)) distributed storages constituting the resource pool, respectively, and executes parallel distributed processing of jobs.
- the first computer system 40a having a distributed processing computer (distributed processing node) and the second computer system in which one or more computers share a shared storage and are connected to the first computer system 40a to transmit and receive data. 40b.
- the first computer system 40a divides the job into one or more tasks, determines a method for expanding the data accessed by the task to the distributed storage, and requests the data from the second computer system 40b.
- the second computer system 40b transmits the data to the first computer system 40a
- the first computer system 40a expands the received data in the distributed storage by the expansion method.
- the distributed storage in the first computer system 40a is expanded in a manner suitable for the first computer system 40a, which is a scale-out type computer system, from the data of the second computer system 40b, which is a scale-up type computer system. Therefore, suitable data linkage between the scale-up computer system and the scale-out computer system can be realized.
- the second computer system 40b determines the logical address (first logical address) in the first computer system 40a and the logical address (second logical address) in the second computer system 40b.
- the management information (storage configuration management table 153c, resource configuration management table 208) to be associated is held in advance.
- the first computer system 40a transmits the first logical address of the data accessed by the task to the second computer system 40b.
- the second computer system 40b identifies the second logical address of the data based on the received first logical address and management information, acquires the data using the second logical address, and obtains the first computer Send to system 40a.
- the second computer system 40b that is a scale-up type computer system can be associated with the logical address of the first computer system 40a that is a scale-out type computer system, the scale-up type computer system Data linkage is possible even if different logical addresses are used in the scale-out computer system.
- the first computer system 40a when a task execution request occurs, the first computer system 40a requests preparation for transmitting data to the second computer system 40b before starting the calculation of the data expansion method. To do.
- the second computer system 40b receives a request for preparation, the second computer system 40b prepares for data transmission and waits for a data transmission request from the first computer system 40a. According to this, since the second computer system 40b can prepare to transmit data while the first computer system 40a is calculating the expansion method, the first computer system 40a and the second computer system 40a The data linkage of the computer system 40b can be efficiently performed.
- the first computer system 40a determines the expansion method so that the data accessed by the task is arranged in the distributed storage in the vicinity of the distributed processing computer that executes the task. According to this, in the scale-out type computer system, the distributed processing computer and the distributed storage accessed by the distributed processing computer can be arranged close to each other, so that the storage can be accessed efficiently.
- the first computer system 40a may determine the expansion method so that the data accessed by the task is arranged in the distributed storage of the distributed processing computer that executes the task.
- the storage accessed by the distributed processing computer can be arranged inside the distributed processing computer, so that the storage can be efficiently accessed.
- the first computer system 40a determines a deployment method so that the load is distributed to one or more distributed storages. According to this, in the scale-out type computer system, data is expanded so that the load of the distributed storage is not biased, so that access can be prevented from being concentrated on a specific storage device, and access can be performed efficiently. .
- the first computer system 40a transmits the first logical address of the data accessed by the task to the second computer system 40b, and the second computer system 40b identifies the second logical address of the data based on the received first logical address.
- the first computer system 40a determines a method for expanding the data accessed by the task to the distributed storage, requests the data from the second computer system 40b, and the second computer system 40b. Acquires the data using the second logical address and transmits the data to the first computer system 40a.
- the first computer system 40a distributes the data transmitted from the second computer system 40b according to the expansion method. Deploy to storage and perform tasks.
- the logical addresses of the scale-out computer system and the scale-up computer system are associated with each other when a job is submitted, and data is transmitted from the scale-up computer system to the scale-out computer system when a task execution request occurs. Since the task is executed by the scale-out type computer system, the data necessary for the execution of the task can be efficiently and quickly developed in the scale-out type computer system.
- the distributed processing computer (distributed processing node) is a computer having a CPU 21, a memory 22, and a flash memory 29.
- a distributed storage is configured on the flash memory 29, and the CPU 21 executes a software program.
- the distributed storage controller 36a realized by this expands the data to the distributed storage by the expansion method instructed by the data arrangement management module (data arrangement management unit 204) of the management computer 200a.
- the type of application executed in each computer system or the specification is not particularly limited, but more specifically, the following utilization examples are given.
- a product transaction transaction stored in the scale-up type base may be used for analyzing the customer consumption tendency executed on the scale-out type base. It is done.
- the data linkage control unit A 205a detects a task that is going to refer to past product transaction information, and transfers the transaction data from the scale-up base prior to the analysis processing.
- the scale-out type base can continue the processing without particularly worrying about the location of the data when performing the analysis processing. For example, there is no need to perform processing for waiting for completion of data transfer from the scale-up type base to the scale-out type base while performing analysis processing, or processing for checking whether there is an error in the transferred data. Further, since the data accumulated in the scale-up type base can be analyzed in the scale-out type base, the range of information to be incorporated into the analysis process can be widened, and the analysis accuracy can be improved.
- the scale-up platform data is transferred to the scale-out platform, deployed, and used for analysis processing on the scale-out platform, the time during which data is locked in the scale-up platform can be reduced. it can. For example, when a scale-up base is used as a database for merchandise transactions as a main purpose, it takes less time to stop updating the database.
- the scale-out type platform is responsible for the processing of distributing the moving image to many clients in parallel, such as image data or a program executed on the client side.
- An example is that static content is held in a scale-up type base and is used by expanding it to a scale-out type base if necessary.
- the page to be browsed next is determined when the end user logs in to the Web site. Further, it is determined whether or not the static content of the page in the scale-up type base has been updated, and if it has been updated, the latest static content is transferred from the scale-up type base to the scale-out type base. Processing related to the development and update of static content is performed on a scale-up type platform, and on the scale-out type platform, production of moving image content to be distributed or program debugging is concentrated.
- the scale-out-type infrastructure is suitable for processing to send reference-only data to a large number of clients in parallel.
- the scale of deployment can be adjusted according to the amount requested by the clients.
- the present invention can be applied to the VDI (Virtual Desktop Infrastructure, virtual desktop platform) of the compound computer system according to the present embodiment.
- VDI Virtual Desktop Infrastructure, virtual desktop platform
- a master image for starting a virtual desktop that a user company uses for an employee is created in a scale-up type base board according to the management policy of the head office.
- the scale-out type platform when the employee uses VDI at a remote site constructed in a branch office or the like, an example is considered in which the startup master image is transferred from the scale-up type platform to the scale-out type platform.
- the master image displayed on the employee's terminal by transferring from the scale-up type base to the scale-out type base according to the order or time when the employee requested the login job on the remote site side.
- the type of startup master image to be transferred is determined based on the order or timing when the login job is requested, and the data is expanded in the vicinity of the node that operates the virtual desktop.
- the startup time or login time on the remote site side can be shortened and the required storage capacity can be reduced.
- security patches can be applied consistently, and predetermined settings can be applied collectively to employee software. Can be done easily. While ensuring the high level of governance, it is possible to suppress the scale-up type base that performs centralized management from becoming a bottleneck.
- Example 1 exemplifies a compound computer system that loads data from a scale-up type base to a scale-out type base, but is not limited thereto.
- the second embodiment exemplifies a computer system that efficiently loads data from a scale-out type base to a scale-up type base.
- the scale-out type base is good at large-scale parallel distributed processing
- the scale-up type base is good at processing requiring reliability or processing speed by itself. Therefore, it is conceivable that the access log and the unstructured data (natural language text, image data, etc.) are processed on the scale-out base and the result is read by the application on the scale-up base.
- the system configuration of the computer system shown in the first embodiment and the management program stored in the computer system are not only transferred from the scale-up base to the scale-out base but also from the scale-out base to the scale-up base. Data transfer is also realized.
- the data arrangement management table 206 includes the storage gateway 36b in the data development destination node for the data on the first computer system 40a that would be necessary in the second computer system 40b. And the volume 101 secured in the storage device 100 in the second computer system 40b is designated as the data write destination.
- the data cooperation control unit A 205a and the data cooperation control unit B 205b can control the order of executing a plurality of tasks obtained by dividing the job and the timing of transferring data from the storage gateway 36b. Further, data can be efficiently transferred by the control.
- FIG. 13 is a diagram illustrating a data transfer operation according to the second embodiment.
- an area for transferring data from the first computer system 40a is secured as the virtual volume 107 in the second computer system 40b.
- the data linkage control unit B 205b instructs the shared storage controller 150 to create the virtual volume 107, and further sets a port 732 for release to the first computer 40a.
- the data cooperation control unit B 205b of the second computer system 40b cooperates with the data cooperation control unit A 205a of the first computer system 40a, sets a part of the distributed storage controller 36a as the storage gateway 36b, The volume 107 is mapped. As a result, the virtual volume 107 in the first computer system 40 a to the second computer system 40 b can be used as a part of the distributed file system 730.
- the data linkage control unit B205b of the second computer system 40b creates a job for the first computer system 40a via the data linkage control unit A205a and inputs it to the application configuration management unit A201a.
- the task execution management unit 202 generates a task (step 704), and the task and the placement destination device are set by the data placement management unit 204.
- the data linkage control unit A 205a searches the task management table 203 for a task in charge of aggregation processing (for example, processing for obtaining the final job result such as logical sum and logical product of the processing results of each task), and stores the data.
- the directory 203f is specified.
- the arrangement destination device 206e of the directory 206a held in the data arrangement management table 206 is changed to the device ID of the area for the second computer system 40b managed by the storage gateway 36b via the data arrangement management unit 204. .
- the device is replicated to the device by the autonomous operation of the distributed storage controller 36a (aggregation operation 731 in FIG. 13). .
- data transfer 733 from the first computer system 40a to the second computer system 40b is performed only when the tabulation process is actually performed.
- the second computer system 40b by accessing the virtual volume 107, it is possible to refer to the processing results of the first computer system 40a as if the aggregation results were generated in the same system. Further, the second computer system 40b does not always have to update the data being processed for the first computer system 40a. When the series of tasks in the first computer system 40a is completed, the necessary processing result is obtained. Only need to be transferred.
- the compound computer system not only transfers data from the second computer system 40b to the first computer system 40a but also from the first computer system 40a to the second computer system. Data transfer to 40b is also efficiently realized.
- a web application server that automatically scales in response to a user request is deployed on the scale-out platform (first computer system 40a), and the development environment for the application is installed on the scale-up platform (second computer system 40b).
- the data linkage control unit B 205b inputs a job for extracting the processing steps that are the bottleneck of the whole by collecting the logs of the processing steps of the application and the time required for the processing steps into the application configuration management unit A 201a.
- the aggregation result is loaded into the scale-up type base (second computer system 40b).
- the compound computer system according to the second embodiment includes one or more distributed storages constituting a resource pool and one or more distributed storage controllers 36a that control the distributed storage 37, respectively.
- the first computer system 40a having one or more distributed processing computers 10 that execute processing and the one or more computers 20 share the shared storage, and are connected to the first computer system 40a to transmit / receive data.
- the second computer system 40b creates a virtual volume and publishes it to the first computer system 40a.
- the first computer system 40a makes the virtual volume available by setting at least some of the distributed storage controllers 36a as gateways.
- the second computer system 40b submits a job to the first computer system 40a.
- the first computer system 40a processes the job and returns the processing result to the second computer system 40b via the virtual volume.
- the second computer system 40b which is a scale-up type base, causes the first computer system 40a to execute processing via the virtual volume, so that processing is performed as if using the virtual volume in the same system. In this way, jobs can be executed on a scale-up platform.
- the first computer system 40a when the second computer system 40b submits a job to the first computer system 40a, the first computer system 40a divides the job into a plurality of tasks and performs parallel distributed processing. Of the plurality of tasks, the location of the directory for storing the processing result of the task that collects the processing results is set in the area of the second computer system 40b managed by the gateway. Furthermore, the second computer system 40b refers to the aggregation processing result of the first computer system 40a by accessing the virtual volume.
- the first computer system 40a divides the job into a plurality of tasks, performs parallel distributed processing, aggregates the processing results of the parallel distributed processing, and collects the aggregated final processing results as the second computer system. Since the reference can be made from 40b, the second computer system 40b can use the resources of the first computer system 40a without being aware of how to process the job in the first computer system 40a.
- the second computer system 40b inputs a predetermined job included in the application to the first computer system 40a when the application is constructed.
- a job that realizes processing suitable for the scale-out type base included in the application is assigned to the first computer system 40a.
- Each job is executed by a computer system suitable for the job, and the entire application can be executed efficiently.
- the main processing provides a suitable configuration when large-scale processing that analyzes access logs and unstructured data is included in a part of an application that requires reliability or processing speed. can do.
- the second computer system 40b has a web application development environment constructed, and the first computer system 40a has an application server for the web application.
- the second computer system 40b submits a job to the first computer system 40a to analyze a log of executing a Web application and extract a processing step that is a bottleneck.
- the first computer system 40a extracts the bottleneck processing step and sends it to the second computer system 40a.
- the second computer system 40b presents the bottleneck processing step to the developer.
- the log of the Web application is recorded. Analyzing the bottle net by analysis, it is possible to suppress the transfer of log data between systems and to perform bottleneck extraction by log analysis on a suitable computer system for large-scale processing in web application development it can.
- the job that the second computer system 40b submits to the first computer system 40a counts the time required for each processing step based on the log of the Web application, and determines the bottleneck based on the required time. It is a job to extract the processing step. According to this, processing steps with a long required time can be extracted and presented to the developer, so that it is possible to select a processing step with a long required time from the processing of the Web application and improve them.
- the application server deployed in the first computer system 40a is an application server having a function of performing automatic resource scaling, and information indicating processing steps that are highly requested by users and are bottlenecks. Presented to the developer from the second computer system 40b.
- a processing step that is highly requested by the user and that takes a long time is presented to the developer, so the developer selects a processing step that is expected to improve relatively, and efficiently improves it. be able to.
- DESCRIPTION OF SYMBOLS 10 ... Node, physical server, distributed processing node, 100 ... Storage device, 101 ... Volume, 102 ... Virtual disk, 103 ... Volume, 104 ... RAID group, 105 ... HDD, Storage media, 106 ... Storage pool, 107 ... Virtual volume 108, SSD, backup volume, 11 ... cluster, 12 ... application, 150 ... shared storage controller, 151 ... CPU, processor, 152 ... memory, 153a ... response program, 153b ... storage control program, 153c ... storage configuration management table, 154 ... SAS IF, 155 ... NIC, 156 ... data bus, 20 ... host, 20 ... physical server, 200 ... management computer, 200a ...
- management computer 200b ... management computer 201 ... VOL, 201a ... Application configuration management unit A, 201b ... Application configuration management unit B, 202 ... Task execution management unit, 203 ... Task management table, 203a ... Job ID, 203b ... Task ID, 203c ... Priority field , 203d ... multiplicity, 203e ... placement node ID field, 203f ... directory field, 203g ... attribute, 204 ... data placement management unit, 205a ... data linkage control unit A, 205b ... data linkage control unit B, 206 ... data placement management Table 206a ... Directory concerned 206b ... Flag 206c ... Master flag 206d ... Status 206e ...
- distributed storage Controller storage controller, 36a ... storage controller, distributed storage controller, 36b ... storage gateway, 36c ... storage appliance, 37 ... built-in storage, 40 ... scale-out type base, computer system, 40b ... scale-up type base, computer system, 501 ... volume, 502 ... type, 503 ... capacity, 504 ... path, 505 ... connection destination ID, 506 ... media, 50a ... network, 50b ... Network, 50c ... Network, 51 ... HBA, 55 ... SAN, Network, 65 ... LAN, Network, 700 ... Job requester, 730 ... Distributed file system, 731 ... Aggregation operation, 732 ... Port, 733 ... Data transfer
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
複合計算機システムは、リソースプールを構成する1つ以上の分散ストレージをそれぞれ有しジョブの並列分散処理を実行する1つ以上の分散処理計算機を有する第一の計算機システムと、1つ以上の計算機が共有ストレージを共有し、前記第一の計算機システムと接続してデータを送受信する第二の計算機システムと、を有し、前記第一の計算機システムが、前記ジョブを1つ以上のタスクに分割し、前記タスクでアクセスするデータの前記分散ストレージへの展開方法を決定し、前記データを前記第二の計算機システムに要求し、前記第二の計算機システムが、前記データを前記第一の計算機システムに送信し、前記第一の計算機システムが、受信した前記データを前記展開方法によって前記分散ストレージに展開する。
Description
本発明は、ストレージ構成の異なる計算機システム間でデータを連携させる技術に関する。
情報システムにかかる設備投資を削減する目的や、システム運用のアジリティを高める目的で、サーバの仮想化やストレージの仮想化などの仮想化技術が一般的に用いられている。これら仮想化技術によれば、複数のシステムが物理リソースを共有することにより、物理リソースの利用効率を高めることができる。また、物理リソースの構成による制約を超えてソフトウェア的にリソースを生成することもできる。そのため、柔軟かつ迅速にシステムを構築し、また一旦構築したシステムを他の物理リソース上へと移行することができる。ただし、仮想化技術により構築されるシステムは、性能面においては、物理的な限界を超えた処理性能を有することはできない。そのため、どのような物理リソースによりシステムを構成するかでそのシステムの特性や性能がある程度決まってしまう。
それに対して仮想化技術で構築されたシステムに対する物理リソースによる制約を低減する検討がなされ、近年、スケールアウト型(集約)基盤と呼ばれるシステムが出現している。これは、複数の物理サーバと、それら物理サーバが内蔵する複数のストレージデバイスとによって、並列分散システムを構成するものである。スケールアウト型基盤は、同じクラスタ内にある複数のノード(物理サーバ)に跨るリソースプールを構成することを可能にしており、仮想サーバあるいはプロセスはいずれの物理ノード上でも実行が可能となる。
これによって、例えば物理サーバ上に残っている空き容量を気にすることなく仮想サーバを追加することが可能となる。また、物理サーバに故障が生じた際に、物理的な仕様の差異を気にすることなく、システムを他のノードへ移行して処理を継続することができる。また、スケールアウト型基盤では、クラスタの構成によって容易にリソースの容量や構成を変更できるため、単体では信頼性の劣る比較的安価なハードウェアを利用して十分な冗長性を持たせることにより、基盤全体として十分な信頼性を得るといったことも可能である。
一方、以前より、複数の物理サーバと、それらが使用する共有ストレージ装置とをネットワークによって相互接続したシステムが普及している。ここでは、スケールアウト型に対して、以前よりあるこの種のシステムをスケールアップ型基盤と呼ぶことにする。
スケールアップ型基盤には決まった共有ストレージ装置というものがあるため、ストレージのリソース追加は原則的に各装置に搭載するデバイスの追加によって行われる。スケールアップ型基盤では、ハードウェアが複雑化しやすいという一面があるものの、制御部などモジュール毎に冗長化することで、信頼性を高められる。そのため、スケールアップ基盤は、高い信頼性と性能が求められるデータベースなどのアプリケーションに適している。そして、実際に現在までに多くの業務システムがこのスケールアップ型基盤で稼働している。したがって、企業が培ってきた多くのデータ、例えば顧客情報や取引情報などが、既存のスケールアップ型基盤に保管され、また更新され続けていると考えてよい。
これまでスケールアップ型基盤が広く利用されてきたという経緯、スケールアップ型基盤とスケールアウト型基盤の処理特性の違い等から、今後はスケールアップ型基盤とスケールアウト型基盤とを適材適所に使い分けることが重要となる。すなわち、既存のスケールアップ型基盤を維持しながら、新たにスケールアウト型基盤を導入し、それらをネットワーク経由で接続してデータを連携させるような活用方法が求められる。様々な業務アプリケーションがそのデータ形式や要求性能に応じて最適な基盤で提供されるようになることが見込まれる。その際には、既存のスケールアップ型基盤が蓄積したデータをスケールアウト型基盤へ読み込んだり、逆にスケールアウト型基盤での処理結果をスケールアップ型基盤へと格納したりする場面での効率的なデータ連携技術が必須となる。
特許文献1には、データセンタにあるストレージ装置をあたかもリモートサイトの一部であるかのように利用する仮想化技術が開示されている。同技術では、仮想的に設けたストレージ装置が記憶ブロック単位にIO(Input/Output)特性を把握するインタフェースを備えており、IO特性に基づき必要な記憶ブロックを必要な時に転送することができる。特許文献1にはさらに、次に必要となりそうな記憶ブロックを事前に転送させることで異なるサイト間のデータ転送を高効率に行う技術も開示されている。
また、特許文献2には、処理をどのように分割しどのような順序で実行するかといった分散処理の実行情報をもとに、ストレージ装置に対するIOを効率化するように分散処理ノードへの記憶領域の割り当てを制御する技術が開示されている。
特許文献1の技術をスケールアウト型基盤に適用した場合、スケールアウト型基盤の構成を変更することなく、スケールアップ型基盤の特定領域にアクセスできるようになる。しかし、特許文献1によれば、論理的にはスケールアップ型基盤をスケールアウト型基盤の一部として認識させられるものの、記憶ブロック毎のIO特性のみに依存しているため、スケールアウト型基盤に適した形で十分にデータ転送の効率を高めることができない。スケールアウト型基盤では、データを冗長化して分散配置させるため、同じ記憶ブロックを複数回コピーするなどの特有の振る舞いがあり、スケールアップ型基盤に対して冗長なデータ転送を行う可能性が高い。
特許文献2の技術を、スケールアップ型基盤とスケールアウト型基盤のデータ連携に用いれば、スケールアウト型基盤で稼働する業務アプリケーションの実行状態と連動させて、スケールアップ型基盤が保有するストレージ装置へのアクセスを効率化できる可能性がある。しかし、特許文献2によれば、動的に生成される並列分散処理に対応できるように、スケールアップ基盤からデータを転送する方法が開示されていない。スケールアウト型基盤上では、非同期的かつ並列に処理プロセスが配置され、それら処理プロセスと分散配置されたデータとの応答性能は動的に変化する。そのため、アクセスを効率化するには、処理プロセスの実行順のみならず、データ配置も考慮する必要がある。しかし、スケールアップ型基盤からスケールアウト型基盤へデータを転送する場合には遅延の大きさがボトルネックとなる可能性が高い。遅延の大きさがボトルネックになると、スケールアウト型基盤での処理が待機状態となるばかりか、スケールアップ型基盤で当該データが更新されないようオフラインに設定しておかなければならない期間が長くなる。また、スケールアップ型基盤とスケールアウト型基盤とではデータ配置を異なる管理方法で決定しているが、その差異を解決する技術は特許文献2に開示されていない。
以上のように、スケールアップ型基盤とスケールアウト型基盤のそれぞれのアーキテクチャに適した方式でデータ連携を行う方法は確立されていない。
本発明の目的は、スケールアップ型基盤とスケールアウト型基盤の好適なデータ連携を実現する技術を提供することである。
本発明の一態様による複合計算機システムは、リソースプールを構成する1つ以上の分散ストレージをそれぞれ有しジョブの並列分散処理を実行する1つ以上の分散処理計算機を有する第一の計算機システムと、1つ以上の計算機が共有ストレージを共有し、前記第一の計算機システムと接続してデータを送受信する第二の計算機システムと、を有し、前記第一の計算機システムが、前記ジョブを1つ以上のタスクに分割し、前記タスクでアクセスするデータの前記分散ストレージへの展開方法を決定し、前記データを前記第二の計算機システムに要求し、前記第二の計算機システムが、前記データを前記第一の計算機システムに送信し、前記第一の計算機システムが、受信した前記データを前記展開方法によって前記分散ストレージに展開する。
本発明によれば、スケールアップ型計算機システムである第二の計算機システムのデータをスケールアウト型計算機システムである第一の計算機システムに適した展開方法で第一の計算機システム内の分散ストレージに展開するので、スケールアップ型計算機システムとスケールアウト型計算機システムの好適なデータ連携を実現することができる。
以下、本発明の実施形態に係る計算機システムについて図面を参照して説明する。
本実施例によれば、スケールアップ型基盤からスケールアウト型基盤へ効率的にデータをロードする複合型の計算機システムが提供される。
<計算機システムの物理構成および論理構成>
図1は、実施例1による計算機システムの概要ブロック図である。
本実施例の計算機システムは、大きく第一の計算機システム40aおよび第二の計算機システム40bから構成されている。アーキテクチャの差異により、第一の計算機システム40aをスケールアウト型基盤40aとも呼び、第二の計算機システム40bをスケールアップ型基盤40bとも呼ぶことにする。
第一の計算機システム40aは、主に一つ以上の物理サーバ10によるクラスタ11により構成されている。クラスタ11に参加している状態を指して、物理サーバ10はノードとも呼ばれる。各物理サーバ10は、ネットワーク50aに接続され、互いに通信が可能であるように設定される。同計算機システム40aを構成する同ネットワーク50a、各物理サーバ10、クラスタ11、および各ノード上に稼働するアプリケーション30aの構成は、管理コンピュータ200aにより制御される。計算機システム40aは、ネットワーク50aを介して、一つ以上のクライアントコンピュータ250に対して、アプリケーション30aが実現するサービスを提供する。
第一の計算機システム40aにおいて、クラスタ11に参加する各物理サーバ10は、分散システムおよび分散ストレージを構成しており、第一の計算機システム40aは並列処理に適している。
各ノード10は、ネットワーク50aを介して物理的には別のノードが備えているストレージ領域にアクセスすることができ、必要に応じて演算処理を振り分けることができる。
また、クラスタ11において供給可能な処理容量が不足した場合には、新たなノード10を追加することで、計算能力や記憶領域を拡充することができる。この特性により、第一の計算機システム40aは、スケールアウト型基盤40aと呼ばれる。
第二の計算機システム40bは、一つ以上の物理サーバ20がネットワーク50bを介して接続されたストレージ装置100を共有する形態をとる。同計算機システム40bを構成するネットワーク50b、各物理サーバ20、ストレージ装置100、および各物理サーバ20上に稼働するアプリケーション30bの構成は、管理コンピュータ200bにより制御される。計算機システム40bは、ネットワーク50bを介して、一つ以上のクライアントコンピュータ250に対して、アプリケーション30bが実現するサービスを提供する。
第二の計算機システム40bでは、事前にアプリケーションが必要とするリソース要求量を見積もったうえで、十分なリソース容量を予約するという運用が主となる。前述の仮想化技術により、物理的に存在するリソース総量に対してより多いリソース予約量を定義可能とすることで、システム全体のリソース利用効率を高める。このとき、あるアプリケーションに対して割り当てられる実リソースは、予約量まで単体容量を拡張することができる。リソース単体で拡張させるという意味で、第一の計算機システム40bはスケールアップ型基盤40bと呼ばれる。
従来より、需要の上限や下限が見積もりやすく、信頼性と単体性能の確保が求められる業務、例えば顧客管理システムあるいは生産管理システムなどのミッションクリティカルな基幹業務はスケールアップ型基盤40bで構築されてきた。
一方、短期間のキャンペーンサイト、エンドユーザの活動傾向が変化しやすいなど需要の予測が難しい用途、あるいはメッセージングや従業員の仮想デスクトップ基盤やセンサデータを分析するといったアプリケーションへの負荷が同時多発的に集中する用途など、既存のスケールアップ型基盤では収容が難しい、あるいはコストがかかりすぎる用途が近年増える傾向にある。スケールアウト型基盤40aは、これら変化が激しい大規模な需要に対して柔軟に対応できる基盤として注目を集めている。
図2は、第一の計算機システムの物理構成を示すブロック図である。第一の計算機システム40aにおける主な物理的構成要素は、一つ以上の物理サーバ10である。物理サーバ10は、アプリケーション30aを稼働させる目的や、クラスタ11機能を実現する制御部、あるいは管理コンピュータ200aを実現する管理プログラムを設置する目的に利用される。物理サーバ10を制御するOS(Operating System)やアプリケーション12の主たる機能を実現するプログラムは、メモリ(主記憶装置)22上に展開され、CPU21により計算処理を行う。
これら物理サーバ10の主要な処理部は、データバス23を介してNIC25のようなネットワークアダプタや入出力装置などの処理部と接続される。不揮発性の入出力装置(ストレージメディア)は、SSD(Solid State Drive)108、HDD(Hard Disk Drive)105、フラッシュメモリ29などその種類に応じて、例えばディスクコントローラ27のようにデバイスの制御を担当するコントローラを介して接続されてもよい。複数のデバイスを同じデータバス23に接続する目的で、例えばPCIe(Peripheral Component Interconnect Express)を利用している場合には、物理サーバ10はPCIeスイッチ24のように接続を切り替える機構を備えていてもよい。ストレージメディアとして使用可能なデバイスは、同図に示すSSD108、HDD105、PCI接続フラッシュメモリ29に限らず、性能や価格によって他のメディアを含むメディアの種類および数量などの構成を変更してもよい。
一般に、高速に読み書きが可能なストレージメディア、例えばPCI接続フラッシュメモリやSSDは容量あたりの価格が高く、他方でHDDなど低速であるが容量あたりの価格がより廉価なストレージメディアと組み合わせて使用される場合が多い。このような費用対性能は使用するハードウェアの種別と直結するため、デバイスを種別ごとにまとめたストレージ階層と呼ばれる概念で取り扱う。
物理サーバ10はそれぞれが具備するNIC25によってネットワーク50aに接続される。ネットワーク50aは物理サーバ10や管理コンピュータ200aを相互に接続するものであればよく、一つあるいは複数のネットワークスイッチによって構成されていてもよい。また、ネットワーク50aは同図に示す物理構成に依存せず、相互に通信する目的を達成するものであれば、いかなるプロトコルを使用するものであってもよい。例えばInfini-Bandなど別のプロトコルを使用するものでもよい。これらのデバイスは一般に、ネットワーク50aの装置故障に対応するため、同図に示すように物理的には複数の回線に接続される。
図3は、第一の計算機システムの論理構成を示すブロック図である。
前述の通り、物理サーバ10は主にハイパバイザ31を備える分散処理ノードとして利用されるが、その他に、必要なソフトウェアを導入して管理コンピュータ200a、あるいはストレージアプライアンス36cとしても利用できる。ここではクラスタ11内の複数の物理サーバ10が連携して単一のファイルシステムを構成する機能を有しており、第一の計算機システム40aは分散ストレージ型のシステムであるといえる。
物理サーバ10のうち分散処理ノードとして利用されるものは、ハイパバイザ31を有するいわゆる仮想マシンホストである。ハイパバイザ31は、仮想マシンモニタ(Virtual Machine Monitor)とも呼ばれる一般的な仮想化機構であり、ソフトウェアによって仮想的なハードウェアを模擬することで、一台の物理サーバ上に複数のゲストOS32を稼働させる。ハイパバイザ31によりユーザが使用するゲストOS32毎に区画された領域を仮想マシン、特にユーザ向けサービスに供される場合にはインスタンス35と呼び、アプリケーション30aはゲストOS32により制御される仮想的なリソースを利用して稼働する。
より具体的には、ハイパバイザ31は、一般的なOS(ゲストOS32)がハードウェアを制御するよりもより上位の割り込み命令(ハイパバイザコール)を使用して、例えば時分割スケジューリングやアドレス変換によりCPU21、メモリ22等のデバイスを多重化する。実装の形態は物理ハードウェアとOSとの間に動作するハイパバイザ31や、物理的なデバイスを制御するファームウェアに組み込まれたものなど多様である。ハイパバイザ31の機能により、各インスタンス35には仮想的なリソースが割り当てられており、見かけ上、物理サーバ10が備える物理デバイスの数量や容量に制約されない。
分散ストレージコントローラ36aは内蔵ストレージ37(例えばSSD108やHDD105、フラッシュメモリ29など)を制御し、別の分散処理ノード上に稼働する分散ストレージコントローラ36aとネットワーク50aを介して協調し、分散ストレージを実現する制御部である。アプリケーション30aが動作するインスタンス35は、全て同じ物理サーバ10上に配置された分散ストレージコントローラ36aを経由してストレージ領域にアクセスする。
複数の分散処理ノード10にある分散ストレージコントローラ36aが連動することで、分散ファイルシステムが構成されている。分散ファイルシステムにより、あるインスタンス35内のゲストOS32は、同じクラスタ11にある別の物理サーバ10内に格納されている内蔵ストレージ37にアクセスできる。
一般にファイルシステムは、格納されるデータ本体とは別に、格納先アドレスやファイル構造を表現するメタデータを持つ。本実施例における分散ファイルシステムでは、同一クラスタ11内にある全ての分散ストレージコントローラ36aがメタデータを同期し、全てのノードがストレージ資源を共有する。この機能により、インスタンス35は、配置された物理サーバ10によらず、論理的にはクラスタ11内の内蔵ストレージ37を総計した容量を活用できる。
また、データ本体は一つではなく、複製を別のノードに配置する。このような冗長化の仕組みにより、耐障害性を高めると同時に読み込み性能を向上させる。例えば、あるデータを3つの分散処理ノード10の内蔵ストレージ37にそれぞれ持つことにより、並列実行されるインスタンスはそれぞれ近傍の内蔵ストレージ37を参照すればよく、物理故障により当該内蔵ストレージ37の一つが読み書き不能に陥った場合でも、残ったその他2つの内蔵ストレージのいずれかを参照して処理を継続できる。
データ本体を冗長化するために、分散ストレージコントローラ36aは、あるデータ領域に書き込みが行われた場合、続けてその他のノードにあるデータ本体を更新する。このとき、複製元となるデータ領域をマスタと呼ぶ。このようなファイルシステム層における複製処理はスケールアウト型基盤40aに特有のデータ管理処理であり、ハードウェアデバイス層で冗長化を行うスケールアップ型基盤40bとの差異である。
複製処理はネットワーク50aを経由して行われ、他のノード上にある分散ストレージコントローラ36aが複製処理を完了するまでの間は、マスタに同期されていない(ファイルシステムとしては書き込みが完了していない)状態にある。したがって、この種の分散ファイルシステムにおける書き込み処理は、読み込み処理よりも長い時間を要する。スケールアウト型基盤40aの外部から新たなデータを転送してきた場合には、一旦それらデータの記憶領域をファイルシステム上に確保した後、スケールアウト型基盤40aの内部で複製処理を行うという2段階の手続きを踏む必要がある。
基本的には、同一の物理サーバ10内にある内蔵ストレージ37とインスタンス35とのデータ通信のほうが、物理サーバ10が別れる場合よりも高速である。そのため、性能が不足した際には、格納先の内蔵ストレージ37上のデータを別のノードの内蔵ストレージ37へ移行する、あるいはインスタンス35を使用するデータが格納されたノードへ移行する、などの手段によって性能を改善することができる。並列分散システムの一つの利点は、これらデータと処理機構(本実施例ではインスタンス)の配置を工夫することにより、性能およびストレージ容量をシステム全体でバランスさせることにある。
上述の通り、各分散ストレージコントローラ36aはネットワーク50aを介して互いに通信する。その際の接続プロトコルとしては、例えば、一般的なiSCSI(Internet Small Computer System Interface)接続、NFS(Network File System)などが利用される。したがって、同じプロトコルに対応するストレージ装置100を第二の計算機システム40bに用意すれば、分散ストレージコントローラ36aがネットワーク50cを介して第二の計算機システム40bのネットワーク50bに接続し、ストレージ装置100内のストレージ資源を読み書きすることができる。ここでは、そのような第一の計算機システム40aと第二の計算機システム40bの境界にある分散ストレージコントローラ36aを指して、ストレージゲートウェイと呼ぶことがある。
このようにストレージゲートウェイが認識する第二の計算機システム40bにあるストレージ領域は、第一の計算機システム40aから読み書き可能な状態となる。しかしながら、第一の計算機システム40aが本来の性能を発揮する並列分散処理を行う際には、前述の通り、必要なデータを第一の計算機システム40a上の分散ファイルシステムへ配置し直す手続きを踏む。この第二の計算機システム40bのデータを第一の計算機システム40aの分散ファイルシステムに配置する手続を、第一の計算機システム40aと第二の計算機システム40bの間でのデータ転送と区別するため、データの「展開」と呼ぶことにする。
分散ストレージコントローラ36aはハイパバイザ31により区画された仮想的なリソース上で動作する仮想マシンである。ただし分散ストレージコントローラ36aは他のインスタンス35と異なりユーザに対してアプリケーション30aを提供しない。なお、ストレージコントローラ36aの実装の形態としては必ずしも仮想マシンである必要はなく、例えば単一の物理サーバ10を占有し、ハイパバイザ31を必要としないストレージアプライアンス36cであってもよい。
第一の計算機システム40aにおいて、管理コンピュータ200aは、物理サーバ10または仮想マシン上に実装される管理プログラム群により構成される。管理コンピュータ200aは主に、ネットワーク50aを介して各物理サーバ10(分散処理ノード)やストレージアプライアンス36cと接続し、それらの構成を制御する。管理コンピュータ200aを構成する管理プログラムの詳細については後述する。
図4は、第二の計算機システム40bの物理構成を示すブロック図である。第二の計算機システム40bの主な構成要素は、ユーザが利用するアプリケーション30bや管理プログラムを稼働させるための一台以上の物理サーバ20、一台以上のストレージ装置100、およびそれらを相互に接続するネットワーク55および65である。
物理サーバ20は、図2に示した第一の計算機システム40aにおける物理サーバ10と同様の物理構成を有する。ただし、ストレージ装置100とのデータ通信を高速化、高信頼化する目的で、SAN(Storage Area Network)55に接続できてもよい。SANの、より具体的な実現例としては、一つまたは複数のファイバチャネルスイッチおよび各データ入出力装置を接続するためのHBA(ホストバスアダプタ)51から構成されるFC SANが挙げられる。HBAは物理サーバ20やストレージ装置100に搭載され、HBA51上に設置されたポートにより他のHBAあるいはファイバチャネルスイッチと結線される。ただし、SAN55の実装はファイバチャネルに限らず、大容量データ通信という同じ目的を達成できるものであればよく、例えばiSCSI、FCoE、Infini-bandといった別の種類のデバイスおよびプロトコルを使用するものであってもよい。
ストレージ装置100は、各物理サーバ20と第一の計算機システム40a内の物理サーバ10とに対してストレージ資源を提供する機能を有する。ストレージ装置100は、物理的には一つまたは複数の共有ストレージコントローラ150と、一つまたは複数のストレージメディア105から構成される。共有ストレージコントローラ150の機能により、ストレージ資源の論理的な構成が構築される。共有ストレージコントローラ150は一般的なコンピュータアーキテクチャを有し、プロセッサ(CPU)151がメモリ152上に読み込んだ制御プログラム群153bにより、ストレージ資源の制御に特化した機能を提供する。
本実施例において、それら制御プログラム群153には、少なくともサーバからのデータの読み込みあるいは書き込みの要求に対して応答を返すための応答プログラム153a、前述の論理的なストレージ構成を制御するためのストレージ制御プログラム153b、およびストレージ制御プログラム153bが制御するストレージ構成を保持するためのストレージ構成管理テーブル153cが含まれる。ストレージ資源に対するサーバからのデータ通信は、HBA51により接続されるSAN55またはNIC155により接続されるLAN65を介して行われる。ストレージ応答プログラム153aは、使用する通信方式に合わせて複数のプロトコルを解釈する。より具体的には、例えば、ストレージコントローラ150上のHBA51に対してはファイバチャネル接続、NIC155に対してはiSCSI接続あるいはNFSにより、ストレージ資源に対する読み書き機能を提供する。
管理コンピュータ200bから共有ストレージコントローラ150への通信は、主にNIC155により送受信される。
またプロセッサ151は、ストレージメディア105とのデータ送受信を行うためのSAS IF154、あるいはサーバへの応答を高速に行う目的で設置された一時データ領域であるキャッシュ153を活用して共有ストレージコントローラ150の機能を実現している。特にキャッシュ153は、不揮発性のストレージメディア105に比べて容量は小さいものの、非常に高速にデータを読み書きすることができるという特性を利用するものであり、サーバから要求されたデータがキャッシュ153上にある度合すなわちキャッシュヒット率が高ければ高いほど、IO性能の向上が見込める。
キャッシュ153からストレージメディア105への読み書きは、例えばパリティ値の計算およびRead Modify WriteなどCPU151への処理コストをも伴う。それら処理コストはIOの長さまたはシーケンシャルアクセスの比率などのIO特性と、メディアへアクセスするタイミングを左右する許容ダーティ率の閾値など、共有ストレージコントローラ150の設定とに応じて変化する。ここでいうIOの長さというのは、IOコマンド毎に転送されるデータサイズのことである。
ストレージ制御プログラム153bは、ストレージメディア105をそのままサーバに提供するのではなく、その上に論理的なデータ構造を定義し、ストレージ資源の効率的な運用管理を実現している。ストレージ制御プログラム153bは、第二の計算機システム40bにおける物理サーバ20および第一の計算機システム40aの物理サーバ10に対して、ストレージ資源をボリューム101という構成単位により提供する。
ストレージ装置100において、いずれのボリューム101も複数台のストレージメディア(ここではHDD)105から構成されるRAID(Redundant Arrays of Independent Disks)グループ104内のデータ構造として定義される。ただし、ストレージ資源の提供方法としては大別して、RAIDグループ104から直接的に定義されたボリューム101をサーバに提供する方法(物理ボリューム)と、一旦ストレージプール106という別の構成単位に組み入れ、さらにストレージプール106から割り当てたボリューム(仮想ボリューム107)をサーバに提供する方法の2種類がある。
後者は例えば、物理サーバ20用には仮想的に定義したボリューム107と認識させておきながら、実際にデータが書き込まれた容量のみをストレージプール106から割り当てるというストレージ容量仮想化機能を実現するために必要なデータ構造である。なお、一つのストレージ装置100に対して複数の共有ストレージコントローラ150が搭載される場合には、共有ストレージコントローラ150間を連結するデータバス156を通じてそれら複数の共有ストレージコントローラ150が連携し、単一のデータ領域に対して不整合が生じないよう制御される。ストレージ制御プログラム153bはさらに、ボリューム101から提供先物理サーバ20への論理的な接続であるパスを定義したり、あるいはストレージ装置100内で特定ボリュームのコピーを作成する機能を有する。
上述の、ストレージ制御プログラム153bにより制御されるデータ構造は、ストレージ構成管理テーブル153cにより保持される。ストレージ構成管理テーブル153cの具体例を図5に示す。
本実施例において、同テーブル153cは、ボリューム101に対して付与される単一のストレージ装置100内で一意な識別子(ボリュームID)501、およびボリュームの種別502、容量503、論理的な結線を示すパス504、ストレージ資源の提供先を示す接続先ID505、ボリュームを構成するメディア506を保持する。
前述の通り、RAIDグループ104から直接的に定義された物理ボリュームの場合は、種別フィールド502に「物理」と記載され、ストレージプール106から割り当てた仮想ボリューム107の場合は「仮想」と記載される。
メディアフィールド506は、割り当て元を示す情報であり、仮想ボリュームの場合はストレージプール106の識別子が記載され、物理ボリュームの場合はRAIDグループ104のストレージ階層および識別子が記載される。ストレージ階層は高速なものから例えば「T1」「T2」「T3」のような番号を付与される。
物理ボリュームが、ストレージプール106の構成要素である場合には、接続先IDフィールド505にはストレージプール106の識別子が記載される。また、当該ボリュームが第二の計算機システム40b内の物理サーバ20に提供されている場合には、接続先IDフィールド505には、物理サーバ20の識別子が記載される。当該ボリュームが第一の計算機システム40a内の物理サーバ10に提供されている場合には、接続先IDフィールド505には、第二の計算機システム40bに含まれないという意味で「External」と記載される。また、ストレージ制御プログラム153bにより、特定ボリュームのコピー(バックアップボリューム108)を作成する場合には、接続先IDフィールド505にはコピー元となるボリュームのボリュームIDが保持される。
図6は、第二の計算機システム40bの論理構成を示すブロック図である。同図に示すように第二の計算機システム40bでは、アプリケーション30bを稼働させる複数の物理サーバ20が、物理サーバ20よりも少数のストレージ装置100を共有して動作する。これらの装置を相互に接続するネットワーク50bは、物理的にはネットワーク65あるいはネットワーク55として実装される。
この形態のシステムでは、大量のデータコピーあるいはデータ容量の集約を専用のストレージ装置100側に搭載した機能により実現できるため、アプリケーション30bは物理サーバ20が提供する能力を効率的に利用することができる。このとき、第二の計算機システム40bは共有ストレージ型のストレージサブシステムを利用していると言える。
本計算機システム40bにおいては、物理サーバ20をベアメタルホストおよび仮想マシンホストの二通りの方法で稼働させる。ベアメタルホストとして利用される場合、物理サーバ20上に物理的な処理リソースを直接的に制御するOS32が稼働しており、アプリケーション管理者またはユーザがこれをゲストOS32として利用することで、直接的にホスト20の論理構成を制御することができる。
第一の計算機システム40aと同じく、ユーザがアプリケーション30bを稼働させる領域を指してインスタンス35と呼ぶことがある。このとき、ゲストOS32は、ストレージ装置100内のボリューム101に対して直接読み書きを行う。
一方、仮想マシンホストの場合は、物理サーバ20上にハイパバイザ31を稼働し、物理サーバ20の物理リソースを仮想的なリソースに区画する。このとき、第一の計算機システム40aと同じく、ゲストOS32が論理的には別の区画で稼働しており、ユーザがアプリケーション30bを稼働させるインスタンス35を構成する。
仮想マシンホスト上のハイパバイザ31の一般的な実装例によれば、ストレージ装置100内のボリューム101にさらにファイルシステムを定義し、ゲストOS32は仮想ディスク102と呼ばれるファイルをストレージ領域と認識する。したがって、ゲストOS32は仮想ディスク102を仮想的なボリューム103と認識して読み書きを行う。これにより、例えばハイパバイザ31が仮想ディスク102を別のボリューム101に移行した場合でも、ゲストOS32の設定を変えることなく継続的に読み書きが可能となる。
第二の計算機システム40bにおいて、管理コンピュータ200bは物理サーバ20またはある仮想マシンに稼働する管理プログラム群により構築される。管理コンピュータ200bは主にネットワーク50bを介して各物理サーバ20およびストレージ装置100、あるいはネットワーク55を構成するネットワークスイッチに接続し、それぞれの構成を管理する。管理コンピュータ200bを構成する管理プログラムの詳細については後述する。
<管理プログラムの構成>
図7は、管理コンピュータ200上で稼働する管理プログラムの構成を示す図である。管理コンピュータ200上の管理プログラムは複数のモジュールからなる。以下に管理プログラムの各モジュールの役割について説明する。第一の計算機システム40aおよび第二の計算機システム40bにおいて同様の機能を持つ管理プログラムは同じ名称を与えるが、同図に示すように、名称の後ろに便宜上AあるいはBの文字を加えて、第一の計算機システム40a上のプログラムか第二の計算機システム40b上のプログラムかを区別することがある。
第一の計算機システム40aを管理する管理コンピュータ200aには、管理プログラムのモジュールで構成される、アプリケーション構成管理部A201a、タスク実行管理部202、データ配置管理部204、およびデータ連携制御部A205aを備える。これらモジュールのそれぞれは一貫性を損なわない限りにおいて、複数個が同時に稼働していてもよく、また複数の物理サーバ上に分散して配置されていてもよい。
アプリケーション構成管理部A201aは、クラスタ11上で稼働するアプリケーション30aの構成を管理する。アプリケーション30aは、OSが提供する機能、および第一の計算機システム40aが提供する演算リソースを利用して動作している。アプリケーション構成管理部201aはそれらの設定を保持し、またユーザの指定にしたがって設定の変更やシステムへの反映を行う。アプリケーション構成管理部A201aが管理する設定とは、例えばアプリケーションを構成するソフトウェアの種別、導入先リソースを一意に特定する識別子、当該アプリケーションを利用するユーザや処理プロセスのアクセス制御情報、リソース割り当て量を調整するパラメータ、アプリケーションの稼働状態などのことを指す。
タスク実行管理部202は、アプリケーション構成管理部A201aの指定にしたがって、一連の処理(ジョブ)をタスクと呼ぶ処理に分割し、各物理サーバ10に配置する機能を担う。例えばユーザの要求するジョブが大容量のデータセットを扱うMapReduce処理の場合、データと処理の依存関係を考慮して分散処理ノード毎に割り振ったり、あるいはノード毎の計算結果を集計したりといったより細かな粒度の処理ステップに分割される。ここではその処理ステップのような実行単位をタスクと呼ぶ。
タスクを各ノードに配置するには、少なくともタスクの実行順序を定めるスケジュールと、各タスクの配置先ノードを決定するアルゴリズムが実装される。スケールアウト型基盤40aにおいては、並列実行により実現される処理性能と消費リソース量とのトレードオフや、ハードウェア故障や論理障害に対抗するための冗長度を考慮する必要があり、タスク実行管理部202によって各処理が非同期的かつ動的に配置される。このため、タスクの配置方法は一定でなく、スケールアウト型基盤40aにおけるその時々の稼働状態に依存して確定的でない。タスク実行管理部202によって管理されるタスクの情報は、同タスク実行管理部202が有するタスク管理テーブル203により保持される。
図8は、タスク管理テーブル203の具体例を示す図である。タスク実行管理部202に受け付けられたジョブは、タスクに分割される。各タスクは、同テーブルにおいてそれぞれジョブID203aとタスクID203bの組によって管理される。各タスクは、実行順序と並列化の効率に応じて定められ、配置すべき順に従って同タスク管理テーブル203のレコードとして保持される。以降、タスク管理テーブル203に保持されるレコードを指してタスク実行情報と呼ぶことがある。
各タスクには優先度が与えられ、例えば優先度の高いものから小さい数字を与えられる。優先度は優先度フィールド203cに保持される。
また、多重度203dにより同時に配置される分散処理ノード数あるいはプロセス数が管理される。
タスク実行管理部202によって配置先のノード10が決定された場合には、配置ノードIDフィールド203eに同ノードを識別する識別子が記録される。
また、同タスクがデータの読み書きに必要な領域をここではディレクトリと呼び、ディレクトリフィールド203fにその識別子(パス)が保持される。同ディレクトリに対してデータの利用方法が定義されている場合は属性203gとして同タスク管理テーブル203に保持される。
データの利用の方法は、より具体的には、読み込み専用データ「R」、書き込み専用データ「W」、どちらもあり得る不定のデータ「R/W」であることを指す。さらに、当該ジョブが第一の計算機システム40aに含まれない外部のデータソース、具体的には第二の計算機システム40bに含まれるデータを指定していた場合には、外部のデータであることを示す「E」を付加して「R(E)」「W(E)」などと記載する。
データ配置管理部204は、タスク実行に必要なディレクトリに対して、実際に割り当てられストレージデバイスの識別子およびデバイス上のアドレスを管理する。データ配置管理部204は、データ配置(装置の識別子またはLUN(Logical Unit Number)などのボリューム構造、あるいはデバイス上のブロックアドレス)を管理していても、それがどのアプリケーションがどのタスクで使用するデータ領域なのか、単体では把握できない。
データ配置管理部204は、上記データ配置をデータ配置管理テーブル206により管理しており、タスク実行情報に含まれるディレクトリと、各分散処理ノード10に配置されたデータとを対応づけられる。
データ配置管理テーブル206について具体例を図9に示す。本実施例において同データ配置管理テーブル206は、タスク毎に論理的なデータの格納先を示すディレクトリ206a、タスク実行管理部202によりタスクの割り当てを受けているか否かを示す割り当てフラグ206b、同データ領域がマスタであるか否かを示すマスタフラグ206c、当該データ領域がタスクから利用可能であるか等を示す状態206d、配置先の内蔵ストレージを示す配置先デバイス206eを保持する。
タスクからの利用方法が判別できる場合(例えばタスク管理テーブル203に属性203gが保持される場合)には、データ配置管理テーブル206に属性206fをさらに設けてもよい。属性206fの値はタスク管理テーブル203に保持された属性203gに準ずる。
配置先デバイス206eの表現形式としては、少なくとも当該ノードが属するクラスタ11内で一意であるようにノード名とドライブ番号との組み合わせを用いる。ただし、外部にあるデバイスについては、いずれのノードの内蔵ストレージにも確保されないという意味で、ノード名以外の名称、例えばストレージゲートウェイの名称「G01」を用いる。さらに、配置先デバイス206eには、ストレージコントローラ36aが制御に用いるために、メディア階層の種別を、例えば「(T1)」という形式で付記してもよい。
実際には、ストレージコントローラ36aがストレージ領域の確保、削除、複製、転送などの処理を担当するため、マスタ206cおよび状態206dは、各ノード上のストレージコントローラ36aが保持するメタデータに従う。
データ連携制御部A205aは、特に第一の計算機システム40aと第二の計算機システム40bとがそれぞれ保持するデータの授受を制御する。データ連携制御部A205aは、その他の管理コンピュータ200a上で稼働する管理プログラム群と通信し、各管理プログラムが管理する構成を解釈し得る。また、第二の計算機システム40bで稼働するデータ連携制御部B205bと管理情報を送受信することができ、本発明に特徴的な連携機能を実現する。
アプリケーション構成管理部B201bは、第二の計算機システム40b上に稼働するアプリケーション30bの構成を管理する。
リソース構成管理部207は、アプリケーション30bの稼働に必要なリソースの構成を管理する。第二の計算機システム40bでは、リソース設計を事前に実施し、必要なリソースを予約する管理方法が一般的であるから、第一の計算機システム40aと比較して変更が少ないという意味で静的である。
図10は、リソース構成管理部207により管理されるリソース構成の一例を示す図である。リソース構成管理部207により管理されるリソース構成の具体例を図10のリソース構成管理テーブル208を用いて説明する。
リソース構成管理テーブル208には、インスタンス識別子208a毎に、仮想マシンであるかベアメタルホストであるかを示す種別208b、稼働する物理サーバを示す物理サーバ識別子208c、使用するストレージ資源(ボリューム101)を一意に特定するターゲットID208e、およびLUN208fの組を状態208dと合わせて保持する。
さらに、ゲストOS32が管理するマウントポイントを示すパーティション208gを保持する。一般的に、アプリケーション30bが使用するファイルの種別毎にストレージ要件が異なるため、リソース構成管理部207は、パーティション208gにより格納先のデバイスを調整する。
より具体的には、アプリケーション30bの一例としてデータベースを想定した場合、データ本体を格納するために大容量のパーティション「/dev/db」と、トランザクション処理が完了する前の更新ログを格納するために書き込み性能の高いパーティション「/dev/log」とを区別して用意し、使用するボリュームを分離する。バックアップの取得中など、データを静止化する必要がある場合には、当該パーティションへの書き込みを停止し、この時の状態208dは例えば「ロック中」と表現される。リソース構成管理部207は、各インスタンスを作成する際にこれら構成情報をリソース構成管理テーブル208に記録し、また構成が変更された場合に同テーブルを更新する。
データ連携制御部B205bは、第一の計算機システム40aにて稼働するデータ連携制御部A205aと協調して動作し、第二の計算機システム40bが保持するデータをデータ連携制御部A205aへ転送する。
第二の計算機システム40bは、第一の計算機システム40aと同じく、全体としては随時稼働中の状態にある。したがって、第一の計算機システム40aが第二の計算機システム40b内のデータを要求した際、データの静止化や転送のやり方を誤ると、第二の計算機システム40bのエンドユーザに対してサービス応答の遅延あるいは欠損などの不利益が生じかねない。
本実施形態では、このようなサービスレベルの低下を最小化しつつ、双方の計算機システムが有するデータおよび処理性能をともに活用できるようにデータ転送の管理が行われる。
<データ転送の管理方式>
ここでは、第一の計算機システム40a上で実行されるジョブおよびタスクに応じて、必要なデータを第二の計算機システム40bから第一の計算機システム40aに転送するを例に取り、データ転送の管理方法について説明する。
データ転送にかかる処理は大きく分けて2つの処理を含む。ひとつ目の処理は、第一の計算機システム40aが認識するデータ配置と第二の計算機システム40bが認識するデータ配置との対応関係を把握するための処理である。この処理は図11を参照して後述する。二つ目の処理は、第一の計算機システム40aにおける需要を判別して第二の計算機システム40bから第一の計算機システム40aへデータを転送し、第一の計算機システム40a内で展開する処理である。この処理は図12を参照して後述する。
まず、一つ目の処理について説明する。
図11は、ユーザが第一の計算機システム40aでジョブを投入してから第二の計算機システム40bにて必要なデータが特定されるまでの流れを示すシーケンス図である。
第一の計算機システム40aと第二の計算機システム40bでは、例え実体の所在が同じデータであっても、それぞれ異なる論理アドレスを付与している。本実施形態で対象とされているようなデータの連携を実現するには、異なるアーキテクチャを持つ計算機システム間におけるデータ配置の対応関係を把握する手段が必要となる。
ステップ701において、ユーザ(ジョブ要求者700)がクライアントコンピュータ250からアプリケーション構成管理部A201aに対して、所望するジョブを投入する。アプリケーション構成管理部A201aは、ジョブ要求者700の要求したジョブに設定上の問題がなければ受信した旨をクライアントコンピュータ250に応答する。このとき、ジョブ要求者700が第一の計算機システム40aにない外部のデータソースを利用する場合には、ジョブプログラムまたはディレクトリにその識別子を指定する。識別子の形式としては、URI(Uniform Resource Identifier)、データベースの接続文字列(コネクションストリング)、NFSのマウントポイント、あるいはストレージゲートウェイ内の一部領域を指すパスで識別子を表わすという形式を利用する。
ステップ702において、アプリケーション構成管理部A201aは、タスク実行管理部202に対してジョブ要求者700が投入したジョブを新たに登録する。タスク実行管理部202は、アプリケーション構成管理部A201aから受信したジョブを複数のタスクに分割し、タスク管理テーブル203に保持する(ステップ704)。これにより、他の管理プログラムから問い合わせがあった場合には、ジョブおよび関連するタスクの実行状態およびスケジュールなどを伝えられるようタスク実行情報が管理される(ステップ703)。
一方、データ連携制御部A205aはアプリケーション構成管理部A201aに対して定期的に確認を行うなどの方法により、新たなジョブが投入されているかどうか監視する。ステップ705において、新たなジョブの投入が確認された場合には、データ連携制御部A205aはタスク実行管理部202のタスク管理テーブル203を検索し、当該ジョブに対応したタスクのタスク実行情報を取得する。このタスク実行情報には、実行される予定のタスクについて、優先度およびディレクトリといった情報が含まれている。データ連携制御部A205aはこのなかから第二の計算機システム40bに格納されているデータにアクセスするタスク(利用するディレクトリが第一の計算機システム40aにないことを示す属性203gが付与されたもの)を判別する。
データ連携制御部A205aはさらに、第一の計算機システム40aにないと判別されたディレクトリの配置先をデータ配置管理部204に問い合わせ、データ配置管理部204がどのデバイスから当該データソースを読み込もうとしているかを判別する(ステップ706)。より具体的には、データ配置管理テーブル206における配置先デバイス206eのフィールドの値を参照し、例えばストレージゲートウェイ(G01等)と記載されたディレクトリを走査し、該当するディレクトリの配置先デバイス206eのフィールドに含まれているデバイス識別子(D101(T1)等)を取得する。データ連携制御部A205aは、得られたデバイス識別子とタスク実行情報とを合わせて、第二の計算機システム40b上のデータ連携制御部B205bへ通知する。
データ連携制御部B205bに伝えられたタスク実行情報には、第一の計算機システム40aが第二の計算機システム40b内のリソースに対して付与したアドレス(デバイス情報)が含まれる。前述のように、例えば、第一の計算機システム40a上に稼働するWebアプリケーションが、第二の計算機システム40bにあるデータベースに接続するための接続文字列、NFSのマウントポイント、あるいはiSCSI接続のIQN(iSCSI Qualified Name)、SCSI ID(ターゲットIDおよびLUNの組など)がこれにあたる。
このようなアクセス情報(アドレス)は、第一の計算機システム40aが外部リソースに対して付与したものであるから、第二の計算機システム40b内では別のアドレスが付与されていることが一般的である。したがって、ステップ707において、データ連携制御部B205bは、このアクセス情報を、第二の計算機システム40bにおけるアドレスへと読み替える手順が必要となる。
このため、データ連携制御部B205bは、リソース構成管理部207から対応するストレージリソースのアドレス(ターゲットIDとLUNの組)および利用状況を取得し(ステップ708)、さらに共有ストレージコントローラ150へ問い合わせることにより(ステップ709)、必要なデータを格納したストレージ領域の当該ストレージ構成を一意に特定する。
これら管理プログラム群の一連の処理として、より具体的には、まず、ストレージ構成管理テーブル153cの接続先ID505の中から、外部すなわち本実施例では第一の計算機システム40aに向けて提供されたものを検索する。さらに、その外部に向けて提供されているパス504と同じボリューム501を利用している接続先ID505とパス504の組を特定する。さらに、その接続先ID505とパス504の組によってリソース構成管理テーブル208を検索し、該当するデバイスが属する物理サーバのインスタンスID208aとそのデバイスの利用の状態208dを特定する。
例えば、図5において、接続先ID505が「External」と記載された、すなわち外部へ接続されたパスが属するボリュームID「VOL201」のボリュームは、他の接続先IDとして「Host 01」を持ち、ターゲットID「TRG0」、LUN「LUN3」で接続されている。このとき、図10において、ターゲットID「TRG0」、LUN「LUN3」で接続されているところを探すと、物理サーバID208cが「Host 01」でインスタンスID208aが「INS-01-032」となっているターゲットID208e「TRG0」でLUN208f「3」のデバイスが、それに対応していることが分かる。
図12は、第二の計算機システムのデータを第一の計算機システムに展開する処理を示すシーケンス図である。同図は、タスクの実行時期が迫った段階で、第二の計算機システム40bから第一の計算機システム40aへ必要なデータが転送され、第一の計算機システム40aの分散ストレージシステムにおいてデータの展開が行われる一連の処理を示している。図11に示した前段の処理により、第一の計算機システム40aと第二の計算機システム40bにおけるデータの対応関係が把握できているものとする。
ステップ710において、第一の計算機システム40a上のデータ連携制御部A205aは、最新のタスク実行情報をタスク実行管理部202に要求して取得し、当該タスク実行情報を参照することにより、タスクが配置されるノード10を調べる(ステップ711)。さらに、データ連携制御部A205aは、第二の計算機システム40b上のデータ連携制御部B205bに対してデータ転送の開始を要求する。また、データ連携制御部A205aは、データ配置については当該タスクのディレクトリパスをもとにデータ配置管理部204へ問い合わせ、ロード先となる配置先デバイス206e、マスタの配置先、および展開処理の状態206dなどの情報を取得する(ステップ712)。
ステップ713において、第二の計算機システム40b上のデータ連携制御部B205bはデータ転送の要求を受け、当該データ転送を行うためのリソースの確保を開始する。その際、データ連携制御部B205bは、他の第二の計算機システム40bのアプリケーションによりアクセスされないよう、まずリソース構成管理部207に要求して該当するボリューム101のロックを取得する(ステップ714)。ロックの取得に成功した場合には、データ連携制御部B205bは、当該ボリュームのデータを管理する第二の計算機システム40b内の共有ストレージコントローラ150に対してデータの転送を指示する。
共有ストレージコントローラ150は、データ転送の指示にしたがって、実際に第一の計算機システム40aからの要求を待ちうける(ステップ715)。
ただし、アクセスされるボリューム101に、その代替となるバックアップボリューム108が存在する場合、バックアップボリューム108に対して外部へ接続するためのパスを設定しバックアップ元ボリューム101のロックを例外的に解放するなど準備を行う(ステップ716)。
一方、データ連携制御部A205aは、ステップ717において、第二の計算機システム40bから転送される予定のデータをどのように第一の計算機システム40a上へ配置する(展開する)かを特定のアルゴリズムにしたがって算出する。この展開方法を算出するアルゴリズムとして、より具体的には、タスクが配置される分散処理ノード10に対して応答速度が最も良い配置先デバイス206eを選ぶものであったり、複数ある分散処理ノード10上の分散ストレージコントローラ36のうちその時点での処理負荷が少ないノードを選ぶものであったり、あるいはタスクの優先度に応じてノード10上のストレージ階層(SSD108、HDD105、あるいはフラッシュ29)を選択するものが考えられる。
これらストレージコントローラ36と分散処理ノードとの処理負荷の関係は、データ配置管理テーブル206に記載の配置先デバイス206eと、タスク管理テーブル203に記載の配置ノード203eを集計することにより制御することができる。例えば、タスクでアクセスされるマスタあるいはコピーのデータを、そのタスクが配置される分散処理ノードの内蔵ストレージに展開するように配置先デバイス206eを指定すれば、IO応答の高速化が見込める。
データ連携制御部A205aは前述のアルゴリズムによって転送対象のデータについて転送順序および展開方法を決定し、データ配置管理部204に対してデータの展開を指示する。その指示を受けたデータ配置管理部204は、該当するストレージゲートウェイに対してデータの取得を指示する(ステップ718)。ここでいうデータの取得はデータのコピーあるいは読み込みである。
第一の計算機システム40a内の分散ストレージコントローラ36は、第二の計算機システム40b内の共有ストレージコントローラ150に要求し、共有ストレージコントローラ150は要求を受けて分散ストレージコントローラ36へデータを転送する。それにより、第一の計算機システム40a内の分散ストレージコントローラ36は、ストレージゲートウェイを介して、第二の計算機システム40b内の共有ストレージコントローラ150から当該データを取得する。取得されたデータは、データ配置管理部204からの指定により、各ノード10の内蔵ストレージ37へと展開される。
データの転送が完了した後、第二の計算機システム40bのデータ連携制御部B205bは、リソース構成管理部207にロック解放を指示し(ステップ720)、第一の計算機システム40aのデータ連携制御部A205aに制御を戻す。
本実施例によれば、スケールアウト型基盤(第一の計算機システム40a)において定義されたジョブおよびタスクの実行情報をもとに、データを効率的にスケールアップ型基盤(第二の計算機システム40b)からスケールアウト型基盤に転送する方法および計算機システムが提供される。これにより、スケールアウト型基盤およびスケールアップ型基盤の間のデータ通信量および記憶容量を削減でき、それら二つを跨った処理の実行にかかる時間を短縮することができる。その結果、計算機システムの利用者は処理あたりにかかるコストを削減し、また収集し、保管したデータをより有用に活用できるといった利益を享受できる。
また、本実施例によれば、複合計算機システムは、リソースプールを構成する1つ以上(好適には複数(以下同様))の分散ストレージをそれぞれ有しジョブの並列分散処理を実行する1つ以上の分散処理計算機(分散処理ノード)を有する第一の計算機システム40aと、1つ以上の計算機が共有ストレージを共有し、第一の計算機システム40aと接続してデータを送受信する第二の計算機システム40bと、を有している。第一の計算機システム40aが、ジョブを1つ以上のタスクに分割し、そのタスクでアクセスするデータの分散ストレージへの展開方法を決定し、データを第二の計算機システム40bに要求する。第二の計算機システム40bが、そのデータを第一の計算機システム40aに送信すると、第一の計算機システム40aが、受信したデータをその展開方法によって分散ストレージに展開する。これによれば、スケールアップ型計算機システムである第二の計算機システム40bのデータをスケールアウト型計算機システムである第一の計算機システム40aに適した展開方法で第一の計算機システム40a内の分散ストレージに展開するので、スケールアップ型計算機システムとスケールアウト型計算機システムの好適なデータ連携を実現することができる。
また、本実施例では、第二の計算機システム40bが、第一の計算機システム40aにおける論理アドレス(第一の論理アドレス)と第二の計算機システム40bにおける論理アドレス(第二の論理アドレス)とを対応づける管理情報(ストレージ構成管理テーブル153c、リソース構成管理テーブル208)を予め保持している。第一の計算機システム40aが、タスクでアクセスされるデータの第一の論理アドレスを第二の計算機システム40bに送信する。第二の計算機システム40bが、受信した第一の論理アドレスと管理情報に基づいて、データの第二の論理アドレスを特定し、第二の論理アドレスを用いてデータを取得して第一の計算機システム40aに送信する。これによれば、スケールアップ型計算機システムである第二の計算機システム40bとスケールアウト型計算機システムである第一の計算機システム40aの論理アドレスとを対応づけることができるので、スケールアップ型計算機システムとスケールアウト型計算機システムとで異なる論理アドレスが用いられていてもデータの連携が可能である。
また、本実施例では、第一の計算機システム40aは、タスクの実行要求が発生したとき、データの展開方法の計算を開始する前に、第二の計算機システム40bにデータを送信する準備を要求する。第二の計算機システム40bは、準備の要求を受けると、データの送信を準備して第一の計算機システム40aからのデータの送信の要求を待ちうける。これによれば、第一の計算機システム40aで展開方法の計算をしている間に第二の計算機システム40bでデータを送信する準備をすることができるので、第一の計算機システム40aと第二の計算機システム40bのデータ連携を効率よく行うことができる。
また、本実施例では、第一の計算機システム40aは、タスクでアクセスされるデータを、そのタスクを実行する分散処理計算機の近傍にある分散ストレージに配置するように展開方法を決定する。これによれば、スケールアウト型計算機システムにおいて、分散処理計算機とその分散処理計算機がアクセスする分散ストレージを近くに配置することができるので、ストレージへのアクセスを効率よく行えるようになる。
また、本実施例では、第一の計算機システム40aは、タスクでアクセスされるデータを、そのタスクを実行する分散処理計算機が有する分散ストレージに配置するように展開方法を決定してもよい。
これによれば、スケールアウト型計算機システムにおいて、分散処理計算機がアクセスするストレージをその分散処理計算機内部に配置することができるので、ストレージへのアクセスを効率よく行えるようになる。
また、本実施例では、第一の計算機システム40aは、1つ以上の分散ストレージに負荷を分散するように展開方法を決定する。これによれば、スケールアウト型計算機システムにおいて、分散ストレージの負荷が偏らないようにデータが展開されるので、アクセスが特定のストレージ装置に集中するのを防止し、アクセスを効率よく行えるようになる。
また、本実施例では、ジョブが投入されると、第一の計算機システム40aは、タスクでアクセスされるデータの第一の論理アドレスを第二の計算機システム40bに送信し、第二の計算機システム40bが、受信した第一の論理アドレスに基づいてデータの第二の論理アドレスを特定する。タスクの実行要求が発生すると、第一の計算機システム40aは、タスクでアクセスするデータの分散ストレージへの展開方法を決定し、第二の計算機システム40bにデータを要求し、第二の計算機システム40bは、第二の論理アドレスを用いてデータを取得して第一の計算機システム40aに送信し、第一の計算機システム40aは、第二の計算機システム40bから送信されたデータをその展開方法によって分散ストレージに展開し、タスクを実行する。これによれば、ジョブ投入時にスケールアウト型計算機システムとスケールアップ型計算機システムの論理アドレスの対応づけを行い、タスクの実行要求発生時にスケールアップ型計算機システムからスケールアウト型計算機システムにデータを送信し、スケールアウト型計算機システムでタスクを実行するので、タスクの実行に必要なデータを効率よくかつ迅速にスケールアウト型計算機システムに展開することができる。
また本実施例では、分散処理計算機(分散処理ノード)は、CPU21と、メモリ22と、フラッシュメモリ29とを有するコンピュータであり、フラッシュメモリ29上に分散ストレージが構成され、CPU21がソフトウェアプログラムを実行することにより実現される分散ストレージコントローラ36aが、管理コンピュータ200aのデータ配置管理モジュール(データ配置管理部204)から指示された展開方法によりデータを分散ストレージに展開する。
また、本実施例は、各計算機システムにおいて実行されるアプリケーションの種類あるは仕様を特に制限するものではないが、より具体的には次のような活用例が挙げられる。
本実施例の複合計算機システムのデータ分析用途への適用例では、例えばスケールアップ型基盤に格納した商品取引のトランザクションを、スケールアウト型基盤上で実行する顧客消費性向の分析に利用する例が考えられる。このとき、データ連携制御部A205aが過去の商品取引情報を参照しようとしているタスクを検知し、分析処理に先んじてスケールアップ型基盤から当該トランザクションデータを転送させる。
分析処理に先んじて必要なデータをスケールアップ型基盤から取得しておくので、スケールアウト型基盤では分析処理を行うとき当該データの所在を特に気にすることなく処理を継続することができる。例えば、分析処理を行いながら、スケールアップ型基盤からスケールアウト型基盤へのデータ転送の完了を待つ処理、転送されたデータに誤りが無いか検算する処理が必要ない。また、スケールアウト型基盤においてスケールアップ型基盤が蓄積したデータを分析を行うことができるので、分析処理に取り入れる情報の幅が広がり、分析精度を高めることができる。
また、スケールアップ型基盤のデータをスケールアウト型基盤に転送し、展開してスケールアウト型基盤での分析処理に利用するので、スケールアップ型基盤においてデータがロックされている時間を短縮することができる。例えばスケールアップ型基盤が主目的として商品取引のデータベースとして利用されている場合、データベースの更新を停止しておく時間が短くて済む。
また、本実施例による複合計算機システムのWebアプリケーション用途への適用例では、スケールアウト型基盤は多数のクライアントへ動画を並列配信する処理を担い、画像データあるいはクライアントサイドで実行するプログラムなどのような静的コンテンツをスケールアップ型基盤に保持し必要に応じてスケールアウト型基盤へ展開して利用するという例が考えられる。
具体的には、エンドユーザがWebサイトにログインしたことを契機として、次に閲覧されるページを判別する。更に、スケールアップ型基盤における当該ページの静的コンテンツが更新されているか否か判定し、更新されていればスケールアップ型基盤からスケールアウト型基盤へ最新の静的コンテンツを転送する。静的コンテンツの開発および更新に関する処理をスケールアップ型基盤で行い、スケールアウト型基盤では、配信する動画コンテンツの制作あるいはプログラムのデバッグを集中的に行う。
スケールアウト型基盤は大量のクライアントに対して参照専用のデータを並列に送信する処理に適しており、そのような用途ではクライアントからの要求量に応じて展開する規模を調整することができる。
一方、スケールアップ型基盤に静的コンテンツの開発を集約することで、Webサイト全体の一貫性を担保すると同時にコンテンツの不必要な転送を抑制することができる。また、キャンペーンサイトなど、短期間にエンドユーザが集中してアクセスすると期待されるページについてはデータを展開する数を増やすなど柔軟に構成するような、目的に応じて積極的に投資効率を高める用途にもスケールアップ型基盤で容易に対応することができる。
また、本実施例による複合計算機システムのVDI(Virtual Desktop Infrastructure、仮想デスクトップ基盤)へ適用することもできる。その適用例では、例えば利用企業が従業員に使用させる仮想デスクトップの起動用マスタイメージを本社の管理ポリシに従ってスケールアップ型基盤内に作成しておく。スケールアウト型基盤では、支社などに構築したリモートサイトで従業員がVDIを使用する際にスケールアップ型基盤からスケールアウト型基盤に起動用マスタイメージを転送するといった例が考えられる。
このとき、リモートサイト側で従業員がログインジョブを要求した順序あるいは時期に従ってスケールアップ型基盤からスケールアウト型基盤に転送し、従業員の端末に表示するマスタイメージを変えることも可能である。ログインジョブが要求された順序あるいは時期に基づき転送する起動用マスタイメージの種類を判別し、仮想デスクトップを稼働させるノードの近傍へデータを展開する。それにより、リモートサイト側における起動時間あるいはログイン時間を短縮するとともに必要な記憶容量を削減することもできる。一方で、起動用マスタイメージをスケールアップ型基盤で集中的に管理することで、セキュリティパッチを一貫して適用したり、従業員向けのソフトウェアに対して一括で所定の設定を適用したりといったことが容易に行える。そのガバナンスの高さを確保しながら、集中管理を行うスケールアップ型基盤がボトルネックになるのを抑制することができる。
実施例1は、スケールアップ型基盤からスケールアウト型基盤へデータをロードする複合計算機システムを例示したが、それに限定する必要はない。他の例として実施例2では、スケールアウト型基盤からスケールアップ型基盤へ効率的にデータをロードする計算機システムを例示する。
前述のように、スケールアウト型基盤は大規模な並列分散処理を得意とし、スケールアップ型基盤は単体で信頼性あるいは処理速度が求められる処理を得意としている。したがって、アクセスログや非構造データ(自然言語の文章や画像データなど)をスケールアウト型基盤で処理し、その結果をスケールアップ型基盤上のアプリケーションに読み込ませるといった好適な連携が考えられる。
実施例1に示した計算機システムのシステム構成と計算機システムに格納されている管理プログラムは、スケールアップ型基盤からスケールアウト型基盤へのデータ転送だけでなく、スケールアウト型基盤からスケールアップ型基盤へのデータ転送をも実現する。
より具体的には、例えば、第二の計算機システム40bで必要となるであろう第一の計算機システム40a上のデータに対してデータ展開先ノードにストレージゲートウェイ36bを含むようにデータ配置管理テーブル206を編集しておき、第二の計算機システム40b内のストレージ装置100内に確保したボリューム101をデータの書き出し先に指定する。
このとき、データ連携制御部A205aおよびデータ連携制御部B205bは、ジョブを分割した複数のタスクを実行する順序と、データをストレージゲートウェイ36bから転送するタイミングを制御することができる。また、その制御により効率的にデータを転送することができる。
本実施例における計算機システム40a、40bの物理構成および論理構成は実施例1と同じである。これ以降、特に区別が必要な場合を除き、本実施例における各用語は第一の実施例と同じものを指す。
図13は、実施例2におけるデータ転送動作を示す図である。
本実施例では、第一の計算機システム40aからデータを転送するための領域を第二の計算機システム40b内に仮想ボリューム107として確保する。
第二の計算機システム40bにおいて、データ連携制御部B205bは、共有ストレージコントローラ150に対して仮想ボリューム107の作成を指示し、さらに、第一の計算機40aに公開するためのポート732を設定する。
第二の計算機システム40bのデータ連携制御部B205bは、第一の計算機システム40aのデータ連携制御部A205aと連携し、分散ストレージコントローラ36aの一部をストレージゲートウェイ36bとして設定し、内蔵ストレージ37と仮想ボリューム107とをマッピングする。これにより、第一の計算機システム40aから第二の計算機システム40b内の仮想ボリューム107を分散ファイルシステム730の一部として利用可能になる。
第二の計算機システム40bにおいてアプリケーション30bを構築する際に、主たる処理に使用するボリューム101に加えて上述の仮想ボリューム107を設ける場合を考える。このとき、第二の計算機システム40bのデータ連携制御部B205bは、データ連携制御部A205aを経由して、第一の計算機システム40a向けのジョブを作成し、アプリケーション構成管理部A201aに投入する。
その後、図11に示したシーケンスと同様に、タスク実行管理部202によるタスクの生成(ステップ704)が行われ、タスクおよび配置先デバイスがデータ配置管理部204により設定される。ここでデータ連携制御部A205aは、集計処理(例えば各タスクの処理結果の論理和や論理積などジョブの最終結果を得る処理)を担当するタスクをタスク管理テーブル203から検索し、データを格納するディレクトリ203fを特定する。さらに、データ配置管理部204を経由して、データ配置管理テーブル206に保持された当該ディレクトリ206aの配置先デバイス206eをストレージゲートウェイ36bが管理する第二の計算機システム40b向け領域のデバイスIDに変更する。このとき、当該デバイスがマスタ(演算プロセスから直接的に書き込みが行われる領域)でなくとも、分散ストレージコントローラ36aの自律的な動作により当該デバイスへと複製(図13中の集約動作731)される。このように、実際に集計処理が行われる時のみ第一の計算機システム40aから第二の計算機システム40bへのデータ転送733が行われる。
第二の計算機システム40bでは、仮想ボリューム107へアクセスすることにより、あたかも同一システム内に集計結果が生成されたように第一の計算機システム40aの処理結果を参照することができる。また、第二の計算機システム40bは、第一の計算機システム40a向けの処理中データを常に更新しておく必要はなく、第一の計算機システム40aにおける一連のタスクが完了した時、必要な処理結果のみを転送すればよい。
以上、本実施例にて説明したように、複合計算機システムは、第二の計算機システム40bから第一の計算機システム40aへのデータ転送のみならず、第一の計算機システム40aから第二の計算機システム40bへのデータ転送も効率的に実現する。
本実施例のより具体的な適用事例としては、例えばWebアプリケーション処理のログを利用したサーバプログラムの改良が挙げられる。スケールアウト型基盤(第一の計算機システム40a)にユーザ要求に応じて自動スケーリングするWebアプリケーションサーバを展開しておき、スケールアップ型基盤(第二の計算機システム40b)には同アプリケーションの開発環境を構築する。データ連携制御部B205bは、同アプリケーションの処理ステップとその所要時間などのログを集計して全体のボトルネックとなっている処理ステップを抽出するジョブをアプリケーション構成管理部A201aに投入する。このとき、データ展開時にストレージゲートウェイ36bを配置先デバイスに含むように設定しておくことで、集計結果をスケールアップ型基盤(第二の計算機システム40b)にロードする。これにより、スケールアップ型基盤においてアプリケーションサーバのプログラム開発を行う開発者に対し、ユーザの要求度合が高く、Webアプリケーション中の処理で最も高速化および処理方法の改良が期待される処理ステップを提示することができる。
この適用事例によれば、特別にサーバプログラムの性能テストを作成して実施することなく、かつ実際のユーザ行動とWebアプリケーションの動作を反映しているという点において精度が高い改良を行うことができ、かつそのために必要なデータ転送を最小限に抑えられる。
以下、実施例2の構成について整理して説明する。
実施例2の複合計算機システムは、実施例1と同様に、リソースプールを構成する1つ以上の分散ストレージと分散ストレージ37を制御する1つ以上の分散ストレージコントローラ36aをそれぞれ有しジョブの並列分散処理を実行する1つ以上の分散処理計算機10を有する第一の計算機システム40aと、1つ以上の計算機20が共有ストレージを共有し、第一の計算機システム40aと接続してデータを送受信する第二の計算機システム40bと、を有している。第二の計算機システム40bは、仮想ボリュームを作成して第一の計算機システム40aに公開する。第一の計算機システム40aが、少なくとも一部の分散ストレージコントローラ36aをゲートウェイに設定することにより仮想ボリュームを利用可能にする。さらに、第二の計算機システム40bが、第一の計算機システム40aにジョブを投入する。第一の計算機システム40aが、そのジョブを処理して処理結果を仮想ボリュームを介して第二の計算機システム40bに返す。
これによれば、スケールアップ型基盤である第二の計算機システム40bは仮想ボリュームを介して第一の計算機システム40aに処理を実行させるので、あたかも同一システム内で仮想ボリュームを用いて処理しているかのうように、ジョブをスケールアップ型基盤で実行させることが可能となる。
また、本実施例では、第二の計算機システム40bが、第一の計算機システム40aにジョブを投入すると、第一の計算機システム40aが、そのジョブを複数のタスクに分割して並列分散処理し、複数のタスクのうち処理結果を集約するタスクの集約処理結果を格納するディレクトリの配置先をゲートウェイが管理する第二の計算機システム40bの領域に設定する。更に、第二の計算機システム40bは、仮想ボリュームへアクセスすることにより、第一の計算機システム40aの集約処理結果を参照する。
これによれば、第一の計算機システム40aがジョブを複数のタスクに分割して並列分散処理し、その並列分散処理の処理結果を集約し、集約した最終的な処理結果を第二の計算機システム40bから参照可能にするので、第二の計算機システム40bは第一の計算機システム40aでのジョブの処理の仕方を意識することなく、第一の計算機システム40aのリソースを利用することができる。
また、本実施例では、第二の計算機システム40bは、アプリケーションを構築するときにそのアプリケーションに含まれる所定のジョブを第一の計算機システム40aに投入する。
これによれば、第二の計算機システム40bにアプリケーションを構築する際に、そのアプリケーションに含まれる、スケールアウト型基盤に好適な処理を実現するジョブを第一の計算機システム40aに割り当てるので、アプリケーションの各ジョブをその性質にあった計算機システムで実行し、アプリケーション全体として効率よく実行することが可能となる。例えば、主たる処理は信頼性あるいは処理速度が求められるようなアプリケーションの一部にアクセスログや非構造化データを分析するような大規模な処理が含まれているような場合に好適な構成を提供することができる。
また、本実施例では、第二の計算機システム40bは、Webアプリケーションの開発環境が構築されており、第一の計算機システム40aは、そのWebアプリケーションのアプリケーションサーバが展開されている。第二の計算機システム40bは、Webアプリケーションを実行したログを分析してボトルネックになっている処理ステップを抽出するというジョブを第一の計算機システム40aに投入する。第一の計算機システム40aがボトルネックの処理ステップを抽出して第二の計算機システム40aに送る。第二の計算機システム40bがボトルネックの処理ステップを開発者に提示する。
これによれば、Webアプリケーションが動作してログが生成される計算機システムであり、かつ、大規模な処理に適したスケールアウト型基盤である第一の計算機システム40aにて、Webアプリケーションのログを解析してボトルネットを抽出するので、Webアプリケーションの開発において、システム間のログデータの転送を抑制し、かつ、大規模な処理を好適な計算機システムでログ解析によるボトルネック抽出を実行することができる。
また、本実施例では、第二の計算機システム40bが第一の計算機システム40aに投入するジョブは、Webアプリケーションのログに基づきそれぞれの処理ステップの所要時間を集計し、所要時間に基づきボトルネックとなっている処理ステップを抽出するというジョブである。これによれば、所要時間が長い処理ステップを抽出して開発者に提示できるので、Webアプリケーションの処理の中で所要時間の長い処理ステップを選んでそれらの改善を図ることができる。
第一の計算機システム40aに展開されるアプリケーションサーバは、リソースの自動スケーリングを行う機能を備えたアプリケーションサーバであり、ユーザから要求される度合いが高くかつボトルネックになっている処理ステップを示す情報を第二の計算機システム40bから開発者に提示する。
これによれば、ユーザから要求される度合いが高く、かつ、所要時間の長い処理ステップを開発者に提示するので、開発者は比較的改善が期待される処理ステップを選んで効率よく改善を図ることができる。
上述した実施例は、本発明の説明のための例示であり、本発明の範囲をそれらの実施例にのみ限定する趣旨ではない。当業者は、本発明の要旨を逸脱することなしに、他の様々な態様で本発明を実施することができる。
10…ノード、物理サーバ、分散処理ノード、100…ストレージ装置、101…ボリューム、102…仮想ディスク、103…ボリューム、104…RAIDグループ、105…HDD、ストレージメディア、106…ストレージプール、107…仮想ボリューム、108…SSD、バックアップボリューム、11…クラスタ、12…アプリケーション、150…共有ストレージコントローラ、151…CPU、プロセッサ、152…メモリ、153a…応答プログラム、153b…ストレージ制御プログラム、153c…ストレージ構成管理テーブル、154…SAS IF、155…NIC、156…データバス、20…ホスト、20…物理サーバ、200…管理コンピュータ、200a…管理コンピュータ、200b…管理コンピュータ、201…VOL、201a…アプリケーション構成管理部A、201b…アプリケーション構成管理部B、202…タスク実行管理部、203…タスク管理テーブル、203a…ジョブID、203b…タスクID、203c…優先度フィールド、203d…多重度、203e…配置ノードIDフィールド、203f…ディレクトリフィールド、203g…属性、204…データ配置管理部、205a…データ連携制御部A、205b…データ連携制御部B、206…データ配置管理テーブル、206a…当該ディレクトリ、206b…フラグ、206c…マスタフラグ、206d…状態、206e…配置先デバイス、206f…属性、207…リソース構成管理部、208…リソース構成管理テーブル、208a…インスタンスID、インスタンス識別子、208b…種別、208c…物理サーバID、物理サーバ識別子、208d…利用状態、208e…ターゲットID、208f…LUN、208g…パーティション、21…CPU、22…メモリ、23…データバス、24…PCIeスイッチ、25…NIC、250…クライアントコンピュータ、27…ディスクコントローラ、29…フラッシュメモリ、3…LUN、30a…アプリケーション、30b…アプリケーション、31…ハイパバイザ、32…OS、35…インスタンス、36…分散ストレージコントローラ、ストレージコントローラ、36a…ストレージコントローラ、分散ストレージコントローラ、36b…ストレージゲートウェイ、36c…ストレージアプライアンス、37…内蔵ストレージ、40a…スケールアウト型基盤、計算機システム、40b…スケールアップ型基盤、計算機システム、501…ボリューム、502…種別、503…容量、504…パス、505…接続先ID、506…メディア、50a…ネットワーク、50b…ネットワーク、50c…ネットワーク、51…HBA、55…SAN、ネットワーク、65…LAN、ネットワーク、700…ジョブ要求者、730…分散ファイルシステム、731…集約動作、732…ポート、733…データ転送
Claims (14)
- リソースプールを構成する1つ以上の分散ストレージをそれぞれ有しジョブの並列分散処理を実行する1つ以上の分散処理計算機を有する第一の計算機システムと、
1つ以上の計算機が共有ストレージを共有し、前記第一の計算機システムと接続してデータを送受信する第二の計算機システムと、を有し、
前記第一の計算機システムが、前記ジョブを1つ以上のタスクに分割し、前記タスクでアクセスするデータの前記分散ストレージへの展開方法を決定し、前記データを前記第二の計算機システムに要求し、
前記第二の計算機システムが、前記データを前記第一の計算機システムに送信し、
前記第一の計算機システムが、受信した前記データを前記展開方法によって前記分散ストレージに展開する、
複合計算機システム。 - 前記第二の計算機システムが、前記第一の計算機システムにおける第一の論理アドレスと前記第二の計算機システムにおける第二の論理アドレスとを対応づける管理情報を予め保持しており、
前記第一の計算機システムが、前記タスクでアクセスされるデータの第一の論理アドレスを前記第二の計算機システムに送信し、
前記第二の計算機システムが、受信した前記第一の論理アドレスと前記管理情報に基づいて、前記データの第二の論理アドレスを特定し、前記第二の論理アドレスを用いて前記データを取得して前記第一の計算機システムに送信する、
請求項1に記載の複合計算機システム。 - 前記第一の計算機システムは、前記タスクの実行要求が発生したとき、前記データの前記展開方法の計算を開始する前に、前記第二の計算機システムにデータを送信する準備を要求し、
前記第二の計算機システムは、前記準備の要求を受けると、前記データの送信を準備して前記第一の計算機システムからの前記データの送信の要求を待ちうける、
請求項1に記載の複合計算機システム。 - 前記第一の計算機システムは、前記タスクでアクセスされる前記データを、前記タスクを実行する分散処理計算機の近傍にある分散ストレージに配置するように、前記展開方法を決定する、請求項1に記載の複合計算機システム。
- 前記第一の計算機システムは、前記タスクでアクセスされる前記データを、前記タスクを実行する分散処理計算機が有する分散ストレージに配置するように、前記展開方法を決定する、請求項4記載の複合計算機システム。
- 前記第一の計算機システムは、1つ以上の前記分散ストレージに負荷を分散するように前記展開方法を決定する、請求項1に記載の複合計算機システム。
- 前記ジョブが投入されると、前記第一の計算機システムは、前記タスクでアクセスされるデータの第一の論理アドレスを前記第二の計算機システムに送信し、前記第二の計算機システムが、受信した前記第一の論理アドレスに基づいて前記データの第二の論理アドレスを特定し、
前記タスクの実行要求が発生すると、前記第一の計算機システムは、前記タスクでアクセスするデータの前記分散ストレージへの前記展開方法を決定し、前記第二の計算機システムに前記データを要求し、前記第二の計算機システムは、前記第二の論理アドレスを用いて前記データを取得して前記第一の計算機システムに送信し、前記第一の計算機システムは、前記第二の計算機システムから送信された前記データを前記展開方法によって前記分散ストレージに展開し、前記タスクを実行する、
請求項1に記載の複合計算機システム。 - 第一の計算機システムと第二の計算機システムが接続し、前記第二の計算機システムは1つ以上の計算機が共有ストレージを共有し、前記第一の計算機システムは前記第二の計算機システムと連携してジョブを実行する複合計算機システムの前記第一の計算機システムにおいて、リソースプールを構成する1つ以上の分散ストレージをそれぞれ有し、前記ジョブの並列分散処理を実行する1つ以上の分散処理計算機を管理する管理計算機であって、
ソフトウェアプログラムを記憶するメモリと、
前記メモリのソフトウェアプログラムを実行するCPUとを有し、
前記ソフトウェアプログラムには、
前記ジョブを1つ以上のタスクに分割するタスク実行管理モジュールと、
前記タスクでアクセスするデータの前記分散ストレージへの展開方法を決定するデータ連携制御モジュールと、
前記分散処理計算機に対して、前記展開方法で前記データを前記分散ストレージに展開するように指示するデータ配置管理モジュールと、
が含まれる管理計算機。 - 前記データ連携制御モジュールは、前記タスクの実行要求が発生したとき、前記データの前記展開方法の計算を開始する前に、前記第二の計算機システムにデータを送信する準備を要求する、
請求項8に記載の管理計算機。 - 前記データ連携制御モジュールは、前記タスクでアクセスされる前記データを、前記タスクを実行する分散処理計算機の近傍にある分散ストレージに配置するように、前記展開方法を決定する、請求項8に記載の管理計算機。
- 前記データ連携制御モジュールは、前記タスクでアクセスされる前記データを、前記タスクを実行する分散処理計算機が有する分散ストレージに配置するように、前記展開方法を決定する、請求項10に記載の管理計算機。
- 前記データ連携制御モジュールは、1つ以上の前記分散ストレージに負荷を分散するように前記展開方法を決定する、請求項8に記載の管理計算機。
- 前記データ連携制御モジュールは、
前記ジョブが投入されると、前記タスクでアクセスされるデータの第一の論理アドレスを前記第二の計算機システムに送信し、前記第一の論理アドレスに基づいて前記データの第二の論理アドレスを特定させ、
前記タスクの実行要求が発生すると、前記タスクでアクセスするデータの前記分散ストレージへの前記展開方法を決定し、
前記データ配置管理モジュールが、
前記第二の計算機システムに前記データを要求して、前記第二の論理アドレスを用いて前記データを取得させて前記分散処理計算機に送信させる、
請求項8に記載の管理計算機。 - リソースプールを構成する複数の分散ストレージと該分散ストレージを制御する分散ストレージコントローラをそれぞれ有しジョブの並列分散処理を実行する複数の分散処理ノードと、タスク実行管理モジュールと第一のデータ連携制御モジュールとデータ配置管理モジュールとを含むソフトウェアプログラムを実行する第一の管理計算機と、を有する第一の計算機システムと、
共有ストレージコントローラを有する共有ストレージと、前記共有ストレージを共有して利用し処理を実行する複数の物理サーバと、第二のデータ連携制御モジュールとリソース構成管理モジュールとを含むソフトウェアプログラムを実行する第二の管理計算機と、を有する第二の計算機システムと、を有し、
(1)アクセスするデータを特定するとき、
前記第一の計算機システムにおいて、
ジョブが投入されると、前記アプリケーション構成管理モジュールが前記タスク実行管理モジュールに前記ジョブの実行要求を送信し、
前記ジョブの実行要求を受信した前記タスク実行管理モジュールが、前記ジョブを複数のタスクに分割し、
前記データ連携制御モジュールが、定期的に、前記アプリケーション構成管理モジュールに新たなジョブが投入されているかどうか確認し、新たなジョブが投入されていれば該ジョブに対応したタスクのアクセスするディレクトリを含むタスク実行情報を前記タスク実行管理モジュールから取得し、該ディレクトリが存在するデバイスの情報を前記データ配置管理モジュールから取得し、前記ディレクトリが外部にあるのであれば、前記第一の計算機システムで付与された前記ディレクトリが配置されているデバイスへのアクセス情報を含む前記タスク実行情報を前記第二の計算機システムに送信し、
前記第二の計算機システムにおいて、
前記第二のデータ連携制御モジュールが前記タスク実行情報を受信すると、前記リソース構成管理モジュールから、前記第一の計算機システムでの前記アクセス情報に対応する前記第二の計算機システムでのアクセス情報を取得し、前記共有ストレージコントローラに問い合わせて、前記データを格納した前記共有ストレージの領域を特定し、
(2)アクセスするデータを展開するとき、
前記第一の計算機システムにおいて、
前記第一のデータ連携制御モジュールが、タスク実行情報を前記データ配置管理モジュールから取得し、該タスク実行情報に基づき、タスクがアクセスするデータの転送を前記第二のデータ連携制御モジュールに対して要求し、前記データのロード先の情報を前記データ配置管理モジュールから取得し、
前記第二の計算機システムにおいて、
前記データの転送を要求された前記第二のデータ連携制御モジュールが、前記リソース構成管理モジュールに前記データに該当するボリュームをロックさせ、前記共有ストレージコントローラに前記データの転送を指示し、
前記データの転送を指示された前記共有ストレージコントローラが前記データを転送する準備を行い、
前記第一の計算機システムにおいて、
前記第一のデータ連携制御モジュールが、前記データのロード先の情報に基づき前記データの展開方法を計算し、前記データの取得と前記展開方法による前記ロード先への展開を前記データ配置管理モジュールに指示し、
前記データ配置管理モジュールが、前記ロード先の分散ストレージを制御する分散ストレージコントローラに前記データの取得および展開を指示し、
前記分散ストレージコントローラが前記共有ストレージコントローラから前記データを取得して展開し、
前記第二の計算機システムにおいて、
前記データを前記分散ストレージコントローラに与えた前記共有ストレージコントローラが転送完了を前記第二のデータ連携制御モジュールに通知し、
前記第二のデータ連携制御モジュールが前記ロックを解除し、前記第一のデータ連携制御モジュールに転送完了を通知する、
複合計算機システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2015/062822 WO2016174739A1 (ja) | 2015-04-28 | 2015-04-28 | 複合計算機システム、管理計算機、およびデータ連携管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2015/062822 WO2016174739A1 (ja) | 2015-04-28 | 2015-04-28 | 複合計算機システム、管理計算機、およびデータ連携管理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2016174739A1 true WO2016174739A1 (ja) | 2016-11-03 |
Family
ID=57199081
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2015/062822 WO2016174739A1 (ja) | 2015-04-28 | 2015-04-28 | 複合計算機システム、管理計算機、およびデータ連携管理方法 |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2016174739A1 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019139372A (ja) * | 2018-02-07 | 2019-08-22 | 日本電気株式会社 | 記憶装置管理システム、記憶装置管理装置、記憶装置管理方法、及び、プログラム |
CN112673353A (zh) * | 2019-05-28 | 2021-04-16 | 株式会社日立制作所 | 信息处理系统及信息处理系统的控制方法 |
US11127969B2 (en) | 2016-09-15 | 2021-09-21 | Nissan Motor Co., Ltd. | Fuel cell system |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005339528A (ja) * | 2004-04-30 | 2005-12-08 | Hitachi Ltd | 計算機システム、管理サーバ、ブレード割り当て方法、ブレード割り当てプログラム、サーバシステム及びサーバの配置方法 |
JP2006190240A (ja) * | 2004-12-09 | 2006-07-20 | Hitachi Ltd | 情報処理装置 |
JP2015064636A (ja) * | 2013-09-24 | 2015-04-09 | 日本電気株式会社 | 情報処理システム、分散処理方法、及び、プログラム |
-
2015
- 2015-04-28 WO PCT/JP2015/062822 patent/WO2016174739A1/ja active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005339528A (ja) * | 2004-04-30 | 2005-12-08 | Hitachi Ltd | 計算機システム、管理サーバ、ブレード割り当て方法、ブレード割り当てプログラム、サーバシステム及びサーバの配置方法 |
JP2006190240A (ja) * | 2004-12-09 | 2006-07-20 | Hitachi Ltd | 情報処理装置 |
JP2015064636A (ja) * | 2013-09-24 | 2015-04-09 | 日本電気株式会社 | 情報処理システム、分散処理方法、及び、プログラム |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11127969B2 (en) | 2016-09-15 | 2021-09-21 | Nissan Motor Co., Ltd. | Fuel cell system |
JP2019139372A (ja) * | 2018-02-07 | 2019-08-22 | 日本電気株式会社 | 記憶装置管理システム、記憶装置管理装置、記憶装置管理方法、及び、プログラム |
JP7047429B2 (ja) | 2018-02-07 | 2022-04-05 | 日本電気株式会社 | 記憶装置管理システム、記憶装置管理装置、記憶装置管理方法、及び、プログラム |
CN112673353A (zh) * | 2019-05-28 | 2021-04-16 | 株式会社日立制作所 | 信息处理系统及信息处理系统的控制方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7118230B2 (ja) | Hci環境でのvm/コンテナおよびボリューム配置決定方法及びストレージシステム | |
US11144415B2 (en) | Storage system and control software deployment method | |
Rao et al. | Performance issues of heterogeneous hadoop clusters in cloud computing | |
US11262933B2 (en) | Sharing memory resources between asynchronous replication workloads | |
US20140032595A1 (en) | Contention-free multi-path data access in distributed compute systems | |
WO2014087518A1 (ja) | ネットワークシステム及びその運用方法 | |
US9058127B2 (en) | Data transfer in cluster storage systems | |
Cully et al. | Strata:{High-Performance} Scalable Storage on Virtualized Non-volatile Memory | |
CN111149081A (zh) | 负载平衡分配式存储系统中的元数据控制 | |
CN116034336A (zh) | 用于使用动态路径状态修改的工作负荷平衡的技术 | |
JP2019191951A (ja) | 情報処理システム及びボリューム割当て方法 | |
WO2016174739A1 (ja) | 複合計算機システム、管理計算機、およびデータ連携管理方法 | |
US10067949B1 (en) | Acquired namespace metadata service for controlling access to distributed file system | |
US20240211013A1 (en) | Hibernating and resuming nodes of a computing cluster | |
Gopalakrishna et al. | Untangling cluster management with Helix | |
ELomari et al. | New data placement strategy in the HADOOP framework | |
Liu et al. | masfs: File system based on memory and ssd in compute nodes for high performance computers | |
JP7057408B2 (ja) | 記憶システム及びその制御方法 | |
JP7337869B2 (ja) | 分散ストレージシステム、及び管理方法 | |
US12019885B2 (en) | Information processing system and configuration management method including storage nodes connected by network | |
JP7332488B2 (ja) | ストレージシステム及びストレージシステムの制御方法 | |
Paul et al. | Big data infrastructure: Storage considerations | |
Shu | Storage Arrays | |
Vaidya et al. | Study and Experimental Setup of Testing of Performance Parameters on Various Distributed File Systems | |
GUIDE | Deploying Virtualized Hadoop® Systems with VMware vSphere® Big Data Extensions™ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 15890723 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 15890723 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: JP |