US20130139158A1 - Multitenant hosted virtual machine infrastructure - Google Patents
Multitenant hosted virtual machine infrastructure Download PDFInfo
- Publication number
- US20130139158A1 US20130139158A1 US13/627,761 US201213627761A US2013139158A1 US 20130139158 A1 US20130139158 A1 US 20130139158A1 US 201213627761 A US201213627761 A US 201213627761A US 2013139158 A1 US2013139158 A1 US 2013139158A1
- Authority
- US
- United States
- Prior art keywords
- persistent storage
- virtual
- storage device
- mtvmi
- data
- 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.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0603—Catalogue ordering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/02—Banking, e.g. interest calculation or account maintenance
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/84—Using snapshots, i.e. a logical point-in-time copy of the data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
Definitions
- a virtual machine is a software construct designed to run computer programs like a real physical machine.
- a virtual machine may comprise various software components for running executable code written for a particular computing platform.
- executable code may include, among other things, operating system code, application programs, software drivers, and so on.
- a virtual machine does not necessarily have a direct correspondence to a real physical machine; however, virtual machines are often designed to imitate the behavior of specific hardware architectures. As an example, a virtual machine may be designed to imitate the behavior of an x86 processor.
- VMIs Virtual machine infrastructures
- a VMI comprises a set of physical computational resources, virtualization software for creating virtual machines on the physical computational resources, and management software for managing the virtual machines and coordinating access to the virtual machines.
- a VMI comprises a set of physical computers each running multiple virtual machines. Users at separate remote-access consoles access the different virtual machines over a local area network.
- Each console includes a virtual machine interface designed to allow a user to interact with a virtual machine in the same way that the user would interact with a local machine.
- the virtual machine interface may present a user desktop and explorer windows similar to those found in an ordinary personal computer.
- different virtual machines may be individually configured according to the users' unique needs and preferences. For instance, the different virtual machines may run different types of operating systems (e.g., Windows, Linux), allowing the users to use different operating-system-specific programs within the VMI. Additionally, each of the virtual machines may provide a different level of performance so that the resources of the single physical computer can be efficiently divided among users having different computational demands.
- operating systems e.g., Windows, Linux
- VMIs virtual computing resources for large groups of users. These users may work together, but have different computational demands.
- a company with hundreds of employees may set up a virtual data center comprising many physical machines each configured to run several virtual machines for use by the employees.
- the virtual machines can be configured in accordance with the different computational demands and preferences of the different employees. For instance, an employee whose job requires a significant amount of computing power—say, an engineer who runs test simulations on complex circuits—may use a virtual machine configured with higher throughput and more memory, compared with an employee whose job only requires the use of a few simple programs such as a word processor and an Internet browser. Similarly, an employee whose job requires a relatively high level of system access—say, a system administrator—may use a virtual machine configured with a higher level of access within the VMI compared with an employee whose job requires a relatively lower level of access.
- VMIs are designed for use within a single organization, i.e., a single company or group of users.
- the operation of the virtual machines is governed by a common set of rules, such as a common hierarchy of access rights, usage rights, quality of service guarantees, and naming conventions.
- the configuration of resources is controlled by a single administrative entity, i.e., a single system administrator or group of system administrators.
- FIG. 1 is a conceptual diagram providing a system-level overview of a hosted multitenant virtual machine infrastructure (MTVMI) in accordance with in some embodiments;
- MTVMI virtual machine infrastructure
- FIG. 2 is a flowchart illustrating the use of a MTVMI by a new tenant in some embodiments.
- FIG. 3A is a flowchart illustrating the use of a MTVMI by a user associated with a particular tenant in some embodiments.
- FIG. 3B is a display diagram showing an example browser that could be used to log into a MTVMI, and a resulting screen that may appear in the user's display upon logging in to the MTVMI in some embodiments.
- FIG. 4 is a flowchart illustrating the operation of a MTVMI in relation to a tenant in some embodiments.
- FIG. 5 is a flowchart illustrating the operation of a MTVMI in relation to a user in some embodiments.
- FIG. 6 is a conceptual diagram providing a more detailed system-level overview of a hosted multitenant virtual machine infrastructure in some embodiments.
- FIG. 6A is a block diagram illustrating a storage manager in some embodiments.
- FIG. 7 is a flowchart illustrating the provision of a software brokering service by an MTVMI in some embodiments.
- FIG. 8 is a flowchart illustrating the provision of a virtual lab service by an MTVMI in some embodiments.
- FIG. 9-25 are display diagrams showing a typical user interface presented by an example software application running on a MTVMI to provide a virtual lab service in some embodiments.
- FIGS. 25-26 show additional conceptual diagrams illustrating the organization of the MTVMI in some embodiments.
- FIGS. 27-46 are display diagrams showing displays presented by the MTVMI in some embodiments.
- FIGS. 47-49 show a user interface designed for use by vendors offering items for sale via the marketplace.
- FIG. 50 is a block diagram illustrating a data model representation of virtual data centers in the MTVMI management application in some embodiments.
- FIG. 51 is a block diagram illustrating component processes in the MTVMI management application in some embodiments.
- FIG. 52 is a block diagram illustrating the organization of the data model that supports access control mechanisms of MTVMI management application in some embodiments.
- FIG. 53 is a block diagram illustrating the organization of the data model that supports resource usage quota mechanisms of MTVMI management application in some embodiments.
- a shared computing infrastructure (“the infrastructure”) is described.
- a user can exploit the entire infrastructure using a standard web browser, without having to install any specialized applications.
- the infrastructure supports the deployment of virtual data centers, wherein each cluster comprises one or more virtual machines capable of transparently interfacing with computing resources located elsewhere in the Internet.
- the infrastructure may execute a virtual machine cluster on physical machines within the infrastructure, while users control the virtual machines through personal computers connected to the infrastructure via the Internet.
- the shared computing infrastructure may incorporate a software environment and interface capable of facilitating the automation of specific virtualized infrastructure based services.
- the infrastructure may incorporate a software platform that implements a portal where users can develop and exchange data that may be useful within the infrastructure.
- This data could include, e.g., virtual network configurations and software applications that could be run within the virtual infrastructure.
- the data could be developed by individual users or by group collaboration within the infrastructure. Additionally, the data could be exchanged with or without monetary payments.
- MTVMI multi-tenant virtual machine infrastructure
- a MTVMI is a VMI adapted for use by multiple tenants, where each “tenant” is an independent entity (e.g., a set of users within a single company or other organization) whose access to and use of the MTVMI is governed by a unique and independent set of rules.
- each tenant in a MTVMI may have a unique and independent authentication mechanism, access control model, hierarchy of rights and privileges, resource allocation control model, resource usage control, quotas, service level agreements, and billing.
- tenant generally has a connotation related to the rental or occupation of property or space
- “tenant” in the current context should not be limited to entities having certain legal or logistical agreements or arrangements relative to the MTVMI; neither should it be limited to entities who occupy a certain quantity of space or resources within a MTVMI. Rather, “tenant” here merely refers to any entity having a certain logical relationship with the MTVMI as demonstrated by the examples and explanations presented in this written description.
- Examples of multiple tenants sharing a MTVMI include different companies or groups of individual users. For instance, an MTVMI could be shared by multiple large corporations each having its own cluster of virtual machines, its own virtual storage management system, and so on.
- FIG. 1 is a conceptual diagram providing a system-level overview of a hosted MTVMI 100 in accordance with an embodiment of the invention.
- MTVMI 100 comprises a physical infrastructure resident at the MTVMI provider's site, virtual infrastructure 105 , a software library 110 , and a MTVMI management application 115 .
- FIG. 1 shows different tenants 130 and 140 connected to MTVMI 100 through the Internet 120 .
- Different users among tenants 130 and 140 may access MTVMI 100 over corresponding secure Internet connections.
- a user accesses MTVMI 100 by logging on to the infrastructure through an Internet browser.
- a user interface for MTVMI 100 appears in the user's computer display to allow the user to access various features of MTVMI 100 .
- the user interface appears similar to a normal computer desktop, so that the user's experience is substantially the same as it would be if the user was interacting with a set of local resources.
- the user interface enables a user associated with a tenant to manage virtual machines, such as by creating, configuring, starting, and stopping virtual machines.
- tenants can access MTVMI 100 over the Internet from any Internet-enabled device.
- the MTVMI can be accessed through personal computers, Internet-enabled personal digital assistants (PDAs), and Internet-enabled cell phones.
- PDAs personal digital assistants
- cell phones Internet-enabled cell phones.
- a user accesses the MTVMI 100 using a portable device such as a PDA or cell phone, the user does so with a web browser installed in the device, much like the user would do in a personal computer.
- Each tenant of MTVMI 100 operates within its own unique virtual environment.
- the environment for each tenant may include, for example, one or more unique virtual data centers each comprising a set of virtual machines, virtual storage, and virtual network accessible to the tenant's users.
- the environment may further include methods for managing the cluster, such as a hierarchy of user access rights, limits on the amount of central processing unit (CPU) time and storage space available to the users, and so on.
- the environment for each tenant may provide the tenant's users with access to specific software applications found in software library 110 , as well as one or more labs 112 corresponding to instantiated virtual data centers that can be executed.
- virtual infrastructure 105 comprises both a physical platform for running virtual machines, virtual storage, and virtual network, and a software platform enabling the creation and management of the virtual machines, virtual storage, and virtual network.
- the physical platform may comprise computer hardware such as storage system and media, servers comprising CPUs, memory, and related processing components, and networking hardware such as network switches, routers, etc.
- the software platform may include, e.g., a hypervisor for each server, and software components for the storage system and networking components and software for managing them.
- Network nodes include both hardware and software components for implementing virtual network functionality
- virtual machine nodes include hardware and software components for creating and hosting virtual machines
- storage nodes include hardware and software components for implementing virtual data storage.
- example network nodes virtual machine host nodes, and storage nodes is explained further below with reference to FIG. 6 .
- the description treats these different nodes as separate features, it should be recognized that the functionality of these nodes can be implemented by different hardware and software arrangements. Moreover, the functionality of the different nodes will not necessarily be implemented within different physical or logical structures. In other words, some components may implement functions for more than one type of node.
- Software library 110 comprises a collection of software programs, data objects, and/or virtual data center configurations for use by different tenants of MTVMI 100 .
- the software programs may include, among other things, specific operating systems to be run on virtual machines, application programs to run within the virtual machines, and any code used by tenants to maintain their own virtual resources.
- the data objects may include, for example, database files, software configuration files, and so forth.
- the virtual data center configurations may include, e.g., specifications of network topologies, and hardware and software specifications for individual virtual machines within virtual networks.
- One example configuration for a virtual machine could include 2 GHz virtual CPU and 1 GB RAM, and run Windows XP.
- MTVMI 100 includes mechanisms for automatically negotiating the licenses with third party software providers in real time.
- licenses are purchased by the entity hosting the MTVMI 100 so that users are not required to obtain their own licenses.
- software library 110 is divided into public and private libraries.
- a public library is a portion of software library 110 accessible to any tenant using MTVMI 100 .
- a private library is a portion of software library 110 accessible to only a subset of the tenants using MTVMI 100 or to a subset of users belonging to a tenant.
- Public libraries may include, for instance, freeware software applications, commercial operating systems and applications that can be provided to tenants for a charge based on usage, shared data, and so on.
- Private libraries may include, for instance, licensed or proprietary software for use by individual tenants, specific data objects related to work performed by the tenant or the configuration of a tenant's virtual network.
- a library can contain a commercial operating system, application, or other program that, when installed on a virtual machine, will be customized with a license key owned by the installing tenant.
- software library 110 may further include specific virtual data center configurations for use by individual tenants.
- a virtual data center configuration stored in the software library contains complete information for instantiating a set, or “cluster” of virtual machines connected by a virtual network.
- the virtual data center configuration specifies capabilities of each virtual machine to be instantiated in the cluster, including such attributes as number of processor cores, amount of memory, operating system for which the virtual machine is to be optimized, etc.
- the virtual data center configuration further contains complete state for each virtual machine to be instantiated. Such state generally includes contents of a disk volume to be accessible by the virtual machine, and may also include memory contents of the virtual machine, and/or processor status for the virtual machine, including contents for registers including program counters.
- a user may upload a virtual machine image generated outside the MTVMI. This virtual machine image can be stored in the library, and instantiated by the MTVMI in a lab.
- Each of the labs 112 is an instance of a virtual data center created by a tenant's user using the content in the software library.
- one virtual data center may include several virtual machines with a particular operating system and particular applications, as well as virtual storage, that is together performing a batch application.
- the labs for a tenant may consist of any number of such configuration instances, which can be in varying states, including running and stopped.
- FIGS. 11-20 Further descriptions of software libraries and labs are provided below with reference to FIGS. 11-20 . Various additional functions and benefits of software library 110 will be readily apparent from the descriptions of FIGS. 11-20 .
- MTVMI management application 115 controls and monitors interactions between tenants and MTVMI 100 . Additionally, MTVMI management application 115 allocates resources among different tenants and coordinates the use of MTVMI 100 by the different tenants. Various management related tasks performed by MTVMI management application 115 may include, as examples, authenticating users, allocating CPU time and storage space among different tenants, maintaining logical isolation between different tenants, tracking each tenant's usage of MTVMI 100 , and many others. Additional examples of specific functions that can be performed by MTVMI management application 115 are described below in relation to FIG. 6 .
- Tenant information such as virtual data center configurations and stored data within MTVMI 100 may be generated in a variety of different ways.
- the tenant information may be generated by a tenant's privileged user through manual operations on the MTVMI 100 using its graphical interface.
- virtual data center configurations and other tenant information can be generated for MTVMI 100 by providing a machine container that describes an existing physical or virtual machine or cluster to a module within MTVMI 100 , and operating the module to generate a virtual data center configuration for use within MTVMI 100 .
- virtual data storage facilities can be established and initialized within MTVMI 100 by downloading data from an existing data storage platform into MTVMI 100 .
- FIG. 2 is a flowchart illustrating the use of a MTVMI by a new tenant in some embodiments.
- FIG. 2 is intended to provide a very broad illustration of the tenant's interactions with the MTVMI, beginning with the initial establishment of a usage agreement between the tenant and an MTVMI host.
- actions performed by the tenant are actually carried out by a representative of the tenant, such as a system administrator or another authorized individual.
- a tenant establishes a relationship with a MTVMI host by submitting a subscription request to the host.
- the tenant may specify, among other things, a desired amount of resource usage within the MTVMI, any desired features such as access to particular software applications, and other terms for governing tenant's use of the MTVMI.
- a tenant's resource usage can be measured in any of several different ways, including, e.g., by a total amount of CPU time used by the tenant, or by a total amount of time that users are logged on to the MTVMI.
- the tenant's virtual data center may include, among other things, a set of virtual machines, a set of virtual networks, and a set of data storage resources.
- the performance and capacity of the tenant's virtual data center may be limited by the tenant's subscription agreement; however, the tenant is generally free to configure the logical structure of the data center in any way desired.
- the tenant's process of establishing a virtual data center may be compared, by analogy, to the process that an organization goes through to establish a physical data center, by purchasing a set of physical resources, connecting the resources together, and getting the resources to communicate with one another.
- a virtual data center requires significantly less legwork on the part of the system architects, and therefore tends to require much less time and expense.
- the tenant establishes rules to govern use of the virtual data center.
- rules include, among others, a hierarchy of access rights and software license privileges for different users, constraints on network topology or evolution, and limits on the amount of computational bandwidth and storage space allocated to different users.
- the access rights in addition to limiting use of certain resources by certain users, may also limit the ability of certain users to change aspects of the virtual data center, e.g., by adding additional machines, and so forth.
- the rules governing the virtual data center can be established so they are similar to the rules that govern ordinary, physical data centers in most organizations.
- the MTVMI provides the environment and tools for the tenant's user to establish these governance rules.
- step 215 individual resources of the data center are configured. For instance, certain software can be associated with certain virtual machines, certain users can be assigned as the primary users for particular machines, and so on.
- step 215 is similar to the process of installing software and setting up user-accounts in a normal non-virtual data center.
- the tenant may continue to perform maintenance and monitoring on its virtual data center while the virtual data center is being used by the tenant's users.
- the maintenance and monitoring may include upgrading and patching various components, modifying the set of users associated with the tenant, measuring the resource usage by different users, and so on.
- FIG. 3A is a flowchart illustrating the use of a MTVMI by a user associated with a particular tenant in some embodiments.
- the user opens an Internet browser.
- the Internet browser may be included in any type of web-enabled device, including, e.g., a personal computer, a web-enabled cell phone, or a PDA.
- the user After opening the Internet browser, the user enters a URL for the MTVMI to load an MTVMI access portal website into the browser.
- the user logs onto the MTVMI through the access portal by supplying credentials such as a user name and password to the portal.
- the lab can have multiple configuration instances, each of which can have multiple virtual machines.
- the display of the user's machine may be modified to show a desktop for any instantiated virtual machine in the labs.
- the desktop may resemble an ordinary computer desktop as is normally displayed on a personal computer.
- the user may interact with the virtual machine in essentially the same way that the user would interact with a local machine.
- FIG. 3B is a display diagram showing an example browser 350 that could be used to log into a MTVMI, and a resulting screen 355 that may appear in the user's display upon logging in to the MTVMI.
- the user may have access to a virtual local disk 365 , and documents 360 stored in a virtual storage platform.
- the user may also have access to other virtual machines within a virtual data center created by the tenant. In one embodiment, these additional virtual machines may be accessible through an icon such as the “My Network Places” icon 370 displayed on the screen 355 .
- a user who has logged onto the MTVMI may also perform actions such as creating a lab with multiple virtual machines, and installing custom software applications on the different virtual machines for specific tasks.
- FIG. 4 is a flowchart illustrating a method of operating a MTVMI in relation to a tenant in some embodiments.
- the method of FIG. 4 can be viewed as a counterpart to the method illustrated in FIG. 2 .
- FIG. 2 illustrates actions performed by a tenant in relation to the MTVMI
- FIG. 4 shows actions performed by the MTVMI in relation to a tenant.
- the actions of the MTVMI may be performed by a MTVMI management application such as that illustrated in FIGS. 1 and 6 .
- the MTVMI receives a subscription request from a new tenant.
- the subscription request may include, among other things, information specifying desired usage rights for the new tenant.
- the MTVMI generates account data for the new tenant based on the information provided with the subscription request.
- the account data may include, e.g., information for regulating MTVMI access and usage by the tenant, such as a data storage quota, authorized users associated with the tenant, a CPU quota, network bandwidth quota, and user authentication information.
- the MTVMI allocates tenant resources, such as data storage space, CPU time, and so forth.
- tenant resources such as data storage space, CPU time, and so forth.
- these resources are allocated on an on-demand basis.
- resources such as storage space and CPU time are only allotted to a tenant when the tenant performs an operation requiring the resources.
- resources may be reserved for use by individual tenants, regardless of whether the tenants currently need resources.
- FIG. 5 is a flowchart illustrating the operation of a MTVMI in relation to a user in some embodiments.
- the method of FIG. 5 can be viewed as a counterpart to the method illustrated in FIG. 3 .
- FIG. 3 illustrates actions performed by a user in relation to the MTVMI
- FIG. 5 shows actions performed by the MTVMI in relation to a user.
- the MTVMI receives user login and/or authentication information. Based on this information, the MTVMI determines whether to allow the user to access the MTVMI. Upon granting the user access to the MTVMI, in step 510 , the MTVMI allows the user to configure a lab and any related software. In step 515 , the MTVMI allows the user to perform authentication of any licenses for selected software. Alternatively, the MTVMI selects a predefined virtual machine configuration for the user. Upon determining virtual resources and any configuration to be used by the user, in step 520 , the MTVMI binds the selected predetermined virtual machine configuration to a virtual host by communicating with the hyperviser for the virtual host.
- the MTVMI begins executing the resources.
- the MTVMI may run a console application to generate information on the user's display.
- the user can view and interact with the desktop console of the virtual machine in a display such as that shown in FIG. 3B .
- FIG. 6 is a conceptual diagram providing a more detailed overview of hosted MTVMI 100 shown in FIG. 1 in some embodiments. Further to the description of FIG. 1 , FIG. 6 , shows various example components that may be included in virtual infrastructure 105 , software library 110 , labs 112 , and MTVMI management application 115 .
- virtual infrastructure 105 comprises a plurality of network nodes 605 , a plurality of virtual machine host nodes 610 , and a plurality of storage nodes 615 , each of which can be implemented using either general purpose commodity server hardware or server hardware more specialized to the roles of network processing, virtual machine execution, and high-volume reliable storage, respectively.
- Each of the network nodes 605 comprises one or more physical machines that establish a virtual LAN for each virtual network specified by one of the labs 112 .
- a virtual network connects together the virtual machines of a network, and enables them to access their corresponding virtual data stores on the storage nodes.
- the network nodes establish an independent set of network services for each virtual LAN. These network services include such network services as virtual private network, firewall, network address translation, dynamic DNS, dynamic host configuration protocol service, and traffic shaping. In some embodiments, one or more of these services can be disabled for a particular virtual network.
- the separate sets of network services are used to meter the usage of network bandwidth and/or network services individually for each virtual network.
- the user may configure a virtual data center to specify whether, for each of these network services, a standard version is executed in the network node, or a specialized version is executed in the virtual machine.
- the user can configure other networking aspects of the virtual LAN, such as by setting their own static IP addresses which are private only or public, connecting individual VPNs from each virtual machine to their own corporate data center, collectively connecting all the virtual machines in a configuration to their own corporate data center, setting their own domain name, running their own domain name server etc.
- one or more of these network nodes work cooperatively as a load-balancing cluster or a failover cluster.
- Each of virtual machine host nodes 610 comprises one or more physical machines capable of executing one or more virtual machines.
- Each physical machine has a corresponding hypervisor and the one or more virtual machines runs on top of the hypervisor.
- Each of storage nodes 615 comprises one or more physical data storage media. These storage media may provide virtual storage for virtual machines and virtual data clusters running within the MTVMI.
- the MTVMI uses load-balancing techniques to select for each virtual machine the storage node that is assigned to provide virtual storage to the virtual machine.
- the MTVMI further provides intelligent data placement, dynamic data replication, and/or dynamic data migration. Intelligent data placement involves strategically selecting one or more storage nodes in which to store particular data. For example, an image for a popular operating system may be placed on multiple storage nodes in order to provide for high expected demand for the operating system among virtual machines.
- Dynamic data replication involves creating additional copies of particular data on different nodes in order to provide better performance for accessing the data.
- Dynamic data migration involves moving data to a different storage node, such as to relieve a bottleneck.
- these mechanisms are implemented by monitoring and collecting data about the behavior of host nodes and/or storage nodes and associated workload levels, such as which objects are more used than others, and policy intelligence for making determinations based upon this input.
- the storage nodes provide virtual network attached storage devices for use by virtual machines running within the MTVMI.
- the MTVMI uses copy-on-write techniques that represent a child image stored at a later time for particular virtual machine as a set of changes made to a parent image stored for that virtual machine at an earlier time.
- a dependency exists in the child image on the parent image.
- the MTVMI may migrate the child image with the parent image, or it may break the dependency of the child image on the parent image by transforming the representation of the child image into a complete copy of the child image.
- storage nodes may provide long and/or short term data storage for tenant information such as virtual data center configurations, and data archives.
- storage nodes 615 may be populated by users or tenants directly interacting with MTVMI 100 , or through automatic processes such as automatically downloading content stored in another data storage system.
- the Storage Manager component of the VLAB is responsible for all storage-related operations.
- the Storage Manager defines a distinct layer on top of the underlying storage products. The purpose of this layer is to present a unified view across these mechanisms, both to centralize storage knowledge within the application and to insulate the rest of the application from the numerous details of the actual storage implementation.
- the Storage Manager is comprised of:
- the client processes that embed the client library determine how to allocate responsibilities to individual storage nodes. For example, the client processes determine: for particular data that is to be stored, on what storage node(s) to store it; when to move particular data from one storage node to another; when to replicate data on one storage node to another; and, in response to a retrieval request for particular data that is stored on each of multiple storage nodes, which node to retrieve the data from. In making such determinations, the client processes consider content, capacity/usage, performance, load, health, and affinity information that the Storage Manager collects and maintains for each of the storage nodes. In many cases, determinations made by client processes involve determining a subset of feasible nodes, then selecting a node from among the feasible nodes.
- the nodes that have that pre-existing content are the subset of feasible nodes. If content must be retrieved, then the subset of nodes that have that specific content is the feasible subset.
- the client processes seek to avoid nodes that are less healthy (e.g., their disks are in a degraded state) and to prefer nodes that have lower usage and load. Other choices are possible.
- tenants of the service can be assigned an affinity to a specific subset of nodes (and vice versa where a node is assigned affinity to a subset of tenants), such that requests on behalf of that tenant will target this subset of affinity nodes.
- Logic to determine which content should be replicated or migrated and to which node is also based on the same attributes as above.
- the logic additionally schedules these operations during a window when there is less performance impact.
- system administrators can manually trigger replication/migration of specific data to specific nodes.
- Software library 110 comprises software programs for use by tenants and associated users who interact with MTVMI 100 .
- software library 110 may include a library of commercial and/or private software applications available to a tenant, and a set of software configurations created by the tenant or accessible to the tenant.
- software library 110 may be connected to a licensing module to negotiate on-demand licensing of proprietary software to tenants, or management of a limited number of existing licenses among multiple users.
- Management application 115 comprises components for managing and monitoring user access to MTVMI 100 .
- management application 115 may comprise an account management component for managing a tenant's account data, a remote console component for displaying a graphical user interface in a user's local display, a monitoring and metering component for tracking resource usage by different tenants and users, a backup component for maintaining backup copies of the data stored by storage nodes 615 , an audit logs component for maintaining audit logs documenting all the actions performed by each tenant's users, a network manager component for allowing a tenant to connect its own physical data center resources to MTVMI 100 , a VM host manager component for controlling the creation and functioning of virtual machines within MTVMI 100 , and a storage manager component for coordinating tenant and user access to storage nodes 615 .
- management application 115 further includes a billing system component for monitoring a tenant's use of resources within MTVMI 100 and producing an invoice. The monitoring may occur, for example, by tracking the amount of CPU time or data storage consumed by the users associated with each tenant.
- management application 115 further comprises a resource allocation module for facilitating inclusion of external (i.e., non-local or other third party) resources into MTVMI 100 .
- MTVMI 100 can be used to provide potentially brokered access to computing, storage and network resources regardless of where the resources are physically located. Such access can be provided according to policies for achieving any number of tenant or user objectives, such as, e.g., cost, reliability, security, availability, and performance.
- management application 115 further includes a module for specifying a grid configuration of a virtual network based on input from a tenant.
- a grid configuration is a specification of the topology of a set of virtual machines and related networks and storage systems.
- the grid configuration module could generate the grid configuration by receiving a tenant's description of an existing physical or virtual network in the form of a tenant-created file or data structure, and then modifying the description into a form usable by MTVMI 100 .
- the grid configuration can subsequently be imaged onto MTVMI 100 for use by particular tenant or user.
- Management application 115 may further comprise a security component for allowing tenants to restrict the rights of users to specific physical or virtual resources, configurations, and other software resources within MTVMI 100 .
- a security component for allowing tenants to restrict the rights of users to specific physical or virtual resources, configurations, and other software resources within MTVMI 100 .
- a tenant could specify a set of users with access to a particular software suite within MTVMI 100 , and a set of users without access to the software suite.
- the security component could then, monitor access to the suite based on the tenant's specification. Additionally, the security component could issue alters or perform other actions in response to attempts at illicit access, etc.
- management application 115 further comprises policy component allowing tenants to modify resource quotas among individual users associated with the tenant, or among all users associated with the tenant. More generally, the policy component could allow tenants to modify any aspect of the tenant's subscription agreement with MTVMI 100 .
- management application 115 further comprises maintenance components such as patching and virus protection software for updating different the configurations of tenants' different virtual networks, backup or replication software for storing redundant copies of virtual machines, application packages, installation and testing tools and services, etc.
- maintenance components may operate with or without input from tenants or users, with or without oversight by the entity hosting MTVMI 100 , and in a fully automated, partially-automated, or non-automated manner.
- such interactions may take place through a variety of different interfaces, such as graphical interfaces, command line interfaces, programming interfaces, and so on.
- Management application 115 may further include custom monitoring and management components created by tenants or users. To implement these custom features, a user could create scripts or application programs using a scripting program or an application programming interface (API) compatible with MTVMI 100 . To facilitate the creation of such programs, management application 115 may additionally include a software development platform for MTVMI 100 . By allowing tenants and users to create custom software components, MTVMI 100 may provide flexibility and unique capabilities useful to a variety of users having a variety of needs.
- API application programming interface
- management application 115 may further comprise software applications for providing specific virtualization-based services to tenants and users within MTVMI 100 . Examples of such services will be described below with reference to FIGS. 7 and 8 . A more specific example of the service of FIG. 8 will then be described with reference to FIGS. 9-22 .
- FIG. 7 is a flowchart illustrating the provision of a software brokering service by MTVMI 100 in some embodiments.
- the service of FIG. 7 is provided by a software brokering portal where tenants and users are allowed to exchange software and other data that may be useful within MTVMI 100 .
- the data may include, e.g., custom virtual machine or virtual network configurations, software applications written by independent software vendors, custom scripts or programs written for MTVMI 100 , infrastructure models, data models, user rights hierarchy models, process workflows, controls, reports, and financials, to name but a few.
- MTVMI 100 provides a brokering portal.
- the brokering portal comprises a software application that presents a graphical user interface within a user's display.
- the graphical interface may include a mechanism for presenting available software and/or data that can be downloaded by the user.
- the graphical user interface may further include a mechanism for allowing the user to upload software to the portal.
- the MTVMI grants access to the tenant to software that is already available within the MTVMI.
- the portal may require the user to provide a form of payment to download certain software or data. Alternatively, the software or data may be provided free of charge.
- MTVMI 100 receives data from the user through the portal and stores the data in a common access area.
- a user who uploads data to the portal is referred to as a seller in FIG. 7 , even though the portal does not necessarily require users to exchange payment for sharing data.
- a user who downloads software from the portal will be referred to as a buyer.
- MTVMI 100 presents data to potential buyers within the portal.
- MTVMI 100 facilitates those transactions, e.g., by allowing users to debit or credit bank accounts, deposit accounts within MTVMI, or by adding incurred expenses to a tenant's MTVMI account.
- the MTVMI and the portal together support a variety of uses, including application development and testing; online education; pre-sales software demonstration; consulting platform; and IP prototyping and operations.
- FIG. 8 is a flowchart illustrating the provision of a virtual lab service by an MTVMI in some embodiments.
- the user creates a virtual lab and executes a software test using the virtual lab.
- a virtual lab is a set of virtual computing resources configured to operate in concert to perform one or more related computing tasks.
- a virtual lab may comprise a set of virtual machines and related software configured to process a large data set such as a genome sequence, or a large video or simulation.
- a virtual lab may be particularly useful for computing tasks that are performed on a one-time or limited basis, such as software testing, graphics rendering, and so on.
- virtual labs can also be useful for performing recurring tasks requiring a significant amount of computing power.
- Other example steps that could be performed within a virtual lab application will be apparent from the description presented below in relation to FIGS. 9-22 .
- a user accesses a virtual lab application within MTVMI 100 .
- the virtual lab application may generate a graphical user interface on the user's display, such as the interface illustrated in FIGS. 9-22 .
- the user Upon accessing the virtual lab application, in step 810 , the user creates or accesses one or more projects.
- a project is a data structure or description that specifies a set of virtual resources and a set of users that can access the resources specified by the project. In some embodiments, resource usage is separately measured and quota compliance is separately enforced for each project.
- the project allows specific lab instances to be developed through a collaborative process among the users. Example projects will be described in further detail below with reference to FIGS.
- a tenant's administrative user can specify resource permissions at a variety of different levels of scope, including private scope in which permissions are established for a single user, or tenant-wide scope in which permissions are established for all users for a particular tenant. Resource permissions can also be specified at all-tenant scope, in which permissions are established for users of all tenants. Such permissions may relate to items from the software library, the labs, or asset lists established by or for tenants.
- the user After establishing the project, in step 815 , the user creates a lab by selecting and configuring particular resources within the project. As an example, the user may select a set of virtual machines from the project, specify particular operating systems for the virtual machines, and identify software applications to be run on the virtual machines. Examples labs will be described in further detail below with reference to FIGS. 9 and 11 - 12 .
- step 820 the user runs the lab to perform a particular computational task—in this case, a software test.
- a software test performed in a virtual lab will be presented below with reference to FIGS. 9-22 .
- FIGS. 9-22 are display diagrams showing a user interface presented by an example software application running on a MTVMI to provide a virtual lab service in some embodiments.
- the virtual lab service is available on-demand over the Internet and allows users to rapidly build and configure software test environments using a pre-built library of virtual machine images.
- the virtual lab service further allows users to create virtual infrastructure such as virtual processing, networking, and storage facilities on demand using a browser.
- the virtual lab service allows users to share data and collaborate with other users who are also connected to the virtual lab environment via the Internet.
- the operation of the virtual lab service will be explained below using a concrete example involving an engineer uses a MTVMI to test an e-commerce website on behalf of a tenant having users located in different parts of the world.
- the engineer may share components of the virtual lab with the other users associated with the tenant.
- FIG. 9 illustrates a screen that appears after the engineer logs on, through a secure connection, to a MTVMI hosting the virtual lab service.
- the screen of FIG. 9 corresponds to an entry point for the virtual lab service.
- the screen includes a tab labeled as dashboard 905 .
- Dashboard 905 includes information related to current projects and recently used items within the engineer's scope of user privileges.
- dashboard 905 includes a set of projects 910 , software libraries 915 , and labs 920 associated with the engineer.
- the projects 910 , libraries 915 , and labs 920 of FIG. 9 may be created within the illustrated application, or they may have been created previously.
- the engineer may simply select the lab from the list 920 shown under the heading “My Lab”.
- My Lab As an example, to select the lab illustrated in FIG. 11 , the engineer may select a lab 921 entitled “Company A—Build 1340 ”.
- the engineer may select a lab 922 entitled “Company A—Build 1341 ”. By selecting one of these labs, the user can bring up the screen shown in FIG. 11 or FIG. 12 , which will be described in further detail below.
- the engineer verifies the site's scalability and performance on virtual machines defined in the selected lab.
- a realistic test of a e-commerce site typically requires a large number of machines. However, the test generally only requires the use of the machines for a short period of time, say, a few days or weeks at most. Accordingly, by performing the test in this virtual lab, the engineer avoids the need to requisition actual hardware and the corresponding large expense, as would generally be required to test the site in a non-virtual environment.
- the virtual lab service In addition to eliminating the need to requisition physical hardware, the virtual lab service also enables the engineer to quickly configure and launch a test environment. In contrast, tests using actual machines often require hours of setup time for connecting machines, installing software, booting up the machines, and so on.
- virtual machines can be requisitioned and launched without requesting use of the virtual machines in advance. This is typically possible in a MTVMI where the amount of available computing power is large in relation to the instantaneous user demand.
- FIG. 10 shows a projects tab 1005 within the virtual lab service.
- Projects tab 1005 provides information 1010 regarding a particular project (“Company A—Security Verification”) accessible to the engineer, virtual machine configurations 1015 available within the project, running configurations 1020 within the project, and assets 1025 associated with the project.
- Comppany A—Security Verification a project that provides information 1010 regarding a particular project (“Company A—Security Verification”) accessible to the engineer, virtual machine configurations 1015 available within the project, running configurations 1020 within the project, and assets 1025 associated with the project.
- FIGS. 11 and 12 illustrate different labs available to the engineer. As seen in the figures, these labs each include a number of virtual machines. Each virtual machine is visually represented by a thumbnail image of the console display currently being generated by the virtual machine. For illustration purposes, each of the virtual machines has a been configured with a unique combination of computing characteristics, operating system, and status. For instance, in FIG. 11 , a web server 1105 is implemented by a virtual machine having a 1 GHz CPU, 1 GB of RAM, and running the Microsoft Windows operating system. Within a virtual network, web server 1105 has a network address “192.168.0.1” and a status “running”. Other virtual machines have different configurations, including different operating systems, different statuses, and so forth. Once machines are up and running in the illustration of FIGS. 11 and 12 , the engineer can click on a thumbnail image of any one of the virtual machines to interact with the machine through the engineer's local interface.
- each virtual machine e.g., running, booting, resuming
- the virtual lab service may allow users to modify virtual network settings such as domains, subnet attributes and IP addresses of virtual machines within a particular lab.
- the virtual lab service enables the user to generate a snapshot of one or more running virtual machines, such as a single virtual machine, all of the virtual machines in a virtual network, or all of the machines in a configuration.
- the user may select a visual control associated with the machine, network, or configuration in order to generate a snapshot.
- a snapshot is generated, complete state for each of the virtual machines including the snapshot is stored in the library. After the snapshot is generated, this item may be selected from the library in order to instantiate any number of new instances of the set of virtual machines that were the subject of the snapshot. This is useful, for example, to establish a large number of initially identical instances of a particular configuration. Also, in a testing project, it can be useful for a tester who has just produced an error in a configuration being tested to establish a snapshot of the configuration that can be reviewed later by a developer to determine the conditions under which the error occurred.
- the virtual lab service allows the user to generate for a particular virtual machine a URL that can be used, in the absence of any other identifying information, to access the console display for that virtual machine.
- This URL can be distributed to users that are not authorized under the tenant's account to provide access to this particular virtual machine to those users. Such access may permit only observing the console display of the virtual machine, or it may permit user interface interactions with the virtual machine.
- the user can click on a CD icon displayed by the MTVMI in connection with a virtual machine (not shown) in order to upload to the asset list and/or the library a virtual machine image or a software installation file such as an ISO file from the user client machine.
- FIG. 13 is a display diagram showing a sample display typically presented by the infrastructure in order to permit a user to control the operation of virtual machines.
- the display 1300 shows information 1310 and 1320 for two virtual machines.
- the information 1310 for the first virtual machine includes information describing the virtual machine, as well as the following controls: a run/suspend control 1311 for beginning or suspending execution of the virtual machine; a shut down control 1312 for invoking an operating system function on the virtual machine designed to turn the computer system running the operating system off; a power off control 1313 for immediately disabling the virtual machine and discarding its memory state; a RDP connection control 1314 for establishing an RDP connection with the virtual machine; an ISO control 1315 for loading a memory image ISO file from a CD-ROM to the virtual machine; a delete control 1316 for deleting the virtual machine; and a settings control 1317 for editing network and hardware attributes of the virtual machine.
- Each of controls 1311 - 1317 operate specifically with regard to the virtual machine identified by virtual machine information 1310 .
- the display also includes controls 1391 - 1394 which, when operated by the user, operate with respect to every virtual machine whose check box (e.g., check boxes 1319 and 1329 ) is checked.
- the display also includes controls 1381 and 1382 for respectively selecting all of the virtual machines and deselecting all of the virtual machines.
- FIG. 14 is a display diagram showing a sample display typically presented by the infrastructure to display information about and allow interaction with machine configurations available to a user.
- the display 1400 includes entries 1410 , 1420 , and 1430 each corresponding to a different machine configuration that is accessible to the user. In a manner similar to that discussed above in connection with FIG. 13 , these entries contain check boxes 1411 , 1421 , and 1431 , respectively. Each of these can be checked so that controls 1491 , 1492 , 1493 , and 1496 operate with respect to the corresponding virtual machine.
- the display also includes controls 1494 and 1495 for switching between a list view of configurations and a tiles view of configurations, respectively.
- FIG. 15 is a display diagram showing a sample display typically presented by the infrastructure to display information about and permit manipulation of machine configurations in a tiles view.
- the display 1500 includes sections 1510 , 1520 , and 1530 , each containing information about a different machine configuration.
- information 1510 about the first machine configuration shows two virtual machines, and includes controls 1512 , 1513 , and 1514 whose operation affects each of the virtual machines in the first configuration.
- Information 1510 further includes a check box, like check boxes 1521 and 1531 for other machine configurations, that determines whether controls 1591 , 1592 , 1593 , and 1596 apply to the configuration.
- FIG. 16 is a display diagram showing a sample display that is typically presented by the infrastructure in order to permit the user to specify automatic suspension of the virtual machines in a machine configuration.
- the display 1600 may be reached by selecting an auto-suspend control 1602 .
- the display includes information 1610 identifying the machine configuration.
- the infrastructure permits selection between the following options for suspending this machine configuration: an option 1621 not to automatically suspend this machine configuration; an option 1622 for suspending the machine configuration after all of the virtual machines in the configuration have been idle for at least a user-specified amount of time; and an option 1623 to suspend the virtual machines of the machine configuration at a user-specified time and date.
- the display also includes an update control 1630 for updating the auto suspension settings for this machine configuration.
- FIG. 17 is a display diagram showing a sample display typically presented by the infrastructure in order to publish URLs for accessing virtual machines of a machine configuration.
- the display 1700 can be reached by selecting a Publish VM URLs control 1701 .
- the display enables the user to determine with option 1710 whether URLs are generated and activated for accessing the consoles of the virtual machines of the current machine configuration. Where option 1710 is selected, the user can elect between option 1711 in which passwords are not required in order to access a virtual machine using its URL and 1712 where a user-specified password is required to access each virtual machine in the machine configuration.
- the user can determine whether to select option 1720 for allowing users who access a virtual machine in the machine configuration using its published URL to control the virtual machine as contrasted with merely viewing its console output. Also, where the user selects option 1710 , the user may elect between option 1721 to allow those in possession of a virtual machine's URL to access it at all times, and option 1722 to allow access only during a user-specified time-of-day range.
- the display 1700 also includes a save control 1730 to update these attributes of the current machine configuration.
- FIGS. 18 through 20 illustrate a library of virtual machine configurations available to the engineer within the virtual lab service.
- the library includes images of configurations that have been preinstalled with common operating systems, databases and applications. By creating a lab from pre-installed images, the user can save hours of manual installation tasks.
- Configurations 1805 shown in FIG. 18 have all been installed in the lab of FIG. 11 . These and other configurations such as those illustrated in FIG. 19 can be installed in labs or added to currently running configurations by actuating buttons within the interfaces shown in FIGS. 18 and 19 .
- the engineer may create labs from predefined configurations, the engineer could alternatively assemble and configure new machine configurations from scratch by specifying a new combination of virtual hardware, operating system, and so on. The engineer could then add the new configuration to an existing lab or create a new lab through the virtual lab service. In general, any new configurations created by a user be associated with that user or shared among other users within the MTVMI.
- the different instances are generally fenced off from each other. Fencing is typically accomplished by using a virtual private network to establish a separate virtual LAN for each network instance.
- the virtual machines in each of the instances of the network are assigned the same set of IP addresses. Accordingly, to provide independent access to the Internet for the virtual machines of each of the instances of the network, the network nodes and/or the firewall proxy requests from these virtual machines to the Internet, enabling the proxy to route the reply from the Internet to the correct one of the virtual machines having the source IP address associated with the original request. In various embodiments, this proxying is performed in a variety of ways, such as mapping each virtual machine instance to a different public IP address, URL, or combination or URL and port number.
- the engineer runs the web site on the virtual machine designated as web server 1105 . While running the web-site, web server 1105 stores and retrieves data from a virtual machine designated as a database server 1115 . Three virtual machines having a variety of configurations are designated as test clients 1110 for generating traffic for the web-site. Finally, a virtual machine designated as a test controller 1120 controls test clients 1110 to perform the test.
- FIG. 21 illustrates techniques that can be used to organize and share work within the virtual lab application.
- FIG. 21 illustrates test assets 2105 (i.e., test result data—an asset can be any proprietary data) that have been generated by tests performed by the engineer within the virtual lab service.
- the engineer can upload the assets into a library available to the public or to other users associated with the same tenant. This allows the engineer to share the assets with other users.
- the assets can be added to projects, as illustrated, e.g., by the information under the “assets” label in FIG. 10 .
- the assets become available to other users assigned to the project.
- web browsers and other tools executing on a virtual machine may be used to “pull” data and/or programs to a virtual machine from the Internet.
- FIG. 22 shows an aspect of the virtual lab application that allows an administrator to monitor use of the virtual lab service.
- the administrator may select various parameters from drop down menus in an area 2205 .
- the administrator may select a certain type of activity to monitor, such as CPU usage, memory usage, etc.
- the administrator may choose to monitor activity of certain users, activity around certain dates, and so on.
- Activity that falls within the parameters specified in area 2205 is displayed in an area 2210 .
- FIG. 23 is a display diagram showing a sample display typically presented by the infrastructure to show the consumption of resources relative to quotas across an entire customer as well as by an individual user.
- the display 2300 includes a section 2310 about consumption relative to quotas for the customer, and section 2320 for consumption versus quotas for the current user.
- the rows in each section are divided into two columns: usage column 2301 that shows the amount that has been used by the entity and limit column 2302 that shows the quota to which consumption is limited for the entity.
- the customer section 2310 includes row 2311 for number of hours that a virtual machine operates; row 2312 for the number of virtual machines allocated; row 2313 for the volume of persistent storage allocated; and row 2314 for the number of public IP addresses allocated.
- Section 2320 for the individual user includes corresponding rows 2321 - 2323 , showing the user's consumption and the user's limit as contrasted with the customer's total usage and limit.
- the display also includes a more concise version 2350 of this information that is suitable to be displayed on a variety of pages containing a variety of other information.
- FIG. 24 is a display diagram showing a display typically presented by the infrastructure to report on usage of resources including paid resources accessed via the marketplace.
- a paid item icon 2311 indicates that resource 2310 is paid.
- the entry includes information about the paid item including information 2312 and 2316 identifying the item, information 2313 identifying the vendor, information 2314 indicating the basis for which the item is metered for payment, and information 2315 indicating the cost of consuming the item.
- a tenant may specify specific levels of service to be provided by the MTVMI. For example, the tenant may specify that its labs run in a dedicated virtual machine host node, and/or access a dedicated storage node; specify that physical processor utilization be no greater than a level such as 75% on the virtual machine host nodes on which its labs execute; or specify a maximum level of resources of one or more types that the tenant can consume in a particular period of time.
- the MTVMI displays usage relative to the quota to one or more of the users for the tenant.
- the MTVMI is unique in delivering virtual datacenter Labs as a service over the Web based on a multi-tenant shared infrastructure. It provides key capabilities valued by customers in the initial target markets—QA, Staging, Training, and Pre-sales PoC—including:
- FIGS. 25-26 show additional conceptual diagrams illustrating the organization of the MTVMI in some embodiments.
- FIG. 25 shows the physical arrangement of hardware components of the MTVMI in some embodiments.
- FIG. 26 shows some of the services provided in connection with virtual private local area networks in some embodiments.
- FIGS. 27-46 are display diagrams showing displays presented by the MTVMI in some embodiments.
- FIG. 27 shows a display enumerating available configuration templates that is presented in some embodiments.
- FIG. 28 shows a display presenting information about a single configuration template that is presented in some embodiments.
- FIG. 29 shows a display for monitoring tenant resort resource usage that is presented in some embodiments.
- FIG. 30 shows a display that a tenant to configure user access permissions that is presented in some embodiments.
- FIG. 31 shows a display that enables a tenant quota to be specified that is presented in some embodiments.
- FIG. 32 shows a display for auditing resource usage across tenants that is presented in some embodiments.
- FIG. 33 shows a display for monitoring tenant resource usage with respect to quotas that is presented in some embodiments.
- FIG. 34 shows a display for monitoring the status of virtual machine host nodes is presented in some embodiments.
- FIG. 35 shows a display for controlling network settings for a virtual local area network is presented in some embodiments.
- FIG. 36 shows a display for reviewing and modifying project settings that is presented in some embodiments.
- FIG. 37 shows a display for navigating information associated with a virtual lab service is presented in some embodiments.
- FIG. 38 shows a display identifying users associated with a tenant that is presented in some embodiments.
- FIGS. 39 and 40 are displays showing available virtual machine configurations that is presented in some embodiments.
- FIG. 41 shows a display identifying tenants is presented in some embodiments.
- FIG. 42 is a display identifying users associated with each tenant that is presented in some embodiments.
- FIG. 43 is a display showing assets available within the virtual lab service is presented in some embodiments.
- FIG. 44 is a display showing information about a virtual machine configuration is presented in some embodiments.
- FIG. 45 shows a display for authenticating a third-party software license purchased by a tenant is presented in some embodiments.
- FIG. 46 shows a display for activating a pre-installed instance of an operating system using a license key owned by, a tenant that is presented in some embodiments. It can be seen that the display includes tabs, such as tabs “Windows Server 2003 Standard” and “Windows Server 2003 Enterprise R2 SP2,” that each refer to a different virtual machine. The user can of the corresponding virtual machine.
- FIGS. 47-49 show a user interface designed for use by vendors offering items for sale via the marketplace.
- FIG. 47 is a display diagram showing a sample display typically presented by the infrastructure in order to register a new vendor for the marketplace.
- the display enables a user associated with the vendor to enter the following information about the vendor: the company name 4701 of the vendor; the company address 4702 of the vendor; the contact name 4703 of a contact at the vendor; the email address 4704 of the contact; a phone number 4705 of the contact; and a password 4706 to be used by the vendor to access a vendor portal for interacting with the marketplace.
- the user can select a submit control 4710 to generate a profile that is based upon the inputted information.
- FIG. 48 is a display diagram showing a sample display typically presented by the infrastructure in order to enable a vendor to list a new item for sale in the marketplace.
- the display 4800 is typically made available to a user associated with the vendor in response to that user signing into the vendor portal on behalf of the vendor.
- the display includes information 4801 identifying the vendor. The user can use the display to input the following information about the item to be listed: the name 4811 of the item; a description 4812 of the item; a support link 4813 for the item; and a date 4814 on which the listing will expire.
- the user may also input pricing for any of a number of different pricing schemes, including: the per month cost 4821 for each user who uses the item; the per year cost 4822 for each user who uses the item; the per hour charge 4823 for the item; and the one-time charge 4824 per user for using the item.
- pricing for any of a number of different pricing schemes, including: the per month cost 4821 for each user who uses the item; the per year cost 4822 for each user who uses the item; the per hour charge 4823 for the item; and the one-time charge 4824 per user for using the item.
- the display further includes controls 4831 and 4832 for specifying a path to the file containing the item that is to be uploaded to the infrastructure from the vendor's computer system. The user can select submit control 4840 in order to create a listing in accordance with the inputted information.
- FIG. 49 is a display diagram showing a sample display typically presented by the user in order to account to a vendor for revenue generated by the vendor's items in the marketplace.
- the display 4900 shows a period 4901 such as a month, to which the displayed accounting applies.
- the user can select controls 4902 or 4903 to navigate to display an accounting for other periods of time.
- the display includes a table in which each row corresponds to a particular basis for charging customers for a particular item. These rows are grouped into group 4920 for the Crossbow Debugger item and group 4930 for the Image Cropper item.
- Each row is divided into the following columns: an item column 4911 identifying the item; a rate column 4912 identifying the rate charged to users for the payment option to which the row corresponds; a units column 4913 showing the number of units of that charging option that were consumed by customers during the selected period; a revenue column 4914 showing the revenue produced in connection with the current item and charging option during the selected period; and an item title total column 4915 showing, for the last row of each group, the amount of revenue generated by the item during the selected period.
- the display also includes an indication 4940 of the gross revenue for the selected period, and an indication 4950 showing the portion of the revenue that is retained to support the operation of the marketplace, and an indication 4960 of the net revenue to the vendor for the selected period.
Abstract
A multi-tenant virtual machine infrastructure (MTVMI) allows multiple tenants to independently access and use a plurality of virtual computing resources via the Internet. Within the MTVMI, different tenants may define unique configurations of virtual computing resources and unique rules to govern the use of the virtual computing resources. The MTVMI may be configured to provide valuable services for tenants and users associated with the tenants.
Description
- This application is a divisional application of U.S. application Ser. No. 12/434,621, filed May 2, 2009, entitled MULTITENANT HOSTED VIRTUAL MACHINE INFRASTRUCTURE, which claims the benefit of each of U.S. Provisional Patent Application No. 61/050,163, filed on May 2, 2008, and U.S. Provisional Patent Application No. 61/101,665, filed on Sep. 30, 2008, each of which is hereby incorporated by reference in its entirety.
- This application is related to and incorporates in their entirety U.S. Non-Provisional application entitled MULTITENANT HOSTED VIRTUAL MACHINE INFRASTRUCTURE (Attorney Docket No. 64710.8002US08) filed concurrently herewith, U.S. application Ser. No. 13/276,153, filed Oct. 18, 2011, U.S. application Ser. No. 13/619,959, filed Sep. 14, 2012, U.S. application Ser. No. 12/434,619, filed May 2, 2009, U.S. application Ser. No. 12/434,620, filed May 2, 2009, and U.S. application Ser. No. 12/434,621, filed May 2, 2009, each of which is hereby incorporated by reference in its entirety.
- A virtual machine is a software construct designed to run computer programs like a real physical machine. As an example, a virtual machine may comprise various software components for running executable code written for a particular computing platform. Such executable code may include, among other things, operating system code, application programs, software drivers, and so on.
- A virtual machine does not necessarily have a direct correspondence to a real physical machine; however, virtual machines are often designed to imitate the behavior of specific hardware architectures. As an example, a virtual machine may be designed to imitate the behavior of an x86 processor.
- Virtual machine infrastructures (VMIs) have been developed to coordinate user access to collections of virtual machines and to provide additional features such as virtual networking capability, virtual data storage management, and so forth. In general, a VMI comprises a set of physical computational resources, virtualization software for creating virtual machines on the physical computational resources, and management software for managing the virtual machines and coordinating access to the virtual machines.
- In one example, a VMI comprises a set of physical computers each running multiple virtual machines. Users at separate remote-access consoles access the different virtual machines over a local area network. Each console includes a virtual machine interface designed to allow a user to interact with a virtual machine in the same way that the user would interact with a local machine. For instance, the virtual machine interface may present a user desktop and explorer windows similar to those found in an ordinary personal computer.
- Within a VMI, different virtual machines may be individually configured according to the users' unique needs and preferences. For instance, the different virtual machines may run different types of operating systems (e.g., Windows, Linux), allowing the users to use different operating-system-specific programs within the VMI. Additionally, each of the virtual machines may provide a different level of performance so that the resources of the single physical computer can be efficiently divided among users having different computational demands.
- Recently, large enterprises have begun employing complex VMIs to provide virtual computing resources for large groups of users. These users may work together, but have different computational demands. As an example, a company with hundreds of employees may set up a virtual data center comprising many physical machines each configured to run several virtual machines for use by the employees.
- The virtual machines can be configured in accordance with the different computational demands and preferences of the different employees. For instance, an employee whose job requires a significant amount of computing power—say, an engineer who runs test simulations on complex circuits—may use a virtual machine configured with higher throughput and more memory, compared with an employee whose job only requires the use of a few simple programs such as a word processor and an Internet browser. Similarly, an employee whose job requires a relatively high level of system access—say, a system administrator—may use a virtual machine configured with a higher level of access within the VMI compared with an employee whose job requires a relatively lower level of access.
- Conventional VMIs are designed for use within a single organization, i.e., a single company or group of users. In this type of VMI, the operation of the virtual machines is governed by a common set of rules, such as a common hierarchy of access rights, usage rights, quality of service guarantees, and naming conventions. Additionally, in this type of VMI, the configuration of resources is controlled by a single administrative entity, i.e., a single system administrator or group of system administrators.
-
FIG. 1 is a conceptual diagram providing a system-level overview of a hosted multitenant virtual machine infrastructure (MTVMI) in accordance with in some embodiments; -
FIG. 2 is a flowchart illustrating the use of a MTVMI by a new tenant in some embodiments. -
FIG. 3A is a flowchart illustrating the use of a MTVMI by a user associated with a particular tenant in some embodiments. -
FIG. 3B is a display diagram showing an example browser that could be used to log into a MTVMI, and a resulting screen that may appear in the user's display upon logging in to the MTVMI in some embodiments. -
FIG. 4 is a flowchart illustrating the operation of a MTVMI in relation to a tenant in some embodiments. -
FIG. 5 is a flowchart illustrating the operation of a MTVMI in relation to a user in some embodiments. -
FIG. 6 is a conceptual diagram providing a more detailed system-level overview of a hosted multitenant virtual machine infrastructure in some embodiments. -
FIG. 6A is a block diagram illustrating a storage manager in some embodiments. -
FIG. 7 is a flowchart illustrating the provision of a software brokering service by an MTVMI in some embodiments. -
FIG. 8 is a flowchart illustrating the provision of a virtual lab service by an MTVMI in some embodiments. -
FIG. 9-25 are display diagrams showing a typical user interface presented by an example software application running on a MTVMI to provide a virtual lab service in some embodiments. -
FIGS. 25-26 show additional conceptual diagrams illustrating the organization of the MTVMI in some embodiments. -
FIGS. 27-46 are display diagrams showing displays presented by the MTVMI in some embodiments. -
FIGS. 47-49 show a user interface designed for use by vendors offering items for sale via the marketplace. -
FIG. 50 is a block diagram illustrating a data model representation of virtual data centers in the MTVMI management application in some embodiments. -
FIG. 51 is a block diagram illustrating component processes in the MTVMI management application in some embodiments. -
FIG. 52 is a block diagram illustrating the organization of the data model that supports access control mechanisms of MTVMI management application in some embodiments. -
FIG. 53 is a block diagram illustrating the organization of the data model that supports resource usage quota mechanisms of MTVMI management application in some embodiments. - A variety of embodiments will now be described. These embodiments are provided as teaching examples and should not be interpreted to limit the scope of the invention. Although specific details of the embodiments are presented, these embodiments may be modified by changing, supplementing, or eliminating many of these details.
- A shared computing infrastructure (“the infrastructure”) is described. In some embodiments, a user can exploit the entire infrastructure using a standard web browser, without having to install any specialized applications. The infrastructure supports the deployment of virtual data centers, wherein each cluster comprises one or more virtual machines capable of transparently interfacing with computing resources located elsewhere in the Internet. As an example, the infrastructure may execute a virtual machine cluster on physical machines within the infrastructure, while users control the virtual machines through personal computers connected to the infrastructure via the Internet.
- The shared computing infrastructure may incorporate a software environment and interface capable of facilitating the automation of specific virtualized infrastructure based services. As an example, the infrastructure may incorporate a software platform that implements a portal where users can develop and exchange data that may be useful within the infrastructure. This data could include, e.g., virtual network configurations and software applications that could be run within the virtual infrastructure. The data could be developed by individual users or by group collaboration within the infrastructure. Additionally, the data could be exchanged with or without monetary payments.
- For explanation purposes, the shared computing infrastructure will be referred to as a multi-tenant virtual machine infrastructure (MTVMI). A MTVMI is a VMI adapted for use by multiple tenants, where each “tenant” is an independent entity (e.g., a set of users within a single company or other organization) whose access to and use of the MTVMI is governed by a unique and independent set of rules. For instance, each tenant in a MTVMI may have a unique and independent authentication mechanism, access control model, hierarchy of rights and privileges, resource allocation control model, resource usage control, quotas, service level agreements, and billing.
- Although the term “tenant” generally has a connotation related to the rental or occupation of property or space, “tenant” in the current context should not be limited to entities having certain legal or logistical agreements or arrangements relative to the MTVMI; neither should it be limited to entities who occupy a certain quantity of space or resources within a MTVMI. Rather, “tenant” here merely refers to any entity having a certain logical relationship with the MTVMI as demonstrated by the examples and explanations presented in this written description.
- Examples of multiple tenants sharing a MTVMI include different companies or groups of individual users. For instance, an MTVMI could be shared by multiple large corporations each having its own cluster of virtual machines, its own virtual storage management system, and so on.
-
FIG. 1 is a conceptual diagram providing a system-level overview of a hostedMTVMI 100 in accordance with an embodiment of the invention. As seen inFIG. 1 ,MTVMI 100 comprises a physical infrastructure resident at the MTVMI provider's site,virtual infrastructure 105, asoftware library 110, and aMTVMI management application 115. - The left side of
FIG. 1 showsdifferent tenants Internet 120. Different users amongtenants MTVMI 100 over corresponding secure Internet connections. Typically, a user accessesMTVMI 100 by logging on to the infrastructure through an Internet browser. Once the user logs on toMTVMI 100, a user interface forMTVMI 100 appears in the user's computer display to allow the user to access various features ofMTVMI 100. In some embodiments, the user interface appears similar to a normal computer desktop, so that the user's experience is substantially the same as it would be if the user was interacting with a set of local resources. The user interface enables a user associated with a tenant to manage virtual machines, such as by creating, configuring, starting, and stopping virtual machines. - In general, tenants can access
MTVMI 100 over the Internet from any Internet-enabled device. As examples, the MTVMI can be accessed through personal computers, Internet-enabled personal digital assistants (PDAs), and Internet-enabled cell phones. In some embodiments, where a user accesses theMTVMI 100 using a portable device such as a PDA or cell phone, the user does so with a web browser installed in the device, much like the user would do in a personal computer. - Each tenant of
MTVMI 100 operates within its own unique virtual environment. The environment for each tenant may include, for example, one or more unique virtual data centers each comprising a set of virtual machines, virtual storage, and virtual network accessible to the tenant's users. The environment may further include methods for managing the cluster, such as a hierarchy of user access rights, limits on the amount of central processing unit (CPU) time and storage space available to the users, and so on. Additionally, the environment for each tenant may provide the tenant's users with access to specific software applications found insoftware library 110, as well as one ormore labs 112 corresponding to instantiated virtual data centers that can be executed. - Within
MTVMI 100,virtual infrastructure 105 comprises both a physical platform for running virtual machines, virtual storage, and virtual network, and a software platform enabling the creation and management of the virtual machines, virtual storage, and virtual network. The physical platform may comprise computer hardware such as storage system and media, servers comprising CPUs, memory, and related processing components, and networking hardware such as network switches, routers, etc. The software platform may include, e.g., a hypervisor for each server, and software components for the storage system and networking components and software for managing them. - Within
virtual infrastructure 105, different functional components can be roughly partitioned into three groups, including network nodes, virtual machine host nodes, and storage nodes. Network nodes include both hardware and software components for implementing virtual network functionality, virtual machine nodes include hardware and software components for creating and hosting virtual machines, and storage nodes include hardware and software components for implementing virtual data storage. - The composition and operation of example network nodes, virtual machine host nodes, and storage nodes is explained further below with reference to
FIG. 6 . Although the description treats these different nodes as separate features, it should be recognized that the functionality of these nodes can be implemented by different hardware and software arrangements. Moreover, the functionality of the different nodes will not necessarily be implemented within different physical or logical structures. In other words, some components may implement functions for more than one type of node. -
Software library 110 comprises a collection of software programs, data objects, and/or virtual data center configurations for use by different tenants ofMTVMI 100. The software programs may include, among other things, specific operating systems to be run on virtual machines, application programs to run within the virtual machines, and any code used by tenants to maintain their own virtual resources. The data objects may include, for example, database files, software configuration files, and so forth. The virtual data center configurations may include, e.g., specifications of network topologies, and hardware and software specifications for individual virtual machines within virtual networks. One example configuration for a virtual machine could include 2 GHz virtual CPU and 1 GB RAM, and run Windows XP. - Some of the programs and data in
software library 110 may be commercial software requiring individual or corporate user-licenses. The licensing of these programs or data may be regulated in any of several different ways. As examples, tenants or individual users could provide their own license keys for the programs, or licenses could be provided as part of a tenant's agreement for using the MTVMI. In some embodiments,MTVMI 100 includes mechanisms for automatically negotiating the licenses with third party software providers in real time. In some embodiments, licenses are purchased by the entity hosting theMTVMI 100 so that users are not required to obtain their own licenses. - In some embodiments,
software library 110 is divided into public and private libraries. A public library is a portion ofsoftware library 110 accessible to anytenant using MTVMI 100. A private library, on the other hand, is a portion ofsoftware library 110 accessible to only a subset of thetenants using MTVMI 100 or to a subset of users belonging to a tenant. Public libraries may include, for instance, freeware software applications, commercial operating systems and applications that can be provided to tenants for a charge based on usage, shared data, and so on. Private libraries may include, for instance, licensed or proprietary software for use by individual tenants, specific data objects related to work performed by the tenant or the configuration of a tenant's virtual network. In some embodiments, a library can contain a commercial operating system, application, or other program that, when installed on a virtual machine, will be customized with a license key owned by the installing tenant. - In addition to specific software programs and data structures,
software library 110 may further include specific virtual data center configurations for use by individual tenants. A virtual data center configuration stored in the software library contains complete information for instantiating a set, or “cluster” of virtual machines connected by a virtual network. The virtual data center configuration specifies capabilities of each virtual machine to be instantiated in the cluster, including such attributes as number of processor cores, amount of memory, operating system for which the virtual machine is to be optimized, etc. The virtual data center configuration further contains complete state for each virtual machine to be instantiated. Such state generally includes contents of a disk volume to be accessible by the virtual machine, and may also include memory contents of the virtual machine, and/or processor status for the virtual machine, including contents for registers including program counters. In some embodiments, a user may upload a virtual machine image generated outside the MTVMI. This virtual machine image can be stored in the library, and instantiated by the MTVMI in a lab. - Each of the
labs 112 is an instance of a virtual data center created by a tenant's user using the content in the software library. As an example, one virtual data center may include several virtual machines with a particular operating system and particular applications, as well as virtual storage, that is together performing a batch application. The labs for a tenant may consist of any number of such configuration instances, which can be in varying states, including running and stopped. - Further descriptions of software libraries and labs are provided below with reference to
FIGS. 11-20 . Various additional functions and benefits ofsoftware library 110 will be readily apparent from the descriptions ofFIGS. 11-20 . -
MTVMI management application 115 controls and monitors interactions between tenants andMTVMI 100. Additionally,MTVMI management application 115 allocates resources among different tenants and coordinates the use ofMTVMI 100 by the different tenants. Various management related tasks performed byMTVMI management application 115 may include, as examples, authenticating users, allocating CPU time and storage space among different tenants, maintaining logical isolation between different tenants, tracking each tenant's usage ofMTVMI 100, and many others. Additional examples of specific functions that can be performed byMTVMI management application 115 are described below in relation toFIG. 6 . - Tenant information such as virtual data center configurations and stored data within
MTVMI 100 may be generated in a variety of different ways. For instance, in some embodiments, the tenant information may be generated by a tenant's privileged user through manual operations on theMTVMI 100 using its graphical interface. Alternatively, virtual data center configurations and other tenant information can be generated forMTVMI 100 by providing a machine container that describes an existing physical or virtual machine or cluster to a module withinMTVMI 100, and operating the module to generate a virtual data center configuration for use withinMTVMI 100. Moreover, virtual data storage facilities can be established and initialized withinMTVMI 100 by downloading data from an existing data storage platform intoMTVMI 100. -
FIG. 2 is a flowchart illustrating the use of a MTVMI by a new tenant in some embodiments.FIG. 2 is intended to provide a very broad illustration of the tenant's interactions with the MTVMI, beginning with the initial establishment of a usage agreement between the tenant and an MTVMI host. In the description that follows, it can be assumed that actions performed by the tenant are actually carried out by a representative of the tenant, such as a system administrator or another authorized individual. - Referring to
FIG. 2 , instep 205, a tenant establishes a relationship with a MTVMI host by submitting a subscription request to the host. In the subscription request, the tenant may specify, among other things, a desired amount of resource usage within the MTVMI, any desired features such as access to particular software applications, and other terms for governing tenant's use of the MTVMI. A tenant's resource usage can be measured in any of several different ways, including, e.g., by a total amount of CPU time used by the tenant, or by a total amount of time that users are logged on to the MTVMI. - Once a tenant has subscribed to use the MTVMI, the tenant may establish its own virtual data center within the MTVMI. The tenant's virtual data center may include, among other things, a set of virtual machines, a set of virtual networks, and a set of data storage resources. The performance and capacity of the tenant's virtual data center may be limited by the tenant's subscription agreement; however, the tenant is generally free to configure the logical structure of the data center in any way desired. At a high level, the tenant's process of establishing a virtual data center may be compared, by analogy, to the process that an organization goes through to establish a physical data center, by purchasing a set of physical resources, connecting the resources together, and getting the resources to communicate with one another. However, in contrast to a physical data center, a virtual data center requires significantly less legwork on the part of the system architects, and therefore tends to require much less time and expense.
- As part of establishing the virtual data center, in
step 210, the tenant establishes rules to govern use of the virtual data center. Examples of these rules include, among others, a hierarchy of access rights and software license privileges for different users, constraints on network topology or evolution, and limits on the amount of computational bandwidth and storage space allocated to different users. The access rights, in addition to limiting use of certain resources by certain users, may also limit the ability of certain users to change aspects of the virtual data center, e.g., by adding additional machines, and so forth. In many regards, the rules governing the virtual data center can be established so they are similar to the rules that govern ordinary, physical data centers in most organizations. The MTVMI provides the environment and tools for the tenant's user to establish these governance rules. - Once rules have been established for the virtual data center, in
step 215, individual resources of the data center are configured. For instance, certain software can be associated with certain virtual machines, certain users can be assigned as the primary users for particular machines, and so on. In this regard,step 215 is similar to the process of installing software and setting up user-accounts in a normal non-virtual data center. - Once resources have been configured for the virtual data center, in
step 220, the tenant may continue to perform maintenance and monitoring on its virtual data center while the virtual data center is being used by the tenant's users. The maintenance and monitoring may include upgrading and patching various components, modifying the set of users associated with the tenant, measuring the resource usage by different users, and so on. - Those skilled in the art will appreciate that the steps shown in
FIG. 2 and in each of the flow charts discussed below may be altered in a variety of ways. For example, the order of the steps may be rearranged; some steps may be performed in parallel; shown steps may be omitted, or other steps may be included; etc. -
FIG. 3A is a flowchart illustrating the use of a MTVMI by a user associated with a particular tenant in some embodiments. To use the MTVMI, instep 305, the user opens an Internet browser. As explained above, the Internet browser may be included in any type of web-enabled device, including, e.g., a personal computer, a web-enabled cell phone, or a PDA. - After opening the Internet browser, the user enters a URL for the MTVMI to load an MTVMI access portal website into the browser. In
step 310, the user logs onto the MTVMI through the access portal by supplying credentials such as a user name and password to the portal. - After the user logs onto the MTVMI, the user has access to the software library, labs, and data store. The lab can have multiple configuration instances, each of which can have multiple virtual machines. The display of the user's machine may be modified to show a desktop for any instantiated virtual machine in the labs. The desktop may resemble an ordinary computer desktop as is normally displayed on a personal computer. As a result, the user may interact with the virtual machine in essentially the same way that the user would interact with a local machine.
-
FIG. 3B is a display diagram showing anexample browser 350 that could be used to log into a MTVMI, and a resultingscreen 355 that may appear in the user's display upon logging in to the MTVMI. As seen inFIG. 3B , the user may have access to a virtuallocal disk 365, anddocuments 360 stored in a virtual storage platform. In addition tolocal disk 365, the user may also have access to other virtual machines within a virtual data center created by the tenant. In one embodiment, these additional virtual machines may be accessible through an icon such as the “My Network Places”icon 370 displayed on thescreen 355. - Once the user is logged onto the MTVMI, the user may interact with the virtual machine in much the same way that the user would interact with a non-virtual local machine. In addition, as will be described in greater detail with reference to
FIGS. 7-22 , a user who has logged onto the MTVMI may also perform actions such as creating a lab with multiple virtual machines, and installing custom software applications on the different virtual machines for specific tasks. -
FIG. 4 is a flowchart illustrating a method of operating a MTVMI in relation to a tenant in some embodiments. The method ofFIG. 4 can be viewed as a counterpart to the method illustrated inFIG. 2 . In other words, whileFIG. 2 illustrates actions performed by a tenant in relation to the MTVMI,FIG. 4 shows actions performed by the MTVMI in relation to a tenant. In general, the actions of the MTVMI may be performed by a MTVMI management application such as that illustrated inFIGS. 1 and 6 . - Referring to
FIG. 4 , instep 405, the MTVMI receives a subscription request from a new tenant. As described above in relation toFIG. 2 , the subscription request may include, among other things, information specifying desired usage rights for the new tenant. Instep 410, the MTVMI generates account data for the new tenant based on the information provided with the subscription request. The account data may include, e.g., information for regulating MTVMI access and usage by the tenant, such as a data storage quota, authorized users associated with the tenant, a CPU quota, network bandwidth quota, and user authentication information. - After the account data is generated, in
step 415, the MTVMI allocates tenant resources, such as data storage space, CPU time, and so forth. In some embodiments, these resources are allocated on an on-demand basis. In other words, resources such as storage space and CPU time are only allotted to a tenant when the tenant performs an operation requiring the resources. In other embodiments, however, resources may be reserved for use by individual tenants, regardless of whether the tenants currently need resources. -
FIG. 5 is a flowchart illustrating the operation of a MTVMI in relation to a user in some embodiments. The method ofFIG. 5 can be viewed as a counterpart to the method illustrated inFIG. 3 . In other words, whileFIG. 3 illustrates actions performed by a user in relation to the MTVMI,FIG. 5 shows actions performed by the MTVMI in relation to a user. - Referring to
FIG. 5 , instep 505, the MTVMI receives user login and/or authentication information. Based on this information, the MTVMI determines whether to allow the user to access the MTVMI. Upon granting the user access to the MTVMI, instep 510, the MTVMI allows the user to configure a lab and any related software. Instep 515, the MTVMI allows the user to perform authentication of any licenses for selected software. Alternatively, the MTVMI selects a predefined virtual machine configuration for the user. Upon determining virtual resources and any configuration to be used by the user, instep 520, the MTVMI binds the selected predetermined virtual machine configuration to a virtual host by communicating with the hyperviser for the virtual host. In step 530, the MTVMI begins executing the resources. During the execution of virtual machines within MTVMI, the MTVMI may run a console application to generate information on the user's display. In particular, the user can view and interact with the desktop console of the virtual machine in a display such as that shown inFIG. 3B . -
FIG. 6 is a conceptual diagram providing a more detailed overview of hostedMTVMI 100 shown inFIG. 1 in some embodiments. Further to the description ofFIG. 1 ,FIG. 6 , shows various example components that may be included invirtual infrastructure 105,software library 110,labs 112, andMTVMI management application 115. - In the example of
FIG. 6 ,virtual infrastructure 105 comprises a plurality ofnetwork nodes 605, a plurality of virtualmachine host nodes 610, and a plurality ofstorage nodes 615, each of which can be implemented using either general purpose commodity server hardware or server hardware more specialized to the roles of network processing, virtual machine execution, and high-volume reliable storage, respectively. - Each of the
network nodes 605 comprises one or more physical machines that establish a virtual LAN for each virtual network specified by one of thelabs 112. A virtual network connects together the virtual machines of a network, and enables them to access their corresponding virtual data stores on the storage nodes. In particular, to implement a virtual LAN, the network nodes establish an independent set of network services for each virtual LAN. These network services include such network services as virtual private network, firewall, network address translation, dynamic DNS, dynamic host configuration protocol service, and traffic shaping. In some embodiments, one or more of these services can be disabled for a particular virtual network. In some embodiments, the separate sets of network services are used to meter the usage of network bandwidth and/or network services individually for each virtual network. In some embodiments, the user may configure a virtual data center to specify whether, for each of these network services, a standard version is executed in the network node, or a specialized version is executed in the virtual machine. In a similar manner, the user can configure other networking aspects of the virtual LAN, such as by setting their own static IP addresses which are private only or public, connecting individual VPNs from each virtual machine to their own corporate data center, collectively connecting all the virtual machines in a configuration to their own corporate data center, setting their own domain name, running their own domain name server etc. In some embodiments, one or more of these network nodes work cooperatively as a load-balancing cluster or a failover cluster. - Each of virtual
machine host nodes 610 comprises one or more physical machines capable of executing one or more virtual machines. Each physical machine has a corresponding hypervisor and the one or more virtual machines runs on top of the hypervisor. - Each of
storage nodes 615 comprises one or more physical data storage media. These storage media may provide virtual storage for virtual machines and virtual data clusters running within the MTVMI. In some embodiments, the MTVMI uses load-balancing techniques to select for each virtual machine the storage node that is assigned to provide virtual storage to the virtual machine. In some embodiments, the MTVMI further provides intelligent data placement, dynamic data replication, and/or dynamic data migration. Intelligent data placement involves strategically selecting one or more storage nodes in which to store particular data. For example, an image for a popular operating system may be placed on multiple storage nodes in order to provide for high expected demand for the operating system among virtual machines. Dynamic data replication involves creating additional copies of particular data on different nodes in order to provide better performance for accessing the data. Dynamic data migration involves moving data to a different storage node, such as to relieve a bottleneck. Typically, these mechanisms are implemented by monitoring and collecting data about the behavior of host nodes and/or storage nodes and associated workload levels, such as which objects are more used than others, and policy intelligence for making determinations based upon this input. In some embodiments, the storage nodes provide virtual network attached storage devices for use by virtual machines running within the MTVMI. - In some embodiments, the MTVMI uses copy-on-write techniques that represent a child image stored at a later time for particular virtual machine as a set of changes made to a parent image stored for that virtual machine at an earlier time. In such embodiments, a dependency exists in the child image on the parent image. Where the parent image is to be moved to a different storage node, the MTVMI may migrate the child image with the parent image, or it may break the dependency of the child image on the parent image by transforming the representation of the child image into a complete copy of the child image.
- Additionally, storage nodes may provide long and/or short term data storage for tenant information such as virtual data center configurations, and data archives. In various alternative embodiments,
storage nodes 615 may be populated by users or tenants directly interacting withMTVMI 100, or through automatic processes such as automatically downloading content stored in another data storage system. - The Storage Manager component of the VLAB is responsible for all storage-related operations. The Storage Manager defines a distinct layer on top of the underlying storage products. The purpose of this layer is to present a unified view across these mechanisms, both to centralize storage knowledge within the application and to insulate the rest of the application from the numerous details of the actual storage implementation.
- This layering supports:
-
- portability across a wide range of lower-level storage implementations, allowing different COTS storage products to be deployed on the VLAB as needs determine
- improved supportability and maintainability
- optimal use of underlying storage capabilities, as the upper layer interrogates the lower layers as to capacity/usage, load, and health status and then delegates specific operations to the selected node
- unified management of basic storage operations that can span multiple or dissimilar underlying storage products—e.g. backing up, relocating, or replicating data
- redundant data storage for improved availability
- horizontal scalability (by adding nodes and agents)
- resource isolation, for performance, security or availability considerations—e.g., by isolating a specific tenant's use of storage to a specific subset of nodes
- The Storage Manager is comprised of:
-
- A collection of “storage nodes” which provide the actual storage. In some embodiments, these are COTS (Common Off The Shelf) storage products. There may be several types (with distinct capabilities) present in the system at any time.
- A collection of agent processes that run on or near the storage nodes. Each agent acts as an adapter that supports a common API and semantics across the different underlying storage systems.
- A client library that is embedded into client processes. The library provides local-API access to all storage capability, manages the overall state of the storage subsystem, acts as a communication channel to the agents, and collects performance and load data for the agents.
- A database and tables that store the state of the storage subsystem and allows concurrent operations to proceed safely.
- Overall, the client processes that embed the client library determine how to allocate responsibilities to individual storage nodes. For example, the client processes determine: for particular data that is to be stored, on what storage node(s) to store it; when to move particular data from one storage node to another; when to replicate data on one storage node to another; and, in response to a retrieval request for particular data that is stored on each of multiple storage nodes, which node to retrieve the data from. In making such determinations, the client processes consider content, capacity/usage, performance, load, health, and affinity information that the Storage Manager collects and maintains for each of the storage nodes. In many cases, determinations made by client processes involve determining a subset of feasible nodes, then selecting a node from among the feasible nodes.
- If new content must be stored that has a dependency on pre-existing content (e.g., creating a copy or snapshot of existing content), then the nodes that have that pre-existing content are the subset of feasible nodes. If content must be retrieved, then the subset of nodes that have that specific content is the feasible subset. In selecting one node from among the set of feasible nodes, the client processes seek to avoid nodes that are less healthy (e.g., their disks are in a degraded state) and to prefer nodes that have lower usage and load. Other choices are possible. In particular, tenants of the service can be assigned an affinity to a specific subset of nodes (and vice versa where a node is assigned affinity to a subset of tenants), such that requests on behalf of that tenant will target this subset of affinity nodes.
- Logic to determine which content should be replicated or migrated and to which node is also based on the same attributes as above. The logic additionally schedules these operations during a window when there is less performance impact. In addition, system administrators can manually trigger replication/migration of specific data to specific nodes.
-
Software library 110 comprises software programs for use by tenants and associated users who interact withMTVMI 100. As examples,software library 110 may include a library of commercial and/or private software applications available to a tenant, and a set of software configurations created by the tenant or accessible to the tenant. In some embodiments,software library 110 may be connected to a licensing module to negotiate on-demand licensing of proprietary software to tenants, or management of a limited number of existing licenses among multiple users. -
Management application 115 comprises components for managing and monitoring user access to MTVMI 100. As shown inFIG. 6 , for instance,management application 115 may comprise an account management component for managing a tenant's account data, a remote console component for displaying a graphical user interface in a user's local display, a monitoring and metering component for tracking resource usage by different tenants and users, a backup component for maintaining backup copies of the data stored bystorage nodes 615, an audit logs component for maintaining audit logs documenting all the actions performed by each tenant's users, a network manager component for allowing a tenant to connect its own physical data center resources toMTVMI 100, a VM host manager component for controlling the creation and functioning of virtual machines withinMTVMI 100, and a storage manager component for coordinating tenant and user access tostorage nodes 615. - In addition to these components, in some embodiments,
management application 115 further includes a billing system component for monitoring a tenant's use of resources withinMTVMI 100 and producing an invoice. The monitoring may occur, for example, by tracking the amount of CPU time or data storage consumed by the users associated with each tenant. - In some embodiments,
management application 115 further comprises a resource allocation module for facilitating inclusion of external (i.e., non-local or other third party) resources intoMTVMI 100. In this way,MTVMI 100 can be used to provide potentially brokered access to computing, storage and network resources regardless of where the resources are physically located. Such access can be provided according to policies for achieving any number of tenant or user objectives, such as, e.g., cost, reliability, security, availability, and performance. - In some embodiments,
management application 115 further includes a module for specifying a grid configuration of a virtual network based on input from a tenant. A grid configuration is a specification of the topology of a set of virtual machines and related networks and storage systems. The grid configuration module could generate the grid configuration by receiving a tenant's description of an existing physical or virtual network in the form of a tenant-created file or data structure, and then modifying the description into a form usable byMTVMI 100. The grid configuration can subsequently be imaged ontoMTVMI 100 for use by particular tenant or user. -
Management application 115 may further comprise a security component for allowing tenants to restrict the rights of users to specific physical or virtual resources, configurations, and other software resources withinMTVMI 100. For instance, when establishing an account forMTVMI 100, a tenant could specify a set of users with access to a particular software suite withinMTVMI 100, and a set of users without access to the software suite. The security component could then, monitor access to the suite based on the tenant's specification. Additionally, the security component could issue alters or perform other actions in response to attempts at illicit access, etc. - In some embodiments,
management application 115 further comprises policy component allowing tenants to modify resource quotas among individual users associated with the tenant, or among all users associated with the tenant. More generally, the policy component could allow tenants to modify any aspect of the tenant's subscription agreement withMTVMI 100. - In some embodiments,
management application 115 further comprises maintenance components such as patching and virus protection software for updating different the configurations of tenants' different virtual networks, backup or replication software for storing redundant copies of virtual machines, application packages, installation and testing tools and services, etc. In general, these maintenance components may operate with or without input from tenants or users, with or without oversight by theentity hosting MTVMI 100, and in a fully automated, partially-automated, or non-automated manner. - In components allowing tenant or user interactions with
MTVMI 100, such interactions may take place through a variety of different interfaces, such as graphical interfaces, command line interfaces, programming interfaces, and so on. -
Management application 115 may further include custom monitoring and management components created by tenants or users. To implement these custom features, a user could create scripts or application programs using a scripting program or an application programming interface (API) compatible withMTVMI 100. To facilitate the creation of such programs,management application 115 may additionally include a software development platform forMTVMI 100. By allowing tenants and users to create custom software components,MTVMI 100 may provide flexibility and unique capabilities useful to a variety of users having a variety of needs. - In addition to the above-described components and features,
management application 115 may further comprise software applications for providing specific virtualization-based services to tenants and users withinMTVMI 100. Examples of such services will be described below with reference toFIGS. 7 and 8 . A more specific example of the service ofFIG. 8 will then be described with reference toFIGS. 9-22 . -
FIG. 7 is a flowchart illustrating the provision of a software brokering service byMTVMI 100 in some embodiments. The service ofFIG. 7 is provided by a software brokering portal where tenants and users are allowed to exchange software and other data that may be useful withinMTVMI 100. The data may include, e.g., custom virtual machine or virtual network configurations, software applications written by independent software vendors, custom scripts or programs written forMTVMI 100, infrastructure models, data models, user rights hierarchy models, process workflows, controls, reports, and financials, to name but a few. - In
step 705,MTVMI 100 provides a brokering portal. In one example, the brokering portal comprises a software application that presents a graphical user interface within a user's display. The graphical interface may include a mechanism for presenting available software and/or data that can be downloaded by the user. The graphical user interface may further include a mechanism for allowing the user to upload software to the portal. In some embodiments, the MTVMI grants access to the tenant to software that is already available within the MTVMI. The portal may require the user to provide a form of payment to download certain software or data. Alternatively, the software or data may be provided free of charge. - In
step 710,MTVMI 100 receives data from the user through the portal and stores the data in a common access area. For explanation purposes, a user who uploads data to the portal is referred to as a seller inFIG. 7 , even though the portal does not necessarily require users to exchange payment for sharing data. Similarly, a user who downloads software from the portal will be referred to as a buyer. - In
step 715,MTVMI 100 presents data to potential buyers within the portal. Instep 720, where money transactions are involved in the transfer of data,MTVMI 100 facilitates those transactions, e.g., by allowing users to debit or credit bank accounts, deposit accounts within MTVMI, or by adding incurred expenses to a tenant's MTVMI account. - In various embodiments, the MTVMI and the portal together support a variety of uses, including application development and testing; online education; pre-sales software demonstration; consulting platform; and IP prototyping and operations.
-
FIG. 8 is a flowchart illustrating the provision of a virtual lab service by an MTVMI in some embodiments. In the example ofFIG. 8 , the user creates a virtual lab and executes a software test using the virtual lab. A virtual lab is a set of virtual computing resources configured to operate in concert to perform one or more related computing tasks. As an example, a virtual lab may comprise a set of virtual machines and related software configured to process a large data set such as a genome sequence, or a large video or simulation. A virtual lab may be particularly useful for computing tasks that are performed on a one-time or limited basis, such as software testing, graphics rendering, and so on. However, virtual labs can also be useful for performing recurring tasks requiring a significant amount of computing power. Other example steps that could be performed within a virtual lab application will be apparent from the description presented below in relation toFIGS. 9-22 . - Referring to
FIG. 8 , instep 805, a user accesses a virtual lab application withinMTVMI 100. The virtual lab application may generate a graphical user interface on the user's display, such as the interface illustrated inFIGS. 9-22 . Upon accessing the virtual lab application, instep 810, the user creates or accesses one or more projects. A project is a data structure or description that specifies a set of virtual resources and a set of users that can access the resources specified by the project. In some embodiments, resource usage is separately measured and quota compliance is separately enforced for each project. By specifying both users and virtual resources, the project allows specific lab instances to be developed through a collaborative process among the users. Example projects will be described in further detail below with reference toFIGS. 9-10 . In some embodiments, a tenant's administrative user can specify resource permissions at a variety of different levels of scope, including private scope in which permissions are established for a single user, or tenant-wide scope in which permissions are established for all users for a particular tenant. Resource permissions can also be specified at all-tenant scope, in which permissions are established for users of all tenants. Such permissions may relate to items from the software library, the labs, or asset lists established by or for tenants. - After establishing the project, in
step 815, the user creates a lab by selecting and configuring particular resources within the project. As an example, the user may select a set of virtual machines from the project, specify particular operating systems for the virtual machines, and identify software applications to be run on the virtual machines. Examples labs will be described in further detail below with reference to FIGS. 9 and 11-12. - Once the project and lab have been created, in
step 820, the user runs the lab to perform a particular computational task—in this case, a software test. An example of a software test performed in a virtual lab will be presented below with reference toFIGS. 9-22 . -
FIGS. 9-22 are display diagrams showing a user interface presented by an example software application running on a MTVMI to provide a virtual lab service in some embodiments. The virtual lab service is available on-demand over the Internet and allows users to rapidly build and configure software test environments using a pre-built library of virtual machine images. The virtual lab service further allows users to create virtual infrastructure such as virtual processing, networking, and storage facilities on demand using a browser. Finally, the virtual lab service allows users to share data and collaborate with other users who are also connected to the virtual lab environment via the Internet. - The operation of the virtual lab service will be explained below using a concrete example involving an engineer uses a MTVMI to test an e-commerce website on behalf of a tenant having users located in different parts of the world. The engineer may share components of the virtual lab with the other users associated with the tenant.
-
FIG. 9 illustrates a screen that appears after the engineer logs on, through a secure connection, to a MTVMI hosting the virtual lab service. In this regard, the screen ofFIG. 9 corresponds to an entry point for the virtual lab service. As seen inFIG. 9 , the screen includes a tab labeled asdashboard 905. -
Dashboard 905 includes information related to current projects and recently used items within the engineer's scope of user privileges. In particular,dashboard 905 includes a set ofprojects 910,software libraries 915, andlabs 920 associated with the engineer. Theprojects 910,libraries 915, andlabs 920 ofFIG. 9 may be created within the illustrated application, or they may have been created previously. - In the current example, we will assume that the engineer will deploy a lab that was previously created. To do this, the engineer may simply select the lab from the
list 920 shown under the heading “My Lab”. As an example, to select the lab illustrated inFIG. 11 , the engineer may select alab 921 entitled “Company A—Build 1340”. Similarly, to select the lab illustrated inFIG. 12 , the engineer may select alab 922 entitled “Company A—Build 1341”. By selecting one of these labs, the user can bring up the screen shown inFIG. 11 orFIG. 12 , which will be described in further detail below. - In testing the e-commerce site, the engineer verifies the site's scalability and performance on virtual machines defined in the selected lab. A realistic test of a e-commerce site typically requires a large number of machines. However, the test generally only requires the use of the machines for a short period of time, say, a few days or weeks at most. Accordingly, by performing the test in this virtual lab, the engineer avoids the need to requisition actual hardware and the corresponding large expense, as would generally be required to test the site in a non-virtual environment.
- In addition to eliminating the need to requisition physical hardware, the virtual lab service also enables the engineer to quickly configure and launch a test environment. In contrast, tests using actual machines often require hours of setup time for connecting machines, installing software, booting up the machines, and so on. In selected embodiments of the virtual lab service, virtual machines can be requisitioned and launched without requesting use of the virtual machines in advance. This is typically possible in a MTVMI where the amount of available computing power is large in relation to the instantaneous user demand.
-
FIG. 10 shows a projects tab 1005 within the virtual lab service. Projects tab 1005 providesinformation 1010 regarding a particular project (“Company A—Security Verification”) accessible to the engineer,virtual machine configurations 1015 available within the project, runningconfigurations 1020 within the project, andassets 1025 associated with the project. Each of these features will be described in additional detail below with reference to the remaining figures. -
FIGS. 11 and 12 illustrate different labs available to the engineer. As seen in the figures, these labs each include a number of virtual machines. Each virtual machine is visually represented by a thumbnail image of the console display currently being generated by the virtual machine. For illustration purposes, each of the virtual machines has a been configured with a unique combination of computing characteristics, operating system, and status. For instance, inFIG. 11 , aweb server 1105 is implemented by a virtual machine having a 1 GHz CPU, 1 GB of RAM, and running the Microsoft Windows operating system. Within a virtual network,web server 1105 has a network address “192.168.0.1” and a status “running”. Other virtual machines have different configurations, including different operating systems, different statuses, and so forth. Once machines are up and running in the illustration ofFIGS. 11 and 12 , the engineer can click on a thumbnail image of any one of the virtual machines to interact with the machine through the engineer's local interface. - In the examples of
FIGS. 11 and 12 , the status of each virtual machine (e.g., running, booting, resuming) can be indicated by both a textual indicator and a background color around the corresponding virtual machine icon. The virtual lab service may allow users to modify virtual network settings such as domains, subnet attributes and IP addresses of virtual machines within a particular lab. - In some embodiments, the virtual lab service enables the user to generate a snapshot of one or more running virtual machines, such as a single virtual machine, all of the virtual machines in a virtual network, or all of the machines in a configuration. For example, the user may select a visual control associated with the machine, network, or configuration in order to generate a snapshot. When a snapshot is generated, complete state for each of the virtual machines including the snapshot is stored in the library. After the snapshot is generated, this item may be selected from the library in order to instantiate any number of new instances of the set of virtual machines that were the subject of the snapshot. This is useful, for example, to establish a large number of initially identical instances of a particular configuration. Also, in a testing project, it can be useful for a tester who has just produced an error in a configuration being tested to establish a snapshot of the configuration that can be reviewed later by a developer to determine the conditions under which the error occurred.
- In some embodiments, the virtual lab service allows the user to generate for a particular virtual machine a URL that can be used, in the absence of any other identifying information, to access the console display for that virtual machine. This URL can be distributed to users that are not authorized under the tenant's account to provide access to this particular virtual machine to those users. Such access may permit only observing the console display of the virtual machine, or it may permit user interface interactions with the virtual machine. In some embodiments, the user can click on a CD icon displayed by the MTVMI in connection with a virtual machine (not shown) in order to upload to the asset list and/or the library a virtual machine image or a software installation file such as an ISO file from the user client machine.
-
FIG. 13 is a display diagram showing a sample display typically presented by the infrastructure in order to permit a user to control the operation of virtual machines. Thedisplay 1300 showsinformation information 1310 for the first virtual machine includes information describing the virtual machine, as well as the following controls: a run/suspendcontrol 1311 for beginning or suspending execution of the virtual machine; a shut downcontrol 1312 for invoking an operating system function on the virtual machine designed to turn the computer system running the operating system off; a power offcontrol 1313 for immediately disabling the virtual machine and discarding its memory state; aRDP connection control 1314 for establishing an RDP connection with the virtual machine; anISO control 1315 for loading a memory image ISO file from a CD-ROM to the virtual machine; adelete control 1316 for deleting the virtual machine; and asettings control 1317 for editing network and hardware attributes of the virtual machine. Each of controls 1311-1317 operate specifically with regard to the virtual machine identified byvirtual machine information 1310. The display also includes controls 1391-1394 which, when operated by the user, operate with respect to every virtual machine whose check box (e.g., checkboxes 1319 and 1329) is checked. The display also includescontrols -
FIG. 14 is a display diagram showing a sample display typically presented by the infrastructure to display information about and allow interaction with machine configurations available to a user. Thedisplay 1400 includesentries FIG. 13 , these entries containcheck boxes controls controls -
FIG. 15 is a display diagram showing a sample display typically presented by the infrastructure to display information about and permit manipulation of machine configurations in a tiles view. Thedisplay 1500 includessections information 1510 about the first machine configuration shows two virtual machines, and includescontrols Information 1510 further includes a check box, likecheck boxes controls -
FIG. 16 is a display diagram showing a sample display that is typically presented by the infrastructure in order to permit the user to specify automatic suspension of the virtual machines in a machine configuration. Thedisplay 1600 may be reached by selecting an auto-suspendcontrol 1602. The display includesinformation 1610 identifying the machine configuration. The infrastructure permits selection between the following options for suspending this machine configuration: anoption 1621 not to automatically suspend this machine configuration; anoption 1622 for suspending the machine configuration after all of the virtual machines in the configuration have been idle for at least a user-specified amount of time; and anoption 1623 to suspend the virtual machines of the machine configuration at a user-specified time and date. The display also includes anupdate control 1630 for updating the auto suspension settings for this machine configuration. -
FIG. 17 is a display diagram showing a sample display typically presented by the infrastructure in order to publish URLs for accessing virtual machines of a machine configuration. Thedisplay 1700 can be reached by selecting a Publish VM URLs control 1701. The display enables the user to determine withoption 1710 whether URLs are generated and activated for accessing the consoles of the virtual machines of the current machine configuration. Whereoption 1710 is selected, the user can elect betweenoption 1711 in which passwords are not required in order to access a virtual machine using its URL and 1712 where a user-specified password is required to access each virtual machine in the machine configuration. Also, where the user selectsoption 1710, the user can determine whether to selectoption 1720 for allowing users who access a virtual machine in the machine configuration using its published URL to control the virtual machine as contrasted with merely viewing its console output. Also, where the user selectsoption 1710, the user may elect betweenoption 1721 to allow those in possession of a virtual machine's URL to access it at all times, andoption 1722 to allow access only during a user-specified time-of-day range. Thedisplay 1700 also includes asave control 1730 to update these attributes of the current machine configuration. -
FIGS. 18 through 20 illustrate a library of virtual machine configurations available to the engineer within the virtual lab service. The library includes images of configurations that have been preinstalled with common operating systems, databases and applications. By creating a lab from pre-installed images, the user can save hours of manual installation tasks. -
Configurations 1805 shown inFIG. 18 have all been installed in the lab ofFIG. 11 . These and other configurations such as those illustrated inFIG. 19 can be installed in labs or added to currently running configurations by actuating buttons within the interfaces shown inFIGS. 18 and 19 . Although the engineer may create labs from predefined configurations, the engineer could alternatively assemble and configure new machine configurations from scratch by specifying a new combination of virtual hardware, operating system, and so on. The engineer could then add the new configuration to an existing lab or create a new lab through the virtual lab service. In general, any new configurations created by a user be associated with that user or shared among other users within the MTVMI. - Where a single user or tenant runs multiple instances of a single network within the virtual lab service, the different instances are generally fenced off from each other. Fencing is typically accomplished by using a virtual private network to establish a separate virtual LAN for each network instance. In some embodiments, the virtual machines in each of the instances of the network are assigned the same set of IP addresses. Accordingly, to provide independent access to the Internet for the virtual machines of each of the instances of the network, the network nodes and/or the firewall proxy requests from these virtual machines to the Internet, enabling the proxy to route the reply from the Internet to the correct one of the virtual machines having the source IP address associated with the original request. In various embodiments, this proxying is performed in a variety of ways, such as mapping each virtual machine instance to a different public IP address, URL, or combination or URL and port number.
- Returning to
FIG. 11 , to test the e-commerce web site, the engineer runs the web site on the virtual machine designated asweb server 1105. While running the web-site,web server 1105 stores and retrieves data from a virtual machine designated as adatabase server 1115. Three virtual machines having a variety of configurations are designated astest clients 1110 for generating traffic for the web-site. Finally, a virtual machine designated as atest controller 1120 controls testclients 1110 to perform the test. -
FIG. 21 illustrates techniques that can be used to organize and share work within the virtual lab application. In particular,FIG. 21 illustrates test assets 2105 (i.e., test result data—an asset can be any proprietary data) that have been generated by tests performed by the engineer within the virtual lab service. Usingcontrol 2110, the engineer can upload the assets into a library available to the public or to other users associated with the same tenant. This allows the engineer to share the assets with other users. Once the assets have been uploaded to a library within the virtual lab service, the assets can be added to projects, as illustrated, e.g., by the information under the “assets” label inFIG. 10 . By adding the assets to a project, the assets become available to other users assigned to the project. Additionally, web browsers and other tools executing on a virtual machine may be used to “pull” data and/or programs to a virtual machine from the Internet. -
FIG. 22 shows an aspect of the virtual lab application that allows an administrator to monitor use of the virtual lab service. To monitor specific types of usage, the administrator may select various parameters from drop down menus in anarea 2205. For instance, the administrator may select a certain type of activity to monitor, such as CPU usage, memory usage, etc. Alternatively, the administrator may choose to monitor activity of certain users, activity around certain dates, and so on. Activity that falls within the parameters specified inarea 2205 is displayed in anarea 2210. -
FIG. 23 is a display diagram showing a sample display typically presented by the infrastructure to show the consumption of resources relative to quotas across an entire customer as well as by an individual user. Thedisplay 2300 includes asection 2310 about consumption relative to quotas for the customer, and section 2320 for consumption versus quotas for the current user. The rows in each section are divided into two columns:usage column 2301 that shows the amount that has been used by the entity andlimit column 2302 that shows the quota to which consumption is limited for the entity. Thecustomer section 2310 includesrow 2311 for number of hours that a virtual machine operates;row 2312 for the number of virtual machines allocated;row 2313 for the volume of persistent storage allocated; androw 2314 for the number of public IP addresses allocated. Section 2320 for the individual user includes corresponding rows 2321-2323, showing the user's consumption and the user's limit as contrasted with the customer's total usage and limit. The display also includes a moreconcise version 2350 of this information that is suitable to be displayed on a variety of pages containing a variety of other information. -
FIG. 24 is a display diagram showing a display typically presented by the infrastructure to report on usage of resources including paid resources accessed via the marketplace. In a list ofresources 2310, 2360, and 2370, a paiditem icon 2311 indicates thatresource 2310 is paid. The entry includes information about the paiditem including information 2312 and 2316 identifying the item,information 2313 identifying the vendor,information 2314 indicating the basis for which the item is metered for payment, and information 2315 indicating the cost of consuming the item. - In some embodiments, a tenant may specify specific levels of service to be provided by the MTVMI. For example, the tenant may specify that its labs run in a dedicated virtual machine host node, and/or access a dedicated storage node; specify that physical processor utilization be no greater than a level such as 75% on the virtual machine host nodes on which its labs execute; or specify a maximum level of resources of one or more types that the tenant can consume in a particular period of time. In some embodiments, where quotas are specified for a tenant, either by the tenant or the operator of the MTVMI, the MTVMI displays usage relative to the quota to one or more of the users for the tenant.
- The MTVMI is unique in delivering virtual datacenter Labs as a service over the Web based on a multi-tenant shared infrastructure. It provides key capabilities valued by customers in the initial target markets—QA, Staging, Training, and Pre-sales PoC—including:
-
- End users can use just an Internet browser to rapidly and easily create and operate private virtual data center environments (Labs)—clusters of virtual machines with desired network architecture and storage resources—without relying on IT support.
- Create custom data center configurations that are a near replica or extension of environments in their internal data center.
- Multiple concurrent instances of identical configurations can be cloned and run quickly and easily.
- Distributed teams can collaborate efficiently and securely.
- These capabilities and their underlying technology include:
- Multi-Tenant Virtual Lab as a Service with Independent Account Administration
-
- Virtual Lab management application architected as a multi-tenant service: each “tenant” is a multi-user customer who is provided authenticated and secure access only to their account and their virtual resources with no access to the underlying platform or to other accounts.
- Account management architecture and data model designed to support Project Management needs of mature organizations: each account independently supports multiple users, hierarchy of roles and administration privileges, organization of users and Virtual Lab assets in Projects with access control, quota management, overall account and Project-level resource usage accounting and auditing.
-
-
- Multiple methods to build custom virtual machines: upload and install complete virtual machine images, OS installation packages on raw virtual machine containers, or application installation packages on pre-built virtual machine images.
-
-
- Create isolated virtual datacenters with wide flexibility in auto-assigning or user-configuring virtual machine attributes and identities (e.g., number of cores, amount of RAM, domain name, IP addresses etc.); policy hooks that enable multi-tenant aware resource allocation decisions (e.g., for security isolation, performance isolation etc.).
- Mechanisms to comprehensively save the state of entire data center configuration including the virtual machines, their storage, their network identities, their network service profiles so that they can be exactly replicated later.
-
-
- Software-based mechanisms to automatically configure isolated network services for each virtual data center, including DHCP and DNS, VPN services and file share services. Ready connectivity from a virtual data center configuration back to internal data centers.
-
-
- Distributed file system management architecture which supports fast snapshot and cloning operations in a scalable way, including data placement, data migration, and load balancing. The implementation is designed to be hypervisor-agnostic.
-
-
- Architecture, data model, workflows, and metering for supporting paid library services. Mechanisms for providers to upload pay-for-use content with the required metadata attributes, mechanisms for consumers to discover content, and mechanisms for metering, enforcing, and billing consumers for period of usage.
-
-
- Desktop protocol proxy for remote display of single machine and multi machine environments. Mechanism for controlling desktop access privileges for various classes of users.
-
FIGS. 25-26 show additional conceptual diagrams illustrating the organization of the MTVMI in some embodiments.FIG. 25 shows the physical arrangement of hardware components of the MTVMI in some embodiments.FIG. 26 shows some of the services provided in connection with virtual private local area networks in some embodiments. -
FIGS. 27-46 are display diagrams showing displays presented by the MTVMI in some embodiments.FIG. 27 shows a display enumerating available configuration templates that is presented in some embodiments.FIG. 28 shows a display presenting information about a single configuration template that is presented in some embodiments.FIG. 29 shows a display for monitoring tenant resort resource usage that is presented in some embodiments.FIG. 30 shows a display that a tenant to configure user access permissions that is presented in some embodiments.FIG. 31 shows a display that enables a tenant quota to be specified that is presented in some embodiments.FIG. 32 shows a display for auditing resource usage across tenants that is presented in some embodiments.FIG. 33 shows a display for monitoring tenant resource usage with respect to quotas that is presented in some embodiments.FIG. 34 shows a display for monitoring the status of virtual machine host nodes is presented in some embodiments.FIG. 35 shows a display for controlling network settings for a virtual local area network is presented in some embodiments.FIG. 36 shows a display for reviewing and modifying project settings that is presented in some embodiments.FIG. 37 shows a display for navigating information associated with a virtual lab service is presented in some embodiments.FIG. 38 shows a display identifying users associated with a tenant that is presented in some embodiments.FIGS. 39 and 40 are displays showing available virtual machine configurations that is presented in some embodiments.FIG. 41 shows a display identifying tenants is presented in some embodiments.FIG. 42 is a display identifying users associated with each tenant that is presented in some embodiments.FIG. 43 is a display showing assets available within the virtual lab service is presented in some embodiments.FIG. 44 is a display showing information about a virtual machine configuration is presented in some embodiments.FIG. 45 shows a display for authenticating a third-party software license purchased by a tenant is presented in some embodiments.FIG. 46 shows a display for activating a pre-installed instance of an operating system using a license key owned by, a tenant that is presented in some embodiments. It can be seen that the display includes tabs, such as tabs “Windows Server 2003 Standard” and “Windows Server 2003 Enterprise R2 SP2,” that each refer to a different virtual machine. The user can of the corresponding virtual machine. -
FIGS. 47-49 show a user interface designed for use by vendors offering items for sale via the marketplace.FIG. 47 is a display diagram showing a sample display typically presented by the infrastructure in order to register a new vendor for the marketplace. The display enables a user associated with the vendor to enter the following information about the vendor: thecompany name 4701 of the vendor; thecompany address 4702 of the vendor; thecontact name 4703 of a contact at the vendor; theemail address 4704 of the contact; aphone number 4705 of the contact; and apassword 4706 to be used by the vendor to access a vendor portal for interacting with the marketplace. The user can select a submitcontrol 4710 to generate a profile that is based upon the inputted information. -
FIG. 48 is a display diagram showing a sample display typically presented by the infrastructure in order to enable a vendor to list a new item for sale in the marketplace. Thedisplay 4800 is typically made available to a user associated with the vendor in response to that user signing into the vendor portal on behalf of the vendor. The display includesinformation 4801 identifying the vendor. The user can use the display to input the following information about the item to be listed: thename 4811 of the item; adescription 4812 of the item; asupport link 4813 for the item; and adate 4814 on which the listing will expire. The user may also input pricing for any of a number of different pricing schemes, including: the permonth cost 4821 for each user who uses the item; the peryear cost 4822 for each user who uses the item; the per hour charge 4823 for the item; and the one-time charge 4824 per user for using the item. Typically, if the user does not enter a price in one of these fields, the option is not offered as a basis on which buyers can purchase the item. The display further includescontrols control 4840 in order to create a listing in accordance with the inputted information. -
FIG. 49 is a display diagram showing a sample display typically presented by the user in order to account to a vendor for revenue generated by the vendor's items in the marketplace. Thedisplay 4900 shows aperiod 4901 such as a month, to which the displayed accounting applies. The user can selectcontrols group 4920 for the Crossbow Debugger item andgroup 4930 for the Image Cropper item. Each row is divided into the following columns: anitem column 4911 identifying the item; arate column 4912 identifying the rate charged to users for the payment option to which the row corresponds; aunits column 4913 showing the number of units of that charging option that were consumed by customers during the selected period; arevenue column 4914 showing the revenue produced in connection with the current item and charging option during the selected period; and an item titletotal column 4915 showing, for the last row of each group, the amount of revenue generated by the item during the selected period. The display also includes anindication 4940 of the gross revenue for the selected period, and anindication 4950 showing the portion of the revenue that is retained to support the operation of the marketplace, and anindication 4960 of the net revenue to the vendor for the selected period. - In view of the foregoing, it should be appreciated that, while selected embodiments have been described herein for illustration purposes, various modifications may be made without deviating from the scope of the invention. Accordingly, the invention is not limited except as by the appended claims and the elements explicitly recited therein.
Claims (21)
1. A method in a computing system including at least one processor for managing virtual storage across a plurality of persistent storage devices directly or indirectly accessible to processors on which a plurality of virtual machines are executed, comprising:
storing data on the persistent storage devices of the plurality in response to persistent storage requests each from a virtual machine or a virtual machine management module;
autonomously determining to copy distinguished data from a first persistent storage device on the plurality to a second persistent storage device among the plurality; and
copying the distinguished data from the first persistent storage device to the second persistent storage device in accordance with the autonomous determination.
2. The method of claim 1 , further comprising scheduling the copying to occur at a time when persistent storage requests from virtual machines and the virtual machine management module are occurring infrequently.
3. The method of claim 1 , further comprising deleting the distinguished data from the first persistent storage device after the copying is complete.
4. The method of claim 3 wherein the autonomous determination is in response to determining that the distinguished data has an affinity with data already stored on the second persistent storage device.
5. The method of claim 3 where in the autonomous determination is in response to determining that additional space is needed on the first persistent storage device.
6. The method of claim 1 , further comprising maintaining the distinguished data on the first persistent storage device after the copying is complete.
7. The method of claim 6 wherein the autonomous determination is in response to determining that the distinguished data is in high demand by the virtual machines.
8. The method of claim 1 , further comprising:
identifying a proper subset of the plurality of persistent storage devices that are candidates for selection; and
selecting a persistent storage device of the identified subset as the second persistent storage device.
9. The method of claim 8 wherein a persistent storage device of the identified subset is selected based upon the relative health of the persistent storage devices of the identified subset.
10. The method of claim 8 wherein the virtual machines are each executed on behalf of one of the plurality of tenants,
and wherein at least a portion of the plurality of persistent storage devices of the identified subset of been assigned an affinity for a particular tenant of the plurality of tenants,
and wherein a persistent storage device of the identified subset is selected that has been assigned an affinity for the tenant on behalf of which the virtual machine making the persistent storage request is executed.
11. At least one computer-readable medium having contents adapted to cause a data processing device to perform a method for servicing a persistent storage request, the method comprising:
storing data on the persistent storage devices of the plurality in response to persistent storage requests each from a virtual machine or a Virtual machine management module;
autonomously determining to copy distinguished data from a first persistent storage device on the plurality to a second persistent storage device among the plurality; and
copying the distinguished data from the first persistent storage device to the second persistent storage device in accordance with the autonomous determination.
12. The computer-readable medium of claim 11 , further comprising scheduling the copying to occur at a time when persistent storage requests from virtual machines and the virtual machine management module are occurring infrequently.
13. The computer-readable medium of claim 11 , further comprising deleting the distinguished data from the first persistent storage device after the copying is complete.
14. The computer-readable medium of claim 13 wherein the autonomous determination is in response to determining that the distinguished data has an affinity with data already stored on the second persistent storage device.
15. The computer-readable medium of claim 13 where in the autonomous determination is in response to determining that additional space is needed on the first persistent storage device.
16. The computer-readable medium of claim 11 , further comprising maintaining the distinguished data on the first persistent storage device after the copying is complete.
17. The computer-readable medium of claim 16 wherein the autonomous determination is in response to determining that the distinguished data is in high demand by the virtual machines.
18. The computer-readable medium of claim 11 , further comprising:
identifying a proper subset of the plurality of persistent storage devices that are candidates for selection; and
selecting a persistent storage device of the identified subset as the second persistent storage device.
19. The computer-readable medium of claim 18 wherein a persistent storage device of the identified subset is selected based upon the relative health of the persistent storage devices of the identified subset.
20. The computer-readable medium of claim 18 wherein the virtual machines are each executed on behalf of one of the plurality of tenants,
and wherein at least a portion of the plurality of persistent storage devices of the identified subset of been assigned an affinity for a particular tenant of the plurality of tenants,
and wherein a persistent storage device of the identified subset is selected that has been assigned an affinity for the tenant on behalf of which the virtual machine making the persistent storage request is executed.
21. A system including at least one processor, comprising:
a first persistent storage device;
a second persistent storage device; and
a virtual management module configured to:
store data on the first and the second persistent storage devices in response to persistent storage requests;
autonomously determine to copy distinguished data from the first persistent storage device to the second persistent storage device; and
copy the distinguished data from the first persistent storage device to the second persistent storage device in accordance with the autonomous determination.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/627,761 US20130139158A1 (en) | 2008-05-02 | 2012-09-26 | Multitenant hosted virtual machine infrastructure |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US5016308P | 2008-05-02 | 2008-05-02 | |
US10166508P | 2008-09-30 | 2008-09-30 | |
US12/434,621 US10127059B2 (en) | 2008-05-02 | 2009-05-02 | Multitenant hosted virtual machine infrastructure |
US13/627,761 US20130139158A1 (en) | 2008-05-02 | 2012-09-26 | Multitenant hosted virtual machine infrastructure |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/434,621 Division US10127059B2 (en) | 2008-05-02 | 2009-05-02 | Multitenant hosted virtual machine infrastructure |
Publications (1)
Publication Number | Publication Date |
---|---|
US20130139158A1 true US20130139158A1 (en) | 2013-05-30 |
Family
ID=41317376
Family Applications (10)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/434,619 Active 2031-11-24 US8972978B2 (en) | 2008-05-02 | 2009-05-02 | Multitenant hosted virtual machine infrastructure |
US12/434,620 Active 2030-04-09 US8473594B2 (en) | 2008-05-02 | 2009-05-02 | Multitenant hosted virtual machine infrastructure |
US12/434,621 Active 2033-09-24 US10127059B2 (en) | 2008-05-02 | 2009-05-02 | Multitenant hosted virtual machine infrastructure |
US13/276,153 Active US8473627B2 (en) | 2008-05-02 | 2011-10-18 | Multitenant hosted virtual machine infrastructure |
US13/619,959 Active US8635351B2 (en) | 2008-05-02 | 2012-09-14 | Multitenant hosted virtual machine infrastructure |
US13/627,761 Abandoned US20130139158A1 (en) | 2008-05-02 | 2012-09-26 | Multitenant hosted virtual machine infrastructure |
US13/627,794 Active 2030-10-15 US9870238B2 (en) | 2008-05-02 | 2012-09-26 | Method, medium, and system for multitenant hosted virtual machine infrastructure |
US13/925,478 Active US9052933B2 (en) | 2008-05-02 | 2013-06-24 | Multitenant hosted virtual machine infrastructure |
US13/925,682 Active US9063763B2 (en) | 2008-05-02 | 2013-06-24 | Multitenant hosted virtual machine infrastructure |
US16/128,251 Active US10817318B2 (en) | 2008-05-02 | 2018-09-11 | Multitenant hosted virtual machine infrastructure |
Family Applications Before (5)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/434,619 Active 2031-11-24 US8972978B2 (en) | 2008-05-02 | 2009-05-02 | Multitenant hosted virtual machine infrastructure |
US12/434,620 Active 2030-04-09 US8473594B2 (en) | 2008-05-02 | 2009-05-02 | Multitenant hosted virtual machine infrastructure |
US12/434,621 Active 2033-09-24 US10127059B2 (en) | 2008-05-02 | 2009-05-02 | Multitenant hosted virtual machine infrastructure |
US13/276,153 Active US8473627B2 (en) | 2008-05-02 | 2011-10-18 | Multitenant hosted virtual machine infrastructure |
US13/619,959 Active US8635351B2 (en) | 2008-05-02 | 2012-09-14 | Multitenant hosted virtual machine infrastructure |
Family Applications After (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/627,794 Active 2030-10-15 US9870238B2 (en) | 2008-05-02 | 2012-09-26 | Method, medium, and system for multitenant hosted virtual machine infrastructure |
US13/925,478 Active US9052933B2 (en) | 2008-05-02 | 2013-06-24 | Multitenant hosted virtual machine infrastructure |
US13/925,682 Active US9063763B2 (en) | 2008-05-02 | 2013-06-24 | Multitenant hosted virtual machine infrastructure |
US16/128,251 Active US10817318B2 (en) | 2008-05-02 | 2018-09-11 | Multitenant hosted virtual machine infrastructure |
Country Status (1)
Country | Link |
---|---|
US (10) | US8972978B2 (en) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120321070A1 (en) * | 2011-05-25 | 2012-12-20 | Echopass Corporation | Systems and methods for managing multi-tenant callback services |
US20130073708A1 (en) * | 2011-09-20 | 2013-03-21 | Cloudbyte, Inc. | Techniques for achieving unlimited parallel scalability, storage capacity, and/or storage performance in a multi-tenant storage cloud environment |
US20130121207A1 (en) * | 2011-11-10 | 2013-05-16 | Verizon Patent And Licensing Inc. | Providing overlay networks via elastic cloud networking |
US9311160B2 (en) | 2011-11-10 | 2016-04-12 | Verizon Patent And Licensing Inc. | Elastic cloud networking |
EP3346383A1 (en) * | 2017-01-10 | 2018-07-11 | Unify Patente GmbH & Co. KG | Computer-implemented method of managing tenants on a multi-tenant sip server system and multi-tenant sip server system |
CN109313564A (en) * | 2016-06-23 | 2019-02-05 | 威睿公司 | For supporting the server computer management system of the highly usable virtual desktop of multiple and different tenants |
US11269668B2 (en) * | 2010-05-27 | 2022-03-08 | Salesforce.Com, Inc. | Database systems and related methods for validation workflows |
Families Citing this family (686)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060024347A1 (en) * | 2004-02-10 | 2006-02-02 | Biosurface Engineering Technologies, Inc. | Bioactive peptide coatings |
KR100435985B1 (en) * | 2004-02-25 | 2004-06-12 | 엔에이치엔(주) | Nonstop service system using voting and, information updating and providing method in the same |
US8924524B2 (en) * | 2009-07-27 | 2014-12-30 | Vmware, Inc. | Automated network configuration of virtual machines in a virtual lab data environment |
US8619771B2 (en) | 2009-09-30 | 2013-12-31 | Vmware, Inc. | Private allocated networks over shared communications infrastructure |
US8892706B1 (en) | 2010-06-21 | 2014-11-18 | Vmware, Inc. | Private ethernet overlay networks over a shared ethernet in a virtual environment |
US8838756B2 (en) * | 2009-07-27 | 2014-09-16 | Vmware, Inc. | Management and implementation of enclosed local networks in a virtual lab |
US9053162B2 (en) * | 2007-04-26 | 2015-06-09 | Microsoft Technology Licensing, Llc | Multi-tenant hosted application system |
WO2009032776A2 (en) | 2007-08-28 | 2009-03-12 | Commvault Systems, Inc. | Power management of data processing resources, such as power adaptive management of data storage operations |
US8972978B2 (en) * | 2008-05-02 | 2015-03-03 | Skytap | Multitenant hosted virtual machine infrastructure |
US8195774B2 (en) | 2008-05-23 | 2012-06-05 | Vmware, Inc. | Distributed virtual switch for virtualized computer systems |
CN101639835A (en) * | 2008-07-30 | 2010-02-03 | 国际商业机器公司 | Method and device for partitioning application database in multi-tenant scene |
AU2008361120B2 (en) * | 2008-08-25 | 2015-05-28 | Marici Holdings The Netherlands B.V. | A hardware virtualization system |
US8307177B2 (en) | 2008-09-05 | 2012-11-06 | Commvault Systems, Inc. | Systems and methods for management of virtualization data |
US8479015B2 (en) * | 2008-10-17 | 2013-07-02 | Oracle International Corporation | Virtual image management |
US9137209B1 (en) | 2008-12-10 | 2015-09-15 | Amazon Technologies, Inc. | Providing local secure network access to remote services |
US8230050B1 (en) | 2008-12-10 | 2012-07-24 | Amazon Technologies, Inc. | Providing access to configurable private computer networks |
US9524167B1 (en) | 2008-12-10 | 2016-12-20 | Amazon Technologies, Inc. | Providing location-specific network access to remote services |
US8819113B2 (en) * | 2009-03-02 | 2014-08-26 | Kaseya International Limited | Remote provisioning of virtual machines |
US8194680B1 (en) * | 2009-03-11 | 2012-06-05 | Amazon Technologies, Inc. | Managing communications for modified computer networks |
US20100241731A1 (en) * | 2009-03-17 | 2010-09-23 | Gladinet, Inc. | Method for virtualizing internet resources as a virtual computer |
US8595378B1 (en) | 2009-03-30 | 2013-11-26 | Amazon Technologies, Inc. | Managing communications having multiple alternative destinations |
US9106540B2 (en) | 2009-03-30 | 2015-08-11 | Amazon Technologies, Inc. | Providing logical networking functionality for managed computer networks |
CA3081255C (en) | 2009-04-01 | 2023-08-22 | Nicira, Inc. | Method and apparatus for implementing and managing virtual switches |
US8078816B1 (en) * | 2009-04-07 | 2011-12-13 | Netapp, Inc. | Transparent transfer of qtree and quota metadata in conjunction with logical replication of user data |
US8261266B2 (en) * | 2009-04-30 | 2012-09-04 | Microsoft Corporation | Deploying a virtual machine having a virtual hardware configuration matching an improved hardware profile with respect to execution of an application |
US9003411B2 (en) * | 2009-05-13 | 2015-04-07 | Verizon Patent And Licensing Inc. | Automated provisioning and configuration of virtual and physical servers |
US8438216B2 (en) * | 2009-05-20 | 2013-05-07 | Kaseya International Limited | Remote management of virtual machines hosted in a private network |
TW201112006A (en) * | 2009-05-29 | 2011-04-01 | Ibm | Computer system, method and program product |
US9703609B2 (en) * | 2009-05-29 | 2017-07-11 | Red Hat, Inc. | Matching resources associated with a virtual machine to offered resources |
US7984122B2 (en) * | 2009-06-04 | 2011-07-19 | Microsoft Corporation | Dedicated processor core request |
US8140668B2 (en) * | 2009-06-24 | 2012-03-20 | Red Hat Israel, Ltd. | Pre-scheduling the timelines of virtual machines |
US8644188B1 (en) | 2009-06-25 | 2014-02-04 | Amazon Technologies, Inc. | Providing virtual networking functionality for managed computer networks |
US8359594B1 (en) * | 2009-06-30 | 2013-01-22 | Sychron Advanced Technologies, Inc. | Automated rapid virtual machine provisioning system |
CA2767115A1 (en) * | 2009-07-01 | 2011-01-06 | Mandar Patil | Method for remotely controlling and monitoring the data produced on desktop software |
US8949791B2 (en) * | 2009-07-08 | 2015-02-03 | Vmware, Inc. | Distributed software testing using cloud computing resources |
JP5458708B2 (en) * | 2009-07-09 | 2014-04-02 | 株式会社リコー | Image processing apparatus, display control method, and display control program |
US8943203B1 (en) | 2009-07-10 | 2015-01-27 | Netapp, Inc. | System and method for storage and deployment of virtual machines in a virtual server environment |
CA2674402C (en) * | 2009-07-31 | 2016-07-19 | Ibm Canada Limited - Ibm Canada Limitee | Optimizing on demand allocation of virtual machines using a stateless preallocation pool |
WO2011013805A1 (en) | 2009-07-31 | 2011-02-03 | 日本電気株式会社 | Control server, service-providing system, and method of providing a virtual infrastructure |
US9959131B2 (en) * | 2009-08-03 | 2018-05-01 | Quantum Corporation | Systems and methods for providing a file system viewing of a storeage environment |
US8706867B2 (en) | 2011-03-31 | 2014-04-22 | Commvault Systems, Inc. | Realtime streaming of multimedia content from secondary storage devices |
US8473531B2 (en) * | 2009-09-03 | 2013-06-25 | Quantum Corporation | Presenting a file system for a file containing items |
US20110083122A1 (en) * | 2009-10-05 | 2011-04-07 | Salesforce.Com, Inc. | Method and system for massive large scale test infrastructure |
US9158567B2 (en) * | 2009-10-20 | 2015-10-13 | Dell Products, Lp | System and method for reconfigurable network services using modified network configuration with modified bandwith capacity in dynamic virtualization environments |
US8161077B2 (en) | 2009-10-21 | 2012-04-17 | Delphix Corp. | Datacenter workflow automation scenarios using virtual databases |
US8150808B2 (en) * | 2009-10-21 | 2012-04-03 | Delphix Corp. | Virtual database system |
US8407238B2 (en) * | 2009-10-28 | 2013-03-26 | Yahoo! Inc. | System and methods for enabling arbitrary developer code consumption of web-based data |
US20110126193A1 (en) * | 2009-11-20 | 2011-05-26 | Dell Products, Lp | System and Method for Imaging and Provisioning of Information Handling System |
US9274851B2 (en) * | 2009-11-25 | 2016-03-01 | Brocade Communications Systems, Inc. | Core-trunking across cores on physically separated processors allocated to a virtual machine based on configuration information including context information for virtual machines |
US9529689B2 (en) * | 2009-11-30 | 2016-12-27 | Red Hat, Inc. | Monitoring cloud computing environments |
US9203747B1 (en) | 2009-12-07 | 2015-12-01 | Amazon Technologies, Inc. | Providing virtual networking device functionality for managed computer networks |
US9036504B1 (en) | 2009-12-07 | 2015-05-19 | Amazon Technologies, Inc. | Using virtual networking devices and routing information to associate network addresses with computing nodes |
US8850426B2 (en) * | 2009-12-13 | 2014-09-30 | International Business Machines Corporation | Managing remote deployment of a virtual machine and service request to be processed by the virtual machines based on network bandwith and storage connectivity |
US9098320B2 (en) * | 2009-12-23 | 2015-08-04 | Savvis Inc. | Systems and methods for automatic provisioning of a user designed virtual private data center in a multi-tenant system |
US8555342B1 (en) * | 2009-12-23 | 2013-10-08 | Emc Corporation | Providing secure access to a set of credentials within a data security mechanism of a data storage system |
US20120054624A1 (en) | 2010-08-27 | 2012-03-01 | Owens Jr Kenneth Robert | Systems and methods for a multi-tenant system providing virtual data centers in a cloud configuration |
US9106591B2 (en) | 2009-12-24 | 2015-08-11 | Delphix Corporation | Adaptive resource management using survival minimum resources for low priority consumers |
US9122538B2 (en) * | 2010-02-22 | 2015-09-01 | Virtustream, Inc. | Methods and apparatus related to management of unit-based virtual resources within a data center environment |
US8402028B2 (en) * | 2010-02-25 | 2013-03-19 | Salesforce.Com, Inc. | System, method and computer program product for conditionally performing a query including an aggregate function |
US9098365B2 (en) * | 2010-03-16 | 2015-08-04 | Salesforce.Com, Inc. | System, method and computer program product for conditionally enabling an installation aspect |
US8510590B2 (en) | 2010-03-17 | 2013-08-13 | Vmware, Inc. | Method and system for cluster resource management in a virtualized computing environment |
US8266280B2 (en) * | 2010-03-17 | 2012-09-11 | International Business Machines Corporation | System and method for a storage area network virtualization optimization |
US8831993B2 (en) * | 2010-03-19 | 2014-09-09 | Novell, Inc. | Techniques for sharing virtual machine (VM) resources |
US8576703B2 (en) | 2010-03-19 | 2013-11-05 | Brocade Communications Systems, Inc. | Synchronization of multicast information using bicasting |
US9286485B2 (en) * | 2010-03-23 | 2016-03-15 | Fujitsu Limited | Using trust points to provide services |
US20110238980A1 (en) * | 2010-03-23 | 2011-09-29 | Fujitsu Limited | System and methods for remote maintenance in an electronic network with multiple clients |
US8255508B2 (en) | 2010-03-24 | 2012-08-28 | International Business Machines Corporation | Administration of virtual machine affinity in a data center |
CN102208081A (en) * | 2010-03-31 | 2011-10-05 | 国际商业机器公司 | Method for making business process management (BPM) application to be suitable for being used by multi-tenancy (MT) usages and apparatus thereof |
US20110246465A1 (en) * | 2010-03-31 | 2011-10-06 | Salesforce.Com, Inc. | Methods and sysems for performing real-time recommendation processing |
US20110246524A1 (en) * | 2010-04-01 | 2011-10-06 | Salesforce.Com, Inc. | System, method and computer program product for portal user data access in a multi-tenant on-demand database system |
US9367362B2 (en) | 2010-04-01 | 2016-06-14 | International Business Machines Corporation | Administration of virtual machine affinity in a cloud computing environment |
US20110246504A1 (en) * | 2010-04-01 | 2011-10-06 | Salesforce.Com, Inc. | System, method and computer program product for performing one or more actions based on a comparison of data associated with a client to one or more criteria |
US8312237B2 (en) * | 2010-04-02 | 2012-11-13 | Autonomy, Inc. | Automated relocation of in-use multi-site protected data storage |
US20110252208A1 (en) * | 2010-04-12 | 2011-10-13 | Microsoft Corporation | Express-full backup of a cluster shared virtual machine |
US8572612B2 (en) | 2010-04-14 | 2013-10-29 | International Business Machines Corporation | Autonomic scaling of virtual machines in a cloud computing environment |
US9104484B2 (en) * | 2010-04-21 | 2015-08-11 | Salesforce.Com, Inc. | Methods and systems for evaluating bytecode in an on-demand service environment including translation of apex to bytecode |
US8893093B2 (en) * | 2010-05-07 | 2014-11-18 | Salesforce.Com, Inc. | Method and system for automated performance testing in a multi-tenant environment |
US8443085B2 (en) * | 2010-05-07 | 2013-05-14 | Salesforce.Com, Inc. | Resolving information in a multitenant database environment |
US8473515B2 (en) * | 2010-05-10 | 2013-06-25 | International Business Machines Corporation | Multi-tenancy in database namespace |
US20110283277A1 (en) | 2010-05-11 | 2011-11-17 | International Business Machines Corporation | Virtualization and dynamic resource allocation aware storage level reordering |
US20110283278A1 (en) | 2010-05-13 | 2011-11-17 | Vmware, Inc. | User interface for managing a distributed virtual switch |
US8407366B2 (en) | 2010-05-14 | 2013-03-26 | Microsoft Corporation | Interconnecting members of a virtual network |
US8769102B1 (en) * | 2010-05-21 | 2014-07-01 | Google Inc. | Virtual testing environments |
US8966027B1 (en) | 2010-05-24 | 2015-02-24 | Amazon Technologies, Inc. | Managing replication of computing nodes for provided computer networks |
US20110296429A1 (en) * | 2010-06-01 | 2011-12-01 | International Business Machines Corporation | System and method for management of license entitlements in a virtualized environment |
US11449394B2 (en) | 2010-06-04 | 2022-09-20 | Commvault Systems, Inc. | Failover systems and methods for performing backup operations, including heterogeneous indexing and load balancing of backup and indexing resources |
US20110307831A1 (en) * | 2010-06-10 | 2011-12-15 | Microsoft Corporation | User-Controlled Application Access to Resources |
US8839238B2 (en) * | 2010-06-11 | 2014-09-16 | International Business Machines Corporation | Dynamic virtual machine shutdown without service interruptions |
WO2011159842A2 (en) | 2010-06-15 | 2011-12-22 | Nimbula, Inc. | Virtual computing infrastructure |
US10715457B2 (en) | 2010-06-15 | 2020-07-14 | Oracle International Corporation | Coordination of processes in cloud computing environments |
US9251204B2 (en) * | 2010-06-23 | 2016-02-02 | Salesforce.Com, Inc. | Static query optimization |
US9407603B2 (en) * | 2010-06-25 | 2016-08-02 | Salesforce.Com, Inc. | Methods and systems for providing context-based outbound processing application firewalls |
US9350705B2 (en) | 2010-06-25 | 2016-05-24 | Salesforce.Com, Inc. | Methods and systems for providing a token-based application firewall correlation |
US8902743B2 (en) * | 2010-06-28 | 2014-12-02 | Microsoft Corporation | Distributed and scalable network address translation |
US9525647B2 (en) | 2010-07-06 | 2016-12-20 | Nicira, Inc. | Network control apparatus and method for creating and modifying logical switching elements |
US8830823B2 (en) | 2010-07-06 | 2014-09-09 | Nicira, Inc. | Distributed control platform for large-scale production networks |
US10103939B2 (en) | 2010-07-06 | 2018-10-16 | Nicira, Inc. | Network control apparatus and method for populating logical datapath sets |
US8539078B2 (en) * | 2010-07-08 | 2013-09-17 | International Business Machines Corporation | Isolating resources between tenants in a software-as-a-service system using the estimated costs of service requests |
US8782434B1 (en) | 2010-07-15 | 2014-07-15 | The Research Foundation For The State University Of New York | System and method for validating program execution at run-time |
US9104619B2 (en) | 2010-07-23 | 2015-08-11 | Brocade Communications Systems, Inc. | Persisting data across warm boots |
US8495418B2 (en) | 2010-07-23 | 2013-07-23 | Brocade Communications Systems, Inc. | Achieving ultra-high availability using a single CPU |
US8904511B1 (en) * | 2010-08-23 | 2014-12-02 | Amazon Technologies, Inc. | Virtual firewalls for multi-tenant distributed services |
US8806486B2 (en) | 2010-09-03 | 2014-08-12 | Time Warner Cable Enterprises, Llc. | Methods and systems for managing a virtual data center with embedded roles based access control |
US8677004B2 (en) * | 2010-09-10 | 2014-03-18 | International Business Machines Corporation | Migration of logical partitions between two devices |
JP5476261B2 (en) * | 2010-09-14 | 2014-04-23 | 株式会社日立製作所 | Multi-tenant information processing system, management server, and configuration management method |
US9185054B2 (en) | 2010-09-15 | 2015-11-10 | Oracle International Corporation | System and method for providing zero buffer copying in a middleware machine environment |
US8756329B2 (en) | 2010-09-15 | 2014-06-17 | Oracle International Corporation | System and method for parallel multiplexing between servers in a cluster |
US8935427B2 (en) | 2010-09-23 | 2015-01-13 | Microsoft Corporation | Providing virtual networks using multi-tenant relays |
US8959451B2 (en) * | 2010-09-24 | 2015-02-17 | Blackberry Limited | Launching an application based on data classification |
US8627310B2 (en) | 2010-09-30 | 2014-01-07 | International Business Machines Corporation | Capturing multi-disk virtual machine images automatically |
US9069622B2 (en) | 2010-09-30 | 2015-06-30 | Microsoft Technology Licensing, Llc | Techniques for load balancing GPU enabled virtual machines |
US8959173B1 (en) * | 2010-09-30 | 2015-02-17 | Emc Corporation | Non-disruptive load-balancing of virtual machines between data centers |
US8970603B2 (en) | 2010-09-30 | 2015-03-03 | Microsoft Technology Licensing, Llc | Dynamic virtual device failure recovery |
DK2622469T3 (en) | 2010-09-30 | 2020-02-17 | Commvault Systems Inc | Effective data management enhancements, such as docking limited-function data management modules for a complete data management system |
US8103906B1 (en) * | 2010-10-01 | 2012-01-24 | Massoud Alibakhsh | System and method for providing total real-time redundancy for a plurality of client-server systems |
US20160344547A9 (en) * | 2010-10-04 | 2016-11-24 | Unisys Corporation | Secure connection for a remote device through a virtual relay device |
US9363107B2 (en) * | 2010-10-05 | 2016-06-07 | Red Hat Israel, Ltd. | Accessing and processing monitoring data resulting from customized monitoring of system activities |
US9256488B2 (en) | 2010-10-05 | 2016-02-09 | Red Hat Israel, Ltd. | Verification of template integrity of monitoring templates used for customized monitoring of system activities |
US9524224B2 (en) | 2010-10-05 | 2016-12-20 | Red Hat Israel, Ltd. | Customized monitoring of system activities |
US9355004B2 (en) | 2010-10-05 | 2016-05-31 | Red Hat Israel, Ltd. | Installing monitoring utilities using universal performance monitor |
KR20150134435A (en) * | 2010-10-13 | 2015-12-01 | 제트티이 (유에스에이) 잉크. | System and method for multimedia multi-party peering (m2p2) |
US8607054B2 (en) | 2010-10-15 | 2013-12-10 | Microsoft Corporation | Remote access to hosted virtual machines by enterprise users |
US8756696B1 (en) * | 2010-10-30 | 2014-06-17 | Sra International, Inc. | System and method for providing a virtualized secure data containment service with a networked environment |
US8924964B2 (en) * | 2010-11-01 | 2014-12-30 | Microsoft Corporation | Dynamic allocation and assignment of virtual environment |
US9886323B2 (en) * | 2010-11-01 | 2018-02-06 | Vmware, Inc. | Graphical user interface for managing virtual machines |
WO2012066604A1 (en) * | 2010-11-19 | 2012-05-24 | Hitachi, Ltd. | Server system and method for managing the same |
US9223610B2 (en) * | 2010-11-24 | 2015-12-29 | International Business Machines Corporation | Management of virtual machine snapshots |
US8825839B2 (en) * | 2010-11-24 | 2014-09-02 | Unisys Corporation | Snooping DNS messages in a server hosting system providing overlapping address and name spaces |
US20120158945A1 (en) * | 2010-12-16 | 2012-06-21 | Christian Goldbach | Server load balancing using dynamic log-on groups |
US8683560B1 (en) * | 2010-12-29 | 2014-03-25 | Amazon Technologies, Inc. | Techniques for credential generation |
US8856175B2 (en) * | 2010-12-29 | 2014-10-07 | Robert E. Marsh | Method and computer-readable media for managing business transactions |
US20120174092A1 (en) * | 2010-12-29 | 2012-07-05 | Wolfgang Faisst | Integrated commercial infrastructure and business application platform |
US20120174096A1 (en) * | 2010-12-30 | 2012-07-05 | Matthew Conover | Systems and methods to load applications and application data into a virtual machine using hypervisor-attached volumes |
WO2012103517A1 (en) | 2011-01-27 | 2012-08-02 | L-3 Communications Corporation | Internet isolation for avoiding internet security threats |
US8909602B2 (en) * | 2011-02-03 | 2014-12-09 | Vmware, Inc. | Programmatic snapshot and revert of virtualized data center inventory |
US20120209586A1 (en) * | 2011-02-16 | 2012-08-16 | Salesforce.Com, Inc. | Contextual Demonstration of Applications Hosted on Multi-Tenant Database Systems |
US8769071B2 (en) * | 2011-02-25 | 2014-07-01 | Red Hat, Inc. | Dynamic mapping of identifiers in a multi-tenant computing system |
US9405902B1 (en) * | 2011-03-15 | 2016-08-02 | Trend Micro Incorporated | Anti-malware service in multi-tenant cloud computing environments |
US9369433B1 (en) * | 2011-03-18 | 2016-06-14 | Zscaler, Inc. | Cloud based social networking policy and compliance systems and methods |
US8577842B1 (en) * | 2011-09-19 | 2013-11-05 | Amazon Technologies, Inc. | Distributed computer system snapshots and instantiation thereof |
CN102693169B (en) * | 2011-03-25 | 2015-01-28 | 国际商业机器公司 | Method and device for recovering lessee data under multi-lessee environment, and database system |
US9009851B2 (en) * | 2011-03-29 | 2015-04-14 | Brainlab Ag | Virtual machine for processing medical data |
WO2012130289A1 (en) * | 2011-03-29 | 2012-10-04 | Brainlab Ag | Processing of digital data, in particular medical data by a virtual machine |
US9396242B2 (en) * | 2011-04-11 | 2016-07-19 | Salesforce.Com, Inc. | Multi-master data replication in a distributed multi-tenant system |
US8892707B2 (en) | 2011-04-13 | 2014-11-18 | Netapp, Inc. | Identification of virtual applications for backup in a cloud computing system |
US8612541B2 (en) * | 2011-04-29 | 2013-12-17 | Blue Coat Systems, Inc. | Method and apparatus for multi-tenant policy management in a network device |
US9043452B2 (en) | 2011-05-04 | 2015-05-26 | Nicira, Inc. | Network control apparatus and method for port isolation |
US20120290695A1 (en) * | 2011-05-13 | 2012-11-15 | International Business Machines Corporation | Distributed Policy Service |
US9086909B2 (en) | 2011-05-17 | 2015-07-21 | Oracle International Corporation | System and method for supporting work sharing muxing in a cluster |
US9223632B2 (en) | 2011-05-20 | 2015-12-29 | Microsoft Technology Licensing, Llc | Cross-cloud management and troubleshooting |
JP2012243254A (en) * | 2011-05-24 | 2012-12-10 | Intelligent Willpower Corp | Virtual machine providing system |
CN103444135B (en) | 2011-06-02 | 2016-10-12 | 慧与发展有限责任合伙企业 | Network virtualization method and virtualization network |
JP5707239B2 (en) * | 2011-06-02 | 2015-04-22 | 株式会社日立製作所 | Multi-tenant information processing system, management server, and configuration management method |
JP5814639B2 (en) * | 2011-06-09 | 2015-11-17 | キヤノン株式会社 | Cloud system, cloud service license management method, and program |
US9928375B2 (en) * | 2011-06-13 | 2018-03-27 | International Business Machines Corporation | Mitigation of data leakage in a multi-site computing infrastructure |
US8706869B2 (en) * | 2011-06-14 | 2014-04-22 | International Business Machines Corporation | Distributed cloud placement software |
US9286182B2 (en) * | 2011-06-17 | 2016-03-15 | Microsoft Technology Licensing, Llc | Virtual machine snapshotting and analysis |
US9450873B2 (en) | 2011-06-28 | 2016-09-20 | Microsoft Technology Licensing, Llc | Performance isolation for clouds |
JP5930847B2 (en) * | 2011-06-29 | 2016-06-08 | キヤノン株式会社 | Server system, control method and program |
US8769058B1 (en) * | 2011-06-30 | 2014-07-01 | Emc Corporation | Provisioning interfacing virtual machines to separate virtual datacenters |
US9058336B1 (en) | 2011-06-30 | 2015-06-16 | Emc Corporation | Managing virtual datacenters with tool that maintains communications with a virtual data center that is moved |
US9323820B1 (en) | 2011-06-30 | 2016-04-26 | Emc Corporation | Virtual datacenter redundancy |
US10264058B1 (en) * | 2011-06-30 | 2019-04-16 | Emc Corporation | Defining virtual application templates |
US10042657B1 (en) * | 2011-06-30 | 2018-08-07 | Emc Corporation | Provisioning virtual applciations from virtual application templates |
US9282142B1 (en) | 2011-06-30 | 2016-03-08 | Emc Corporation | Transferring virtual datacenters between hosting locations while maintaining communication with a gateway server following the transfer |
CN103649910A (en) | 2011-07-11 | 2014-03-19 | 惠普发展公司,有限责任合伙企业 | Virtual machine placement |
US8954586B2 (en) | 2011-07-13 | 2015-02-10 | International Business Machines Corporation | Pre-provisioning virtual machines in a networked computing environment |
JP5971249B2 (en) * | 2011-07-20 | 2016-08-17 | 日本電気株式会社 | User shared data center system |
US9424144B2 (en) | 2011-07-27 | 2016-08-23 | Microsoft Technology Licensing, Llc | Virtual machine migration to minimize packet loss in virtualized network |
US8756588B2 (en) * | 2011-08-01 | 2014-06-17 | Salesforce.Com, Inc | Contextual exception management in multi-tenant systems |
US9384030B2 (en) * | 2011-08-11 | 2016-07-05 | Ca, Inc. | System and method for deploying a dynamic virtual network address translation appliance |
US9274825B2 (en) | 2011-08-16 | 2016-03-01 | Microsoft Technology Licensing, Llc | Virtualization gateway between virtualized and non-virtualized networks |
WO2013029051A2 (en) | 2011-08-25 | 2013-02-28 | to fuVIRTUSTREAM, INC. | Systems and methods of host-aware resource management involving cluster-based resource pools |
US9250944B2 (en) | 2011-08-30 | 2016-02-02 | International Business Machines Corporation | Selection of virtual machines from pools of pre-provisioned virtual machines in a networked computing environment |
US8856518B2 (en) | 2011-09-07 | 2014-10-07 | Microsoft Corporation | Secure and efficient offloading of network policies to network interface cards |
US8930547B2 (en) * | 2011-09-14 | 2015-01-06 | Cloudbyte, Inc. | Techniques for achieving storage and network isolation in a cloud storage environment |
US9143335B2 (en) | 2011-09-16 | 2015-09-22 | Brocade Communications Systems, Inc. | Multicast route cache system |
US20130073667A1 (en) * | 2011-09-20 | 2013-03-21 | Cloudbyte, Inc. | Techniques for administering and monitoring multi-tenant storage |
US10095562B2 (en) | 2013-02-28 | 2018-10-09 | Oracle International Corporation | System and method for transforming a queue from non-blocking to blocking |
US9378045B2 (en) | 2013-02-28 | 2016-06-28 | Oracle International Corporation | System and method for supporting cooperative concurrency in a middleware machine environment |
US8689237B2 (en) | 2011-09-22 | 2014-04-01 | Oracle International Corporation | Multi-lane concurrent bag for facilitating inter-thread communication |
US9110715B2 (en) | 2013-02-28 | 2015-08-18 | Oracle International Corporation | System and method for using a sequencer in a concurrent priority queue |
US9372827B2 (en) | 2011-09-30 | 2016-06-21 | Commvault Systems, Inc. | Migration of an existing computing system to new hardware |
US9461881B2 (en) | 2011-09-30 | 2016-10-04 | Commvault Systems, Inc. | Migration of existing computing systems to cloud computing sites or virtual machines |
US9116633B2 (en) | 2011-09-30 | 2015-08-25 | Commvault Systems, Inc. | Information management of virtual machines having mapped storage devices |
US9712599B2 (en) * | 2011-10-03 | 2017-07-18 | International Business Machines Corporation | Application peak load processing |
US9178833B2 (en) * | 2011-10-25 | 2015-11-03 | Nicira, Inc. | Chassis controller |
US8819801B2 (en) * | 2011-10-31 | 2014-08-26 | Microsoft Corporation | Secure machine enrollment in multi-tenant subscription environment |
US8843609B2 (en) * | 2011-11-09 | 2014-09-23 | Microsoft Corporation | Managing capacity in a data center by suspending tenants |
CN103917967B (en) | 2011-11-15 | 2016-10-05 | Nicira股份有限公司 | For configuring the network control system of middleboxes |
US8620820B2 (en) * | 2011-11-15 | 2013-12-31 | International Business Machines Corporation | Management of dynamic assembly and licensing of appliances |
US8868710B2 (en) * | 2011-11-18 | 2014-10-21 | Amazon Technologies, Inc. | Virtual network interface objects |
US20130132948A1 (en) * | 2011-11-21 | 2013-05-23 | Adiseshu Hari | Personal cloud computing and virtual distributed cloud computing system |
JP5828270B2 (en) * | 2011-11-21 | 2015-12-02 | 富士通株式会社 | Management apparatus, management program, management method, and information processing apparatus |
CN103136055B (en) | 2011-11-25 | 2016-08-03 | 国际商业机器公司 | For controlling the method and apparatus to the use calculating resource in database service |
US8767737B2 (en) * | 2011-11-30 | 2014-07-01 | Industrial Technology Research Institute | Data center network system and packet forwarding method thereof |
US8819210B2 (en) | 2011-12-06 | 2014-08-26 | Sap Portals Israel Ltd | Multi-tenant infrastructure |
US9178767B2 (en) | 2011-12-09 | 2015-11-03 | Telefonaktiebolaget L M Ericsson (Publ) | Intelligent traffic quota management in split-architecture networks |
US8948191B2 (en) * | 2011-12-09 | 2015-02-03 | Telefonaktiebolaget L M Ericsson (Publ) | Intelligent traffic quota management |
US9268589B2 (en) * | 2011-12-09 | 2016-02-23 | Yahoo! Inc. | Method and system for deploying multiple distributed application stacks on a target machine |
US9183230B2 (en) * | 2012-01-11 | 2015-11-10 | International Business Machines Corporation | Content analytics system configured to support multiple tenants |
US9122595B2 (en) * | 2012-01-13 | 2015-09-01 | NetSuite Inc. | Fault tolerance for complex distributed computing operations |
US20130198637A1 (en) * | 2012-01-27 | 2013-08-01 | Sungard Availability Services Lp | Cloud service dashboard |
US9891937B2 (en) * | 2012-01-30 | 2018-02-13 | Lg Electronics Inc. | Method for managing virtual machine and device therefor |
WO2013119841A1 (en) | 2012-02-10 | 2013-08-15 | Nimbula, Inc. | Cloud computing services framework |
US9058198B2 (en) | 2012-02-29 | 2015-06-16 | Red Hat Inc. | System resource sharing in a multi-tenant platform-as-a-service environment in a cloud computing system |
US9047107B2 (en) * | 2012-02-29 | 2015-06-02 | Red Hat, Inc. | Applying a custom security type label to multi-tenant applications of a node in a platform-as-a-service environment |
US9038128B2 (en) | 2012-02-29 | 2015-05-19 | Red Hat, Inc. | Applying security category labels to multi-tenant applications of a node in a platform-as-a-service environment |
US9720668B2 (en) | 2012-02-29 | 2017-08-01 | Red Hat, Inc. | Creating and maintaining multi-tenant applications in a platform-as-a-service (PaaS) environment of a cloud computing system |
US9916545B1 (en) | 2012-02-29 | 2018-03-13 | Amazon Technologies, Inc. | Portable network interfaces for authentication and license enforcement |
US10353738B2 (en) | 2012-03-21 | 2019-07-16 | International Business Machines Corporation | Resource allocation based on social networking trends in a networked computing environment |
US20130254840A1 (en) | 2012-03-26 | 2013-09-26 | International Business Machines Corporation | Providing multiple authentications to authenticate users with respect to a system and file systems offerred through the system |
US9456011B1 (en) * | 2012-03-29 | 2016-09-27 | Emc Corporation | Dynamic service and registry for management infrastructure |
US9124633B1 (en) * | 2012-03-29 | 2015-09-01 | Infoblox Inc. | IP address and domain name automation of virtual infrastructure |
US9098726B2 (en) * | 2012-04-24 | 2015-08-04 | Samsung Electronics Co., Ltd. | Scalable and secure application resource management and access control for multicore operating systems |
US9317325B2 (en) | 2012-05-01 | 2016-04-19 | Red Hat, Inc. | Application idling in a multi-tenant cloud-based application hosting environment |
US8850514B2 (en) | 2012-05-01 | 2014-09-30 | Red Hat, Inc. | Cartridges in a multi-tenant platforms-as-a-service (PaaS) system implemented in a cloud computing environment |
US9665411B2 (en) | 2012-05-01 | 2017-05-30 | Red Hat, Inc. | Communication between a server orchestration system and a messaging system |
US9245111B2 (en) | 2012-05-01 | 2016-01-26 | Red Hat, Inc. | Owner command execution in a multi-tenant cloud hosting environment |
US9842002B2 (en) | 2012-05-01 | 2017-12-12 | Red Hat, Inc. | Node selection for a new application in a multi-tenant cloud hosting environment |
US10365953B2 (en) | 2012-05-01 | 2019-07-30 | Red Hat, Inc. | Tracking and utilizing facts about a node of a multi-tenant cloud hosting environment |
US9311376B2 (en) | 2012-05-02 | 2016-04-12 | Microsoft Technology Licensing, Llc | Performance service level agreements in multi-tenant database systems |
US20130297752A1 (en) * | 2012-05-02 | 2013-11-07 | Cisco Technology, Inc. | Provisioning network segments based on tenant identity |
US9171178B1 (en) * | 2012-05-14 | 2015-10-27 | Symantec Corporation | Systems and methods for optimizing security controls for virtual data centers |
US9146793B2 (en) * | 2012-05-18 | 2015-09-29 | Hitachi, Ltd. | Management system and management method |
US9237188B1 (en) * | 2012-05-21 | 2016-01-12 | Amazon Technologies, Inc. | Virtual machine based content processing |
US9189167B2 (en) | 2012-05-31 | 2015-11-17 | Commvault Systems, Inc. | Shared library in a data storage system |
US10469330B1 (en) * | 2012-06-15 | 2019-11-05 | Amazon Technologies, Inc. | Client account versioning metadata manager for cloud computing environments |
US9251181B2 (en) | 2012-06-18 | 2016-02-02 | International Business Machines Corporation | Dynamic map template discovery and map creation |
US8775599B2 (en) | 2012-06-19 | 2014-07-08 | Microsoft Corporation | Multi-tenant middleware cloud service technology |
US9128743B1 (en) * | 2012-06-19 | 2015-09-08 | Bromium, Inc. | Graphic visualization of a suspended virtual machine |
US9015530B2 (en) | 2012-06-26 | 2015-04-21 | Phani Chiruvolu | Reliably testing virtual machine failover using differencing disks |
EP3364297B1 (en) | 2012-06-26 | 2022-05-04 | Lynx Software Technologies Inc. | Systems and methods involving features of hardware virtualization such as separation kernel hypervisors, hypervisors, hypervisor guest context, hypervisor context, rootkit detection prevention, and/or other features |
US11763358B2 (en) | 2012-06-26 | 2023-09-19 | EMC IP Holding Company LLC | Per-tenant cost calculation in multi-tenant data storage system |
US9003477B2 (en) * | 2012-06-27 | 2015-04-07 | Microsoft Technology Licensing, Llc | Model for managing hosted resources using logical scopes |
US9100399B2 (en) * | 2012-06-29 | 2015-08-04 | International Business Machines Corporation | Portable virtual systems for composite solutions |
US10049131B2 (en) * | 2012-07-02 | 2018-08-14 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for determining user access to custom metadata |
US20140019981A1 (en) * | 2012-07-12 | 2014-01-16 | Microsoft Corporation | Scheduling user jobs across tenants |
US9959423B2 (en) * | 2012-07-30 | 2018-05-01 | Microsoft Technology Licensing, Llc | Security and data isolation for tenants in a business data system |
US20140052877A1 (en) * | 2012-08-16 | 2014-02-20 | Wenbo Mao | Method and apparatus for tenant programmable logical network for multi-tenancy cloud datacenters |
CN103595551B (en) * | 2012-08-17 | 2016-12-21 | 杭州华三通信技术有限公司 | Network management and the device of network virtualization is realized based on MQC |
US9304873B2 (en) * | 2012-08-23 | 2016-04-05 | Vmware, Inc. | Recovery system and method for recreating a state of a datacenter |
CN103259727B (en) | 2012-08-31 | 2016-12-28 | 杭州华三通信技术有限公司 | A kind of message forwarding method and equipment |
US8978035B2 (en) | 2012-09-06 | 2015-03-10 | Red Hat, Inc. | Scaling of application resources in a multi-tenant platform-as-a-service environment in a cloud computing system |
US10061602B2 (en) * | 2012-09-07 | 2018-08-28 | Oracle International Corporation | System and method for providing a virtual assembly builder for use with a cloud computing environment |
US9009704B2 (en) * | 2012-09-07 | 2015-04-14 | Red Hat, Inc. | Application partitioning in a multi-tenant platform-as-a-service environment in a cloud computing system |
US20140074968A1 (en) * | 2012-09-12 | 2014-03-13 | Sap Ag | Managing a server node infrastructure |
WO2014042632A1 (en) * | 2012-09-12 | 2014-03-20 | Empire Technology Development, Llc | Compound certifications for assurance without revealing infrastructure |
US8438654B1 (en) | 2012-09-14 | 2013-05-07 | Rightscale, Inc. | Systems and methods for associating a virtual machine with an access control right |
US9063721B2 (en) | 2012-09-14 | 2015-06-23 | The Research Foundation For The State University Of New York | Continuous run-time validation of program execution: a practical approach |
CN103685399B (en) | 2012-09-17 | 2018-03-23 | 腾讯科技(深圳)有限公司 | A kind of methods, devices and systems for logging in class Unix virtual containers |
US9262188B1 (en) * | 2012-09-19 | 2016-02-16 | Emc Corporation | Virtual asset management in data center |
US10581763B2 (en) | 2012-09-21 | 2020-03-03 | Avago Technologies International Sales Pte. Limited | High availability application messaging layer |
JP2014063356A (en) * | 2012-09-21 | 2014-04-10 | Fujitsu Ltd | Information processing method, program, information processor and information processing system |
US9967106B2 (en) | 2012-09-24 | 2018-05-08 | Brocade Communications Systems LLC | Role based multicast messaging infrastructure |
US9203690B2 (en) | 2012-09-24 | 2015-12-01 | Brocade Communications Systems, Inc. | Role based multicast messaging infrastructure |
US8959513B1 (en) * | 2012-09-27 | 2015-02-17 | Juniper Networks, Inc. | Controlling virtualization resource utilization based on network state |
US20140089013A1 (en) * | 2012-09-27 | 2014-03-27 | Hartford Fire Insurance Company | System and method for synchronizing aggregate financial data with detailed data |
US10635674B2 (en) * | 2012-09-28 | 2020-04-28 | Oracle International Corporation | Migrating a pluggable database between database server instances with minimal impact to performance |
US9069782B2 (en) | 2012-10-01 | 2015-06-30 | The Research Foundation For The State University Of New York | System and method for security and privacy aware virtual machine checkpointing |
US9342353B2 (en) * | 2012-10-06 | 2016-05-17 | International Business Machines Corporation | Techniques for implementing information services with tenant specific service level agreements |
EP2909716B1 (en) * | 2012-10-16 | 2021-02-17 | Citrix Systems, Inc. | Systems and methods for bridging between public and private clouds through multi-level api integration |
US9239727B1 (en) * | 2012-10-17 | 2016-01-19 | Amazon Technologies, Inc. | Configurable virtual machines |
US10248453B2 (en) | 2012-10-23 | 2019-04-02 | Red Hat Israel, Ltd. | Client live migration for a virtual machine |
US9069766B2 (en) | 2012-11-02 | 2015-06-30 | Microsoft Technology Licensing, Llc | Content-based isolation for computing device security |
US9990238B2 (en) * | 2012-11-05 | 2018-06-05 | Red Hat, Inc. | Event notification |
US9104463B2 (en) * | 2012-11-07 | 2015-08-11 | International Business Machines Corporation | Automated and optimal deactivation of service to enable effective resource reusability |
GB2507779A (en) * | 2012-11-09 | 2014-05-14 | Ibm | Terminating a virtual machine in response to user inactivity in a cloud computing environment |
GB201220692D0 (en) * | 2012-11-16 | 2013-01-02 | Overnet Data Man Ltd | Software deployment and control method and system |
US9166947B1 (en) * | 2012-11-21 | 2015-10-20 | Amazon Technologies, Inc. | Maintaining private connections during network interface reconfiguration |
US9201896B2 (en) * | 2012-11-26 | 2015-12-01 | Red Hat, Inc. | Managing distributed storage quotas |
CN104813288B (en) * | 2012-11-27 | 2018-01-12 | 瑞典爱立信有限公司 | The apparatus and method that tenant's specific data are separated during for using MPLS in the cloud computing for enable OPENFLOW |
US9092837B2 (en) | 2012-11-29 | 2015-07-28 | International Business Machines Corporation | Use of snapshots to reduce risk in migration to a standard virtualized environment |
US9742873B2 (en) | 2012-11-29 | 2017-08-22 | International Business Machines Corporation | Adjustment to managed-infrastructure-as-a-service cloud standard |
US9282166B2 (en) | 2012-11-29 | 2016-03-08 | International Business Machines Corporation | Management infrastructure analysis for cloud migration |
US9292330B2 (en) | 2012-11-29 | 2016-03-22 | International Business Machines Corporation | Replacing virtual machine disks |
US9824343B2 (en) * | 2012-12-04 | 2017-11-21 | International Business Machines Corporation | Platform-as-a-service billing |
TW201426348A (en) * | 2012-12-19 | 2014-07-01 | Hon Hai Prec Ind Co Ltd | System and method for managing tags of virtual machines |
FR3000339A1 (en) * | 2012-12-20 | 2014-06-27 | France Telecom | METHOD FOR PROCESSING ACCESS REQUESTS TO COMPUTER VIRTUALIZATION SERVICES, VIRTUALIZATION GATEWAY AND WEB BROWSER |
US20140181038A1 (en) | 2012-12-21 | 2014-06-26 | Commvault Systems, Inc. | Systems and methods to categorize unprotected virtual machines |
US9311121B2 (en) | 2012-12-21 | 2016-04-12 | Commvault Systems, Inc. | Archiving virtual machines in a data storage system |
TW201426332A (en) * | 2012-12-27 | 2014-07-01 | Hon Hai Prec Ind Co Ltd | File storage system and method |
US9378035B2 (en) | 2012-12-28 | 2016-06-28 | Commvault Systems, Inc. | Systems and methods for repurposing virtual machines |
US20140196039A1 (en) | 2013-01-08 | 2014-07-10 | Commvault Systems, Inc. | Virtual machine categorization system and method |
US20140201151A1 (en) | 2013-01-11 | 2014-07-17 | Commvault Systems, Inc. | Systems and methods to select files for restoration from block-level backup for virtual machines |
US9286110B2 (en) | 2013-01-14 | 2016-03-15 | Commvault Systems, Inc. | Seamless virtual machine recall in a data storage system |
US9846851B2 (en) * | 2013-01-15 | 2017-12-19 | Hewlett-Packard Development Company, L.P. | Print service provider capacity planning |
US10469304B1 (en) * | 2013-01-16 | 2019-11-05 | Amazon Technologies, Inc. | Network visualization service |
US9497266B2 (en) * | 2013-02-22 | 2016-11-15 | International Business Machines Corporation | Disk mirroring for personal storage |
US10157228B2 (en) * | 2013-02-22 | 2018-12-18 | Mitel Networks Corporation | Communication system including a confidence level for a contact type and method of using same |
US10084863B2 (en) * | 2013-02-25 | 2018-09-25 | P. Ashok Anand | Electronic switching system for generating correlation identity |
WO2014128732A1 (en) * | 2013-02-25 | 2014-08-28 | P Ashok Anand | Correlation identity generation method for cloud environment |
US9251115B2 (en) | 2013-03-07 | 2016-02-02 | Citrix Systems, Inc. | Dynamic configuration in cloud computing environments |
US9521188B1 (en) * | 2013-03-07 | 2016-12-13 | Amazon Technologies, Inc. | Scheduled execution of instances |
US9002982B2 (en) * | 2013-03-11 | 2015-04-07 | Amazon Technologies, Inc. | Automated desktop placement |
US10313345B2 (en) * | 2013-03-11 | 2019-06-04 | Amazon Technologies, Inc. | Application marketplace for virtual desktops |
US10142406B2 (en) | 2013-03-11 | 2018-11-27 | Amazon Technologies, Inc. | Automated data center selection |
US9148350B1 (en) | 2013-03-11 | 2015-09-29 | Amazon Technologies, Inc. | Automated data synchronization |
US9021307B1 (en) * | 2013-03-14 | 2015-04-28 | Emc Corporation | Verifying application data protection |
US9110680B1 (en) * | 2013-03-14 | 2015-08-18 | Amazon Technologies, Inc. | Avoiding or deferring data copies |
US10389608B2 (en) | 2013-03-15 | 2019-08-20 | Amazon Technologies, Inc. | Network traffic mapping and performance analysis |
US9515947B1 (en) * | 2013-03-15 | 2016-12-06 | EMC IP Holding Company LLC | Method and system for providing a virtual network-aware storage array |
US10637909B2 (en) * | 2013-03-15 | 2020-04-28 | Gordon E. Seay | Methods for managing entity profiles and application launching in software applications |
CN104885058B (en) * | 2013-03-15 | 2018-06-26 | 甲骨文国际公司 | The system and method that universal product line is carried out in virtual component generator environment |
JP6070355B2 (en) * | 2013-03-28 | 2017-02-01 | 富士通株式会社 | Virtual machine control program, virtual machine control method, virtual machine control device, and cloud system |
US10075470B2 (en) | 2013-04-19 | 2018-09-11 | Nicira, Inc. | Framework for coordination between endpoint security and network security services |
US9900172B2 (en) * | 2013-04-25 | 2018-02-20 | Qualcomm Incorporated | Coordinated resource sharing in machine-to-machine communication using a network-based group management and floor control mechanism |
US9116737B2 (en) * | 2013-04-30 | 2015-08-25 | Vmware, Inc. | Conversion of virtual disk snapshots between redo and copy-on-write technologies |
US9286093B1 (en) * | 2013-05-10 | 2016-03-15 | Ca, Inc. | Setting up network adaptors in a virtual machine |
US9063905B2 (en) * | 2013-05-22 | 2015-06-23 | Steven Lloyd Baird | System and method for virtualized shared use environment with dynamic IP address injection |
US20140370482A1 (en) * | 2013-06-18 | 2014-12-18 | Microsoft Corporation | Pedagogical elements in virtual labs |
CN104243522B (en) * | 2013-06-19 | 2018-02-06 | 华为技术有限公司 | Method and wideband network gateway for HTTP network |
US10623243B2 (en) | 2013-06-26 | 2020-04-14 | Amazon Technologies, Inc. | Management of computing sessions |
US10686646B1 (en) | 2013-06-26 | 2020-06-16 | Amazon Technologies, Inc. | Management of computing sessions |
US9619545B2 (en) | 2013-06-28 | 2017-04-11 | Oracle International Corporation | Naïve, client-side sharding with online addition of shards |
US9456003B2 (en) | 2013-07-24 | 2016-09-27 | At&T Intellectual Property I, L.P. | Decoupling hardware and software components of network security devices to provide security software as a service in a distributed computing environment |
US10009371B2 (en) | 2013-08-09 | 2018-06-26 | Nicira Inc. | Method and system for managing network storm |
US9280372B2 (en) * | 2013-08-12 | 2016-03-08 | Amazon Technologies, Inc. | Request processing techniques |
US10346148B2 (en) | 2013-08-12 | 2019-07-09 | Amazon Technologies, Inc. | Per request computer system instances |
US9348634B2 (en) | 2013-08-12 | 2016-05-24 | Amazon Technologies, Inc. | Fast-booting application image using variation points in application source code |
US9887960B2 (en) | 2013-08-14 | 2018-02-06 | Nicira, Inc. | Providing services for logical networks |
US9705755B1 (en) | 2013-08-14 | 2017-07-11 | Amazon Technologies, Inc. | Application definition deployment with request filters employing base groups |
US9176731B1 (en) * | 2013-08-27 | 2015-11-03 | Google Inc. | Heuristics for automated culprit finding |
US20150066759A1 (en) * | 2013-08-27 | 2015-03-05 | Connectloud, Inc. | METHOD AND APPARATUS FOR GAUGING NETWORK TRAFFIC FLOW FOR SOFTWARE DEFINED NETWORKS WITHIN A SOFTWARE DEFINED CLOUDd |
US20150066718A1 (en) * | 2013-08-28 | 2015-03-05 | Connectloud, Inc. | Method and apparatus for creating a tenant invoice based on software defined cloud usage |
CN105518648B (en) * | 2013-09-04 | 2018-10-09 | 安提特软件有限责任公司 | Via node-relational model resource is provided to client |
CN105531688B (en) | 2013-09-04 | 2018-05-29 | 慧与发展有限责任合伙企业 | The service of resource as other services is provided |
CN105518651B (en) | 2013-09-04 | 2018-10-16 | 慧与发展有限责任合伙企业 | Resource selection method, system and the storage medium based on strategy for cloud service |
US10212050B2 (en) | 2013-09-04 | 2019-02-19 | Entit Software Llc | Providing recursively-generated instantiated computing resource in a multi-tenant environment |
US9535758B2 (en) | 2013-09-05 | 2017-01-03 | International Business Machines Corporation | Managing data distribution to networked client computing devices |
US9939981B2 (en) | 2013-09-12 | 2018-04-10 | Commvault Systems, Inc. | File manager integration with virtualization in an information management system with an enhanced storage manager, including user control and storage management of virtual machines |
US9405568B2 (en) * | 2013-09-13 | 2016-08-02 | Microsoft Technology Licensing, Llc | Multi-tenant network stack |
US11038954B2 (en) * | 2013-09-18 | 2021-06-15 | Verizon Patent And Licensing Inc. | Secure public connectivity to virtual machines of a cloud computing environment |
US20150081400A1 (en) * | 2013-09-19 | 2015-03-19 | Infosys Limited | Watching ARM |
US9110699B2 (en) * | 2013-09-19 | 2015-08-18 | International Business Machines Corporation | Determining optimal methods for creating virtual machines |
US10110506B2 (en) * | 2013-09-20 | 2018-10-23 | Oracle International Corporation | System and method for quota management in a cloud platform environment |
US11663025B2 (en) * | 2013-09-23 | 2023-05-30 | Bankvault Pty Ltd | Maintenance of and caching of suspended virtual computers in a pool of suspended virtual computers |
CN104516773B (en) * | 2013-09-29 | 2018-04-20 | 国际商业机器公司 | Data distributing method and data distribution device for physical machine |
US20150100670A1 (en) * | 2013-10-04 | 2015-04-09 | International Business Machines Corporation | Transporting multi-destination networking traffic by sending repetitive unicast |
US9378391B2 (en) * | 2013-10-11 | 2016-06-28 | Centrify Corporation | Method and apparatus for creating switchable desktops with separate authorizations |
JP6226689B2 (en) * | 2013-10-16 | 2017-11-08 | キヤノン株式会社 | Information processing system, information processing method, and program |
EP4071605A1 (en) * | 2013-10-23 | 2022-10-12 | Huawei Cloud Computing Technologies Co., Ltd. | Method, system and apparatus for creating virtual machine |
US10642800B2 (en) * | 2013-10-25 | 2020-05-05 | Vmware, Inc. | Multi-tenant distributed computing and database |
US9912570B2 (en) * | 2013-10-25 | 2018-03-06 | Brocade Communications Systems LLC | Dynamic cloning of application infrastructures |
US10476760B2 (en) | 2013-10-30 | 2019-11-12 | Oracle International Corporation | System and method for placement logic in a cloud platform environment |
US9798561B2 (en) | 2013-10-31 | 2017-10-24 | Vmware, Inc. | Guarded virtual machines |
US10908937B2 (en) | 2013-11-11 | 2021-02-02 | Amazon Technologies, Inc. | Automatic directory join for virtual machine instances |
US10511566B2 (en) | 2013-11-11 | 2019-12-17 | Amazon Technologies, Inc. | Managed directory service with extension |
US9420004B2 (en) * | 2013-11-27 | 2016-08-16 | Vmware, Inc. | Dynamic expression evaluation based grouping of VM objects for networking and security services in a virtualized computing system |
US9946889B2 (en) * | 2013-11-27 | 2018-04-17 | Nakivo, Inc. | Systems and methods for multi-tenant data protection application |
US10277717B2 (en) | 2013-12-15 | 2019-04-30 | Nicira, Inc. | Network introspection in an operating system |
US8910294B1 (en) * | 2013-12-18 | 2014-12-09 | State Farm Mutual Automobile Insurance Company | System and method for application failure testing in a cloud computing environment |
US9940111B2 (en) * | 2013-12-18 | 2018-04-10 | Red Hat, Inc. | Policy-based application deployment to a target application platform system |
US10459594B2 (en) * | 2013-12-31 | 2019-10-29 | Vmware, Inc. | Management of a pre-configured hyper-converged computing device |
WO2015112614A1 (en) | 2014-01-21 | 2015-07-30 | Oracle International Corporation | System and method for supporting multi-tenancy in an application server, cloud, or other environment |
US9369478B2 (en) | 2014-02-06 | 2016-06-14 | Nicira, Inc. | OWL-based intelligent security audit |
US9851918B2 (en) * | 2014-02-21 | 2017-12-26 | Red Hat Israel, Ltd. | Copy-on-write by origin host in virtual machine live migration |
US10243808B2 (en) * | 2014-02-24 | 2019-03-26 | Red Hat Israel, Ltd. | User interface for modifying rows associated with virtual machines |
US10924542B2 (en) * | 2014-02-27 | 2021-02-16 | Verizon Patent And Licensing Inc. | Content delivery system |
US9270546B2 (en) * | 2014-03-05 | 2016-02-23 | Software Ag | Systems and/or methods for on-demand repository bootstrapping at runtime in a scalable, distributed multi-tenant environment |
WO2015135611A1 (en) | 2014-03-10 | 2015-09-17 | Nokia Solutions And Networks Oy | Notification about virtual machine live migration to vnf manager |
US9933916B1 (en) * | 2014-03-19 | 2018-04-03 | VCE IP Holding Company LLC | Methods, systems, and computer readable mediums for providing user interface information associated with a computing system |
JP6295759B2 (en) * | 2014-03-20 | 2018-03-20 | 富士通株式会社 | Network management apparatus, information processing system, and program |
US9754122B1 (en) | 2014-03-21 | 2017-09-05 | Amazon Technologies, Inc. | Isolating tenants executing in multi-tenant software containers |
US9471353B1 (en) | 2014-03-21 | 2016-10-18 | Amazon Technologies, Inc. | Isolating tenants executing in multi-tenant software containers |
US9703611B1 (en) | 2014-03-21 | 2017-07-11 | Amazon Technologies, Inc. | Isolating resources for utilization by tenants executing in multi-tenant software containers |
US9819626B1 (en) | 2014-03-28 | 2017-11-14 | Amazon Technologies, Inc. | Placement-dependent communication channels in distributed systems |
US10218633B2 (en) * | 2014-03-28 | 2019-02-26 | Amazon Technologies, Inc. | Implementation of a service that coordinates the placement and execution of containers |
US10176005B2 (en) * | 2014-03-31 | 2019-01-08 | Cypherpath, Inc. | Environment virtualization |
US9563518B2 (en) | 2014-04-02 | 2017-02-07 | Commvault Systems, Inc. | Information management by a media agent in the absence of communications with a storage manager |
US10862948B1 (en) * | 2014-04-04 | 2020-12-08 | 8X8, Inc. | Virtual data centers |
US10530935B1 (en) | 2014-04-04 | 2020-01-07 | 8×8, Inc. | Support services for virtual data centers |
US10339010B1 (en) | 2014-04-05 | 2019-07-02 | Bruce Talley | Systems and methods for synchronization of backup copies |
JP6102820B2 (en) * | 2014-04-10 | 2017-03-29 | 横河電機株式会社 | Engineering method |
US9686278B1 (en) * | 2014-05-07 | 2017-06-20 | Skyport Systems, Inc. | Method and system for configuring computing devices |
EP3140734B1 (en) | 2014-05-09 | 2020-04-08 | Nutanix, Inc. | Mechanism for providing external access to a secured networked virtualization environment |
WO2016004263A1 (en) * | 2014-07-01 | 2016-01-07 | Lynx Software Technologies, Inc. | Systems and methods involving aspects of hardware virtualization such as separation kernel hypervisors, hypervisors, hypervisor guest context, hypervisor context, anti-fingerprinting, and/or other features |
CA2969422A1 (en) | 2014-05-15 | 2015-11-19 | Lynx Software Technologies Inc. | Systems and methods involving features of hardware virtualization, hypervisor, apis of interest, and/or other features |
US9848045B2 (en) | 2014-05-27 | 2017-12-19 | Commvault Systems, Inc. | Offline messaging between a repository storage operation cell and remote storage operation cells via an intermediary media agent |
US10789642B2 (en) | 2014-05-30 | 2020-09-29 | Apple Inc. | Family accounts for an online content storage sharing service |
US9800569B2 (en) * | 2014-06-05 | 2017-10-24 | International Business Machines Corporation | Data protection backup agent management |
US10241836B2 (en) * | 2014-06-11 | 2019-03-26 | Vmware, Inc. | Resource management in a virtualized computing environment |
US11477278B2 (en) * | 2014-06-24 | 2022-10-18 | Oracle International Corporation | System and method for supporting partitions in a multitenant application server environment |
US10452669B2 (en) * | 2014-06-26 | 2019-10-22 | Ciena Corporation | Simplifying quantitative analysis of time-bounded resource consumption |
US9507578B2 (en) * | 2014-06-27 | 2016-11-29 | International Business Machines Corporation | Application instance staging |
US11782745B2 (en) * | 2014-07-01 | 2023-10-10 | Lynx Software Technologies, Inc. | Systems and methods involving aspects of hardware virtualization such as separation kernel hypervisors, hypervisors, hypervisor guest context, hypervisor context, anti-fingerprinting and/or other features |
US20160019317A1 (en) | 2014-07-16 | 2016-01-21 | Commvault Systems, Inc. | Volume or virtual machine level backup and generating placeholders for virtual machine files |
US11635979B2 (en) * | 2014-07-21 | 2023-04-25 | Vmware, Inc. | Modifying a state of a virtual machine |
US20160019081A1 (en) * | 2014-07-21 | 2016-01-21 | Vmware,Inc. | Viewing a snapshot of a virtual machine |
US9612859B2 (en) | 2014-07-21 | 2017-04-04 | Vmware, Inc. | Comparing states of a virtual machine |
US10044581B1 (en) | 2015-09-29 | 2018-08-07 | Amazon Technologies, Inc. | Network traffic tracking using encapsulation protocol |
JP5799399B1 (en) * | 2014-08-01 | 2015-10-28 | 株式会社応用電子 | Virtual communication system |
US10200258B2 (en) * | 2014-08-14 | 2019-02-05 | Juniper Networks, Inc. | Transaction integrity for network services configuration |
US10397053B2 (en) * | 2014-08-14 | 2019-08-27 | Netapp Inc. | Methods for managing storage virtual machine configuration changes in a distributed storage system and devices thereof |
US20160048844A1 (en) * | 2014-08-15 | 2016-02-18 | Salesforce.Com, Inc. | Techniques, architectures and mechanisms for management of electronic licensure |
US10528999B2 (en) | 2014-08-18 | 2020-01-07 | Yp Llc | Systems and methods for facilitating discovery and management of business information |
US9256761B1 (en) * | 2014-08-18 | 2016-02-09 | Yp Llc | Data storage service for personalization system |
USD766983S1 (en) * | 2014-08-22 | 2016-09-20 | Htc Corporation | Display screen or portion thereof with icon |
WO2016030973A1 (en) * | 2014-08-27 | 2016-03-03 | 株式会社日立製作所 | Multi-tenant resource coordination method |
US10469448B2 (en) * | 2014-09-05 | 2019-11-05 | Hewlett Packard Enterprise Development Lp | Firewall port access rule generation |
US9710465B2 (en) | 2014-09-22 | 2017-07-18 | Commvault Systems, Inc. | Efficiently restoring execution of a backed up virtual machine based on coordination with virtual-machine-file-relocation operations |
US9436555B2 (en) | 2014-09-22 | 2016-09-06 | Commvault Systems, Inc. | Efficient live-mount of a backed up virtual machine in a storage management system |
US9417968B2 (en) | 2014-09-22 | 2016-08-16 | Commvault Systems, Inc. | Efficiently restoring execution of a backed up virtual machine based on coordination with virtual-machine-file-relocation operations |
US9489510B1 (en) * | 2014-09-24 | 2016-11-08 | Amazon Technologies, Inc. | Detecting generation of virtual machine authentication |
US20160092313A1 (en) * | 2014-09-25 | 2016-03-31 | Empire Technology Development Llc | Application Copy Counting Using Snapshot Backups For Licensing |
US9836476B2 (en) * | 2014-09-25 | 2017-12-05 | Netapp, Inc. | Synchronizing configuration of partner objects across distributed storage systems using transformations |
US9715402B2 (en) | 2014-09-30 | 2017-07-25 | Amazon Technologies, Inc. | Dynamic code deployment and versioning |
US9830193B1 (en) | 2014-09-30 | 2017-11-28 | Amazon Technologies, Inc. | Automatic management of low latency computational capacity |
US9882929B1 (en) | 2014-09-30 | 2018-01-30 | Palo Alto Networks, Inc. | Dynamic selection and generation of a virtual clone for detonation of suspicious content within a honey network |
US10044675B1 (en) | 2014-09-30 | 2018-08-07 | Palo Alto Networks, Inc. | Integrating a honey network with a target network to counter IP and peer-checking evasion techniques |
US9678773B1 (en) | 2014-09-30 | 2017-06-13 | Amazon Technologies, Inc. | Low latency computational capacity provisioning |
US10048974B1 (en) | 2014-09-30 | 2018-08-14 | Amazon Technologies, Inc. | Message-based computation request scheduling |
US9146764B1 (en) | 2014-09-30 | 2015-09-29 | Amazon Technologies, Inc. | Processing event messages for user requests to execute program code |
US9860208B1 (en) | 2014-09-30 | 2018-01-02 | Palo Alto Networks, Inc. | Bridging a virtual clone of a target device in a honey network to a suspicious device in an enterprise network |
US9495188B1 (en) * | 2014-09-30 | 2016-11-15 | Palo Alto Networks, Inc. | Synchronizing a honey network configuration to reflect a target network environment |
US9323556B2 (en) | 2014-09-30 | 2016-04-26 | Amazon Technologies, Inc. | Programmatic event detection and message generation for requests to execute program code |
US9600312B2 (en) | 2014-09-30 | 2017-03-21 | Amazon Technologies, Inc. | Threading as a service |
US9900211B1 (en) * | 2014-10-01 | 2018-02-20 | Crimson Corporation | Systems and methods for network management |
US9619349B2 (en) | 2014-10-14 | 2017-04-11 | Brocade Communications Systems, Inc. | Biasing active-standby determination |
US9898040B2 (en) | 2014-11-05 | 2018-02-20 | Kodiak Data, Inc. | Configurable dock storage |
US10776209B2 (en) | 2014-11-10 | 2020-09-15 | Commvault Systems, Inc. | Cross-platform virtual machine backup and replication |
US10212161B1 (en) | 2014-11-19 | 2019-02-19 | Amazon Technologies, Inc. | Private network layering in provider network environments |
US20160142485A1 (en) | 2014-11-19 | 2016-05-19 | Commvault Systems, Inc. | Migration to cloud storage from backup |
US10083052B1 (en) * | 2014-11-20 | 2018-09-25 | Amazon Technologies, Inc. | Streamlined remote application streaming technology configuration and usage |
US9983936B2 (en) | 2014-11-20 | 2018-05-29 | Commvault Systems, Inc. | Virtual machine change block tracking |
JP2016103185A (en) * | 2014-11-28 | 2016-06-02 | 富士通株式会社 | Management device, cloud system and management program |
US9537788B2 (en) | 2014-12-05 | 2017-01-03 | Amazon Technologies, Inc. | Automatic determination of resource sizing |
US9417897B1 (en) * | 2014-12-05 | 2016-08-16 | Amazon Technologies, Inc. | Approaches for managing virtual instance data |
USD757051S1 (en) * | 2014-12-16 | 2016-05-24 | LeGuard, Inc. | Display screen with graphical user interface |
USD757049S1 (en) * | 2014-12-16 | 2016-05-24 | LeGuard, Inc. | Display screen with graphical user interface |
USD757758S1 (en) * | 2014-12-16 | 2016-05-31 | LeGuard, Inc. | Display screen with graphical user interface |
USD757050S1 (en) * | 2014-12-16 | 2016-05-24 | LeGuard, Inc. | Display screen with graphical user interface |
US10698767B1 (en) | 2014-12-22 | 2020-06-30 | Amazon Technologies, Inc. | Decentralized management of multi-service workflows |
US10061664B2 (en) * | 2015-01-15 | 2018-08-28 | Cisco Technology, Inc. | High availability and failover |
US9906596B2 (en) * | 2015-01-23 | 2018-02-27 | Kodiak Data | Resource node interface protocol |
US10037196B2 (en) * | 2015-01-27 | 2018-07-31 | Red Hat, Inc. | Source to image framework for a platform-as-a-service system |
US10341188B2 (en) * | 2015-01-27 | 2019-07-02 | Huawei Technologies Co., Ltd. | Network virtualization for network infrastructure |
US9588790B1 (en) | 2015-02-04 | 2017-03-07 | Amazon Technologies, Inc. | Stateful virtual compute system |
US9733967B2 (en) | 2015-02-04 | 2017-08-15 | Amazon Technologies, Inc. | Security protocols for low latency execution of program code |
US10509663B1 (en) | 2015-02-04 | 2019-12-17 | Amazon Technologies, Inc. | Automatic domain join for virtual machine instances |
US9875346B2 (en) | 2015-02-06 | 2018-01-23 | Apple Inc. | Setting and terminating restricted mode operation on electronic devices |
US10833940B2 (en) * | 2015-03-09 | 2020-11-10 | Vapor IO Inc. | Autonomous distributed workload and infrastructure scheduling |
US9516063B2 (en) * | 2015-03-10 | 2016-12-06 | Raytheon Company | System, method, and computer-readable medium for performing automated security validation on a virtual machine |
US11038810B2 (en) * | 2015-03-13 | 2021-06-15 | Telefonaktiebolaget Lm Ericsson (Publ) | Active subscriber count based charging and policy control |
US11061705B2 (en) | 2015-03-16 | 2021-07-13 | Bmc Software, Inc. | Maintaining virtual machine templates |
US10484297B1 (en) | 2015-03-16 | 2019-11-19 | Amazon Technologies, Inc. | Automated migration of compute instances to isolated virtual networks |
US10069680B1 (en) * | 2015-03-16 | 2018-09-04 | Amazon Technologies, Inc. | Dedicated virtual computing system servers |
US9756050B1 (en) * | 2015-03-26 | 2017-09-05 | Amazon Technologies, Inc. | Using transient processing containers for security authorization |
US9582306B2 (en) | 2015-03-31 | 2017-02-28 | At&T Intellectual Property I, L.P. | Method and system to dynamically instantiate virtual repository for any services |
US9785476B2 (en) | 2015-04-08 | 2017-10-10 | Amazon Technologies, Inc. | Endpoint management system and virtual compute system |
US9930103B2 (en) | 2015-04-08 | 2018-03-27 | Amazon Technologies, Inc. | Endpoint management system providing an application programming interface proxy service |
CN104917630B (en) * | 2015-04-15 | 2018-12-28 | 深信服科技股份有限公司 | The method and system that virtual network is restored |
CN106155812A (en) * | 2015-04-28 | 2016-11-23 | 阿里巴巴集团控股有限公司 | Method, device, system and the electronic equipment of a kind of resource management to fictitious host computer |
US10474692B2 (en) * | 2015-05-18 | 2019-11-12 | Interactive Data Pricing And Reference Data Llc | Data conversion and distribution systems |
US10740292B2 (en) | 2015-05-18 | 2020-08-11 | Interactive Data Pricing And Reference Data Llc | Data conversion and distribution systems |
US10019277B2 (en) * | 2015-06-04 | 2018-07-10 | Vmware, Inc. | Triggering application attachment based on state changes of virtual machines |
US10324744B2 (en) | 2015-06-04 | 2019-06-18 | Vmware, Inc. | Triggering application attachment based on service login |
US9645847B1 (en) * | 2015-06-08 | 2017-05-09 | Amazon Technologies, Inc. | Efficient suspend and resume of instances |
US9524389B1 (en) * | 2015-06-08 | 2016-12-20 | Amazon Technologies, Inc. | Forensic instance snapshotting |
US10749808B1 (en) | 2015-06-10 | 2020-08-18 | Amazon Technologies, Inc. | Network flow management for isolated virtual networks |
US9813500B2 (en) * | 2015-06-12 | 2017-11-07 | Cisco Technology, Inc. | Allocating cloud storage based on storage attributes |
US9563514B2 (en) | 2015-06-19 | 2017-02-07 | Commvault Systems, Inc. | Assignment of proxies for virtual-machine secondary copy operations including streaming backup jobs |
US10084873B2 (en) | 2015-06-19 | 2018-09-25 | Commvault Systems, Inc. | Assignment of data agent proxies for executing virtual-machine secondary copy operations including streaming backup jobs |
US10021196B1 (en) * | 2015-06-22 | 2018-07-10 | Amazon Technologies, Inc. | Private service endpoints in isolated virtual networks |
US9996321B2 (en) * | 2015-06-23 | 2018-06-12 | Microsoft Technology Licensing, Llc | Multi-tenant, tenant-specific applications |
US9785474B2 (en) * | 2015-07-23 | 2017-10-10 | International Business Machines Corporation | Managing a shared pool of configurable computing resources using a set of scaling factors and a set of workload resource data |
WO2017023256A1 (en) * | 2015-07-31 | 2017-02-09 | Hewlett Packard Enterprise Development Lp | Cloud provisioning for networks |
US10192065B2 (en) * | 2015-08-31 | 2019-01-29 | Commvault Systems, Inc. | Automated intelligent provisioning of data storage resources in response to user requests in a data storage management system |
US10169086B2 (en) | 2015-09-13 | 2019-01-01 | International Business Machines Corporation | Configuration management for a shared pool of configurable computing resources |
US20170083643A1 (en) * | 2015-09-22 | 2017-03-23 | Dell Products L.P. | Reproducing problems in a cloud-based replica of a network |
US10389746B2 (en) * | 2015-09-28 | 2019-08-20 | Microsoft Technology Licensing, Llc | Multi-tenant environment using pre-readied trust boundary components |
US10387209B2 (en) * | 2015-09-28 | 2019-08-20 | International Business Machines Corporation | Dynamic transparent provisioning of resources for application specific resources |
US10042660B2 (en) | 2015-09-30 | 2018-08-07 | Amazon Technologies, Inc. | Management of periodic requests for compute capacity |
US10657116B2 (en) | 2015-10-19 | 2020-05-19 | Oracle International Corporation | Create table for exchange |
JPWO2017073050A1 (en) * | 2015-10-28 | 2018-08-16 | 日本電気株式会社 | Server terminal device, client terminal device, thin client system, control method, and program recording medium |
US10171378B2 (en) | 2015-11-10 | 2019-01-01 | Impetus Technologies, Inc. | System and method for allocating and reserving supervisors in a real-time distributed processing platform |
US10146936B1 (en) * | 2015-11-12 | 2018-12-04 | EMC IP Holding Company LLC | Intrusion detection for storage resources provisioned to containers in multi-tenant environments |
US10019292B2 (en) * | 2015-12-02 | 2018-07-10 | Fts Computertechnik Gmbh | Method for executing a comprehensive real-time computer application by exchanging time-triggered messages among real-time software components |
US9811434B1 (en) | 2015-12-16 | 2017-11-07 | Amazon Technologies, Inc. | Predictive management of on-demand code execution |
US10754701B1 (en) | 2015-12-16 | 2020-08-25 | Amazon Technologies, Inc. | Executing user-defined code in response to determining that resources expected to be utilized comply with resource restrictions |
US10013267B1 (en) | 2015-12-16 | 2018-07-03 | Amazon Technologies, Inc. | Pre-triggers for code execution environments |
US9910713B2 (en) | 2015-12-21 | 2018-03-06 | Amazon Technologies, Inc. | Code execution request routing |
US10002026B1 (en) * | 2015-12-21 | 2018-06-19 | Amazon Technologies, Inc. | Acquisition and maintenance of dedicated, reserved, and variable compute capacity |
US10067801B1 (en) | 2015-12-21 | 2018-09-04 | Amazon Technologies, Inc. | Acquisition and maintenance of compute capacity |
US10079693B2 (en) * | 2015-12-28 | 2018-09-18 | Netapp, Inc. | Storage cluster management proxy |
US9548991B1 (en) * | 2015-12-29 | 2017-01-17 | International Business Machines Corporation | Preventing application-level denial-of-service in a multi-tenant system using parametric-sensitive transaction weighting |
US11715025B2 (en) | 2015-12-30 | 2023-08-01 | Nutanix, Inc. | Method for forecasting distributed resource utilization in a virtualization environment |
US10475091B2 (en) * | 2016-02-11 | 2019-11-12 | Level 3 Communications, Llc | Dynamic provisioning system for communication networks |
US10719305B2 (en) | 2016-02-12 | 2020-07-21 | Nutanix, Inc. | Virtualized file server tiers |
US20170235782A1 (en) | 2016-02-12 | 2017-08-17 | Nutanix, Inc. | Entity database notifications |
US9900317B2 (en) * | 2016-02-25 | 2018-02-20 | Red Hat, Inc. | Access guards for multi-tenant logging |
US10489518B1 (en) * | 2016-03-03 | 2019-11-26 | Nutanix, Inc. | Virtual machine object version control |
US10270841B1 (en) | 2016-03-04 | 2019-04-23 | Quest Software Inc. | Systems and methods of real-time container deployment |
US10140159B1 (en) * | 2016-03-04 | 2018-11-27 | Quest Software Inc. | Systems and methods for dynamic creation of container manifests |
US10127030B1 (en) | 2016-03-04 | 2018-11-13 | Quest Software Inc. | Systems and methods for controlled container execution |
US10592350B2 (en) | 2016-03-09 | 2020-03-17 | Commvault Systems, Inc. | Virtual server cloud file system for virtual machine restore to cloud operations |
US10891145B2 (en) | 2016-03-30 | 2021-01-12 | Amazon Technologies, Inc. | Processing pre-existing data sets at an on demand code execution environment |
US10289457B1 (en) | 2016-03-30 | 2019-05-14 | Quest Software Inc. | Systems and methods for dynamic discovery of container-based microservices |
US10162672B2 (en) | 2016-03-30 | 2018-12-25 | Amazon Technologies, Inc. | Generating data streams from pre-existing data sets |
US11132213B1 (en) | 2016-03-30 | 2021-09-28 | Amazon Technologies, Inc. | Dependency-based process of pre-existing data sets at an on demand code execution environment |
US10841273B2 (en) | 2016-04-29 | 2020-11-17 | Nicira, Inc. | Implementing logical DHCP servers in logical networks |
US10168953B1 (en) | 2016-05-20 | 2019-01-01 | Nutanix, Inc. | Dynamic scheduling of distributed storage management tasks using predicted system characteristics |
US11218418B2 (en) | 2016-05-20 | 2022-01-04 | Nutanix, Inc. | Scalable leadership election in a multi-processing computing environment |
US10871925B2 (en) | 2016-05-31 | 2020-12-22 | Vmware, Inc. | Provisioning data volumes for containers running in virtual machines |
US10902324B2 (en) | 2016-06-13 | 2021-01-26 | Nutanix, Inc. | Dynamic data snapshot management using predictive modeling |
US10361925B1 (en) | 2016-06-23 | 2019-07-23 | Nutanix, Inc. | Storage infrastructure scenario planning |
US10713072B1 (en) * | 2016-06-27 | 2020-07-14 | Amazon Technologies, Inc. | Computing resource provisioning |
US10282229B2 (en) | 2016-06-28 | 2019-05-07 | Amazon Technologies, Inc. | Asynchronous task management in an on-demand network code execution environment |
US10102040B2 (en) | 2016-06-29 | 2018-10-16 | Amazon Technologies, Inc | Adjusting variable limit on concurrent code executions |
US10203990B2 (en) | 2016-06-30 | 2019-02-12 | Amazon Technologies, Inc. | On-demand network code execution with cross-account aliases |
US10277708B2 (en) | 2016-06-30 | 2019-04-30 | Amazon Technologies, Inc. | On-demand network code execution with cross-account aliases |
CN108369531B (en) * | 2016-07-12 | 2023-06-02 | 华为云计算技术有限公司 | Method, device and system for controlling IO bandwidth and processing IO access request |
US20180027009A1 (en) * | 2016-07-20 | 2018-01-25 | Cisco Technology, Inc. | Automated container security |
US10223146B2 (en) * | 2016-07-26 | 2019-03-05 | International Business Machines Corporation | Rearrangement management for a shared pool of configurable computing resources |
US10642659B2 (en) * | 2016-08-12 | 2020-05-05 | Liqid Inc. | Telemetry handling for disaggregated fabric-switched computing units |
US10305861B2 (en) | 2016-08-29 | 2019-05-28 | Microsoft Technology Licensing, Llc. | Cross-tenant data leakage isolation |
US10872032B1 (en) * | 2016-09-01 | 2020-12-22 | United Services Automobile Association (Usaa) | Systems and methods for software development using sandbox views |
US10455045B2 (en) | 2016-09-06 | 2019-10-22 | Samsung Electronics Co., Ltd. | Automatic data replica manager in distributed caching and data processing systems |
US10467195B2 (en) | 2016-09-06 | 2019-11-05 | Samsung Electronics Co., Ltd. | Adaptive caching replacement manager with dynamic updating granulates and partitions for shared flash-based storage system |
US11138017B2 (en) | 2016-09-16 | 2021-10-05 | Oracle International Corporation | System and method for partition administrative targeting in an application server environment |
CN106372250A (en) * | 2016-09-23 | 2017-02-01 | 郑州云海信息技术有限公司 | Parameter passing method and device capable of starting local application through URL protocol |
US10061613B1 (en) | 2016-09-23 | 2018-08-28 | Amazon Technologies, Inc. | Idempotent task execution in on-demand network code execution systems |
US10884787B1 (en) | 2016-09-23 | 2021-01-05 | Amazon Technologies, Inc. | Execution guarantees in an on-demand network code execution system |
US11119813B1 (en) | 2016-09-30 | 2021-09-14 | Amazon Technologies, Inc. | Mapreduce implementation using an on-demand network code execution system |
US10484301B1 (en) | 2016-09-30 | 2019-11-19 | Nutanix, Inc. | Dynamic resource distribution using periodicity-aware predictive modeling |
US10474548B2 (en) | 2016-09-30 | 2019-11-12 | Commvault Systems, Inc. | Heartbeat monitoring of virtual machines for initiating failover operations in a data storage management system, using ping monitoring of target virtual machines |
FR3057082A1 (en) * | 2016-10-03 | 2018-04-06 | Orange | METHOD OF AUDITING A VIRTUALIZED RESOURCE DEPLOYED IN A CLOUD COMPUTING NETWORK |
US10691491B2 (en) | 2016-10-19 | 2020-06-23 | Nutanix, Inc. | Adapting a pre-trained distributed resource predictive model to a target distributed computing environment |
US10162528B2 (en) | 2016-10-25 | 2018-12-25 | Commvault Systems, Inc. | Targeted snapshot based on virtual machine location |
US10152251B2 (en) | 2016-10-25 | 2018-12-11 | Commvault Systems, Inc. | Targeted backup of virtual machine |
US10678758B2 (en) | 2016-11-21 | 2020-06-09 | Commvault Systems, Inc. | Cross-platform virtual machine data and memory backup and replication |
US11562034B2 (en) | 2016-12-02 | 2023-01-24 | Nutanix, Inc. | Transparent referrals for distributed file servers |
US10824455B2 (en) | 2016-12-02 | 2020-11-03 | Nutanix, Inc. | Virtualized server systems and methods including load balancing for virtualized file servers |
US10728090B2 (en) | 2016-12-02 | 2020-07-28 | Nutanix, Inc. | Configuring network segmentation for a virtualization environment |
US11568073B2 (en) | 2016-12-02 | 2023-01-31 | Nutanix, Inc. | Handling permissions for virtualized file servers |
US11294777B2 (en) | 2016-12-05 | 2022-04-05 | Nutanix, Inc. | Disaster recovery for distributed file servers, including metadata fixers |
US11288239B2 (en) | 2016-12-06 | 2022-03-29 | Nutanix, Inc. | Cloning virtualized file servers |
US11281484B2 (en) * | 2016-12-06 | 2022-03-22 | Nutanix, Inc. | Virtualized server systems and methods including scaling of file system virtual machines |
US10768986B2 (en) * | 2017-01-06 | 2020-09-08 | International Business Machines Corporation | Management and utilization of storage capacities in a converged system |
US10824355B2 (en) | 2017-01-10 | 2020-11-03 | International Business Machines Corporation | Hierarchical management of storage capacity and data volumes in a converged system |
US10938901B2 (en) | 2017-01-11 | 2021-03-02 | International Business Machines Corporation | Management and utilization of data volumes in a converged system |
US10552059B2 (en) | 2017-01-27 | 2020-02-04 | International Business Machines Corporation | Data migration with placement based on access patterns |
US10593009B1 (en) | 2017-02-22 | 2020-03-17 | Amazon Technologies, Inc. | Session coordination for auto-scaled virtualized graphics processing |
US10949308B2 (en) | 2017-03-15 | 2021-03-16 | Commvault Systems, Inc. | Application aware backup of virtual machines |
US20180276022A1 (en) | 2017-03-24 | 2018-09-27 | Commvault Systems, Inc. | Consistent virtual machine replication |
US11108858B2 (en) | 2017-03-28 | 2021-08-31 | Commvault Systems, Inc. | Archiving mail servers via a simple mail transfer protocol (SMTP) server |
US10387073B2 (en) | 2017-03-29 | 2019-08-20 | Commvault Systems, Inc. | External dynamic virtual machine synchronization |
US11074138B2 (en) | 2017-03-29 | 2021-07-27 | Commvault Systems, Inc. | Multi-streaming backup operations for mailboxes |
US11294786B2 (en) | 2017-03-31 | 2022-04-05 | Commvault Systems, Inc. | Management of internet of things devices |
US10853195B2 (en) | 2017-03-31 | 2020-12-01 | Commvault Systems, Inc. | Granular restoration of virtual machine application data |
US10552294B2 (en) | 2017-03-31 | 2020-02-04 | Commvault Systems, Inc. | Management of internet of things devices |
US11221939B2 (en) | 2017-03-31 | 2022-01-11 | Commvault Systems, Inc. | Managing data from internet of things devices in a vehicle |
US10318321B2 (en) * | 2017-04-10 | 2019-06-11 | Hongfujin Precision Electronics(Tianjin)Co., Ltd. | Virtual desktop system and method of control |
US10296425B2 (en) | 2017-04-20 | 2019-05-21 | Bank Of America Corporation | Optimizing data processing across server clusters and data centers using checkpoint-based data replication |
US10558641B2 (en) | 2017-04-21 | 2020-02-11 | Microsoft Technology Licensing, Llc | Trigger system for databases using proxy |
US20180324227A1 (en) * | 2017-05-02 | 2018-11-08 | MobileNerd, Inc. | Collaboration sessions for cloud based virtual computing system |
US10635476B2 (en) | 2017-05-09 | 2020-04-28 | Microsoft Technology Licensing, Llc | Cloud architecture for automated testing |
JP7007549B2 (en) * | 2017-05-19 | 2022-01-24 | 富士通株式会社 | Information processing system, management device, and control method of information processing system |
US10554475B2 (en) | 2017-06-29 | 2020-02-04 | L3Harris Technologies, Inc. | Sandbox based internet isolation in an untrusted network |
US10558798B2 (en) | 2017-06-29 | 2020-02-11 | L3Harris Technologies, Inc. | Sandbox based Internet isolation in a trusted network |
US10637800B2 (en) | 2017-06-30 | 2020-04-28 | Nicira, Inc | Replacement of logical network addresses with physical network addresses |
US10681000B2 (en) | 2017-06-30 | 2020-06-09 | Nicira, Inc. | Assignment of unique physical network addresses for logical network addresses |
US11240207B2 (en) | 2017-08-11 | 2022-02-01 | L3 Technologies, Inc. | Network isolation |
US11601467B2 (en) | 2017-08-24 | 2023-03-07 | L3 Technologies, Inc. | Service provider advanced threat protection |
US10592293B2 (en) | 2017-08-31 | 2020-03-17 | Cisco Technology, Inc. | Tenant-specific policy generation and enforcement within containers |
US10992642B2 (en) | 2017-09-22 | 2021-04-27 | L3 Technologies, Inc. | Document isolation |
US10437647B2 (en) * | 2017-09-26 | 2019-10-08 | Verizon Patent And Licensing Inc. | Cluster configuration with zero touch provisioning |
US11178104B2 (en) | 2017-09-26 | 2021-11-16 | L3 Technologies, Inc. | Network isolation with cloud networks |
US11223601B2 (en) | 2017-09-28 | 2022-01-11 | L3 Technologies, Inc. | Network isolation for collaboration software |
US11374906B2 (en) | 2017-09-28 | 2022-06-28 | L3 Technologies, Inc. | Data exfiltration system and methods |
US11184323B2 (en) | 2017-09-28 | 2021-11-23 | L3 Technologies, Inc | Threat isolation using a plurality of containers |
US10931669B2 (en) | 2017-09-28 | 2021-02-23 | L3 Technologies, Inc. | Endpoint protection and authentication |
US11336619B2 (en) | 2017-09-28 | 2022-05-17 | L3 Technologies, Inc. | Host process and memory separation |
US11552987B2 (en) | 2017-09-28 | 2023-01-10 | L3 Technologies, Inc. | Systems and methods for command and control protection |
US11044233B2 (en) | 2017-09-28 | 2021-06-22 | L3 Technologies, Inc. | Browser switching system and methods |
WO2019067747A1 (en) | 2017-09-29 | 2019-04-04 | Qloudable, Inc. | Device communication and management in computer data networks |
US11386058B2 (en) | 2017-09-29 | 2022-07-12 | Oracle International Corporation | Rule-based autonomous database cloud service framework |
US11327932B2 (en) | 2017-09-30 | 2022-05-10 | Oracle International Corporation | Autonomous multitenant database cloud service framework |
US10733005B1 (en) * | 2017-10-10 | 2020-08-04 | Parallels International Gmbh | Providing access to mobile applications by heterogeneous devices |
US11170096B2 (en) | 2017-10-23 | 2021-11-09 | L3 Technologies, Inc. | Configurable internet isolation and security for mobile devices |
US11550898B2 (en) | 2017-10-23 | 2023-01-10 | L3 Technologies, Inc. | Browser application implementing sandbox based internet isolation |
US11120125B2 (en) | 2017-10-23 | 2021-09-14 | L3 Technologies, Inc. | Configurable internet isolation and security for laptops and similar devices |
US10564946B1 (en) | 2017-12-13 | 2020-02-18 | Amazon Technologies, Inc. | Dependency handling in an on-demand network code execution system |
US10303492B1 (en) | 2017-12-13 | 2019-05-28 | Amazon Technologies, Inc. | Managing custom runtimes in an on-demand code execution system |
US10715405B2 (en) * | 2018-01-30 | 2020-07-14 | Sap Se | Tenant isolated data in shared reusable services |
US10733085B1 (en) | 2018-02-05 | 2020-08-04 | Amazon Technologies, Inc. | Detecting impedance mismatches due to cross-service calls |
US10572375B1 (en) | 2018-02-05 | 2020-02-25 | Amazon Technologies, Inc. | Detecting parameter validity in code including cross-service calls |
US10831898B1 (en) | 2018-02-05 | 2020-11-10 | Amazon Technologies, Inc. | Detecting privilege escalations in code including cross-service calls |
US10353678B1 (en) | 2018-02-05 | 2019-07-16 | Amazon Technologies, Inc. | Detecting code characteristic alterations due to cross-service calls |
US10725752B1 (en) | 2018-02-13 | 2020-07-28 | Amazon Technologies, Inc. | Dependency handling in an on-demand network code execution system |
US10776091B1 (en) | 2018-02-26 | 2020-09-15 | Amazon Technologies, Inc. | Logging endpoint in an on-demand code execution system |
US10931780B2 (en) | 2018-02-28 | 2021-02-23 | International Business Machines Corporation | Resource pre-caching and tenant workflow recognition using cloud audit records |
US10877928B2 (en) | 2018-03-07 | 2020-12-29 | Commvault Systems, Inc. | Using utilities injected into cloud-based virtual machines for speeding up virtual machine backup operations |
US10642668B2 (en) | 2018-04-18 | 2020-05-05 | Open Text GXS ULC | Producer-side prioritization of message processing |
US11429492B2 (en) * | 2018-04-27 | 2022-08-30 | EMC IP Holding Company LLC | Protecting and identifying virtual machines that have the same name in a multi-tenant distributed environment |
US11086826B2 (en) | 2018-04-30 | 2021-08-10 | Nutanix, Inc. | Virtualized server systems and methods including domain joining techniques |
US10817505B2 (en) * | 2018-05-08 | 2020-10-27 | Sap Se | Maintaining consistency within a federated cloud environment |
US10872024B2 (en) * | 2018-05-08 | 2020-12-22 | Apple Inc. | User interfaces for controlling or presenting device usage on an electronic device |
US10827006B2 (en) | 2018-05-22 | 2020-11-03 | At&T Intellectual Property I, L.P. | Policy-driven homing service system |
US10168949B1 (en) * | 2018-06-14 | 2019-01-01 | Rubrik, Inc. | Envoy for multi-tenant compute infrastructure |
US10853115B2 (en) | 2018-06-25 | 2020-12-01 | Amazon Technologies, Inc. | Execution of auxiliary functions in an on-demand network code execution system |
US10649749B1 (en) | 2018-06-26 | 2020-05-12 | Amazon Technologies, Inc. | Cross-environment application of tracing information for improved code execution |
US11146569B1 (en) | 2018-06-28 | 2021-10-12 | Amazon Technologies, Inc. | Escalation-resistant secure network services using request-scoped authentication information |
US10949237B2 (en) | 2018-06-29 | 2021-03-16 | Amazon Technologies, Inc. | Operating system customization in an on-demand network code execution system |
US11194680B2 (en) | 2018-07-20 | 2021-12-07 | Nutanix, Inc. | Two node clusters recovery on a failure |
US11099870B1 (en) * | 2018-07-25 | 2021-08-24 | Amazon Technologies, Inc. | Reducing execution times in an on-demand network code execution system using saved machine states |
US11055128B2 (en) * | 2018-07-30 | 2021-07-06 | Open Text GXS ULC | System and method for request isolation |
US11288715B2 (en) * | 2018-07-31 | 2022-03-29 | Zuora, Inc. | Multi-tenant extensible billing system |
US10740134B2 (en) | 2018-08-20 | 2020-08-11 | Interwise Ltd. | Agentless personal network firewall in virtualized datacenters |
US10834044B2 (en) | 2018-09-19 | 2020-11-10 | Amazon Technologies, Inc. | Domain name system operations implemented using scalable virtual traffic hub |
US10897417B2 (en) | 2018-09-19 | 2021-01-19 | Amazon Technologies, Inc. | Automated route propagation among networks attached to scalable virtual traffic hubs |
US11243953B2 (en) | 2018-09-27 | 2022-02-08 | Amazon Technologies, Inc. | Mapreduce implementation in an on-demand network code execution system and stream data processing system |
US11099917B2 (en) | 2018-09-27 | 2021-08-24 | Amazon Technologies, Inc. | Efficient state maintenance for execution environments in an on-demand code execution system |
US10680945B1 (en) | 2018-09-27 | 2020-06-09 | Amazon Technologies, Inc. | Extending overlay networks to edge routers of a substrate network |
US11770447B2 (en) | 2018-10-31 | 2023-09-26 | Nutanix, Inc. | Managing high-availability file servers |
US10944581B2 (en) | 2018-11-08 | 2021-03-09 | International Business Machines Corporation | Increasing processing capacity of processor cores during initial program load processing |
US11200124B2 (en) | 2018-12-06 | 2021-12-14 | Commvault Systems, Inc. | Assigning backup resources based on failover of partnered data storage servers in a data storage management system |
US11354160B2 (en) * | 2018-12-13 | 2022-06-07 | Netapp, Inc. | Methods for managing storage quota assignment in a distributed system and devices thereof |
US10884812B2 (en) | 2018-12-13 | 2021-01-05 | Amazon Technologies, Inc. | Performance-based hardware emulation in an on-demand network code execution system |
US11467882B2 (en) * | 2018-12-21 | 2022-10-11 | Target Brands, Inc. | Methods and systems for rapid deployment of configurable computing resources |
US10768971B2 (en) | 2019-01-30 | 2020-09-08 | Commvault Systems, Inc. | Cross-hypervisor live mount of backed up virtual machine data |
US10996974B2 (en) | 2019-01-30 | 2021-05-04 | Commvault Systems, Inc. | Cross-hypervisor live mount of backed up virtual machine data, including management of cache storage for virtual machine data |
US11010188B1 (en) | 2019-02-05 | 2021-05-18 | Amazon Technologies, Inc. | Simulated data object storage using on-demand computation of data objects |
US10990434B2 (en) * | 2019-02-05 | 2021-04-27 | International Business Machines Corporation | Increasing processing capacity of virtual machines for an abnormal event |
JP7048898B2 (en) * | 2019-03-11 | 2022-04-06 | 日本電信電話株式会社 | Systems, methods, and programs |
US11861386B1 (en) | 2019-03-22 | 2024-01-02 | Amazon Technologies, Inc. | Application gateways in an on-demand network code execution system |
US11366681B2 (en) | 2019-03-27 | 2022-06-21 | Amazon Technologies, Inc. | Chaining virtual machines |
US10963287B2 (en) * | 2019-03-27 | 2021-03-30 | Amazon Technologies, Inc. | Reducing request latency in a multi-tenant web service host |
US11467858B2 (en) | 2019-03-27 | 2022-10-11 | Amazon Technologies, Inc. | Techniques for performing continuation workflows |
US11327767B2 (en) | 2019-04-05 | 2022-05-10 | International Business Machines Corporation | Increasing resources for partition to compensate for input/output (I/O) recovery event |
US11086939B2 (en) * | 2019-05-28 | 2021-08-10 | Salesforce.Com, Inc. | Generation of regular expressions |
WO2020247281A1 (en) | 2019-06-01 | 2020-12-10 | Apple Inc. | User interfaces for managing contacts on another electronic device |
US11720385B2 (en) * | 2019-06-17 | 2023-08-08 | National Technology & Engineering Solutions Of Sandia, Llc | Automated platform to assess commercial off the shelf (COTS) software assurance |
US11119809B1 (en) | 2019-06-20 | 2021-09-14 | Amazon Technologies, Inc. | Virtualization-based transaction handling in an on-demand network code execution system |
US11159528B2 (en) | 2019-06-28 | 2021-10-26 | Amazon Technologies, Inc. | Authentication to network-services using hosted authentication information |
US11190609B2 (en) | 2019-06-28 | 2021-11-30 | Amazon Technologies, Inc. | Connection pooling for scalable network services |
US11115404B2 (en) | 2019-06-28 | 2021-09-07 | Amazon Technologies, Inc. | Facilitating service connections in serverless code executions |
US11558312B2 (en) | 2019-08-09 | 2023-01-17 | Oracle International Corporation | System and method for supporting a usage calculation process in a cloud infrastructure environment |
US11689475B2 (en) * | 2019-08-09 | 2023-06-27 | Oracle International Corporation | System and method for tag based resource limits or quotas in a cloud infrastructure environment |
US11397606B2 (en) | 2019-08-14 | 2022-07-26 | T-Mobile Usa, Inc. | Systems and methods for automated monitoring and troubleshooting of unknown dependencies in a virtual infrastructure |
US11163600B2 (en) * | 2019-08-28 | 2021-11-02 | Juniper Networks, Inc. | Providing physical host state information to virtual machines deployed on the physical host |
US11023416B2 (en) | 2019-09-27 | 2021-06-01 | Amazon Technologies, Inc. | Data access control system for object storage service based on owner-defined code |
US11550944B2 (en) | 2019-09-27 | 2023-01-10 | Amazon Technologies, Inc. | Code execution environment customization system for object storage service |
US11394761B1 (en) | 2019-09-27 | 2022-07-19 | Amazon Technologies, Inc. | Execution of user-submitted code on a stream of data |
US11360948B2 (en) | 2019-09-27 | 2022-06-14 | Amazon Technologies, Inc. | Inserting owner-specified data processing pipelines into input/output path of object storage service |
US11106477B2 (en) | 2019-09-27 | 2021-08-31 | Amazon Technologies, Inc. | Execution of owner-specified code during input/output path to object storage service |
US11250007B1 (en) | 2019-09-27 | 2022-02-15 | Amazon Technologies, Inc. | On-demand execution of object combination code in output path of object storage service |
US11386230B2 (en) | 2019-09-27 | 2022-07-12 | Amazon Technologies, Inc. | On-demand code obfuscation of data in input path of object storage service |
US11416628B2 (en) | 2019-09-27 | 2022-08-16 | Amazon Technologies, Inc. | User-specific data manipulation system for object storage service based on user-submitted code |
US11263220B2 (en) | 2019-09-27 | 2022-03-01 | Amazon Technologies, Inc. | On-demand execution of object transformation code in output path of object storage service |
US10996961B2 (en) | 2019-09-27 | 2021-05-04 | Amazon Technologies, Inc. | On-demand indexing of data in input path of object storage service |
US11656892B1 (en) | 2019-09-27 | 2023-05-23 | Amazon Technologies, Inc. | Sequential execution of user-submitted code and native functions |
US11023311B2 (en) | 2019-09-27 | 2021-06-01 | Amazon Technologies, Inc. | On-demand code execution in input path of data uploaded to storage service in multiple data portions |
US11055112B2 (en) | 2019-09-27 | 2021-07-06 | Amazon Technologies, Inc. | Inserting executions of owner-specified code into input/output path of object storage service |
US10908927B1 (en) | 2019-09-27 | 2021-02-02 | Amazon Technologies, Inc. | On-demand execution of object filter code in output path of object storage service |
US10942795B1 (en) | 2019-11-27 | 2021-03-09 | Amazon Technologies, Inc. | Serverless call distribution to utilize reserved capacity without inhibiting scaling |
US11119826B2 (en) | 2019-11-27 | 2021-09-14 | Amazon Technologies, Inc. | Serverless call distribution to implement spillover while avoiding cold starts |
US11271907B2 (en) | 2019-12-19 | 2022-03-08 | Palo Alto Networks, Inc. | Smart proxy for a large scale high-interaction honeypot farm |
US11265346B2 (en) | 2019-12-19 | 2022-03-01 | Palo Alto Networks, Inc. | Large scale high-interactive honeypot farm |
US11336471B2 (en) * | 2019-12-20 | 2022-05-17 | Cisco Technology, Inc. | Achieving seamless service during unreachability of charging function entity |
US11467753B2 (en) | 2020-02-14 | 2022-10-11 | Commvault Systems, Inc. | On-demand restore of virtual machine data |
US11714682B1 (en) | 2020-03-03 | 2023-08-01 | Amazon Technologies, Inc. | Reclaiming computing resources in an on-demand code execution system |
US11188391B1 (en) | 2020-03-11 | 2021-11-30 | Amazon Technologies, Inc. | Allocating resources to on-demand code executions under scarcity conditions |
US11442768B2 (en) | 2020-03-12 | 2022-09-13 | Commvault Systems, Inc. | Cross-hypervisor live recovery of virtual machines |
US11099956B1 (en) | 2020-03-26 | 2021-08-24 | Commvault Systems, Inc. | Snapshot-based disaster recovery orchestration of virtual machine failover and failback operations |
US11775640B1 (en) | 2020-03-30 | 2023-10-03 | Amazon Technologies, Inc. | Resource utilization-based malicious task detection in an on-demand code execution system |
US11570183B2 (en) * | 2020-04-15 | 2023-01-31 | Sap Se | Tenant grouping for secure transport of content |
US11768809B2 (en) | 2020-05-08 | 2023-09-26 | Nutanix, Inc. | Managing incremental snapshots for fast leader node bring-up |
US11748143B2 (en) | 2020-05-15 | 2023-09-05 | Commvault Systems, Inc. | Live mount of virtual machines in a public cloud computing environment |
US11829259B2 (en) * | 2020-06-03 | 2023-11-28 | EMC IP Holding Company LLC | Automated creation of variable data storage environments for application testing |
US20220070240A1 (en) * | 2020-08-28 | 2022-03-03 | Tmrw Foundation Ip S. À R.L. | Ad hoc virtual communication between approaching user graphical representations |
US20220070239A1 (en) * | 2020-08-28 | 2022-03-03 | Tmrw Foundation Ip S. À R.L. | System and method to provision cloud computing-based virtual computing resources within a virtual environment |
US11829493B2 (en) * | 2020-10-27 | 2023-11-28 | Dell Products L.P. | Device access control system |
US11537705B2 (en) * | 2020-10-27 | 2022-12-27 | Dell Products L.P. | Device access control system |
US11656951B2 (en) | 2020-10-28 | 2023-05-23 | Commvault Systems, Inc. | Data loss vulnerability detection |
US11831518B2 (en) * | 2020-11-25 | 2023-11-28 | Cerner Innovation, Inc. | Dashboard interface |
US11593270B1 (en) | 2020-11-25 | 2023-02-28 | Amazon Technologies, Inc. | Fast distributed caching using erasure coded object parts |
US11550713B1 (en) | 2020-11-25 | 2023-01-10 | Amazon Technologies, Inc. | Garbage collection in distributed systems using life cycled storage roots |
US20220188385A1 (en) * | 2020-12-16 | 2022-06-16 | Dell Products L.P. | System and method for managing virtual hardware licenses of hardware resources accessed via application instances |
KR20220106435A (en) * | 2021-01-22 | 2022-07-29 | 주식회사 피아몬드 | Method and system for collecting user inforamtion according to providing virtual desktop infrastructure service |
US20220309041A1 (en) * | 2021-03-23 | 2022-09-29 | Microsoft Technology Licensing, Llc | Flexible virtualization of application data for specified system locations |
US11388210B1 (en) | 2021-06-30 | 2022-07-12 | Amazon Technologies, Inc. | Streaming analytics using a serverless compute system |
CN113965376B (en) * | 2021-10-21 | 2023-09-19 | 合肥城市云数据中心股份有限公司 | Cloud host remote data communication method based on data isolation platform |
CN114020479A (en) * | 2022-01-06 | 2022-02-08 | 杭州银行股份有限公司 | Service resource allocation method, computing device and storage medium |
US20230362234A1 (en) * | 2022-05-04 | 2023-11-09 | Microsoft Technology Licensing, Llc | Method and system of managing resources in a cloud computing environment |
US20240045770A1 (en) * | 2022-08-02 | 2024-02-08 | Rubrik, Inc. | Techniques for using data backup and disaster recovery configurations for application management |
Family Cites Families (55)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5922044A (en) * | 1996-12-13 | 1999-07-13 | 3Com Corporation | System and method for providing information to applets in a virtual machine |
US6088766A (en) | 1997-10-06 | 2000-07-11 | Emc Corporation | Method for exchanging data blocks on disk storage devices utilizing disk access statistics and testing for the effect of a change |
US5915098A (en) * | 1997-10-24 | 1999-06-22 | Digital Equipment Corp. | System for compressing bit maps to be shared and displayed in collaborative tool by client and server systems |
US6453392B1 (en) | 1998-11-10 | 2002-09-17 | International Business Machines Corporation | Method of and apparatus for sharing dedicated devices between virtual machine guests |
WO2001026267A1 (en) * | 1999-10-05 | 2001-04-12 | Ejasent Inc. | Virtual port multiplexing |
WO2001092993A2 (en) * | 2000-06-02 | 2001-12-06 | Vigilant Systems, Inc. | System and method for licensing management |
US7506265B1 (en) * | 2000-07-17 | 2009-03-17 | Microsoft Corporation | System and method for displaying images of virtual machine environments |
GB0026620D0 (en) * | 2000-10-31 | 2000-12-13 | Hewlett Packard Co | Metering in a data processing system |
GB0117077D0 (en) * | 2001-07-13 | 2001-09-05 | Univ Strathclyde | A generic object-based resource-sharing interface for distance co-working |
US7331791B2 (en) * | 2002-03-05 | 2008-02-19 | Novell, Inc. | System and method for evaluating a person's information technology skills |
US7093086B1 (en) * | 2002-03-28 | 2006-08-15 | Veritas Operating Corporation | Disaster recovery and backup using virtual machines |
US7577722B1 (en) * | 2002-04-05 | 2009-08-18 | Vmware, Inc. | Provisioning of computer systems using virtual machines |
US7085883B1 (en) * | 2002-10-30 | 2006-08-01 | Intransa, Inc. | Method and apparatus for migrating volumes and virtual disks |
US7664711B2 (en) * | 2002-12-16 | 2010-02-16 | International Business Machines Corporation | Apparatus, methods and computer programs for metering and accounting for services accessed over a network |
US7386694B1 (en) * | 2002-12-17 | 2008-06-10 | Symantec Operating Corporation | System and method for reading mirrored data |
US8776050B2 (en) * | 2003-08-20 | 2014-07-08 | Oracle International Corporation | Distributed virtual machine monitor for managing multiple virtual resources across multiple physical nodes |
WO2006031490A1 (en) * | 2004-09-10 | 2006-03-23 | Murphy Kieran P J | Cement delivery needle |
US20060085784A1 (en) * | 2004-10-15 | 2006-04-20 | Microsoft Corporation | Systems and methods for authoring and accessing computer-based materials using virtual machines |
US8146078B2 (en) * | 2004-10-29 | 2012-03-27 | Intel Corporation | Timer offsetting mechanism in a virtual machine environment |
GB2419697A (en) | 2004-10-29 | 2006-05-03 | Hewlett Packard Development Co | Virtual overlay infrastructures each having an infrastructure controller |
US7793288B2 (en) * | 2004-12-09 | 2010-09-07 | International Business Machines Corporation | Automatic resource management of a guest operating system using information in data set indicating minimum system requirement |
US7735081B2 (en) * | 2004-12-17 | 2010-06-08 | Intel Corporation | Method, apparatus and system for transparent unification of virtual machines |
US8479193B2 (en) * | 2004-12-17 | 2013-07-02 | Intel Corporation | Method, apparatus and system for enhancing the usability of virtual machines |
US9606821B2 (en) * | 2004-12-17 | 2017-03-28 | Intel Corporation | Virtual environment manager for creating and managing virtual machine environments |
US20060190532A1 (en) * | 2005-02-23 | 2006-08-24 | Kalyana Chadalavada | Apparatus and methods for multiple user remote connections to an information handling system via a remote access controller |
US8200796B1 (en) | 2005-05-05 | 2012-06-12 | Digital Display Innovations, Llc | Graphics display system for multiple remote terminals |
US7698706B2 (en) | 2005-05-20 | 2010-04-13 | International Business Machines Corporation | Methods and apparatus for implementing an integrated user interface for managing multiple virtual machines operative in a computing system |
US7681200B2 (en) * | 2005-07-22 | 2010-03-16 | Microsoft Corporation | Secure hardware desktop buffer composition |
US8949364B2 (en) * | 2005-09-15 | 2015-02-03 | Ca, Inc. | Apparatus, method and system for rapid delivery of distributed applications |
US7877485B2 (en) * | 2005-12-02 | 2011-01-25 | International Business Machines Corporation | Maintaining session states within virtual machine environments |
US20070174429A1 (en) * | 2006-01-24 | 2007-07-26 | Citrix Systems, Inc. | Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment |
US20070180381A1 (en) * | 2006-01-31 | 2007-08-02 | Rice Stephen J | Browser application |
US7536541B2 (en) | 2006-03-07 | 2009-05-19 | Novell Inc. | Parallelizing multiple boot images with virtual machines |
US9547485B2 (en) * | 2006-03-31 | 2017-01-17 | Prowess Consulting, Llc | System and method for deploying a virtual machine |
US8015563B2 (en) | 2006-04-14 | 2011-09-06 | Microsoft Corporation | Managing virtual machines with system-wide policies |
US8209408B1 (en) * | 2006-05-01 | 2012-06-26 | Vmware, Inc. | Multiple virtual machine consoles in a single interface |
US20070260702A1 (en) * | 2006-05-03 | 2007-11-08 | University Of Washington | Web browser architecture for virtual machine access |
US20080022376A1 (en) | 2006-06-23 | 2008-01-24 | Lenovo (Beijing) Limited | System and method for hardware access control |
US8161475B2 (en) * | 2006-09-29 | 2012-04-17 | Microsoft Corporation | Automatic load and balancing for virtual machines to meet resource requirements |
US7634561B2 (en) * | 2006-10-26 | 2009-12-15 | International Business Machines Corporation | Application usage metering management system |
JP4969258B2 (en) | 2007-01-30 | 2012-07-04 | 株式会社日立製作所 | I / O device failure processing method for virtual machine system |
US20080196043A1 (en) * | 2007-02-08 | 2008-08-14 | David Feinleib | System and method for host and virtual machine administration |
US8028048B2 (en) | 2007-02-27 | 2011-09-27 | International Business Machines Corporation | Method and apparatus for policy-based provisioning in a virtualized service delivery environment |
US7576470B2 (en) * | 2007-04-30 | 2009-08-18 | Honeywell International Inc. | Mechanical packaging of surface acoustic wave device for sensing applications |
US8374929B1 (en) * | 2007-08-06 | 2013-02-12 | Gogrid, LLC | System and method for billing for hosted services |
US7984449B2 (en) * | 2007-08-15 | 2011-07-19 | International Business Machines Corporation | In-band communication with virtual machines via a hypervisor message bus |
US8489995B2 (en) | 2008-03-18 | 2013-07-16 | Rightscale, Inc. | Systems and methods for efficiently managing and configuring virtual servers |
US8972978B2 (en) * | 2008-05-02 | 2015-03-03 | Skytap | Multitenant hosted virtual machine infrastructure |
US7886038B2 (en) * | 2008-05-27 | 2011-02-08 | Red Hat, Inc. | Methods and systems for user identity management in cloud-based networks |
US8239509B2 (en) * | 2008-05-28 | 2012-08-07 | Red Hat, Inc. | Systems and methods for management of virtual appliances in cloud-based network |
US8615501B2 (en) | 2008-06-23 | 2013-12-24 | International Business Machines Corporation | Hypervisor service to provide image version control support |
US8370835B2 (en) * | 2009-03-12 | 2013-02-05 | Arend Erich Dittmer | Method for dynamically generating a configuration for a virtual machine with a virtual hard disk in an external storage device |
WO2011014189A1 (en) * | 2009-07-31 | 2011-02-03 | Hewlett-Packard Development Company, L.P. | Controlling a virtual machine |
US8607082B2 (en) * | 2009-08-31 | 2013-12-10 | Red Hat Israel, Ltd. | Mechanism for managing power in a virtual machine system |
US8869300B2 (en) * | 2010-05-10 | 2014-10-21 | Citrix Sytems, Inc. | Redirection of information from secure virtual machines to unsecure virtual machines |
-
2009
- 2009-05-02 US US12/434,619 patent/US8972978B2/en active Active
- 2009-05-02 US US12/434,620 patent/US8473594B2/en active Active
- 2009-05-02 US US12/434,621 patent/US10127059B2/en active Active
-
2011
- 2011-10-18 US US13/276,153 patent/US8473627B2/en active Active
-
2012
- 2012-09-14 US US13/619,959 patent/US8635351B2/en active Active
- 2012-09-26 US US13/627,761 patent/US20130139158A1/en not_active Abandoned
- 2012-09-26 US US13/627,794 patent/US9870238B2/en active Active
-
2013
- 2013-06-24 US US13/925,478 patent/US9052933B2/en active Active
- 2013-06-24 US US13/925,682 patent/US9063763B2/en active Active
-
2018
- 2018-09-11 US US16/128,251 patent/US10817318B2/en active Active
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11269668B2 (en) * | 2010-05-27 | 2022-03-08 | Salesforce.Com, Inc. | Database systems and related methods for validation workflows |
US9602668B2 (en) | 2011-05-25 | 2017-03-21 | Echopass Corporation | Systems and methods for managing multi-tenant callback services |
US9031223B2 (en) * | 2011-05-25 | 2015-05-12 | Echopass Corporation | Systems and methods for managing multi-tenant callback services |
US20120321070A1 (en) * | 2011-05-25 | 2012-12-20 | Echopass Corporation | Systems and methods for managing multi-tenant callback services |
US9742918B2 (en) | 2011-05-25 | 2017-08-22 | Echopass Corporation | Systems and methods for managing multi-tenant callback services |
US10129404B2 (en) | 2011-05-25 | 2018-11-13 | Echopass Corpoartion | Systems and methods for managing multi-tenant callback services |
US20130073708A1 (en) * | 2011-09-20 | 2013-03-21 | Cloudbyte, Inc. | Techniques for achieving unlimited parallel scalability, storage capacity, and/or storage performance in a multi-tenant storage cloud environment |
US20130121207A1 (en) * | 2011-11-10 | 2013-05-16 | Verizon Patent And Licensing Inc. | Providing overlay networks via elastic cloud networking |
US9235856B2 (en) * | 2011-11-10 | 2016-01-12 | Verizon Patent And Licensing Inc. | Providing overlay networks via elastic cloud networking |
US9311160B2 (en) | 2011-11-10 | 2016-04-12 | Verizon Patent And Licensing Inc. | Elastic cloud networking |
CN109313564A (en) * | 2016-06-23 | 2019-02-05 | 威睿公司 | For supporting the server computer management system of the highly usable virtual desktop of multiple and different tenants |
EP3346383A1 (en) * | 2017-01-10 | 2018-07-11 | Unify Patente GmbH & Co. KG | Computer-implemented method of managing tenants on a multi-tenant sip server system and multi-tenant sip server system |
US11533369B2 (en) | 2017-01-10 | 2022-12-20 | Ringcentral, Inc. | Computer-implemented method and system for managing tenants on a multi-tenant SIP server system |
Also Published As
Publication number | Publication date |
---|---|
US20120096158A1 (en) | 2012-04-19 |
US20190102209A1 (en) | 2019-04-04 |
US20130290960A1 (en) | 2013-10-31 |
US9870238B2 (en) | 2018-01-16 |
US20090288084A1 (en) | 2009-11-19 |
US8635351B2 (en) | 2014-01-21 |
US8473594B2 (en) | 2013-06-25 |
US9052933B2 (en) | 2015-06-09 |
US10817318B2 (en) | 2020-10-27 |
US20130144744A1 (en) | 2013-06-06 |
US8972978B2 (en) | 2015-03-03 |
US8473627B2 (en) | 2013-06-25 |
US20130290506A1 (en) | 2013-10-31 |
US20090327471A1 (en) | 2009-12-31 |
US20130013738A1 (en) | 2013-01-10 |
US9063763B2 (en) | 2015-06-23 |
US10127059B2 (en) | 2018-11-13 |
US20100138830A1 (en) | 2010-06-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10817318B2 (en) | Multitenant hosted virtual machine infrastructure | |
Boss et al. | Cloud computing | |
US11244261B2 (en) | Catalog service platform for deploying applications and services | |
US11089088B2 (en) | Multi tenancy for single tenancy applications | |
US8683464B2 (en) | Efficient virtual machine management | |
US7941801B2 (en) | Method and system for provisioning a virtual computer and scheduling resources of the provisioned virtual computer | |
US20130067345A1 (en) | Automated Desktop Services Provisioning | |
US20160132808A1 (en) | Portfolios and portfolio sharing in a catalog service platform | |
US20040025157A1 (en) | Installation of a data processing solution | |
Bond | The enterprise cloud: Best practices for transforming legacy IT | |
WO2016077483A1 (en) | Catalog service platform for deploying applications and services | |
Aguado et al. | A practical approach to cloud IaaS with IBM SoftLayer: Presentations guide | |
Mauro et al. | Mastering VMware vSphere 6.5: Leverage the power of vSphere for effective virtualization, administration, management and monitoring of data centers | |
Xiong | Cloud Computing for Scientific Research | |
Ehrhardt | Cloud build methodology | |
Ventresco | Implementing VMware Horizon 7 | |
Michalewicz | Attempt to Salvage Multi-million Dollars of Ill-conceived HPC System Investment by Creating Academic Cloud Computing Infrastructure. A Tale of Errors and Belated Learning | |
Penberthy et al. | Containers | |
Montgomery et al. | CCNA Cloud Complete Study Guide: Exam 210-451 and Exam 210-455 | |
Stradi-Granados et al. | From the Office to the Cloud, Why Should You Care? The Short Answer: Because It Can Benefit You | |
Gleb et al. | Build Secure Cloud Environment | |
Cardoso | Microsoft System Center Virtual Machine Manager 2012 Cookbook | |
Shaik et al. | Google Cloud | |
Abhilash et al. | Learning VMware VSphere | |
Cai | Analysis and Evaluation of an Integrated Web Services Framework |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |