IP Library Granted Patent US 8,694,637
Granted Patent B1
US 8,694,637 · App. 12/272,580 · Granted Apr 8, 2014

Virtual private server with CPU time scheduler and isolation of system components

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 8,694,637
App. No.
12/272,580
Granted
Apr 8, 2014
Kind
B1
Abstract

A server includes a host running an operating system kernel. Isolated virtual private servers (VPSs) are supported within the kernel. At least one application is available to users of the VPS. A plurality of interfaces give the users access to the application. Each VPS has its own set of addresses. Each object of each VPS has a unique identifier in a context of the operating system kernel. Each VPS is isolated from objects and processes of another VPS. Each VPS includes isolation of address space of each user from address space of a user on any other VPS, isolation of server resources for each VPS, and failure isolation. The server includes a capability of allocating (or reallocating) system resources to a designated VPS, allocating (or reallocating) system resources to a VPS in current need of such resources, dynamically allocating (or reallocating) VPS resources to a VPS when additional resources are available, and compensating a particular VPS in a later period for a period of under-use or over-use of server resources by the particular VPS in a current period. VPS resources are allocated for each time cycle. All the VPSs are supported within the same OS kernel.

Claims (53)

1. A server comprising:

a host running a single host operating system (OS) kernel;

a plurality of isolated virtual private servers (VPSs) supported within the operating system kernel, the plurality of VPSs sharing the same operating system kernel and same operating system executable files and each VPS running at least one user application;

a user space/kernel space interface that includes a CPU time scheduler that allocates CPU time between threads of the VPSs and ensures that a thread of one VPS does not adversely affect threads of other VPSs;

an application available to users of the VPSs; and

an application interface that includes system calls for giving the users access to the application.

2. The server of claim 1 , wherein each VPS has a set of addresses and a set of objects that belong only to that VPS.

3. The server of claim 1 , wherein the scheduler ensures that a thread of one VPS does not adversely affect a CPU time allocation of threads of other VPSs by setting guaranteed levels of CPU time usage for each user process and/or VPS.

4. The server of claim 3 , wherein each object has a unique identifier in a context of the operating system kernel.

5. The server of claim 1 , wherein the server compensates a particular VPS in a later time slice for under-use or over-use of the resource by the particular VPS in a current time slice.

6. The server of claim 1 , further comprising isolation of server resources for each VPS.

7. The server of claim 1 , wherein each VPS cannot affect an object of another VPS.

8. The server of claim 1 , wherein each VPS includes:

isolation of address space of a user of one VPS from address space of a user on another VPS; and

isolation of application failure effects.

9. The server of claim 1 , wherein the host includes any of:

a virtual memory allocated to each user;

a pageable memory used by the OS kernel and by user processes;

physical memory used by the user processes;

objects and data structures used by the OS kernel;

I/O resources; and

file space.

10. The server of claim 1 , wherein each VPS includes:

a plurality of processes and threads servicing corresponding users;

a plurality of objects associated with the plurality of processes and threads;

a set of unique user IDs corresponding to users of a particular VPS; and

a unique file space.

11. The server of claim 1 , wherein the server is configured to perform any of the following:

allocating a resource to a designated VPS;

reallocating the resource to a designated VPS;

allocating the resource to a VPS in current need of resources;

reallocating the resource to a VPS in current need of resources;

dynamically reallocating the resource from one VPS to another VPS when this resource is available; and

a capability of dynamically reallocating the resource from one VPS to another VPS when commanded by the OS kernel.

12. The server of claim 1 , wherein the server defines time slices, such that the resource is allocated for each time slice.

13. The server of claim 1 , wherein the server defines time slices, such that the resource is reallocated for each time slice from one VPS to any of another VPS, the OS kernel, an application software daemon and a system software daemon.

14. The server of claim 13 , wherein the server dynamically partitions and dedicates the resource to the VPSs based on a service level agreement.

15. The server of claim 1 , wherein all the VPSs are supported within the same OS kernel.

16. The server of claim 1 , wherein some functionality of the VPSs is supported in user mode.

17. A method of managing a server comprising:

defining a virtual private server (VPS) ID corresponding to a VPS, wherein multiple VPSs are running on the server and all the VPSs share the same single host operating system kernel and same operating system executable files and each VPS is running at least one user application;

wherein the server includes a user space/kernel space interface that includes a CPU time scheduler that allocates CPU time between threads of the VPSs and ensures that a thread of one VPS does not adversely affect threads of other, and

wherein the server includes an application interface that includes system calls for giving the users access to the application;

receiving a request from a VPS process to create an object;

creating an internal operating system (OS) kernel representation of the object;

checking whether such an object already exists in OS kernel storage;

if no such object exists in the OS kernel storage, creating an instance of the object to be associated with the VPS ID; and

if such an object already exists in the OS kernel storage, one of rejecting the request and returning the existing object to the VPS process.

18. A method of providing hosting services comprising:

on a host running a single host operating system (OS) kernel, initiating a plurality of isolated virtual private servers (VPSs) supported within the operating system kernel, the plurality of VPSs sharing the same operating system kernel and each VPS running at least one user application,

the host including a user space/kernel space interface with a CPU time scheduler that allocates CPU time between threads of the VPSs and ensures that a thread of one VPS does not adversely affect threads of other VPSs;

starting an application available to users of the VPSs; and

starting an application interface that includes system calls for giving the users access to the application.

Assignments (7)
SECURITY INTEREST IN TRADEMARK, PATENT, AND COPYRIGHT RIGHTS Recorded Dec 22, 2022
From: VIRTUOZZO INTERNATIONAL GMBH; ONAPP LIMITED
To: WILMINGTON TRUST (LONDON) LIMITED
Reel/Frame 062206/0557 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 29, 2018
From: PARALLELS IP HOLDINGS GMBH
To: VIRTUOZZO INTERNATIONAL GMBH
Reel/Frame 045179/0537 →
RELEASE OF SECURITY INTEREST Recorded Dec 14, 2015
From: SILICON VALLEY BANK
To: PARALLELS HOLDINGS LTD. (F/K/A SWSOFT HOLDINGS LTD.)
Reel/Frame 037289/0685 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 25, 2012
From: PARALLELS HOLDINGS, LTD.
To: PARALLELS IP HOLDINGS GMBH
Reel/Frame 027595/0187 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 31, 2011
From: SWSOFT HOLDINGS, LTD.
To: PARALLELS HOLDINGS, LTD.
Reel/Frame 027467/0345 →
SECURITY AGREEMENT Recorded Jun 23, 2011
From: PARALLELS HOLDINGS LTD. (F/K/A SWSOFT HOLDINGS LTD.)
To: SILICON VALLEY BANK
Reel/Frame 026480/0957 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 17, 2008
From: BELOUSSOV, SERGUEI M.; TORMASOV, ALEXANDER G.; PROTASSOV, STANISLAV S.
To: SWSOFT HOLDINGS, LTD.
Reel/Frame 021846/0299 →