US20150172106A1 - Virtualization of groups of devices - Google Patents

Virtualization of groups of devices Download PDF

Info

Publication number
US20150172106A1
US20150172106A1 US14/616,957 US201514616957A US2015172106A1 US 20150172106 A1 US20150172106 A1 US 20150172106A1 US 201514616957 A US201514616957 A US 201514616957A US 2015172106 A1 US2015172106 A1 US 2015172106A1
Authority
US
United States
Prior art keywords
devices
virtual
physical connection
physical
computer
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
Application number
US14/616,957
Inventor
Sergey Royt
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Priority to US14/616,957 priority Critical patent/US20150172106A1/en
Publication of US20150172106A1 publication Critical patent/US20150172106A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0893Assignment of logical groups to network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • H04L41/122Discovery or management of network topologies of virtualised topologies, e.g. software-defined networks [SDN] or network function virtualisation [NFV]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2206/00Indexing scheme related to dedicated interfaces for computers
    • G06F2206/10Indexing scheme related to storage interfaces for computers, indexing schema related to group G06F3/06
    • G06F2206/1012Load balancing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0895Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks

Definitions

  • Virtualizing technologies are techniques and mechanisms by which computers, including the operating system, may be implemented in software.
  • the unit When an entire computer system including the operating system is implemented in software, the unit may be referred to as a virtual machine.
  • Virtual machines may be used in many situations, for example, where each virtual machine performs a specific function or component of a larger service, but the components are executed in separate virtual machines to avoid conflicts or problems between the components.
  • multiple components may be executed on a single hardware platform or may be spread across multiple hardware platforms to handle different levels of demand.
  • a virtialization mechanism may create a virtual representation of a group of physical computers and the physical connections between the computers.
  • the mechanism may comprise a discovery tool for determining a topology of connected physical computers and selecting the elements to virtualize, a device virtualization tool that may create virtual versions of the physical computers, and a connection virtualization tool that may create virtual connections between the virtual computers.
  • the virtual devices and virtual connections may then be operated virtually. In many cases, optimized versions of the virtual devices and virtual connections may be performed.
  • FIG. 1 is a diagram illustration of an embodiment showing an example of a transformation from a group of connected physical devices to a virtual representation of the devices.
  • FIG. 2 is a diagram illustration of an embodiment showing a system for virtualizing a connected group of physical devices.
  • FIG. 3 is a flowchart illustration of an embodiment showing a method for discovering a connected group of physical devices.
  • FIG. 4 is a flowchart illustration of an embodiment showing a method for optimizing a virtual version of a connected group of physical devices.
  • FIG. 5 is a flowchart illustration of an embodiment showing a method for creating a connected group of virtual devices.
  • a group of physical computers with physical connections may be represented as virtual computers with virtual connections.
  • Each physical computer may be analyzed and converted to a virtual computer and then each physical connection may also be identified, analyzed, and converted to virtual connections between the virtual computers.
  • the connected group of computers may be operated in a virtual environment.
  • the virtualized group of interacting computers may be used to represent and execute the functions of an interconnected group of physical computers in a virtual manner.
  • a group of physical computers may be virtualized so that the group may be operated on a larger, faster hardware platform.
  • a group of physical computers may be virtualized and consolidated onto a single hardware platform.
  • an optimization step may optimize the virtualized versions of one or more computers as well as optimizing the communication paths or connections between the computers.
  • the optimization may include, for example, replacing a group computer systems with a single virtual device that performs the same function.
  • physical connections that route through multiple switches, hubs, routers, or have complex network connections may be consolidated into a single link connection.
  • the subject matter may be embodied as devices, systems, methods, and/or computer program products. Accordingly, some or all of the subject matter may be embodied in hardware and/or in software (including firmware, resident software, micro-code, state machines, gate arrays, etc.) Furthermore, the subject matter may take the form of a computer program product on a computer-usable or computer-readable storage medium having computer-usable or computer-readable program code embodied in the medium for use by or in connection with an instruction execution system.
  • a computer-usable or computer-readable medium may be any medium that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.
  • the computer-usable or computer-readable medium may be, for example but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, device, or propagation medium.
  • computer readable media may comprise computer storage media and communication media.
  • Computer storage media includes volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data.
  • Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can accessed by an instruction execution system.
  • the computer-usable or computer-readable medium could be paper or another suitable medium upon which the program is printed, as the program can be electronically captured, via, for instance, optical scanning of the paper or other medium, then compiled, interpreted, of otherwise processed in a suitable manner, if necessary, and then stored in a computer memory.
  • Communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media.
  • modulated data signal means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal.
  • communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of the any of the above should also be included within the scope of computer readable media.
  • the embodiment may comprise program modules, executed by one or more systems, computers, or other devices.
  • program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types.
  • functionality of the program modules may be combined or distributed as desired in various embodiments.
  • FIG. 1 is a diagram of an example 100 showing a before and after configuration of a physical group of computers that may be virtualized as a group.
  • Example 100 is merely an example of a transformation from physical computer devices and complex connections to a virtual version that may be, in some cases, optimized.
  • a physical layout 102 of a group of interconnected devices may be analyzed, optimized, and converted to a virtual representation 104 of the group of devices.
  • the group of physical devices may be replicated without optimization, while in other embodiments, subsets of devices may be optimized and/or the connections between devices may be optimized.
  • FIG. 2 later in this specification, a mechanism for performing the conversion from a physical layout to a virtual configuration is illustrated.
  • Virtualization offers many useful opportunities.
  • a virtual version of a connected group of computers may enable an administrator to move the group of computers to different hardware platforms, to expand and contract the capabilities of the group, and to isolate the group from other computer devices or services.
  • Virtualization may be used in test environments where a group of computers may be run under various test conditions and subjected to different scenarios. When virtualized, multiple sets of connected computers may be easily created and operated in parallel, thus allowing many tests to be performed in parallel.
  • virtualization may enable two or more physical devices to be represented and executed on a single hardware platform.
  • One hardware platform may execute many virtual machines, each of which may be operated in a virtual environment that is isolated from the other virtual machines.
  • the communications between the virtual machines may be much faster than when the physical devices communicate over a network.
  • network connections may be shared by many devices and available network bandwidth and communication travel time between devices may vary.
  • Groups of connected physical devices may be converted to virtual machines and operated on different hardware platforms.
  • the virtual machines may be operated on faster hardware platforms for increased capabilities, and the connections between the virtual devices may also be optimized for increased throughput.
  • groups of computers may operate together to perform various functions.
  • the illustrated group of computers may perform a web hosting service.
  • Other groups of computers may be arranged for load balancing purposes, high uptime, or for other purposes.
  • a load balancing arrangement may comprise a load balancing or distribution server and several servers that may process requests.
  • the load balancing server may receive a request, determine which of the servers are available to service the request, and assign one of the servers to process the request.
  • the group of computers may have a topology and function that enables the group of computers to service more requests than a single server.
  • the group When converting a load balancing group of physical servers to a virtual environment, the group may be virtualized and the connections between the servers may be replicated in the virtual environment.
  • the virtual environment may include a virtual load balancing server and several virtual servers.
  • a load balancing group of physical servers may be converted to a single virtual server that may process requests.
  • the load balancing group of servers may be older hardware platforms that may be much slower than a newer hardware platform which may host the virtual version of the group.
  • the newer hardware platform may be capable of providing as much or more throughput or improved response time than the previous group of physical servers by executing a single virtual server without the load balancing arrangement.
  • a group of computers may be arranged in a high uptime arrangement.
  • redundant devices may be arranged so that if one device fails, the other device may be operable to respond.
  • such arrangements may be configured so that a high level of service is maintained, while in other arrangements, the devices may be configured to continue responding although with a lower response time or throughput.
  • connections between devices may be analyzed and optimized. For example, a connection between two servers may be made through various network switches, routers, gateways, hubs, or other network components. In some cases, a particular network component may use specific protocols or may convert from one protocol to another as traffic is passed across the component. Such connections, when discovered and re-created in a virtual environment, may be optimized to remove extraneous connections or components.
  • a physical network may be constrained by the physical locations of different servers, the available network capacity within portions of the network, the presence and operation of other physical devices, and many other factors.
  • many of such factors may be removed and thus some connections and configurations may be optimized or changed.
  • a virtual version of a group of physical devices may be created to duplicate specific problems or to troubleshoot specific areas of the network.
  • a virtual version of the connections may be created with as much similarity as possible with the physical version.
  • a physical layout 102 may represent the computer systems that make up a website.
  • a gateway server 106 may provide various firewall, routing, and other functions between the Internet 108 and a web server 107 .
  • the web server 107 may serve web pages and respond to requests from clients connected to the Internet 108 .
  • the gateway server 106 may be connected to the web server 107 through a network router 114 .
  • the network router 114 may be a specialized network device that may route and forward communications between several devices.
  • the web server 107 may communicate with a storage area network 110 and a database service 112 to serve various web pages.
  • the storage area network 110 may be a system or group of devices configured to store and retrieve data for the web server 107 or for the database service 112 .
  • the web server 107 may be connected to the storage area network through the network router 114 and a network switch 116 . Similarly, the web server 107 may be connected to the database service 112 through the network router 114 , the network switch 116 , and a network hub 126 .
  • Each network component such as the network router 114 , network switch 116 , and network hub 126 may provide some connectivity between various devices.
  • the network component may merely receive a packet and transmit the packet along the network.
  • An example may be a network hub 126 .
  • the network component may receive a packet, analyze routing information attached to the packet, and forward the packet to a specific device connected to the network component.
  • An example may be a network switch 116 .
  • communication packets may be analyzed, routed, and in some cases wrapped or unwrapped using various protocols.
  • the various network components may be arranged for connecting various other physical devices together.
  • many devices not shown may be connected to the network using the network router 114 , network switch 116 , and network hub 126 .
  • the example 100 may illustrate those devices and connections that make up a web service that may be virtualized while leaving off many other devices that may be connected using a network.
  • connections between the components of the web service in the physical layout 102 may contribute to some performance issues.
  • communications that are made across several devices generally add time delay and bandwidth restrictions to the communication.
  • a request from the web server 107 to the database service 112 may go through three network components, each of which may add some delay in the communication.
  • the storage area network 110 may comprise a storage area network (SAN) controller 118 and several storage servers 120 , 122 , and 124 .
  • the SAN controller 118 may provide request routing, load balancing, replication, high uptime, redundancy, and other functions across the several storage servers.
  • the SAN controller 118 may communicate with the storage servers 120 , 122 , and 124 through a high speed SAN backbone or network that is separate from the network connecting the web server 107 and the storage area network 110 .
  • the SAN controller 118 and the storage servers 120 , 122 , and 124 may operate as a single unit that may receive read and write requests and transmit responses.
  • the database service 112 may comprise a load balancing server 128 and database or SQL servers 130 and 132 . As a subgroup, the database service 112 may be configured as a load balancing or high throughput configuration.
  • the virtual environment 131 may operate each of the various virtual devices along with the connections between the devices.
  • the virtual environment 131 may be hosted on a single hardware platform, or may span several hardware platforms. Each hardware platform may have an operating system or other executable code in which a virtual machine may be executed.
  • a hypervisor or other management component may be used to manage and operate the various virtual devices.
  • the gateway server 134 and web server 135 may be created as separate virtual devices that correspond to the gateway server 106 and web server 107 in the physical layout 102 .
  • a virtual representation of a physical device may be created by creating a software version of the hardware and software components on the physical device, and then transferring the data, configuration files, or other information from the physical device to the virtual device.
  • the virtual device may then be operated within a virtual environment and may perform the same functions in a similar manner as the original physical device.
  • a virtual connection 142 may be created.
  • the virtual connection 142 may represent the connection between the physical gateway sever 106 , the network router 114 , and the physical web server 107 .
  • the original physical connection may be combined and optimized into a single connection 142 .
  • a physical connection may have various protocols, filters, and other functional characteristics. When such a physical connection is moved to a virtual environment, some or all of such characteristics may be implemented in the virtual connection. In some cases, such functional characteristics may be removed to achieve higher performance in the virtual environment.
  • the storage area network 110 When the storage area network 110 is converted to the virtual representation 104 , the storage area network 110 may be optimized, combined, or otherwise represented as a high availability SAN 136 .
  • the SAN 136 may represent the functional aspects of the SAN controller 118 along with the storage servers 120 , 122 , and 124 in a single virtual machine.
  • the SAN 136 may be, in some cases, a virtual machine with high availability or high performance characteristics that may be similar to the physical storage area network 110 .
  • the load balanced SQL server 138 may be an optimized version of the database service 112 that contains a load balancing server 128 and SQL servers 130 and 132 .
  • connections 144 , 146 , and 148 may be optimized virtual representations of the connections between the corresponding physical devices.
  • Example 100 is one example that may illustrate a conversion of a connected group of physical devices to a virtual representation of those devices.
  • a conversion may replicate many physical details, including the various network components.
  • optimization may be performed on such connections.
  • FIG. 2 is a functional illustration of an embodiment 200 showing a system for virtualizing.
  • Embodiment 200 illustrates one embodiment of a system for creating a virtual representation of a group of physical devices by showing various functional elements that may make up a system.
  • the diagram of FIG. 2 illustrates functional components of a system.
  • the component may be a hardware component, a software component, or a combination of hardware and software. Some of the components may be application level software, while other components may be operating system level components.
  • the connection of one component to another may be a close connection where two or more components are operating on a single hardware platform. In other cases, the connections may be made over network connections spanning long distances.
  • Each embodiment may use different hardware, software, and interconnection architectures to achieve the functions described.
  • Embodiment 200 illustrates a system that may discover, optimize, and implement a set of virtual machines with connections between the virtual machines.
  • the set of virtual machines may represent various functional aspects of a group of physical devices with physical connections between the devices.
  • a discovery tool 202 may be used to discover and identify the physical devices and connections that may be virtualized.
  • An optimizer 204 may analyze and optimize the physical configuration.
  • the device virtualizer 206 may create virtual machines that represent physical machines or groups of physical machines.
  • the connection virtualizer 208 may create connections between the various virtual devices.
  • the virtual machines and connections may be executed in a virtual environment 210 .
  • the system of embodiment 200 may be used to create virtual representations of various physical computer devices.
  • a group of computer devices may be configured to provide various services.
  • Many web services, line of business applications, and organization-wide application or storage systems may be delivered by groups of computers that are arranged to perform individual functions for the application or service.
  • one server was dedicated as a web server while another device or group of devices were dedicated to perform database services.
  • the discovery tool 202 may discover physical devices as well as the connections between the devices, and may do so using many different techniques, mechanisms, and sources of metadata about the devices and connections between the devices.
  • a network crawler 214 may be used to detect physical devices and their connections.
  • the network crawler 214 may start with a specific device and may query the device, instrument the device, or use some other technique to determine various aspects of the device.
  • certain metadata may be readily available, such as the operating system, executing applications, and various hardware characteristics of a device.
  • the network crawler 214 may instrument the device to monitor incoming and outgoing messages to identify other devices and to collect metadata about the connections and traffic with the other devices.
  • a network crawler 214 may use templates 216 that may identify a typical configuration of various services.
  • the templates 216 may contain typical configurations of devices and connections that may be used to perform various services.
  • a storage area network may have a template that may be used by the network crawler when a storage area network is identified. The template may be used to guide the network crawler 214 to look for specific types of devices and connections between those devices.
  • Many enterprise computing environments may contain a network monitoring tool 218 that may continually monitor devices on the network 212 and keep a status and topology database 220 .
  • various servers, network devices, and client devices on a network may be instrumented with an agent or other monitoring system.
  • the monitoring system may collect performance, status, and configuration information for devices on the network.
  • the status and topology database 220 may be used by a discover tool 202 to collect some or all of the metadata about devices and connections on the network 212 .
  • metadata from the network crawler 214 may be used in conjunction with the status and topology database 220 to determine information about the devices and connections on the network 212 .
  • the user interface 222 may be used by an administrator or other user to identify which devices and connections between devices are to be virtualized. In some cases, the user interface 222 may be used to identify a starting device that may be used by a network crawler 214 to find related devices and connections between the devices.
  • the user interface 222 may be used to define the groups of devices and connections between the devices that may be converted to virtual versions of those devices and connections. Some conversions may be performed where a group of devices are virtualized and one or more physical devices remain without virtualizing. Such a conversion may be a hybrid where a group of devices are partially virtualized while keeping the connections between the functional components of the multi-device system.
  • the user interface 222 may be used to display a graphical representation of a topology of devices and the connections between them. From the graphical representation, a user may be able to identify the specific devices to virtualize and which devices are to remain as non-virtualized physical devices.
  • the user interface 222 may also be used to indicate to an optimizer 204 what types of optimization changes may be performed when moving from a physical version to a virtual version of a device or group of devices.
  • the optimizer 204 may automatically, manually, or with manual assistance identify and optimize various devices, connections between devices, and groups of devices.
  • the optimizer 204 may use a set of optimization templates 224 to identify a group of devices that may be consolidated into one virtual device.
  • a single physical device that performs two or more different tasks may be represented as two or more virtual machines, with each virtual machine performing one of the tasks.
  • the optimization templates 224 may be used to consolidate various configurations of devices into an optimized virtual version of those devices.
  • the templates may contain a framework for a physical group of devices and an optimized virtual version that may be used in place of the physical group.
  • the storage area network 110 in example 100 was consolidated into a virtual high availability SAN 136 device.
  • the optimization templates 224 may include various options for configuring virtual versions of individual or groups of devices.
  • the optimizer 204 may analyze various discovered devices and connections between the devices and may present options to a user for the conversion from physical devices to virtual devices.
  • the optimizer 204 may perform an analysis and determine two or three options for a virtual configuration of a group or subgroup of devices, and a user may select from between the options to determine a virtual representation of the physical devices.
  • the optimizer 204 may create several options for the database service 112 in the example 100 .
  • One option may be to create a virtual copy of the load balancing server 128 and each of the SQL servers 130 and 132 .
  • Another option may be to create a virtual load balanced SQL server 138 that may have similar or better performance than the original, physical database service 112 .
  • Other options may include creating virtual versions of SQL servers 130 and 132 but leaving the load balancing server 128 as a physical device.
  • a definition of the desired virtual configuration may be passed to the device virtualizer 206 and the connection virtualizer 208 .
  • the device virtualizer 206 may create a virtual version of each of the physical devices or groups of physical devices identified by the discovery tool 202 and optimized by the optimization tool 204 .
  • the connection virtualizer 208 may create virtual connections between the virtual devices to emulate the connections discovered in the physical network 212 .
  • the virtual devices and virtual connections may be operated in a virtual environment 210 .
  • the virtual environment 210 may be a virtual environment contained on a single physical host device or may include many physical host devices.
  • the system of embodiment 200 may be used to create virtual versions of groups of devices.
  • the discovery tool 202 may be used to discover and display many physical devices and connections between the devices in the network 212 . From those physical devices, a group may be selected for conversion to virtual versions of those physical devices and the connections between the devices.
  • FIG. 3 is a flowchart illustration of an embodiment 300 showing a method for discovery. Such a method may be used automatically, manually, or partially automatically to define physical devices and physical connections between the devices. The definition may be used by an optimization routine or may be used by a virtualization routine to create virtual versions of the physical devices.
  • Embodiment 300 is an example of a simplified sequence for crawling a network.
  • different techniques may be used to determine the presence and metadata of physical devices and connections within a network.
  • Such other embodiments may use data derived from a monitoring application, user supplied descriptions or identification of the devices and connections, or any other input mechanism.
  • the discovery method starts in block 302 .
  • a starting device is identified in block 304 .
  • the starting device may be identified by a user or may be selected automatically. Some embodiments may display a graphical depiction of a network arrangement and a user may select one of the devices. In some cases, such an embodiment may enable a user to select all of the devices to virtualize. In such embodiments, the crawling process may be used to determine various metadata and characteristics of the devices and connections that may be virtualized.
  • various metadata may be derived or discovered for the device and any connections to the device.
  • the method of embodiment 300 may be used to collect information that may be the basis for creating corresponding virtual devices and virtual connections.
  • the device type may be determined in block 308 , and a device function may be determined in block 310 .
  • the device type may be any description that may be used to create a virtual device and perform various optimizations.
  • the device type may be broad types of devices, such as a server device, a network connection device, a client device, or other type.
  • Some embodiments may describe a device type as a specific type of hardware configuration with specific types of processors, a certain amount of random access memory, specific peripheral devices, an amount of data storage, and other hardware characteristics.
  • the device function in block 310 may be related to the type of software or other functional characteristics of the device. For example, a device may execute data storage functions, serve web pages, respond to database queries, perform firewall functions, balance loads across servers, operate a specific function as part of a larger application, or provide many other functions. Some crawlers may determine the function of a device by inspecting the operating software on the device and the processing time devoted to various functions performed by the device.
  • connection parameters and characteristics may be collected.
  • the devices that communicate on the connection may be determined in block 314 .
  • the connected devices may be used to determine a destination for a crawler.
  • Each connected device may be analyzed to determine the characteristics of those devices.
  • Performance parameters may be determined in block 316 , protocol parameters may be determined in block 318 , and any filters may also be determined in block 320 .
  • Many connections may have various performance parameters such as bandwidth and network speed. Some connections may operate using specific protocols or filters, such as TCP/IP protocol or other protocols and filters. Such protocols and filters may be used by software or hardware components on the transmitting or receiving ends of the communication. In some embodiments, the protocols and filters may be used by an intermediary network device such as a router, gateway, or other device to permit communication between communicating devices.
  • the embodiment 300 may collect some or all of the information that may be used for optimization and virtualization of a group of devices and connections between the devices. In some cases, the embodiment 300 may be used to collect information that may be used to identify and select those devices to virtualize, but much of the information used to virtualize may be collected during the virtualization process.
  • FIG. 4 is a flowchart illustration of an embodiment 400 showing a method for optimizing computers and connections that may be performed prior to virtualizing the devices and connections. Such a method may be used automatically, manually, or partially automatically to define changes between the physical topology and virtual topology of a group of connected devices.
  • Embodiment 400 is a simplified example of one method for optimizing a virtual version of a group of connected devices.
  • an optimization method may involve an iterative process and may have many options for a user to select an appropriate type of optimization based on the goals of the virtualization procedure.
  • Embodiment 400 may be a fully automated procedure, or may be manually performed. In some embodiments, portions of the embodiment 400 may be performed automatically while others may be performed with by a user or with a user intervention. Embodiment 400 is a general, high level overview process by which a virtual version of a group of connected devices may be configured, changed, and optimized.
  • optimize refers to making changes between a physical version of a device or connection and a virtual version of the device and connection.
  • an optimization procedure may improve one or more aspects of the virtual configuration over the physical configuration, but some changes or ‘optimizations’ may not improve any aspects.
  • the optimization procedure may merely change some aspect of a group of devices when creating a virtual version of a physical group of connected devices. In many cases, however, extensive optimization or changes may be performed to improve various performance or other characteristics.
  • the embodiment 400 may begin in block 402 .
  • the topology of the discovered physical devices and connections may be analyzed. In some embodiments, such analysis may be performed automatically.
  • One method for such analysis is to use a set of templates for various configurations to determine if the configurations exist in the physical group of connected devices. If there is a match, the template may contain one or more suggested virtual configurations that may represent the physical arrangement.
  • the topology of the physical devices may be analyzed by a user.
  • a user may have knowledge about the intent or other factors used to design the physical system that may be used to select devices and connections to optimize.
  • the group members are identified in block 410 . If the group of devices may be consolidated in block 412 , a new object may be created based on the group of physical devices. In some cases, an automated analysis tool may identify the group of devices. In other cases, a user may manually identify the devices and their connections.
  • the decision whether to consolidate in block 412 may be made by a user with a user interface. In some embodiments, the decision to consolidate may be automatically determined.
  • An example of the consolidation of a group of connected devices into a new virtual object may be the consolidation of the storage area network 110 in example 100 to a virtual high availability SAN 136 .
  • the consolidation of a group of connected objects into a new virtual object may remove a level of complexity that may be desired in the physical version but not desired in the virtual version.
  • a complex system of a load balancing database service 112 may be desired when the SQL servers 130 and 132 are older, slower hardware platforms that respond to more requests than a single server may handle.
  • the load balanced SQL server 138 may operate on a much faster, higher capacity hardware platform where the performance is dramatically better.
  • the level of complexity for a load balancing server 128 and the connections between the load balancing server 128 and the SQL servers 130 and 132 may be removed in the virtual version.
  • an optimization may be performed as well.
  • devices may be connected by two or more intermediate network devices or other complexities. By optimizing the virtual connections between devices, such complexities may be removed and thus the virtual connections may be more streamlined and may have improved performance.
  • the connected devices may be identified in block 418 .
  • the connections between the devices may also be identified.
  • a the connection between the gateway server 106 and the web server 107 in example 100 consisted of a connection between the gateway server 106 and the network router 114 and a connection between the network router 114 and the web server 107 .
  • connections are to be consolidated in block 420 , a new connection based on the consolidated connections may be created in block 422 .
  • the connection between the gateway server 106 and the web server 107 was consolidated into the virtual connection 142 .
  • the optimization process may end in block 424 .
  • the optimization process may result in a definition of a group of virtual devices and virtual connections between the devices.
  • the connected group of virtual devices may be based on the connected group of physical devices.
  • the connected group of virtual devices may correspond very highly with the connected group of physical devices.
  • the connected group of virtual devices may be a highly simplified form of the physical devices.
  • an optimization procedure may create two or more virtual devices or connections that may represent a single physical device or connection.
  • a physical server device may have several applications or perform several functions.
  • several virtual devices may be created with each virtual device performing one of the functions of the physical device.
  • any changes to the physical devices and connections may be made through an optimization process in embodiment 400 . This may result in a definition of a virtual group of connected devices.
  • the virtual devices and connections may be created and executed.
  • FIG. 5 is a flowchart illustration of an embodiment 500 showing a method for creating a group of connected virtual devices that may represent a group of connected physical devices.
  • Embodiment 500 may illustrate how a definition of a connected group of physical devices may be used to create a virtual representation of the group. For each device in block 502 , a corresponding virtual device may be created in block 504 and data from the corresponding physical device may be copied to the virtual device in block 506 .
  • a virtual connection may be created in block 510 , and various filters and protocols may be applied to the connection in block 512 .
  • the system may be operated in block 514 .
  • some embodiments may communicate with the physical device and replicate various characteristics of the physical device within the virtual device. Also, various software components, settings, and data may be copied, replicated, or transferred to the virtual device.
  • the virtual device may contain components or functionality from several physical devices.
  • the data, software, and other components of two or more physical devices may be transferred to the corresponding virtual device.
  • a template for an optimized version of a group of connected physical devices may be used to create a new virtual object and identify which components from different physical devices may be implemented in the virtual device.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

A virtialization mechanism may create a virtual representation of a group of physical computers and the physical connections between the computers. The mechanism may comprise a discovery tool for determining a topology of connected physical computers and selecting the elements to virtualize, a device virtualization tool that may create virtual versions of the physical computers, and a connection virtualization tool that may create virtual connections between the virtual computers. The virtual devices and virtual connections may then be operated virtually. In many cases, optimized versions of the virtual devices and virtual connections may be performed.

Description

    CROSS REFERENCE TO RELATED APPLICATIONS
  • This application is a continuation of and claims the benefit of and priority to U.S. patent application Ser. No. 12/050,142, entitled “Virtualization of Groups of Devices”, filed Mar. 17, 2008 by Sergy Royt, the entire contents of which are expressly incorporated by reference.
  • BACKGROUND
  • Virtualizing technologies are techniques and mechanisms by which computers, including the operating system, may be implemented in software. When an entire computer system including the operating system is implemented in software, the unit may be referred to as a virtual machine.
  • Virtual machines may be used in many situations, for example, where each virtual machine performs a specific function or component of a larger service, but the components are executed in separate virtual machines to avoid conflicts or problems between the components. In such an example, multiple components may be executed on a single hardware platform or may be spread across multiple hardware platforms to handle different levels of demand.
  • SUMMARY
  • A virtialization mechanism may create a virtual representation of a group of physical computers and the physical connections between the computers. The mechanism may comprise a discovery tool for determining a topology of connected physical computers and selecting the elements to virtualize, a device virtualization tool that may create virtual versions of the physical computers, and a connection virtualization tool that may create virtual connections between the virtual computers. The virtual devices and virtual connections may then be operated virtually. In many cases, optimized versions of the virtual devices and virtual connections may be performed.
  • This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • In the drawings,
  • FIG. 1 is a diagram illustration of an embodiment showing an example of a transformation from a group of connected physical devices to a virtual representation of the devices.
  • FIG. 2 is a diagram illustration of an embodiment showing a system for virtualizing a connected group of physical devices.
  • FIG. 3 is a flowchart illustration of an embodiment showing a method for discovering a connected group of physical devices.
  • FIG. 4 is a flowchart illustration of an embodiment showing a method for optimizing a virtual version of a connected group of physical devices.
  • FIG. 5 is a flowchart illustration of an embodiment showing a method for creating a connected group of virtual devices.
  • DETAILED DESCRIPTION
  • A group of physical computers with physical connections may be represented as virtual computers with virtual connections. Each physical computer may be analyzed and converted to a virtual computer and then each physical connection may also be identified, analyzed, and converted to virtual connections between the virtual computers. The connected group of computers may be operated in a virtual environment.
  • The virtualized group of interacting computers may be used to represent and execute the functions of an interconnected group of physical computers in a virtual manner. In many cases, a group of physical computers may be virtualized so that the group may be operated on a larger, faster hardware platform. In other cases, a group of physical computers may be virtualized and consolidated onto a single hardware platform.
  • When a group of interacting computers is virtualized, an optimization step may optimize the virtualized versions of one or more computers as well as optimizing the communication paths or connections between the computers. The optimization may include, for example, replacing a group computer systems with a single virtual device that performs the same function. In another example, physical connections that route through multiple switches, hubs, routers, or have complex network connections may be consolidated into a single link connection.
  • Throughout this specification, like reference numbers signify the same elements throughout the description of the figures.
  • When elements are referred to as being “connected” or “coupled,” the elements can be directly connected or coupled together or one or more intervening elements may also be present. In contrast, when elements are referred to as being “directly connected” or “directly coupled,” there are no intervening elements present.
  • The subject matter may be embodied as devices, systems, methods, and/or computer program products. Accordingly, some or all of the subject matter may be embodied in hardware and/or in software (including firmware, resident software, micro-code, state machines, gate arrays, etc.) Furthermore, the subject matter may take the form of a computer program product on a computer-usable or computer-readable storage medium having computer-usable or computer-readable program code embodied in the medium for use by or in connection with an instruction execution system. In the context of this document, a computer-usable or computer-readable medium may be any medium that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.
  • The computer-usable or computer-readable medium may be, for example but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, device, or propagation medium. By way of example, and not limitation, computer readable media may comprise computer storage media and communication media.
  • Computer storage media includes volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can accessed by an instruction execution system. Note that the computer-usable or computer-readable medium could be paper or another suitable medium upon which the program is printed, as the program can be electronically captured, via, for instance, optical scanning of the paper or other medium, then compiled, interpreted, of otherwise processed in a suitable manner, if necessary, and then stored in a computer memory.
  • Communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of the any of the above should also be included within the scope of computer readable media.
  • When the subject matter is embodied in the general context of computer-executable instructions, the embodiment may comprise program modules, executed by one or more systems, computers, or other devices. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. Typically, the functionality of the program modules may be combined or distributed as desired in various embodiments.
  • FIG. 1 is a diagram of an example 100 showing a before and after configuration of a physical group of computers that may be virtualized as a group. Example 100 is merely an example of a transformation from physical computer devices and complex connections to a virtual version that may be, in some cases, optimized.
  • In example 100, a physical layout 102 of a group of interconnected devices may be analyzed, optimized, and converted to a virtual representation 104 of the group of devices. In some embodiments, the group of physical devices may be replicated without optimization, while in other embodiments, subsets of devices may be optimized and/or the connections between devices may be optimized. In embodiment 200 illustrated in FIG. 2 later in this specification, a mechanism for performing the conversion from a physical layout to a virtual configuration is illustrated.
  • Virtualization offers many useful opportunities. In some instances, a virtual version of a connected group of computers may enable an administrator to move the group of computers to different hardware platforms, to expand and contract the capabilities of the group, and to isolate the group from other computer devices or services.
  • Virtualization may be used in test environments where a group of computers may be run under various test conditions and subjected to different scenarios. When virtualized, multiple sets of connected computers may be easily created and operated in parallel, thus allowing many tests to be performed in parallel.
  • In many embodiments, virtualization may enable two or more physical devices to be represented and executed on a single hardware platform. One hardware platform may execute many virtual machines, each of which may be operated in a virtual environment that is isolated from the other virtual machines.
  • When two or more physical devices are converted to virtual machines and operated on a single hardware platform, the communications between the virtual machines may be much faster than when the physical devices communicate over a network. In many cases, network connections may be shared by many devices and available network bandwidth and communication travel time between devices may vary.
  • Groups of connected physical devices may be converted to virtual machines and operated on different hardware platforms. In such cases, the virtual machines may be operated on faster hardware platforms for increased capabilities, and the connections between the virtual devices may also be optimized for increased throughput.
  • By identifying and virtualizing groups of physical computers by creating virtual representations of the computers and their connections, complex systems may be virtualized in a single operation. Further, portions of the system may be optimized during the virtualization transition.
  • In many cases, groups of computers may operate together to perform various functions. In the example 100, the illustrated group of computers may perform a web hosting service. Other groups of computers may be arranged for load balancing purposes, high uptime, or for other purposes.
  • For example, a load balancing arrangement may comprise a load balancing or distribution server and several servers that may process requests. The load balancing server may receive a request, determine which of the servers are available to service the request, and assign one of the servers to process the request. In such a configuration, the group of computers may have a topology and function that enables the group of computers to service more requests than a single server.
  • When converting a load balancing group of physical servers to a virtual environment, the group may be virtualized and the connections between the servers may be replicated in the virtual environment. In such a case, the virtual environment may include a virtual load balancing server and several virtual servers.
  • In some cases, a load balancing group of physical servers may be converted to a single virtual server that may process requests. In some such cases, the load balancing group of servers may be older hardware platforms that may be much slower than a newer hardware platform which may host the virtual version of the group. The newer hardware platform may be capable of providing as much or more throughput or improved response time than the previous group of physical servers by executing a single virtual server without the load balancing arrangement.
  • In another example, a group of computers may be arranged in a high uptime arrangement. In a high uptime arrangement, redundant devices may be arranged so that if one device fails, the other device may be operable to respond. In some cases, such arrangements may be configured so that a high level of service is maintained, while in other arrangements, the devices may be configured to continue responding although with a lower response time or throughput.
  • During a virtualization process, connections between devices may be analyzed and optimized. For example, a connection between two servers may be made through various network switches, routers, gateways, hubs, or other network components. In some cases, a particular network component may use specific protocols or may convert from one protocol to another as traffic is passed across the component. Such connections, when discovered and re-created in a virtual environment, may be optimized to remove extraneous connections or components.
  • In many cases, a physical network may be constrained by the physical locations of different servers, the available network capacity within portions of the network, the presence and operation of other physical devices, and many other factors. When converting from a physical environment to a virtual environment, many of such factors may be removed and thus some connections and configurations may be optimized or changed.
  • In some cases, a virtual version of a group of physical devices may be created to duplicate specific problems or to troubleshoot specific areas of the network. In such a case, a virtual version of the connections may be created with as much similarity as possible with the physical version.
  • In the example 100, a physical layout 102 may represent the computer systems that make up a website. A gateway server 106 may provide various firewall, routing, and other functions between the Internet 108 and a web server 107. The web server 107 may serve web pages and respond to requests from clients connected to the Internet 108.
  • The gateway server 106 may be connected to the web server 107 through a network router 114. The network router 114 may be a specialized network device that may route and forward communications between several devices.
  • The web server 107 may communicate with a storage area network 110 and a database service 112 to serve various web pages. The storage area network 110 may be a system or group of devices configured to store and retrieve data for the web server 107 or for the database service 112.
  • The web server 107 may be connected to the storage area network through the network router 114 and a network switch 116. Similarly, the web server 107 may be connected to the database service 112 through the network router 114, the network switch 116, and a network hub 126.
  • Each network component such as the network router 114, network switch 116, and network hub 126 may provide some connectivity between various devices. In some cases, the network component may merely receive a packet and transmit the packet along the network. An example may be a network hub 126. In other cases, the network component may receive a packet, analyze routing information attached to the packet, and forward the packet to a specific device connected to the network component. An example may be a network switch 116. In other cases, such as the network router 114, communication packets may be analyzed, routed, and in some cases wrapped or unwrapped using various protocols.
  • In a physical network, the various network components may be arranged for connecting various other physical devices together. For example, many devices not shown may be connected to the network using the network router 114, network switch 116, and network hub 126. The example 100 may illustrate those devices and connections that make up a web service that may be virtualized while leaving off many other devices that may be connected using a network.
  • The connections between the components of the web service in the physical layout 102 may contribute to some performance issues. In general, communications that are made across several devices generally add time delay and bandwidth restrictions to the communication. For example, a request from the web server 107 to the database service 112 may go through three network components, each of which may add some delay in the communication.
  • In many cases, a subgroup of physical devices may be used to provide a single service or function. For example, the storage area network 110 may comprise a storage area network (SAN) controller 118 and several storage servers 120, 122, and 124. The SAN controller 118 may provide request routing, load balancing, replication, high uptime, redundancy, and other functions across the several storage servers. In many embodiments the SAN controller 118 may communicate with the storage servers 120, 122, and 124 through a high speed SAN backbone or network that is separate from the network connecting the web server 107 and the storage area network 110.
  • As a subgroup, the SAN controller 118 and the storage servers 120, 122, and 124 may operate as a single unit that may receive read and write requests and transmit responses.
  • Similarly, the database service 112 may comprise a load balancing server 128 and database or SQL servers 130 and 132. As a subgroup, the database service 112 may be configured as a load balancing or high throughput configuration.
  • When the virtual representation 104 of the physical layout 102 is created, a virtual representation of each device or group of devices as well as the connections between the devices may be created. The virtual environment 131 may operate each of the various virtual devices along with the connections between the devices. The virtual environment 131 may be hosted on a single hardware platform, or may span several hardware platforms. Each hardware platform may have an operating system or other executable code in which a virtual machine may be executed. In some embodiments, a hypervisor or other management component may be used to manage and operate the various virtual devices.
  • When the physical layout 102 is converted to operate in the virtual environment 131, the gateway server 134 and web server 135 may be created as separate virtual devices that correspond to the gateway server 106 and web server 107 in the physical layout 102.
  • In many cases, a virtual representation of a physical device may be created by creating a software version of the hardware and software components on the physical device, and then transferring the data, configuration files, or other information from the physical device to the virtual device. The virtual device may then be operated within a virtual environment and may perform the same functions in a similar manner as the original physical device.
  • When the virtual gateway server 134 and virtual web server 135 are created, a virtual connection 142 may be created. The virtual connection 142 may represent the connection between the physical gateway sever 106, the network router 114, and the physical web server 107. When the virtual connection 142 is created, the original physical connection may be combined and optimized into a single connection 142. In some cases, a physical connection may have various protocols, filters, and other functional characteristics. When such a physical connection is moved to a virtual environment, some or all of such characteristics may be implemented in the virtual connection. In some cases, such functional characteristics may be removed to achieve higher performance in the virtual environment.
  • When the storage area network 110 is converted to the virtual representation 104, the storage area network 110 may be optimized, combined, or otherwise represented as a high availability SAN 136. The SAN 136 may represent the functional aspects of the SAN controller 118 along with the storage servers 120, 122, and 124 in a single virtual machine. The SAN 136 may be, in some cases, a virtual machine with high availability or high performance characteristics that may be similar to the physical storage area network 110.
  • Similarly, the load balanced SQL server 138 may be an optimized version of the database service 112 that contains a load balancing server 128 and SQL servers 130 and 132.
  • The connections 144, 146, and 148 may be optimized virtual representations of the connections between the corresponding physical devices.
  • Example 100 is one example that may illustrate a conversion of a connected group of physical devices to a virtual representation of those devices. In some cases, a conversion may replicate many physical details, including the various network components. In other cases, optimization may be performed on such connections.
  • FIG. 2 is a functional illustration of an embodiment 200 showing a system for virtualizing. Embodiment 200 illustrates one embodiment of a system for creating a virtual representation of a group of physical devices by showing various functional elements that may make up a system.
  • The diagram of FIG. 2 illustrates functional components of a system. In some cases, the component may be a hardware component, a software component, or a combination of hardware and software. Some of the components may be application level software, while other components may be operating system level components. In some cases, the connection of one component to another may be a close connection where two or more components are operating on a single hardware platform. In other cases, the connections may be made over network connections spanning long distances. Each embodiment may use different hardware, software, and interconnection architectures to achieve the functions described.
  • Embodiment 200 illustrates a system that may discover, optimize, and implement a set of virtual machines with connections between the virtual machines. The set of virtual machines may represent various functional aspects of a group of physical devices with physical connections between the devices.
  • A discovery tool 202 may be used to discover and identify the physical devices and connections that may be virtualized. An optimizer 204 may analyze and optimize the physical configuration. The device virtualizer 206 may create virtual machines that represent physical machines or groups of physical machines. The connection virtualizer 208 may create connections between the various virtual devices. The virtual machines and connections may be executed in a virtual environment 210.
  • The system of embodiment 200 may be used to create virtual representations of various physical computer devices. In many cases, a group of computer devices may be configured to provide various services. Many web services, line of business applications, and organization-wide application or storage systems may be delivered by groups of computers that are arranged to perform individual functions for the application or service. In the example 100, one server was dedicated as a web server while another device or group of devices were dedicated to perform database services.
  • The discovery tool 202 may discover physical devices as well as the connections between the devices, and may do so using many different techniques, mechanisms, and sources of metadata about the devices and connections between the devices.
  • In some embodiments, a network crawler 214 may be used to detect physical devices and their connections. The network crawler 214 may start with a specific device and may query the device, instrument the device, or use some other technique to determine various aspects of the device. In many embodiments, certain metadata may be readily available, such as the operating system, executing applications, and various hardware characteristics of a device. In some cases, the network crawler 214 may instrument the device to monitor incoming and outgoing messages to identify other devices and to collect metadata about the connections and traffic with the other devices.
  • Some embodiments of a network crawler 214 may use templates 216 that may identify a typical configuration of various services. The templates 216 may contain typical configurations of devices and connections that may be used to perform various services. For example, a storage area network may have a template that may be used by the network crawler when a storage area network is identified. The template may be used to guide the network crawler 214 to look for specific types of devices and connections between those devices.
  • Many enterprise computing environments may contain a network monitoring tool 218 that may continually monitor devices on the network 212 and keep a status and topology database 220. In some such systems, various servers, network devices, and client devices on a network may be instrumented with an agent or other monitoring system. The monitoring system may collect performance, status, and configuration information for devices on the network.
  • The status and topology database 220 may be used by a discover tool 202 to collect some or all of the metadata about devices and connections on the network 212. In some embodiments, metadata from the network crawler 214 may be used in conjunction with the status and topology database 220 to determine information about the devices and connections on the network 212.
  • Many embodiments may include a user interface 222. The user interface 222 may be used by an administrator or other user to identify which devices and connections between devices are to be virtualized. In some cases, the user interface 222 may be used to identify a starting device that may be used by a network crawler 214 to find related devices and connections between the devices.
  • In some embodiments, the user interface 222 may be used to define the groups of devices and connections between the devices that may be converted to virtual versions of those devices and connections. Some conversions may be performed where a group of devices are virtualized and one or more physical devices remain without virtualizing. Such a conversion may be a hybrid where a group of devices are partially virtualized while keeping the connections between the functional components of the multi-device system.
  • The user interface 222 may be used to display a graphical representation of a topology of devices and the connections between them. From the graphical representation, a user may be able to identify the specific devices to virtualize and which devices are to remain as non-virtualized physical devices.
  • The user interface 222 may also be used to indicate to an optimizer 204 what types of optimization changes may be performed when moving from a physical version to a virtual version of a device or group of devices.
  • The optimizer 204 may automatically, manually, or with manual assistance identify and optimize various devices, connections between devices, and groups of devices. In some embodiments, the optimizer 204 may use a set of optimization templates 224 to identify a group of devices that may be consolidated into one virtual device. In some cases, a single physical device that performs two or more different tasks may be represented as two or more virtual machines, with each virtual machine performing one of the tasks.
  • The optimization templates 224 may be used to consolidate various configurations of devices into an optimized virtual version of those devices. The templates may contain a framework for a physical group of devices and an optimized virtual version that may be used in place of the physical group. For example, the storage area network 110 in example 100 was consolidated into a virtual high availability SAN 136 device. The optimization templates 224 may include various options for configuring virtual versions of individual or groups of devices.
  • The optimizer 204 may analyze various discovered devices and connections between the devices and may present options to a user for the conversion from physical devices to virtual devices. The optimizer 204 may perform an analysis and determine two or three options for a virtual configuration of a group or subgroup of devices, and a user may select from between the options to determine a virtual representation of the physical devices.
  • For example, the optimizer 204 may create several options for the database service 112 in the example 100. One option may be to create a virtual copy of the load balancing server 128 and each of the SQL servers 130 and 132. Another option may be to create a virtual load balanced SQL server 138 that may have similar or better performance than the original, physical database service 112. Other options may include creating virtual versions of SQL servers 130 and 132 but leaving the load balancing server 128 as a physical device.
  • When the optimizer 204 has finished analyzing and processing the topology, a definition of the desired virtual configuration may be passed to the device virtualizer 206 and the connection virtualizer 208. The device virtualizer 206 may create a virtual version of each of the physical devices or groups of physical devices identified by the discovery tool 202 and optimized by the optimization tool 204. Similarly, the connection virtualizer 208 may create virtual connections between the virtual devices to emulate the connections discovered in the physical network 212.
  • The virtual devices and virtual connections may be operated in a virtual environment 210. The virtual environment 210 may be a virtual environment contained on a single physical host device or may include many physical host devices.
  • The system of embodiment 200 may be used to create virtual versions of groups of devices. In many cases, the discovery tool 202 may be used to discover and display many physical devices and connections between the devices in the network 212. From those physical devices, a group may be selected for conversion to virtual versions of those physical devices and the connections between the devices.
  • FIG. 3 is a flowchart illustration of an embodiment 300 showing a method for discovery. Such a method may be used automatically, manually, or partially automatically to define physical devices and physical connections between the devices. The definition may be used by an optimization routine or may be used by a virtualization routine to create virtual versions of the physical devices.
  • Other embodiments may use different sequencing, additional or fewer steps, and different nomenclature or terminology to accomplish similar functions. In some embodiments, various operations or set of operations may be performed in parallel with other operations, either in a synchronous or asynchronous manner. The steps selected here were chosen to illustrate some principles of operations in a simplified form.
  • Embodiment 300 is an example of a simplified sequence for crawling a network. In many embodiments, different techniques may be used to determine the presence and metadata of physical devices and connections within a network. Such other embodiments may use data derived from a monitoring application, user supplied descriptions or identification of the devices and connections, or any other input mechanism.
  • The discovery method starts in block 302.
  • A starting device is identified in block 304. The starting device may be identified by a user or may be selected automatically. Some embodiments may display a graphical depiction of a network arrangement and a user may select one of the devices. In some cases, such an embodiment may enable a user to select all of the devices to virtualize. In such embodiments, the crawling process may be used to determine various metadata and characteristics of the devices and connections that may be virtualized.
  • For the current device in block 306, various metadata may be derived or discovered for the device and any connections to the device. The method of embodiment 300 may be used to collect information that may be the basis for creating corresponding virtual devices and virtual connections.
  • The device type may be determined in block 308, and a device function may be determined in block 310. The device type may be any description that may be used to create a virtual device and perform various optimizations. In some embodiments, the device type may be broad types of devices, such as a server device, a network connection device, a client device, or other type. Some embodiments may describe a device type as a specific type of hardware configuration with specific types of processors, a certain amount of random access memory, specific peripheral devices, an amount of data storage, and other hardware characteristics.
  • The device function in block 310 may be related to the type of software or other functional characteristics of the device. For example, a device may execute data storage functions, serve web pages, respond to database queries, perform firewall functions, balance loads across servers, operate a specific function as part of a larger application, or provide many other functions. Some crawlers may determine the function of a device by inspecting the operating software on the device and the processing time devoted to various functions performed by the device.
  • For each connection on the device in block 312, various connection parameters and characteristics may be collected.
  • The devices that communicate on the connection may be determined in block 314. In many embodiments, the connected devices may be used to determine a destination for a crawler. Each connected device may be analyzed to determine the characteristics of those devices.
  • Performance parameters may be determined in block 316, protocol parameters may be determined in block 318, and any filters may also be determined in block 320. Many connections may have various performance parameters such as bandwidth and network speed. Some connections may operate using specific protocols or filters, such as TCP/IP protocol or other protocols and filters. Such protocols and filters may be used by software or hardware components on the transmitting or receiving ends of the communication. In some embodiments, the protocols and filters may be used by an intermediary network device such as a router, gateway, or other device to permit communication between communicating devices.
  • Once metadata are collected for the device, if another device is to be analyzed in block 322, the other device is made current and the process may return to block 306, otherwise the process may end in block 324.
  • The embodiment 300 may collect some or all of the information that may be used for optimization and virtualization of a group of devices and connections between the devices. In some cases, the embodiment 300 may be used to collect information that may be used to identify and select those devices to virtualize, but much of the information used to virtualize may be collected during the virtualization process.
  • FIG. 4 is a flowchart illustration of an embodiment 400 showing a method for optimizing computers and connections that may be performed prior to virtualizing the devices and connections. Such a method may be used automatically, manually, or partially automatically to define changes between the physical topology and virtual topology of a group of connected devices.
  • Other embodiments may use different sequencing, additional or fewer steps, and different nomenclature or terminology to accomplish similar functions. In some embodiments, various operations or set of operations may be performed in parallel with other operations, either in a synchronous or asynchronous manner. The steps selected here were chosen to illustrate some principles of operations in a simplified form.
  • Embodiment 400 is a simplified example of one method for optimizing a virtual version of a group of connected devices. In many embodiments, an optimization method may involve an iterative process and may have many options for a user to select an appropriate type of optimization based on the goals of the virtualization procedure.
  • Embodiment 400 may be a fully automated procedure, or may be manually performed. In some embodiments, portions of the embodiment 400 may be performed automatically while others may be performed with by a user or with a user intervention. Embodiment 400 is a general, high level overview process by which a virtual version of a group of connected devices may be configured, changed, and optimized.
  • The term ‘optimize’, as used in this specification, refers to making changes between a physical version of a device or connection and a virtual version of the device and connection. In many cases, an optimization procedure may improve one or more aspects of the virtual configuration over the physical configuration, but some changes or ‘optimizations’ may not improve any aspects. The optimization procedure may merely change some aspect of a group of devices when creating a virtual version of a physical group of connected devices. In many cases, however, extensive optimization or changes may be performed to improve various performance or other characteristics.
  • The embodiment 400 may begin in block 402.
  • In block 404, the topology of the discovered physical devices and connections may be analyzed. In some embodiments, such analysis may be performed automatically. One method for such analysis is to use a set of templates for various configurations to determine if the configurations exist in the physical group of connected devices. If there is a match, the template may contain one or more suggested virtual configurations that may represent the physical arrangement.
  • In some embodiments, the topology of the physical devices may be analyzed by a user. In many cases, a user may have knowledge about the intent or other factors used to design the physical system that may be used to select devices and connections to optimize.
  • For each group of devices to optimize in block 408, the group members are identified in block 410. If the group of devices may be consolidated in block 412, a new object may be created based on the group of physical devices. In some cases, an automated analysis tool may identify the group of devices. In other cases, a user may manually identify the devices and their connections.
  • In many embodiments, the decision whether to consolidate in block 412 may be made by a user with a user interface. In some embodiments, the decision to consolidate may be automatically determined.
  • An example of the consolidation of a group of connected devices into a new virtual object may be the consolidation of the storage area network 110 in example 100 to a virtual high availability SAN 136.
  • The consolidation of a group of connected objects into a new virtual object may remove a level of complexity that may be desired in the physical version but not desired in the virtual version. For example, a complex system of a load balancing database service 112 may be desired when the SQL servers 130 and 132 are older, slower hardware platforms that respond to more requests than a single server may handle. In a virtual environment, the load balanced SQL server 138 may operate on a much faster, higher capacity hardware platform where the performance is dramatically better. The level of complexity for a load balancing server 128 and the connections between the load balancing server 128 and the SQL servers 130 and 132 may be removed in the virtual version.
  • For each connection in block 416, an optimization may be performed as well. In many physical connections, devices may be connected by two or more intermediate network devices or other complexities. By optimizing the virtual connections between devices, such complexities may be removed and thus the virtual connections may be more streamlined and may have improved performance.
  • The connected devices may be identified in block 418. When the connected devices are identified in block 418, the connections between the devices may also be identified. For example, a the connection between the gateway server 106 and the web server 107 in example 100 consisted of a connection between the gateway server 106 and the network router 114 and a connection between the network router 114 and the web server 107.
  • If the connections are to be consolidated in block 420, a new connection based on the consolidated connections may be created in block 422. In the example above, the connection between the gateway server 106 and the web server 107 was consolidated into the virtual connection 142.
  • The optimization process may end in block 424.
  • In many embodiments, the optimization process may result in a definition of a group of virtual devices and virtual connections between the devices. The connected group of virtual devices may be based on the connected group of physical devices. In some cases, the connected group of virtual devices may correspond very highly with the connected group of physical devices. In other cases where large amounts of optimization may be performed, the connected group of virtual devices may be a highly simplified form of the physical devices.
  • In some embodiments, an optimization procedure may create two or more virtual devices or connections that may represent a single physical device or connection. For example, a physical server device may have several applications or perform several functions. In an ‘optimized’ virtual version of the physical server, several virtual devices may be created with each virtual device performing one of the functions of the physical device.
  • After defining the characteristics of the physical devices and connections in embodiment 300, any changes to the physical devices and connections may be made through an optimization process in embodiment 400. This may result in a definition of a virtual group of connected devices. In embodiment 500, the virtual devices and connections may be created and executed.
  • FIG. 5 is a flowchart illustration of an embodiment 500 showing a method for creating a group of connected virtual devices that may represent a group of connected physical devices.
  • Other embodiments may use different sequencing, additional or fewer steps, and different nomenclature or terminology to accomplish similar functions. In some embodiments, various operations or set of operations may be performed in parallel with other operations, either in a synchronous or asynchronous manner. The steps selected here were chosen to illustrate some principles of operations in a simplified form.
  • Embodiment 500 may illustrate how a definition of a connected group of physical devices may be used to create a virtual representation of the group. For each device in block 502, a corresponding virtual device may be created in block 504 and data from the corresponding physical device may be copied to the virtual device in block 506.
  • Similarly, for each connection in block 508, a virtual connection may be created in block 510, and various filters and protocols may be applied to the connection in block 512. When the devices and connections are complete, the system may be operated in block 514.
  • When a virtual version of a physical device is created, some embodiments may communicate with the physical device and replicate various characteristics of the physical device within the virtual device. Also, various software components, settings, and data may be copied, replicated, or transferred to the virtual device.
  • In cases where an optimization or configuration change is implemented in a virtual version of a physical device or group of devices, the virtual device may contain components or functionality from several physical devices. In such cases, the data, software, and other components of two or more physical devices may be transferred to the corresponding virtual device.
  • In many cases where such an optimization may be performed, a template for an optimized version of a group of connected physical devices may be used to create a new virtual object and identify which components from different physical devices may be implemented in the virtual device.
  • The foregoing description of the subject matter has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the subject matter to the precise form disclosed, and other modifications and variations may be possible in light of the above teachings. The embodiment was chosen and described in order to best explain the principles of the invention and its practical application to thereby enable others skilled in the art to best utilize the invention in various embodiments and various modifications as are suited to the particular use contemplated. It is intended that the appended claims be construed to include other alternative embodiments except insofar as limited by the prior art.

Claims (20)

What is claimed is:
1. A method comprising:
optimizing an arrangement of one or more devices and one or more physical connection paths between the one or more devices for virtualization;
creating one or more virtual devices to represent the one or more devices based on collected device data about the one or more devices;
creating one or more virtual connections to represent the one or more physical connection paths based on collected connection data about the one or more physical connection paths;
forming a group of virtual devices from the created one or more virtual devices and the created one or more virtual connections; and
optimizing the group of virtual devices in accordance with one or more optimization templates for operation in a virtual environment.
2. The method of claim 1, further comprising prior to optimizing the arrangement for virtualization:
collecting the collected device data about the one or more devices; and
collecting the collected connection data about the one or more physical connection paths.
3. The method of claim 2, wherein collecting the collected device data and collecting the collected connection data comprising crawling a portion of a network.
4. The method of claim 2, further comprising determining a device function for each of the one more devices from the collected device data.
5. The method of claim 2, wherein collecting the collected connection data comprises collecting one or more of: performance parameters, protocol parameters, and protocol parameters, for each of the physical connection paths.
6. The method of claim 1, wherein the one or more devices comprise a plurality of devices, and wherein creating one or more virtual devices comprises consolidating at least two of the plurality of devices into a single virtual device.
7. The method of claim 6, wherein at least two of the plurality of devices are configured in a load balancing arrangement.
8. The method of claim 1, wherein the one or more physical connection paths comprise a plurality of physical connection paths, and wherein creating one or more virtual connections comprises consolidating at least two of the plurality of physical connection paths into a single virtual connection.
9. The method of claim 1, further comprising instrumenting one of said one or more devices with instrumentation to identify other of the one or more devices and to identify the one or more physical connection paths.
10. A computer program product for implementing a method for virtualizing a group of devices, the computer program product comprising one or more computer storage devices having stored thereon computer-executable instructions that, when executed, at processor cause the computer system to perform the method, including the following:
optimize an arrangement of one or more devices and one or more physical connection paths between the one or more devices for virtualization;
create one or more virtual devices to represent the one or more devices based on collected device data about the one or more devices;
create one or more virtual connections to represent the one or more physical connection paths based on collected connection data about the one or more physical connection paths;
form a group of virtual devices from the created one or more virtual devices and the created one or more virtual connections; and
optimize the group of virtual devices in accordance with one or more optimization templates for operation in a virtual environment.
11. The computer program product of claim 10, further comprising computer-executable instructions that, when executed, cause the computer system to determine a device function for each of the one more devices from the collected device data; and
wherein computer-executable instructions that, when executed, cause the computer system to create one or more virtual devices based on the determined device function for each of the one or more devices.
12. The computer program product of claim 10, wherein the one or more devices comprise a plurality of devices, and wherein computer-executable instructions that, when executed, cause the computer system to create one or more virtual devices comprise computer-executable instructions that, when executed, cause the computer system to consolidate at least two of the plurality of devices into a single virtual device.
13. The computer program product of claim 12, wherein at least two of the plurality of devices are configured in a load balancing arrangement.
14. The computer program product of claim 10, wherein the one or more physical connection paths comprise a plurality of physical connection paths, and wherein computer-executable instructions that, when executed, cause the computer system to create one or more virtual connections comprise computer-executable instructions that, when executed, cause the computer system to consolidating at least two of the plurality of physical connection paths into a single virtual connection.
15. The computer program product of claim 10, further comprising computer-executable instructions that, when executed, cause the computer system to instrument one of said one or more devices with instrumentation to identify other of the one or more devices and to identify the one or more physical connection paths.
16. A computer system, the computer system comprising:
one or more processors;
system memory; and
one or more computer storage devices having stored thereon computer-executable instructions representing a device optimizer, the device optimizer configured to:
optimizing an arrangement of one or more devices and one or more physical connection paths between the one or more devices for virtualization;
creating one or more virtual devices to represent the one or more devices based on collected device data about the one or more devices;
creating one or more virtual connections to represent the one or more physical connection paths based on collected connection data about the one or more physical connection paths;
forming a group of virtual devices from the created one or more virtual devices and the created one or more virtual connections; and
optimizing the group of virtual devices in accordance with one or more optimization templates for operation in a virtual environment.
17. The system of claim 16, wherein the device optimizer being configured to optimize an arrangement of one or more devices and one or more physical connection paths comprises the device optimizer being configured to optimize an arrangement of one or more of: a storage server, a web server, a network hub, a gateway server, a load balancing server, a network router, and a network switch for virtualization.
18. The system of claim 16, wherein the one or more devices comprise a plurality of devices, and wherein the device optimizer being configured to create one or more virtual devices comprises the device optimizer being configured to consolidate at least two of the plurality of devices into a single virtual device.
19. The system of claim 16, wherein the one or more physical connection paths comprise a plurality of physical connection paths, and wherein the device optimizer being configured to create one or more virtual connections comprises the device optimizer being configured to consolidate at least two of the plurality of physical connection paths into a single virtual connection.
20. The system of claim 16, further comprising the device optimizer being configured to apply at least one of a protocol or a filter to a virtual connection from among the one or more virtual connections.
US14/616,957 2008-03-17 2015-02-09 Virtualization of groups of devices Abandoned US20150172106A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/616,957 US20150172106A1 (en) 2008-03-17 2015-02-09 Virtualization of groups of devices

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/050,142 US8954551B2 (en) 2008-03-17 2008-03-17 Virtualization of groups of devices
US14/616,957 US20150172106A1 (en) 2008-03-17 2015-02-09 Virtualization of groups of devices

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US12/050,142 Continuation US8954551B2 (en) 2008-03-17 2008-03-17 Virtualization of groups of devices

Publications (1)

Publication Number Publication Date
US20150172106A1 true US20150172106A1 (en) 2015-06-18

Family

ID=41064345

Family Applications (2)

Application Number Title Priority Date Filing Date
US12/050,142 Active 2030-11-15 US8954551B2 (en) 2008-03-17 2008-03-17 Virtualization of groups of devices
US14/616,957 Abandoned US20150172106A1 (en) 2008-03-17 2015-02-09 Virtualization of groups of devices

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US12/050,142 Active 2030-11-15 US8954551B2 (en) 2008-03-17 2008-03-17 Virtualization of groups of devices

Country Status (1)

Country Link
US (2) US8954551B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150149611A1 (en) * 2013-11-25 2015-05-28 Amazon Technologies, Inc. Centralized Resource Usage Visualization Service For Large-Scale Network Topologies

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100223364A1 (en) * 2009-02-27 2010-09-02 Yottaa Inc System and method for network traffic management and load balancing
WO2011134526A1 (en) * 2010-04-30 2011-11-03 Telefonaktiebolaget L M Ericsson (Publ) Network management in a communications network
US20110276673A1 (en) * 2010-05-10 2011-11-10 Canon Kabushiki Kaisha Virtually extending the functionality of a network device
US8667574B2 (en) 2010-05-10 2014-03-04 Canon Kabushiki Kaisha Assigning a network address for a virtual device to virtually extend the functionality of a network device
US8806481B2 (en) * 2010-08-31 2014-08-12 Hewlett-Packard Development Company, L.P. Providing temporary exclusive hardware access to virtual machine while performing user authentication
US8595344B2 (en) * 2010-10-22 2013-11-26 Sap Ag Integration middleware virtualization
US8621057B2 (en) * 2011-03-07 2013-12-31 International Business Machines Corporation Establishing relationships among elements in a computing system
US8732665B2 (en) * 2011-06-28 2014-05-20 Microsoft Corporation Deploying environments for testing by providing instantaneous availability of prebuilt environments
US8856339B2 (en) * 2012-04-04 2014-10-07 Cisco Technology, Inc. Automatically scaled network overlay with heuristic monitoring in a hybrid cloud environment
US9697172B1 (en) * 2012-12-28 2017-07-04 Juniper Networks, Inc. Virtual network optimizing a physical network
JP5724046B1 (en) * 2013-06-19 2015-05-27 ソフトバンクテレコム株式会社 Communication system and program
CA2944012A1 (en) * 2014-04-11 2015-10-15 Diro, Inc. Dynamic contextual device networks
US10628186B2 (en) * 2014-09-08 2020-04-21 Wirepath Home Systems, Llc Method for electronic device virtualization and management
US10949048B2 (en) * 2015-07-08 2021-03-16 Microsoft Technology Licensing, Llc Inference-based visual map of organizational structure and resource usage
US10404832B2 (en) * 2015-08-31 2019-09-03 Ayla Networks, Inc. Management of gateway device using virtual gateway device
US10484512B2 (en) 2015-08-31 2019-11-19 Ayla Networks, Inc. Management of multi-radio gateway device using virtual gateway device
US20180077242A1 (en) * 2016-09-09 2018-03-15 Andrew Henry Carl Network communication technologies for laboratory instruments
US10564993B2 (en) * 2017-11-07 2020-02-18 General Electric Company Contextual digital twin runtime environment
CN114422566B (en) * 2021-12-29 2024-10-01 Oppo广东移动通信有限公司 Multi-device connection method, device, system, device and storage medium

Citations (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5497460A (en) * 1994-06-20 1996-03-05 International Business Machines Corporation System and method for determining network connectivity
US5684959A (en) * 1995-04-19 1997-11-04 Hewlett-Packard Company Method for determining topology of a network
US5751967A (en) * 1994-07-25 1998-05-12 Bay Networks Group, Inc. Method and apparatus for automatically configuring a network device to support a virtual network
US5802286A (en) * 1995-05-22 1998-09-01 Bay Networks, Inc. Method and apparatus for configuring a virtual network
US5854903A (en) * 1995-11-07 1998-12-29 Lucent Technologies Inc. Optimization method for routing and logical network design in multi-service networks
US6085238A (en) * 1996-04-23 2000-07-04 Matsushita Electric Works, Ltd. Virtual LAN system
US20020112074A1 (en) * 2000-12-07 2002-08-15 Lau Chi Leung Determination of connection links to configure a virtual private network
US6442615B1 (en) * 1997-10-23 2002-08-27 Telefonaktiebolaget Lm Ericsson (Publ) System for traffic data evaluation of real network with dynamic routing utilizing virtual network modelling
US20020156917A1 (en) * 2001-01-11 2002-10-24 Geosign Corporation Method for providing an attribute bounded network of computers
US20030110253A1 (en) * 2001-12-12 2003-06-12 Relicore, Inc. Method and apparatus for managing components in an IT system
US6662221B1 (en) * 1999-04-12 2003-12-09 Lucent Technologies Inc. Integrated network and service management with automated flow through configuration and provisioning of virtual private networks
US6701358B1 (en) * 1999-04-02 2004-03-02 Nortel Networks Limited Bulk configuring a virtual private network
US20050120160A1 (en) * 2003-08-20 2005-06-02 Jerry Plouffe System and method for managing virtual servers
US20050192999A1 (en) * 2003-11-21 2005-09-01 Cook Scott J. System and method of virtualizing physical locations
US20050198248A1 (en) * 2004-02-17 2005-09-08 Fujitsu Limited System layout design program, system layout design apparatus, and system layout design method for automatically configuring systems
US20050220080A1 (en) * 2004-04-01 2005-10-06 Nokia Corporation System, method, computer program product, and business method for device group management using virtual device domain
US6970919B1 (en) * 1999-01-11 2005-11-29 Fujitsu Limited Method and system for network management
US20050270986A1 (en) * 2004-06-02 2005-12-08 Fujitsu Limited Apparatus and method for topology discovery among network devices
US20060112251A1 (en) * 2003-11-26 2006-05-25 Veritas Operating Corporation Host-based virtualization optimizations in storage environments employing off-host storage virtualization
US20060265489A1 (en) * 2005-02-01 2006-11-23 Moore James F Disaster management using an enhanced syndication platform
US20070041355A1 (en) * 2005-08-19 2007-02-22 Opnet Technologies, Inc. Network physical connection inference for IP tunnels
US20070171921A1 (en) * 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and systems for interacting, via a hypermedium page, with a virtual machine executing in a terminal services session
US20070300221A1 (en) * 2006-06-23 2007-12-27 Sentillion, Inc. Accessing a Printer Resource Provided by a Real Computer From Within a Virtual Machine
US20080123536A1 (en) * 2006-11-28 2008-05-29 Sun Microsystems, Inc. Virtual network testing and deployment using network stack instances and containers
US20080172445A1 (en) * 2005-07-09 2008-07-17 Netbarrage Method and System For Increasing Popularity of Content Items Shared Over Peer-to-Peer Networks
US7443857B1 (en) * 2003-07-09 2008-10-28 Cisco Technology Inc. Connection routing based on link utilization
US20080310421A1 (en) * 2007-06-12 2008-12-18 Teisberg Robert R Managing Connectivity in a Virtual Network
US20090031222A1 (en) * 2006-03-17 2009-01-29 Fujitsu Limited Network design processing device, network design processing method and network design processing program
US20100020722A1 (en) * 2006-12-20 2010-01-28 Farkas Janos Method for Discovering the Physical Topology Of A Telecommunications Network
US20120240116A1 (en) * 2005-01-19 2012-09-20 Leung Hin L Performance In A Virtualization Architecture With A Processor Abstraction Layer
US20120269089A1 (en) * 2006-08-22 2012-10-25 Morrill Robert J System and method for monitoring interlayer devices and optimizing network performance
US20140344462A1 (en) * 2005-08-15 2014-11-20 Toutvirtual, Inc. Virtual systems management

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5274643A (en) * 1992-12-11 1993-12-28 Stratacom, Inc. Method for optimizing a network having virtual circuit routing over virtual paths
US5564371A (en) * 1994-05-06 1996-10-15 Foster Miller, Inc. Upper bundle steam generator cleaning system and method
US6898705B2 (en) * 2001-05-31 2005-05-24 International Business Machines Corporation Automatic appliance server re-provision/re-purposing method
US7213065B2 (en) * 2001-11-08 2007-05-01 Racemi, Inc. System and method for dynamic server allocation and provisioning
US20030212716A1 (en) * 2002-05-09 2003-11-13 Doug Steele System and method for analyzing data center enerprise information via backup images
US20050198235A1 (en) * 2004-01-29 2005-09-08 Arvind Kumar Server configuration and management
US7769720B2 (en) * 2004-06-16 2010-08-03 Hewlett-Packard Development Company, L.P. Systems and methods for migrating a server from one physical platform to a different physical platform
CA2486103A1 (en) * 2004-10-26 2006-04-26 Platespin Ltd. System and method for autonomic optimization of physical and virtual resource use in a data center
JP4733399B2 (en) * 2005-01-28 2011-07-27 株式会社日立製作所 Computer system, computer, storage device and management terminal
US8583770B2 (en) * 2005-02-16 2013-11-12 Red Hat, Inc. System and method for creating and managing virtual services
US7574491B2 (en) * 2005-07-29 2009-08-11 Scalent Systems Virtual data center for network resource management
US9189640B2 (en) * 2005-10-31 2015-11-17 Hewlett-Packard Development Company, L.P. Methods and apparatus for re-provisioning a server of a data center
JP4715920B2 (en) * 2006-03-29 2011-07-06 富士通株式会社 Setting method and management apparatus
US8909758B2 (en) * 2006-05-02 2014-12-09 Cisco Technology, Inc. Physical server discovery and correlation

Patent Citations (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5497460A (en) * 1994-06-20 1996-03-05 International Business Machines Corporation System and method for determining network connectivity
US5751967A (en) * 1994-07-25 1998-05-12 Bay Networks Group, Inc. Method and apparatus for automatically configuring a network device to support a virtual network
US5684959A (en) * 1995-04-19 1997-11-04 Hewlett-Packard Company Method for determining topology of a network
US5802286A (en) * 1995-05-22 1998-09-01 Bay Networks, Inc. Method and apparatus for configuring a virtual network
US5854903A (en) * 1995-11-07 1998-12-29 Lucent Technologies Inc. Optimization method for routing and logical network design in multi-service networks
US6085238A (en) * 1996-04-23 2000-07-04 Matsushita Electric Works, Ltd. Virtual LAN system
US6442615B1 (en) * 1997-10-23 2002-08-27 Telefonaktiebolaget Lm Ericsson (Publ) System for traffic data evaluation of real network with dynamic routing utilizing virtual network modelling
US6970919B1 (en) * 1999-01-11 2005-11-29 Fujitsu Limited Method and system for network management
US6701358B1 (en) * 1999-04-02 2004-03-02 Nortel Networks Limited Bulk configuring a virtual private network
US6662221B1 (en) * 1999-04-12 2003-12-09 Lucent Technologies Inc. Integrated network and service management with automated flow through configuration and provisioning of virtual private networks
US20020112074A1 (en) * 2000-12-07 2002-08-15 Lau Chi Leung Determination of connection links to configure a virtual private network
US20020156917A1 (en) * 2001-01-11 2002-10-24 Geosign Corporation Method for providing an attribute bounded network of computers
US20030110253A1 (en) * 2001-12-12 2003-06-12 Relicore, Inc. Method and apparatus for managing components in an IT system
US7443857B1 (en) * 2003-07-09 2008-10-28 Cisco Technology Inc. Connection routing based on link utilization
US20050120160A1 (en) * 2003-08-20 2005-06-02 Jerry Plouffe System and method for managing virtual servers
US20050192999A1 (en) * 2003-11-21 2005-09-01 Cook Scott J. System and method of virtualizing physical locations
US20060112251A1 (en) * 2003-11-26 2006-05-25 Veritas Operating Corporation Host-based virtualization optimizations in storage environments employing off-host storage virtualization
US20050198248A1 (en) * 2004-02-17 2005-09-08 Fujitsu Limited System layout design program, system layout design apparatus, and system layout design method for automatically configuring systems
US20050220080A1 (en) * 2004-04-01 2005-10-06 Nokia Corporation System, method, computer program product, and business method for device group management using virtual device domain
US20050270986A1 (en) * 2004-06-02 2005-12-08 Fujitsu Limited Apparatus and method for topology discovery among network devices
US20120240116A1 (en) * 2005-01-19 2012-09-20 Leung Hin L Performance In A Virtualization Architecture With A Processor Abstraction Layer
US20060265489A1 (en) * 2005-02-01 2006-11-23 Moore James F Disaster management using an enhanced syndication platform
US20080172445A1 (en) * 2005-07-09 2008-07-17 Netbarrage Method and System For Increasing Popularity of Content Items Shared Over Peer-to-Peer Networks
US20140344462A1 (en) * 2005-08-15 2014-11-20 Toutvirtual, Inc. Virtual systems management
US20070041355A1 (en) * 2005-08-19 2007-02-22 Opnet Technologies, Inc. Network physical connection inference for IP tunnels
US20070171921A1 (en) * 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and systems for interacting, via a hypermedium page, with a virtual machine executing in a terminal services session
US20090031222A1 (en) * 2006-03-17 2009-01-29 Fujitsu Limited Network design processing device, network design processing method and network design processing program
US20070300221A1 (en) * 2006-06-23 2007-12-27 Sentillion, Inc. Accessing a Printer Resource Provided by a Real Computer From Within a Virtual Machine
US20120269089A1 (en) * 2006-08-22 2012-10-25 Morrill Robert J System and method for monitoring interlayer devices and optimizing network performance
US20080123536A1 (en) * 2006-11-28 2008-05-29 Sun Microsystems, Inc. Virtual network testing and deployment using network stack instances and containers
US20100020722A1 (en) * 2006-12-20 2010-01-28 Farkas Janos Method for Discovering the Physical Topology Of A Telecommunications Network
US20080310421A1 (en) * 2007-06-12 2008-12-18 Teisberg Robert R Managing Connectivity in a Virtual Network

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150149611A1 (en) * 2013-11-25 2015-05-28 Amazon Technologies, Inc. Centralized Resource Usage Visualization Service For Large-Scale Network Topologies
US9674042B2 (en) * 2013-11-25 2017-06-06 Amazon Technologies, Inc. Centralized resource usage visualization service for large-scale network topologies
US20170272331A1 (en) * 2013-11-25 2017-09-21 Amazon Technologies, Inc. Centralized resource usage visualization service for large-scale network topologies
US10505814B2 (en) * 2013-11-25 2019-12-10 Amazon Technologies, Inc. Centralized resource usage visualization service for large-scale network topologies
US10855545B2 (en) * 2013-11-25 2020-12-01 Amazon Technologies, Inc. Centralized resource usage visualization service for large-scale network topologies

Also Published As

Publication number Publication date
US20090235174A1 (en) 2009-09-17
US8954551B2 (en) 2015-02-10

Similar Documents

Publication Publication Date Title
US8954551B2 (en) Virtualization of groups of devices
US10771344B2 (en) Discovery of hyper-converged infrastructure devices
US20200351333A1 (en) Architecture for managing i/o and storage for a virtualization environment using executable containers and virtual machines
US11734123B2 (en) Method and system to discover and manage distributed applications in virtualization environments
US8850423B2 (en) Assisting server migration
US8983822B2 (en) Operating a storage server on a virtual machine
EP3915020A1 (en) Grammar-based searching of a configuration management database
US20210096981A1 (en) Identifying differences in resource usage across different versions of a software application
EP3623959B1 (en) Streaming parser for structured data-interchange files
US20140173065A1 (en) Automated configuration planning
CN111552540B (en) Resource synchronization method based on VMware cloud platform and super-fusion cloud platform
US10897393B1 (en) Systems and methods for network management
EP3651015B1 (en) Efficient bundling and delivery of client-side scripts
US20240265115A1 (en) Architecture of a multi-cloud inspector for any compute type
WO2021041039A1 (en) Computational instance batching and automation orchestration based on resource usage and availability
US20210124690A1 (en) Memory-efficient virtual document object model for structured data
US11263195B2 (en) Text-based search of tree-structured tables
EP4183122A1 (en) Synchronization of a shared service configuration across computational instances
US20230031152A1 (en) Knowledgebase Development Through Mining of Messaging Transactions
US11232086B2 (en) Preventing and recovering from duplication in a configuration management database
WO2021050111A1 (en) Replication configuration for multiple heterogeneous data stores
US11582317B1 (en) Payload recording and comparison techniques for discovery
US12001502B2 (en) Common fragment caching for web documents
US20240231919A1 (en) Efficient Cloud-Based Discovery of Computing Resources
US11388235B1 (en) Decoupling volume deployment requirements and code implementation

Legal Events

Date Code Title Description
STPP Information on status: patent application and granting procedure in general

Free format text: FINAL REJECTION MAILED

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION