WO2016067424A1 - 分散システム、計算機、及び、仮想マシンの配置方法 - Google Patents
分散システム、計算機、及び、仮想マシンの配置方法 Download PDFInfo
- Publication number
- WO2016067424A1 WO2016067424A1 PCT/JP2014/078972 JP2014078972W WO2016067424A1 WO 2016067424 A1 WO2016067424 A1 WO 2016067424A1 JP 2014078972 W JP2014078972 W JP 2014078972W WO 2016067424 A1 WO2016067424 A1 WO 2016067424A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- node
- virtual machine
- information
- control unit
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/178—Techniques for file synchronisation in file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/184—Distributed file systems implemented as replicated file system
- G06F16/1844—Management specifically adapted to replicated file systems
-
- 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
-
- 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
- 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]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
Definitions
- the present invention generally relates to a technique of a distributed system, a computer, and a virtual machine arrangement method.
- Patent Document 1 describes a technique for preventing replica data in HDFS (Hadoop Distributed File System) from being stored only in one physical machine, and replica data stored in a local physical machine is preferentially read. Techniques for doing so are disclosed.
- HDFS Hadoop Distributed File System
- One file in HDFS is divided into one or more data blocks.
- a plurality of data blocks constituting a plurality of files are distributed and stored in a plurality of physical machines.
- Two or more data blocks constituting one file may be distributed to two or more physical machines. Therefore, when a virtual machine running on a physical machine executes a predetermined process, it collects data blocks (including replica data) from the remote physical machine through HDFS and configures an input file used for the process. There is a case.
- the process of configuring a file from this data block increases the load on the network bandwidth. Furthermore, acquiring a data block from a remote physical machine via a network results in a longer response time than acquiring a data block from a local physical machine.
- a distributed system is configured to distribute and store a plurality of data blocks constituting a plurality of files, and to connect a communication network and execute a plurality of virtual machines And a management machine connected to at least one of the plurality of physical machines.
- the target machine which is at least one of a plurality of physical machines and management machines, includes a first process and a second process that receives a second process that receives an output file that is a file output by the first process.
- the physical machine that is the destination of the first virtual machine that executes the first process and the storage destination of one or more data blocks that constitute the output file One or more physical machines and a physical machine to which the second virtual machine that executes the second process is arranged are determined.
- the load on the network bandwidth can be reduced in the distributed system. Further, according to the present invention, it is possible to increase the possibility that a data block of a local physical machine is accessed in a distributed system.
- summary of the distributed system which concerns on this embodiment is shown.
- the structural example of a distributed system is shown.
- a configuration example of a node is shown.
- the structural example of a data set information table is shown.
- the structural example of a data processing information table is shown.
- the structural example of a physical resource information table is shown.
- An example of the configuration of a virtual machine information table is shown.
- the structural example of a data block storage information table is shown.
- the structural example of a data processing setting screen is shown.
- the example of a structure of a job setting screen is shown. It is a flowchart which shows the example of the process regarding registration of data processing information. It is a flowchart which shows the example of the process regarding determination of reservation of a physical resource.
- information may be described in terms of “xxx table” or “xxx list”, but the information may be expressed in any data structure. That is, in order to show that the information does not depend on the data structure, the “xxx table” or the “xxx list” can be called “xxx information”.
- the process may be described with “xxx part” as the subject, but the “xxx part” may be a kind of computer program (referred to as “program”).
- the program is executed by a processor (for example, a CPU (Central Processing Unit)) to perform a predetermined process appropriately using at least one of a storage resource (for example, a memory) and a network interface device.
- the subject of processing may be a processor and a device having the processor. Part or all of the processing performed by the processor may be performed by a hardware circuit (for example, ASIC (Application Specific Integrated Circuit)).
- the program may be installed from a program source.
- the program source may be a program distribution server or a storage medium (for example, a portable storage medium).
- the processor and the memory may be collectively referred to as a controller.
- node 111a when the same type of elements are described separately, reference numerals are used like “node 111a” and “node 111b”, and the same type of elements are not distinguished. In some cases, only a common number among the reference symbols is used, such as “node 111”.
- FIG. 1 shows an outline of the operation of the distributed system 1 according to the present embodiment.
- the nodes 111a, 111b, 111c, and 111d can transmit and receive data to and from each other through the network 110.
- a system configured by the nodes 111a, 111b, 111c, and 111d and the network 110 is referred to as a distributed system 1.
- the node 111 is a physical machine that is a kind of electronic computer. In the following description, when the subject of processing is “distributed system 1”, one node 111 or two or more nodes 111 may perform the processing in cooperation.
- the client 50 which is a kind of electronic computer, requests the distributed system 1 to perform analysis processing of data to be analyzed.
- the distributed system 1 executes analysis software 910a and 910b to perform analysis processing.
- the distributed system 1 executes BI (Business Intelligence) software 930 to refer to and use analysis results of the analysis software 910a and 910b.
- BI Business Intelligence
- Multi-stage processing consists of multiple stages.
- at least one process set including a first process (pre-stage process) and a second process (post-stage process) using a file output by the first process as an input is provided.
- the start point process (process as the start point) is the first process
- the end point process (process as the end point) is the second process
- the process between the start point process and the end point process is the first process. It is both a process and a second process.
- the multi-stage process may be a plurality of processes in a cascade (tree) form, or may be a recursive process (a process that ends when a result of a certain process satisfies a predetermined condition).
- the analysis software 910a has a function of using the file f1 (data blocks b11 and b12) and the file f3 (data blocks b31 and b32) as input data and outputting the file f5 (data block b51) as the analysis result.
- the analysis software 910b has a function of using the file f2 (data blocks b21 and b22) and the file f4 (data blocks b41 and b42) as input data and outputting the file f6 (data block b61) as the analysis result.
- the BI software 930 receives, as input data, f5 (data block b51) that is the analysis result of the analysis software 910a and file f6 (data block b61) that is the analysis result of the analysis software 910b. A function of outputting a block b71).
- the client 50 requests the distributed system 1 (a certain node 111) to analyze the information included in the files f1, f2, f3, and f4.
- Distributed system 1 (a certain node 111 thereof; the same applies hereinafter) divides each of the files f1 to f4 requested by the client 50 into one or more data blocks. That is, the distributed system divides the file f1 into data blocks b11 and b12, the file f2 into data blocks b21 and b22, the file f3 into data blocks b31 and b32, and the file f4 into data blocks b41 and b42.
- each of the divided data blocks b11, b12, b21,... Is stored in which node 111 (the storage device 700; the same applies hereinafter), and each of these software 910a, 01b, 930 is stored.
- Which node 111 is used for execution is important. The reason is as follows.
- the node needs to reconstruct the software input file executed on its own node from multiple data blocks.
- the local node needs to acquire the data block stored in another node (that is, a remote node) through the network 110.
- acquiring a data block from a remote node through the network 110 requires more time than acquiring a data block from its own node (that is, a local node), and the network bandwidth is increased. Increase the load.
- the distributed system 1 ensures that a plurality of data blocks constituting the software input file and the software exist in one node as much as possible. That is, the distributed system 1 stores a plurality of data blocks constituting the input file in one node as much as possible instead of randomly storing in each node.
- the distributed system 1 causes the software related to the input file to be executed on the node in which the many data blocks are stored. For example, in a configuration in which the software is executed in the virtual machine 121 constructed on the hypervisor 202, the distributed system 1 places the virtual machine 121 in the node 111 in which the many data blocks are stored.
- a value related to a ratio of data blocks stored in a local node where the software is executed among a plurality of data blocks input to the software is referred to as a “local access value”.
- the distributed system 1 determines that the files f1 (data blocks b11 and b12) and f3 (data blocks b31 and b12) input from the client 50 are set. b32) may be stored in each node so that the local access value of the analysis software 910a is 50% or more.
- the distributed system 1 may store the data blocks b11 and b12 in the node 111g where the analysis software 910a is executed.
- the distributed system 1 uses the files f5 (data block b51) and f6 (data block b61) output from the analysis software 910a and 910b. ) May be stored in each node so that the local access value of the BI software 930 is 90% or more.
- the distributed system 1 may control the distributed file system 200 so that 90% or more of the data blocks b51 and b61 input to the BI software 930 are stored in one node. Then, the distributed system 1 may arrange the BI software 930 (virtual machine 121c) in a node in which 90% or more of the data blocks b51 and b61 are stored.
- the distributed system 1 may determine the placement destination of the BI software 930 (virtual machine 121c) first.
- the distributed system 1 controls the distributed file system 200 so that 90% or more of the data blocks b51 and b61 input to the BI software 930 are stored in the local node where the BI software 930 is executed. Also good.
- the distributed system 1 may manage “data set information” including setting information regarding a data set (file group) related to input / output of each process constituting the multistage process.
- the distributed system 1 may associate one data set information with one data processing information.
- the data set information may include a condition regarding storage of the data set (for example, a local access value).
- the distributed system 1 may manage “data processing information” including the order of each process constituting the multistage process, the process contents, and setting information regarding input / output data of each process.
- the distributed system 1 may associate one piece of software with one piece of data processing information.
- the data processing information includes the order of the processing in the multi-stage processing, software for executing the processing, specifications of the virtual machine required for executing the software, and data set information related to input / output of the processing. It's okay.
- the distributed system 1 may execute the software included in the data processing information in a node group based on the data set information corresponding to the data processing information.
- the distributed system 1 may select the node that stores the data block so that the local access value becomes higher.
- the distributed system 1 may store a plurality of data blocks divided from one file in one node as much as possible.
- the distributed system 1 includes data blocks b11 and b12 divided from the file f1 at the node 111a (storage device 700a), and data blocks b21 and b22 divided from the file f2 at the node 111c (storage device 700c). ).
- the distributed system 1 may store a plurality of data blocks output in the first stage processing in one node as much as possible.
- the distributed system 1 stores data blocks b51 and b61 output from the analysis software 910a and 910b in one node 111a (storage device 700a).
- the distributed system 1 stores a plurality of data blocks to be analyzed in appropriate nodes based on data processing information and data set information set in advance, and executes software related to analysis processing Can be provisioned to the appropriate nodes.
- FIG. 2 shows a modified example of the distributed system.
- the distributed system is not limited to the configuration shown in FIG. 1, and the network may be configured in multiple stages.
- the nodes 111e and 111f are connected to the network 110a, and the nodes 111g and 111h are connected to the network 110b.
- Nodes 111e and 110f (or 110g and 110h) connected to the same network 110a (or 110b) are referred to as a node group 11a (or 11b).
- the networks 110a and 110b are connected to the upstream network 110c.
- the nodes 110e to 110h can transmit / receive data to / from each other through the networks 110a, 110b, and 110c.
- the distributed system may include a management machine 51 for managing the distributed system.
- the management machine 51 may be composed of one or more computers. Specifically, for example, when the management computer displays information (specifically, the management computer displays information on its own display device, or the management computer transmits display information to a remote display computer)
- the management computer is the management machine 51.
- the plurality of computers may include a display computer when the display computer performs display
- the management machine 51 is there.
- the distributed system may include a client 50 that uses the distributed system.
- the management machine 51 or the client 50 may be a certain node 111 or a certain virtual machine 121 in the distributed system.
- a plurality of nodes constitute one node group, but the node group is not limited to such a configuration.
- a plurality of node groups may further form one node group.
- FIG. 3 shows a configuration example of the node 111.
- the configuration illustrated in FIG. 3 is an example.
- a certain component for example, an xxx section or an xxx table
- the plurality of components are integrated into one component. It may be.
- the node 111 includes a CPU 400, a memory 500, a network I / F 600, and a storage device 700, and these elements are connected by a bus 800 capable of bidirectional data transmission / reception.
- a bus 800 capable of bidirectional data transmission / reception.
- An example of the bus 800 is PCIe (PCI express).
- the storage device 700 may be provided either inside or outside the node 111.
- the storage device 700 stores data blocks.
- the storage device 700 writes, reads, copies, moves, and deletes data blocks based on predetermined commands.
- Examples of the storage device 700 include an HDD (Hard Disk Drive), an SSD (Solid State Drive), and a flash memory.
- a network I / F (Interface) 600 is an I / F for connecting the node 111 to the network 110.
- Examples of the network I / F 600 include a fiber channel adapter and a NIC (Network Interface Card).
- the CPU 400 executes computer programs stored in the memory 500, and realizes various functions described in the present embodiment.
- the memory 500 stores computer programs and data accessed from the CPU 400, the network I / F 600, the storage device 700, and the like.
- Examples of the memory 500 include DRAM (Dynamic Random Access Memory), MRAM (Magnetic Random Access Memory), and FeRAM (Ferroelectric Random Access Memory).
- the memory 500 includes a file system control unit 510, a distributed file system control unit 520, a hypervisor control unit 530, a resource allocation control unit 540, a job control unit 550, and a data set control unit as a kind of computer program. 560 and an orchestration control unit 570 are stored. Further, in the memory 500, as a kind of information, a data set information table 1000, a data processing information table 1200, a physical resource information table 1300, a virtual machine information table 1400, a data block storage information table 1500, a job schedule An information table 1600 is stored. Details of these tables will be described later.
- the file system control unit 510 controls the file system related to the storage device 700 of the local node 111. In other words, the file system control unit 510 can access data stored in the storage device 700 through the file system. Examples of file systems include FAT, NTFS, and ext3.
- the distributed file system control unit 520 controls the distributed file system 200 related to the distributed system 1 (see FIG. 1). That is, the distributed file system control unit 520 can seamlessly access data stored in the storage device 700 of any node 111 constituting the distributed system 1 through the distributed file system 200, regardless of whether it is local or remote. Like that.
- the distributed file system control unit 520 implements the distributed file system 200 in cooperation with the file system control unit 510 of the remote node. As a result, the virtual machine 121 and software can access the data through the distributed file system 200 without being aware of which node 111 stores the data to be accessed. Further, by applying the distributed file system 200 to the distributed system 1, the distributed system 1 can flexibly add and delete nodes.
- An example of the distributed file system 200 is HDFS.
- the distributed file system control unit 520 may generate replica data obtained by duplicating the data block and store it in other nodes as necessary. This is because data blocks are made redundant to increase the availability of the distributed system 1.
- the hypervisor control unit 530 controls the hypervisor 202 (see FIG. 1) of the node 111.
- the hypervisor 202 provides an execution environment for the virtual machine 121.
- the hypervisor 202 appropriately adjusts between the physical resource of the node 111 (physical machine) and the virtual resource allocated to the virtual machine 121.
- KVM Kernel-based Virtual Machine
- the hypervisor control unit 530 controls the virtual machine 121 in the node 111 through the control of the hypervisor 202.
- the hypervisor control unit 530 may start, stop, restart, move between nodes, and the like of the virtual machine 121.
- the resource allocation control unit 540 allocates physical resources of the node 11 to the virtual machine 121.
- the hypervisor control unit 530 controls how much physical resources (calculation resources, memory resources, network resources, and the like) of the node 111 are allocated (reserved) to which virtual machines 121, and the like.
- the resource allocation control unit 540 reserves physical resources allocated to the virtual machine 121 in advance. This is to prevent physical resources allocated to a certain virtual machine from being stolen by other virtual machines.
- the job control unit 550 controls jobs executed on the node 111.
- the job control unit 550 may control the job based on the schedule. Examples of job contents include backup and migration of data related to the distributed file system 200, creation, restart, deletion and migration of a virtual machine related to the hypervisor 202, start and stop of various software executed on the virtual machine, regular There are start and stop of batch-type processing that is executed automatically, and start and stop of interactive processing that is executed as appropriate.
- the data set control unit 560 controls the data set information table 1000.
- the data set information includes setting information (definition information) for grouping a plurality of data blocks as one data set.
- the data set information may include setting information (definition information) such as a storage location and a storage method of the data set.
- the orchestration control unit 570 controls multistage processing and distributed processing executed in the distributed system 1.
- the orchestration control unit 570 enables the processing executed by the node 111 to access the data block in a form that satisfies a predetermined condition as much as possible.
- the orchestration control unit 570 may be a virtual machine 121 that executes the process and / or the process so that the process executed by the node 111 can access the local data block at a rate equal to or greater than the local access value. Control the placement of the data blocks used.
- the orchestration control unit 570 performs this control in cooperation with the control units 510, 520, 530, 540, 550, 560 using the information of each table 1000, 1200, 1300, 1400, 1500, 1600. Good.
- orchestration control unit 570 may have the following functions.
- the orchestration control unit 570 determines, based on the relationship between the first process and the second process, the placement destination node of the first virtual machine that executes the first process and one or more data blocks that constitute the output file.
- One or more nodes 111 storage device 700; the same applies hereinafter) as storage destinations and the placement destination node 111 of the second virtual machine that executes the second process may be determined.
- the relationship between the first process and the second process may satisfy a local access value required by the second process.
- the local access value is a value related to a ratio of data blocks stored in the node 111 where the second virtual machine is arranged, among a plurality of data blocks constituting the output file input to the second process. It's okay.
- the second process can access the data block of the local node 111 at a rate equal to or greater than the local access value. That is, it is possible to reduce the load on the network bandwidth between the nodes and improve the execution speed of the second process. Details of the local access value will be described later.
- the orchestration control unit 570 stores the first virtual machine and the placement location of the second virtual machine and the data blocks constituting the output file of the first process so as to satisfy the local access value required by the second process. If the destination cannot be determined, replica data that is a replica of some of the data blocks constituting the output file may be stored in the node where the second virtual machine is placed. At this time, if the local access value requested by the second process cannot be satisfied unless a predetermined number or more of replica data is created, the orchestration control unit 570 may output an error to that effect. This is because if the replica data is created more than necessary, a large amount of the storage device 700 is consumed.
- the orchestration control unit 570 determines the node 111 on which the second virtual machine is arranged from the nodes 111 that can provide the resource requested by the second virtual machine (or processing executed by the second virtual machine). You can do it.
- the orchestration control unit 570 may store a predetermined number or more of data blocks in a plurality of data blocks constituting one file in one node 111. As a result, in reconstructing one file from a plurality of data blocks, processing for acquiring data blocks from the remote node 111 is reduced. Therefore, the load on the network bandwidth between nodes is reduced.
- the orchestration control unit 570 may automatically set the local access value requested by the second process to be larger than the local access value requested by the first process. This is because, in the case of multi-stage processing in which large-scale data is processed in several stages, the frequency of access to the data is often higher in later stages.
- the first process may be a batch process
- the second process may be an interactive process.
- the first processing the original data filtering processing and labeling processing are performed in batches every day, and the results of the first processing are aggregated and aggregated in batches every hour.
- FIG. 4 shows a configuration example of the data set information table 1000.
- the data set information table 1000 manages the data set information 1001 as a record.
- Data set information 1001 is setting information related to a data set (file group) related to input / output of each process constituting the multistage process.
- the data set information 1001 includes, as field values, a data set ID 1010, a data source ID 1020, a root directory 1030, a primary data storage node 1040, a primary data storage method 1050, a secondary data storage node 1060, and a secondary data storage method. 1070.
- the data set ID 1010 is information for uniquely identifying the data set in the distributed system 1.
- the data set ID 1010 may be a number or a character string, or a combination thereof.
- a new data set ID 1010 may be assigned to a new data set after synchronization is made in the entire distributed system 1.
- a plurality of non-overlapping IDs may be distributed to each node, and each node may assign an unused one of the distributed plurality of IDs to the data set ID 1010 of the new data set. Good.
- Data source ID 1020 is information for identifying a data set providing source (data source) of data set ID 1010.
- the data source ID 1020 may be identification information of the machine that provides the data set, or identification information of the data processing information shown in FIG.
- machine identification information examples include an IP address (10.20.1.1) or a machine name (Client-PC).
- IP address 10.20.1.1
- Client-PC machine name
- identification information of the data processing information there is a combination (PG1-1) of the processing group ID 1210 and the sequence number 1230 of the data processing information.
- the root directory 1030 indicates a root directory in which the data set with the data set ID 1010 is stored in the distributed file system 200.
- the root directory 1030 may be expressed by a full path name or a URL.
- the root directory 1030 is not limited to a directory on the distributed file system 200, and may be a directory on a local file system in an arbitrary node.
- the root directory 1030 may be a combination of a node ID and the full path name or URL of a directory on the file system in the node with the node ID.
- the primary data storage node 1040 represents a node in which primary data in the data set with the data set ID 1010 is stored.
- Primary data is data that is preferentially accessed by software related to analysis processing.
- Software executed in the node of the primary data storage node 1040 preferentially accesses data stored in the node (that is, primary data). Therefore, it is desirable that the virtual machine 121 on which the software for analyzing the data set with the data set ID 101 is executed is arranged or constructed in the node of the primary data storage node 1040.
- the primary data storage method 1050 indicates a method of storing data in the primary data storage node 1040.
- a local access value for example, “local access value ⁇ 50%” for software executed in the node of the primary data storage node 1040 may be set.
- the primary data storage node 1040 When it is desired to store a plurality of data blocks divided from one file in one node as much as possible (that is, when it is desired to reduce the load on the network bandwidth between nodes), the primary data storage node 1040 has “aggregate storage”. May be set.
- the primary data storage node 1040 may be set to “spread storage”. .
- distributed storage may be set in the primary data storage node 1040.
- the secondary data storage node 1060 represents a node in which secondary data in the data set having the data set ID 1010 is stored.
- the secondary data is data of a portion excluding primary data from the data group constituting the data set.
- one or more nodes may be set directly, or “all nodes” or “other than the primary data storage node” may be set.
- Secondary data storage method 1070 indicates a method of storing data in the secondary data storage node 1060 node.
- the setting of the secondary data storage method 1070 may be the same as the setting of the primary data storage method 1050.
- FIG. 5 shows a configuration example of the data processing information table 1200.
- the data processing information table 1200 manages one or more data processing information 1201 in the distributed system 1 as a record.
- Data processing information 1201 is information relating to processing of data to be analyzed.
- the data processing information 1201 may include a processing group ID 1210, a priority 1220, a sequence number 1230, a program 1240, an execution trigger 1250, and requested resource information as field values.
- Request resource information is information on physical resources required for processing related to data processing information.
- the requested resource information includes, as field values, the number of virtual machines 1260, the number of CPUs 1261, the memory capacity 1262, the disk type 1263, the disk capacity 1264, the network bandwidth 1265, the INPUT data set ID 1270, and the INPUT data refinement. It includes a condition 1271, an INPUT local access value 1272, an OUTPUT data set ID 1280, and an OUTPUT local access value 1281.
- the processing group ID 1210 is information for uniquely identifying a processing group in the distributed system 1.
- a processing group is a group of a series of processes (multi-stage processes) for performing a predetermined analysis.
- the processing group ID 1210 may be a number or a character string, or a combination thereof.
- the processing group ID 1210 may be guaranteed uniqueness as in the case of the data set ID 1010 described above.
- the priority 1220 is a value indicating the high priority of the data processing information related to the priority 1220. In the present embodiment, it is assumed that the higher the priority 1220 value, the higher the priority.
- the physical resources of the distributed system 1 are finite. Therefore, even if the physical resource of the distributed system 1 is preferentially assigned to or executed preferentially with respect to the processing (for example, the program 1240) related to the data processing information 1201 having a high priority 1220. Good. Therefore, in the processing related to the data processing information 1201 having a low priority 1220, physical resources are allocated as indicated by the data processing information 1201 (for example, as requested resource information) or as indicated by the execution timing 1250. It is not always guaranteed that the program 1240 will be executed.
- the sequence number 1230 is a value for identifying each data processing information 1201 belonging to the processing group of the processing group ID 1210. Therefore, one or more sequence numbers 1230 may be associated with one processing group ID 1210. Processing related to the data processing information 1201 belonging to the same processing group may be executed in the order of the sequence number 1210. That is, the sequence number 1230 may be said to indicate the order (relationship between the previous stage and the subsequent stage) of each process constituting the multistage process.
- the program 1240 is a value for identifying a program executed in the processing related to the data processing information 1201.
- the program 1240 is set with a path name or a program name where the program is stored.
- the program 1240 may be set with a plurality of program IDs. In this case, in the processing related to the data processing information 1201, these plural programs may be executed.
- a script ID describing the execution order of a plurality of programs may be set. In this case, in the processing related to the data processing information 1201, the plurality of programs may be executed in the order described in the script.
- the execution trigger 1250 is a value that represents a trigger when the processing related to the data processing information 1201 is executed. For example, when “5AM, everyday” is set in the execution trigger 1250, the program 1240 is executed every day at 5 am (periodically). For example, when “ALL” is set in the execution opportunity 1250, the program 1240 is always executed.
- the requested resource information is information related to physical resources required for processing related to the data processing information 1201.
- the requested resource information includes, as field values, the number of virtual machines 1260, the number of CPUs 1261, the memory capacity 1262, the disk type 1263, the disk capacity 1264, the network bandwidth 1265, the INPUT data set ID 1270, and the INPUT data refinement.
- the condition 1271, the INPUT local access value 1272, the OUTPUT data set ID 1280, and the OUTPUT local access value 1281 may be included.
- the number of virtual machines 1260 is a value indicating the number of virtual machines required to execute the processing related to the data processing information 1201.
- the CPU number 1261 is a value indicating the number of CPUs (or the number of cores) required for one virtual machine.
- the memory capacity 1262 is a value indicating the capacity of the main memory required for one virtual machine.
- the disk type 1263 is a value indicating a disk type required for one virtual machine. Examples of the disk type 1263 include HDD and SSD.
- the disk capacity 1264 is a value indicating the disk capacity required for one virtual machine.
- the network bandwidth 1265 is a value indicating the network bandwidth required for one virtual machine.
- the number of CPUs 1261, memory capacity 1262, disk type 1263, disk capacity 1264, and network bandwidth 1265 may be referred to as virtual machine configuration information.
- the distributed system 1 determines whether the resource requested by the configuration information can be secured from the available physical resources of the node 111. If the determination is affirmative (if it can be secured), the node 111 constructs the virtual machine 121 and allocates the resource requested by the configuration information to the virtual machine.
- the INPUT data set ID 1270 is a value for identifying the INPUT data set.
- the INPUT data set is a data set that can be input to the program 1240 included in the data processing information 1201.
- the INPUT data narrowing condition 1271 is a value indicating a condition for narrowing down the INPUT data to be input from the INPUT data set of the INPUT data set ID 1270.
- all of the INPUT data sets are input targets.
- a query conditional expression is set in the INPUT data narrowing condition 1271
- an INPUT data set that matches the query conditional expression is an input target.
- a query conditional expression is set to the effect that the last update date and time, which is file attribute information, is after a predetermined date and time
- INPUT data whose last update date and time is updated after the predetermined date and time is an input target.
- the query conditional expression at this time may be expressed as, for example, “a file whose last update date and time is 2010/01/01 12:00 or later”.
- the query condition expression narrowed down by a specific keyword may be expressed as, for example, “a file including a character string“ test ”in a character string in a file”.
- the INPUT local access value 1272 is a value indicating the ratio of the INPUT data set that can be accessed from the storage device 700 of the local node 111 in the INPUT data set for the processing related to the data processing information 1201.
- the INPUT local access value 1272 is not a value to be strictly observed, but may be a so-called target value.
- the INPUT local access value 1272 “100%” indicates that all INPUT data sets for the process related to the data processing information 1201 should be stored in the local node 111 on which the process is executed.
- the INPUT local access value 1272 “10%” is stored in the local node 111 where 10% or more of the INPUT data sets for all the processes related to the data processing information 1201 are executed. Indicates what should be done.
- the OUTPUT data set ID 1280 is a value for identifying the OUTPUT data set.
- the OUTPUT data set is a data set that can be output from the program 1240 included in the data processing information 1201.
- the OUTPUT local access value 1281 is a value indicating the ratio of the OUTPUT data set stored in the storage device 700 of the local node 111 in the OUTPUT data set by the processing related to the data processing information.
- the OUTPUT local access value 1281 is not a value to be strictly observed but may be a so-called target value.
- the OUTPUT local access value “100%” indicates that all OUTPUT data sets by the processing related to the data processing information 1201 should be stored in the local node 111.
- the OUTPUT local access value “Free” indicates that the OUTPUT data set obtained by the processing related to the data processing information 1201 may be stored in any node 111.
- the data processing information 1201a belongs to the processing group with the processing group ID 1210 “PG1”, and the sequence number 1230 in the processing group represents “1”.
- the data processing information 1201a indicates that the program 1240 “Hadoop2” and “Spark / Shark” are executed with the priority 1220 “10” at the execution opportunity 1250 “every day at 5 am”.
- the processing related to the data processing information 1201a represents that it is executed by two virtual machines (1260). To construct one virtual machine, four CPUs (1261), an 8 GB memory capacity (1263), a 1 TB HDD (1263, 1264), and a 1 Gbps network bandwidth (1265) are required. It represents that.
- the data processing information 1201a is the data set of the OUTPUT data set ID 1280 “102”. Is output. In the input / output of this data set, 50% or more of the INPUT data set should be locally accessed (1270), and the output destination of the OUTPUT data set does not matter (1261).
- FIG. 6 shows a configuration example of the physical resource information table 1300.
- the physical resource information table 1300 manages the physical resource information 1301 of each node 111 in the distributed system 1 as a record.
- the physical resource information 1301 is information relating to the specifications (performance) and usage of the physical resources that the node 111 has.
- the physical resource information 1301 may include a node group ID 1310, a node ID 1320, a CPU resource 1330, a memory resource 1340, a disk resource 1350, and a network resource 1360 as field values. These field values may be changed as needed.
- the node group ID 1310 is a value for uniquely identifying a node group composed of one or more nodes 111 in the distributed system 1.
- the node group ID 1310 may be a number or a character string, or a combination thereof.
- the node group ID 1310 may be guaranteed uniqueness by the same method as the data set ID 1010 described above.
- the node ID 1320 is a value for uniquely identifying the node 111 in the distributed system 1. Accordingly, one or more node IDs 1320 may be associated with one node group ID 1310. Examples of the node ID 1320 include an IP address, URL, and node name. The node ID 1320 may be guaranteed uniqueness by the same method as the data set ID 101 described above.
- the CPU resource 1330 is information related to the CPU resource of the node 111 with the node ID 1320.
- the CPU resource 1330 includes, as subfield values, a spec 1331 indicating the performance of the CPU, a total number 1332 indicating the number of CPUs or cores, and an allocation rate indicating a ratio of allocated (in use) CPUs or cores to the total number 1332 1333 may be included.
- the memory resource 1340 is information related to the memory resource of the node 111 with the node ID 1320.
- the memory resource 1340 may include, as subfield values, a total amount 1341 indicating a memory capacity and an allocation rate 1342 indicating a ratio of allocated (reserved) capacity to the total amount 1341.
- the disk resource 1350 is information related to the disk resource of the node 111 with the node ID 1320.
- the disk resource 1350 includes, as subfield values, a specification 1351 indicating the type of disk, a total amount 1352 indicating the capacity of the disk, and an allocation rate 1353 indicating a ratio of allocated (reserved) capacity to the total amount 1352. It's okay.
- a plurality of disk resources 1350 may be associated with one node ID 1320.
- the disk resource 1350 having the SSD and SATA specifications 1351 may be associated with the node ID 1320, respectively.
- the network resource 1360 is information related to the network resource of the node 111 with the node ID 1320.
- the network 1360 includes, as subfield values, a specification 1361 indicating the type of the network, a total amount 1362 indicating the network bandwidth, and an allocation rate 1363 indicating the ratio of the allocated (reserved) bandwidth to the total amount 1362. Good.
- a plurality of network resources 1360 may be associated with one node ID 1320.
- a network resource 1360 having the specifications 1361 of Ethernet and Fiber Channel may be associated with the node ID 1320, respectively.
- FIG. 7 shows a configuration example of the virtual machine information table 1400.
- the virtual machine information table 1400 manages the virtual machine information 1401 of each node 111 in the distributed system 1 as a record.
- the virtual machine information 1401 is information relating to the specifications (performance) and usage of the virtual machine that the node 111 has.
- the virtual machine information 111 may include a virtual machine ID 1410, a node ID 1420, the number of CPUs 1430, a memory capacity 1440, a disk capacity 1450, a network bandwidth 1460, and a usage status 1470 as field values. These field values may be changed as needed.
- the virtual machine ID 1410 is a value for uniquely identifying the virtual machine 121 in the distributed system 1.
- the uniqueness of the virtual machine ID 1410 may be guaranteed by the same method as the data set ID 1010 described above.
- the node ID 1420 is a value for uniquely identifying the node 111 in which the virtual machine 121 with the virtual machine ID 1410 is stored.
- the node ID 1420 and the node ID 1320 in FIG. 6 may use IDs of the same system.
- the CPU number 1430 is a value indicating the number of virtual CPUs or cores that the virtual machine 121 having the virtual machine ID 1410 has (allocated).
- the memory capacity 1440 is a value indicating the capacity of the virtual memory that the virtual machine 121 having the virtual machine ID 1410 has (allocated).
- the disk capacity 1450 is a value indicating the capacity of the virtual disk that the virtual machine 121 having the virtual machine ID 1410 has (allocated).
- the network bandwidth 1460 is a value that represents the bandwidth of the virtual network that the virtual machine with the virtual machine ID 1410 has (allocated).
- the usage status 1470 is a value indicating processing executed by the virtual machine 121 having the virtual machine ID 1410.
- the value indicating this processing may be the processing group ID 1210 and / or the sequence number 1220.
- the virtual machine information 1401a in FIG. 7 indicates that the virtual machine 121 with the virtual machine ID 1410 “VM1” is built in the node 111 with the node ID 1420 “Node1”.
- the virtual machine information 1401a indicates that the virtual machine 121 with the virtual machine ID 1410 “VM1” has “4” virtual CPUs, (1430), “8 GB” virtual memory, (1440), and “1TB” virtual disks. (1450), “1 Gbps” virtual network bandwidth and (1460).
- the virtual machine information 1401a indicates that the processing related to the processing group ID “PG1” (1470) is executed in the virtual machine 121 having the virtual machine ID 1410 “VM1”.
- FIG. 8 shows a configuration example of the data block storage information table 1500.
- the data block storage information table 1500 manages the data block storage information 1501 in the distributed system 1 as a record.
- the data block storage information 1501 is information regarding the storage location of the data block divided from the file.
- the data block storage information table 1500 is managed by the distributed file system control unit 520 of each node 111 and may be synchronized between the nodes 111 in the distributed system 1 as necessary.
- the data block storage information 1501 may include a data block ID 1510, a file ID 1520, a file offset 1530, a data set ID 1540, a storage number 1550, and a storage location 1560 as field values.
- the data block ID 1510 is a value for uniquely identifying each data block divided from the file in the distributed system 1.
- the uniqueness of the data block ID 1510 may be guaranteed by the same method as the data set ID 1010 described above.
- the file ID 1520 is a value for uniquely identifying the file in the distributed system 1.
- the uniqueness of the file ID 1520 may be guaranteed by the same method as the data set ID 1010 described above.
- the file offset 1530 is a value indicating the offset position of the data block with the data block ID 1510 in the file with the file ID 1520.
- the data set ID 1540 is a value indicating the data set ID of the data set to which the file with the file ID 1520 belongs.
- the data set ID 1540 and the data set ID 1010 in FIG. 4 may use the same system ID.
- the storage number 1550 is a value indicating the number of data blocks with the data block ID 1510 stored redundantly (duplicated).
- the number stored redundantly may be set as a default value of the distributed system 1 or may be set for each data block.
- a redundantly stored data block is referred to as replica data.
- the storage number 1550 may be the total of the original data block and replica data, or may be the number of replica data only.
- the storage location 1560 is a value indicating the node 111 and the path name in which the data block with the data block ID 1510 is stored.
- the storage information 1560 may include the storage location of each of the plurality of replica data.
- FIG. 9 shows a configuration example of the data processing setting screen 2000.
- the data processing setting screen 2000 is configured as a kind of GUI (Graphical User Interface), and may be used by an administrator to register information in the data processing information table 1200.
- GUI Graphic User Interface
- the data processing setting screen 2000 is displayed on a predetermined display of the client machine 50.
- values set in the data processing information table 1200 may be displayed.
- a default value may be displayed on the data processing setting screen 2000.
- the data processing setting screen 2000 has an input area for setting field values of the data processing information 1201.
- one or more data processing information 1201 having the input value as the processing group ID 1210 is specified in the data processing information table 1200.
- the specified one or more data processing information 1201 is referred to as a “data processing information group”. That is, the data processing information group includes one or more data processing information to be set.
- new data processing information 1201 having the value input in the processing group ID area 2110 in the processing group ID 1210 is generated. Is done.
- the value input to the priority area 2120 is set as the priority 1220 of the data processing information 1201.
- the value input to the data source ID area 2130 is set as the data source ID 1020 of the new data set information 1001.
- This new data set information 1001 is newly registered in the data set information table 1000.
- the data processing setting screen 2000 displays “Check” for determining whether or not the input data source ID is valid (whether or not the data source can be accessed based on the specified information).
- a button 2131 may be provided. For example, when the administrator presses the “Check” button 2131 after inputting a value in the data source ID area 2130, the check result may be displayed on the data processing setting screen 2000.
- the value input in the root directory area 2140 is set in the root directory 1030 of the new data set information 1001 described above.
- the data processing setting screen 2000 has a GUI for setting data processing information corresponding to the sequence number 1230 for each of the plurality of data processing information 1201 included in the data processing information group.
- the data processing setting screen 2000 has a tab area 2200 for setting data processing information for each sequence number.
- Each tab 2201, 2202, 2203 may display a sequence number.
- a tab 2201 is a sequence number “1”
- a tab 2202 is a sequence number “2”
- a tab 2203 is a tab area 2200 for setting data processing information of a sequence number “3”.
- FIG. 9 shows that the tab area 2200 for setting the data processing information of the sequence number “1” is selected.
- the data processing information corresponding to the sequence number of the selected tab in the target data processing information is referred to as “target data processing information”.
- Tabs may be added and deleted arbitrarily. For example, in FIG. 9, when the “+” button 2204 is pressed, a new tab (sequence number) is added, and when the “ ⁇ ” button 2205 is pressed, the last tab (sequence number) (or active tab) is added. ) May be deleted.
- the value input to the program area 2210 is set in the program 1240 in the target data processing information.
- the administrator inputs a path name or a program name where the program is stored in the program area 2210.
- the path name storing the program input in the program area 2210 is searched from the file system, and the result may be displayed.
- the value input in the execution trigger area 2220 is set in the execution trigger 1250 in the target data processing information.
- an execution opportunity area 2220 may be added so that a plurality of process execution triggers can be input.
- the “ ⁇ ” button 2222 is pressed, one of the processing execution triggers may be deleted.
- the value input to the virtual machine number area 2230 is set to the virtual machine number 1260 in the target data processing information.
- the physical resources allocated to each virtual machine are input as follows.
- the value input to the CPU area 2240 is set to the CPU number 1261 in the target data processing information.
- the value input to the memory area 2241 is set in the memory capacity 1262 in the target data processing information.
- the value input in the disk type area 2242 is set in the disk type 1263 in the target data processing information.
- the value input to the disk capacity area 2243 is set to the disk capacity 1264 in the target data processing information.
- the value input to the network area 2244 is set in the network 1265 in the target data processing information.
- Information related to the INPUT data set is input as follows.
- the value input to the INPUT data narrowing condition area 2250 is set in the INPUT data narrowing condition 1271 in the target data processing information.
- the value input to the INPUT local access value area 2251 is set to the INPUT local access value 1272 in the target data processing information.
- the value input to the OUTPUT local access value area 2260 is set to the OUTPUT local access value 1281 in the target data processing information.
- a recommended value may be automatically set in the INPUT local access value 1272 and / or the OUTPUT local access value 1281.
- the recommended value of the INPUT local access value 1272 may be smaller as the sequence number is smaller, and may be larger as the sequence number is larger. For example, when a process composed of two stages is set, the recommended value of the INPUT local access value of the first stage (sequence number “1”) is set to 50%, and the process is performed using the output result of the first stage.
- the recommended value of the INPUT local access value in the second stage may be 100%.
- the frequency of local access can be increased in the case where the data access range is narrower and the access is performed more frequently as the subsequent processing. Thereby, processing overhead in the entire multistage processing can be reduced.
- the system automatically sets (presents) the recommended value of the INPUT local access value 1272, thereby reducing the burden on the administrator. That is, the administrator is freed from the burden of setting a local access value in each process in consideration of the number of stages in the processing sequence in the multistage process.
- the target data processing information in which the value input above is set is newly registered in the data processing information table 1200. At this time, if data processing information having the same processing group ID is already registered in the data processing information table 1200, a new registration error may be displayed.
- the target data processing information in which the value input above is set is updated and registered in the data processing information table 1200. At this time, if data processing information having the same processing group ID is not registered in the data processing information table 1200, an update registration error may be displayed.
- the value input in the target data processing information may be verified. If the values are inconsistent or it is difficult to cope with the current physical resource, an error to that effect may be displayed.
- values that can be input from the data processing setting screen 2000 may be imported into the distributed system 1 as a predetermined setting file.
- a setting file name is input to the setting file import area 2510 of FIG. 9 and the “Import” button 2512 is pressed, the contents of this setting file are registered in the data processing information table 1200 as target data processing information. Also good.
- the “Ref” button 2511 is pressed, the path name in which the setting data input to the setting file import area 2510 is stored is searched from the file system, and the result may be displayed.
- FIG. 10 shows a configuration example of the job setting screen 4000.
- the job setting screen 4000 is configured as a kind of GUI, and may be used by an administrator to register the job schedule information 1601 in the job schedule information table 1600. For example, when the administrator accesses a certain node 111 (or management machine 51) of the distributed system 1 via the client 50, the job setting screen 4000 is displayed on a predetermined display of the client 50. In the job setting screen 4000, values set in the job schedule information table 1600 may be displayed. When not set, a default value may be displayed on the job setting screen 4000.
- the job setting screen 4000 has an input area for setting field values of the job schedule information 1601.
- job schedule information 1601 having the input value in the job ID 1610 is specified in the job schedule information table 1600.
- the specified job schedule information 1601 is referred to as “target job schedule information”. That is, the target job schedule information is job schedule information to be set.
- new job schedule information having the value input to the job ID area 4110 in the job ID 1610 may be generated.
- existing job schedule information having the value input to the job ID area 4110 in the job ID 1610 is extracted, and the extracted job Values already set in the schedule information may be displayed in each input area described later.
- the value input to the processing group ID area 4120 is set as the processing group ID 1620 of the target job schedule information.
- the value input in the sequence number area 4130 is set as the sequence number 1630 of the target job schedule information.
- the value input in the execution form area 4140 is set as the execution form 1650 of the target job schedule information.
- the value input in the execution trigger area 4150 is set in the execution date 1640 of the target job schedule information.
- the operation when the “+” button 4113 and the “ ⁇ ” button 4114 are pressed may be the same as the “+” button 2221 and the “ ⁇ ” button 2222 in the execution trigger area 2220 in FIG.
- the value input in the priority area 4160 is set in the priority 1670 of the target job schedule information.
- the target job schedule information having the value input in the above is updated and registered in the job schedule information table 1600.
- an update registration error may be displayed.
- the job schedule information 1601 having the input job ID 1610 value may be deleted from the job schedule information table 1600.
- GUI has been described as means for inputting, updating, and displaying values, but other means may be used. Examples of other means include CLI (Command Line Interface) or API (Application Programming Interface).
- CLI Common Line Interface
- API Application Programming Interface
- FIG. 11 is a flowchart showing an example of processing related to registration of data processing information.
- the orchestration control unit 570 receives the registration processing group including the data processing information input on the data processing setting screen 2000 (S101).
- the orchestration control unit 570 refers to the physical resource information table 1300 (S102) and determines whether or not the physical resource requested by the registration processing group can be secured (S103). Details of the determination process will be described later (see FIG. 12).
- the orchestration control unit 570 proceeds to the process of S107 described later.
- the orchestration control unit 570 proceeds to the next process of S104.
- the orchestration control unit 570 determines whether the physical resource requested by the registration processing group can be secured by releasing the physical resource secured by the data processing information having a lower priority than the priority of the registration processing group. (S104). For example, the determination is made as follows.
- the orchestration control unit 570 next extracts data processing information 1201 having a priority lower than the priority of the registered processing group from the data processing information table 1200. To do. When such data processing information cannot be extracted, the orchestration control unit 570 ends this processing as an error (S104: No).
- the orchestration control unit 570 next moves the virtual machine related to the extracted low-priority data processing information 1201 to another node 111 to request the registration processing group. It is determined whether a physical resource to be secured can be secured. This determination is the second determination.
- the orchestration control unit 570 specifies the physical resource assigned to the migration target virtual machine. In addition, the orchestration control unit 570 extracts a node that is a movement destination candidate of the movement target virtual machine. Then, the orchestration control unit 570 proceeds to the process of S105 (S104: Yes).
- the orchestration control unit 570 then releases the physical resource allocated to the virtual machine related to the extracted low priority data processing information (that is, this If the virtual machine is stopped), it is determined whether or not the physical resource requested by the registration processing group can be secured. This determination is the third determination.
- the orchestration control unit 570 specifies the physical resource assigned to the virtual machine to be released. Then, the orchestration control unit 570 proceeds to the process of S105 (S104: Yes).
- the orchestration control unit 570 ends this processing as an error (S104: No).
- the orchestration control unit 570 reflects the release of the physical resource accompanying the movement or stop of the virtual machine in the physical resource information table 1300 (S105).
- the orchestration control unit 570 requests the job control unit 550 to perform reprovisioning processing (S106).
- the reprovisioning process is a process for changing the allocation of physical resources. Details of the reprovisioning process will be described later (see FIG. 15).
- the orchestration control unit 570 reflects the reservation of physical resources related to the registration processing group in the physical resource information table 1300 (S107).
- the orchestration control unit 570 requests the job control unit 550 to perform provisioning processing (S108).
- provisioning processing S108
- the resource allocation control unit 540 Upon receiving the provisioning process request, the resource allocation control unit 540 generates a virtual machine to which the physical resource requested (reserved) requested from the node is allocated, and installs analysis processing software in this virtual machine. These processes may be executed by the hypervisor control unit 530 that has received a request from the resource control unit 540.
- the orchestration control unit 570 registers the data processing information included in the registration processing group in the data processing information table 1200 (S109).
- the orchestration control unit 570 waits for the completion of the provisioning process in S108 (S110: No). When the provisioning process is completed (S110: Yes), the orchestration control unit 570 proceeds to the next process of S111.
- the orchestration control unit 570 reflects the result of the provisioning process in S108 and the reprovisioning process in S106 in the virtual machine information table 1400 (S111).
- the orchestration control unit 570 creates a data storage location (root directory) on the distributed file system 200 (S112).
- the root directory for the initial data set may be a value input in the root directory area 2140 of the data processing setting screen 2000.
- the root directory for other data sets may be automatically determined by the distributed system 1.
- the orchestration control unit 570 updates the data set information table 1000 (S113) and ends this process.
- an environment for executing processing related to the registration processing group input through the data processing setting screen 2000 is constructed in the distributed system 1.
- FIG. 12 is a flowchart showing an example of processing related to determination of securing physical resources. This process corresponds to the determination process of S103 or S104 of FIG.
- the orchestration control unit 570 selects whether the physical resource reservation is determined by the bottom-up method or the top-down method (S121). This selection may be made by the administrator, or the distributed system 1 may automatically select based on the setting.
- the bottom-up method refers to whether or not physical resources necessary for processing related to the target data processing information can be secured in order from the target data processing information with the smallest sequence number among the plurality of target data processing information belonging to the same processing group. It is a method to evaluate.
- the target data processing information related to the previous stage of the multi-stage process is evaluated first, and therefore, the processes related to the previous stage of the multi-stage process are generally collected in a specific physical node group.
- Top-down method refers to whether or not resources necessary for processing related to target data processing information can be secured in order from target data processing information having a larger sequence number among a plurality of target data processing information groups belonging to the same processing group It is a method to evaluate.
- the target data processing information related to the subsequent stage of the multi-stage process is evaluated first, and thus the processes related to the subsequent stage of the multi-stage process are generally aggregated into a specific physical node group.
- the orchestration control unit 570 executes a bottom-up process (S122). Details of the bottom-up process will be described later (see FIG. 13).
- the orchestration control unit 570 executes a top-down process (S123). Details of the top-down process will be described later (see FIG. 14).
- the orchestration control unit 570 determines whether the bottom-up process (S122) or the top-down process (S123) is normally completed (S124). When the error ends (S124: No), the orchestration control unit 570 determines that the physical resource cannot be secured (S129), and returns to the processing illustrated in FIG.
- the orchestration control unit 570 determines whether or not the processing of S125 to S127 has been completed for all data processing information in the registration processing group (S125).
- the orchestration control unit 570 determines that physical resources can be secured (S128), and the determination result is shown in FIG. And return to the processing of FIG. At this time, the orchestration control unit 570 also passes information necessary for updating in the updating process of the physical resource information table 1300 performed after returning to the process shown in FIG. 11 to the process shown in FIG. That is, the orchestration control unit 570 passes the determination result of S128 and information on the physical resource to be secured together to the process illustrated in FIG.
- physical resource information to be passed to the processing shown in FIG. 11 virtual machine allocation physical node identification information created in each processing sequence regarding the data processing content, the number of virtual machines to be created, and the virtual machine There is information on computer resources (CPU, memory, disk, network, etc.) to be used.
- the orchestration control unit 570 selects one of the unprocessed data processing information (S126). That is, one of the unprocessed sequence numbers in the registration processing group is selected.
- the orchestration control unit 570 calculates the number of nodes on which the virtual machine 121 related to the selected data processing information is arranged. That is, the orchestration control unit 570 knows the number of nodes used for the processing related to the sequence number of the selected data processing information. The number of nodes on which the virtual machine is arranged may be calculated based on information included in the node list.
- the node list is generated in the bottom-up process in S122 or the top-down process in S123. Although details will be described later, in the node list, a node ID, a sequence number, and a value of a physical resource secured in the node are registered in association with each other.
- the orchestration control unit 570 determines whether or not the number of nodes on which virtual machines are arranged is equal to or less than a threshold (S127).
- a threshold S127
- the orchestration control unit 570 may determine whether or not the number of replica data is equal to or less than a threshold value. This is to prevent a large amount of replica data from being generated and a large amount of disk resources from being consumed.
- This threshold value may be set as a default value or may be set individually by the administrator.
- the orchestration control unit 570 When the number of nodes on which the virtual machine is arranged is equal to or smaller than the threshold (S127: Yes), the orchestration control unit 570 returns to the process of S125. When the number of nodes on which virtual machines are arranged is greater than the threshold (S127: No), the orchestration control unit 570 determines that physical resources cannot be secured (S129), and the process illustrated in FIG. Return to.
- FIG. 13 is a flowchart showing an example of bottom-up processing. This process corresponds to S122 in FIG.
- the orchestration control unit 570 ends the process when the processes of S141 to S151 have been completed for all the data processing information in the registration process group (S141: Yes).
- the orchestration control unit 570 selects the data processing information with the smallest sequence number among the unprocessed (S142). That is, the following processing is executed in order from the previous data processing information in the multi-stage processing.
- the orchestration control unit 570 determines whether or not the sequence number of the selected data processing information is “1” (S143).
- the sequence number indicates the number of stages of multistage processing.
- the orchestration control unit 570 substitutes the number of nodes constituting the distributed system 1 (maximum number of nodes) into the variable PN1.
- the variable PN1 is subtracted when the node is selected. Thereby, when the variable PN1 is “0”, it can be determined that there is node capable of securing the physical resource. That is, the value of the variable PN1 can be used as one of the end conditions of this process.
- the orchestration control unit 570 initializes the node list (S144). Then, the orchestration control unit 570 proceeds to the process of S146.
- the node list indicates the number of virtual machines created in the node and the physical resource information (CPU, memory, disk, network, etc.) allocated to each virtual machine for each sequence number of the data processing information in this processing. And manage.
- the initialization of the node list may be to make the information registered in the node list empty (NULL). Identification information of a node selected as a virtual machine creation target from among a group of nodes belonging to the computer system is appropriately added to the node list.
- the orchestration control unit 570 refers to the node list at the end of this process, thereby creating how many virtual machines for each sequence number for each node registered in the node list. It is possible to determine whether or not it is necessary to allocate the physical resources for creating each virtual machine.
- the orchestration control unit 570 substitutes the number of currently available nodes for the variable PN1 (S145), and proceeds to the process of S146.
- PNS indicates the number of nodes added to the current node list.
- IVA1 indicates the INPUT local access value of the data processing information selected in the current loop processing. That is, the INPUT local access value related to the processing of the sequence number of the main stage in the multi-stage processing is shown.
- the variable PN1 is a smaller one of “PNS / ILA1-PNS” and “maximum number of nodes ⁇ PNS”.
- the value calculated by the expression “PNS / ILA1-PNS” means that the current loop is determined in consideration of the INPUT local access value of the data processing information selected in the current loop processing of this processing. Indicates the number of nodes that can be selected for processing to be newly added to the node list. For example, when the value of ILA1 is “100%”, the value of Equation 1 is “0”.
- the value calculated by the expression “maximum number of nodes ⁇ PNS” means the maximum value of the nodes to which no physical resource is allocated among the nodes belonging to the computer system.
- Formula 1 sets the maximum value to the variable PN1 when the value calculated by the formula “PNS / ILA1-PNS” exceeds the maximum value (that is, “maximum number of nodes ⁇ PNS”). As a result, a value that is impossible on the system is prevented from being set in the variable PN1.
- the orchestration control unit 570 substitutes each value of the requested resource information included in the selected data processing information into the first variable (S146).
- variables V, C, M, DT, DS, and N included in the first variable are assigned to variables V, C, M, DT, DS, and N included in the first variable, respectively.
- the number of virtual machines in the requested resource information is substituted for variable V.
- the number of CPUs of the requested resource information is substituted for variable C.
- the memory capacity of the requested resource information is substituted for variable M.
- the disk type of the requested resource information is assigned to the variable DT.
- the disk capacity of the requested resource information is substituted for the variable DS.
- the network bandwidth of the requested resource information is substituted for variable N.
- the orchestration control unit 570 determines whether or not there is a node that has not been selected and can be used in S148 described later in the node list (S147).
- An available node is, for example, a node that still has available physical resources. If the process is for the sequence number “1”, the node list has been initialized, and it is determined No in S147.
- the orchestration control unit 570 selects one node from the list, Each value indicating the physical resource available in the selected node is substituted into the second variable (S148). In this step, the node that set the preceding virtual machine is preferentially selected as another virtual machine setting node. Each value indicating an available physical resource may be calculated based on physical resource information of the selected node.
- variables C1, M1, DT1, DS1, and M1 included in the second variable are assigned to variables C1, M1, DT1, DS1, and M1 included in the second variable, respectively.
- the number of CPUs available at the selected node is substituted into the variable C1.
- the memory capacity available at the selected node is substituted into the variable M1.
- the variable DT1 is assigned a disk type that can be used in the selected node.
- the disk capacity that can be used in the selected node is substituted into the variable DS1.
- a network bandwidth that can be used in the selected node is assigned to the variable N1.
- the orchestration control unit 570 determines whether the requested resource indicated by the first variable can be secured from the available physical resources indicated by the second variable (S149). That is, it can be said that the orchestration control unit 570 determines whether or not a virtual machine for executing the process related to the data processing information selected in S142 can be arranged in the node selected in S148.
- the orchestration control unit 570 satisfies the conditions “C ⁇ C1”, “M ⁇ M1”, “DT and DT1 match”, “DS ⁇ DS1”, and “N ⁇ N1”. If the node can be used for virtual machine setting, the determination in S149 is “Yes”, and the process proceeds to S150.
- the orchestration control unit 570 subtracts “1” from the number of virtual machines in the first variable.
- the orchestration control unit 570 associates the node list with the node ID of the selected node, the sequence number selected in S142, and the value of the physical resource reserved in the node (for example, the first variable). Append and add (S150). That is, since the orchestration control unit 570 has decided to create a virtual machine by actually allocating a physical resource in the node, the orchestration control unit 570 is associated with information on the physical resource to be actually allocated and processing using the virtual machine.
- the sequence number (that is, information indicating what level the process is performed when performing multi-stage processing) is added to the node list in association with the identification information of the node.
- the orchestration control unit 570 may add information indicating that a copy of the target data set is redundantly stored in the node and another node to the node list.
- the orchestration control unit 570 subtracts “1” from each value of the second variable. For example, the orchestration control unit 570 subtracts each value of the first variable from each value of the second variable as follows. The variable C is subtracted from the variable C1. The variable M is subtracted from the variable M1. The variable DS is subtracted from the variable DS1. The variable N is subtracted from the variable N1.
- the orchestration control unit 570 determines whether or not the number of virtual machines in the first variable is “0” (S151). That is, the orchestration control unit 570 determines whether or not physical resource reservation has been completed for all virtual machines requested by the data processing information selected in S142.
- the orchestration control unit 570 If the number of virtual machines in the first variable is not “0” (S151: No), the orchestration control unit 570 returns to the process of S149. When the number of virtual machines in the first variable is “0” (S151: Yes), the orchestration control unit 570 returns to the process of S141 and selects another data processing information.
- the orchestration control unit 570 determines whether or not the variable PN1 is greater than “0” (S156). That is, it is determined whether or not there is a node in which a virtual machine can be placed. If such a node does not exist (S156: No), it is determined that it is impossible to allocate a physical resource for a virtual machine that satisfies a predetermined condition in this process, and this process ends as an error. If such a node exists (S156: Yes), the process proceeds to the next step S152.
- the orchestration control unit 570 determines whether there is an unselected node (not limited to the node list) (S152). That is, the orchestration control unit 570 determines whether or not a node in which a virtual machine for executing a process related to the selected data processing information can be arranged exists in the computer system.
- the orchestration control unit 570 subtracts “1” from the variable PN1 (S153). That is, the orchestration control unit 570 reduces the number of available nodes.
- the orchestration control unit 570 selects one node from among them, and substitutes each value indicating a physical resource available in the selected node into the second variable (S154). This process is the same as the process of S148. Then, the orchestration control unit 570 proceeds to the process of S149.
- the orchestration control unit 570 determines whether the OUTPUT local access value of the selected data processing information is 100% (S155). That is, the orchestration control unit 570 determines whether or not the output destination of the process related to the selected data processing information is limited to the local node.
- the orchestration control unit 570 terminates the process, assuming that an error has occurred. This is because the determination in S152 is “No” and the condition that the OUTPUT local access value is 100% cannot be satisfied.
- the orchestration control unit 570 proceeds to the process of S154 described above.
- the orchestration control unit 570 determines whether the OUTPUT local access value is 100% (that is, even if the determination in S155 is “Yes”) or S154. You may proceed to the process.
- a node list is generated for data processing information belonging to the registration processing group.
- the orchestration control unit 570 can determine whether or not physical resources can be secured in the processing shown in FIG.
- FIG. 14 is a flowchart showing an example of top-down processing. This process corresponds to S123 in FIG.
- S162 corresponding to S142
- S163 corresponding to S143
- S165 corresponding to S145
- the orchestration control unit 570 selects data processing information having the largest sequence number among unprocessed (S162). That is, processing is executed in order from the subsequent data processing information in the multi-stage processing.
- the orchestration control unit 570 determines whether or not the sequence number of the selected data processing information is “maximum value” (S163).
- the orchestration control unit 570 substitutes the number of nodes available at the current stage for the variable PN1 (S165), and proceeds to the processing of S166.
- this variable PN1 may be calculated by a method different from S145 of FIG. 13 as follows.
- variable ILA2 indicates the INPUT local access value of the data processing information selected in the previous loop processing. That is, the INPUT local access value related to the processing of the sequence number of the preceding stage in the multistage processing is shown. As a result, the number of nodes that can be used for the processing of the main stage can be calculated based on the INPUT local access value of the processing of the previous stage.
- Other variables are as described in FIG.
- a node list is generated for data processing information belonging to the registration processing group.
- the orchestration control unit 570 can determine whether or not physical resources can be secured in the processing shown in FIG.
- Whether the physical resource can be secured can be determined by either bottom-up processing or top-down processing, but depending on the selected processing, the node on which the virtual machine related to each data processing information is arranged, and its virtual The physical resources provided to the machine may be different.
- a virtual machine is generated (arranged) in the node, and software related to analysis processing is installed in the virtual machine.
- FIG. 15 is a flowchart illustrating an example of the reprovisioning process. This process corresponds to the process of S106 in FIG.
- the resource allocation control unit 540 When the resource allocation control unit 540 receives the request for the reprovisioning process, it executes the following process (S301).
- the resource allocation control unit 540 determines whether or not the processing of S302 to S306 has been completed for all requested nodes (S302). When all are completed (S302: Yes), the resource allocation control unit 540 ends the process.
- the resource allocation control unit 540 selects one of the unprocessed nodes (S303).
- the resource allocation control unit 540 determines whether a virtual machine to be moved or deleted exists in the selected node (S304).
- the resource allocation control unit 540 returns to S302 and performs the same processing for the remaining unprocessed nodes.
- the resource allocation control unit 540 identifies a virtual machine to be moved or deleted in the selected node (S305).
- the resource allocation control unit 540 moves or deletes the specified virtual machine (S306).
- the resource allocation control unit 540 may request this processing from the hypervisor control unit 530.
- the hypervisor control unit 530 moves or deletes the specified virtual machine from the node selected in S303. That is, the hypervisor control unit 530 releases the physical resources allocated to the specified virtual machine in the node selected in S303.
- the resource allocation control unit 540 returns to the process of S302 and performs the same process for the remaining unprocessed nodes.
- FIG. 16 is a flowchart showing an example of data storage processing.
- This data block may be divided from a data set transmitted as a storage request from the client 50.
- the distributed file system control unit 520 determines whether or not a data set ID corresponding to the data block to be stored exists in the data set information table 1000 (S503).
- the distributed file system control unit 520 performs a normal data block storage process (S504), and ends the process. That is, a new data block is stored.
- the distributed file system control unit 520 selects a storage destination node of the data block to be stored (S505). For example, the distributed file system control unit 520 selects a condition (for example, a node stored in the primary data storage node 1040) from the nodes set in the data set information including the data set ID conformed in S503 (for example, the node stored in the primary data storage node 1040). And nodes that meet the conditions of the primary data storage method 1050).
- a condition for example, a node stored in the primary data storage node 1040
- the distributed file system control unit 520 determines whether or not the storage target data block has been stored in the node 111 for the storage number 1550 included in the adapted data set information (S506). That is, the distributed file system control unit 520 determines whether or not the number of data blocks to be stored and the number of replica data thereof match the stored number 1550.
- the distributed file system control unit 520 stores the data block to be stored in the storage destination node (S507).
- the distributed file system control unit 520 may request the file system control unit 510 of the storage destination node to store the data block. After the storage process is completed, the distributed file system control unit 520 returns to the process of S506.
- the distributed file system control unit 520 updates the data block storage information table 1500 (S508), and ends the processing. For example, the distributed file system control unit 520 registers the storage location of the data block in the storage location 1560.
- the storage target data block and replica data are distributed and stored in each node.
- each software and data related to the multistage analysis process can be appropriately arranged in each node. Thereby, the load with respect to the network band between nodes can be reduced. In addition, it is possible to reduce overhead generated during data access in the execution of processing.
- the orchestration control unit 570 may be executed on any node.
- the node that executes the orchestration control unit 570 may be determined according to a predetermined condition. Only some of the plurality of nodes may have the orchestration control unit 570.
- the orchestration control unit 570 may be included in a management machine connected to at least one of a plurality of nodes. In this case, any node may not have the orchestration control unit 570.
- the management machine is connected to at least one of the plurality of nodes via a communication network to which the plurality of nodes are connected or another communication network.
- distributed system 110 network 111: node 121: virtual machine 200: distributed file system 700: storage device
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
そして、複数の物理マシン及び管理マシンのうちの少なくとも1つである対象マシンが、第1処理とその第1処理によって出力されるファイルである出力ファイルを入力とする第2処理とを含んだ多段処理における第1処理と第2処理との関係性に基づいて、第1処理を実行する第1仮想マシンの配置先の物理マシンと、出力ファイルを構成する1以上のデータブロックの格納先とする1以上の物理マシンと、第2処理を実行する第2仮想マシンの配置先の物理マシンと、を決定する。
PN1 = min(PNS/ILA1-PNS,最大ノード数-PNS) …(式1)
を算出する。
変数Vに、要求リソース情報の仮想マシン数が代入される。
変数Cに、要求リソース情報のCPU数が代入される。
変数Mに、要求リソース情報のメモリ容量が代入される。
変数DTに、要求リソース情報のディスクタイプが代入される。
変数DSに、要求リソース情報のディスク容量が代入される。
変数Nに、要求リソース情報のネットワーク帯域が代入される。
変数C1に、選択したノードにおいて利用可能なCPU数が代入される。
変数M1に、選択したノードにおいて利用可能なメモリ容量が代入される。
変数DT1に、選択したノードにおいて利用可能なディスクタイプが代入される。
変数DS1に、選択したノードにおいて利用可能なディスク容量が代入される。
変数N1に、選択したノードにおいて利用可能なネットワーク帯域が代入される。
変数C1から、変数Cを減算する。
変数M1から、変数Mを減算する。
変数DS1から、変数DSを減算する。
変数N1から、変数Nを減算する。
PN1 = min(PNS/ILA2-PNS,最大ノード数-PNS) …(式2)
を算出する。
Claims (10)
- 複数のファイルを構成する複数のデータブロックを分散して記憶するようになっており、通信ネットワークに接続され複数の仮想マシンを実行する複数の物理マシンと、
前記複数の物理マシンのうちの少なくとも1つに接続された管理マシンと
を有し、
前記複数の物理マシン及び前記管理マシンのうちの少なくとも1つである対象マシンが、
第1処理とその第1処理によって出力されるファイルである出力ファイルを入力とする第2処理とを含んだ多段処理における前記第1処理と前記第2処理との関係性に基づいて、前記第1処理を実行する第1仮想マシンの配置先の物理マシンと、前記出力ファイルを構成する1以上のデータブロックの格納先とする1以上の物理マシンと、前記第2処理を実行する第2仮想マシンの配置先の物理マシンと、を決定する
分散システム。 - 前記第1処理と前記第2処理の関係性とは、前記第2処理が要求するローカルアクセス値を満たすことであり、
前記ローカルアクセス値とは、前記第2処理に入力される前記出力ファイルを構成する複数のデータブロックの内、前記第2仮想マシンの配置先の物理マシンに格納されるデータブロックの割合に関する値である
請求項1に記載の分散システム。 - 前記対象マシンは、前記第2処理が要求するローカルアクセス値を満たすように、前記第1仮想マシン及び前記第2仮想マシンの配置先、並びに、前記出力ファイルを構成する各データブロックの格納先を決定できない場合、前記出力ファイルを構成するデータブロックのレプリカであるレプリカデータを、前記第2仮想マシンの配置先の物理マシンに格納するようになっている
請求項2に記載の分散システム。 - 前記対象マシンは、前記レプリカデータを所定数以上作成しなければ、前記第2処理が要求するローカルアクセス値を満たすことができない場合、その旨のエラーを出力するようになっている
請求項3に記載の分散システム。 - 前記対象マシンは、前記第2仮想マシンが要求するリソースを提供可能な物理マシンの中から、前記第2仮想マシンの配置先の物理マシンを決定するようになっている
請求項2に記載の分散システム。 - 前記対象マシンは、1つのファイルを構成する複数のデータブロックの内の所定数以上のデータブロックを、1つの物理マシンに格納するようになっている
請求項3に記載の分散システム。 - 前記対象マシンは、前記第2処理が要求するローカルアクセス値を、前記第1処理が要求するローカルアクセス値よりも大きく設定するようになっている
請求項2に記載の分散システム。 - 前記第1処理はバッチ型の処理であり、前記第2処理は対話型の処理である
請求項7に記載の分散システム。 - 通信ネットワークに接続され複数のファイルを構成する複数のデータブロックを分散して記憶するようになっており、分散システムを構成する複数の物理マシンと、前記通信ネットワーク又は別の通信ネットワークを介して前記複数の物理マシンのうちの少なくとも1つの物理マシンに接続される管理マシンとのうちのいずれかである計算機であって、
第1処理とその第1処理によって出力されるファイルである出力ファイルを入力とする第2処理とを含んだ多段処理における前記第1処理と前記第2処理との関係性を表す情報である管理情報を記憶する記憶資源と、
前記記憶資源に接続されたプロセッサと
を有し、
前記プロセッサが、第1処理とその第1処理によって出力されるファイルである出力ファイルを入力とする第2処理とを含んだ多段処理における前記第1処理と前記第2処理との関係性に基づいて、前記第1処理を実行する第1仮想マシンの配置先の物理マシンと、前記出力ファイルを構成する1以上のデータブロックの格納先とする1以上の物理マシンと、前記第2処理を実行する第2仮想マシンの配置先の物理マシンと、を決定する
計算機。 - 通信ネットワークに接続され複数のファイルを構成する複数のデータブロックを分散して記憶するようになっており、分散システムを構成する複数の物理マシンに仮想マシンを配置する方法であって、
第1処理とその第1処理によって出力されるファイルである出力ファイルを入力とする第2処理とを含んだ多段処理における前記第1処理と前記第2処理との関係性を表す情報である管理情報から前記関係性を特定し、
前記特定された関係性に基づいて、前記第1処理を実行する第1仮想マシンの配置先の物理マシンと、前記出力ファイルを構成する1以上のデータブロックの格納先とする1以上の物理マシンと、前記第2処理を実行する第2仮想マシンの配置先の物理マシンと、を決定する
仮想マシンの配置方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/500,140 US10585691B2 (en) | 2014-10-30 | 2014-10-30 | Distribution system, computer, and arrangement method for virtual machine |
JP2016556132A JP6212655B2 (ja) | 2014-10-30 | 2014-10-30 | 分散システム、計算機、及び、仮想マシンの配置方法 |
PCT/JP2014/078972 WO2016067424A1 (ja) | 2014-10-30 | 2014-10-30 | 分散システム、計算機、及び、仮想マシンの配置方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2014/078972 WO2016067424A1 (ja) | 2014-10-30 | 2014-10-30 | 分散システム、計算機、及び、仮想マシンの配置方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2016067424A1 true WO2016067424A1 (ja) | 2016-05-06 |
Family
ID=55856808
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2014/078972 WO2016067424A1 (ja) | 2014-10-30 | 2014-10-30 | 分散システム、計算機、及び、仮想マシンの配置方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10585691B2 (ja) |
JP (1) | JP6212655B2 (ja) |
WO (1) | WO2016067424A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109949111A (zh) * | 2019-03-06 | 2019-06-28 | 深圳市智税链科技有限公司 | 电子票据标识分配方法、电子票据生成方法、装置及系统 |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015172107A1 (en) | 2014-05-09 | 2015-11-12 | Nutanix, Inc. | Mechanism for providing external access to a secured networked virtualization environment |
US10606499B2 (en) * | 2015-09-11 | 2020-03-31 | Hitachi, Ltd. | Computer system, storage apparatus, and method of managing data |
US10642896B2 (en) | 2016-02-05 | 2020-05-05 | Sas Institute Inc. | Handling of data sets during execution of task routines of multiple languages |
US10650045B2 (en) | 2016-02-05 | 2020-05-12 | Sas Institute Inc. | Staged training of neural networks for improved time series prediction performance |
US10650046B2 (en) * | 2016-02-05 | 2020-05-12 | Sas Institute Inc. | Many task computing with distributed file system |
US10795935B2 (en) | 2016-02-05 | 2020-10-06 | Sas Institute Inc. | Automated generation of job flow definitions |
US11579861B2 (en) | 2016-02-12 | 2023-02-14 | Nutanix, Inc. | Virtualized file server smart data ingestion |
US11218418B2 (en) | 2016-05-20 | 2022-01-04 | Nutanix, Inc. | Scalable leadership election in a multi-processing computing environment |
US11195100B2 (en) * | 2016-08-17 | 2021-12-07 | International Business Machines Corporation | Determining applications based on interactions of different electronic devices |
US10824455B2 (en) | 2016-12-02 | 2020-11-03 | Nutanix, Inc. | Virtualized server systems and methods including load balancing for virtualized file servers |
US11562034B2 (en) | 2016-12-02 | 2023-01-24 | Nutanix, Inc. | Transparent referrals for distributed file servers |
US11568073B2 (en) | 2016-12-02 | 2023-01-31 | Nutanix, Inc. | Handling permissions for virtualized file servers |
US11294777B2 (en) | 2016-12-05 | 2022-04-05 | Nutanix, Inc. | Disaster recovery for distributed file servers, including metadata fixers |
US11281484B2 (en) | 2016-12-06 | 2022-03-22 | Nutanix, Inc. | Virtualized server systems and methods including scaling of file system virtual machines |
US11288239B2 (en) | 2016-12-06 | 2022-03-29 | Nutanix, Inc. | Cloning virtualized file servers |
USD898059S1 (en) | 2017-02-06 | 2020-10-06 | Sas Institute Inc. | Display screen or portion thereof with graphical user interface |
USD898060S1 (en) | 2017-06-05 | 2020-10-06 | Sas Institute Inc. | Display screen or portion thereof with graphical user interface |
US10721294B2 (en) * | 2017-07-12 | 2020-07-21 | Telefonaktiebolaget Lm Ericsson (Publ) | Apparatus and method for subscription-based resource throttling in a cloud environment |
US11562223B2 (en) * | 2018-04-24 | 2023-01-24 | EMC IP Holding Company LLC | Deep reinforcement learning for workflow optimization |
US11086826B2 (en) | 2018-04-30 | 2021-08-10 | Nutanix, Inc. | Virtualized server systems and methods including domain joining techniques |
US11194680B2 (en) | 2018-07-20 | 2021-12-07 | Nutanix, Inc. | Two node clusters recovery on a failure |
US11770447B2 (en) | 2018-10-31 | 2023-09-26 | Nutanix, Inc. | Managing high-availability file servers |
US11694303B2 (en) * | 2019-03-19 | 2023-07-04 | Electronics And Telecommunications Research Institute | Method and apparatus for providing 360 stitching workflow and parameter |
US11093138B2 (en) * | 2019-11-14 | 2021-08-17 | Vmware, Inc. | Optimizing virtual machine storage performance in a stretched cluster |
US11768809B2 (en) | 2020-05-08 | 2023-09-26 | Nutanix, Inc. | Managing incremental snapshots for fast leader node bring-up |
JP2022189454A (ja) * | 2021-06-11 | 2022-12-22 | 株式会社日立製作所 | ファイルストレージシステム、及び管理情報ファイル回復方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130318525A1 (en) * | 2012-05-25 | 2013-11-28 | International Business Machines Corporation | Locality-aware resource allocation for cloud computing |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9020891B1 (en) * | 2010-10-27 | 2015-04-28 | Amazon Technologies, Inc. | Reduced locking in a distributed data store |
US8732118B1 (en) * | 2012-01-13 | 2014-05-20 | Amazon Technologies, Inc. | Distributed performance of data aggregation operations |
US9727383B2 (en) * | 2012-02-21 | 2017-08-08 | Microsoft Technology Licensing, Llc | Predicting datacenter performance to improve provisioning |
US9582221B2 (en) | 2012-08-24 | 2017-02-28 | Vmware, Inc. | Virtualization-aware data locality in distributed data processing |
US9342355B2 (en) * | 2013-06-20 | 2016-05-17 | International Business Machines Corporation | Joint optimization of multiple phases in large data processing |
-
2014
- 2014-10-30 WO PCT/JP2014/078972 patent/WO2016067424A1/ja active Application Filing
- 2014-10-30 JP JP2016556132A patent/JP6212655B2/ja active Active
- 2014-10-30 US US15/500,140 patent/US10585691B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130318525A1 (en) * | 2012-05-25 | 2013-11-28 | International Business Machines Corporation | Locality-aware resource allocation for cloud computing |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109949111A (zh) * | 2019-03-06 | 2019-06-28 | 深圳市智税链科技有限公司 | 电子票据标识分配方法、电子票据生成方法、装置及系统 |
JP2022501752A (ja) * | 2019-03-06 | 2022-01-06 | ▲騰▼▲訊▼科技(深▲セン▼)有限公司 | 電子手形識別子の割り当て方法、電子手形の生成方法、及びその装置とシステム、並びに、記憶媒体及びコンピュータプログラム |
US11632441B2 (en) | 2019-03-06 | 2023-04-18 | Tencent Technology (Shenzhen) Company Limited | Methods, systems, and devices for electronic note identifier allocation and electronic note generation |
JP7271045B2 (ja) | 2019-03-06 | 2023-05-11 | ▲騰▼▲訊▼科技(深▲セン▼)有限公司 | 電子手形識別子の割り当て方法、電子手形の生成方法、及びその装置とシステム、並びに、記憶媒体及びコンピュータプログラム |
CN109949111B (zh) * | 2019-03-06 | 2023-12-08 | 深圳市智税链科技有限公司 | 电子票据标识分配方法、电子票据生成方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
JP6212655B2 (ja) | 2017-10-11 |
US20170277556A1 (en) | 2017-09-28 |
JPWO2016067424A1 (ja) | 2017-05-25 |
US10585691B2 (en) | 2020-03-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6212655B2 (ja) | 分散システム、計算機、及び、仮想マシンの配置方法 | |
JP5929196B2 (ja) | 分散処理管理サーバ、分散システム、分散処理管理プログラム及び分散処理管理方法 | |
US9576039B2 (en) | Resource provisioning systems and methods | |
US10298715B2 (en) | Distributed processing system, task processing method, and storage medium | |
US8874751B2 (en) | Candidate set solver with user advice | |
JP6215481B2 (ja) | クラウド環境におけるitインフラ管理のための方法とその装置 | |
US11620168B2 (en) | Managing metadata for a distributed processing system with manager agents and worker agents | |
US20160371121A1 (en) | Computer system and load leveling program | |
JP2016024612A (ja) | データ処理制御方法、データ処理制御プログラムおよびデータ処理制御装置 | |
JP2016091555A (ja) | データステージング管理システム | |
JP2020173727A (ja) | ストレージ管理装置、情報システム、及びストレージ管理方法 | |
US9805109B2 (en) | Computer, control device for computer system, and recording medium | |
US10671605B2 (en) | Managing persistent database result sets | |
US10838949B2 (en) | Shared resource update apparatus and shared resource update method | |
US10379780B2 (en) | Statistics management for scale-out storage | |
US10083121B2 (en) | Storage system and storage method | |
JP6878369B2 (ja) | ボリューム配置管理装置、ボリューム配置管理方法、及びボリューム配置管理プログラム | |
JP5659751B2 (ja) | 管理装置、管理方法、及びプログラム | |
US10824640B1 (en) | Framework for scheduling concurrent replication cycles | |
JP2015095096A (ja) | MapReduceジョブ実行システム、MapReduceジョブ実行方法 | |
EP4113313A1 (en) | Control method, information processing device, and control program | |
CN105518664B (zh) | 管理数据库节点 | |
JP2013088920A (ja) | 計算機システム及びデータ管理方法 | |
US11249952B1 (en) | Distributed storage of data identifiers | |
JP6210501B2 (ja) | データベース管理システム、計算機、データベース管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 14905053 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 15500140 Country of ref document: US |
|
ENP | Entry into the national phase |
Ref document number: 2016556132 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 14905053 Country of ref document: EP Kind code of ref document: A1 |