WO2014139470A1 - 一种内存超分配管理系统及方法 - Google Patents

一种内存超分配管理系统及方法 Download PDF

Info

Publication number
WO2014139470A1
WO2014139470A1 PCT/CN2014/073481 CN2014073481W WO2014139470A1 WO 2014139470 A1 WO2014139470 A1 WO 2014139470A1 CN 2014073481 W CN2014073481 W CN 2014073481W WO 2014139470 A1 WO2014139470 A1 WO 2014139470A1
Authority
WO
WIPO (PCT)
Prior art keywords
server
virtual machine
operating system
running
type
Prior art date
Legal status (The legal status 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 status listed.)
Ceased
Application number
PCT/CN2014/073481
Other languages
English (en)
French (fr)
Inventor
蒋鲲鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
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 ZTE Corp filed Critical ZTE Corp
Priority to EP14763336.6A priority Critical patent/EP2975515A4/en
Priority to US14/774,690 priority patent/US9697053B2/en
Publication of WO2014139470A1 publication Critical patent/WO2014139470A1/zh
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5033Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering data affinity
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Definitions

  • the present invention relates to the field of computer virtualization technologies, and in particular, to a memory over-allocation management system and method. Background technique
  • Memory over-allocation is a memory allocation technique that allocates virtual memory to multiple virtual machines on a server, and lets each virtual machine see more memory than the actual physical memory of the server. According to its implementation mechanism, the main technologies of memory over-allocation are as follows:
  • Balloon-driven technology which allows the virtual machine to see more memory than the actual allocated memory.
  • the balloon driver is used on the virtual machine to occupy the over-allocated memory, so that other programs inside the virtual machine cannot be allocated to the over-allocated memory.
  • the virtual machine operating system automatically starts the virtual machine-wide memory page exchange mechanism;
  • the virtual machine manager page swapping technology after the virtual machine's memory page is allocated, the virtual machine manager saves part of the memory page to the disk, thereby releasing some memory for the virtual machine to use, so that the virtual machine user does not feel the memory super Assignment
  • Page sharing technology based on pages, maps pages with the same content between different virtual machines to the same physical page.
  • the balloon driving technology is prone to insufficient memory, so the virtual machine user has a poor experience; the virtual machine manager page switching technology
  • virtual machine users have a better experience because they don't feel the lack of memory, but in actual operation, their running performance is relatively worse than balloon drive technology because of the virtual machine.
  • the efficiency and accuracy of the page exchange of the manager is lower than that of the virtual machine operating system itself.
  • Page sharing technology is the relatively best technology, because the allocated memory is actually existed, there is no performance degradation and User experience and other issues.
  • the transparent page sharing function provided by VMware the same page merging function provided by the Linux kernel belongs to the page sharing technology.
  • the page sharing technology has many advantages, it also has the following drawbacks:
  • the sharing effect is strongly related to the similarity of the virtual machine running software, that is, if the software running by the two virtual machines is relatively similar, the more the shared pages are. More, the effect of memory over-allocation is better; on the other hand, if the software running on two virtual machines is less similar, there are fewer pages that can be shared, and the effect of memory over-allocation is also poor. Therefore, for a large server cluster system, if the virtual machine software on each server is not similar, the memory over-allocation effect of the entire cluster system is not good, which wastes memory resources, and the system runs virtual machines. The number is reduced. Summary of the invention
  • the embodiment of the present invention mainly provides a memory over-allocation management system and method, and aims to migrate a virtual machine of a similar software type from the server to a designated server according to the software type of the virtual machine running by each server in the collected cluster. , to make the memory of the entire cluster system better allocated.
  • the embodiment of the invention provides a memory over-allocation management system, including:
  • the cluster management module is configured to send an information collection instruction, collect software type information of the virtual machine running by each server in the cluster, classify each server according to the software type of the virtual machine, and dynamically identify the type, and then make the respective
  • the server forms a tree structure, and after the migration instruction is sent, the tree structure is configured;
  • a server management module connected to the cluster management module, configured to receive the cluster management After the information collection instruction sent by the module, the type information of the software running in each virtual machine in the server is collected, and reported to the cluster management module; after receiving the migration instruction sent by the cluster management module, the software type to be run is similar. The virtual machine is migrated from this server to the specified server.
  • the server management module includes an information collection module and a migration module
  • the information collection module is configured to: after receiving the information collection instruction sent by the cluster management module, collect type information of software running in each virtual machine in the server, And reporting to the cluster management module
  • the migration module is configured to: after receiving the migration instruction sent by the cluster management module, migrate the running virtual machine of similar software type from the server to the designated server.
  • the cluster management module includes a virtual machine creation module configured to determine whether there is a server similar to the configuration information of the virtual machine to be created when the virtual machine is created:
  • the server that is similar to the configuration information is selected to be a server, and the virtual machine is created;
  • the cluster management module includes a timing module configured to periodically send an information collection instruction to the server management module according to a preset time interval; the cluster management module is further configured to virtualize each server according to the timing thereof.
  • the type information of the running software in the machine is issued with a migration instruction, and the tree structure formed by each server is allocated.
  • the migration module is further configured to return migration result information to the cluster management module.
  • the software type information of the virtual machine includes operating system type information, operating system type information, and running process information.
  • the tree structure includes four levels of no type, the same operating system type, the same operating system version, and similar running processes.
  • the communication channel between the cluster management module and the server management module is a LAN channel, an Internet channel, a serial channel, a Fibre Channel, a wireless channel, or a SAN (Storage).
  • Area Network A type of channel for a depositor or network.
  • the embodiment of the invention further provides a memory over-allocation management method, including:
  • Receiving the information collection instruction collecting the type information of the software running in the virtual machine in each server, and classifying each server and dynamically identifying the type according to the software type of the virtual machine running by each server in the cluster, so that the Each server forms a tree structure;
  • the memory over-allocation management method further includes: creating a virtual machine, and determining whether there is a server similar to the virtual machine configuration information to be created when creating the virtual machine:
  • the server that is similar to the configuration information is selected to be a server, and the virtual machine is created;
  • the method before the receiving the information collection instruction, the method further includes: periodically sending an information collection instruction according to a preset time interval; and before receiving the migration instruction, the method further includes: collecting, according to the timing, the type information of the software running in the virtual machine in each server according to the timing Release the migration instructions.
  • the receiving the migration instruction, the tree structure is configured, and after the running virtual machine of the similar software type is migrated from the server to the designated server, the method further includes: returning the migration result information.
  • the software type information of the virtual machine includes operating system type information, and determines whether the ratio of the operating system type similarity of the virtual machine running by each server exceeds a specified threshold: if yes, the server is identified as the similarity ratio exceeds a server of the operating system type that specifies the threshold;
  • the software type information of the virtual machine further includes operating system version information, and the ratio of the operating system type of the virtual machine running by each server and the similarity of the operating system version is No more than the specified threshold:
  • the software type information of the virtual machine further includes running process information, and determining whether the ratio of the operating system type, the operating system version, and the similarity of the running process of the virtual machine running by each server exceeds a specified threshold:
  • the embodiment of the present invention implements memory over-allocation management through a memory over-allocation management system, and the memory over-allocation management method includes: receiving an information collection instruction, collecting type information of software running in a virtual machine in each server, and collecting the cluster information according to the collected The software type of the virtual machine running by each server, after classifying each server and dynamically identifying its type, the servers are formed into a tree structure; receiving migration instructions, configuring the tree structure, and running the software type A similar virtual machine is migrated from this server to the specified server.
  • the embodiment of the present invention is based on the page sharing technology, and collects virtual machines of similar types of software running from the server to the designated server by collecting the software types of the virtual machines running on the servers in the cluster, so that the page sharing effect between the virtual machines is further improved.
  • Good, memory over-allocation effect is better, but also ensure that the load capacity of the server in the system is not wasted, achieve the memory utilization of the whole system, the best cooperation of resource utilization, so that the memory of the entire cluster system is better distributed,
  • the embodiment of the invention reduces the number of servers running, saves energy and operating costs, reduces environmental pressure, reduces carbon dioxide emissions, and has great social and economic benefits.
  • FIG. 1 is a schematic structural diagram of an embodiment of a memory over-allocation management system according to the present invention
  • FIG. 2 is a schematic structural diagram of an embodiment of a cluster management module according to the present invention.
  • FIG. 3 is a schematic structural diagram of an embodiment of a server management module according to the present invention.
  • FIG. 4 is a schematic structural diagram of a tree structure of a memory over-allocation management system according to the present invention
  • FIG. 5 is a flowchart of an embodiment of a memory over-allocation management method according to the present invention.
  • FIG. 6 is a flow chart of a first embodiment of a dynamic identification server type of the present invention.
  • FIG. 7 is a flow chart of a second embodiment of the dynamic identification server type of the present invention.
  • FIG. 9 is a flow chart of another embodiment of a memory over-allocation management method of the present invention.
  • FIG. 10 is a flow chart of an embodiment of creating a virtual machine according to the present invention.
  • FIG. 11 is a flow chart of another embodiment of creating a virtual machine according to the present invention.
  • Figure 12 is a flow diagram of an embodiment of the present invention for virtual machine migration based on type information of running software.
  • FIG. 1 is a schematic structural diagram of an embodiment of a memory over-allocation management system according to the present invention
  • FIG. 2 is a schematic structural diagram of an embodiment of a cluster management module according to the present invention
  • the present invention provides a memory over-allocation management system, including:
  • the cluster management module 10 is configured to send an information collection instruction, and collect each server in the cluster.
  • the software type information of the running virtual machine after classifying each server according to the software type of the virtual machine and dynamically identifying the type thereof, forming the servers into a tree structure, and after sending the migration instruction, the tree The shape structure is adjusted.
  • the software type information of the virtual machine includes the operating system type information, the operating system type information, and the running process information, but the embodiment of the present invention is not limited to the foregoing software type information, as long as the The effect of better allocation of the memory of the cluster system is sufficient.
  • the cluster management module 10 runs on the cluster management server, and is responsible for classifying each server in the cluster.
  • each server is classified and dynamically identified, so that all servers in the system are
  • the type identification organization forms a tree structure; at the same time, it is responsible for periodically collecting the software type information of each virtual machine in the system, and according to the collected information, the virtual machines with similar software types are deployed to the designated same server as much as possible, and After the deployment is completed, the dynamic identifiers of the servers are updated according to the proportion of the software types of the virtual machines running on the servers, thereby forming a new tree structure to facilitate virtual machine deployment and server management, and the memory is better. Distribution.
  • the migration mode ensures that the total idle capacity of each bearer server in the system does not exceed one server;
  • the server management module 20 is connected to the cluster management module 10, and configured to receive the information collection instruction sent by the cluster management module 10, collect the type information of the software running in each virtual machine in the server, and send the type information to the cluster management module. After the migration command sent by the cluster management module 10 is received, the running virtual machine of similar software type is migrated from the server to the designated server.
  • the server management module 20 runs on each server in the cluster, and is configured to receive the information collection instruction of the cluster management module, and collect the type information of the software running in each virtual machine in the server according to the received instruction, and
  • the server management module 10 includes the information collection module 201 and the migration module 202, and the server management module 20 sends the information collection instruction to the information collection module 201, and the The information collection module 201 collects type information of software running in each virtual machine in the server, such as: After the operating system type information, the operating system version information, the application software information, and the like, the server management module 20 aggregates the collected information and reports the information to the cluster management module 10.
  • the server management module 20 is also responsible for completing the online migration function of the virtual machine. Specifically, the server management module 20 sends the migration instruction to the migration module 202, and the migration module 202 will run a similar software type. The virtual machine is migrated from this server to the specified server.
  • the memory over-allocation management system is based on the page sharing technology, and collects virtual machines of similar software types from the server to the designated server by collecting the software types of the virtual machines running on the servers in the cluster, thereby enabling page sharing between the virtual machines.
  • the effect is better, the memory over-allocation effect is better, and the load capacity of the server in the system is not wasted, the memory utilization of the whole system is achieved, and the resource utilization is optimally matched, so that the memory of the entire cluster system is better distributed. .
  • the cluster management module 10 includes a virtual machine creation module 101.
  • FIG. 7 is a flowchart of an embodiment of creating a virtual machine according to the present invention.
  • the cluster management module 10 is responsible for selecting a server with the best matching software type for the virtual machine to be created; the virtual machine
  • the creating module 101 is configured to determine whether there is a server similar to the virtual machine configuration information to be created when creating the virtual machine:
  • the server that is similar to the configuration information is selected to be a server, and the virtual machine is created;
  • the cluster management module 10 creates a virtual machine according to the instruction, and firstly, according to the static configuration information of the virtual machine to be created (such as the type of the operating system), whether the virtual machine configuration information is similar to the virtual machine configuration information to be created.
  • the server selects a bearable server on a tree structure of each server according to the principle of similarity preference; if not, selects an idle server as a bearable server, creates the virtual machine, and starts the server management.
  • Module 20 simultaneously attaches the selected bearable server to the layer 1 root node of the non-operation type, and finally, starts the virtual machine on the server.
  • the cluster management module 10 further includes a timing module 102 configured to periodically send an information collection instruction to the server management module 20 according to a preset time interval.
  • the cluster management module 10 is further configured to The type information of the software running in the virtual machine in each server that is collected periodically releases a migration instruction, and the tree structure formed by each server is configured.
  • the migration module 202 is also configured to return migration result information to the cluster management module 10.
  • the timing module 102 of the cluster management module 10 periodically sends an information collection command to the server management module 20 running on each bearer server, and according to the information reported by the server management module 20 of each bearer server. And arranging the tree structure formed by each server.
  • the migration of the virtual machine may be performed between the bearer servers.
  • the cluster management module 10 sends a migration command to the corresponding bearer server according to the type information of the software running in the virtual machine in each server.
  • the server management module 20 and processes the corresponding migration result information.
  • the communication channel between the cluster management module 10 and the server management module 20 is one of a local area network channel, an internet channel, a serial port channel, a Fibre Channel, a wireless channel, or a SAN (Storage Area Network) channel.
  • the communication channel between the server management module 20 and the information collection module 201 may also be an IP (Internet Protocol) protocol shared memory channel.
  • IP Internet Protocol
  • FIG. 4 is a schematic structural diagram of an embodiment of a tree structure of a memory over-allocation management system according to the present invention.
  • the tree structure includes no type, the same operating system type, and operations.
  • the system version is the same and the running process is similar to the four levels, but the tree structure of the embodiment of the present invention is not limited to the above several levels, as long as the effect of better allocation of the memory of the cluster system can be achieved;
  • the tree formed by each server The shape structure mainly includes four hierarchical types:
  • Layer 1 node 301 the layer node has only one node, that is, the root node 301, the node is connected to the untyped server, and may be connected to one or more servers, and the mounted server has no specific type, such as: At startup, each server type cannot be subdivided, so it is concentrated on the root node 301 until it can be transferred to the next layer node; or during the virtual machine creation operation, if the server under the root node 301 cannot be carried When a virtual machine is created, the virtual machine is then created on the idle server and attached to the root node 301.
  • the server connected to the root node 301 may also be zero, that is, when all servers hosting the virtual machine can be connected to the layer node below the root node 301, the root node is no longer attached to the server. , only management significance, for example, for management purposes such as search.
  • Layer 2 node 302 which is classified according to the operating system type, but it is not limited to the operating system type shown in FIG. 4, but varies with the type of operation type of each virtual machine in the cluster system. Variety.
  • the layer 2 node 302 has one or more nodes. As shown in the embodiment of FIG. 4, it can be divided into a Windows operating system type node, a Linux operating system type, etc., and each node of the layer may be connected to the server or not. Pick up any server. Specifically, when each server cannot subdivide the type to the lower node of the layer 2 node 302, it points to a node of the corresponding operating system type of the layer 2 node 302.
  • the corresponding layer 2 node will Attaching one or more servers; when all the servers of one of the nodes of the layer 2 node 302 can be subdivided into the lower-level sub-nodes corresponding to the node, then the corresponding server of the node is empty, and thus, the node is only It has administrative meaning, but since it also has child nodes, it still exists.
  • Layer 3 node 303 which is classified according to the operating system version, but it is not limited to the operating system version shown in FIG. 4, but varies with the type of operating system version of each virtual machine in the cluster system. And change. As shown in the embodiment of FIG. 4, it can be divided into WinXP type, Win7 type, RHEL6.0, and ubuntul2.04. This layer node is similar to layer 2 node, and may be connected with 0, 1 or more servers.
  • Layer 4 node 304 the nodes of this layer are mainly classified according to the similarity degree of the running process type, as shown in Fig. 4, can be divided into "chrom-winword" type (meaning that the node of this type runs the chorme.exe process and winwork.
  • the exe process, and the ratio of the two process types running in the total number of processes exceeds the preset threshold.
  • the layer node is a leaf node, only when there are enough virtual machines of the same type. The leaf node will be generated, so the actual server to which it is attached will exist, and may be one or more.
  • FIG. 5 is a flowchart of an embodiment of a memory over-allocation management method according to the present invention
  • FIG. 6 is a flowchart of another embodiment of a memory over-allocation management method according to the present invention.
  • the flowchart of the embodiment of the present invention further provides a memory over-allocation management method, including:
  • S100 Receive an information collection instruction, collect type information of software running in the virtual machine in each server, and classify each server according to the software type of the virtual machine running by each server in the cluster, and dynamically identify the type, and then Each server forms a tree structure;
  • S200 Receive a migration instruction, configure the tree structure, and migrate a running virtual machine with a similar software type from the server to the designated server.
  • FIG. 6 is a flowchart of a first embodiment of a dynamic identification server type according to the present invention.
  • the software type information of the virtual machine includes operating system type information.
  • step S1011 determining whether the ratio of the operating system type similarity of the virtual machine running by each server exceeds a specified threshold: If yes, proceeding to step S1012, identifying the server as the operating system type in which the similarity ratio exceeds a specified threshold Specifically, for example, one virtual machine runs the RHEL6.0 server operating system released by Redhat, and the other virtual machine runs the SUSE 10 server operating system released by suse, because both operating systems Using the Linux kernel, it can be determined that the operating systems of the two virtual machines are of the same type; and assuming that the specified threshold of the virtual machine operating system type similarity ratio is 80%, then 80% of the total virtual machines on the server All have the same operating system class When the type is identified, the server is identified as an operating system type server whose similarity ratio exceed
  • FIG. 7 is a flowchart of a second embodiment of the dynamic identification server type of the present invention.
  • the software type information of the virtual machine further includes an operating system version. The information first proceeds to step S1021.
  • the ratio of the operating system type of the virtual machine running by each server and the similarity of the operating system version exceeds a specified threshold If yes, proceed to step S1022, and the server is identified as the similarity ratio exceeds Specify the operating system version of the threshold server; specifically, for example, a virtual machine running the Win7 operating system released by Microsoft, and the second virtual machine running the Windows 2008 server operating system released by Microsoft, can determine this
  • Specify the operating system version of the threshold server specifically, for example, a virtual machine running the Win7 operating system released by Microsoft, and the second virtual machine running the Windows 2008 server operating system released by Microsoft, can determine this
  • the operating systems of the two virtual machines are of the same type, but the operating system versions are different.
  • the specified threshold of the virtual machine operating system type similarity ratio is assumed to be 80%
  • the specified threshold of the operating system version similarity ratio is 60.
  • step S1011 it is determined whether the ratio of the operating system type similarity of the virtual machine running by the server exceeds a specified threshold, and is dynamically identified as described above in FIG.
  • FIG. 8 is a flowchart of a third embodiment of the dynamic identification server type of the present invention.
  • the software type information of the virtual machine further includes running process information.
  • step S1031 determining whether the ratio of the operating system type, the operating system version, and the similarity of the running process of the virtual machine running by each server exceeds a specified threshold: If yes, proceeding to step S1032, identifying the server as the similarity
  • the server whose running process exceeds the specified threshold specifically, for example, if the operating system type and the operating system version similarity ratio exceed the specified threshold, the running process with the same name is a running process.
  • the server can be identified as the running process in which the similarity ratio exceeds a specified threshold.
  • the server proceeds to step S1021, determines whether the ratio of the operating system type of the virtual machine running by the server, and the similarity of the operating system version exceeds a specified threshold, and performs dynamic identification as described above in FIG.
  • the dynamic identification server type is identified according to the similarity ratio of the virtual machine software type information on the server exceeding a specified threshold, and the server is dynamically identified by the deepest similarity level thereof. .
  • FIG. 9 is a flowchart of another embodiment of a memory over-allocation management method according to the present invention.
  • the receiving information collection instruction further includes: S101. Collecting information according to a preset time interval. Instruction
  • the method further includes: S201: Release a migration instruction according to the type information of the software running in the virtual machine in each server collected at a time.
  • the receiving the migration instruction, the tree structure is configured, and after the virtual machine of the similar software type is migrated from the server to the designated server, the method further includes: S202: returning the migration result information.
  • FIG. 10 is a flowchart of an embodiment of creating a virtual machine according to the present invention
  • the memory over-allocation management method further includes creating a virtual machine, and the process of creating the virtual machine is not limited to Before or after a step of the memory over-allocation management method, when a virtual machine is required to be created, it is determined whether there is a server similar to the configuration information of the virtual machine to be created: If yes, the server whose configuration information is similar is selected as After it can host the server, create the virtual machine;
  • FIG. 11 is a flowchart of another embodiment of creating a virtual machine according to the present invention; the process of creating the virtual machine is as shown in FIG. 11:
  • step S3003 determining whether the operating system type information used by the virtual machine exists in the static configuration information, if yes, proceeding to step S3003, otherwise proceeding to step S3008;
  • step S3004 determining whether the operating system version information used by the virtual machine exists in the static configuration information, if yes, proceeding to step S3004, otherwise proceeding to step S3006;
  • step S3006 determining whether the server can be found, if not found, proceeds to step S3006, if found, then proceeds to step S3010;
  • step S3008 determining whether the server can be found, if not found, proceeds to step S3008, if found, then proceeds to step S3010;
  • step S3009 determining whether the bearer server is found on the leaf node 304 and the root node 301, if found, proceeding to step S3010, otherwise, proceeding to step S3011;
  • step S3012 determining whether the idle server is found, if found, proceeding to step S3013, no shell 'J, Go to step S3015;
  • step S3014 on the found idle server, according to the configuration information, create a new virtual machine, and the server is attached to the root node 301, and proceeds to step S3014;
  • FIG. 12 is a flowchart of an embodiment of the present invention for performing virtual machine migration according to type information of running software.
  • the process of performing virtual machine migration according to the type information of the running software in this embodiment is specifically as shown in FIG. 12:
  • step S2003 If the root node 301 is connected to the server, if yes, proceed to step S2003, otherwise proceed to step S2007;
  • the virtual machine of the virtual machine on the server of each root node 301 is migrated, and the virtual machines with the same operating system type are exchanged and exchanged between the servers; and the total carrying capacity of the server and the total number of virtual machines are calculated. If the difference exceeds the total carrying capacity of one server, the virtual machines on the server with the least number of virtual machines are migrated to other servers in the same priority order as the operating system type; Go to step S2005;
  • S2005 Determine whether each server of the root node 301 can be connected to the layer 2, that is, sequentially check the proportions of the operating systems of the virtual machines on the servers corresponding to the current root node 301, and the operating systems of all the virtual machines on the server. If the ratio of the similarity of the type exceeds the specified threshold, the server can be attached to a node corresponding to the layer 2 node 302. From above, if there are qualified servers, proceed to step S2006, otherwise, proceed to step S2007; S2006, attaching the qualified server to the corresponding layer 2 node 302. If nodes of the same operating system type are already in the layer 2 node 302, the modules may be directly connected in sequence; if the node of the operating system type does not exist, Then create a new node, then mount the server, and proceed to step S2008;
  • step S2007 check layer 2 node 302 is connected to the server, if yes, proceeds to step S2008, otherwise, then proceeds to step S2012;
  • step S2010 determining whether the number of servers connected to the root node 2 node 302 is greater than 1, if yes, proceed to step S2009, otherwise, proceed to step S2010;
  • the server is connected between the servers connected by the single layer 2 node 302 (the virtual machine on each server of the single layer 2 node)
  • the operating system types are mostly the same.
  • the servers are exchanged between the servers.
  • the principle that the operating system type and the version information are the same are merged, and the migration between the servers is exchanged between the two servers.
  • the difference between the total carrying capacity of the server on the layer 2 and the total number of virtual machines is calculated, if the difference exceeds the total of one server.
  • the bearer capability is to migrate the virtual machine on the server with the least number of VMs to the other servers according to the same operating system type and version, and the operating system type is the same as the second priority.
  • the server is set as the idle server.
  • After the merge check the virtual of the merged server Proportional operating system types of the same proportion, if they are lower than the specified threshold, they are reattached to the root node 301, and after hooking to the root node 301, if it is before its corresponding layer 2 node 302 If there is no server, and there is no child node, then the layer 2 node 302 is deleted; and proceeds to step S2010;
  • each server of the decision layer 2 node 302 can be connected to the layer 3, that is: sequentially check the operating system type and the version information of the virtual machine on the server of each layer 2 node 302 in the same proportion, when all the virtual machines on the server Operating system type and operating system version similarity If the ratio exceeds the specified threshold, the server can be connected to a node corresponding to the layer 3 node 303; if there is a qualified server, the process proceeds to step S2011, otherwise, the process proceeds to step S2012;
  • the qualified server is connected to the corresponding layer 3 node 303. If there are nodes with the same operating system type and version in the layer 3 node 303, the modules can be directly connected in sequence, if the operating system type and version do not exist. If the nodes are all the same, a new node is created, and then the server is hooked up, and the process proceeds to step S2013;
  • step S2013 check whether each layer 3 node 303 is connected to the server, if yes, go to step S2013, if not, then go to step S2017;
  • the sum of the servers connected to the decision layer 3 node 303 is greater than 1, if yes, proceed to step S2014, otherwise, go to step S2015;
  • the two sides exchange and transfer each other. Finally, calculate the difference between the total carrying capacity of the server of layer 3 and the total number of virtual machines. If the difference exceeds the carrying capacity of one server, the virtual machine on the server with the least number of virtual machines will be carried. , according to the type of operating system, the version and the running process are the same as the highest priority, the operating system The type and version are the same as the first priority, the operating system types are the same in the order of priority, and the server is set to the idle server. When the merge is performed, the virtual machine operating system type and version of the merged server are checked.
  • each server of the decision layer 3 node 303 can be connected to the layer 4, that is: sequentially check that the operating system type and version of the virtual machine on the server of each layer 3 are the same, and the running process is similar in proportion, when all the servers are on the server If the ratio of the operating system type, operating system version, and running process similarity of the virtual machine exceeds the specified threshold, the server can be attached to the leaf node.
  • step S2016 if there is a qualified server, proceeds to step S2016, otherwise, proceeds to step S2017;
  • the qualified server is connected to the corresponding leaf node 304. If the node with the same operating system type and version and the running process is similar in the leaf node 304, the direct connection may be directly performed if the server does not exist. a node with the same operating system type and version and running a similar process, then create a new node, and then mount the server, and proceed to step S2018;
  • 52018 Perform migration according to the virtual machine operating system type, version, and running process information of the server of each leaf node 304, and calculate a difference between the total server carrying capacity of each leaf node 304 and the total number of virtual machines, if the difference exceeds one server.
  • the total carrying capacity is the same as the operating system type and version, and the running process is similarly optimal.
  • the operating system type and version are the same.
  • the operating system type is the same.
  • the next order is to migrate the virtual machine on the server with the lowest number of virtual machines.
  • step S2019 Go to other servers, and set the server as an idle server; at the same time, after the merge, check the proportion of virtual machines with the same operating system type and version of the running process on the merged server, if the ratio is lower than the specified threshold, Then the server is connected to the corresponding layer 3 node 303, if the server is no longer attached to the corresponding leaf node 304, the leaf node 304 is deleted; and proceeds to step S2019;
  • the memory over-allocation management method is based on page sharing technology, and is received by The software type of the virtual machine running on each server in the cluster, migrating the running virtual machine of similar software type from the server to the specified server, so that the page sharing effect between the virtual machines is better, and the memory over-allocation effect is better.
  • Cloud computing infrastructure service providers, Internet virtual hosting service providers bring considerable hardware cost savings and increased single-server virtual machine operating density, reducing server operations, saving energy and operating costs, reducing environmental stress, and reducing Carbon dioxide emissions have great social and economic benefits.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种内存超分配管理系统及方法,本发明基于页面共享技术,通过收集集群内各服务器运行的虚拟机的软件类型,将运行的软件类型相似的虚拟机从本服务器迁移至指定服务器,从而让虚拟机间的页面共享效果更佳,内存超分配效果更好,同时还保证系统中服务器的承载能力不浪费,达到整个系统的内存利用率,资源利用率的最佳配合,让整个集群系统的内存得到更好的分配,同时,本发明减少了服务器的运行数量,节约了能源和运行成本,减少了环境压力,降低了二氧化碳排放,具有很大的社会效益和经济效益。

Description

一种内存超分配管理系统及方法 技术领域
本发明涉及计算机虚拟化技术领域, 尤其涉及一种内存超分配管理系 统及方法。 背景技术
随着云计算的发展, 作为云计算的基础技术之一的计算机虚拟化技术 也在不断发展, 通过在一台服务器上运行多个虚拟机, 实现对 CPU、 硬盘、 内存等多种资源的共享, 节约企业对计算机的硬件投入, 是虚拟化技术的 进化方向之一。
内存超分配是一种内存分配技术, 会为服务器上的多个虚拟机分配虚 拟内存, 且让各虚拟机看到的内存总和超过服务器的实际物理内存数量。 按照其实现机制的不同, 内存超分配的主要技术有以下几种:
气球驱动技术, 该技术使得虚拟机看到的内存比实际分配的内存要多, 在虚拟机上使用气球驱动将超分配的内存占据, 避免虚拟机内部其他程序 无法分配到超分配的内存, 当虚拟机程序内存不足时, 虚拟机操作系统会 自动启动在虚拟机范围内存页面交换机制;
虚拟机管理器页面交换技术, 当虚拟机的内存页面分配完了以后, 由 虚拟机管理器将部分内存页面保存到磁盘上, 从而释放一些内存供虚拟机 使用, 让虚拟机用户感觉不到内存超分配;
页面共享技术, 以页面为基础, 将不同虚拟机间有相同内容的页面映 射到同一个物理页面。
在上述几种技术中, 气球驱动技术由于容易出现内存不够的情况, 因 此对于虚拟机用户来说, 其体验感比较差; 虚拟机管理器页面交换技术相 对于气球驱动技术来说, 由于虚拟机用户不会感觉到内存不足, 因此其虚 拟机用户的体验感更好, 但是在实际运行中, 其运行性能比气球驱动技术 相对更差, 因为利用虚拟机管理器做页面交换的效率和准确率均低于利用 虚拟机操作系统自身做页面交换; 页面共享技术是其中相对最好的技术, 因为其分配的内存都是实际存在的, 不存在性能下降和用户体验等问题。
目前, 比如 VMware公司提供的透明页面共享功能, Linux内核提供的 内核相同页面合并功能都属于页面共享技术。 虽然页面共享技术有很多优 点, 但是也存在如下缺陷: 其共享效果和虚拟机运行软件的相似程度强相 关, 即, 如果两个虚拟机运行的软件相似度比较大, 则可共享的页面就越 多, 内存超分配的效果就更好; 反之, 如果两个虚拟机运行的软件相似度 较小, 则可共享的页面就少, 内存超分配的效果也较差。 因此, 对于大型 的服务器集群系统来说, 如果各服务器上的虚拟机软件相似度不高, 那么 整个集群系统的内存超分配效果就不好, 带来内存资源的浪费, 以及系统 运行虚拟机个数的减少。 发明内容
本发明实施例主要提供一种内存超分配管理系统及方法, 旨在根据所 收集的集群内各服务器运行的虚拟机的软件类型, 将运行的软件类型相似 的虚拟机从本服务器迁移至指定服务器, 让整个集群系统的内存得到更好 的分配。
本发明实施例提供了一种内存超分配管理系统, 包括:
集群管理模块, 配置为发送信息收集指令, 并收集集群内各服务器运 行的虚拟机的软件类型信息, 根据所述虚拟机的软件类型对各服务器进行 分类并动态标识其类型后, 使所述各服务器形成树形结构, 并在发送迁移 指令后, 对所述树形结构进行调配;
服务器管理模块, 连接所述集群管理模块, 配置为接收所述集群管理 模块发送的信息收集指令后, 收集该服务器中各虚拟机内运行软件的类型 信息, 并向所述集群管理模块上报; 接收所述集群管理模块发送的迁移指 令后, 将运行的软件类型相似的虚拟机从本服务器迁移至指定服务器。
优选地, 所述服务器管理模块包括信息收集模块及迁移模块, 所述信 息收集模块配置为接收所述集群管理模块发送的信息收集指令后, 收集该 服务器中各虚拟机内运行软件的类型信息, 并向所述集群管理模块上报; 所述迁移模块配置为接收所述集群管理模块发送的迁移指令后, 将运行的 软件类型相似的虚拟机从本服务器迁移至指定服务器。
优选地, 所述集群管理模块包括虚拟机创建模块, 配置为在创建虚拟 机时, 判断是否存在与待创建虚拟机配置信息相似的服务器:
若是, 则选择所述与其配置信息相似的服务器为其可承载服务器后, 创建该虚拟机;
否则, 选择一空闲服务器为其可承载服务器后, 创建该虚拟机。
优选地, 所述集群管理模块包括定时模块, 配置为根据预设的时间间 隔, 定时发送信息收集指令至所述服务器管理模块; 所述集群管理模块还 配置为根据其定时收集的各服务器中虚拟机内运行软件的类型信息下达迁 移指令, 对所述各服务器形成的树形结构进行调配。
优选地, 所述迁移模块还配置为将迁移结果信息返回至所述集群管理 模块。
优选地, 所述虚拟机的软件类型信息包括操作系统类型信息、 操作系 统类型信息及运行进程信息。
优选地, 所述树形结构依次包括无类型、 操作系统类型相同、 操作系 统版本相同及运行进程相似的四个层次。
优选地, 所述集群管理模块与所述服务器管理模块之间的通信通道为 局域网通道、 互联网通道、 串口通道、 光纤通道、无线通道或 SAN ( Storage Area Network: 存者 i或网络)通道的一种。
本发明实施例还提供一种内存超分配管理方法, 包括:
接收信息收集指令, 收集各服务器中虚拟机内运行软件的类型信息, 并根据所收集的集群内各服务器运行的虚拟机的软件类型, 对各服务器进 行分类并动态标识其类型后, 使所述各服务器形成树形结构;
接收迁移指令, 对所述树形结构进行调配, 将运行的软件类型相似的 虚拟机从本服务器迁移至指定服务器。
优选地, 所述内存超分配管理方法还包括创建虚拟机, 且在创建虚拟 机时判断是否存在与待创建虚拟机配置信息相似的服务器:
若是, 则选择所述与其配置信息相似的服务器为其可承载服务器后, 创建该虚拟机;
否则, 选择一空闲服务器为其可承载服务器后, 创建该虚拟机。
优选地, 所述接收信息收集指令之前还包括: 根据预设的时间间隔, 定时发送信息收集指令; 所述接收迁移指令之前还包括: 根据定时收集的 各服务器中虚拟机内运行软件的类型信息下达迁移指令。
优选地, 所述接收迁移指令, 对所述树形结构进行调配, 将运行的软 件类型相似的虚拟机从本服务器迁移至指定服务器之后还包括: 将迁移结 果信息返回。
优选地, 所述虚拟机的软件类型信息包括操作系统类型信息, 判断各 服务器运行的虚拟机的操作系统类型相似度的比值是否超过指定阀值: 若是, 标识该服务器为所述相似度比值超过指定阀值的操作系统类型 的服务器;
否则, 标识该服务器为无类型服务器。
优选地, 所述虚拟机的软件类型信息还包括操作系统版本信息, 判断 各服务器运行的虚拟机的操作系统类型、 操作系统版本的相似度的比值是 否均超过指定阀值:
若是, 标识该服务器为所述相似度比值超过指定阀值的操作系统版本 的服务器;
否则, 判断该服务器运行的虚拟机的操作系统类型相似度的比值是否 超过指定阀值, 并进行动态标识。
优选地, 所述虚拟机的软件类型信息还包括运行进程信息, 判断各服 务器运行的虚拟机的操作系统类型、 操作系统版本及运行进程的相似度的 比值是否均超过指定阀值:
若是, 标识该服务器为所述相似度比值超过指定阀值的运行进程的服 务器;
否则, 判断该服务器运行的虚拟机的操作系统类型、 操作系统版本的 相似度的比值是否均超过指定阀值, 并进行动态标识。
本发明实施例通过内存超分配管理系统实现内存超分配管理, 所述内 存超分配管理方法包括: 接收信息收集指令, 收集各服务器中虚拟机内运 行软件的类型信息, 并根据所收集的集群内各服务器运行的虚拟机的软件 类型, 对各服务器进行分类并动态标识其类型后, 使所述各服务器形成树 形结构; 接收迁移指令, 对所述树形结构进行调配, 将运行的软件类型相 似的虚拟机从本服务器迁移至指定服务器。 本发明实施例基于页面共享技 术, 通过收集集群内各服务器运行的虚拟机的软件类型, 将运行的软件类 型相似的虚拟机从本服务器迁移至指定服务器, 从而让虚拟机间的页面共 享效果更佳, 内存超分配效果更好, 同时还保证系统中服务器的承载能力 不浪费, 达到整个系统的内存利用率, 资源利用率的最佳配合, 让整个集 群系统的内存得到更好的分配, 同时, 本发明实施例减少了服务器的运行 数量, 节约了能源和运行成本, 减少了环境压力, 降低了二氧化碳排放, 具有很大的社会效益和经济效益。 附图说明
图 1是本发明内存超分配管理系统一实施例的结构示意图;
图 2是本发明集群管理模块一实施例的结构示意图;
图 3是本发明服务器管理模块一实施例的结构示意图;
图 4是本发明内存超分配管理系统树形结构一实施例的结构示意图; 图 5是本发明内存超分配管理方法一实施例的流程图;
图 6是本发明动态标识服务器类型第一实施例的流程图;
图 7是本发明动态标识服务器类型第二实施例的流程图;
图 8是本发明动态标识服务器类型第三实施例的流程图;
图 9是本发明内存超分配管理方法另一实施例的流程图;
图 10是本发明创建虚拟机一实施例的流程图;
图 11是本发明创建虚拟机另一实施例的流程图;
图 12是本发明根据运行软件的类型信息进行虚拟机迁移一实施例的流 程图。
本发明目的的实现、 功能特点及优点将结合实施例, 参照附图做进一 步说明。 具体实施方式
以下结合说明书附图及具体实施例进一步说明本发明的技术方案。 应 当理解, 此处所描述的具体实施例仅仅用以解释本发明, 并不配置为限定 本发明。
参照图 1及图 3,图 1是本发明内存超分配管理系统一实施例的结构示 意图; 图 2是本发明集群管理模块一实施例的结构示意图; 图 3是本发明 服务器管理模块一实施例的结构示意图; 本发明实施例提供了一种内存超 分配管理系统, 包括:
集群管理模块 10, 配置为发送信息收集指令, 并收集集群内各服务器 运行的虚拟机的软件类型信息, 根据所述虚拟机的软件类型对各服务器进 行分类并动态标识其类型后, 使所述各服务器形成树形结构, 并在发送迁 移指令后, 对所述树形结构进行调配。 具体的, 本实施例中, 所述虚拟机 的软件类型信息包括操作系统类型信息、 操作系统类型信息及运行进程信 息, 但本发明实施例并不限定于上述几种软件类型信息, 只要能达到将集 群系统的内存更好分配的效果即可。 所述集群管理模块 10运行在集群管理 服务器, 负责对集群内各服务器进行分类, 根据服务器上运行的虚拟机软 件类型, 对各服务器进行分类并动态标识其类型后, 使系统内所有服务器 按照所述类型标识组织形成一树形结构; 同时负责定时收集系统内各虚拟 机的软件类型信息, 并根据收集的信息, 将软件类型相似的虚拟机尽量调 配迁移到指定的同一的服务器上, 并在该次调配完成后, 根据各服务器上 运行的虚拟机的软件类型的比例, 更新各服务器的动态标识, 从而形成新 的树形结构, 以方便虚拟机的调配和服务器的管理, 内存得到更好的分配。 同时, 通过迁移的方式保证系统内各承载服务器的总空闲能力不超过一个 服务器;
服务器管理模块 20, 连接所述集群管理模块 10, 配置为接收所述集群 管理模块 10发送的信息收集指令后, 收集该服务器中各虚拟机内运行软件 的类型信息, 并向所述集群管理模块 10上报; 接收所述集群管理模块 10 发送的迁移指令后, 将运行的软件类型相似的虚拟机从本服务器迁移至指 定服务器。 所述服务器管理模块 20运行在集群内的各服务器上, 用以负责 接收集群管理模块的信息收集指令, 并按照收到的指令, 收集该服务器中 各虚拟机内运行软件的类型信息,并向所述集群管理模块 10上报;具体的, 所述服务器管理模块 20包括信息收集模块 201及迁移模块 202, 所述服务 器管理模块 20将所述信息收集指令发送至信息收集模块 201, 并通过所述 信息收集模块 201 收集该服务器中各虚拟机内运行软件的类型信息, 如: 虚拟机运行的操作系统类型信息, 操作系统版本信息, 应用软件信息等, 之后, 所述服务器管理模块 20将收集的信息汇总, 并上报至所述集群管理 模块 10。同时,所述服务器管理模块 20还负责完成虚拟机的在线迁移功能, 具体的, 所述服务器管理模块 20将所述迁移指令发送至迁移模块 202, 所 述迁移模块 202将运行的软件类型相似的虚拟机从本服务器迁移至指定服 务器。
本内存超分配管理系统基于页面共享技术, 通过收集集群内各服务器 运行的虚拟机的软件类型, 将运行的软件类型相似的虚拟机从本服务器迁 移至指定服务器, 从而让虚拟机间的页面共享效果更佳, 内存超分配效果 更好, 同时还保证系统中服务器的承载能力不浪费, 达到整个系统的内存 利用率, 资源利用率的最佳配合, 让整个集群系统的内存得到更好的分配。
如图 2所示, 所述集群管理模块 10包括虚拟机创建模块 101, 如图 7 所示, 图 7是本发明创建虚拟机一实施例的流程图; 所述虚拟机创建的过 程并不限定于在所述内存超分配管理方法的某个步骤之前或之后, 当需要 进行虚拟机的创建时, 所述集群管理模块 10负责为待创建虚拟机选择软件 类型最匹配的服务器; 所述虚拟机创建模块 101 配置为在创建虚拟机时, 判断是否存在与待创建虚拟机配置信息相似的服务器:
若是, 则选择所述与其配置信息相似的服务器为其可承载服务器后, 创建该虚拟机;
否则, 选择一空闲服务器为其可承载服务器后, 创建该虚拟机。
具体的, 所述集群管理模块 10根据指令创建虚拟机, 在创建时, 首先 根据待创建虚拟机的静态配置信息(如操作系统类型等信息), 判断是否存 在与待创建虚拟机配置信息相似的服务器, 按照类型相似优先的原则, 在 所述各服务器形成树形结构上选择可承载服务器; 如果没有找到, 则选择 一个空闲服务器为可承载服务器, 创建该虚拟机, 并启动所述服务器管理 模块 20,同时将所选择的可承载服务器挂接到无运行类型的层 1根节点上, 最后, 在该服务器上启动虚拟机。
如图 2所示, 所述集群管理模块 10还包括定时模块 102, 配置为根据 预设的时间间隔, 定时发送信息收集指令至所述服务器管理模块 20; 所述 集群管理模块 10还配置为根据其定时收集的各服务器中虚拟机内运行软件 的类型信息下达迁移指令, 对所述各服务器形成的树形结构进行调配。 所 述迁移模块 202还配置为将迁移结果信息返回至所述集群管理模块 10。 具 体的, 所述集群管理模块 10的定时模块 102定时下发信息收集命令至在各 承载服务器上运行的所述服务器管理模块 20上, 并根据各承载服务器的所 述服务器管理模块 20上报的信息, 对所述各服务器形成的树形结构进行调 配。 在调配的过程中, 可能需要在各承载服务器间进行虚拟机的迁移, 所 述集群管理模块 10会根据其定时收集的各服务器中虚拟机内运行软件的类 型信息下达迁移指令至相应的承载服务器的所述服务器管理模块 20, 并处 理相应的迁移结果信息。
所述集群管理模块 10与所述服务器管理模块 20之间的通信通道为局 域网通道、互联网通道、串口通道、光纤通道、无线通道或 SAN( Storage Area Network: 存储域网络)通道的一种。 但其并不限于以上所例举的类型, 且 所述服务器管理模块 20和信息收集模块 201之间的通信通道也可以为 IP ( Internet Protocol: 网络之间互连的协议)通道, 共享内存通道的一种, 但 并不局限于所例举的类型。
进一步的, 如图 4所示, 图 4是本发明内存超分配管理系统树形结构 一实施例的结构示意图; 本实施例中, 所述树形结构依次包括无类型、 操 作系统类型相同、 操作系统版本相同及运行进程相似的四个层次, 但本发 明实施例的树形结构并不限定于上述几个层次, 只要能达到将集群系统的 内存更好分配的效果即可; 具体的, 本实施例中, 所述各服务器形成的树 形结构主要包括四个层次类型:
层 1节点 301, 该层节点只有一个节点, 即根节点 301, 该节点挂接无 类型的服务器, 可能挂接一个或多个服务器, 挂接的服务器都没有具体的 类型, 如: 当系统刚启动时, 各服务器类型无法细分, 于是集中于所述根 节点 301,直至可以转到下一层节点为止;或者在虚拟机的创建操作过程中, 如果根节点 301 下面的服务器都不能承载待创建虚拟机时, 于是会将该虚 拟机创建到空闲服务器上, 并挂接于所述根节点 301。 所述根节点 301挂接 的服务器也可能为 0个, 即: 当所有承载虚拟机的服务器都可以挂接于所 述根节点 301 以下的层节点时, 所述根节点就不再挂接服务器, 仅有管理 意义, 比如, 用于搜索等管理作用。
层 2节点 302, 该层节点主要按照操作系统类型来分类, 但其并不局限 于图 4 中所示的操作系统类型, 而是会随着集群系统中各虚拟机的操作类 型的种类变化而变化。 所述层 2节点 302会有一个或多个节点, 如图 4实 施例所示, 可以分为 Windows操作系统类型节点, Linux操作系统类型等, 该层每个节点都可能挂接服务器或不挂接任何一个服务器。 具体的, 当各 服务器无法细分类型到所述层 2节点 302的下层节点时,就会指向所述层 2 节点 302的相应操作系统类型的某一个节点, 此时, 相应的层 2节点会挂 接一个或多个服务器; 当所述层 2节点 302的某一个节点的所有服务器都 可以细分到该节点对应的下层子节点时, 那么该节点对应服务器为空, 于 是, 所述节点仅具有管理意义, 但由于其还具有子节点, 因此其仍然存在。
层 3节点 303, 该层节点主要按照操作系统版本来分类, 但其并不局限 于图 4 中所示的操作系统版本, 而是会随着集群系统中各虚拟机的操作系 统版本的种类变化而变化。 如图 4中实施例所示, 可以分为 WinXP类型, Win7类型, RHEL6.0, ubuntul2.04, 该层节点和层 2节点相似, 可能挂接 0个、 1个或多个服务器。 层 4节点 304, 该层的节点主要按照运行进程类型相似程度来分类, 如 图 4中所示, 可以分为 "chrom-winword" 类型 (表示该类型节点都运行了 chorme.exe进程和 winwork.exe进程, 且其运行的两个进程类型占总进程数 量的比值超过了预先设定的指定阀值) 等, 该层节点为叶子节点, 只有当 有足够多的相同类型虚拟机存在时, 才会生成叶子节点, 所以, 其挂接的 实际服务器是一定会存在的, 可能 1个, 也可能多个。
参照图 4至及图 5,图 5是本发明内存超分配管理方法一实施例的流程 图; 图 6是本发明内存超分配管理方法另一实施例的流程图; 图 7是本发 明创建虚拟机一实施例的流程图; 本发明实施例还提供一种内存超分配管 理方法, 包括:
S100、 接收信息收集指令, 收集各服务器中虚拟机内运行软件的类型 信息, 并根据所收集的集群内各服务器运行的虚拟机的软件类型, 对各服 务器进行分类并动态标识其类型后, 使所述各服务器形成树形结构;
S200、 接收迁移指令, 对所述树形结构进行调配, 将运行的软件类型 相似的虚拟机从本服务器迁移至指定服务器。
进一步的, 如图 6所示, 图 6是本发明动态标识服务器类型第一实施 例的流程图; 图 6 中所示第一实施例中, 所述虚拟机的软件类型信息包括 操作系统类型信息, 首先进入步骤 S1011、判断各服务器运行的虚拟机的操 作系统类型相似度的比值是否超过指定阀值: 若是, 进入步骤 S1012、 标识 该服务器为所述相似度比值超过指定阀值的操作系统类型的服务器; 具体 的, 比如, 一个虚拟机运行的是 redhat公司发布的 RHEL6.0服务器操作系 统, 而另一个虚拟机运行的是 suse公司发布的 SUSE 10服务器操作系统, 因为这两种操作系统都使用 Linux内核,所以可以判定这两个虚拟机的操作 系统类型相同; 而假设所述虚拟机操作系统类型相似度比值的指定阀值为 80%, 则, 当服务器上的虚拟机总和的 80%以上都具有相同的操作系统类 型时, 标识该服务器为所述相似度比值超过指定阀值的操作系统类型的服 务器; 否则, 进入步骤 S1013、 标识该服务器为无类型服务器。
进一步的, 如图 7所示, 图 7是本发明动态标识服务器类型第二实施 例的流程图; 图 7 中所示第二实施例中, 所述虚拟机的软件类型信息还包 括操作系统版本信息, 首先进入步骤 S1021、判断各服务器运行的虚拟机的 操作系统类型、 操作系统版本的相似度的比值是否均超过指定阀值: 若是, 进入步骤 S1022、标识该服务器为所述相似度比值超过指定阀值的操作系统 版本的服务器; 具体的, 比如, 一个虚拟机运行的是微软公司发布的 Win7 操作系统, 第二个虚拟机运行的是微软公司发布的 Windows2008服务器操 作系统, 则可判定这两个虚拟机的操作系统类型相同, 但操作系统版本不 同; 同时, 当假设所述虚拟机操作系统类型相似度比值的指定阀值为 80%, 操作系统版本相似度比值的指定阀值为 60%; 则, 当服务器上的虚拟机总 和的 80%以上都具有相同的操作系统类型, 且虚拟机总和的 60%以上都具 有相同的操作系统版本类型时, 标识该服务器为所述相似度比值超过指定 阀值的操作系统版本的服务器; 而当该服务器并不具备超过上述阀值的相 似度比值时, 则进入步骤 S1011、 否则, 判断该服务器运行的虚拟机的操作 系统类型相似度的比值是否超过指定阀值, 并如上图 6 中所述进行动态标 识。
进一步的, 如图 8所示, 图 8是本发明动态标识服务器类型第三实施 例的流程图; 图 8 中所示第三实施例中, 所述虚拟机的软件类型信息还包 括运行进程信息, 首先进入步骤 S1031、判断各服务器运行的虚拟机的操作 系统类型、 操作系统版本及运行进程的相似度的比值是否均超过指定阀值: 若是,进入步骤 S1032、标识该服务器为所述相似度比值超过指定阀值的运 行进程的服务器; 具体的, 比如, 在上述操作系统类型、 操作系统版本相 似度比值均超过指定阀值的基础下, 名称相同的运行进程为一个运行进程 类型, 此时, 假设一个虚拟机总共有 10个运行进程类型, 另一个虚拟机总 共有 12个运行进程类型,而该两个虚拟机共有 8个运行进程类型是相同的, 假设指定阈值设置为 50%, 则, 就可以判定该两个虚拟机的操作系统类型 相同, 操作系统版本相同, 应用进程类型相似, 此时, 可标识该服务器为 所述相似度比值超过指定阀值的运行进程的服务器;否则,进入步骤 S1021、 判断该服务器运行的虚拟机的操作系统类型、 操作系统版本的相似度的比 值是否均超过指定阀值, 并如上图 7中所述进行动态标识。
由上所述, 所述的内存超分配管理方法, 动态标识服务器类型是根据 服务器上虚拟机软件类型信息的相似比值超过指定阀值来进行标识, 并且, 以其最深的相似层次来动态标识服务器。
进一步的, 如图 9所示, 图 9是本发明内存超分配管理方法另一实施 例的流程图; 所述接收信息收集指令之前还包括: S101、 根据预设的时间 间隔, 定时发送信息收集指令;
所述接收迁移指令之前还包括: S201、 根据定时收集的各服务器中虚 拟机内运行软件的类型信息下达迁移指令。
所述接收迁移指令, 对所述树形结构进行调配, 将运行的软件类型相 似的虚拟机从本服务器迁移至指定服务器之后还包括: S202、 将迁移结果 信息返回。
进一步的, 如图 10所示, 图 10是本发明创建虚拟机一实施例的流程 图; 所述内存超分配管理方法还包括创建虚拟机, 所述虚拟机创建的过程 并不限定于在所述内存超分配管理方法的某个步骤之前或之后, 当需要进 行虚拟机的创建时, 判断是否存在与待创建虚拟机配置信息相似的服务器: 若是, 则选择所述与其配置信息相似的服务器为其可承载服务器后, 创建该虚拟机;
否则, 选择一空闲服务器为其可承载服务器后, 创建该虚拟机。 具体的, 参照图 11, 图 11是本发明创建虚拟机另一实施例的流程图; 所述虚拟机的创建过程如图 11所示:
53001、 读取待创建虚拟机的静态配置信息;
53002、 判断所述静态配置信息中是否存在该虚拟机使用的操作系统类 型信息, 如果存在, 进入步骤 S3003 , 否则转入步骤 S3008;
53003、 判断所述静态配置信息中是否存在该虚拟机使用的操作系统版 本信息, 如果存在, 进入步骤 S3004, 否则转入步骤 S3006;
53004、 按从左到右的顺序 (并不限于该顺序), 在层 3节点 303上寻 找相同操作系统类型和版本的服务器, 并检查符合条件的服务器是否可以 再承载一个虚拟机, 从而以此服务器作为待创建虚拟机的可承载服务器;
53005、 判断是否找到可承载服务器, 如果并未找到, 进入步骤 S3006, 如果找到, 则转入步骤 S3010;
53006、 按从左到右的顺序 (并不限于该顺序), 在层 2节点 302上寻 找相同操作系统类型的服务器, 并检查符合条件的服务器是否可以再承载 一个虚拟机, 从而以此服务器作为待创建虚拟机的可承载服务器;
53007、 判断是否找到可承载服务器, 如果并未找到, 进入步骤 S3008 , 如果找到, 则转入步骤 S3010;
53008、 从左到右的顺序(并不限于该顺序), 先检查叶子节点 304, 最 后检查根节点 301, 在这些节点上寻找待创建虚拟机的可承载服务器;
S3009、 判断在所述叶子节点 304和所述根节点 301上是否找到可承载 服务器, 如果找到, 进入步骤 S3010, 否则, 转入步骤 S3011 ;
53010、 在找到的可承载服务器上, 根据配置信息, 创建新的虚拟机, 并转入步骤 S3014;
53011、 从系统中寻找空闲服务器;
S3012、 判断是否找到空闲服务器, 如果找到, 进入步骤 S3013 , 否贝 'J, 转入步骤 S3015;
53013、 在找到的空闲服务器上, 根据配置信息, 创建新的虚拟机, 并 将该服务器挂接于根节点 301, 并转入步骤 S3014;
53014、 返回虚拟机创建成功的信息, 流程结束;
S3015、 返回虚拟机创建失败的信息, 流程结束。
进一步的, 参照图 12, 图 12是本发明根据运行软件的类型信息进行虚 拟机迁移一实施例的流程图。 本实施例所述根据运行软件的类型信息进行 虚拟机迁移的流程具体如图 12所示:
52001、 收集各服务器中虚拟机内运行软件的类型信息, 并进入步骤 S2002;
52002、检查根节点 301下是否挂接服务器, 如果有, 进入步骤 S2003 , 否则转入步骤 S2007;
52003、 判断根节点 301挂接的服务器数量是否大于 1, 如果是, 进入 步骤 S2004, 否则转入步骤 S2005;
S2004、根据各根节点 301下服务器上虚拟机的操作系统类型进行迁移, 将操作系统类型相同的虚拟机在服务器间两两相互交换迁移; 同时, 计算 服务器的总承载能力和总虚拟机数量的差值, 如果其差值超过一个服务器 的总承载能力, 则将承载虚拟机数量最少的服务器上的虚拟机按照操作系 统类型相同优先的顺序, 将其上的虚拟机迁移到其他服务器上; 并进入步 骤 S2005;
S2005、 判定根节点 301的各服务器是否可以挂接到层 2, 即: 依次检 查当前根节点 301 对应的各服务器上虚拟机的操作系统类型相同的比例, 当服务器上的所有虚拟机的操作系统类型的相似度的比值超过指定阀值, 则该服务器可以挂接到层 2节点 302对应的某一节点上。 由上, 如果有符 合条件的服务器, 进入步骤 S2006, 否则, 转入步骤 S2007; S2006、 将符合条件的服务器挂接到相应的层 2节点 302, 如果在层 2 节点 302 中已有相同操作系统类型的节点, 可以直接顺序挂接; 如果并不 存在该操作系统类型的节点, 则新建一个节点, 再将所述服务器挂接, 并 进入步骤 S2008;
S2007、检查层 2节点 302上是否挂接服务器,如果有,进入步骤 S2008, 否则, 则转入步骤 S2012;
52008、 判断根层 2节点 302挂接的服务器数量是否大于 1, 如果是, 进入步骤 S2009, 否则, 转入步骤 S2010;
52009、根据各层 2节点 302下服务器上虚拟机的操作系统类型和版本 信息进行迁移, 在单个层 2节点 302挂接的服务器之间 (单个层 2节点所 挂的各服务器上的虚拟机的操作系统类型大部分都是相同的), 按照虚拟机 的操作系统类型和版本信息相同合并的原则, 在服务器间两两相互交换迁 移; 同时, 在整个层 2节点 302之间, 按照虚拟机的操作系统类型和版本 信息相同合并的原则, 在服务器间两两相互交换迁移; 最后, 计算所述层 2 上服务器的总承载能力和总虚拟机数量的差值, 如果差值超过一个服务器 的总承载能力, 则将承载虚拟机数量最少的服务器上的虚拟机, 按照操作 系统类型和版本相同最优先, 操作系统类型相同次优先的顺序, 迁移到其 他服务器上, 该服务器则设置为空闲服务器; 当进行了合并后, 再检查合 并了的服务器的虚拟机操作系统类型相同的比例, 如果低于指定阀值, 则 将它们重新挂接至根节点 301下, 并且在挂接至到根节点 301后, 如果其 之前其对应的层 2节点 302下已无服务器, 且也无子节点, 则删除该层 2 节点 302; 并进入步骤 S2010;
52010、 判定层 2节点 302的各服务器是否可以挂接到层 3, 即: 依次 检查各层 2节点 302的服务器上虚拟机的操作系统类型和版本信息相同的 比例, 当服务器上的所有虚拟机的操作系统类型及操作系统版本的相似度 的比值均超过指定阀值, 则该服务器可以挂接到层 3节点 303对应的某一 节点上; 如果有符合条件服务器, 进入步骤 S2011 , 否则, 转入步骤 S2012;
52011、 将符合条件的服务器挂接到相应的层 3节点 303, 如果在层 3 节点 303 中存在操作系统类型和版本都相同的节点, 可直接顺序挂接, 如 果并不存在操作系统类型和版本都相同的节点, 则新建一个节点, 再将所 述服务器挂接, 并进入步骤 S2013 ;
52012、检查各层 3节点 303是否挂接服务器,如果有,进入步骤 S2013 , 如果没有, 则转入步骤 S2017;
52013、 判定层 3节点 303挂接的服务器的总和是否大于 1, 如果是, 则进入步骤 S2014 , 否则, 则转到步骤 S2015;
52014、 根据各层 3节点 303下服务器上虚拟机的操作系统类型、 版本 及运行进程信息进行迁移, 在单个层 3节点 303挂接的服务器之间 (单个 层 3 节点所挂的各服务器上的虚拟机的操作系统类型和版本大部分都是相 同的), 按照虚拟机的操作系统类型和版本相同, 且运行进程相似 (当服 务器上的虚拟机的相同运行进程的比值均超过指定阀值, 就认为运行进程 相似)进行合并的原则, 在服务器间两两相互交换迁移; 然后, 在整个层 3 节点 303之间, 按照虚拟机的操作系统类型, 版本和运行进程相同合并的 原则, 在服务器间两两相互交换迁移; 最后, 计算层 3 的服务器的总承载 能力和总虚拟机数量的差值, 如果差值超过一个服务器的承载能力, 则将 承载虚拟机数量最少的服务器上的虚拟机, 按照操作系统类型, 版本和运 行进程相同最优先, 操作系统类型和版本相同次优先, 操作系统类型相同 再次优先的顺序, 迁移到其他服务器上, 该服务器则设置为空闲服务器; 当进行了合并后, 再检查合并了的服务器的虚拟机操作系统类型和版本相 同的比例, 如果低于指定阀值, 则将它们重新挂接至对应的层 2节点 302, 在挂接至所述层 2节点 302后, 如果其之前对应的层 3节点 303已无服务 器, 且也无子节点, 则删除该层 3节点 303 ; 并进入步骤 S2015;
52015、 判定层 3节点 303的各服务器是否可以挂接到层 4, 即: 依次 检查各层 3 的服务器上虚拟机的操作系统类型和版本相同, 且运行进程相 似的比例, 当服务器上的所有虚拟机的操作系统类型、 操作系统版本及运 行进程的相似度的比值均超过指定阀值, 则该服务器可以挂接到叶子节点
304对应的某一节点; 如果有符合条件服务器, 进入步骤 S2016, 否则, 转 入步骤 S2017;
52016、 将符合条件的服务器挂接到相应的叶子节点 304, 如果在叶子 节点 304 中已有操作系统类型和版本相同且运行进程相似的节点, 可直接 顺序挂接, 如果并不存在与该服务器的操作系统类型和版本相同且运行进 程相似的节点, 则新建一个节点, 再将服务器挂接, 进入步骤 S2018;
52017、 检查是否存在叶子节点 304, 如果存在, 进入步骤 S2018 , 否 则, 转入步骤 S2019;
52018、 根据各叶子节点 304的服务器的虚拟机操作系统类型、 版本及 运行进程信息进行迁移, 计算各叶子节点 304 的总的服务器承载能力和总 虚拟机数量的差值, 如果差值超过一个服务器的总承载能力, 则按照操作 系统类型、 版本相同且运行进程相似最优, 操作系统类型和版本相同其次, 操作系统类型相同再次的先后顺序, 将承载虚拟机数量最少的服务器上的 虚拟机迁移到其他服务器上, 并该服务器设置为空闲服务器; 同时, 在合 并过后, 检查已合并的服务器上操作系统类型和版本相同且运行进程类型 相似的虚拟机的比例, 如果比例低于指定阀值, 则将该服务器挂接到对应 的层 3节点 303,如果该服务器之前对应的叶子节点 304下已经不再挂接服 务器, 则删除该叶子节点 304; 并进入步骤 S2019;
52019、 结束处理流程。
本发明实施例所述内存超分配管理方法基于页面共享技术, 通过所收 集的集群内各服务器运行的虚拟机的软件类型, 将运行的软件类型相似的 虚拟机从本服务器迁移至指定服务器, 从而让虚拟机间的页面共享效果更 佳, 内存超分配效果更好, 同时还保证系统中服务器的承载能力不浪费, 达到整个系统的内存利用率, 资源利用率的最佳配合, 让整个集群系统的 内存得到更好的分配, 通过本发明实施例的应用, 可以为云计算的基础设 施服务提供商, 互联网虚拟主机服务提供商带来可观的硬件成本节约和单 服务器虚拟机运行密度提高, 减少服务器运行数量, 节约了能源和运行成 本, 减少了环境压力, 降低了二氧化碳排放, 具有很大的社会效益和经济 效益。
以上所述仅为本发明的优选实施例, 并非因此限制其专利范围, 凡是 利用本发明说明书及附图内容所作的等效结构或等效流程变换, 直接或间 接运用在其他相关的技术领域, 均同理包括在本发明的专利保护范围内。

Claims

权利要求书
1、 一种内存超分配管理系统, 包括:
集群管理模块, 配置为发送信息收集指令, 并收集集群内各服务器运 行的虚拟机的软件类型信息, 根据所述虚拟机的软件类型对各服务器进行 分类并动态标识其类型后, 使所述各服务器形成树形结构, 并在发送迁移 指令后, 对所述树形结构进行调配;
服务器管理模块, 连接所述集群管理模块, 配置为接收所述集群管理 模块发送的信息收集指令后, 收集该服务器中各虚拟机内运行软件的类型 信息, 并向所述集群管理模块上报; 接收所述集群管理模块发送的迁移指 令后, 将运行的软件类型相似的虚拟机从本服务器迁移至指定服务器。
2、 根据权利要求 1所述的内存超分配管理系统, 其中, 所述服务器管 理模块包括信息收集模块及迁移模块, 所述信息收集模块配置为接收所述 集群管理模块发送的信息收集指令后, 收集该服务器中各虚拟机内运行软 件的类型信息, 并向所述集群管理模块上报; 所述迁移模块配置为接收所 述集群管理模块发送的迁移指令后, 将运行的软件类型相似的虚拟机从本 服务器迁移至指定服务器。
3、 根据权利要求 1所述的内存超分配管理系统, 其中, 所述集群管理 模块包括虚拟机创建模块, 配置为在创建虚拟机时, 判断是否存在与待创 建虚拟机配置信息相似的服务器:
若是, 则选择所述与其配置信息相似的服务器为其可承载服务器后, 创建该虚拟机;
否则, 选择一空闲服务器为其可承载服务器后, 创建该虚拟机。
4、 根据权利要求 1所述的内存超分配管理系统, 其中, 所述集群管理 模块包括定时模块, 配置为根据预设的时间间隔, 定时发送信息收集指令 至所述服务器管理模块; 所述集群管理模块还配置为根据其定时收集的各 服务器中虚拟机内运行软件的类型信息下达迁移指令, 对所述各服务器形 成的树形结构进行调配。
5、 根据权利要求 1所述的内存超分配管理系统, 其中, 所述迁移模块 还配置为将迁移结果信息返回至所述集群管理模块。
6、 根据权利要求 1所述的内存超分配管理系统, 其中, 所述虚拟机的 软件类型信息包括操作系统类型信息、 操作系统类型信息及运行进程信息。
7、 根据权利要求 1所述的内存超分配管理系统, 其中, 所述树形结构 依次包括无类型、 操作系统类型相同、 操作系统版本相同及运行进程相似 的四个层次。
8、 根据权利要求 1所述的内存超分配管理系统, 其中, 所述集群管理 模块与所述服务器管理模块之间的通信通道为局域网通道、 互联网通道、 串口通道、 光纤通道、 无线通道或 SAN ( Storage Area Network: 存储域网 络)通道的一种。
9、 一种内存超分配管理方法, 包括:
接收信息收集指令, 收集各服务器中虚拟机内运行软件的类型信息, 并根据所收集的集群内各服务器运行的虚拟机的软件类型信息, 对各服务 器进行分类并动态标识其类型后, 使所述各服务器形成树形结构;
接收迁移指令, 对所述树形结构进行调配, 将运行的软件类型相似的 虚拟机从本服务器迁移至指定服务器。
10、 根据权利要求 9所述的内存超分配管理方法, 其中, 所述内存超 分配管理方法还包括创建虚拟机, 且在创建虚拟机时判断是否存在与待创 建虚拟机配置信息相似的服务器:
若是, 则选择所述与其配置信息相似的服务器为其可承载服务器后, 创建该虚拟机;
否则, 选择一空闲服务器为其可承载服务器后, 创建该虚拟机。
11、 根据权利要求 9 所述的内存超分配管理方法, 其中, 所述接收信 息收集指令之前还包括: 根据预设的时间间隔, 定时发送信息收集指令; 所述接收迁移指令之前还包括: 根据定时收集的各服务器中虚拟机内 运行软件的类型信息下达迁移指令。
12、 根据权利要求 9所述的内存超分配管理方法, 其中, 所述接收迁 移指令, 对所述树形结构进行调配, 将运行的软件类型相似的虚拟机从本 服务器迁移至指定服务器之后还包括: 将迁移结果信息返回。
13、 根据权利要求 9所述的内存超分配管理方法, 其中, 所述虚拟机 的软件类型信息包括操作系统类型信息, 判断各服务器运行的虚拟机的操 作系统类型相似度的比值是否超过指定阀值:
若是, 标识该服务器为所述相似度比值超过指定阀值的操作系统类型 的服务器;
否则, 标识该服务器为无类型服务器。
14、 根据权利要求 13所述的内存超分配管理方法, 其中, 所述虚拟机 的软件类型信息还包括操作系统版本信息, 判断各服务器运行的虚拟机的 操作系统类型、 操作系统版本的相似度的比值是否均超过指定阀值:
若是, 标识该服务器为所述相似度比值超过指定阀值的操作系统版本 的服务器;
否则, 判断该服务器运行的虚拟机的操作系统类型相似度的比值是否 超过指定阀值, 并进行动态标识。
15、 根据权利要求 14所述的内存超分配管理方法, 其中, 所述虚拟机 的软件类型信息还包括运行进程信息, 判断各服务器运行的虚拟机的操作 系统类型、 操作系统版本及运行进程的相似度的比值是否均超过指定阀值: 若是, 标识该服务器为所述相似度比值超过指定阀值的运行进程的服 务器; 否则, 判断该服务器运行的虚拟机的操作系统类型、 操作系统版本的 相似度的比值是否均超过指定阀值, 并进行动态标识。
PCT/CN2014/073481 2013-03-15 2014-03-14 一种内存超分配管理系统及方法 Ceased WO2014139470A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP14763336.6A EP2975515A4 (en) 2013-03-15 2014-03-14 SYSTEM AND METHOD FOR MANAGING EXCESSIVE MEMORY DISTRIBUTION
US14/774,690 US9697053B2 (en) 2013-03-15 2014-03-14 System and method for managing excessive distribution of memory

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201310084341.7 2013-03-15
CN201310084341.7A CN104050008B (zh) 2013-03-15 2013-03-15 一种内存超分配管理系统及方法

Publications (1)

Publication Number Publication Date
WO2014139470A1 true WO2014139470A1 (zh) 2014-09-18

Family

ID=51502913

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2014/073481 Ceased WO2014139470A1 (zh) 2013-03-15 2014-03-14 一种内存超分配管理系统及方法

Country Status (4)

Country Link
US (1) US9697053B2 (zh)
EP (1) EP2975515A4 (zh)
CN (1) CN104050008B (zh)
WO (1) WO2014139470A1 (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9300686B2 (en) 2013-06-28 2016-03-29 Fireeye, Inc. System and method for detecting malicious links in electronic messages
CN104991825B (zh) * 2015-03-27 2019-07-05 北京天云融创软件技术有限公司 一种基于负载感知的Hypervisor资源超分配及动态调整方法及系统
US9916174B2 (en) 2015-05-27 2018-03-13 International Business Machines Corporation Updating networks having virtual machines with migration information
US9760398B1 (en) * 2015-06-29 2017-09-12 Amazon Technologies, Inc. Automatic placement of virtual machine instances
WO2017105376A1 (en) * 2015-12-14 2017-06-22 Vce Company, Llc Methods, systems, and computer readable mediums for workload clustering
CN106936874B (zh) * 2015-12-31 2019-05-31 北京金山云网络技术有限公司 物理资源分配方法、装置及系统
CN107306196A (zh) * 2016-04-20 2017-10-31 中兴通讯股份有限公司 虚拟化服务监控方法和装置
US10209889B2 (en) 2016-07-14 2019-02-19 International Business Machines Corporation Invalidation of shared memory in a virtual environment
US10176115B2 (en) 2016-07-14 2019-01-08 International Business Machines Corporation Shared memory in a virtual environment
CN107807838B (zh) * 2016-09-08 2021-11-23 阿里巴巴集团控股有限公司 虚拟机处理方法、装置及设备
US10517020B2 (en) * 2017-12-15 2019-12-24 Industrial Technology Research Institute Mobile edge platform servers and user equipment context migration management methods thereof
CN108196942B (zh) * 2018-02-01 2021-09-03 成都禾苗云科技有限公司 一种内存超分配虚拟机的快速启动方法
CN109710346A (zh) * 2018-08-20 2019-05-03 平安普惠企业管理有限公司 服务器管理方法、装置、设备及计算机可读存储介质
CN110930291B (zh) * 2019-11-15 2022-06-17 山东英信计算机技术有限公司 一种gpu显存管理控制方法及相关装置
CN114064189A (zh) * 2020-07-30 2022-02-18 中国移动通信集团贵州有限公司 资源利用率提升方法、系统及电子设备
CN112214329B (zh) * 2020-11-04 2023-09-22 腾讯科技(上海)有限公司 内存管理方法、装置、设备及计算机可读存储介质
CN113076175B (zh) * 2021-03-26 2022-09-30 北京汇钧科技有限公司 用于虚拟机的内存共享方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101697134A (zh) * 2009-10-27 2010-04-21 北京大学 一种支持相似虚拟机快速启动的方法
WO2011057874A2 (en) * 2009-11-16 2011-05-19 International Business Machines Corporation Symmetric live migration of virtual machines
CN102103524A (zh) * 2010-12-23 2011-06-22 北京航空航天大学 一种面向内存冗余的虚拟机迁移装置及其方法
CN102236582A (zh) * 2011-07-15 2011-11-09 浙江大学 虚拟化集群负载在多台物理机中均衡分配的方法
US20110302577A1 (en) * 2010-06-02 2011-12-08 Microsoft Corporation Virtual machine migration techniques

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2193484A4 (en) 2007-08-31 2011-12-21 Cirba Inc METHOD AND SYSTEM FOR EVALUATING VIRTUALIZED ENVIRONMENTS
US8499284B2 (en) * 2008-09-11 2013-07-30 Microsoft Corporation Visualizing relationships among components using grouping information
US8631405B2 (en) * 2010-02-26 2014-01-14 Red Hat Israel, Ltd. Identification and placement of new virtual machines based on similarity of software configurations with hosted virtual machines
US9710295B2 (en) 2011-04-20 2017-07-18 Nec Corporation Grouping and placement of virtual machines based on similarity and correlation of functional relations
US20150170260A1 (en) * 2012-02-29 2015-06-18 Google Inc. Methods and Systems for Using a Mobile Device to Visualize a Three-Dimensional Physical Object Placed Within a Three-Dimensional Environment
US8996478B2 (en) * 2012-10-18 2015-03-31 Netapp, Inc. Migrating deduplicated data

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101697134A (zh) * 2009-10-27 2010-04-21 北京大学 一种支持相似虚拟机快速启动的方法
WO2011057874A2 (en) * 2009-11-16 2011-05-19 International Business Machines Corporation Symmetric live migration of virtual machines
US20110302577A1 (en) * 2010-06-02 2011-12-08 Microsoft Corporation Virtual machine migration techniques
CN102103524A (zh) * 2010-12-23 2011-06-22 北京航空航天大学 一种面向内存冗余的虚拟机迁移装置及其方法
CN102236582A (zh) * 2011-07-15 2011-11-09 浙江大学 虚拟化集群负载在多台物理机中均衡分配的方法

Also Published As

Publication number Publication date
US20160026506A1 (en) 2016-01-28
EP2975515A4 (en) 2016-03-09
US9697053B2 (en) 2017-07-04
EP2975515A1 (en) 2016-01-20
CN104050008B (zh) 2018-01-23
CN104050008A (zh) 2014-09-17

Similar Documents

Publication Publication Date Title
WO2014139470A1 (zh) 一种内存超分配管理系统及方法
Mateescu et al. Hybrid computing—where HPC meets grid and cloud computing
Kc et al. Scheduling hadoop jobs to meet deadlines
Guo et al. Improving mapreduce performance in heterogeneous network environments and resource utilization
He et al. Elastic application container: A lightweight approach for cloud resource provisioning
CN104503838B (zh) 一种虚拟cpu调度方法
US9304803B2 (en) Cooperative application workload scheduling for a consolidated virtual environment
CN100511151C (zh) 多路多核服务器及其cpu的虚拟化处理方法
US10241836B2 (en) Resource management in a virtualized computing environment
CN107222531B (zh) 一种容器云资源调度方法
JP2022544256A5 (zh)
CN103701886A (zh) 一种云计算环境下的服务及资源分层调度方法
CN102968344A (zh) 一种多虚拟机迁移调度的方法
CN107864211A (zh) 集群资源调度方法及系统
CN111966481A (zh) 一种适用于多租户场景的并行计算管理方法及系统
Ma et al. vLocality: Revisiting data locality for MapReduce in virtualized clouds
Tsai et al. Two-tier multi-tenancy scaling and load balancing
Sato et al. A model-based algorithm for optimizing i/o intensive applications in clouds using vm-based migration
CN110084507B (zh) 云计算环境下分级感知的科学工作流调度优化方法
CN111522637A (zh) 一种基于成本效益的storm任务调度方法
CN113934525B (zh) 一种基于正负反馈负载调度算法的Hadoop集群任务调度方法
KR102014246B1 (ko) 리소스 통합관리를 위한 메소스 처리 장치 및 방법
Nivodhini et al. Algorithms to improve scheduling techniques in IaaS cloud
Yan et al. Affinity-aware virtual cluster optimization for mapreduce applications
CN105187483B (zh) 分配云计算资源的方法及装置

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

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 14774690

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2014763336

Country of ref document: EP