WO2015145753A1 - プログラム、管理方法およびコンピュータ - Google Patents

プログラム、管理方法およびコンピュータ Download PDF

Info

Publication number
WO2015145753A1
WO2015145753A1 PCT/JP2014/059259 JP2014059259W WO2015145753A1 WO 2015145753 A1 WO2015145753 A1 WO 2015145753A1 JP 2014059259 W JP2014059259 W JP 2014059259W WO 2015145753 A1 WO2015145753 A1 WO 2015145753A1
Authority
WO
WIPO (PCT)
Prior art keywords
server
virtual server
servers
virtual
hierarchy
Prior art date
Application number
PCT/JP2014/059259
Other languages
English (en)
French (fr)
Inventor
英樹 原
Original Assignee
富士通株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 富士通株式会社 filed Critical 富士通株式会社
Priority to PCT/JP2014/059259 priority Critical patent/WO2015145753A1/ja
Priority to JP2016509845A priority patent/JP6256594B2/ja
Publication of WO2015145753A1 publication Critical patent/WO2015145753A1/ja
Priority to US15/277,308 priority patent/US20170019462A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/20Arrangements for monitoring or testing data switching networks the monitoring system or the monitored elements being virtualised, abstracted or software-defined entities, e.g. SDN or NFV
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/06Generation of reports
    • H04L43/062Generation of reports related to network traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • H04L41/0816Configuration setting characterised by the conditions triggering a change of settings the condition being an adaptation, e.g. in response to network events
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/40Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities

Definitions

  • the present invention relates to a load management program, a management method, and a computer.
  • a plurality of processes corresponding to requests from client devices can be executed in parallel by the plurality of server devices.
  • processing efficiency improves.
  • the number of server devices in the system is determined according to the load on the system, for example. When the system load increases during operation, for example, the number of server devices in the system can be increased. As a result, the load per server device is reduced, and a reduction in processing efficiency is suppressed.
  • increasing the number of server devices in the system is referred to as scale-out.
  • scale-out When scaling out, start a new server device and distribute requests to that server device. Such scale-out is performed by a manual operation by an administrator, for example. In addition, scale-out can be automatically performed in the system without an administrator's operation. The function of performing scale-out automatically is called auto-scaling.
  • the necessity of system enhancement is determined in advance. For example, the system load is monitored by the management server. When the management server detects that the load per server device exceeds a predetermined value, the management server determines that the system needs to be enhanced by scaling out or the like.
  • a decentralized application resource allocation method for a cluster of nodes has been proposed.
  • a local node that contains a set of running applications receives application resource usage data from the node subset and modifies the set of applications running on the local node based on the resource usage data. To do.
  • a technology has been proposed that distributes the load while maintaining real-time performance when the system load increases.
  • a server load exceeds a predetermined upper limit value
  • a transfer destination server that executes a part of the services being executed on the server is selected. Then, the computer system selects one or more services from the services allocated to the server whose load exceeds the upper limit value, and allocates the selected service to the transfer destination server.
  • a system having a plurality of server devices it may take time to determine the necessity of system enhancement after the load fluctuates. For example, when a plurality of server devices process a large amount of transactions, a large amount of server devices are required. Therefore, it takes time to monitor and analyze the load due to the processing of a large amount of server devices. If it takes time to monitor and analyze the load, for example, an excessive delay occurs before the scale-out is executed by auto scaling. Then, the execution of the transaction by the system is delayed, and in some cases, it may cause a failure of the system.
  • an object of the present invention is to provide a program, a management method, and a computer that can quickly determine whether system enhancement is necessary.
  • a program for causing a computer to execute processing is provided.
  • a computer is connected to a plurality of servers realized by the server or another computer belonging to the same system as the computer executing the server software. It constitutes a dependency on delivery.
  • the computer receives a load value of one or more server groups subordinate to one or more second servers from one or more second servers subordinate to the first server realized by the computer.
  • the computer determines whether the system needs to be enhanced based on the load value of the first server and the load value received from each of the one or more second servers.
  • FIG. 1 illustrates an information processing system according to the first embodiment.
  • the information processing system according to the first embodiment includes servers 10, 10a, 10b, and 10c.
  • the servers 10, 10a, 10b, and 10c may be virtual machines.
  • the servers 10, 10a, 10b, and 10c perform a plurality of processes in parallel.
  • the servers 10, 10a, 10b, and 10c have a load value passing relationship defined in a tree structure.
  • Each of the servers 10, 10a, 10b, and 10c is a load of a server group (servers 10a and 10b) connected to the server 10a or lower in the tree structure from one or more servers 10a connected one down in the tree structure. Receive value.
  • each of the servers 10, 10a, 10b, and 10c autonomously determines whether or not to perform auto scaling based on the received load value.
  • Autoscale is a function that automatically performs scale-out and scale-in according to the system load. Scale-out is to increase the number of servers that make up the system. Scale-out is performed, for example, to improve the processing capacity of the system. Scale-in is to reduce the number of servers that make up the system. Scale-in is performed, for example, to efficiently use the resources of the entire system.
  • the servers 10, 10a, 10b, and 10c have a function of measuring the load value of their own server.
  • the load value is a value indicating the load applied to the server, such as the number of transactions executed by the server per predetermined time and a CPU (Central Processing Unit) usage rate.
  • the server 10 includes a reception unit 11 and a determination unit 12.
  • the receiving unit 11 and the determining unit 12 are realized using, for example, a processor such as a CPU or a DSP (Digital Signal Processor), or other electronic circuits such as an ASIC (Application Specific Integrated Circuit) or an FPGA (Field Programmable Gate Array).
  • the processor executes, for example, a program stored in the memory.
  • the processor may include a dedicated circuit for data processing in addition to an arithmetic unit and a register for executing program instructions.
  • the servers 10a, 10b, and 10c also include receiving units 11a, 11b, and 11c and determination units 12a, 12b, and 12c.
  • the receiving unit 11 receives the total load value and the total number of servers from each server immediately below the server 10 in the tree structure.
  • the total load value is the total load value of the servers existing in the structure below the self server in the tree structure.
  • the total number of servers is the number of servers existing in the structure below the self server in the tree structure.
  • the determination unit 12 determines whether or not the system is augmented based on the load value when the server 10 executes a plurality of processes, the received total load value, and the total number of servers. For example, first, the determination unit 12 calculates the total load value in servers below the server 10 in the tree structure based on the load value when the server 10 executes a plurality of processes and the sum of the received total load values. calculate. Next, the determination unit 12 adds 1 to the total number of received servers, and calculates the total number of servers below the server 10 in the tree structure. Next, the determination unit 12 calculates the average value of the load values of the servers 10 and lower in the tree structure (hereinafter referred to as the average load value) by “calculated total load value ⁇ total number of servers 10 and lower”.
  • the determination unit 12 determines to enhance the system when it is determined that the calculated average load value is equal to or greater than the threshold value.
  • System enhancement is achieved, for example, by scaling out.
  • the threshold value is stored in, for example, a volatile memory such as a RAM (Random Access Memory) or a nonvolatile storage device such as an HDD (Hard Disk Drive) or a flash memory.
  • the determination unit 12 may determine to reduce the system when the calculated average load value is determined to be less than another threshold value. The reduction of the system is realized by, for example, scale-in.
  • the threshold value for determining to augment the system is 100.
  • a server 10a exists under the server 10
  • a server 10b exists under the server 10a.
  • the load value of the server 10 is 160
  • the load value of the server 10a is 65
  • the load value of the server 10b is 75.
  • the server 10b since the server 10b does not have a lower server in the tree structure, the total load value and the average load value of the servers below the server 10b are both 75, and the total number of servers is 1.
  • each server in which a load value passing relationship is defined by a tree structure is the sum of servers included in the structure below each server from each server immediately below itself in the tree structure. Receive load value and total number. Then, each server autonomously determines whether or not to augment the system according to the average load on servers below itself in the tree structure.
  • the load values of each server that executes a plurality of processes are aggregated, and individual servers are used to determine whether or not to enhance the system, compared to a method that uses a server for determining whether or not the system is augmented. Reduces the amount of information collected. Therefore, even when a large number of servers are used, the load value of each server is not burdened, and the delay that occurs during auto scaling can be suppressed.
  • each server configured with a tree structure determines whether or not to augment the system based on the received total load value and the load value of its own server. Thereby, even when the load on each server is uneven, for example, when the load is concentrated locally, it is possible to appropriately determine whether or not to increase the server, and the load on each server can be leveled.
  • each server determines whether or not to augment the system, in addition to the average load value in its own server, the determination is based on the amount of change in the average load value or the amount of change in the average load value. Also good.
  • each server calculates the average load value, instead of receiving the total number of servers from the server at the next lower level, the total number of servers is estimated based on the depth or height of its own server node in the tree structure. May be.
  • the servers 10, 10a, 10b, and 10c may not be virtual machines.
  • scale-out can be realized, for example, by preparing a plurality of servers as spare servers in advance and adding the spare servers to the system configuration.
  • the scale-in can be realized, for example, by changing any one of the servers constituting the system from a system configuration to a spare server.
  • Virtualization is the abstraction of computer physical resources.
  • a server when a server is virtualized, one server device can appear to be a plurality of server devices.
  • the virtualized server device is referred to as a virtual server.
  • the scale-out of a virtual server is to increase the number of virtual servers in the system configuration.
  • the scale-in of the virtual server is to reduce the virtual server from the system configuration.
  • FIG. 2 is a diagram illustrating an information processing system according to the second embodiment.
  • the information processing system according to the second embodiment includes a terminal device 21, a load distribution device 22, a database server device 23, an execution server device 100, and a virtualization management server device 200.
  • the terminal device 21 is connected to the load distribution device 22 via the network 30.
  • the load distribution device 22, the database server device 23, the execution server device 100, and the virtualization management server device 200 are connected to each other via the network 31.
  • the terminal device 21 is a client computer used by a system user or the like.
  • the terminal device 21 requests the execution server device 100 to execute a plurality of transactions via the network 30 and the load distribution device 22.
  • the load distribution device 22 is a server computer that distributes a plurality of transactions requested to the terminal device 21 to a plurality of server devices.
  • the load distribution device 22 distributes the processing of the plurality of transactions requested from the terminal device 21 to the plurality of virtual servers used by the execution server device 100.
  • the database server device 23 is a server computer that stores and manages data in a nonvolatile storage device such as an HDD.
  • the database server device 23 stores data that the execution server device 100 refers to in order to execute a plurality of transactions, and data that is generated when the transactions are executed.
  • the execution server device 100 is a server computer capable of operating a plurality of virtual servers in parallel. Two or more execution server devices 100 may exist. In that case, a plurality of virtual servers may be distributed and arranged in a plurality of execution server devices. A plurality of transactions requested from the terminal device 21 are executed using a plurality of virtual servers. Further, the execution server device 100 requests the virtualization management server device 200 to scale out or scale in the virtual server in accordance with the transaction load.
  • the virtualization management server device 200 is a server computer having a function of scaling out or scaling in a virtual server.
  • the virtualization management server device 200 scales out or scales in the virtual server used by the execution server device 100 in response to a request from the execution server device 100.
  • FIG. 3 is a block diagram illustrating an example of hardware of the execution server device.
  • the execution server device 100 includes a CPU 101, a RAM 102, an HDD 103, an image signal processing unit 104, an input signal processing unit 105, a disk drive 106, and a communication interface 107. Each of the above units is connected to a bus 108 provided in the execution server device 100.
  • the CPU 101 is a processor including an arithmetic unit that executes program instructions.
  • the CPU 101 loads at least a part of the program and data stored in the HDD 103 into the RAM 102 and executes the program.
  • the CPU 101 may include a plurality of processor cores, the execution server device 100 may include a plurality of processors, and the processes described below may be executed in parallel using a plurality of processors or processor cores.
  • the RAM 102 is a volatile memory that temporarily stores programs executed by the CPU 101 and data used for calculation.
  • the execution server device 100 may include a type of memory other than the RAM, and may include a plurality of volatile memories.
  • the HDD 103 is a non-volatile storage device that stores software programs and data such as an OS (Operating System), firmware, and application software.
  • the execution server device 100 may include other types of storage devices such as a flash memory and an SSD (Solid State Drive), or may include a plurality of nonvolatile storage devices.
  • the image signal processing unit 104 outputs an image to the display 41 connected to the execution server device 100 in accordance with an instruction from the CPU 101.
  • a CRT Cathode Ray Tube
  • a liquid crystal display or the like can be used.
  • the input signal processing unit 105 acquires an input signal from the input device 42 connected to the execution server apparatus 100 and notifies the CPU 101 of the input signal.
  • a pointing device such as a mouse or a touch panel, a keyboard, or the like can be used.
  • the disk drive 106 is a drive device that reads programs and data recorded on the recording medium 43.
  • a magnetic disk such as a flexible disk (FD) or HDD
  • an optical disk such as a CD (Compact Disk) or a DVD (Digital Versatile Disk), or a magneto-optical disk (MO: Magneto-Optical disk) is used.
  • CD Compact Disk
  • DVD Digital Versatile Disk
  • MO Magneto-Optical disk
  • the disk drive 106 stores the program and data read from the recording medium 43 in the RAM 102 or the HDD 103 in accordance with a command from the CPU 101.
  • the communication interface 107 is an interface that communicates with other computers (for example, the load distribution device 22 and the virtualization management server device 200) via the network 31.
  • the communication interface 107 may be a wired interface connected to a wired network or a wireless interface connected to a wireless network.
  • the execution server device 100 may not include the disk drive 106, and may not include the image signal processing unit 104 and the input signal processing unit 105 when accessed exclusively from another computer.
  • the database server device 23 and the virtualization management server device 200 can also be realized using the same hardware as the execution server device 100.
  • the terminal device 21 has the same hardware as the execution server device 100 except that the communication interface 107 communicates with another computer (for example, the load distribution device 22) via the network 30 instead of the network 31. Can be realized.
  • the load balancer 22 has the same hardware as the execution server 100 except that the communication interface 107 communicates with another computer (for example, the terminal device 21) via the network 30 in addition to the network 31. Can be realized.
  • FIG. 4 is a block diagram showing an example of a tree structure that defines the performance measurement value passing relationship between virtual servers.
  • Virtual servers # 1, # 1-1, # 1-2, # 1-1-1, and # 1-1-2 are virtual machines used for the execution server device 100.
  • Virtual servers # 1, # 1-1, # 1-2, # 1-1-1, and # 1-1-2 execute a plurality of transactions distributed to the load balancer 22 in parallel.
  • Each virtual server autonomously determines whether or not to autoscale the system.
  • the virtual servers # 1, # 1-1, # 1-2, # 1-1-1, and # 1-1-2 have a tree structure.
  • the tree structure has a hierarchical structure.
  • virtual servers are added to the lower hierarchy sequentially from the highest virtual server # 1 in the tree structure.
  • a parent virtual server there is no virtual server in the upper hierarchy
  • a virtual server in the lower hierarchy hereinafter, referred to as a parent virtual server.
  • Virtual servers # 1-1 and # 1-2 exist as child virtual servers).
  • the virtual server # 1-1 exists as a parent virtual server
  • the virtual servers # 1-1-1 and # 1-1-2 exist as child virtual servers.
  • virtual server # 1-2 virtual server # 1 exists as a parent virtual server, and no child virtual server exists.
  • the virtual server # 1-1-1 and # 1-1-2 the virtual server # 1-1 exists as a parent virtual server, and no child virtual server exists.
  • the hierarchy to which the highest virtual server # 1 in the tree structure belongs is the first generation.
  • the tier to which the virtual servers # 1-1-1, # 1-1-2 immediately below the second tier virtual server # 1-1 belongs is the third generation.
  • a specific virtual server is a virtual server in the hierarchy below its own hierarchy, a specific virtual server and a virtual server that can be reached by tracing down the tree structure from the specific virtual server Shall point to.
  • Virtual servers # 1, # 1-1, # 1-2, # 1-1-1, and # 1-1-2 receive performance measurement values from each of the child virtual servers.
  • the virtual servers # 1, # 1-1, # 1-2, # 1-1-1, # 1-1-2 receive the performance measurement value received for each child virtual server and the own virtual server. Aggregate and analyze performance measurements.
  • Virtual servers # 1, # 1-1, # 1-2, # 1-1-1 and # 1-1-2 determine the presence or absence of scale-in / scale-out based on the performance measurement values after analysis. .
  • the virtual server # 1-1 receives performance measurement values from the child virtual servers # 1-1-1 and # 1-1-2 and aggregates and analyzes the received performance measurement values and its own performance measurement values. To do. Next, the aggregated and analyzed performance measurement values are transmitted to the parent virtual server # 1. Then, the virtual server # 1-1 determines the presence / absence of scale-in / scale-out based on the analyzed performance measurement value. The virtual server # 1 receives performance measurement values from the child virtual servers # 1-1 and # 1-2, and aggregates and analyzes the received performance measurement values and its own performance measurement values. Then, the virtual server # 1 determines the presence or absence of scale-in / scale-out based on the analyzed performance measurement value.
  • each virtual server configured in a tree structure is autonomous by determining the presence or absence of scale-in / scale-out based on performance measurements collected and analyzed for virtual servers in the hierarchy below its own hierarchy.
  • Manage autoscale That is, in the aggregation / analysis of performance measurement values executed by each of the plurality of virtual servers, the target virtual server sets are nested in each other.
  • virtual server # 1 aggregates and analyzes performance measurement values for five virtual servers # 1, # 1-1, # 1-2, # 1-1-1, and # 1-1-2.
  • the virtual server # 1-1 collects and analyzes performance measurement values for the three virtual # 1-1, # 1-1-1, and # 1-1-2.
  • Any virtual server that is the target of performance measurement value aggregation / analysis by virtual server # 1-1 is the target of performance measurement value aggregation / analysis by virtual server # 1. Since the virtual server set that is the target of aggregation / analysis of performance measurement values has a nested structure, it is possible to quickly detect local load fluctuations and determine whether auto-scaling is necessary.
  • FIG. 4 what is shown in FIG. 4 is a tree structure that defines the passing relationship of performance measurement values between virtual servers. Requests from the terminal devices are distributed based on a relationship different from the tree structure shown in FIG.
  • FIG. 5 is a block diagram showing an example of a connection relationship for distributing requests from terminal devices.
  • the load distribution device 22 distributes and distributes a plurality of transactions requested from the terminal device 21 to each virtual server.
  • a virtual server for example, virtual server # 1-1-2
  • the number of virtual servers to which transactions of the load distribution device 22 are distributed increases.
  • FIG. 6 is a block diagram illustrating functional examples of the execution server device and the management server.
  • the execution server device 100 includes a hypervisor 110 and a virtual server # 1.
  • the hypervisor 110 is a program that controls the OS on the virtual server # 1 in order to realize virtualization of the virtual server # 1.
  • the hypervisor 110 efficiently allocates the resources (for example, the CPU 101, the RAM 102, the HDD 103, etc.) of the execution server device 100 to the virtual server # 1.
  • the virtual server # 1 includes a management information storage unit 120, a load measurement unit 130, a load analysis unit 140, an autoscale determination unit 150, and an autoscale execution unit 160.
  • the management information storage unit 120 stores information managed by the virtual server # 1 for realizing auto scaling.
  • the management information storage unit 120 includes a threshold information table 121, a load analysis value table 122, a server number management table 123, and a hierarchy management table 124.
  • the threshold information table 121 stores threshold information used by the virtual server # 1 to determine whether to scale out or scale in, such as a threshold for the average number of transactions.
  • the information stored in the threshold information table 121 may be set by a system administrator, for example.
  • the load analysis value table 122 stores values (average number of transactions, etc.) obtained by summing up and analyzing the number of transactions of each virtual server in a hierarchy below the hierarchy of the virtual server # 1 every predetermined time.
  • the server number management table 123 stores the number of parent, child, and own virtual servers. The server number management table 123 is used for analyzing the number of transactions.
  • the hierarchy management table 124 stores information for the virtual server # 1 to grasp the parent or child virtual server.
  • the load measuring unit 130 measures the number of transactions of the virtual server # 1.
  • the number of transactions is the number of transactions executed by the virtual server within a predetermined time.
  • the load measuring unit 130 refers to the hierarchy management table 124 and searches for a virtual server that is a child of the virtual server # 1.
  • the load measuring unit 130 receives the total number of transactions and the total number of virtual servers every predetermined time from the searched virtual servers of each child.
  • the total number of transactions is the total number of transactions executed by each virtual server in the hierarchy below its own hierarchy within a predetermined time.
  • the total number of virtual servers is the total number of virtual servers in the hierarchy below the own hierarchy.
  • the load analysis unit 140 calculates the total number of transactions of the virtual server # 1 based on the number of transactions of the virtual server # 1 measured by the load measurement unit 130 and the total number of transactions of each child virtual server received by the load measurement unit 130. Calculated and stored in the load analysis value table 122. Further, the total of the total number of virtual servers received by the load measuring unit 130 is calculated and stored in the server number management table 123. Next, the load analysis unit 140 transmits the calculated total number of transactions and total number of virtual servers to the parent virtual server. Then, the load analysis unit 140 analyzes the calculated total number of transactions in the virtual server # 1 and the information stored in the server number management table 123, and stores the information obtained by the analysis such as the average number of transactions in the load analysis value table 122. To do.
  • the average number of transactions is an average value of the number of transactions executed by each virtual server in the hierarchy below its own hierarchy within a predetermined time.
  • the auto scale determination unit 150 compares the analysis value by the load analysis unit 140 stored in the load analysis value table 122 with the threshold value stored in the threshold information table 121, and determines whether or not the virtual server is scaled out and scaled in. judge.
  • the autoscale execution unit 160 requests the virtualization management server device 200 to execute scale-out or scale-in based on the determination result by the autoscale determination unit 150.
  • the auto scale execution unit 160 updates the information stored in the hierarchy management table 124 with the scale out or scale in.
  • the virtualization management server device 200 includes a scale-out execution unit 210 and a scale-in execution unit 220.
  • the scale-out execution unit 210 scales out the virtual server when scale-out is requested from the virtual server # 1. Next, the scale-out execution unit 210 responds to the virtual server # 1 that the scale-out has been completed.
  • the scale-in execution unit 220 scales in the virtual server # 1 when requested to scale in from the virtual server # 1. Next, the scale-in execution unit 220 responds to the virtual server # 1 that the scale-in has been completed.
  • FIG. 7 is a diagram showing a setting example of the threshold information table.
  • the threshold information table 121 includes items of an average transaction number (upper limit), an average transaction number (lower limit), an average transaction change amount (upper limit), and an average transaction change amount (lower limit).
  • an upper limit value of the average transaction number is set.
  • the virtual server requests the virtualization management server device 200 to scale out.
  • a lower limit value of the average transaction number is set.
  • the virtual server requests the virtualization management server device 200 to perform scale-in.
  • an upper limit value of the average transaction change amount is set.
  • the virtual server requests the virtualization management server device 200 to scale out.
  • a lower limit value of the average transaction change amount is set.
  • the virtual server requests the virtualization management server device 200 to scale in.
  • FIG. 8 is a diagram showing an example of the load analysis value table.
  • the load analysis value table 122 includes items of date and time, average number of transactions, and average transaction change amount.
  • the date and time item the date and time when the average number of transactions is calculated is set.
  • the average transaction number of the virtual server per predetermined time is set.
  • the average transaction change amount a change amount of the average number of transactions of the virtual server per predetermined time is set. Specifically, the amount of change in the average transaction number is calculated by the difference between the calculated average transaction number and the previously calculated average transaction number.
  • FIG. 9 is a block diagram showing an example of a change amount of a transaction.
  • Virtual server # 1 is the parent virtual server of virtual server # 1-1
  • virtual server # 1-1 is the parent virtual server of virtual server # 1-1-1.
  • the load analysis value table 122 is a table included in the virtual server # 1
  • the load analysis value table 122a is a table included in the virtual server # 1-1
  • the load analysis value table 122b is included in the virtual server # 1-1-1. It is a table.
  • the description of the date is omitted for the date and time items in the load analysis value tables 122, 122a, and 122b.
  • Each load analysis value table is updated every 10 seconds by the corresponding virtual server.
  • FIG. 10 is a diagram illustrating an example of a server number management table.
  • the server number management table 123 has items of parent, self, and child.
  • the parent item the number of virtual servers one level above virtual server # 1 is set.
  • the own item the number of virtual servers in the hierarchy of the virtual server # 1 (that is, 1) is set.
  • the child item the number of virtual servers below the hierarchy one level below the virtual server # 1 is set.
  • FIG. 11 is a block diagram illustrating an example of acquiring the number of virtual servers.
  • the child virtual server refers to the server number management table and transmits the number of children and its own virtual server to the virtual server.
  • the virtual server receives the child in the child virtual server and the number of its own virtual servers from each child virtual server.
  • the virtual server adds up the number of each virtual server received from each child virtual server.
  • the virtual server stores the total number of virtual servers in a child virtual server of the server number management table.
  • the virtual server transmits the stored number of child virtual servers and the number of its own virtual servers to the parent virtual server.
  • virtual servers # 1-1 and # 1-2 exist as child virtual servers of virtual server # 1.
  • Virtual servers # 1-1-1 and # 1-1-2 exist as child virtual servers of the virtual server # 1-1.
  • the virtual server # 1 has a server number management table 123
  • the virtual server # 1-1 has a server number management table 123a
  • the virtual server # 1-2 has a server number management table 123b
  • the virtual server # 1 -1-1 has a server number management table 123c
  • the virtual server # 1-1-2 has a server number management table 123d.
  • each virtual server manages its own total number of virtual servers by passing the data in the server number management table to the parent and child virtual servers.
  • FIG. 12 is a diagram illustrating an example of a hierarchy management table.
  • the hierarchy management table 124 has items of hierarchy and host name.
  • information indicating the relationship of the hierarchy with its own virtual server is set.
  • the hierarchy “parent”, it indicates that the hierarchy is one level higher than its own virtual server.
  • the hierarchy “child”, it indicates that the hierarchy is one level lower than its own virtual server.
  • the host name item the host name of the virtual server corresponding to the hierarchical item is set.
  • FIG. 13 is a diagram showing a setting example of the hierarchy management table.
  • Virtual servers # 1-1 and # 1-2 exist as child virtual servers of the virtual server # 1.
  • Virtual servers # 1-1-1 and # 1-1-2 exist as child virtual servers of the virtual server # 1-1.
  • Virtual servers # 1-1-1-1 and # 1-1-1-2 exist as child virtual servers of the virtual server # 1-1-1.
  • a record which is -1-1-1 is stored.
  • each virtual server manages the host names of the “self”, “parent”, and “child” virtual servers. This realizes a virtual server configuration with a tree structure.
  • FIG. 14 is a flowchart illustrating an example of an autoscale procedure performed by the virtual server.
  • Step S12 The load measurement unit 130 acquires performance measurement values such as the total number of transactions for the selected virtual server. Details of the processing will be described later (see FIG. 13).
  • Step S14 The load analysis unit 140 counts and analyzes the number of transactions acquired in step S12 or the total number of transactions received in step S12. Details of the processing will be described later (see FIG. 15).
  • Step S ⁇ b> 15 The autoscale determination unit 150 acquires a threshold value from the threshold information table 121.
  • Step S16 The autoscale determination unit 150 determines whether or not scale-out or scale-in is present. Then, the auto scale execution unit 160 executes scale out or scale in according to the determination. Details of the processing will be described later (see FIG. 16).
  • Step S17 The load measurement unit 130 determines whether a stop request has been received. If a stop request is received, the process ends. If a stop request has not been received, the process proceeds to step S11.
  • FIG. 15 is a flowchart illustrating an exemplary procedure for acquiring the number of transactions.
  • the process shown in the flowchart of FIG. 15 is executed in step S12.
  • the load measurement unit 130 confirms the predetermined time.
  • the predetermined time is a time interval at which the virtual server # 1 measures or analyzes performance measurement values such as the number of transactions.
  • a set value set by an administrator of the system is used.
  • an initial value may be set in advance for a predetermined time before the administrator sets it, or a default value may be set when the administrator omits the setting.
  • the set predetermined time is stored in a storage area of the virtual server # 1.
  • Step S122 The load measurement unit 130 determines whether a child virtual server is selected in step S11. If a child virtual server is selected, the process proceeds to step S123. If no child virtual server is selected, the process proceeds to step S125.
  • the load measuring unit 130 receives the total number of transactions of the child virtual server from the selected child virtual server.
  • the total number of transactions is the total number of transactions executed by each virtual server in the hierarchy below the own hierarchy from the predetermined time acquired in step S121 to the present.
  • the load measuring unit 130 receives the total number of virtual servers below the child virtual server from the selected child virtual server.
  • the number of child virtual servers themselves is one.
  • the total number of virtual servers is the total number of virtual servers in the hierarchy below the own hierarchy.
  • Step S125 The load measuring unit 130 acquires the number of transactions of the selected own virtual server.
  • the number of transactions is the number of transactions executed by the virtual server from the predetermined time acquired in step S121 to the present.
  • Step S126 The load measuring unit 130 determines whether or not the predetermined time acquired in Step S121 has elapsed. If the predetermined time has elapsed, the process proceeds to step S122. If the predetermined time has not elapsed, the process proceeds to step S126.
  • FIG. 16 is a flowchart illustrating an exemplary procedure for analyzing the number of transactions.
  • the process shown in the flowchart of FIG. 16 is executed in step S14.
  • Step S141 The load analysis unit 140 checks the same predetermined time as in step S121.
  • Step S142 The load analysis unit 140 checks the current date and time.
  • Step S143 The load analysis unit 140 totals the number of child virtual servers themselves and the total number of child virtual servers acquired in step S12.
  • the load analysis unit 140 updates the number of child virtual servers in the server number management table 123 with the total number of virtual servers tabulated.
  • Step S144 The load analysis unit 140 totals the number of transactions acquired in step S12, and calculates the total number of transactions of its own virtual server.
  • Step S145 The load analysis unit 140 calculates the average number of transactions of its own virtual server based on the total number of transactions and the number of virtual servers. Specifically, the total number of transactions is calculated by dividing (the number of child virtual servers in the server number management table 123 + 1 (the number of own virtual servers)).
  • Step S146 The load analysis unit 140 determines whether the load analysis value table 122 has a calculated value of the average number of transactions calculated last time. If there is a calculated value of the average number of transactions calculated last time, the process proceeds to step S147. If there is no calculated value of the average number of transactions calculated last time, the process proceeds to step S148.
  • Step S147 The load analysis unit 140 calculates an average transaction change amount based on the calculated average number of transactions ⁇ the previously calculated average number of transactions.
  • Step S148 The load analysis unit 140 sets 0 as the transaction change amount.
  • Step S150 The load analysis unit 140 transmits the calculated total number of transactions, the number of child virtual servers, and the number of own virtual servers to the parent virtual server.
  • the number of child virtual servers and the number of own virtual servers refer to the server number management table 123.
  • Step S151 The load analysis unit 140 determines whether or not the predetermined time acquired in Step S141 has elapsed. If the predetermined time has elapsed, the process proceeds to step S142. If the predetermined time has not elapsed, the process proceeds to step S151.
  • the virtual server counts and analyzes the number of transactions in the hierarchy below its own virtual server every predetermined time. At this time, the own virtual server aggregates / analyzes the number of transactions asynchronously with the process of aggregation or analysis of the child virtual servers. This saves time for synchronization with the aggregation / analysis of the child virtual servers, thereby realizing faster auto-scaling.
  • FIG. 17 is a flowchart illustrating an example of a procedure for executing auto scaling.
  • the process shown in the flowchart of FIG. 17 is executed in step S16.
  • the autoscale determination unit 150 checks whether the average transaction number registered in Step S149 is equal to or greater than a threshold value.
  • the threshold refers to the average transaction number (upper limit) in the threshold information table 121. If the average transaction number is equal to or greater than the threshold, the process proceeds to step S162. If the average transaction number is less than the threshold, the process proceeds to step S163.
  • Step S162 The auto scale execution unit 160 executes scale out. Details of the processing will be described later (see FIG. 18).
  • the autoscale determination unit 150 confirms whether the average run change amount registered in Step S149 is equal to or greater than a threshold value.
  • the threshold refers to the average transaction change amount (upper limit) in the threshold information table 121. If the average run change amount is greater than or equal to the threshold, the process proceeds to step S164. If the average transaction number is less than the threshold, the process proceeds to step S165.
  • Step S164 The auto scale execution unit 160 executes scale out. Details of the processing will be described later (see FIG. 18).
  • the autoscale determination unit 150 confirms whether the average number of transactions registered in step S149 is equal to or less than a threshold value.
  • the threshold refers to the average transaction number (lower limit) in the threshold information table 121. If the average transaction number is less than the threshold, the process proceeds to step S166. If the average transaction number is equal to or greater than the threshold, the process proceeds to step S172.
  • Step S167 The auto-scale execution unit 160 executes scale-in when there is a parent virtual server and there is no child virtual server. Details of the processing will be described later (see FIG. 23).
  • Step S168 The autoscale determination unit 150 refers to the hierarchy management table 124 and determines whether there is no parent virtual server and there is a child virtual server. If there is no parent virtual server and there is a child virtual server, the process proceeds to step S169. If there is a parent virtual server or there is no child virtual server, the process proceeds to step S170.
  • Step S169 The autoscale execution unit 160 executes scale-in when there is no parent virtual server and there are child virtual servers. Details of the processing will be described later (see FIG. 26).
  • Step S170 The autoscale determination unit 150 refers to the hierarchy management table 124 to determine whether there is a parent virtual server and a child virtual server. If there is a parent virtual server and there is a child virtual server, the process proceeds to step S171. If there is no parent virtual server or no child virtual server, the process advances to step S172.
  • Step S171 The autoscale execution unit 160 executes scale-in when there is a parent virtual server and there are child virtual servers. Details of the processing will be described later (see FIG. 29).
  • Step S ⁇ b> 172 The auto scale determination unit 150 confirms whether the average transaction change amount in the load analysis value table 122 is equal to or less than a threshold value.
  • the threshold refers to the average transaction change amount (lower limit) in the threshold information table 121. If the average run change amount is less than the threshold, the process proceeds to step S173. If the average tran change amount is equal to or greater than the threshold, the process is terminated.
  • the autoscale determination unit 150 refers to the hierarchy management table 124 and determines whether there is a parent virtual server and no child virtual server. If there is a parent virtual server and there is no child virtual server, the process proceeds to step S174. If there is no parent virtual server or there is a child virtual server, the process proceeds to step S175.
  • Step S174 The autoscale execution unit 160 executes scale-in when there is a parent virtual server and there is no child virtual server. Details of the processing will be described later (see FIG. 23).
  • Step S175) The autoscale determination unit 150 refers to the hierarchy management table 124 and determines whether there is no parent virtual server and there is a child virtual server. If there is no parent virtual server and there is a child virtual server, the process advances to step S176. If there is a parent virtual server or there is no child virtual server, the process proceeds to step S177.
  • Step S176 The autoscale execution unit 160 executes scale-in when there is no parent virtual server and there are child virtual servers. Details of the processing will be described later (see FIG. 26).
  • Step S177 The autoscale determination unit 150 refers to the hierarchy management table 124 and determines whether there is a parent virtual server and a child virtual server. If there is a parent virtual server and there is a child virtual server, the process proceeds to step S178. If there is no parent virtual server or no child virtual server, the process ends.
  • Step S178 The autoscale execution unit 160 executes scale-in when there is a parent virtual server and there are child virtual servers. Details of the processing will be described later (see FIG. 29). Next, the scale-out process will be described.
  • FIG. 18 is a flowchart illustrating an example of a scale-out procedure. The process shown in the flowchart of FIG. 18 is executed in steps S162 and S164.
  • Step S181 The autoscale execution unit 160 requests the virtualization management server device 200 to scale out the virtual server.
  • Step S182 The scale-out execution unit 210 receives a request from the virtual server # 1, and performs scale-out. Then, the scale-out execution unit 210 returns the host name (or IP address) of the virtual server scaled out to the virtual server # 1.
  • Step S183 The auto-scale execution unit 160 confirms the host name of the scaled-out virtual server in response to the response from the virtualization management server device 200.
  • Step S188 The autoscale execution unit 160 determines whether the registration result returned from the scaled out virtual server is a normal end. If it is a normal end, the process proceeds to step S189. If not normal end, the process proceeds to step S186.
  • Step S189 The autoscale execution unit 160 requests the load balancer 22 to start using the scaled out virtual server, and receives a response to the request from the load balancer 22.
  • FIG. 19 is a diagram illustrating a response example between devices in scale-out.
  • FIG. 19 illustrates a case where virtual server # 1-1 requests a scale-out.
  • the virtual server # 1-1 requests the virtualization management server device 200 to scale out the virtual server (step S181).
  • the virtualization management server device 200 receives the request from the virtual server # 1-1, and scales out the virtual server # 1-1-1.
  • the virtual server # 1-1-1 is requested to be registered in the table 124g (step S186).
  • -1-1 record is registered in the hierarchy management table 124g (step S187).
  • the hierarchy management table 124g before record registration becomes the hierarchy management table 124h after record registration.
  • the virtual server # 1-1-1 responds to the registration result to the virtual server # 1-1 (step S188).
  • FIG. 20 is a first block diagram illustrating an example of scale-out. In FIG. 20, only virtual server # 1 exists. When virtual server # 1 requests scale-out, the scaled-out virtual server # 1-1 is configured as a virtual server that is a child of virtual server # 1.
  • FIG. 21 is a second block diagram showing an example of scale-out.
  • the scaled-out virtual server # 1-1-1 is configured as a child virtual server of virtual server # 1-1.
  • FIG. 22 is a third block diagram showing an example of scale-out.
  • the scaled-out virtual server # 1-2 is configured as a child virtual server of virtual server # 1.
  • a virtual server when a virtual server requests a scale-out, it registers the scaled-out virtual server in its own hierarchical management table, thereby making the scaled-out virtual server its own. Configure as a child virtual server.
  • FIG. 23 is a flowchart illustrating a procedure example of the first scale-in. The process shown in the flowchart of FIG. 23 is executed in steps S167 and S174.
  • Step S ⁇ b> 191 The autoscale execution unit 160 requests the load balancer 22 to stop using its own virtual server, and receives a response to the request from the load balancer 22.
  • Step S ⁇ b> 192 The autoscale execution unit 160 stops the process that executes the transaction after the execution of all the transactions being executed is completed.
  • Step S197 The autoscale execution unit 160 receives a response from the parent virtual server. Then, the autoscale execution unit 160 determines whether or not the returned result is a normal end. If it is a normal end, the process proceeds to step S198. If not, the process proceeds to step S195.
  • Step S198 The autoscale execution unit 160 requests the virtualization management server device 200 to scale in its own virtual server # 1.
  • Step S199 The scale-in execution unit 220 receives a request from the virtual server # 1, and scales in the virtual server # 1. The scale-in execution unit 220 then responds to the virtual server # 1 that the scale-in has been performed.
  • Step S200 The autoscale execution unit 160 transmits a response to the effect that the virtual management server device 200 has performed the scale-in to the parent virtual server that has searched.
  • FIG. 24 is a diagram illustrating a response example between apparatuses in the first scale-in.
  • FIG. 24 illustrates a case where the virtual server # 1-1-1 requests scale-in.
  • Virtual server # 1-1-1 has no child virtual server.
  • the virtual server # 1-1-1 requests the load balancer 22 to stop using the virtual server # 1-1-1, and receives a response from the load balancer 22 (step S191).
  • the hierarchy management table 124i before the record deletion becomes the hierarchy management table 124j after the record deletion.
  • Virtual server # 1-1 responds to virtual server # 1-1-1 with the result of the deletion.
  • Virtual server # 1-1-1 receives the response from virtual server # 1-1. (Step S197).
  • the virtual server # 1-1-1 requests the virtualization management server device 200 to scale in the virtual server # 1-1-1 (step S198).
  • the virtualization management server device 200 receives the request from the virtual server # 1-1-1, and scales in the virtual server # 1-1-1. Then, the virtualization management server device 200 responds that it has been scaled in to the virtual server # 1-1-1 (step S199).
  • the virtual server # 1-1-1 transmits a response indicating that the scale-in by the virtualization management server device 200 has been performed to the parent virtual server # 1-1 (step S200).
  • FIG. 25 is a block diagram showing a first scale-in example.
  • Virtual servers # 1-1 and # 1-2 exist as virtual servers that are children of the virtual server # 1.
  • Virtual servers # 1-1-1 and # 1-1-2 exist as virtual servers that are children of the virtual server # 1-1.
  • the hierarchy management table 124i before the record deletion becomes the hierarchy management table 124j after the record deletion.
  • the virtual server structure includes virtual servers # 1-1 and # 1-2 as child virtual servers of the virtual server # 1.
  • the virtual server # 1-1-2 exists in the child virtual server of the virtual server # 1-1.
  • a virtual server in which a parent virtual server exists and a child virtual server does not exist corresponds to a leaf node of a tree structure.
  • the record of the scaled-in virtual server is deleted from the parent virtual server hierarchy management table.
  • FIG. 26 is a flowchart illustrating an example of the second scale-in procedure. The process shown in the flowchart of FIG. 26 is executed in steps S169 and S176.
  • Step S201 The autoscale execution unit 160 requests the load balancer 22 to stop using its own virtual server, and receives a response to the request from the load balancer 22.
  • Step S ⁇ b> 202 The autoscale execution unit 160 stops the process for executing the transaction after the execution of all the transactions being executed is completed.
  • Step S205 The autoscale execution unit 160 determines whether there are two or more retrieved child virtual servers. If there are two or more child virtual servers, the process advances to step S209. If the number of child virtual servers is less than 2, the process proceeds to step S206.
  • Step S208 The autoscale execution unit 160 determines whether the returned result is a normal end. If it is a normal end, the process proceeds to step S217. If not, the process proceeds to step S206.
  • Step S209 The autoscale execution unit 160 selects one of the searched child virtual servers.
  • Step S213 The autoscale execution unit 160 receives a response from the child virtual server. Then, the autoscale execution unit 160 determines whether or not the returned result is a normal end. If it is a normal end, the process proceeds to step S214. If not, the process proceeds to step S209.
  • Step S216 The autoscale execution unit 160 determines whether or not the response result of the update is a normal end. If it is a normal end, the process proceeds to step S217. If not, the process proceeds to step S214.
  • Step S21-7 The autoscale execution unit 160 requests the virtualization management server device 200 to scale in its own virtual server # 1.
  • Step S2128 The scale-in execution unit 220 receives a request from the virtual server # 1, and scales in the virtual server # 1. The scale-in execution unit 220 then responds to the virtual server # 1 that the scale-in has been performed.
  • Step S219) The autoscale execution unit 160 transmits a response to the effect that scale-in by the virtualization management server device 200 has been performed to the parent virtual server.
  • FIG. 27 is a diagram illustrating a response example between devices in the second scale-in.
  • FIG. 27 illustrates a case where virtual server # 1 requests scale-in.
  • Virtual server # 1 has no parent virtual server.
  • the virtual server # 1 requests the load balancer 22 to stop using the virtual server # 1, and receives a response from the load balancer 22 (step S201).
  • the hierarchy management table 124m before record deletion and registration becomes the hierarchy management table 124n after record deletion and registration.
  • Virtual server # 1-1 responds to virtual server # 1 with the result of record deletion and registration (step S213).
  • a request is made (step S214).
  • the virtual server # 1 requests the virtualization management server device 200 to scale in its own virtual server # 1 (step S217).
  • the virtualization management server device 200 receives the request from the virtual server # 1, and scales in the virtual server # 1. Then, the virtualization management server device 200 responds that it has been scaled in to the virtual server # 1 (step S218).
  • the virtual server # 1 transmits a response to the effect that the scale-in by the virtualization management server apparatus 200 has been performed to the child virtual servers # 1-1 and # 1-2 (step S219).
  • FIG. 28 is a block diagram showing a second scale-in example.
  • Virtual servers # 1-1 and # 1-2 exist as child virtual servers of the virtual server # 1.
  • the hierarchy management table 124m before record deletion and registration becomes the hierarchy management table 124n after record deletion and registration.
  • the hierarchy management table 124o before the record update becomes the hierarchy management table 124p after the record update.
  • a virtual server in which there is no parent virtual server and there are a plurality of child virtual servers corresponds to the root node of the tree structure.
  • a virtual server corresponding to such a root node is scaled in
  • a tree structure is generated in which one of the child virtual servers of the scaled-in virtual server is a root node and the remaining child virtual servers are the child virtual servers of the root node.
  • a virtual server can hold a tree structure.
  • FIG. 29 is a flowchart illustrating an example of a third scale-in procedure. The process shown in the flowchart of FIG. 29 is executed in steps S171 and S178.
  • Step S ⁇ b> 221 The autoscale execution unit 160 requests the load balancer 22 to stop using its own virtual server, and receives a response to the request from the load balancer 22.
  • Step S222 The autoscale execution unit 160 waits for the execution of all the transactions being executed to be completed, and then stops the process for executing the transaction in the virtual server # 1.
  • Step S228) The autoscale execution unit 160 receives a response from the parent virtual server. Then, the autoscale execution unit 160 determines whether or not the returned result is a normal end. If it is a normal end, the process proceeds to step S229. If not, the process proceeds to step S226.
  • Step S231 The autoscale execution unit 160 receives a response from the child virtual server. Then, the autoscale execution unit 160 determines whether or not the returned result is a normal end. If it is a normal end, the process proceeds to step S232. If not normal end, the process proceeds to step S229.
  • Step S232 The autoscale execution unit 160 requests the virtualization management server apparatus 200 to scale in its own virtual server # 1.
  • Step S233 The scale-in execution unit 220 receives a request from the virtual server # 1, and scales in the virtual server # 1. The scale-in execution unit 220 then responds to the virtual server # 1 that the scale-in has been performed.
  • Step S234 The autoscale execution unit 160 transmits a response to the effect that scale-in by the virtualization management server device 200 has been performed to the parent virtual server.
  • FIG. 30 is a diagram illustrating a response example between devices in the third scale-in.
  • FIG. 30 illustrates a case where virtual server # 1-1 requests scale-in.
  • the virtual server # 1-1 requests the load balancer 22 to stop using its own virtual server # 1-1, and receives a response from the load balancer 22 (step S221).
  • the hierarchy management table 124r before record deletion and registration becomes the hierarchy management table 124s after record deletion and registration.
  • Virtual server # 1 responds to virtual server # 1-1 with the result of record deletion and registration (step S228).
  • the virtual server # 1 requests the virtualization management server device 200 to scale in the virtual server # 1-1 (step S232).
  • the virtualization management server device 200 receives the request from the virtual server # 1-1 and scales in the virtual server # 1-1.
  • the virtualization management server device 200 then responds that it has been scaled in to the virtual server # 1 (step S233).
  • the virtual server # 1-1 transmits a response indicating that the scale-in by the virtualization management server device 200 has been performed to the parent virtual server # 1 and the child virtual server # 1-1-1 (step S234).
  • FIG. 31 is a block diagram showing a third scale-in example.
  • Virtual server # 1-1 exists as a child virtual server of virtual server # 1.
  • a virtual server # 1-1-1 exists as a child virtual server of the virtual server # 1-1.
  • the hierarchy management table 124r before record deletion and registration becomes the hierarchy management table 124s after record deletion and registration.
  • the hierarchy management table 124t before the record update becomes the hierarchy management table 124u after the record update.
  • a virtual server in which a parent virtual server exists and a child virtual server exists does not correspond to either a root node or a leaf node in the tree structure.
  • the hierarchy management table is updated so that the parent virtual server of the scaled-in virtual server becomes the parent of the child virtual server of the scaled-in virtual server.
  • the parent virtual server is one layer above the child virtual server, so that each virtual server after the scale-out can hold a tree structure.
  • the presence or absence of scale-out or scale-in is determined based on the change amount in the average transaction change amount in addition to the average number of transactions and the average transaction change amount.
  • FIG. 32 is a diagram showing a change example of the threshold information table.
  • the threshold information table 125 is a variation of the threshold information table 121.
  • the threshold information table 125 includes the number of transactions (upper limit), the number of transactions (lower limit), the amount of transition change (upper limit), the amount of transition change (lower limit), the amount of change in transaction change (upper limit), and the amount of change in transaction change (lower limit). ) Items. Since the items of the number of transactions (upper limit), the number of transactions (lower limit), the amount of change in transaction (upper limit), and the amount of change in transaction (lower limit) are the same as those in the threshold information table 121, description thereof is omitted.
  • an upper limit value of the change amount in the average transaction change amount is set.
  • the virtual server requests the virtualization management server device 200 to scale out.
  • the lower limit value of the change amount in the average transaction change amount is set in the item of the change amount (lower limit) of the transaction change amount.
  • the virtual server requests the virtualization management server device 200 to perform scale-in.
  • FIG. 33 is a diagram showing a change example of the load analysis value table.
  • the load analysis value table 126 includes items of date and time, average number of tran, average tran change, and average tran change.
  • the items of date and time, average number of tranforms, and average tran change amount are the same as those in the load analysis value table 122, and thus description thereof is omitted.
  • a change amount in the average transaction change amount of the virtual server per predetermined time is set. Specifically, the change amount of the average transaction change amount is calculated by the difference between the calculated average transaction change amount and the previously calculated average transaction change amount.
  • the presence or absence of scale-out is added to the average number of transactions and the average transaction change amount determined in the second embodiment.
  • a change in average transaction change is also determined.
  • a sign of a more rapid change in the number of transactions can be detected. Therefore, even when the number of transactions changes more rapidly, the presence or absence of scale-out can be quickly determined.
  • the virtual server in a virtual server that executes a plurality of transactions in parallel, is configured in a tree structure, and each virtual server in the hierarchy one level lower than its own hierarchy is assigned to each virtual server. Receive performance measurements such as the average number of server transactions below the hierarchy. As a result, the amount of communication for collecting performance measurement values can be reduced for each server compared to the method of summarizing the performance measurement values of each virtual server that executes multiple processes using a server that is separate from the virtual server that executes transactions. Can be distributed. Therefore, even when a large number of virtual servers are used, it is possible to aggregate performance measurement values without delay, and it is possible to quickly determine whether scale-out or the like has occurred.
  • each virtual server configured with a tree structure monitors the average number of transactions of each virtual server below its own hierarchy, and determines whether there is scale-out or the like. Thereby, the performance measurement value of each virtual server can be leveled compared with the method in which one server monitors the average number of transactions of all virtual servers.
  • FIG. 34 is a first block diagram showing effects of the second embodiment.
  • FIG. 34 illustrates a method for managing autoscale when the second embodiment is not used.
  • Virtual servers # 1, # 1-1, # 1-2, # 1-3, and # 1-4 are virtual machines used in the execution server device. The virtual servers # 1, # 1-1, # 1-2, # 1-3, and # 1-4 execute transactions requested from the terminal devices in parallel.
  • Virtual server # 1 is connected to virtual servers # 1-1, # 1-2, # 1-3, and # 1-4.
  • Virtual server # 1 receives the number of transactions from virtual servers # 1-1, # 1-2, # 1-3, and # 1-4. Then, virtual server # 1 calculates the average number of transactions of all virtual servers based on the received number of transactions and its own number of transactions.
  • the average number of transactions calculated by the virtual server # 1 is 44, which is not more than the threshold as a whole.
  • virtual server # 1-4 executes 100 transactions that are equal to or greater than the threshold, and the number of transactions is biased for each virtual server.
  • virtual server # 1 receives the number of transactions from the virtual server of the total number of virtual servers minus one. For example, in FIG. 34, virtual server # 1 receives the number of transactions from four virtual servers. If the number of virtual servers increases to 1000, the number of virtual servers under virtual server # 1 becomes 999, and the amount of communication for measuring the number of transactions increases. This may hinder rapid autoscale.
  • FIG. 35 is a second block diagram showing the effect of the second embodiment.
  • FIG. 35 illustrates a method for managing autoscale when the second embodiment is not used.
  • Virtual servers # 1, # 1-1, # 1-2, # 1-1-1, and # 1-1-2 are virtual machines used for the execution server device 100.
  • Virtual servers # 1, # 1-1, # 1-2, # 1-1-1, and # 1-1-2 execute transactions requested from the terminal device 21 in parallel.
  • virtual servers # 1, # 1-1, # 1-2, # 1-1-1, and # 1-1-2 are configured by the following tree structure. In the virtual server # 1, there is no parent virtual server, and there are virtual servers # 1-1 and # 1-2 as child virtual servers.
  • the virtual server # 1-1 the virtual server # 1 exists as a parent virtual server, and the virtual servers # 1-1-1 and # 1-1-2 exist as child virtual servers. Further, in the virtual server # 1-2, the virtual server # 1 exists in the parent virtual server, and no child virtual server exists. In the virtual servers # 1-1-1 and # 1-1-2, the virtual server # 1-1 exists as the parent virtual server, and no child virtual server exists.
  • the number of virtual servers that each virtual server receives the number of transactions is at most two. Even if the total number of virtual servers becomes 1000, the number of virtual servers from which each virtual server receives the number of transactions does not change because of the tree structure, and the traffic is distributed.
  • each virtual server measures the average number of transactions in the hierarchy below its own hierarchy, and determines whether or not scale-out and scale-in exist, thereby leveling the number of transactions executed by each virtual server.
  • the information processing of the first embodiment can be realized by causing the servers 10, 10a, 10b, and 10c to execute the program, and the information processing of the second embodiment is executed by the execution server device.
  • This can be realized by causing the program to execute 100.
  • a program can be recorded on a computer-readable recording medium (for example, the recording medium 43).
  • the recording medium for example, a magnetic disk, an optical disk, a magneto-optical disk, a semiconductor memory, or the like can be used.
  • Magnetic disks include FD and HDD.
  • Optical disks include CD, CD-R (Recordable) / RW (Rewritable), DVD, and DVD-R / RW.
  • a portable recording medium on which the program is recorded is provided. It is also possible to store the program in a storage device of another computer and distribute the program via the network 31.
  • the computer stores, for example, a program recorded on a portable recording medium or a program received from another computer in a storage device (for example, HDD 103), and reads and executes the program from the storage device.
  • a program read from a portable recording medium may be directly executed, or a program received from another computer via the network 31 may be directly executed.
  • at least a part of the information processing described above can be realized by an electronic circuit such as a DSP, an ASIC, or a PLD (Programmable Logic Device).

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Environmental & Geological Engineering (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)

Abstract

 サーバ装置のオートスケールの際に発生する遅延を抑制する。 コンピュータまたはコンピュータと同じシステムに属する他のコンピュータがサーバソフトウェアを実行することで実現される複数のサーバが接続され、それぞれの接続が、負荷値の受け渡しに関する従属関係を構成している。コンピュータは、そのコンピュータで実現される第1のサーバ(10)に従属する1以上の第2のサーバ(10a)から、1以上の第2のサーバ(10a)以下に従属する1以上のサーバ群(10a,10b)の負荷値を受信する。コンピュータは、第1のサーバ(10)の負荷値と、1以上の第2のサーバ(10a)それぞれから受信した負荷値に基づいて、システムを増強させるか否かを判定する。

Description

プログラム、管理方法およびコンピュータ
 本発明は、負荷を管理するプログラム、管理方法およびコンピュータに関する。
 複数のサーバ装置を有するシステムでは、クライアント装置などからの要求に応じた複数の処理を、複数のサーバ装置で並列に実行させることができる。これにより、処理効率が向上する。システム内のサーバ装置の台数は、例えば、そのシステムの負荷に応じて決定される。運用中にシステムの負荷が増大した場合、例えば、システム内のサーバ装置の数を増やすことができる。これにより、サーバ装置1つあたりの負荷が減少し、処理効率の低下が抑止される。以下、システム内のサーバ装置の数を増やすことを、スケールアウトと呼ぶ。
 スケールアウトする場合、新たなサーバ装置を起動し、そのサーバ装置にも要求を振り分けるようにする。このようなスケールアウトは、例えば、管理者による手動操作によって行われる。また、管理者の操作なしに、システムにおいて自動でスケールアウトを行うこともできる。スケールアウトを自動で行う機能は、オートスケールと呼ばれる。
 スケールアウトを実施する場合、事前に、システム増強の要否判定が行われる。例えば、管理サーバによってシステムの負荷を監視する。そして管理サーバは、サーバ装置1台あたりの負荷が所定値を超えたことを検出すると、スケールアウトなどによるシステムの増強を要すると判定する。
 なお、オートスケール以外にも、システムの負荷増大に対処するための、様々な技術が考えられている。
 例えば、複数の異なるハードウェアおよびソフトウェア(すなわち、プラットフォーム)の異なる組合せを持つ複数の異なる装置を使用するネットワークの最適化システムが提案されている。このシステムは、このようなネットワークの性能を正確に評価し、調節し、最適化する。
 また、ノードのクラスタに対する非集中型のアプリケーション・リソース割振りの方法が提案されている。この方法では、実行されているアプリケーションの集合を含むローカル・ノードが、ノード・サブセットからアプリケーションのリソース利用データを受信し、そのリソース利用データに基づいて、ローカル・ノードで実行するアプリケーションの集合を修正する。
 また、システムの負荷が増大した場合にリアルタイム性を維持しながら負荷分散する技術が提案されている。この技術では、複数のサーバを含む計算機システムにおいて、サーバの負荷が所定の上限値を超えた場合、そのサーバで実行される中のサービスの一部を実行させる転送先サーバを選択する。そして計算機システムは、負荷が上限値を超えたサーバに割り当てられたサービスから一以上のサービスを選択し、転送先サーバに選択されたサービスを割り当てる。
特表2005-505859号公報 特開2007-207225号公報 特開2010-134518号公報
 ここで、複数のサーバ装置を有するシステムでは、負荷が変動してからシステム増強の必要性の判定に時間がかかることがある。例えば、大量のトランザクションを複数のサーバ装置が処理する場合、サーバ装置が大量に必要となる。そのため、大量のサーバ装置の処理による負荷の監視や分析に時間がかかる。負荷の監視や分析に時間がかかれば、例えば、オートスケールによりスケールアウトが実行されるまでに過大な遅延が発生する。すると、システムによるトランザクションの実行が遅れ、場合によっては、システムの障害の原因にもなり得る。
 一側面では、本発明は、システム増強の要否判定を迅速に行うことができるプログラム、管理方法およびコンピュータを提供することを目的とする。
 一側面では、コンピュータに処理を実行させるプログラムが提供される。コンピュータは、このプログラムを実行することで、そのコンピュータまたはそのコンピュータと同じシステムに属する他のコンピュータがサーバソフトウェアを実行することで実現される複数のサーバが接続され、それぞれの接続が、負荷値の受け渡しに関する従属関係を構成している。コンピュータは、そのコンピュータで実現される第1のサーバに従属する1以上の第2のサーバから、1以上の第2のサーバ以下に従属する1以上のサーバ群の負荷値を受信する。そしてコンピュータは第1のサーバの負荷値と、1以上の第2のサーバそれぞれから受信した負荷値に基づいて、システムの増強の要否を判定する。
 一側面では、システム増強の要否判定を迅速に行うことができる。
 本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
第1の実施の形態の情報処理システムを示す図である。 第2の実施の形態の情報処理システムを示す図である。 実行サーバ装置のハードウェア例を示すブロック図である。 仮想サーバ間の性能測定値の受け渡し関係を定義する木構造の一例を示すブロック図である。 端末装置からの要求を振り分ける接続関係の一例を示すブロック図である。 実行サーバ装置と管理サーバの機能例を示すブロック図である。 閾値情報テーブルの設定例を示す図である。 負荷分析値テーブルの例を示す図である。 トランザクションの変化量の例について示すブロック図である。 サーバ数管理テーブルの例を示す図である。 仮想サーバ数の取得例を示すブロック図である。 階層管理テーブルの例を示す図である。 階層管理テーブルの設定例を示す図である。 仮想サーバによるオートスケールの手順例を示すフローチャートである。 トランザクション数を取得する手順例を示すフローチャートである。 トランザクション数を分析する手順例を示すフローチャートである。 オートスケールを実行する手順例を示すフローチャートである。 スケールアウトの手順例を示すフローチャートである。 スケールアウトにおける装置間の応答例を示す図である。 スケールアウト例を示す第1のブロック図である。 スケールアウト例を示す第2のブロック図である。 スケールアウト例を示す第3のブロック図である。 第1のスケールインの手順例を示すフローチャートである。 第1のスケールインにおける装置間の応答例を示す図である。 第1のスケールイン例を示すブロック図である。 第2のスケールインの手順例を示すフローチャートである。 第2のスケールインにおける装置間の応答例を示す図である。 第2のスケールイン例を示すブロック図である。 第3のスケールインの手順例を示すフローチャートである。 第3のスケールインにおける装置間の応答例を示す図である。 第3のスケールイン例を示すブロック図である。 閾値情報テーブルの変化例を示す図である。 負荷分析値テーブルの変化例を示す図である。 第2の実施の形態の効果を示す第1のブロック図である。 第2の実施の形態の効果を示す第2のブロック図である。
 以下、本実施の形態を図面を参照して説明する。
 [第1の実施の形態]
 図1は、第1の実施の形態の情報処理システムを示す図である。第1の実施の形態の情報処理システムは、サーバ10,10a,10b,10cを有する。サーバ10,10a,10b,10cは仮想マシンでもよい。サーバ10,10a,10b,10cは、複数の処理を並行して実施する。サーバ10,10a,10b,10cは、負荷値の受け渡し関係が木構造で定義されている。サーバ10,10a,10b,10cは、それぞれ、木構造において1つ下に接続された1以上のサーバ10aから、木構造においてそのサーバ10a以下に接続されたサーバ群(サーバ10a,10b)の負荷値を受信する。そして、サーバ10,10a,10b,10cは、それぞれ、受信した負荷値に基づいて、オートスケールを行うか否かの判定を自律的に実行する。オートスケールは、システムの負荷に応じてスケールアウト・スケールインを自動的に行う機能である。スケールアウトは、システムを構成するサーバの数を増やすことである。スケールアウトは、例えばシステムの処理能力を向上させるために実行される。スケールインは、システムを構成するサーバの数を減らすことである。スケールインは、例えばシステム全体のリソースの効率的に使用するために実行される。オートスケールを行うか否かの判定のために、サーバ10,10a,10b,10cは、自己のサーバの負荷値を計測する機能を有する。負荷値とは、例えば、サーバが実行する所定時間あたりのトランザクション数やCPU(Central Processing Unit)使用率など自己のサーバにかかる負荷を示す値である。
 サーバ10は、受信部11および判定部12を有する。受信部11および判定部12は、例えば、CPUやDSP(Digital Signal Processor)などのプロセッサや、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などのその他の電子回路を用いて実現される。プロセッサは、例えば、メモリに記憶されたプログラムを実行する。プロセッサは、プログラムの命令を実行するための演算器やレジスタの他に、データ処理のための専用の回路を含んでいてもよい。サーバ10と同様に、サーバ10a,10b,10cも、受信部11a,11b,11cと判定部12a,12b,12cを有している。
 受信部11は、木構造におけるサーバ10の1つ下の各サーバから、合計負荷値と、総サーバ数とを受信する。合計負荷値とは、木構造における自己のサーバ以下の構造に存在するサーバの負荷値の合計である。総サーバ数とは、木構造における自己のサーバ以下の構造に存在するサーバの数である。
 判定部12は、自己のサーバ10が複数の処理を実行したときの負荷値、受信した合計負荷値および総サーバ数に基づいて、システムの増強の有無を判定する。例えば、まず、判定部12は、自己のサーバ10が複数の処理を実行したときの負荷値と、受信した合計負荷値の和とに基づき、木構造におけるサーバ10以下のサーバにおける合計負荷値を算出する。次に、判定部12は、受信した総サーバ数に1を加算し、木構造におけるサーバ10以下の総サーバ数を算出する。次に、判定部12は、「算出した合計負荷値÷サーバ10以下の総サーバ数」により、木構造におけるサーバ10以下のサーバの負荷値の平均値(以下、平均負荷値)を算出する。そして、判定部12は、算出した平均負荷値が閾値以上と判定した場合、システムを増強すると判定する。システムの増強は、例えばスケールアウトによって実現される。閾値は、例えば、RAM(Random Access Memory)などの揮発性メモリ、あるいは、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性記憶装置に記憶されている。また、判定部12は、算出した平均負荷値が別の閾値未満と判定した場合、システムを縮小すると判定してもよい。システムの縮小は、例えばスケールインによって実現される。
 ここで、サーバ10,10a,10bにより木構造で構成されたシステムに、サーバ10cをスケールアウトする場合について説明する。システムを増強すると判定する閾値は100とする。木構造においてサーバ10の下にサーバ10aが存在し、サーバ10aの下にサーバ10bが存在する。サーバ10の負荷値は160であり、サーバ10aの負荷値は65であり、サーバ10bの負荷値は75である。
 まず、サーバ10bは、木構造における下のサーバがないため、サーバ10b以下のサーバの合計負荷値およびサーバの平均負荷値は共に75となり、総サーバ数は1となる。サーバ10bは、木構造における1つ上のサーバ10aにサーバ10bの合計負荷値=75および総数=1を送信する。
 次に、サーバ10aは、サーバ10bから合計負荷値=75および総数=1を受信する。サーバ10aの負荷値は65のため、サーバ10a以下のサーバの合計負荷値は140となる。また、サーバ10bから総数=1を受信しているため、サーバ10a以下の総サーバ数は1+1=2となる。すると、サーバの平均負荷値は140÷2=70となる。サーバ10aは、1つ上の階層であるサーバ10に合計負荷値=140および総数=2を送信する。
 そして、サーバ10は、サーバ10aから合計負荷値=140および総数=2を受信する。サーバ10の負荷値は160のため、木構造におけるサーバ10以下のサーバの合計負荷値は300となる。また、サーバ10aから総数=2を受信しているため、サーバ10において、木構造におけるサーバ10以下の総サーバ数は2+1=3となる。すると、平均負荷値は300÷3=100となる。木構造におけるサーバ10以下のサーバの平均負荷値が閾値(100)以上のため、サーバ10は、木構造におけるサーバ10の下にサーバ10cを追加する追加要求を出力する。追加要求は、例えばオートスケールを実行する管理サーバで受信され、管理サーバによってシステムにサーバ10cが追加される。これにより、サーバ10の負荷値が軽減される。
 第1の実施の形態によれば、木構造により負荷値の受け渡し関係が定義された各サーバが、木構造において自己の1つ下の各サーバから、各サーバ以下の構造に含まれるサーバの合計負荷値および総数を受信する。そして各サーバが自律的に、木構造における自己以下のサーバにおける平均負荷に応じて、システムを増強するか否かを判定する。これにより、複数の処理を実行する各サーバの負荷値を集計し、システムの増強の有無を判定するためのサーバを用いる方法に比べ、システムを増強するか否かの判断のために個々のサーバが収集する情報量が少なくなる。よって、大量のサーバを用いたとしても、各サーバの負荷値の集計に負荷がかからず、オートスケールの際に発生する遅延を抑制できる。
 また、木構造により構成された各サーバが、受信した合計負荷値と自己のサーバの負荷値とに基づいて、システムを増強するか否かを判定する。これにより、各サーバの負荷に偏りがあり、例えば局所的に負荷が集中している場合も、サーバを増強するか否かの適切な判定が可能となり、各サーバの負荷を平準化できる。
 なお、各サーバが、システムを増強するか否かを判定する際、自己のサーバにおける平均負荷値に加え、平均負荷値の変化量または平均負荷値の変化量における変化量に基づいて判定してもよい。
 また、各サーバが平均負荷値を算出する際、1つ下の階層のサーバから総サーバ数を受信する代わりに、木構造における自己のサーバのノードの深さまたは高さにより総サーバ数を概算してもよい。
 また、サーバ10,10a,10b,10cは仮想マシンでなくてもよい。この場合、スケールアウトは、例えば、予め複数のサーバを予備のサーバとして用意し、予備のサーバをシステムの構成に加えることで実現できる。スケールインは、例えば、システムを構成するサーバのいずれかをシステムの構成から予備のサーバにすることで実現できる。
 [第2の実施の形態]
 次に、仮想化されたサーバを用いたオートスケールの実施例について説明する。仮想化とは、コンピュータの物理リソースを抽象化することである。例えば、サーバを仮想化すると、1台のサーバ装置を複数のサーバ装置に見せかけることができる。以下、仮想化されたサーバ装置を、仮想サーバと呼ぶ。仮想化において、仮想サーバのスケールアウトは、システムの構成に仮想サーバを増やすことである。仮想サーバのスケールインは、システムの構成から仮想サーバを減らすことである。
 図2は、第2の実施の形態の情報処理システムを示す図である。第2の実施の形態の情報処理システムは、端末装置21、負荷分散装置22、データベースサーバ装置23、実行サーバ装置100、および仮想化管理サーバ装置200を有する。端末装置21は、ネットワーク30を介して負荷分散装置22と接続されている。負荷分散装置22、データベースサーバ装置23、実行サーバ装置100、および仮想化管理サーバ装置200は、ネットワーク31を介して相互に接続されている。
 端末装置21は、システムの利用者等が使用するクライアントコンピュータである。端末装置21は、ネットワーク30および負荷分散装置22を介して、実行サーバ装置100に複数のトランザクションの実行を要求する。
 負荷分散装置22は、端末装置21に要求された複数のトランザクションを複数のサーバ装置に振り分けるサーバコンピュータである。負荷分散装置22は、端末装置21から要求された複数のトランザクションを、実行サーバ装置100が用いる複数の仮想サーバに処理を振り分ける。
 データベースサーバ装置23は、HDDなどの不揮発性の記憶装置にデータを記憶して管理するサーバコンピュータである。データベースサーバ装置23は、実行サーバ装置100が複数のトランザクションを実行するために参照するデータや、トランザクション実行時に生成されるデータを記憶する。
 実行サーバ装置100は、複数の仮想サーバを並列して動作させることができるサーバコンピュータである。実行サーバ装置100は、2台以上存在してもよい。その場合、複数の仮想サーバは、複数の実行サーバ装置に分散して配置されていてもよい。複数の仮想サーバを用いて、端末装置21から要求された複数のトランザクションを実行する。また、実行サーバ装置100は、トランザクションによる負荷に応じて、仮想化管理サーバ装置200に仮想サーバのスケールアウトまたはスケールインを要求する。
 仮想化管理サーバ装置200は、仮想サーバをスケールアウトまたはスケールインする機能を有するサーバコンピュータである。仮想化管理サーバ装置200は、実行サーバ装置100の要求に応じて、実行サーバ装置100が用いる仮想サーバをスケールアウトまたはスケールインする。
 なお、データベースサーバ装置23、および仮想化管理サーバ装置200は、仮想化された仮想マシンでもよい。
 図3は、実行サーバ装置のハードウェア例を示すブロック図である。実行サーバ装置100は、CPU101、RAM102、HDD103、画像信号処理部104、入力信号処理部105、ディスクドライブ106および通信インタフェース107を有する。上記の各ユニットは、実行サーバ装置100が備えるバス108に接続されている。
 CPU101は、プログラムの命令を実行する演算器を含むプロセッサである。CPU101は、HDD103に記憶されているプログラムやデータの少なくとも一部をRAM102にロードし、プログラムを実行する。なお、CPU101は複数のプロセッサコアを備えてもよく、実行サーバ装置100は複数のプロセッサを備えてもよく、以下で説明する処理を複数のプロセッサまたはプロセッサコアを用いて並列実行してもよい。
 RAM102は、CPU101が実行するプログラムや計算に用いられるデータを一時的に記憶する揮発性メモリである。なお、実行サーバ装置100は、RAM以外の種類のメモリを備えてもよく、複数の揮発性メモリを備えてもよい。
 HDD103は、OS(Operating System)やファームウェアやアプリケーションソフトウェアなどのソフトウェアのプログラムおよびデータを記憶する不揮発性の記憶装置である。なお、実行サーバ装置100は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の記憶装置を備えてもよく、複数の不揮発性の記憶装置を備えてもよい。
 画像信号処理部104は、CPU101からの命令に従って、実行サーバ装置100に接続されたディスプレイ41に画像を出力する。ディスプレイ41としては、CRT(Cathode Ray Tube)ディスプレイや液晶ディスプレイなどを用いることができる。
 入力信号処理部105は、実行サーバ装置100に接続された入力デバイス42から入力信号を取得し、CPU101に通知する。入力デバイス42としては、マウスやタッチパネルなどのポインティングデバイス、キーボードなどを用いることができる。
 ディスクドライブ106は、記録媒体43に記録されたプログラムやデータを読み取る駆動装置である。記録媒体43として、例えば、フレキシブルディスク(FD:Flexible Disk)やHDDなどの磁気ディスク、CD(Compact Disc)やDVD(Digital Versatile Disc)などの光ディスク、光磁気ディスク(MO:Magneto-Optical disk)を使用できる。ディスクドライブ106は、CPU101からの命令に従って、記録媒体43から読み取ったプログラムやデータをRAM102またはHDD103に格納する。
 通信インタフェース107は、ネットワーク31を介して他のコンピュータ(例えば、負荷分散装置22や仮想化管理サーバ装置200)と通信を行うインタフェースである。通信インタフェース107は、有線網に接続する有線インタフェースでもよいし、無線網に接続する無線インタフェースでもよい。
 ただし、実行サーバ装置100は、ディスクドライブ106を備えていなくてもよく、専ら他のコンピュータからアクセスされる場合には、画像信号処理部104や入力信号処理部105を備えていなくてもよい。データベースサーバ装置23、および仮想化管理サーバ装置200も、実行サーバ装置100と同様のハードウェアを用いて実現できる。また、端末装置21は、通信インタフェース107がネットワーク31の代わりにネットワーク30を介して他のコンピュータ(例えば、負荷分散装置22)と通信を行うことを除き、実行サーバ装置100と同様のハードウェアを用いて実現できる。また、負荷分散装置22は、通信インタフェース107がネットワーク31に加えてネットワーク30を介して他のコンピュータ(例えば、端末装置21)と通信を行うことを除き、実行サーバ装置100と同様のハードウェアを用いて実現できる。
 図4は、仮想サーバ間の性能測定値の受け渡し関係を定義する木構造の一例を示すブロック図である。仮想サーバ#1,#1-1,#1-2,#1-1-1,#1-1-2は、実行サーバ装置100に用いられる仮想マシンである。仮想サーバ#1,#1-1,#1-2,#1-1-1,#1-1-2は、負荷分散装置22に振り分けられた複数のトランザクションを並行して実行する。各仮想サーバは、システムのオートスケールを行うか否かを自律的に判断する。
 仮想サーバ#1,#1-1,#1-2,#1-1-1,#1-1-2は、木構造により構成されている。木構造は、階層構造を有している。第2の実施の形態では、木構造における最上位の仮想サーバ#1から順に、下の階層に仮想サーバが追加されていく。例えば、図4の木構造では、仮想サーバ#1において、1つ上の階層の仮想サーバ(以下、親の仮想サーバと表現する)は存在せず、1つ下の階層の仮想サーバ(以下、子の仮想サーバと表現する)として仮想サーバ#1-1,#1-2が存在する。また、仮想サーバ#1-1において、親の仮想サーバとして仮想サーバ#1が存在し、子の仮想サーバとして仮想サーバ#1-1-1,#1-1-2が存在する。また、仮想サーバ#1-2において、親の仮想サーバとして仮想サーバ#1が存在し、子の仮想サーバは存在しない。また、仮想サーバ#1-1-1,#1-1-2において、親の仮想サーバとして仮想サーバ#1-1が存在し、子の仮想サーバは存在しない。ここで、木構造の最上位の仮想サーバ#1が属する階層が第1世代である。第1世代の階層の仮想サーバ#1の直下の仮想サーバ#1-1,#1-2が属する階層が第2世代である。第2の階層の仮想サーバ#1-1の直下の仮想サーバ#1-1-1,#1-1-2が属する階層が第3世代である。
 なお、以下の説明において、特定の仮想サーバについて、自己の階層以下の階層における仮想サーバといった場合、特定の仮想サーバ、およびその特定の仮想サーバから木構造を下位に辿ることで到達できる仮想サーバを指すものとする。
 仮想サーバ#1,#1-1,#1-2,#1-1-1,#1-1-2は、子の各仮想サーバから性能測定値を受信する。次に、仮想サーバ#1,#1-1,#1-2,#1-1-1,#1-1-2は、子の仮想サーバ毎に受信した性能測定値および自己の仮想サーバの性能測定値を集計・分析する。仮想サーバ#1,#1-1,#1-2,#1-1-1,#1-1-2は、分析後の性能測定値に基づいて、スケールイン・スケールアウトの有無を判定する。
 例えば、仮想サーバ#1-1は、子の仮想サーバ#1-1-1,#1-1-2から性能測定値を受信し、受信した性能測定値と自己の性能測定値を集計・分析する。次に、集計・分析した性能測定値を親の仮想サーバ#1に送信する。そして、仮想サーバ#1-1は、分析した性能測定値に基づきスケールイン・スケールアウトの有無を判定する。また、仮想サーバ#1は、子の仮想サーバ#1-1,#1-2から性能測定値を受信し、受信した性能測定値と自己の性能測定値を集計・分析する。そして、仮想サーバ#1は、分析した性能測定値に基づきスケールイン・スケールアウトの有無を判定する。
 このように、木構造で構成されている各仮想サーバは、自己の階層以下の階層における仮想サーバについて収集・分析した性能測定値に基づき、スケールイン・スケールアウトの有無を判定することで、自律的にオートスケールを管理する。すなわち複数の仮想サーバそれぞれが実行する性能測定値の集計・分析は、対象となる仮想サーバ集合が互いに入れ子構造となっている。例えば仮想サーバ#1は、5台の仮想サーバ#1,#1-1,#1-2,#1-1-1,#1-1-2についての性能測定値の集計・分析を行う。一方、仮想サーバ#1-1は、3台の仮想#1-1,#1-1-1,#1-1-2についての性能測定値の集計・分析を行う。仮想サーバ#1-1が性能測定値の集計・分析の対象としている仮想サーバは、いずれも仮想サーバ#1における性能測定値の集計・分析の対象となっている。性能測定値の集計・分析の対象となる仮想サーバ集合が入れ子構造となっていることで、局所的な負荷の変動を迅速に検出し、オートスケールの要否を判断できる。
 なお、図4に示したのは、仮想サーバ間の性能測定値の受け渡し関係を定義する木構造である。端末装置からの要求は、図4に示した木構造とは別の関係に基づいて振り分けられる。
 図5は、端末装置からの要求を振り分ける接続関係の一例を示すブロック図である。負荷分散装置22は、端末装置21から要求された複数のトランザクションを各仮想サーバに分散して振り分ける。仮想サーバ(例えば、仮想サーバ#1-1-2)がスケールアウトされた場合、負荷分散装置22のトランザクションを分散する対象となる仮想サーバが増える。
 このように、負荷分散装置22は、仮想サーバの木構造を意識せずに、端末装置21から要求された複数のトランザクションを各仮想サーバに振り分ける。
 図6は、実行サーバ装置と管理サーバの機能例を示すブロック図である。実行サーバ装置100は、ハイパーバイザ110および仮想サーバ#1を有する。ハイパーバイザ110は、仮想サーバ#1の仮想化を実現するため、仮想サーバ#1上のOSを制御するプログラムである。ハイパーバイザ110は、仮想サーバ#1へ実行サーバ装置100のリソース(例えば、CPU101、RAM102、HDD103など)を効率的に配分する。
 仮想サーバ#1は、管理情報記憶部120、負荷計測部130、負荷分析部140、オートスケール判定部150およびオートスケール実行部160を有する。
 管理情報記憶部120は、仮想サーバ#1がオートスケールを実現するために管理する情報を記憶する。管理情報記憶部120は、閾値情報テーブル121、負荷分析値テーブル122、サーバ数管理テーブル123および階層管理テーブル124を有する。閾値情報テーブル121は、平均トランザクション数の閾値等、仮想サーバ#1がスケールアウトまたはスケールインを判断するために用いる閾値の情報を格納する。閾値情報テーブル121に記憶されている情報は、例えば、システムの管理者により設定されたものでもよい。負荷分析値テーブル122は、仮想サーバ#1の階層以下の階層における各仮想サーバのトランザクション数を所定時間毎に集計・分析した値(平均トランザクション数など)を格納する。サーバ数管理テーブル123は、親、子および自己の仮想サーバの数を格納する。サーバ数管理テーブル123は、トランザクション数を分析するために用いられる。階層管理テーブル124は、仮想サーバ#1が親または子の仮想サーバを把握するための情報を格納する。
 負荷計測部130は、仮想サーバ#1のトランザクション数を計測する。トランザクション数とは、仮想サーバが所定時間内に実行したトランザクション数である。また、負荷計測部130は、階層管理テーブル124を参照し、仮想サーバ#1の子の仮想サーバを検索する。次に、負荷計測部130は、検索した各子の仮想サーバから所定時間毎に総トランザクション数や総仮想サーバ数を受信する。総トランザクション数とは、自己の階層以下の階層における各仮想サーバが所定時間内に実行したトランザクション数の合計である。総仮想サーバ数とは、自己の階層以下の階層における仮想サーバの総数である。
 負荷分析部140は、負荷計測部130が計測した仮想サーバ#1のトランザクション数や、負荷計測部130が受信した子の各仮想サーバの総トランザクション数を基に仮想サーバ#1の総トランザクション数を算出し、負荷分析値テーブル122に格納する。また、負荷計測部130が受信した各仮想サーバの総仮想サーバ数の合計を算出し、サーバ数管理テーブル123に格納する。次に、負荷分析部140は、算出した総トランザクション数および総仮想サーバ数を親の仮想サーバに送信する。そして、負荷分析部140は、算出した仮想サーバ#1における総トランザクション数およびサーバ数管理テーブル123に格納された情報を分析し、平均トランザクション数など分析により得た情報を負荷分析値テーブル122に格納する。平均トランザクション数とは、自己の階層以下の階層における各仮想サーバが所定時間内に実行したトランザクション数の平均値である。
 オートスケール判定部150は、負荷分析値テーブル122に格納された負荷分析部140による分析値と、閾値情報テーブル121に格納された閾値とを比較し、仮想サーバのスケールアウトおよびスケールインの有無を判定する。
 オートスケール実行部160は、オートスケール判定部150による判定結果に基づいて、スケールアウトまたはスケールインの実行を仮想化管理サーバ装置200に要求する。オートスケール実行部160は、スケールアウトまたはスケールインに伴い、階層管理テーブル124に格納された情報を更新する。
 仮想化管理サーバ装置200は、スケールアウト実行部210およびスケールイン実行部220を有する。
 スケールアウト実行部210は、仮想サーバ#1からスケールアウトを要求されたとき、仮想サーバをスケールアウトする。次に、スケールアウト実行部210は、スケールアウトが完了した旨を仮想サーバ#1に応答する。
 スケールイン実行部220は、仮想サーバ#1からスケールインを要求されたとき、仮想サーバ#1をスケールインする。次に、スケールイン実行部220は、スケールインが完了した旨を仮想サーバ#1に応答する。
 図7は、閾値情報テーブルの設定例を示す図である。閾値情報テーブル121は、平均トラン数(上限)、平均トラン数(下限)、平均トラン変化量(上限)および平均トラン変化量(下限)の項目を有する。平均トラン数(上限)の項目には、平均トランザクション数の上限値が設定される。仮想サーバの平均トランザクション数が平均トラン数(上限)以上となったとき、仮想サーバは、仮想化管理サーバ装置200にスケールアウトを要求する。平均トラン数(下限)の項目には、平均トランザクション数の下限値が設定される。仮想サーバの平均トランザクション数が平均トラン数(下限)未満となったとき、仮想サーバは、仮想化管理サーバ装置200にスケールインを要求する。平均トラン変化量(上限)の項目には、平均トランザクション変化量の上限値が設定される。仮想サーバの平均トランザクション変化量が平均トラン変化量(上限)以上となったとき、仮想サーバは、仮想化管理サーバ装置200にスケールアウトを要求する。平均トラン変化量(下限)の項目には、平均トランザクション変化量の下限値が設定される。仮想サーバの平均トランザクション変化量が平均トラン変化量(下限)未満となったとき、仮想サーバは、仮想化管理サーバ装置200にスケールインを要求する。
 図8は、負荷分析値テーブルの例を示す図である。負荷分析値テーブル122は、日時、平均トラン数および平均トラン変化量の項目を有する。日時の項目には、平均トランザクション数などを算出した日時が設定される。平均トラン数の項目には、所定時間あたりの仮想サーバの平均トランザクション数が設定される。平均トラン変化量の項目には、所定時間あたりの仮想サーバの平均トランザクション数の変化量が設定される。具体的には、平均トランザクション数の変化量は、算出された平均トラン数と前回算出された平均トラン数との差分により算出される。
 図9は、トランザクションの変化量の例について示すブロック図である。仮想サーバ#1は仮想サーバ#1-1の親の仮想サーバであり、仮想サーバ#1-1は仮想サーバ#1-1-1の親の仮想サーバである。仮想サーバ#1,#1-1,#1-1-1が有する閾値情報テーブルには、閾値情報テーブル121aの内容、すなわち、平均トラン数(上限)=99、平均トラン数(下限)=9、平均トラン変化量(上限)=9および平均トラン変化量(下限)=-9が設定されている。
 負荷分析値テーブル122は仮想サーバ#1が有するテーブルであり、負荷分析値テーブル122aは仮想サーバ#1-1が有するテーブルであり、負荷分析値テーブル122bは仮想サーバ#1-1-1が有するテーブルである。負荷分析値テーブル122,122a,122bにおける日時の項目について、日付の記載を省略する。各負荷分析値テーブルの更新は、対応する仮想サーバにより10秒毎に行われる。
 ここで、端末装置21(図2参照)による負荷分散装置22を介したトランザクションの要求が、急激に増加したときについて説明する。仮想サーバ#1において、平均トラン数が閾値(平均トラン数(上限))以上となるのは、日時=00:01:10以降である。一方、平均トラン変化量が閾値(平均トラン変化量(上限))以上となるのは日時=00:00:50以降であり、平均トラン数が閾値以上となる前である。また、仮想サーバ#1-1において、平均トラン数が閾値(平均トラン数(上限))以上となるのは、日時=00:01:10以降である。一方、平均トラン変化量が閾値(平均トラン変化量(上限))以上となるのは日時=00:00:50以降であり、平均トラン数が閾値以上となる前である。さらに、仮想サーバ#1-1-1において、平均トラン数が閾値(平均トラン数(上限))以上となるのは、日時=00:01:10以降である。一方、平均トラン変化量が閾値(平均トラン変化量(上限))以上となるのは日時=00:00:30以降であり、平均トラン数が閾値以上となる前である。仮想サーバ#1-1-1の平均トラン数が閾値以上となる日時が、他の仮想サーバと比べ早い。
 図8~図9が示すように、平均トランザクション数の変化量を所定時間毎に分析することで、平均トランザクション数の増加の予兆を検知できる。これにより、端末装置21から要求されるトランザクション数が急激に変化した場合にも、スケールアウトまたはスケールインの有無を迅速に判断できる。
 図10は、サーバ数管理テーブルの例を示す図である。サーバ数管理テーブル123は、親、自分、子の項目を有する。親の項目には、仮想サーバ#1の1つ上の階層の仮想サーバの数が設定される。自分の項目には、仮想サーバ#1の階層の仮想サーバの数(すなわち、1)が設定される。子の項目には、仮想サーバ#1の1つ下の階層以下の仮想サーバの数が設定される。
 図11は、仮想サーバ数の取得例を示すブロック図である。子の仮想サーバは、サーバ数管理テーブルを参照し、子および自分の仮想サーバ数を仮想サーバに送信する。仮想サーバは、子の仮想サーバにおける子および自分の仮想サーバ数を子の各仮想サーバから受信する。次に、仮想サーバは、子の各仮想サーバから受信した各仮想サーバ数を合計する。そして、仮想サーバは、合計した仮想サーバ数をサーバ数管理テーブルの子の仮想サーバに格納する。そして、仮想サーバは、格納した子の仮想サーバ数および自分の仮想サーバ数を親の仮想サーバに送信する。
 例えば、図11では、仮想サーバ#1の子の仮想サーバに、仮想サーバ#1-1,#1-2が存在する。仮想サーバ#1-1の子の仮想サーバに、仮想サーバ#1-1-1,#1-1-2が存在する。仮想サーバ#1はサーバ数管理テーブル123を有し、仮想サーバ#1-1はサーバ数管理テーブル123aを有し、仮想サーバ#1-2はサーバ数管理テーブル123bを有し、仮想サーバ#1-1-1はサーバ数管理テーブル123cを有し、仮想サーバ#1-1-2はサーバ数管理テーブル123dを有する。
 仮想サーバ#1-2,#1-1-1,#1-1-2には、親の仮想サーバが存在し、子の仮想サーバが存在しない。そのため、サーバ数管理テーブル123b,123c,123dにおいて、親=1,自分=1および子=0が設定される。
 また、仮想サーバ#1-1は、子の仮想サーバ#1-1-1から子=0および自分=1を受信し、子の仮想サーバ#1-1-2から子=0および自分=1を受信する。そのため、サーバ数管理テーブル123aにおいて、子=0+1+0+1=2が設定される。また、仮想サーバ#1は親の仮想サーバが存在するため、サーバ数管理テーブル123aにおいて、親=1および自分=1が設定される。
 さらに、仮想サーバ#1は、子の仮想サーバ#1-1から子=2および自分=1を受信し、子の仮想サーバ#1-2から子=0および自分=1を受信する。そのため、サーバ数管理テーブル123において、子=2+1+0+1=4が設定される。また、仮想サーバ#1は親の仮想サーバが存在しないため、サーバ数管理テーブル123において、親=0および自分=1が設定される。
 図10~図11で示すように、各仮想サーバは、サーバ数管理テーブルのデータを親や子の仮想サーバと受け渡しすることで、自己の総仮想サーバ数を管理する。
 図12は、階層管理テーブルの例を示す図である。階層管理テーブル124は、階層およびホスト名の項目を有する。階層の項目には、自己の仮想サーバとの階層の関係を示す情報が設定される。階層=「親」の場合、自己の仮想サーバの1つ上の階層であることを示す。階層=「子」の場合、自己の仮想サーバの1つ下の階層であることを示す。階層=「自分」の場合、自己の仮想サーバであることを示す。ホスト名の項目には、階層の項目に対応する仮想サーバのホスト名が設定される。例えば、仮想サーバ#1が子の仮想サーバのホスト名=#1-1である仮想サーバを子の仮想サーバとして登録したとき、登録した情報は階層=「子」かつホスト名=#1-1となる。以下、仮想サーバのホスト名は、仮想サーバの符号であるものとする。
 なお、仮想サーバが存在しない階層の場合、ホスト名の項目には、例えば、Nullが設定される。以下、ホスト名がNullであるレコードの記載を省略する。また、仮想サーバが存在しない階層の場合、ホスト名の項目を空欄にしてもよい。また、ホスト名の項目には、ホスト名の代わりにIP(Internet Protocol)アドレスが設定されてもよい。
 図13は、階層管理テーブルの設定例を示す図である。仮想サーバ#1の子の仮想サーバに、仮想サーバ#1-1,#1-2が存在する。仮想サーバ#1-1の子の仮想サーバに、仮想サーバ#1-1-1,#1-1-2が存在する。仮想サーバ#1-1-1の子の仮想サーバに、仮想サーバ#1-1-1-1,#1-1-1-2が存在する。
 この場合、仮想サーバ#1が有する階層管理テーブル124aは、階層=「自分」でホスト名=#1であるレコード、階層=「子」でホスト名=#1-1であるレコードおよび階層=「子」でホスト名=#1-2であるレコードが格納される。また、仮想サーバ#1-1が有する階層管理テーブル124bは、階層=「親」でホスト名=#1であるレコード、階層=「自分」でホスト名=#1-1であるレコード、階層=「子」でホスト名=#1-1-1であるレコードおよび階層=「子」でホスト名=#1-1-2であるレコードが格納される。また、仮想サーバ#1-1-1が有する階層管理テーブル124cは、階層=「親」でホスト名=#1-1であるレコード、階層=「自分」でホスト名=#1-1-1であるレコード、階層=「子」でホスト名=#1-1-1-1であるレコードおよび階層=「子」でホスト名=#1-1-1-2であるレコードが格納される。さらに、仮想サーバ#1-1-1-1が有する階層管理テーブル124dは、階層=「親」でホスト名=#1-1-1であるレコードおよび階層=「自分」でホスト名=#1-1-1-1であるレコードが格納される。
 図12~図13で示すように、各仮想サーバが、「自分」、「親」および「子」の仮想サーバのホスト名を管理する。これにより、木構造による仮想サーバの構成を実現する。
 図14は、仮想サーバによるオートスケールの手順例を示すフローチャートである。
 (ステップS11)負荷計測部130は、階層管理テーブル124から、階層=「自分」または「子」の仮想サーバを1つ選択する。
 (ステップS12)負荷計測部130は、選択した仮想サーバについて、総トランザクション数など性能測定値を取得する。処理の詳細は後述する(図13参照)。
 (ステップS13)負荷計測部130は、階層=「自分」または「子」である仮想サーバについて、未選択の仮想サーバが存在するか判定する。未選択の仮想サーバが存在する場合、処理をステップS11へ進める。未選択の仮想サーバが存在しない場合、処理をステップS14へ進める。
 (ステップS14)負荷分析部140は、ステップS12で取得したトランザクション数、または、ステップS12で受信したトランザクション総数を集計・分析する。処理の詳細は後述する(図15参照)。
 (ステップS15)オートスケール判定部150は、閾値情報テーブル121から閾値を取得する。
 (ステップS16)オートスケール判定部150は、スケールアウトまたはスケールインの有無を判定する。そして、オートスケール実行部160は、判定に応じてスケールアウトまたはスケールインを実行する。処理の詳細は後述する(図16参照)。
 (ステップS17)負荷計測部130は、停止リクエストを受信したか判定する。停止リクエストを受信した場合、処理を終了する。停止リクエストを受信していない場合、処理をステップS11へ進める。
 図15は、トランザクション数を取得する手順例を示すフローチャートである。図15のフローチャートが示す処理は、ステップS12において実行される。
 (ステップS121)負荷計測部130は、所定時間を確認する。所定時間は、仮想サーバ#1がトランザクション数などの性能測定値を計測または分析する時間間隔である。所定時間は、例えば、本システムの管理者などにより設定された設定値を使用する。また、所定時間には、管理者が設定する前に予め初期値が設定されていてもよいし、管理者が設定を省略した場合に省略値が設定されるようにしてもよい。設定された所定時間は、例えば、仮想サーバ#1の有する記憶領域に記憶される。
 (ステップS122)負荷計測部130は、ステップS11で子の仮想サーバを選択したか判定する。子の仮想サーバを選択した場合、処理をステップS123へ進める。子の仮想サーバを選択しなかった場合、処理をステップS125へ進める。
 (ステップS123)負荷計測部130は、選択した子の仮想サーバから子の仮想サーバの総トランザクション数を受信する。総トランザクション数とは、ステップS121で取得した所定時間前から現在までに、自己の階層以下の階層における各仮想サーバが実行したトランザクション数の合計である。
 (ステップS124)負荷計測部130は、選択した子の仮想サーバから子の仮想サーバ以下の仮想サーバの総仮想サーバ数を受信する。子の仮想サーバ自身の数は1である。総仮想サーバ数とは、自己の階層以下の階層における仮想サーバの総数である。
 (ステップS125)負荷計測部130は、選択した自己の仮想サーバのトランザクション数を取得する。トランザクション数とは、ステップS121で取得した所定時間前から現在までに仮想サーバが実行したトランザクション数である。
 (ステップS126)負荷計測部130は、ステップS121で取得した所定時間が経過したか判定する。所定時間が経過した場合、処理をステップS122へ進める。所定時間が経過していない場合、処理をステップS126へ進める。
 図16は、トランザクション数を分析する手順例を示すフローチャートである。図16のフローチャートが示す処理は、ステップS14において実行される。
 (ステップS141)負荷分析部140は、ステップS121と同様の所定時間を確認する。
 (ステップS142)負荷分析部140は、現在日時を確認する。
 (ステップS143)負荷分析部140は、ステップS12で取得した子の仮想サーバ自身の数および子の仮想サーバの総仮想サーバ数を集計する。負荷分析部140は、集計した総仮想サーバ数で、サーバ数管理テーブル123における子の仮想サーバ数を更新する。
 (ステップS144)負荷分析部140は、ステップS12で取得したトランザクション数を集計し、自己の仮想サーバの総トランザクション数を算出する。
 (ステップS145)負荷分析部140は、集計したトランザクション数および仮想サーバ数に基づき、自己の仮想サーバの平均トランザクション数を算出する。具体的には、トランザクション数の集計値÷(サーバ数管理テーブル123における子の仮想サーバ数+1(自己の仮想サーバの数))により算出する。
 (ステップS146)負荷分析部140は、負荷分析値テーブル122に、前回算出した平均トランザクション数の算出値があるか判定する。前回算出した平均トランザクション数の算出値がある場合、処理をステップS147へ進める。前回算出した平均トランザクション数の算出値がない場合、処理をステップS148へ進める。
 (ステップS147)負荷分析部140は、算出した平均トランザクション数-前回算出した平均トランザクション数により、平均トランザクション変化量を算出する。
 (ステップS148)負荷分析部140は、トランザクション変化量に0を設定する。
 (ステップS149)負荷分析部140は、日時=ステップS142で確認した現在日時、平均トラン数=算出した平均トランザクション数および平均トラン変化量=平均トランザクション変化量を設定した情報を、負荷分析値テーブル122に登録する。
 (ステップS150)負荷分析部140は、算出した総トランザクション数、子の仮想サーバ数および自己の仮想サーバ数を親の仮想サーバに送信する。子の仮想サーバ数および自己の仮想サーバ数は、サーバ数管理テーブル123を参照する。
 (ステップS151)負荷分析部140は、ステップS141で取得した所定時間が経過したか判定する。所定時間が経過した場合、処理をステップS142へ進める。所定時間が経過していない場合、処理をステップS151へ進める。
 図15~図16で示すように、仮想サーバは、所定時間毎に自己の仮想サーバ以下の階層のトランザクション数を集計・分析する。この際、自己の仮想サーバは、子の仮想サーバの集計または分析の処理とは、非同期でトランザクション数を集計・分析する。これにより、子の仮想サーバの集計・分析と同期するための時間を節約できるため、より迅速なオートスケールを実現できる。
 図17は、オートスケールを実行する手順例を示すフローチャートである。図17のフローチャートが示す処理は、ステップS16において実行される。
 (ステップS161)オートスケール判定部150は、ステップS149で登録された平均トラン数が閾値以上であるか確認する。閾値は、閾値情報テーブル121の平均トラン数(上限)を参照する。平均トラン数が閾値以上の場合、処理をステップS162へ進める。平均トラン数が閾値未満の場合、処理をステップS163へ進める。
 (ステップS162)オートスケール実行部160は、スケールアウトを実行する。処理の詳細は後述する(図18参照)。
 (ステップS163)オートスケール判定部150は、ステップS149で登録された平均トラン変化量が閾値以上であるか確認する。閾値は、閾値情報テーブル121の平均トラン変化量(上限)を参照する。平均トラン変化量が閾値以上の場合、処理をステップS164へ進める。平均トラン数が閾値未満の場合、処理をステップS165へ進める。
 (ステップS164)オートスケール実行部160は、スケールアウトを実行する。処理の詳細は後述する(図18参照)。
 (ステップS165)オートスケール判定部150は、ステップS149で登録された平均トラン数が閾値以下であるか確認する。閾値は、閾値情報テーブル121の平均トラン数(下限)を参照する。平均トラン数が閾値未満の場合、処理をステップS166へ進める。平均トラン数が閾値以上の場合、処理をステップS172へ進める。
 (ステップS166)オートスケール判定部150は、階層管理テーブル124を参照し、親の仮想サーバがあり、かつ、子の仮想サーバがないか判定する。具体的には、階層管理テーブル124に階層=「親」のレコードがあれば親の仮想サーバがあると判定し、階層=「子」のレコードがあれば子の仮想サーバがあると判定する(以下、同様)。親の仮想サーバがあり、かつ、子の仮想サーバがない場合、処理をステップS167へ進める。親の仮想サーバがない、または、子の仮想サーバがある場合、処理をステップS168へ進める。
 (ステップS167)オートスケール実行部160は、親の仮想サーバがあり、子の仮想サーバがない場合のスケールインを実行する。処理の詳細は後述する(図23参照)。
 (ステップS168)オートスケール判定部150は、階層管理テーブル124を参照し、親の仮想サーバがなく、かつ、子の仮想サーバがあるか判定する。親の仮想サーバがなく、かつ、子の仮想サーバがある場合、処理をステップS169へ進める。親の仮想サーバがある、または、子の仮想サーバがない場合、処理をステップS170へ進める。
 (ステップS169)オートスケール実行部160は、親の仮想サーバがなく、子の仮想サーバがある場合のスケールインを実行する。処理の詳細は後述する(図26参照)。
 (ステップS170)オートスケール判定部150は、階層管理テーブル124を参照し、親の仮想サーバがあり、かつ、子の仮想サーバがあるか判定する。親の仮想サーバがあり、かつ、子の仮想サーバがある場合、処理をステップS171へ進める。親の仮想サーバがない、または、子の仮想サーバがない場合、処理をステップS172へ進める。
 (ステップS171)オートスケール実行部160は、親の仮想サーバがあり、子の仮想サーバがある場合のスケールインを実行する。処理の詳細は後述する(図29参照)。
 (ステップS172)オートスケール判定部150は、負荷分析値テーブル122の平均トラン変化量が閾値以下であるか確認する。閾値は、閾値情報テーブル121の平均トラン変化量(下限)を参照する。平均トラン変化量が閾値未満の場合、処理をステップS173へ進める。平均トラン変化量が閾値以上の場合、処理を終了する。
 (ステップS173)オートスケール判定部150は、階層管理テーブル124を参照し、親の仮想サーバがあり、かつ、子の仮想サーバがないか判定する。親の仮想サーバがあり、かつ、子の仮想サーバがない場合、処理をステップS174へ進める。親の仮想サーバがない、または、子の仮想サーバがある場合、処理をステップS175へ進める。
 (ステップS174)オートスケール実行部160は、親の仮想サーバがあり、子の仮想サーバがない場合のスケールインを実行する。処理の詳細は後述する(図23参照)。
 (ステップS175)オートスケール判定部150は、階層管理テーブル124を参照し、親の仮想サーバがなく、かつ、子の仮想サーバがあるか判定する。親の仮想サーバがなく、かつ、子の仮想サーバがある場合、処理をステップS176へ進める。親の仮想サーバがある、または、子の仮想サーバがない場合、処理をステップS177へ進める。
 (ステップS176)オートスケール実行部160は、親の仮想サーバがなく、子の仮想サーバがある場合のスケールインを実行する。処理の詳細は後述する(図26参照)。
 (ステップS177)オートスケール判定部150は、階層管理テーブル124を参照し、親の仮想サーバがあり、かつ、子の仮想サーバがあるか判定する。親の仮想サーバがあり、かつ、子の仮想サーバがある場合、処理をステップS178へ進める。親の仮想サーバがない、または、子の仮想サーバがない場合、処理を終了する。
 (ステップS178)オートスケール実行部160は、親の仮想サーバがあり、子の仮想サーバがある場合のスケールインを実行する。処理の詳細は後述する(図29参照)。
 次に、スケールアウトの処理について説明する。図18は、スケールアウトの手順例を示すフローチャートである。図18のフローチャートが示す処理は、ステップS162,S164において実行される。
 (ステップS181)オートスケール実行部160は、仮想化管理サーバ装置200に、仮想サーバのスケールアウトを要求する。
 (ステップS182)スケールアウト実行部210は、仮想サーバ#1の要求を受信し、スケールアウトを実施する。そして、スケールアウト実行部210は、仮想サーバ#1にスケールアウトした仮想サーバのホスト名(または、IPアドレス)を応答する。
 (ステップS183)オートスケール実行部160は、仮想化管理サーバ装置200から応答により、スケールアウトされた仮想サーバのホスト名を確認する。
 (ステップS184)オートスケール実行部160は、階層=「子」かつホスト名=確認したホスト名のレコードを階層管理テーブル124に登録する。
 (ステップS185)オートスケール実行部160は、自己の仮想サーバのホスト名を検索する。具体的には、オートスケール実行部160は、階層管理テーブル124から階層=「自分」であるホスト名を検索する。
 (ステップS186)オートスケール実行部160は、スケールアウトされた仮想サーバに、階層管理テーブルへの登録を要求する。具体的には、スケールアウト実行部210は、階層管理テーブルに、階層=「自分」かつホスト名=ステップS183で確認したホスト名のレコード、および階層=「親」かつホスト名=ステップS185で検索したホスト名のレコードを登録するよう要求する。
 (ステップS187)スケールアウトされた仮想サーバは、階層=「自分」かつホスト名=ステップS183で確認したホスト名のレコード、および階層=「親」かつホスト名=ステップS185で検索したホスト名のレコードを、スケールアウトされた仮想サーバの階層管理テーブルに登録し、登録の結果を仮想サーバ#1に応答する。
 (ステップS188)オートスケール実行部160は、スケールアウトされた仮想サーバから応答された登録の結果が正常終了であるか判定する。正常終了である場合、処理をステップS189へ進める。正常終了でない場合、処理をステップS186へ進める。
 (ステップS189)オートスケール実行部160は、負荷分散装置22に、スケールアウトされた仮想サーバの使用開始を要求し、負荷分散装置22から要求に対する応答を受信する。
 図19は、スケールアウトにおける装置間の応答例を示す図である。図19では、仮想サーバ#1-1が、スケールアウトを要求する場合について説明する。
 まず、仮想サーバ#1-1は、仮想化管理サーバ装置200に仮想サーバのスケールアウトを要求する(ステップS181)。仮想化管理サーバ装置200は、仮想サーバ#1-1から要求を受信し、仮想サーバ#1-1-1のスケールアウトを実施する。(ステップS182)。仮想サーバ#1-1は、スケールアウトされた仮想サーバ#1-1-1のホスト名=#1-1-1含む応答を仮想化管理サーバ装置200から受信する(ステップS183)。
 仮想サーバ#1-1は、階層=「子」かつ受信したホスト名=#1-1-1のレコードを階層管理テーブル124eに登録する(ステップS184)。その結果、レコード登録前の階層管理テーブル124eは、レコード登録後の階層管理テーブル124fとなる。
 仮想サーバ#1-1は、階層管理テーブル124fから階層=「自分」であるホスト名=#1-1を検索する。仮想サーバ#1-1は、階層=「親」かつ検索したホスト名=#1-1のレコードと、階層=「自分」かつ受信したホスト名=#1-1-1のレコードとを階層管理テーブル124gに登録するよう仮想サーバ#1-1-1に要求する(ステップS186)。仮想サーバ#1-1-1は、仮想サーバ#1-1から要求を受信し、階層=「親」かつホスト名=#1-1のレコードと、階層=「自分」かつホスト名=#1-1-1のレコードとを階層管理テーブル124gに登録する(ステップS187)。その結果、レコード登録前の階層管理テーブル124gは、レコード登録後の階層管理テーブル124hとなる。仮想サーバ#1-1-1は、登録の結果を仮想サーバ#1-1に応答する(ステップS188)。
 仮想サーバ#1-1は、負荷分散装置22に仮想サーバ#1-1-1の使用開始を要求し、負荷分散装置22から応答を受信する(ステップS189)。
 図20は、スケールアウト例を示す第1のブロック図である。図20において、仮想サーバ#1のみが存在する。仮想サーバ#1がスケールアウトを要求したとき、スケールアウトされた仮想サーバ#1-1は、仮想サーバ#1の子の仮想サーバとして構成される。
 図21は、スケールアウト例を示す第2のブロック図である。図21において、仮想サーバ#1と、仮想サーバ#1の子の仮想サーバ#1-1が存在する。仮想サーバ#1-1はスケールアウトを要求したとき、スケールアウトされた仮想サーバ#1-1-1は、仮想サーバ#1-1の子の仮想サーバとして構成される。
 図22は、スケールアウト例を示す第3のブロック図である。図22において、仮想サーバ#1と、仮想サーバ#1の子の仮想サーバ#1-1が存在する。仮想サーバ#1がスケールアウトを要求したとき、スケールアウトされた仮想サーバ#1-2は、仮想サーバ#1の子の仮想サーバとして構成される。
 図18~22が示すように、仮想サーバは、スケールアウトを要求するとき、自己の階層管理テーブルに、スケールアウトされた仮想サーバのレコードを登録することで、スケールアウトされた仮想サーバを自己の子の仮想サーバとして構成する。
 次に、親の仮想サーバが存在し、子の仮想サーバが存在しない場合におけるスケールインについて説明する。図23は、第1のスケールインの手順例を示すフローチャートである。図23のフローチャートが示す処理は、ステップS167,S174において実行される。
 (ステップS191)オートスケール実行部160は、負荷分散装置22に、自己の仮想サーバの使用停止を要求し、要求に対する応答を負荷分散装置22から受信する。
 (ステップS192)オートスケール実行部160は、実行中のトランザクションの実行が全て完了後、トランザクションを実行するプロセスを停止する。
 (ステップS193)オートスケール実行部160は、自己の仮想サーバのホスト名を検索する。具体的には、オートスケール実行部160は、階層管理テーブル124から階層=「自分」であるホスト名を検索する。
 (ステップS194)オートスケール実行部160は、親の仮想サーバのホスト名を検索する。具体的には、オートスケール実行部160は、階層管理テーブル124から階層=「親」であるホスト名を検索する。
 (ステップS195)オートスケール実行部160は、検索した親の仮想サーバに、階層管理テーブルから階層=「子」かつホスト名=ステップS193で検索したホスト名であるレコードを削除するよう要求する。
 (ステップS196)要求を受信した親の仮想サーバは、階層管理テーブルから階層=「子」かつホスト名=ステップS193で検索したホスト名であるレコードを削除する。そして、要求を受信した親の仮想サーバは、レコードの削除の結果を仮想サーバ#1に応答する。
 (ステップS197)オートスケール実行部160は、親の仮想サーバから応答を受信する。そして、オートスケール実行部160は、応答された結果が正常終了であるか判定する。正常終了である場合、処理をステップS198へ進める。正常終了でない場合、処理をステップS195へ進める。
 (ステップS198)オートスケール実行部160は、仮想化管理サーバ装置200に自己の仮想サーバ#1のスケールインを要求する。
 (ステップS199)スケールイン実行部220は、仮想サーバ#1から要求を受信し、仮想サーバ#1をスケールインする。そして、スケールイン実行部220は、スケールインを実施した旨を仮想サーバ#1に応答する。
 (ステップS200)オートスケール実行部160は、仮想化管理サーバ装置200によるスケールインを実施した旨の応答を検索した親の仮想サーバに送信する。
 図24は、第1のスケールインにおける装置間の応答例を示す図である。図24では、仮想サーバ#1-1-1が、スケールインを要求する場合について説明する。図24において、仮想サーバ#1-1と、仮想サーバ#1-1の子の仮想サーバ#1-1-1が存在する。仮想サーバ#1-1-1には、子の仮想サーバが存在しない。
 まず、仮想サーバ#1-1-1は、負荷分散装置22に仮想サーバ#1-1-1の使用停止を要求し、負荷分散装置22から応答を受信する(ステップS191)。
 仮想サーバ#1-1-1は、階層管理テーブル124kから階層=「自分」または「親」であるホスト名を検索する。仮想サーバ#1-1-1は、検索された階層=「自分」であるホスト名=#1-1-1を、階層管理テーブル124iから削除するよう仮想サーバ#1-1に要求する(ステップS195)。仮想サーバ#1-1は、階層=子かつホスト名=#1-1-1のレコードを、階層管理テーブル124iから削除する(ステップS196)。その結果、レコードの削除前の階層管理テーブル124iは、レコードの削除後の階層管理テーブル124jとなる。仮想サーバ#1-1は、削除の結果を仮想サーバ#1-1-1に応答する。仮想サーバ#1-1-1は、仮想サーバ#1-1から応答を受信する。(ステップS197)。
 仮想サーバ#1-1-1は、仮想化管理サーバ装置200に仮想サーバ#1-1-1のスケールインを要求する(ステップS198)。仮想化管理サーバ装置200は、仮想サーバ#1-1-1から要求を受信し、仮想サーバ#1-1-1をスケールインする。そして、仮想化管理サーバ装置200は、仮想サーバ#1-1-1にスケールインした旨を応答する(ステップS199)。仮想サーバ#1-1-1は、仮想化管理サーバ装置200によるスケールインを実施した旨の応答を親の仮想サーバ#1-1に送信する(ステップS200)。
 図25は、第1のスケールイン例を示すブロック図である。仮想サーバ#1の子の仮想サーバには、仮想サーバ#1-1,#1-2が存在する。仮想サーバ#1-1の子の仮想サーバには、仮想サーバ#1-1-1,#1-1-2が存在する。この場合において、仮想サーバ#1-1-1をスケールインしたとき、仮想サーバ#1-1は、仮想サーバ#1-1の階層管理テーブル124iからホスト名=#1-1-1であるレコードを削除する。その結果、レコードの削除前の階層管理テーブル124iは、レコードの削除後の階層管理テーブル124jとなる。このとき、仮想サーバの構造は、仮想サーバ#1の子の仮想サーバに、仮想サーバ#1-1,#1-2が存在する。仮想サーバ#1-1の子の仮想サーバに、仮想サーバ#1-1-2が存在する状態となる。
 このように、親の仮想サーバが存在し、子の仮想サーバが存在しない仮想サーバは、木構造の葉ノードに該当する。葉ノードにあたる仮想サーバがスケールインを要求するとき、親の仮想サーバの階層管理テーブルからスケールインされた仮想サーバのレコードを削除する。これにより、葉ノードにあたる仮想サーバを木構造から削除しても、スケールアウト後の各仮想サーバは木構造を保持できる。
 次に、親の仮想サーバが存在せず、子の仮想サーバが存在する場合におけるスケールインについて説明する。図26は、第2のスケールインの手順例を示すフローチャートである。図26のフローチャートが示す処理は、ステップS169,S176において実行される。
 (ステップS201)オートスケール実行部160は、負荷分散装置22に、自己の仮想サーバの使用停止を要求し、負荷分散装置22から要求に対する応答を受信する。
 (ステップS202)オートスケール実行部160は、実行中のトランザクションの実行が全て完了後、トランザクションを実行するプロセスを停止する。
 (ステップS203)オートスケール実行部160は、自己の仮想サーバのホスト名を検索する。具体的には、オートスケール実行部160は、階層管理テーブル124から階層=「自分」であるホスト名を検索する。
 (ステップS204)オートスケール実行部160は、子の仮想サーバのホスト名を検索する。具体的には、オートスケール実行部160は、階層管理テーブル124から階層=「子」である1または2以上のホスト名を検索する。
 (ステップS205)オートスケール実行部160は、検索された子の仮想サーバが2以上か判定する。子の仮想サーバが2以上の場合、処理をステップS209へ進める。子の仮想サーバが2未満の場合、処理をステップS206へ進める。
 (ステップS206)オートスケール実行部160は、検索した親の仮想サーバに、階層=「子」かつホスト名=ステップS193で検索したホスト名であるレコードを階層管理テーブルから削除するよう要求する。
 (ステップS207)要求を受信した親の仮想サーバは、階層管理テーブルから階層=「子」かつホスト名=ステップS193で検索したホスト名であるレコードを削除する。そして、要求を受信した親の仮想サーバは、レコードの削除の結果を仮想サーバ#1に応答する。
 (ステップS208)オートスケール実行部160は、応答された結果が正常終了であるか判定する。正常終了である場合、処理をステップS217へ進める。正常終了でない場合、処理をステップS206へ進める。
 (ステップS209)オートスケール実行部160は、検索された子の仮想サーバを1つ選択する。
 (ステップS210)オートスケール実行部160は、選択した子の仮想サーバに、階層=「親」かつホスト名=ステップS203で検索されたホスト名であるレコードを階層管理テーブルから削除するよう要求する。
 (ステップS211)オートスケール実行部160は、選択した子の仮想サーバに、階層=「子」かつホスト名=ステップS204で検索されたホスト名(選択した子の仮想サーバを除く)である複数のレコードを階層管理テーブルに登録するよう要求する。
 (ステップS212)要求を受信した子の仮想サーバは、階層=「親」かつホスト名=ステップS203で検索されたホスト名であるレコードを階層管理テーブルから削除する。また、要求を受信した子の仮想サーバは、階層=「子」かつホスト名=ステップS204で検索されたホスト名(選択した子の仮想サーバを除く)である複数のレコードを登録する。そして、要求を受信した子の仮想サーバは、レコードの削除および登録の結果を仮想サーバ#1に応答する。
 (ステップS213)オートスケール実行部160は、子の仮想サーバから応答を受信する。そして、オートスケール実行部160は、応答された結果が正常終了であるか判定する。正常終了である場合、処理をステップS214へ進める。正常終了でない場合、処理をステップS209へ進める。
 (ステップS214)オートスケール実行部160は、選択していない複数の子の仮想サーバに、階層管理テーブルにおいて、階層=「親」であるレコードのホスト名をステップS209で選択されたホスト名に更新するよう要求する。
 (ステップS215)要求を受信した子の各仮想サーバは、階層管理テーブルにおいて、階層=「親」である複数のレコードをホスト名=ステップS209で選択されたホスト名に更新する。そして、要求を受信した子の各仮想サーバは、更新の結果を仮想サーバ#1に応答する。
 (ステップS216)オートスケール実行部160は、応答された更新の結果が正常終了であるか判定する。正常終了である場合、処理をステップS217へ進める。正常終了でない場合、処理をステップS214へ進める。
 (ステップS217)オートスケール実行部160は、仮想化管理サーバ装置200に自己の仮想サーバ#1のスケールインを要求する。
 (ステップS218)スケールイン実行部220は、仮想サーバ#1から要求を受信し、仮想サーバ#1をスケールインする。そして、スケールイン実行部220は、スケールインを実施した旨を仮想サーバ#1に応答する。
 (ステップS219)オートスケール実行部160は、仮想化管理サーバ装置200によるスケールインを実施した旨の応答を親の仮想サーバに送信する。
 図27は、第2のスケールインにおける装置間の応答例を示す図である。図27では、仮想サーバ#1が、スケールインを要求する場合について説明する。図27において、仮想サーバ#1、仮想サーバ#1の子の仮想サーバ#1-1,#1-2が存在する。仮想サーバ#1には、親の仮想サーバが存在しない。
 まず、仮想サーバ#1は、負荷分散装置22に仮想サーバ#1の使用停止を要求し、負荷分散装置22から応答を受信する(ステップS201)。
 仮想サーバ#1は、階層管理テーブル124lから階層=「自分」であるホスト名=#1を検索する。また、仮想サーバ#1は、階層管理テーブル124lから階層=「子」であるホスト名=#1-1,#1-2を検索する。そして、検索された階層=「子」のホスト名からホスト名=#1-1を選択する。
 仮想サーバ#1は、選択された仮想サーバ#1-1に、検索された自己のホスト名=#1である階層=「親」のレコードを、階層管理テーブル124mから削除するよう要求する(ステップS210)。また、仮想サーバ#1は、選択した子の仮想サーバに、選択した子のホスト名(#1-1)を除いた階層が子であるホスト名=#1-2かつ階層=「子」のレコードを、階層管理テーブル124mに登録するよう要求する(ステップS211)。
 削除および登録を要求された仮想サーバ#1-1は、階層=「親」かつホスト名=#1のレコードを、階層管理テーブル124mから削除し、階層=「子」かつホスト名=#1-2のレコードを、階層管理テーブル124mに登録する(ステップS212)。その結果、レコードの削除および登録前の階層管理テーブル124mは、レコードの削除および登録後の階層管理テーブル124nとなる。仮想サーバ#1-1は、レコードの削除および登録の結果を仮想サーバ#1に応答する(ステップS213)。
 仮想サーバ#1は、選択されなかった仮想サーバ#1-2に、階層管理テーブル124oにおいて、階層=「親」のレコードのホスト名を、選択されたホスト名=#1-1に更新するよう要求する(ステップS214)。
 仮想サーバ#1-2は、階層管理テーブル124oにおいて、階層=「親」かつホスト名=#1のレコードをホスト名=#1-1に更新する(ステップS215)。その結果、レコード更新前の階層管理テーブル124oは、レコード更新後の階層管理テーブル124pとなる。仮想サーバ#1-2は、更新の結果を仮想サーバ#1に応答する(ステップS216)。
 仮想サーバ#1は、仮想化管理サーバ装置200に自己の仮想サーバ#1のスケールインを要求する(ステップS217)。仮想化管理サーバ装置200は、仮想サーバ#1から要求を受信し、仮想サーバ#1をスケールインする。そして、仮想化管理サーバ装置200は、仮想サーバ#1にスケールインした旨を応答する(ステップS218)。仮想サーバ#1は、仮想化管理サーバ装置200によるスケールインを実施した旨の応答を子の仮想サーバ#1-1,#1-2に送信する(ステップS219)。
 図28は、第2のスケールイン例を示すブロック図である。仮想サーバ#1の子の仮想サーバに、仮想サーバ#1-1,#1-2が存在する。この場合において、仮想サーバ#1をスケールインしたとき、仮想サーバ#1-1は、階層管理テーブル124mから階層=「親」であるレコードを削除し、階層管理テーブル124mに階層=「子」かつホスト名=#1-2のレコードを登録する。その結果、レコードの削除および登録前の階層管理テーブル124mは、レコードの削除および登録後の階層管理テーブル124nとなる。また、仮想サーバ#1-2は、階層管理テーブル124oから階層=「親」であるレコードについて、ホスト名を選択したホスト名=#1-1に更新する。その結果、レコード更新前の階層管理テーブル124oは、レコード更新後の階層管理テーブル124pとなる。
 このように、親の仮想サーバが存在せず、子の仮想サーバが複数存在する仮想サーバは、木構造の根ノードに該当する。このような根ノードにあたる仮想サーバをスケールインするとき、まず、複数の子の仮想サーバの1つの仮想サーバは、根ノードとなるよう階層管理テーブルから階層=「親」のレコードを削除し、階層=「子」のレコードを登録する。また、残りの子の仮想サーバは根ノードにあたる仮想サーバが親となるように、子の各仮想サーバの階層管理テーブルについて、階層=「親」のレコードを更新する。これにより、スケールインされた仮想サーバの子の仮想サーバのうち1つを根ノードとし、残りの子の仮想サーバを根ノードの子の仮想サーバとする木構造を生成され、スケールアウト後の各仮想サーバは木構造を保持できる。
 次に、親の仮想サーバが存在し、子の仮想サーバが存在する場合におけるスケールインについて説明する。図29は、第3のスケールインの手順例を示すフローチャートである。図29のフローチャートが示す処理は、ステップS171,S178において実行される。
 (ステップS221)オートスケール実行部160は、負荷分散装置22に、自己の仮想サーバの使用停止を要求し、負荷分散装置22から要求に対する応答を受信する。
 (ステップS222)オートスケール実行部160は、実行中のトランザクションの実行が全て完了することを待った上で、仮想サーバ#1におけるトランザクションを実行するプロセスを停止する。
 (ステップS223)オートスケール実行部160は、自己の仮想サーバのホスト名を検索する。具体的には、オートスケール実行部160は、階層管理テーブル124から階層=「自分」であるホスト名を検索する。
 (ステップS224)オートスケール実行部160は、親の仮想サーバのホスト名を検索する。具体的には、オートスケール実行部160は、階層管理テーブル124から階層=「親」であるホスト名を検索する。
 (ステップS225)オートスケール実行部160は、1または2以上の子の仮想サーバのホスト名を検索する。具体的には、オートスケール実行部160は、階層管理テーブル124から階層=「子」である1または2以上のホスト名を検索する。
 (ステップS226)オートスケール実行部160は、検索した親の仮想サーバに、階層=「子」かつホスト名=ステップS223で検索したホスト名であるレコードを階層管理テーブルへ登録するよう要求する。また、オートスケール実行部160は、検索した親の仮想サーバに、階層=「子」かつホスト名=ステップS225で検索したホスト名であるレコードを階層管理テーブルへ登録するよう要求する。
 (ステップS227)要求を受信した親の仮想サーバは、階層管理テーブルから階層=「子」かつホスト名=ステップS223で検索したホスト名であるレコードを削除する。また、要求を受信した親の仮想サーバは、階層管理テーブルから階層=「子」かつホスト名=ステップS225で検索したホスト名である1または2以上のレコードを登録する。そして、要求を受信した親の仮想サーバは、レコードの削除および登録の結果を仮想サーバ#1に応答する。
 (ステップS228)オートスケール実行部160は、親の仮想サーバから応答を受信する。そして、オートスケール実行部160は、応答された結果が正常終了であるか判定する。正常終了である場合、処理をステップS229へ進める。正常終了でない場合、処理をステップS226へ進める。
 (ステップS229)オートスケール実行部160は、子の各仮想サーバに、階層管理テーブルにおいて、階層=「親」かつホスト名=ステップS223で検索されたホスト名であるレコードについて、ホスト名=ステップS224で検索されたホスト名に更新するよう要求する。
 (ステップS230)要求を受信した子の仮想サーバは、レコードを階層管理テーブルについて、階層=「親」かつホスト名=ステップS223で検索されたホスト名であるレコードを、ホスト名=ステップS224で検索されたホスト名に更新する。そして、要求を受信した子の仮想サーバは、レコードの更新の結果を仮想サーバ#1に応答する。
 (ステップS231)オートスケール実行部160は、子の仮想サーバから応答を受信する。そして、オートスケール実行部160は、応答された結果が正常終了であるか判定する。正常終了である場合、処理をステップS232へ進める。正常終了でない場合、処理をステップS229へ進める。
 (ステップS232)オートスケール実行部160は、仮想化管理サーバ装置200に自己の仮想サーバ#1のスケールインを要求する。
 (ステップS233)スケールイン実行部220は、仮想サーバ#1から要求を受信し、仮想サーバ#1をスケールインする。そして、スケールイン実行部220は、スケールインを実施した旨を仮想サーバ#1に応答する。
 (ステップS234)オートスケール実行部160は、仮想化管理サーバ装置200によるスケールインを実施した旨の応答を親の仮想サーバに送信する。
 図30は、第3のスケールインにおける装置間の応答例を示す図である。図30では、仮想サーバ#1-1が、スケールインを要求する場合について説明する。図30において、仮想サーバ#1、仮想サーバ#1の子の仮想サーバ#1-1、および仮想サーバ#1-1の子の仮想サーバ#1-1-1が存在する。
 まず、仮想サーバ#1-1は、負荷分散装置22に自己の仮想サーバ#1-1の使用停止を要求し、負荷分散装置22から応答を受信する(ステップS221)。
 仮想サーバ#1-1は、階層管理テーブル124qから階層=「自分」であるホスト名=#1-1を検索する。また、仮想サーバ#1-1は、階層管理テーブル124qから階層=「親」であるホスト名=#1を検索する。また、仮想サーバ#1-1は、階層管理テーブル124qから階層=「子」であるホスト名=#1-1-1を検索する。
 仮想サーバ#1-1は、検索した親の仮想サーバに、階層=「子」かつスケールインされる仮想サーバのホスト名=#1-1のレコードを階層管理テーブルから削除し、階層=「子」かつ検索された子の仮想サーバのホスト名=#1-1-1のレコードを階層管理テーブルへ登録するよう要求する。(ステップS226)。
 要求を受信した仮想サーバ#1は、階層=「子」かつホスト名=#1-1であるレコードを階層管理テーブル124rから削除し、階層=「子」かつ検索した子の仮想サーバのホスト名=#1-1-1であるレコードを階層管理テーブル124rへ登録する(ステップS227)。その結果、レコードの削除および登録前の階層管理テーブル124rは、レコードの削除および登録後の階層管理テーブル124sとなる。仮想サーバ#1は、レコードの削除および登録の結果を仮想サーバ#1-1に応答する(ステップS228)。
 仮想サーバ#1-1は、検索した子の仮想サーバ#1-1-1に、階層管理テーブル124tにおいて、階層=「親」のレコードのホスト名を、検索された親の仮想サーバのホスト名=#1に更新するよう要求する(ステップS229)。
 仮想サーバ#1-1-1は、階層管理テーブル124tにおいて、階層=「親」かつホスト名=#1-1のレコードをホスト名=#1に更新する(ステップS230)。その結果、レコード更新前の階層管理テーブル124tは、レコード更新後の階層管理テーブル124uとなる。仮想サーバ#1-1-1は、更新の結果を仮想サーバ#1に応答する(ステップS231)。
 仮想サーバ#1は、仮想化管理サーバ装置200に仮想サーバ#1-1のスケールインを要求する(ステップS232)。仮想化管理サーバ装置200は、仮想サーバ#1-1から要求を受信し、仮想サーバ#1-1をスケールインする。そして、仮想化管理サーバ装置200は、仮想サーバ#1にスケールインした旨を応答する(ステップS233)。仮想サーバ#1-1は、仮想化管理サーバ装置200によるスケールインを実施した旨の応答を親の仮想サーバ#1および子の仮想サーバ#1-1-1に送信する(ステップS234)。
 図31は、第3のスケールイン例を示すブロック図である。仮想サーバ#1の子の仮想サーバに、仮想サーバ#1-1が存在する。仮想サーバ#1-1の子の仮想サーバに、仮想サーバ#1-1-1が存在する。この場合において、仮想サーバ#1-1をスケールインしたとき、仮想サーバ#1は、階層管理テーブル124rから階層=「子」であるレコードを削除し、階層管理テーブル124rに階層=「子」かつスケールインされる仮想サーバの子のホスト名=#1-1-1のレコードを登録する。その結果、レコードの削除および登録前の階層管理テーブル124rは、レコードの削除および登録後の階層管理テーブル124sとなる。また、仮想サーバ#1-1-1は、階層管理テーブル124tから階層=「親」であるレコードのホスト名を、スケールインされる仮想サーバの親のホスト名=#1に更新する。その結果、レコード更新前の階層管理テーブル124tは、レコード更新後の階層管理テーブル124uとなる。
 このように、親の仮想サーバが存在し、子の仮想サーバが存在する仮想サーバは、木構造の根ノードおよび葉ノードのいずれにも該当しない。このような仮想サーバをスケールインするとき、スケールインされる仮想サーバの親の仮想サーバが、スケールインされる仮想サーバの子の仮想サーバの親となるように、階層管理テーブルを更新する。これにより、スケールインされた仮想サーバにおいて、親の仮想サーバが、子の仮想サーバ1つ上の階層となることで、スケールアウト後の各仮想サーバは木構造を保持できる。
 次に、第2の実施の形態の変化例について説明する。第2の実施の形態の変化例では、スケールアウトまたはスケールインの有無を、平均トランザクション数、平均トランザクション変化量に加え、平均トランザクション変化量における変化量に基づいて判断する。
 図32は、閾値情報テーブルの変化例を示す図である。閾値情報テーブル125は、閾値情報テーブル121の変化例である。閾値情報テーブル125は、トラン数(上限)、トラン数(下限)、トラン変化量(上限)、トラン変化量(下限)、トラン変化量の変化量(上限)およびトラン変化量の変化量(下限)の項目を有する。トラン数(上限)、トラン数(下限)、トラン変化量(上限)およびトラン変化量(下限)の項目については、閾値情報テーブル121と同様であるため、説明を省略する。トラン変化量の変化量(上限)の項目には、平均トランザクション変化量における変化量の上限値が設定される。仮想サーバの平均トランザクション変化量の変化量がトラン変化量(上限)以上となったとき、仮想サーバは、仮想化管理サーバ装置200にスケールアウトを要求する。トラン変化量の変化量(下限)の項目には、平均トランザクション変化量における変化量の下限値が設定される。仮想サーバの平均トランザクション変化量の変化量がトラン変化量(下限)未満となったとき、仮想サーバは、仮想化管理サーバ装置200にスケールインを要求する。
 図33は、負荷分析値テーブルの変化例を示す図である。負荷分析値テーブル126は、日時、平均トラン数、平均トラン変化量および平均トラン変化量の変化量の項目を有する。日時、平均トラン数および平均トラン変化量の項目については、負荷分析値テーブル122と同様であるため説明を省略する。平均トラン変化量の変化量の項目には、所定時間あたりの仮想サーバの平均トランザクション変化量における変化量が設定される。具体的には、平均トランザクション変化量の変化量は、算出した平均トラン変化量と前回算出した平均トラン変化量との差分により算出される。
 図32~図33で示したように、第2の実施の形態の変化例では、スケールアウト等の有無が、第2の実施の形態で判断される平均トランザクション数、平均トランザクション変化量に加え、平均トランザクション変化量における変化量についても判断される。これにより、より急激なトランザクション数の変化の予兆を検知することができる。よって、より急激にトランザクション数が変化した場合でも、スケールアウト等の有無を迅速に判断できる。
 第2の実施の形態によれば、複数のトランザクションを並行して実施する仮想サーバにおいて、仮想サーバを木構造で構成し、自己の階層の1つ下の階層における各仮想サーバから各仮想サーバの階層以下におけるサーバの平均トランザクション数などの性能測定値を受信する。これにより、トランザクションを実行する仮想サーバと別のサーバを用いて、複数の処理を実行する各仮想サーバの性能測定値を集計する方法に比べ、性能測定値の収集するための通信量を各サーバに分散できる。よって、大量の仮想サーバを用いた場合においても、滞ることなく性能測定値の集計が可能となり、迅速にスケールアウト等の有無を判断できる。
 また、性能測定値として平均トランザクション変化量や、平均トランザクション変化量の変化量に基づいて、スケールアウト等などの有無を判断する。これにより、トランザクションの急激な変化を予測することができる。よって、端末装置21から要求されるトランザクションが急激に変化した場合も、迅速にスケールアウト等の有無を判断できる。
 また、木構造で構成された各仮想サーバが自己の階層以下の各仮想サーバの平均トランザクション数を監視し、スケールアウト等の有無を判断する。これにより、1台のサーバが、全ての仮想サーバの平均トランザクション数を監視する方法と比べ、各仮想サーバの性能測定値を平準化できる。
 図34は、第2の実施の形態の効果を示す第1のブロック図である。図34は、第2の実施の形態を利用しない場合の、オートスケールを管理する方法について説明する。仮想サーバ#1,#1-1,#1-2,#1-3,#1-4は、実行サーバ装置に用いられる仮想マシンである。仮想サーバ#1,#1-1,#1-2,#1-3,#1-4は、端末装置から要求されたトランザクションを並行して実行する。仮想サーバ#1は、仮想サーバ#1-1,#1-2,#1-3,#1-4と接続されている。仮想サーバ#1は、仮想サーバ#1-1,#1-2,#1-3,#1-4からトランザクション数を受信する。そして、仮想サーバ#1は、受信したトランザクション数と自己のトランザクション数を基に、全仮想サーバの平均トランザクション数を算出する。
 ここで、仮想サーバ#1のトランザクション数=20、仮想サーバ#1-1のトランザクション数=60、仮想サーバ#1-2のトランザクション数=20、仮想サーバ#1-4のトランザクション数=20、仮想サーバ#1-4のトランザクション数=100である。また、スケールアウトを実行するための平均トランザクション数の閾値は100とする。
 この場合、仮想サーバ#1が算出する平均トランザクション数は44となり、全体としては、閾値以上ではない。しかし、仮想サーバ#1-4は、閾値以上である100のトランザクションを実行しており、各仮想サーバについて、トランザクション数に偏りがある。
 また、仮想サーバ#1は、全体の仮想サーバ数-1の仮想サーバからトランザクション数を受信する。例えば、図34において、仮想サーバ#1は、4の仮想サーバからトランザクション数を受信する。仮想サーバの数が1000に増えれば、仮想サーバ#1の配下の仮想サーバは999となり、トランザクション数を計測するための通信量が増大する。これにより、迅速なオートスケールに支障をきたす場合がある。
 このように、1つの仮想サーバが、他の仮想サーバからトランザクション数を受信する場合、受信する仮想サーバへの通信の負担が増し、迅速なオートスケールが実現できなくなる恐れがある。また、1つの仮想サーバが全体の平均トランザクション数を計測すると、各仮想サーバのトランザクション数の偏りを検知することが困難である。
 図35は、第2の実施の形態の効果を示す第2のブロック図である。図35は、第2の実施の形態を利用しない場合の、オートスケールを管理する方法について説明する。仮想サーバ#1,#1-1,#1-2,#1-1-1,#1-1-2は、実行サーバ装置100に用いられる仮想マシンである。仮想サーバ#1,#1-1,#1-2,#1-1-1,#1-1-2は、端末装置21から要求されたトランザクションを並行して実行する。図35において、仮想サーバ#1,#1-1,#1-2,#1-1-1,#1-1-2は、次の木構造により構成されている。仮想サーバ#1において、親の仮想サーバは存在せず、子の仮想サーバには仮想サーバ#1-1,#1-2が存在する。また、仮想サーバ#1-1において、親の仮想サーバには仮想サーバ#1が存在し、子の仮想サーバには仮想サーバ#1-1-1,#1-1-2が存在する。また、仮想サーバ#1-2において、親の仮想サーバには仮想サーバ#1が存在し、子の仮想サーバは存在しない。また、仮想サーバ#1-1-1,#1-1-2において、親の仮想サーバには仮想サーバ#1-1が存在し、子の仮想サーバは存在しない。
 ここで、仮想サーバ#1のトランザクション数=20、仮想サーバ#1-1のトランザクション数=60、仮想サーバ#1-2のトランザクション数=20、仮想サーバ#1-1-1のトランザクション数=20、仮想サーバ#1-1-2のトランザクション数=100とする。また、スケールアウトを実行するための平均トランザクション数の閾値は100とする。
 この場合、仮想サーバ#1-1-1には子の仮想サーバが存在しないため、仮想サーバ#1-1-1の総仮想サーバ数=1、総トランザクション数=20および平均トランザクション数=20となる。また、仮想サーバ#1-1-2は、総仮想サーバ数=1、総トランザクション数=100および平均トランザクション数=100となる。
 また、仮想サーバ#1-1は、子の仮想サーバ#1-1-1,#1-1-2が存在する。そのため、仮想サーバ#1-1の総仮想サーバ数=1+1+1=3、総トランザクション数の合計=20+100+60=180、そして、平均トランザクション数=180÷3=60となる。また、仮想サーバ#1-2は、子の仮想サーバが存在しないため、総仮想サーバ数=1、総トランザクション数=20および平均トランザクション数=20となる。また、仮想サーバ#1は、子の仮想サーバ#1-1,#1-2が存在する。そのため、総仮想サーバ数=3+1+1=5、総トランザクション数=180+20+20=220となる。そして、平均トランザクション数=220÷5=44となる。
 このため、仮想サーバ#1が測定したトランザクション数=44で閾値未満だが、仮想サーバ#1-1-2の平均トランザクション数=100のため、閾値以上であり、スケールアウトを要求する判断が可能となる。
 また、図35において、仮想サーバが木構造で構成されているため、各仮想サーバがトランザクション数を受信する仮想サーバの数は、多くても2つである。また、全体の仮想サーバが1000になっても、ツリー構造のため、各仮想サーバがトランザクション数を受信する仮想サーバの数は変わらず、通信量が分散される。
 このように、各仮想サーバを木構造で構成することで、トランザクション数を測定するための通信の負荷を各仮想サーバに分散することができる。また、各仮想サーバが自己の階層以下の階層の平均トランザクション数を測定し、スケールアウトおよびスケールインの有無を判定することで、各仮想サーバが実行するトランザクション数を平準化できる。
 なお、前述のように、第1の実施の形態の情報処理は、サーバ10,10a,10b,10cにプログラムを実行させることで実現でき、第2の実施の形態の情報処理は、実行サーバ装置100にプログラムを実行させることで実現できる。このようなプログラムは、コンピュータ読み取り可能な記録媒体(例えば、記録媒体43)に記録しておくことができる。記録媒体としては、例えば、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリなどを使用できる。磁気ディスクには、FDおよびHDDが含まれる。光ディスクには、CD、CD-R(Recordable)/RW(Rewritable)、DVDおよびDVD-R/RWが含まれる。
 プログラムを流通させる場合、例えば、当該プログラムを記録した可搬記録媒体が提供される。また、プログラムを他のコンピュータの記憶装置に格納しておき、ネットワーク31経由でプログラムを配布することもできる。コンピュータは、例えば、可搬記録媒体に記録されたプログラムまたは他のコンピュータから受信したプログラムを、記憶装置(例えば、HDD103)に格納し、当該記憶装置からプログラムを読み込んで実行する。ただし、可搬記録媒体から読み込んだプログラムを直接実行してもよく、他のコンピュータからネットワーク31を介して受信したプログラムを直接実行してもよい。また、上記の情報処理の少なくとも一部を、DSP、ASIC、PLD(Programmable Logic Device)等の電子回路で実現することも可能である。
 上記については単に本発明の原理を示すものである。さらに、多数の変形や変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応する全ての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
 10,10a,10b,10c サーバ
 11,11a,11b,11c 受信部
 12,12a,12b,12c 判定部

Claims (12)

  1.  コンピュータに、
     前記コンピュータまたは前記コンピュータと同じシステムに属する他のコンピュータが、サーバソフトウェアを実行することで実現される複数のサーバが接続され、それぞれの接続が、負荷値の受け渡しに関する従属関係を構成しており、前記コンピュータで実現される第1のサーバに従属する1以上の第2のサーバから、前記1以上の第2のサーバ以下に従属する1以上のサーバ群の負荷値を受信し、
     前記第1のサーバの負荷値と、前記1以上の第2のサーバから受信した負荷値に基づいて、前記システムを増強させるか否かを判定する、
     処理を実行させることを特徴とするプログラム。
  2.  前記コンピュータに、さらに、
     前記システムを増強させると判定した場合、前記第1のサーバに従属するサーバの追加要求を出力する、
     ことを特徴とする請求項1記載のプログラム。
  3.  前記判定では、前記第1のサーバおよび前記1以上のサーバ群に属するサーバの負荷値の平均値が閾値以上の場合、前記システムを増強させると判定する、ことを特徴とする請求項1または2のいずれかに記載のプログラム。
  4.  前記判定では、さらに、
     前記第1のサーバおよび前記1以上のサーバ群に属するサーバの負荷値の平均値が閾値未満の場合、前記システムを縮小させると判定する、
     ことを特徴とする請求項1乃至3のいずれかに記載のプログラム。
  5.  前記コンピュータに、さらに、
     前記システムを縮小させると判定した場合、前記第1のサーバの停止要求を出力する、
     処理を実行させることを特徴とする請求項4記載のプログラム。
  6.  前記判定では、さらに、
     前記第1のサーバおよび前記1以上のサーバ群に属するサーバの負荷値の平均値の変化量が閾値以上の場合、前記システムを増強させると判定する、ことを特徴とする請求項1乃至5のいずれかに記載のプログラム。
  7.  前記判定では、さらに、
     前記第1のサーバおよび前記1以上のサーバ群に属するサーバの負荷値の平均値の変化量が閾値未満の場合、前記システムを縮小させると判定する、
     ことを特徴とする請求項1乃至6のいずれかに記載のプログラム。
  8.  前記第1のサーバは、前記コンピュータによって構築された仮想マシンによって実現されており、前記受信と、前記判定とを、該仮想マシンに実行させる、
     ことを特徴とする請求項1乃至7のいずれかに記載のプログラム。
  9.  前記コンピュータによって複数の仮想マシンが構築され、各仮想マシン上でサーバが実現されている場合、各仮想マシンに対し、該仮想マシン上で実現されているサーバを前記第1のサーバとして、前記受信と、前記判定とを実行させる、
     ことを特徴とする請求項8記載のプログラム。
  10.  前記複数のサーバは、負荷の受け渡し関係が木構造となるように接続されていることを特徴とする請求項1乃至9のいずれかに記載のプログラム。
  11.  コンピュータに、
     前記コンピュータまたは前記コンピュータと同じシステムに属する他のコンピュータが、サーバソフトウェアを実行することで実現される複数のサーバが接続され、それぞれの接続が、負荷値の受け渡しに関する従属関係を構成しており、前記コンピュータで実現される第1のサーバに従属する1以上の第2のサーバから、前記1以上の第2のサーバ以下に従属する1以上のサーバ群の負荷値を受信し、
     前記第1のサーバの負荷値と、1以上の第2のサーバそれぞれから受信した負荷値に基づいて、前記システムを増強させるか否かを判定する、
     処理を実行させることを特徴とする管理方法。
  12.  コンピュータまたは前記コンピュータと同じシステムに属する他のコンピュータが、サーバソフトウェアを実行することで実現される複数のサーバが接続され、それぞれの接続が、負荷値の受け渡しに関する従属関係を構成しており、前記コンピュータで実現される第1のサーバに従属する1以上の第2のサーバから、前記1以上の第2のサーバ以下に従属する1以上のサーバ群の負荷値を受信する受信部と、
     前記第1のサーバの負荷値と、1以上の第2のサーバそれぞれから受信した負荷値に基づいて、前記システムを増強させるか否かを判定する判定部と、
     を有することを特徴とするコンピュータ。
PCT/JP2014/059259 2014-03-28 2014-03-28 プログラム、管理方法およびコンピュータ WO2015145753A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP2014/059259 WO2015145753A1 (ja) 2014-03-28 2014-03-28 プログラム、管理方法およびコンピュータ
JP2016509845A JP6256594B2 (ja) 2014-03-28 2014-03-28 プログラム、管理方法およびコンピュータ
US15/277,308 US20170019462A1 (en) 2014-03-28 2016-09-27 Management method and computer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/059259 WO2015145753A1 (ja) 2014-03-28 2014-03-28 プログラム、管理方法およびコンピュータ

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US15/277,308 Continuation US20170019462A1 (en) 2014-03-28 2016-09-27 Management method and computer

Publications (1)

Publication Number Publication Date
WO2015145753A1 true WO2015145753A1 (ja) 2015-10-01

Family

ID=54194339

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2014/059259 WO2015145753A1 (ja) 2014-03-28 2014-03-28 プログラム、管理方法およびコンピュータ

Country Status (3)

Country Link
US (1) US20170019462A1 (ja)
JP (1) JP6256594B2 (ja)
WO (1) WO2015145753A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10277524B1 (en) * 2018-02-23 2019-04-30 Capital One Services, Llc Monitoring data streams and scaling computing resources based on the data streams
JP7243303B2 (ja) 2019-03-06 2023-03-22 株式会社デンソー 処理配置制御方法、処理配置制御システム、処理配置制御装置、およびサーバ装置
US11409568B2 (en) * 2020-10-05 2022-08-09 International Business Machines Corporation Dynamically scaling out pods using a recursive way
US11025710B1 (en) * 2020-10-26 2021-06-01 Verizon Digital Media Services Inc. Systems and methods for dynamic load balancing based on server utilization and content popularity

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120254443A1 (en) * 2011-03-30 2012-10-04 International Business Machines Corporation Information processing system, information processing apparatus, method of scaling, program, and recording medium
JP2013186745A (ja) * 2012-03-08 2013-09-19 Fuji Xerox Co Ltd 処理システム及びプログラム
JP2014035717A (ja) * 2012-08-10 2014-02-24 Hitachi Ltd 多階層の各ノードを考慮した負荷分散方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7506011B2 (en) * 2006-07-26 2009-03-17 International Business Machines Corporation System and apparatus for optimally trading off the replication overhead and consistency level in distributed applications
JP5446040B2 (ja) * 2009-09-28 2014-03-19 日本電気株式会社 コンピュータシステム、及び仮想マシンのマイグレーション方法
US8631403B2 (en) * 2010-01-04 2014-01-14 Vmware, Inc. Method and system for managing tasks by dynamically scaling centralized virtual center in virtual infrastructure
TW201324357A (zh) * 2011-12-01 2013-06-16 Univ Tunghai 虛擬機叢集之綠能管理方法
TW201409357A (zh) * 2012-08-31 2014-03-01 Hon Hai Prec Ind Co Ltd 虛擬機資源負載平衡系統及方法
US9208015B2 (en) * 2013-06-18 2015-12-08 Vmware, Inc. Hypervisor remedial action for a virtual machine in response to an error message from the virtual machine

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120254443A1 (en) * 2011-03-30 2012-10-04 International Business Machines Corporation Information processing system, information processing apparatus, method of scaling, program, and recording medium
JP2013186745A (ja) * 2012-03-08 2013-09-19 Fuji Xerox Co Ltd 処理システム及びプログラム
JP2014035717A (ja) * 2012-08-10 2014-02-24 Hitachi Ltd 多階層の各ノードを考慮した負荷分散方法

Also Published As

Publication number Publication date
US20170019462A1 (en) 2017-01-19
JP6256594B2 (ja) 2018-01-10
JPWO2015145753A1 (ja) 2017-04-13

Similar Documents

Publication Publication Date Title
JP6248560B2 (ja) 管理プログラム、管理方法、および管理装置
US10289703B1 (en) System and methods for multi-tenancy management within a distributed database
WO2018149345A1 (zh) 一种数据处理方法及装置
JP5218390B2 (ja) 自律制御サーバ、仮想サーバの制御方法及びプログラム
US9003086B1 (en) Dynamic distribution of replicated data
US7849180B2 (en) Load balanced storage provisioning
US9613037B2 (en) Resource allocation for migration within a multi-tiered system
CN103036994B (zh) 实现负载均衡的云存储系统
US20140188953A1 (en) Directory-level referral method for parallel nfs with multiple metadata servers
JP6256594B2 (ja) プログラム、管理方法およびコンピュータ
US20140282540A1 (en) Performant host selection for virtualization centers
US10169085B2 (en) Distributed computing of a task utilizing a copy of an original file stored on a recovery site and based on file modification times
JP6807963B2 (ja) 情報処理システム及び情報処理方法
JPWO2016174764A1 (ja) 管理装置および管理方法
JP2017507415A (ja) クラウド環境におけるitインフラ管理のための方法とその装置
CN112948279A (zh) 管理存储系统中的访问请求的方法、设备和程序产品
US10192165B2 (en) System and method for navigating multi-dimensional decision trees using acceptable alternate nodes
US10326826B1 (en) Migrating an on premises workload to a web services platform
US10387578B1 (en) Utilization limiting for nested object queries
JP2021064078A (ja) 複数のノードを含むストレージシステムの拡張構成案を作成する装置
US20220391370A1 (en) Evolution of communities derived from access patterns
WO2017045545A1 (zh) 多存储盘负载管理方法、装置、文件系统及存储网络系统
JP6076882B2 (ja) 情報処理システム、管理装置及びキー割当プログラム
US11249952B1 (en) Distributed storage of data identifiers
JP6155861B2 (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: 14887399

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2016509845

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase
122 Ep: pct application non-entry in european phase

Ref document number: 14887399

Country of ref document: EP

Kind code of ref document: A1