IP Library › Granted Patent US 11,822,681
Granted Patent B1
US 11,822,681 · App. 16/721,316 · Granted Nov 21, 2023

Data processing system with virtual machine grouping based on commonalities between virtual machines

Inventors: Nathan Lee Post (San Antonio, TX); Ryan Thomas Russell (San Antonio, TX); Bryan J. Osterkamp (New Braunfels, TX); William Preston Culbertson, II (San Antonio, TX); Courtney St. Martin (Roswell, GA); Ashley Raine Philbrick (San Antonio, TX)
Assignee: UNITED SERVICES AUTOMOBILE ASSOCIATION (USAA)
G06F21/6209G06F9/45558G06F21/53G06F2009/45575G06F2009/45587G06F2009/45595
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,822,681
App. No.
16/721,316
Granted
Nov 21, 2023
Kind
B1
Abstract

A data processing system may include a plurality of host servers, each server including a device processor and a non-transitory computer readable medium including instructions stored thereon and executable by the processor, wherein the computer readable medium of each server includes instructions for running one or more virtual machines. In addition, the system may include a system controller including a device processor and a non-transitory computer readable medium including instructions stored thereon and executable by the processor, the computer readable medium of the system controller including instructions for receiving commands to host two or more virtual machines on the plurality of host servers; making a determination as to which of the virtual machines share commonalities with one another; and based on the determination, providing instructions to the plurality of host servers to host virtual machines determined to share one or more commonalities with one another on the same host server.

Claims (64)

1. A data processing system, comprising:

a plurality of host servers, each server including a device processor and a non-transitory computer readable medium including instructions stored thereon and executable by the processor;

wherein the computer readable medium of each server includes instructions for running one or more virtual machines; and

wherein the plurality of host servers are networked in communication with one another;

the plurality of host servers including at least a first host server and a second host server;

a system controller networked with the plurality of host servers and including a controller processor and a non-transitory computer readable medium including instructions stored thereon and executable by the controller processor, wherein the computer readable medium of the system controller includes instructions for performing the following steps:

receiving commands to host two or more virtual machines, including a first virtual machine and a second virtual machine, on the plurality of host servers, the commands including instructions to host the first virtual machine on the first host server and instructions to host the second virtual machine on the second host server;

making a determination as to which of the two or more virtual machines share commonalities with one another; and

based on a determination that the first virtual machine and the second virtual machine share one or more commonalities, providing instructions to the plurality of host servers to move the entire second virtual machine from the second host server to the first host server; and

wherein the respective computer readable media of the plurality of host servers include instructions, executable by the respective processors of the plurality of host servers, for performing the following steps:

receiving the instructions to move the entire second virtual machine from the second host server to the first host server; and

moving the entire second virtual machine from the second host server to the first host server;

wherein the computer readable medium of the system controller further includes instructions for:

making a determination as to whether the two or more virtual machines have one or more predetermined differences; and

preventing virtual machines having one or more predetermined differences from running on the same host server; and

wherein the predetermined differences are selected from the group including:

different levels of public interaction;

different levels of security restrictions; and

different levels of sensitivity with respect to data processed by the virtual machines.

2. The system of claim 1 , wherein the plurality of host servers are all disposed at the same facility.

3. The system of claim 1 , wherein data having different levels of sensitivity include highly sensitive data and less sensitive data; and

wherein the highly sensitive data includes at least one of financial data and medical records data.

4. The system of claim 1 , wherein the determination as to which virtual machines share commonalities with one another is performed based on a listing, stored on one or more of the two or more virtual machines, of other virtual machines with which each virtual machine shares commonalities.

5. The system of claim 1 , wherein the determination as to which virtual machines share commonalities with one another is performed based on data collected during operation of the two or more virtual machines regarding which other virtual machines each virtual machine communicates.

6. A data processing system, comprising:

a plurality of host machines, each host machine including a device processor and a non-transitory computer readable medium including instructions stored thereon and executable by the processor;

wherein the computer readable medium of each host machine includes instructions for running one or more virtual machines; and

wherein the plurality of host machines are networked in communication with one another;

the plurality of host machines including at least a first host machine and a second host machine;

a system controller networked with the plurality of host machines and including a controller processor and a non-transitory computer readable medium including instructions stored thereon and executable by the controller processor, wherein the computer readable medium of the system controller includes instructions for performing the following steps:

receiving commands to host two or more virtual machines, including a first virtual machine and a second virtual machine, on the plurality of host machines, the commands including instructions to host the first virtual machine on the first host machine and instructions to host the second virtual machine on the second host machine;

making a determination as to which of the two or more virtual machines share commonalities with one another; and

based on a determination that the first virtual machine and the second virtual machine share one or more commonalities, providing instructions to the plurality of host machines to move the entire second virtual machine from the second host machine to the first host machine;

wherein the respective computer readable media of the plurality of host servers include instructions, executable by the respective processors of the plurality of host servers, for performing the following steps:

receiving the instructions to move the entire second virtual machine from the second host machine to the first host machine; and

moving the entire second virtual machine from the second host machine to the first host machine;

wherein the computer readable medium of the system controller further includes instructions for:

making a determination as to whether the two or more virtual machines have one or more predetermined differences; and

preventing virtual machines having one or more predetermined differences from running on the same host machines;

wherein the predetermined differences are selected from the group including:

different levels of public interaction;

different levels of security restrictions; and

different levels of sensitivity with respect to data processed by the virtual machines.

7. The system of claim 6 , wherein the plurality of host machines are all disposed at the same facility.

8. The system of claim 6 , wherein data having different levels of sensitivity include highly sensitive data and less sensitive data; and

wherein the highly sensitive data includes at least one of financial data and medical records data.

9. The system of claim 6 , wherein the determination as to which virtual machines share commonalities with one another is performed based on a listing, stored on one or more of the two or more virtual machines, of other virtual machines with which each virtual machine shares commonalities.

10. The system of claim 6 , wherein the determination as to which virtual machines share commonalities with one another is performed based on data collected during operation of the two or more virtual machines regarding which other virtual machines each virtual machine communicates.

11. A method of configuring a data processing system, comprising:

receiving commands, with a system controller, to host two or more virtual machines on a plurality of host machines networked in communication with one another, each host machine including a device processor and a non-transitory computer readable medium including instructions stored thereon and executable by the processor, the commands including instructions to host a first virtual machine on a first host machine and instructions to host a second virtual machine on a second host machine;

making a determination, with the system controller, as to which of the two or more virtual machines share commonalities with one another;

based on a determination that the first virtual machine and the second virtual machine share one or more commonalities, the system controller providing instructions to the plurality of host machines to move the entire second virtual machine from the second host machine to the first host machine;

receiving the instructions, with the plurality of host machines, to move the entire second virtual machine from the second host machine to the first host machine; and

moving the entire second virtual machine from the second host machine to the first host machine;

further including making a determination as to whether the two or more virtual machines have one or more predetermined differences; and

preventing virtual machines having one or more predetermined differences from running on the same host machine;

wherein the predetermined differences are selected from the group including:

different levels of public interaction;

different levels of security restrictions; and

different levels of sensitivity with respect to data processed by the virtual machines.

12. The method of claim 11 , wherein data having different levels of sensitivity include highly sensitive data and less sensitive data; and

wherein the highly sensitive data includes at least one of financial data and medical records data.

13. The method of claim 11 , wherein the determination as to which virtual machines share commonalities with one another is performed based on a listing, stored on one or more of the two or more virtual machines, of other virtual machines with which each virtual machine shares commonalities.

14. The method of claim 11 wherein the determination as to which virtual machines share commonalities with one another is performed based on data collected during operation of the two or more virtual machines regarding which other virtual machines each virtual machine communicates.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 3, 2023
From: UIPCO, LLC
To: UNITED SERVICES AUTOMOBILE ASSOCIATION (USAA)
Reel/Frame 065106/0150 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 19, 2019
From: POST, NATHAN LEE; RUSSELL, RYAN THOMAS; OSTERKAMP, BRYAN J.; CULBERTSON, WILLIAM PRESTON, II; ST. MARTIN, COURTNEY; PHILBRICK, ASHLEY RAINE
To: UIPCO, LLC
Reel/Frame 051337/0162 →
Continuity (1)
Provisional Application 62786898 · Dec 31, 2018