[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

US8468242B2 - Detecting the health of an operating system in virtualized and non-virtualized environments - Google Patents

Detecting the health of an operating system in virtualized and non-virtualized environments Download PDF

Info

Publication number
US8468242B2
US8468242B2 US13/462,079 US201213462079A US8468242B2 US 8468242 B2 US8468242 B2 US 8468242B2 US 201213462079 A US201213462079 A US 201213462079A US 8468242 B2 US8468242 B2 US 8468242B2
Authority
US
United States
Prior art keywords
computer
controller
remote management
management controller
network interface
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.)
Active
Application number
US13/462,079
Other versions
US20120215917A1 (en
Inventor
Venkatesh Ramamurthy
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.)
American Megatrends International LLC
Original Assignee
American Megatrends Inc USA
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 American Megatrends Inc USA filed Critical American Megatrends Inc USA
Priority to US13/462,079 priority Critical patent/US8468242B2/en
Publication of US20120215917A1 publication Critical patent/US20120215917A1/en
Priority to US13/919,304 priority patent/US8819228B2/en
Application granted granted Critical
Publication of US8468242B2 publication Critical patent/US8468242B2/en
Assigned to AMERICAN MEGATRENDS INTERNATIONAL, LLC reassignment AMERICAN MEGATRENDS INTERNATIONAL, LLC ENTITY CONVERSION Assignors: AMERICAN MEGATRENDS, INC.
Assigned to MIDCAP FINANCIAL TRUST, AS COLLATERAL AGENT reassignment MIDCAP FINANCIAL TRUST, AS COLLATERAL AGENT SECURITY INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: AMERICAN MEGATRENDS INTERNATIONAL, LLC
Assigned to AMERICAN MEGATRENDS INTERNATIONAL, LLC reassignment AMERICAN MEGATRENDS INTERNATIONAL, LLC RELEASE BY SECURED PARTY (SEE DOCUMENT FOR DETAILS). Assignors: MIDCAP FINANCIAL TRUST
Assigned to BAIN CAPITAL CREDIT, LP, AS ADMINISTRATIVE AGENT AND COLLATERAL AGENT reassignment BAIN CAPITAL CREDIT, LP, AS ADMINISTRATIVE AGENT AND COLLATERAL AGENT PATENT SECURITY AGREEMENT Assignors: AMERICAN MEGATRENDS INTERNATIONAL, LLC
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0712Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a virtual computing platform, e.g. logically partitioned systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs

Definitions

  • Remote server management devices allow various aspects of the operation of a server computer to be viewed and controlled from a management application executing on a remotely located computer system. For instance, certain types of remote management devices allow the video output of a managed server computer to be viewed at a remote location. Moreover, these devices typically allow aspects of the operation of the managed server computer to be controlled from the remote location. For instance, a remote management device may be utilized to remotely troubleshoot the operation of a managed server computer and to restart a failed server computer.
  • Some server management devices provide functionality for detecting the operational health of an operating system executing on the managed server computer. For instance, some server management devices are capable of determining whether the operating system executing on the managed server computer has crashed. Typically, this is accomplished by continually decrementing a hardware watchdog timer register in the server management device, and executing a watchdog timer driver on the host operating system that periodically resets the hardware register. If the hardware register is not reset, this means that the operating system has crashed and, as a result, the server management device performs a reset of the managed server computer.
  • watchdog timer register and watchdog timer driver does allow a server management device to detect the health of a host operating system
  • this solution requires the creation and installation of a custom driver for each operating system with which the server management device is utilized.
  • these types of watchdog timer-based solutions are not capable of detecting the health of each of the guest operating systems independently of the health of the host operating system.
  • technologies are provided for detecting the operational health of an operating system executing on a managed host computer.
  • the operational health of an operating system can be determined by a remote management controller without the use of a hardware watchdog timer register or a watchdog timer driver.
  • the implementations presented herein allow a remote management controller to determine the operational health of multiple guest operating systems executing on a managed host computer in a virtualized environment.
  • a remote management controller for use in conjunction with a managed host computer.
  • the remote management controller may be embedded on a baseboard of the managed host computer or may be installed as a daughtercard or other type of add-in hardware card.
  • the remote management controller provides functionality for managing the operation of the managed host computer, such as console and input redirection, remote power control, monitoring of environmental sensors within the managed host computer, mass storage device redirection for remote operating system install and upgrade, and other functions.
  • the remote management controller described herein also provides a mechanism for detecting the health of a host operating system executing on the managed host computer. To accomplish this, the remote management controller exposes a virtual network interface controller to the managed host computer.
  • the virtual network interface controller is a virtual USB network interface controller that does not require a custom driver or other software for use by the host operating system executing on the managed server computer.
  • the remote management controller is further operative to provide a network address for use by the virtual network interface controller. Once the remote management controller has assigned a network address, a standard network connection is created between the remote management controller and the host operating system.
  • the remote management controller is operative to periodically transmit a command to the host operating system.
  • the command is an Internet control message protocol (“ICMP) echo request. If the host operating system replies to the command, such as with an ICMP echo reply, the host operating system is functioning properly. If no reply is received from the host operating system, however, this indicates that the host operating system is not functioning.
  • ICMP Internet control message protocol
  • the remote management controller may take corrective action to restore the operation of the managed host computer. For instance, in one implementation, the remote management controller is operative to capture a screen display generated by the managed host computer and to cause the host computer to be restarted. The capture of the screen display may be transmitted to a system administrator along with a notification of the failure. Other types of corrective action may also be taken by the remote management controller including, but not limited to, executing scripts or other programs, transmitting other types of notifications to a system administrator, or the performance of other functions.
  • the remote management controller is also operative to determine the operational health of multiple guest operating systems executing in a virtualized environment on the managed host computer.
  • virtualization software is utilized to execute one or more guest operating systems on a single host computer.
  • the virtualization software exposes virtual hardware to each guest operating system, including a virtual network interface controller. In this manner, each guest operating system is executed against its own virtual computer hardware.
  • the virtual network interface controller exposed by the remote management controller to the managed host computer is bridged to the virtual network interface controllers exposed by the virtualization software to each guest operating system. In this manner, a network connection is established between the remote management controller and each guest operating system executing on the managed server computer.
  • the remote management controller is operative to assign a network address to each virtual network interface controller exposed to a guest operating system.
  • the remote management controller is operative to periodically transmit a command, such as an ICMP echo request, to each guest operating system. If a guest operating system replies, such as with an ICMP echo reply, the guest operating system is functioning properly. If no reply is received from guest operating system, however, this indicates that the guest operating system is not functioning. If the remote management controller does not receive a reply to the command from a guest operating system, the remote management controller may take corrective action to restore the operation of the guest operating system. For instance, the remote management controller may cause the guest operating system to be restarted or take another type of corrective action.
  • a command such as an ICMP echo request
  • the subject matter described herein may also be implemented as an apparatus, a computer process, a computing system, or as an article of manufacture such as a computer program product or computer-readable medium.
  • the computer program product may be a computer storage media readable by a computer system and encoding a computer program of instructions for executing a computer process.
  • the computer program product may also be a propagated signal on a carrier readable by a computing system and encoding a computer program of instructions for executing a computer process.
  • FIG. 1 is a system diagram illustrating aspects of a remote management controller, a managed host computer, and a management client computer that together make up a management system disclosed in the various embodiments presented herein;
  • FIG. 2 is a flow diagram showing an illustrative process for enabling communication with an in-band management application over an out-of-band communications channel according to one implementation presented herein;
  • FIG. 3 is a flow diagram showing an illustrative process for determining the health of a host operating system in a non-virtualized environment according to one implementation presented herein;
  • FIG. 4 is a system diagram illustrating additional aspects of a managed host computer in a virtualized environment that forms an operating environment for one implementation presented herein;
  • FIG. 5 is a flow diagram showing an illustrative process for determining the health of a host operating system and multiple guest operating systems executing in a virtualized environment according to one implementation presented herein;
  • FIG. 6 is a computer architecture diagram that illustrates a computer architecture that may be utilized by the various computing systems described herein.
  • program modules include routines, programs, components, data structures, and other types of structures that perform particular tasks or implement particular abstract data types.
  • program modules may be practiced with other computer system configurations, including hand-held devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, minicomputers, mainframe computers, and the like.
  • the embodiments described herein may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network.
  • program modules may be located in both local and remote memory storage devices.
  • a remote management controller 114 is described herein that operates in conjunction with a managed host computer 102 .
  • the remote management controller 114 may be integrated with the system board of the managed host computer 102 or may be a daughtercard or other type of add-in card that is installed into the managed host computer 102 .
  • the remote management controller 114 may be configured as an external device to the managed host computer 102 .
  • the remote management controller 114 provides functionality for remotely managing the operation of the managed host computer 102 .
  • the remote management controller 113 includes a physical network interface controller (“NIC”) for establishing a connection to the network 130 .
  • NIC physical network interface controller
  • a remotely located management client computer 104 can establish a connection to the remote management controller 116 .
  • the management client computer 104 includes an operating system 132 and a management client application 136 for communicating with and controlling the operation of the remote management controller 114 .
  • the remote management controller 114 provides a world wide web (“WW” or “web”) interface through which a web browser application 134 executing on the management client computer 104 may access the functionality provided by the remote management controller 114 .
  • WWW world wide web
  • a remotely located user of the management client computer 104 can access information regarding the health and operation of the managed host computer 102 .
  • the remote management controller 114 monitors and manages environmental sensors within the managed host computer 102 .
  • the remote management controller 114 also maintains appropriate connections to the managed host computer 102 to allow the remote management controller 114 to control the power status of the managed host computer 102 .
  • a remotely located user can utilize the management client 136 or the web browser 134 to power the managed host computer 102 on or off.
  • the remote management controller 114 may receive power directly from the managed host computer 102 , from an external power source (to power the operation of the remote management controller 114 when the computer 102 is powered off), or both. These power sources are not illustrated in FIG. 1 .
  • the remote management controller 114 is also operative to redirect the text or video graphics output of the managed host computer 102 to the management client 136 or the web browser 134 .
  • the remote management controller 114 may receive video display data generated by the managed host computer 102 as input, compress the video display data, and transmit the compressed data to the management client computer 104 . The data is decompressed at the management client computer 104 and displayed. Additionally, keyboard and mouse input made at the management client computer 104 may be transmitted to the remote management controller 114 and provided to the managed host computer 102 as if the input were generated locally. In this manner, a remotely located user of the management client computer 104 can control the operation of the managed host computer 102 as if they were proximately located.
  • USB HIDs standard USB human interaction devices
  • the remote management controller 114 may emulate one or more standard USB human interaction devices (“USB HIDs”), such as a keyboard and mouse, in order to provide remotely generated keyboard and mouse data to the managed host computer 102 . Because no physical keyboard or mouse is actually provided by the remote management controller 114 , the USB HID 120 is referred to as being “virtual.”
  • the remote management controller 114 may provide mass storage redirection facilities.
  • the remote management controller 114 may emulate a USB mass storage device, such as a CD-ROM or DVD-ROM device. From the perspective of the managed host computer 102 , a USB mass storage device is physically connected. However, utilizing functionality provided by the remote management controller 114 , the emulated mass storage device may be redirected to a physical mass storage device connected to the management client computer 104 . In this manner, physical media present at the management client computer 104 appears to be physically present at the managed host computer 102 . This functionality may be utilized to perform a remote operating system installation, repair, or upgrade, or to install other types of software on the managed host computer 102 .
  • the functionality described herein as being performed by the remote management controller 114 is implemented by way of a firmware 126 stored in a memory 124 of the remote management controller 114 .
  • the firmware 126 is executed by a central processing unit 122 on the remote management controller 114 .
  • the architecture of the remote management controller 114 shown in FIG. 1 has been simplified and that more or fewer hardware components may be utilized to provide the functionality described herein.
  • the functionality described herein as being provided by the remote management controller 114 is also illustrative and the remote management controller 114 may provide more or fewer functions than those described herein.
  • Out-of-band management is essential for determining the health of the managed host computer 102 prior to an operating system 106 being booted by the managed host computer 102 or when the operating system 106 has crashed. Out-of-band management is also useful for configuring the operation of a basic input/output system (“BIOS”) of the managed host computer 102 .
  • BIOS basic input/output system
  • the managed host computer 102 may also be managed through an “in-band” communications channel.
  • the managed host computer 102 includes a physical NIC 128 through which a management client application 136 may establish a connection with the managed host computer 102 .
  • communications may be made with one or more in-band management applications 108 executing on the operating system 106 .
  • the in-band management applications 108 may include such management applications as the Systems Management Architecture for Server Hardware (“SMASH”) and Web Services Management (“WS-MAN”). Other in-band management applications may be utilized in a similar manner.
  • SMASH Systems Management Architecture for Server Hardware
  • WS-MAN Web Services Management
  • the remote management controller 114 includes a mechanism by which access may be had to the in-band management applications 108 through an out-of-band communications channel.
  • the remote management controller 114 is operative to expose a virtual network interface controller 118 to the managed host computer 102 . From the perspective of the managed host computer 102 , it appears as if a physical network interface controller 118 has been connected. The functionality of the network interface controller 118 is, however, provided by the remote management controller 114 and it is therefore described herein as being “virtual.”
  • the virtual network interface controller 118 comprises a standard driverless USB Ethernet adapter. Because the virtual NIC 118 is a standard USB NIC in this implementation, no custom drivers need to be loaded by the operating system 106 in order to utilize the functionality provided thereby.
  • the remote management controller 114 appears to the operating system 106 as a standard networking device and, therefore, a standard TCP/IP stack 112 and standard networking commands can be utilized to communicate with the remote management controller 114 .
  • the virtual USB NIC 118 exposed by the remote management controller 114 provides an in-band communications channel through which the remote management controller 114 can communicate with the in-band management applications 108 and through which the operating system 106 and the in-band management applications 108 can communicate with the remote management controller 114 .
  • the operating system 106 and the in-band management applications 108 also have access to the out-of-band communications network established with the management client computer 104 .
  • the remote management controller 114 may be further equipped with a dynamic host configuration protocol (“DHCP”) server.
  • DHCP dynamic host configuration protocol
  • the operating system 106 can request a network address, such as an Internet protocol (“IP”) address 110 , for the virtual USB NIC 118 .
  • IP Internet protocol
  • the DHCP server assigns an appropriate network address to the virtual USB NIC 118 .
  • the DHCP server is not illustrated in FIG. 1 .
  • the DHCP server provided by the firmware 126 of the remote management controller 114 may also provide network addresses to virtual NICs exposed to guest operating systems executing on the managed host computer 102 in a virtualized environment.
  • an illustrative routine 200 will be described in detail illustrating the operation of the remote management controller 114 with respect to providing an out-of-band communications channel for communicating with the in-band management applications 108 executing on the managed host computer 102 .
  • the logical operations of the various implementations presented herein are implemented (1) as a sequence of computer implemented acts or program modules running on a computing system and/or (2) as interconnected machine logic circuits or circuit modules within the computing system. The implementation is a matter of choice dependent on the performance requirements of the computing system on which the embodiments described herein are implemented. Accordingly, the logical operations making up the implementations described herein are referred to variously as operations, structural devices, acts or modules. It will be recognized by one skilled in the art that these operations, structural devices, acts and modules may be implemented in software, in firmware, in special purpose digital logic, and any combination thereof without deviating from the spirit and scope of the present invention as recited within the claims attached hereto.
  • the routine 200 begins at operation 202 , where the remote management controller 114 exposes the virtual USB NIC 118 to the managed host computer 102 .
  • the operating system 106 can configure the virtual USB NIC 118 for use without the use of special drivers or other dynamically linked libraries.
  • the operating system 106 may utilized DHCP to request a network address for the virtual USB NIC 118 .
  • the remote management controller 114 may be equipped with a DHCP server for assigning and appropriate IP address in response to such a request. Once the virtual USB NIC 118 has been assigned an IP address, the virtual USB NIC 118 is ready for communication. This occurs at operation 204 .
  • routine 200 continues to operation 206 , where the managed host computer 102 executes the in-band management applications 108 .
  • the routine 200 then continues to operation 208 , where the remote management controller 114 communicates with the in-band management applications 108 through the in-band communications interface provided by the virtual USB NIC 118 .
  • the management client 136 may also communicate over the out-of-band communications channel with the in-band management applications in a similar manner.
  • the operating system 106 and the in-band management applications 108 may also utilize the in-band communications interface provided by the virtual USB NIC 118 to communicate with the remote management controller 114 .
  • an application executing on the managed host computer 102 may utilize the in-band communications channel provided by the virtual USB NIC 118 to configure the operation of the remote management controller 114 . From operation 208 , the routine 200 continues to operation 210 , where it ends.
  • the routine 300 begins at operation 302 , where the remote management controller 114 transmits a command to the operating system 106 executing on the managed host computer 102 via the network connection established using the virtual USB NIC 118 .
  • the command comprises an ICMP echo request command.
  • the remote management controller 114 determines whether a reply was received to the transmitted command. Where the command is an ICMP echo request command, the reply will take the form of an ICMP echo reply. If a reply is received, the routine 300 branches from operation 304 to operation 304 , where it waits a predetermined period of time before returning to operation 302 and transmitting another command. If a reply is not received, the routine 300 proceeds from operation 304 to operation 308 .
  • the remote management controller 114 takes corrective action to restore the operation of the operating system 106 executing on the managed host computer 102 . For instance, in one implementation, the remote management controller 114 captures the screen display currently being output by the managed host computer 102 . The remote management controller 114 may also transmit the captured data to a system administrator for use in determining the cause of the failure of the managed server computer 102 . This occurs at operation 308 .
  • the remote management controller 114 may also take other types of corrective action, such as executing a script or other type of program to restart the operation of the managed host computer 102 . In this manner, the remote management controller 114 can cause the managed host computer 102 to reset itself and reload the operating system 106 . This occurs at operation 310 . Once the corrective action has been performed, the routine 300 returns to operation 302 , where the processing described above is repeated.
  • a virtualization application 402 executing on the host operation system 106 provides functionality for executing multiple guest operating systems 404 A- 404 C.
  • the virtualization application 402 decouples the execution of each guest operating system 404 A- 404 C from the actual hardware of the managed host computer 102 by exposing virtual hardware to each guest operating system 404 A- 404 C. In this manner, each guest operating system 404 A- 404 C is executed against its own virtual computer hardware.
  • the virtual hardware exposed by the virtualization application to each guest operating system 404 A- 404 C includes a virtual NIC 406 A- 406 C.
  • Examples of virtualization applications include the VMWARE SERVER virtualization application from VMWARE CORPORATION of Palo Alto, Calif. and the VIRTUAL PC virtualization application from MICROSOFT CORPORATION of Redmond, Wash.
  • the virtual NICs 406 A- 406 C exposed to each guest operating system 404 A- 404 C are bridged to the network interface provided by the virtual NIC 118 exposed to the managed host computer 102 by the remote management controller 114 .
  • an in-band network connection can be established between the remote management controller 114 and each of the guest operating systems 404 A- 404 C executing on the managed host computer 102 .
  • the DHCP server provided by the remote management controller is operative to provide a network address to each of the virtual NICs 406 A- 406 C exposed to the guest operating systems 404 A- 404 C.
  • the in-band network connection between the remote management controller 114 and each of the guest operating systems 404 A- 404 C can be utilized to assist in determining the operational health of each of the guest operating systems 404 A- 404 C.
  • routine 500 begins at operation 502 , where the virtualization application 106 is executed on the managed host computer 102 .
  • the virtualization application 106 provides facilities for executing one or more guest operating systems 404 A- 404 C, including the abstraction of the hardware upon which the guest operating systems 404 A- 404 C are executed.
  • the virtualization application 402 is operative to expose a virtual NIC 406 A- 406 C, respectively, to each of the guest operating systems 404 A- 404 C. This occurs at operation 504 .
  • the virtualization application 402 also provides functionality for bridging the virtual NICs 406 A- 406 C to the virtual USB NIC 118 .
  • a network connection is created between the remote management controller 114 and each of the guest operating systems 404 A- 404 C. This occurs at operation 506 .
  • the routine 500 continues to operation 508 .
  • the DHCP server within the remote management controller 114 assigns a network address to each of the virtual NICs 406 A- 406 C.
  • the routine 500 continues to operation 510 , where the remote management controller 114 transmits a command, such as an ICMP echo request command, to each of the guest operating systems 404 A- 404 C. Once the command has been issued, the routine 500 continues from operation 510 to operation 512 .
  • the remote management controller 114 determines whether a reply was received to the transmitted command from each of the guest operating systems 404 A- 404 C. Where the command is an ICMP echo request command, the reply will take the form of an ICMP echo reply. If a reply is received from each guest operating system, the routine 500 branches from operation 512 to operation 514 , where the remote management controller 114 waits before transmitting another command. If a reply is not received from one of the guest operating systems 404 A- 404 C, the routine 500 proceeds from operation 512 to operation 516 .
  • the remote management controller 114 takes corrective action to restore the operation of the non-responsive guest operating system at operation 516 .
  • the corrective action may comprise executing a script or other type of program, transmitting a notification to a system administrator, or performing another type of function.
  • FIG. 6 an illustrative computer architecture for the various computing systems utilized in the embodiments described herein will be provided. It should be appreciated that although the embodiments described herein are discussed in the context of server computers, virtually any type of computing device may be utilized. It should be appreciated that the architecture shown in FIG. 6 may be utilized to embody the managed host computer 102 , the management client computer 104 , or any of the other computer systems described herein.
  • the illustrative architecture shown in FIG. 6 is for a computer 600 that includes a baseboard, or “motherboard”, which is a printed circuit board to which a multitude of components or devices may be connected by way of a system bus or other electrical communication path.
  • a CPU 22 operates in conjunction with a chipset 52 .
  • the CPU 22 is a standard central processor that performs arithmetic and logical operations necessary for the operation of the computer.
  • the computer 2 may include a multitude of CPUs 22 .
  • the chipset 52 includes a north bridge 24 and a south bridge 26 .
  • the north bridge 24 provides an interface between the CPU 22 and the remainder of the computer 600 .
  • the north bridge 24 also provides an interface to a random access memory (“RAM”) used as the main memory 54 in the computer 600 and, possibly, to an on-board graphics adapter 30 .
  • the north bridge 24 may also include functionality for providing networking functionality through a gigabit Ethernet adapter 28 .
  • the gigabit Ethernet adapter 28 is capable of connecting the computer 600 to another computer via a network. Connections which may be made by the network adapter 28 may include LAN or WAN connections. LAN and WAN networking environments are commonplace in offices, enterprise-wide computer networks, intranets, and the Internet.
  • the north bridge 24 is connected to the south bridge 26 .
  • the south bridge 26 is responsible for controlling many of the input/output functions of the computer 600 .
  • the south bridge 26 may provide one or more universal serial bus (“USB”) ports 32 , a sound adapter 46 , an Ethernet controller 60 , and one or more general purpose input/output (“GPIO”) pins 34 .
  • the south bridge 26 may also provide a bus for interfacing peripheral card devices such as a graphics adapter 62 .
  • the bus comprises a peripheral component interconnect (“PCI”) bus.
  • PCI peripheral component interconnect
  • the south bridge 26 may also provide a system management bus 64 for use in managing the various components of the computer 600 . Additional details regarding the operation of the system management bus 64 and its connected components are provided below.
  • the south bridge 26 is also operative to provide one or more interfaces for connecting mass storage devices to the computer 600 .
  • the south bridge 26 includes a serial advanced technology attachment (“SATA”) adapter for providing one or more serial ATA ports 36 and an ATA 100 adapter for providing one or more ATA 100 ports 44 .
  • the serial ATA ports 36 and the ATA 100 ports 44 may be, in turn, connected to one or more mass storage devices storing an operating system 40 and application programs 42 , such as the SATA disk drive 38 .
  • an operating system 40 comprises a set of programs that control operations of a computer and allocation of resources.
  • An application program is software that runs on top of the operating system software, or other runtime environment, and uses computer resources to perform application specific tasks desired by the user.
  • the mass storage devices connected to the south bridge 26 , and their associated computer-readable media, provide non-volatile storage for the computer 600 .
  • computer-readable media can be any available media that can be accessed by the computer 600 .
  • computer-readable media may comprise computer storage media and communication media.
  • Computer storage media includes volatile and non-volatile, 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, EPROM, EEPROM, flash memory or other solid state memory technology, CD-ROM, DVD, HD-DVD, BLU-RAY, 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 be accessed by the computer.
  • a low pin count (“LPC”) interface may also be provided by the south bridge 6 for connecting a “Super I/O” device 70 .
  • the Super I/O device 70 is responsible for providing a number of input/output ports, including a keyboard port, a mouse port, a serial interface 72 , a parallel port, and other types of input/output ports.
  • the LPC interface may also connect a computer storage media such as a ROM or a flash memory such as a NVRAM 48 for storing the firmware 50 that includes program code containing the basic routines that help to start up the computer 600 and to transfer information between elements within the computer 600 .
  • the south bridge 26 may include a system management bus 64 .
  • the system management bus 64 may include a BMC 66 .
  • the BMC 66 is a microcontroller that monitors operation of the computer system 600 .
  • the BMC 66 monitors health-related aspects associated with the computer system 600 , such as, but not limited to, the temperature of one or more components of the computer system 600 , speed of rotational components (e.g., spindle motor, CPU Fan, etc.) within the system, the voltage across or applied to one or more components within the system 600 , and the available or used capacity of memory devices within the system 600 .
  • the BMC 66 is communicatively connected to one or more components by way of the management bus 64 .
  • these components include sensor devices for measuring various operating and performance-related parameters within the computer system 600 .
  • the management bus 64 is used by the BMC 66 to request and/or receive various operating and performance-related parameters from one or more components, which are also communicatively connected to the management bus 64 .
  • the management bus 64 may communicatively connects the BMC 66 to a CPU temperature sensor and a CPU fan (not shown in FIG. 6 ), thereby providing a means for the BMC 66 to monitor and/or control operation of these components.
  • the BMC 66 may also include sensors 68 connected directly thereto.
  • the serial ports 72 and the Ethernet controller 60 may be utilized to establish a connection with the BMC 66 .
  • the computer 600 may comprise other types of computing devices, including hand-held computers, embedded computer systems, personal digital assistants, and other types of computing devices known to those skilled in the art. It is also contemplated that the computer 600 may not include all of the components shown in FIG. 6 , may include other components that are not explicitly shown in FIG. 6 , or may utilize an architecture completely different than that shown in FIG. 6 .
  • embodiments described herein provide technologies for detecting the operational health of an operating system in a virtualized or non-virtualized operating environment.
  • embodiments described herein have been described in language specific to computer structural features, methodological acts and by computer readable media, it is to be understood that the invention defined in the appended claims is not necessarily limited to the specific structures, acts or media described. Therefore, the specific structural features, acts and mediums are disclosed as exemplary embodiments implementing the claimed invention.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Debugging And Monitoring (AREA)

Abstract

A remote management controller is provided for use in conjunction with a managed host computer. The remote management controller exposes a virtual network interface controller, such as a driverless virtual USB network interface controller, to the managed host computer. Through the in-band connection provided by the virtual network interface controller, the remote management controller can send a command to the host operating system or one or more guest operating systems executing in a virtualized environment. If no reply is received to the command, the remote management controller takes corrective action to restore the operation of the host operating system or the non-responsive guest operating systems.

Description

CROSS-REFERENCE TO RELATED APPLICATIONS
This application is a continuation, and claims benefit, of U.S. patent application Ser. No. 11/756,143, filed May 31, 2007, entitled “DETECTING THE HEALTH OF AN OPERATING SYSTEM IN VIRTUALIZED AND NON-VIRTUALIZED ENVIRONMENTS,” by Venkatesh Ramamurthy, now issued as U.S. Pat. No. 8,176,168, which is hereby incorporated by reference herein in its entirety.
BACKGROUND
Remote server management devices allow various aspects of the operation of a server computer to be viewed and controlled from a management application executing on a remotely located computer system. For instance, certain types of remote management devices allow the video output of a managed server computer to be viewed at a remote location. Moreover, these devices typically allow aspects of the operation of the managed server computer to be controlled from the remote location. For instance, a remote management device may be utilized to remotely troubleshoot the operation of a managed server computer and to restart a failed server computer.
Some server management devices provide functionality for detecting the operational health of an operating system executing on the managed server computer. For instance, some server management devices are capable of determining whether the operating system executing on the managed server computer has crashed. Typically, this is accomplished by continually decrementing a hardware watchdog timer register in the server management device, and executing a watchdog timer driver on the host operating system that periodically resets the hardware register. If the hardware register is not reset, this means that the operating system has crashed and, as a result, the server management device performs a reset of the managed server computer.
Although the use of a watchdog timer register and watchdog timer driver does allow a server management device to detect the health of a host operating system, this solution requires the creation and installation of a custom driver for each operating system with which the server management device is utilized. Moreover, when utilized in conjunction with a virtualized server environment where multiple guest operating systems are executed, these types of watchdog timer-based solutions are not capable of detecting the health of each of the guest operating systems independently of the health of the host operating system.
It is with respect to these considerations and others that the various embodiments described below have been made.
SUMMARY
In accordance with the embodiments and implementations described herein, technologies are provided for detecting the operational health of an operating system executing on a managed host computer. Through the implementations presented herein, the operational health of an operating system can be determined by a remote management controller without the use of a hardware watchdog timer register or a watchdog timer driver. Moreover, the implementations presented herein allow a remote management controller to determine the operational health of multiple guest operating systems executing on a managed host computer in a virtualized environment.
According to one aspect, a remote management controller is provided for use in conjunction with a managed host computer. The remote management controller may be embedded on a baseboard of the managed host computer or may be installed as a daughtercard or other type of add-in hardware card. The remote management controller provides functionality for managing the operation of the managed host computer, such as console and input redirection, remote power control, monitoring of environmental sensors within the managed host computer, mass storage device redirection for remote operating system install and upgrade, and other functions.
The remote management controller described herein also provides a mechanism for detecting the health of a host operating system executing on the managed host computer. To accomplish this, the remote management controller exposes a virtual network interface controller to the managed host computer. In one implementation, the virtual network interface controller is a virtual USB network interface controller that does not require a custom driver or other software for use by the host operating system executing on the managed server computer. The remote management controller is further operative to provide a network address for use by the virtual network interface controller. Once the remote management controller has assigned a network address, a standard network connection is created between the remote management controller and the host operating system.
In order to determine the operational health of the host operating system, the remote management controller is operative to periodically transmit a command to the host operating system. For instance, in one implementation the command is an Internet control message protocol (“ICMP) echo request. If the host operating system replies to the command, such as with an ICMP echo reply, the host operating system is functioning properly. If no reply is received from the host operating system, however, this indicates that the host operating system is not functioning.
If the remote management controller does not receive a reply to the command, the remote management controller may take corrective action to restore the operation of the managed host computer. For instance, in one implementation, the remote management controller is operative to capture a screen display generated by the managed host computer and to cause the host computer to be restarted. The capture of the screen display may be transmitted to a system administrator along with a notification of the failure. Other types of corrective action may also be taken by the remote management controller including, but not limited to, executing scripts or other programs, transmitting other types of notifications to a system administrator, or the performance of other functions.
According to implementations, the remote management controller is also operative to determine the operational health of multiple guest operating systems executing in a virtualized environment on the managed host computer. In a virtualized environment, virtualization software is utilized to execute one or more guest operating systems on a single host computer. The virtualization software exposes virtual hardware to each guest operating system, including a virtual network interface controller. In this manner, each guest operating system is executed against its own virtual computer hardware.
In a virtualized environment, the virtual network interface controller exposed by the remote management controller to the managed host computer is bridged to the virtual network interface controllers exposed by the virtualization software to each guest operating system. In this manner, a network connection is established between the remote management controller and each guest operating system executing on the managed server computer. The remote management controller is operative to assign a network address to each virtual network interface controller exposed to a guest operating system.
In order to determine the operational health of each guest operating system executing within a virtualized environment, the remote management controller is operative to periodically transmit a command, such as an ICMP echo request, to each guest operating system. If a guest operating system replies, such as with an ICMP echo reply, the guest operating system is functioning properly. If no reply is received from guest operating system, however, this indicates that the guest operating system is not functioning. If the remote management controller does not receive a reply to the command from a guest operating system, the remote management controller may take corrective action to restore the operation of the guest operating system. For instance, the remote management controller may cause the guest operating system to be restarted or take another type of corrective action.
The subject matter described herein may also be implemented as an apparatus, a computer process, a computing system, or as an article of manufacture such as a computer program product or computer-readable medium. The computer program product may be a computer storage media readable by a computer system and encoding a computer program of instructions for executing a computer process. The computer program product may also be a propagated signal on a carrier readable by a computing system and encoding a computer program of instructions for executing a computer process.
These and various other features as well as advantages will be apparent from a reading of the following detailed description and a review of the associated drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a system diagram illustrating aspects of a remote management controller, a managed host computer, and a management client computer that together make up a management system disclosed in the various embodiments presented herein;
FIG. 2 is a flow diagram showing an illustrative process for enabling communication with an in-band management application over an out-of-band communications channel according to one implementation presented herein;
FIG. 3 is a flow diagram showing an illustrative process for determining the health of a host operating system in a non-virtualized environment according to one implementation presented herein;
FIG. 4 is a system diagram illustrating additional aspects of a managed host computer in a virtualized environment that forms an operating environment for one implementation presented herein;
FIG. 5 is a flow diagram showing an illustrative process for determining the health of a host operating system and multiple guest operating systems executing in a virtualized environment according to one implementation presented herein; and
FIG. 6 is a computer architecture diagram that illustrates a computer architecture that may be utilized by the various computing systems described herein.
DETAILED DESCRIPTION
Technologies are provided herein for detecting the operational health of a managed host computer in virtualized and non-virtualized operating environments. In the following detailed description, references are made to the accompanying drawings that form a part hereof, and in which are shown by way of illustration specific embodiments or examples. Referring now to the drawings, in which like numerals represent like elements throughout the several figures, aspects of the various implementations provided herein and an exemplary operating environment will be described.
While the technical details are presented herein in the general context of program modules that execute in conjunction with the execution of an operating system, those skilled in the art will recognize that the embodiments may also be implemented in combination with other program modules. Generally, program modules include routines, programs, components, data structures, and other types of structures that perform particular tasks or implement particular abstract data types. Moreover, those skilled in the art will appreciate that the embodiments described herein may be practiced with other computer system configurations, including hand-held devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, minicomputers, mainframe computers, and the like. The embodiments described herein may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote memory storage devices.
Referring now to FIG. 1, aspects of the operation of a remote management controller presented herein will be described. As shown in FIG. 1, a remote management controller 114 is described herein that operates in conjunction with a managed host computer 102. The remote management controller 114 may be integrated with the system board of the managed host computer 102 or may be a daughtercard or other type of add-in card that is installed into the managed host computer 102. Alternatively, the remote management controller 114 may be configured as an external device to the managed host computer 102.
As will be described in greater detail below, the remote management controller 114 provides functionality for remotely managing the operation of the managed host computer 102. In particular, according to implementations, the remote management controller 113 includes a physical network interface controller (“NIC”) for establishing a connection to the network 130. Through the network 130, a remotely located management client computer 104 can establish a connection to the remote management controller 116. The management client computer 104 includes an operating system 132 and a management client application 136 for communicating with and controlling the operation of the remote management controller 114. In an alternate embodiment, the remote management controller 114 provides a world wide web (“WWW” or “web”) interface through which a web browser application 134 executing on the management client computer 104 may access the functionality provided by the remote management controller 114.
Through the use of the management client 136 or the web browser 134, a remotely located user of the management client computer 104 can access information regarding the health and operation of the managed host computer 102. In this regard, the remote management controller 114 monitors and manages environmental sensors within the managed host computer 102. The remote management controller 114 also maintains appropriate connections to the managed host computer 102 to allow the remote management controller 114 to control the power status of the managed host computer 102. For instance, a remotely located user can utilize the management client 136 or the web browser 134 to power the managed host computer 102 on or off. The remote management controller 114 may receive power directly from the managed host computer 102, from an external power source (to power the operation of the remote management controller 114 when the computer 102 is powered off), or both. These power sources are not illustrated in FIG. 1.
According to implementations, the remote management controller 114 is also operative to redirect the text or video graphics output of the managed host computer 102 to the management client 136 or the web browser 134. In this regard, the remote management controller 114 may receive video display data generated by the managed host computer 102 as input, compress the video display data, and transmit the compressed data to the management client computer 104. The data is decompressed at the management client computer 104 and displayed. Additionally, keyboard and mouse input made at the management client computer 104 may be transmitted to the remote management controller 114 and provided to the managed host computer 102 as if the input were generated locally. In this manner, a remotely located user of the management client computer 104 can control the operation of the managed host computer 102 as if they were proximately located. Appropriate connections between the remote management controller 114 and the managed host computer 102 may be established for these purposes. For instance, the video display output of the managed host computer 102 may be provided to the remote management controller 114. Similarly, the remote management controller 114 may emulate one or more standard USB human interaction devices (“USB HIDs”), such as a keyboard and mouse, in order to provide remotely generated keyboard and mouse data to the managed host computer 102. Because no physical keyboard or mouse is actually provided by the remote management controller 114, the USB HID 120 is referred to as being “virtual.”
According to other implementations, the remote management controller 114 may provide mass storage redirection facilities. In this regard, the remote management controller 114 may emulate a USB mass storage device, such as a CD-ROM or DVD-ROM device. From the perspective of the managed host computer 102, a USB mass storage device is physically connected. However, utilizing functionality provided by the remote management controller 114, the emulated mass storage device may be redirected to a physical mass storage device connected to the management client computer 104. In this manner, physical media present at the management client computer 104 appears to be physically present at the managed host computer 102. This functionality may be utilized to perform a remote operating system installation, repair, or upgrade, or to install other types of software on the managed host computer 102.
It should be appreciated that the functionality described herein as being performed by the remote management controller 114 is implemented by way of a firmware 126 stored in a memory 124 of the remote management controller 114. The firmware 126 is executed by a central processing unit 122 on the remote management controller 114. It should also be appreciated that the architecture of the remote management controller 114 shown in FIG. 1 has been simplified and that more or fewer hardware components may be utilized to provide the functionality described herein. The functionality described herein as being provided by the remote management controller 114 is also illustrative and the remote management controller 114 may provide more or fewer functions than those described herein.
Because the management client 136 and web browser 134 can communicate with the remote management controller 114 even when the managed host computer 102 is powered off or unresponsive, the communications channel between the remote management controller 114 and the management client computer 104 is referred to herein as being “out-of-band.” Out-of-band management is essential for determining the health of the managed host computer 102 prior to an operating system 106 being booted by the managed host computer 102 or when the operating system 106 has crashed. Out-of-band management is also useful for configuring the operation of a basic input/output system (“BIOS”) of the managed host computer 102.
It should be appreciated that the managed host computer 102 may also be managed through an “in-band” communications channel. In this regard, the managed host computer 102 includes a physical NIC 128 through which a management client application 136 may establish a connection with the managed host computer 102. Through this in-band communications channel, communications may be made with one or more in-band management applications 108 executing on the operating system 106. Because the operating system 106 must be executing to enable communication with the in-band management applications 108, this type of management is referred to herein as “in-band” management. The in-band management applications 108 may include such management applications as the Systems Management Architecture for Server Hardware (“SMASH”) and Web Services Management (“WS-MAN”). Other in-band management applications may be utilized in a similar manner.
According to implementations presented herein, the remote management controller 114 includes a mechanism by which access may be had to the in-band management applications 108 through an out-of-band communications channel. In particular, according to one implementation, the remote management controller 114 is operative to expose a virtual network interface controller 118 to the managed host computer 102. From the perspective of the managed host computer 102, it appears as if a physical network interface controller 118 has been connected. The functionality of the network interface controller 118 is, however, provided by the remote management controller 114 and it is therefore described herein as being “virtual.”
According to one implementation, the virtual network interface controller 118 comprises a standard driverless USB Ethernet adapter. Because the virtual NIC 118 is a standard USB NIC in this implementation, no custom drivers need to be loaded by the operating system 106 in order to utilize the functionality provided thereby. The remote management controller 114 appears to the operating system 106 as a standard networking device and, therefore, a standard TCP/IP stack 112 and standard networking commands can be utilized to communicate with the remote management controller 114. In this regard, therefore, it should be appreciated that the virtual USB NIC 118 exposed by the remote management controller 114 provides an in-band communications channel through which the remote management controller 114 can communicate with the in-band management applications 108 and through which the operating system 106 and the in-band management applications 108 can communicate with the remote management controller 114. Through this in-band communications channel, the operating system 106 and the in-band management applications 108 also have access to the out-of-band communications network established with the management client computer 104.
It should be appreciated that, according to embodiments, the remote management controller 114 may be further equipped with a dynamic host configuration protocol (“DHCP”) server. Through the DHCP server, the operating system 106 can request a network address, such as an Internet protocol (“IP”) address 110, for the virtual USB NIC 118. In response to such a request, the DHCP server assigns an appropriate network address to the virtual USB NIC 118. The DHCP server is not illustrated in FIG. 1. As will be described in greater detail below, the DHCP server provided by the firmware 126 of the remote management controller 114 may also provide network addresses to virtual NICs exposed to guest operating systems executing on the managed host computer 102 in a virtualized environment.
Referring now to FIG. 2, an illustrative routine 200 will be described in detail illustrating the operation of the remote management controller 114 with respect to providing an out-of-band communications channel for communicating with the in-band management applications 108 executing on the managed host computer 102. The logical operations of the various implementations presented herein are implemented (1) as a sequence of computer implemented acts or program modules running on a computing system and/or (2) as interconnected machine logic circuits or circuit modules within the computing system. The implementation is a matter of choice dependent on the performance requirements of the computing system on which the embodiments described herein are implemented. Accordingly, the logical operations making up the implementations described herein are referred to variously as operations, structural devices, acts or modules. It will be recognized by one skilled in the art that these operations, structural devices, acts and modules may be implemented in software, in firmware, in special purpose digital logic, and any combination thereof without deviating from the spirit and scope of the present invention as recited within the claims attached hereto.
The routine 200 begins at operation 202, where the remote management controller 114 exposes the virtual USB NIC 118 to the managed host computer 102. As discussed above, the operating system 106 can configure the virtual USB NIC 118 for use without the use of special drivers or other dynamically linked libraries. As a part of the configuration process for the virtual USB NIC 118, the operating system 106 may utilized DHCP to request a network address for the virtual USB NIC 118. As discussed above, the remote management controller 114 may be equipped with a DHCP server for assigning and appropriate IP address in response to such a request. Once the virtual USB NIC 118 has been assigned an IP address, the virtual USB NIC 118 is ready for communication. This occurs at operation 204.
From operation 204, the routine 200 continues to operation 206, where the managed host computer 102 executes the in-band management applications 108. The routine 200 then continues to operation 208, where the remote management controller 114 communicates with the in-band management applications 108 through the in-band communications interface provided by the virtual USB NIC 118. As described above, the management client 136 may also communicate over the out-of-band communications channel with the in-band management applications in a similar manner. The operating system 106 and the in-band management applications 108 may also utilize the in-band communications interface provided by the virtual USB NIC 118 to communicate with the remote management controller 114. In another implementation, an application executing on the managed host computer 102 may utilize the in-band communications channel provided by the virtual USB NIC 118 to configure the operation of the remote management controller 114. From operation 208, the routine 200 continues to operation 210, where it ends.
Referring now to FIG. 3, an illustrative routine 300 will be described for detecting the operational health of the managed host computer 102 in a non-virtualized environment, such as that shown in FIG. 1 and described above. The routine 300 begins at operation 302, where the remote management controller 114 transmits a command to the operating system 106 executing on the managed host computer 102 via the network connection established using the virtual USB NIC 118. In one implementation, the command comprises an ICMP echo request command. Once the command has been issued, the routine 300 continues from operation 302 to operation 304.
At operation 304, the remote management controller 114 determines whether a reply was received to the transmitted command. Where the command is an ICMP echo request command, the reply will take the form of an ICMP echo reply. If a reply is received, the routine 300 branches from operation 304 to operation 304, where it waits a predetermined period of time before returning to operation 302 and transmitting another command. If a reply is not received, the routine 300 proceeds from operation 304 to operation 308.
If the operating system 106 does not reply to the command, the remote management controller 114 takes corrective action to restore the operation of the operating system 106 executing on the managed host computer 102. For instance, in one implementation, the remote management controller 114 captures the screen display currently being output by the managed host computer 102. The remote management controller 114 may also transmit the captured data to a system administrator for use in determining the cause of the failure of the managed server computer 102. This occurs at operation 308.
The remote management controller 114 may also take other types of corrective action, such as executing a script or other type of program to restart the operation of the managed host computer 102. In this manner, the remote management controller 114 can cause the managed host computer 102 to reset itself and reload the operating system 106. This occurs at operation 310. Once the corrective action has been performed, the routine 300 returns to operation 302, where the processing described above is repeated.
Turning now to FIG. 4, additional details will be provided regarding an embodiment presented herein for determining the operational health of one or more guest operating systems executing on the managed host computer 102 in a virtualized environment. In a virtualized environment such as the one shown in FIG. 4, a virtualization application 402 executing on the host operation system 106 provides functionality for executing multiple guest operating systems 404A-404C. The virtualization application 402 decouples the execution of each guest operating system 404A-404C from the actual hardware of the managed host computer 102 by exposing virtual hardware to each guest operating system 404A-404C. In this manner, each guest operating system 404A-404C is executed against its own virtual computer hardware. The virtual hardware exposed by the virtualization application to each guest operating system 404A-404C includes a virtual NIC 406A-406C. Examples of virtualization applications include the VMWARE SERVER virtualization application from VMWARE CORPORATION of Palo Alto, Calif. and the VIRTUAL PC virtualization application from MICROSOFT CORPORATION of Redmond, Wash.
According to embodiments, the virtual NICs 406A-406C exposed to each guest operating system 404A-404C, respectively, are bridged to the network interface provided by the virtual NIC 118 exposed to the managed host computer 102 by the remote management controller 114. In this manner, an in-band network connection can be established between the remote management controller 114 and each of the guest operating systems 404A-404C executing on the managed host computer 102. In this regard, the DHCP server provided by the remote management controller is operative to provide a network address to each of the virtual NICs 406A-406C exposed to the guest operating systems 404A-404C. As will be described in greater detail below with respect to FIG. 5, the in-band network connection between the remote management controller 114 and each of the guest operating systems 404A-404C can be utilized to assist in determining the operational health of each of the guest operating systems 404A-404C.
Referring now to FIG. 5, an illustrative routine 500 will be described for detecting the health of the guest operating systems 404A-404C executing on the managed host computer 102. In particular, the routine 500 begins at operation 502, where the virtualization application 106 is executed on the managed host computer 102. As discussed above, the virtualization application 106 provides facilities for executing one or more guest operating systems 404A-404C, including the abstraction of the hardware upon which the guest operating systems 404A-404C are executed. In this regard, the virtualization application 402 is operative to expose a virtual NIC 406A-406C, respectively, to each of the guest operating systems 404A-404C. This occurs at operation 504.
As also discussed briefly above, the virtualization application 402 also provides functionality for bridging the virtual NICs 406A-406C to the virtual USB NIC 118. In this manner, a network connection is created between the remote management controller 114 and each of the guest operating systems 404A-404C. This occurs at operation 506. Once the network connections have been established between the remote management controller 114 and each of the guest operating systems 404A-404C, the routine 500 continues to operation 508. At operation 508, the DHCP server within the remote management controller 114 assigns a network address to each of the virtual NICs 406A-406C.
From operation 508, the routine 500 continues to operation 510, where the remote management controller 114 transmits a command, such as an ICMP echo request command, to each of the guest operating systems 404A-404C. Once the command has been issued, the routine 500 continues from operation 510 to operation 512. At operation 512, the remote management controller 114 determines whether a reply was received to the transmitted command from each of the guest operating systems 404A-404C. Where the command is an ICMP echo request command, the reply will take the form of an ICMP echo reply. If a reply is received from each guest operating system, the routine 500 branches from operation 512 to operation 514, where the remote management controller 114 waits before transmitting another command. If a reply is not received from one of the guest operating systems 404A-404C, the routine 500 proceeds from operation 512 to operation 516.
If one of the guest operating systems does not reply to the command, the remote management controller 114 takes corrective action to restore the operation of the non-responsive guest operating system at operation 516. As discussed above, the corrective action may comprise executing a script or other type of program, transmitting a notification to a system administrator, or performing another type of function. Once the corrective action has been performed, the routine 500 returns to operation 510, where the processing described above is repeated.
Turning now to FIG. 6, an illustrative computer architecture for the various computing systems utilized in the embodiments described herein will be provided. It should be appreciated that although the embodiments described herein are discussed in the context of server computers, virtually any type of computing device may be utilized. It should be appreciated that the architecture shown in FIG. 6 may be utilized to embody the managed host computer 102, the management client computer 104, or any of the other computer systems described herein.
The illustrative architecture shown in FIG. 6 is for a computer 600 that includes a baseboard, or “motherboard”, which is a printed circuit board to which a multitude of components or devices may be connected by way of a system bus or other electrical communication path. In one illustrative embodiment, a CPU 22 operates in conjunction with a chipset 52. The CPU 22 is a standard central processor that performs arithmetic and logical operations necessary for the operation of the computer. The computer 2 may include a multitude of CPUs 22.
The chipset 52 includes a north bridge 24 and a south bridge 26. The north bridge 24 provides an interface between the CPU 22 and the remainder of the computer 600. The north bridge 24 also provides an interface to a random access memory (“RAM”) used as the main memory 54 in the computer 600 and, possibly, to an on-board graphics adapter 30. The north bridge 24 may also include functionality for providing networking functionality through a gigabit Ethernet adapter 28. The gigabit Ethernet adapter 28 is capable of connecting the computer 600 to another computer via a network. Connections which may be made by the network adapter 28 may include LAN or WAN connections. LAN and WAN networking environments are commonplace in offices, enterprise-wide computer networks, intranets, and the Internet. The north bridge 24 is connected to the south bridge 26.
The south bridge 26 is responsible for controlling many of the input/output functions of the computer 600. In particular, the south bridge 26 may provide one or more universal serial bus (“USB”) ports 32, a sound adapter 46, an Ethernet controller 60, and one or more general purpose input/output (“GPIO”) pins 34. The south bridge 26 may also provide a bus for interfacing peripheral card devices such as a graphics adapter 62. In one embodiment, the bus comprises a peripheral component interconnect (“PCI”) bus. The south bridge 26 may also provide a system management bus 64 for use in managing the various components of the computer 600. Additional details regarding the operation of the system management bus 64 and its connected components are provided below.
The south bridge 26 is also operative to provide one or more interfaces for connecting mass storage devices to the computer 600. For instance, according to an embodiment, the south bridge 26 includes a serial advanced technology attachment (“SATA”) adapter for providing one or more serial ATA ports 36 and an ATA 100 adapter for providing one or more ATA 100 ports 44. The serial ATA ports 36 and the ATA 100 ports 44 may be, in turn, connected to one or more mass storage devices storing an operating system 40 and application programs 42, such as the SATA disk drive 38. As known to those skilled in the art, an operating system 40 comprises a set of programs that control operations of a computer and allocation of resources. An application program is software that runs on top of the operating system software, or other runtime environment, and uses computer resources to perform application specific tasks desired by the user.
The mass storage devices connected to the south bridge 26, and their associated computer-readable media, provide non-volatile storage for the computer 600. Although the description of computer-readable media contained herein refers to a mass storage device, such as a hard disk or CD-ROM drive, it should be appreciated by those skilled in the art that computer-readable media can be any available media that can be accessed by the computer 600. By way of example, and not limitation, computer-readable media may comprise computer storage media and communication media. Computer storage media includes volatile and non-volatile, 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, EPROM, EEPROM, flash memory or other solid state memory technology, CD-ROM, DVD, HD-DVD, BLU-RAY, 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 be accessed by the computer.
A low pin count (“LPC”) interface may also be provided by the south bridge 6 for connecting a “Super I/O” device 70. The Super I/O device 70 is responsible for providing a number of input/output ports, including a keyboard port, a mouse port, a serial interface 72, a parallel port, and other types of input/output ports. The LPC interface may also connect a computer storage media such as a ROM or a flash memory such as a NVRAM 48 for storing the firmware 50 that includes program code containing the basic routines that help to start up the computer 600 and to transfer information between elements within the computer 600.
As described briefly above, the south bridge 26 may include a system management bus 64. The system management bus 64 may include a BMC 66. In general, the BMC 66 is a microcontroller that monitors operation of the computer system 600. In a more specific embodiment, the BMC 66 monitors health-related aspects associated with the computer system 600, such as, but not limited to, the temperature of one or more components of the computer system 600, speed of rotational components (e.g., spindle motor, CPU Fan, etc.) within the system, the voltage across or applied to one or more components within the system 600, and the available or used capacity of memory devices within the system 600. To accomplish these monitoring functions, the BMC 66 is communicatively connected to one or more components by way of the management bus 64. In an embodiment, these components include sensor devices for measuring various operating and performance-related parameters within the computer system 600.
The management bus 64 is used by the BMC 66 to request and/or receive various operating and performance-related parameters from one or more components, which are also communicatively connected to the management bus 64. For instance, in one embodiment, the management bus 64 may communicatively connects the BMC 66 to a CPU temperature sensor and a CPU fan (not shown in FIG. 6), thereby providing a means for the BMC 66 to monitor and/or control operation of these components. The BMC 66 may also include sensors 68 connected directly thereto. The serial ports 72 and the Ethernet controller 60 may be utilized to establish a connection with the BMC 66.
It should be appreciated that the computer 600 may comprise other types of computing devices, including hand-held computers, embedded computer systems, personal digital assistants, and other types of computing devices known to those skilled in the art. It is also contemplated that the computer 600 may not include all of the components shown in FIG. 6, may include other components that are not explicitly shown in FIG. 6, or may utilize an architecture completely different than that shown in FIG. 6.
Based on the foregoing, it should be appreciated that embodiments described herein provide technologies for detecting the operational health of an operating system in a virtualized or non-virtualized operating environment. Moreover, although the embodiments described herein have been described in language specific to computer structural features, methodological acts and by computer readable media, it is to be understood that the invention defined in the appended claims is not necessarily limited to the specific structures, acts or media described. Therefore, the specific structural features, acts and mediums are disclosed as exemplary embodiments implementing the claimed invention.
The various embodiments described above are provided by way of illustration only and should not be construed to limit the invention. Those skilled in the art will readily recognize various modifications and changes that may be made to the present invention without following the example embodiments and applications illustrated and described herein, and without departing from the true spirit and scope of the present invention, which is set forth in the following claims.

Claims (6)

I claim:
1. A method for detecting the operational health of one or more guest operating systems executing within a virtualized operating environment on a managed host computer, the method comprising:
exposing, by a out-of-band controller, a first virtual network interface controller to the managed host computer such that the first virtual network interface controller is assigned a network address in an in-band communication channel to allow that the managed host computer communicates with the out-of-band controller through the in-band communication channel via the first virtual network interface controller;
bridging the first virtual network interface to a respective second virtual network interface controller exposed to each of the guest operating systems to create one or more bridged network connections;
transmitting a command from the out-of-band controller to each of the guest operating systems via the bridged network connections;
determining, at the out-of-band controller, if a reply to each transmitted command is received from the guest operating systems; and
restoring the operation of each guest operating system from which a reply to the transmitted command is not received.
2. The method of claim 1, wherein the first virtual network interface controller comprises a virtual serial bus (USB) network interface controller.
3. The method of claim 2, wherein the out-of-band controller is a remote management controller.
4. The method of claim 3, wherein the remote management controller is further operative to provide a network address to each of the second virtual network interface controllers exposed to each of the guest operating systems.
5. The method of claim 4, wherein the command comprises an Internet control message protocol (ICMP) echo request or Address Resolution Protocol (ARP) request and wherein the reply comprises an ICMP echo or ARP reply.
6. A non-transitory computer storage media having computer-executable instructions stored thereon which, when executed by a computer, cause the computer to perform the method of claim 1.
US13/462,079 2007-05-31 2012-05-02 Detecting the health of an operating system in virtualized and non-virtualized environments Active US8468242B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US13/462,079 US8468242B2 (en) 2007-05-31 2012-05-02 Detecting the health of an operating system in virtualized and non-virtualized environments
US13/919,304 US8819228B2 (en) 2007-05-31 2013-06-17 Detecting the health of an operating system in virtualized and non-virtualized environments

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/756,143 US8176168B1 (en) 2007-05-31 2007-05-31 Detecting the health of an operating system in virtualized and non-virtualized environments
US13/462,079 US8468242B2 (en) 2007-05-31 2012-05-02 Detecting the health of an operating system in virtualized and non-virtualized environments

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US11/756,143 Continuation US8176168B1 (en) 2007-05-31 2007-05-31 Detecting the health of an operating system in virtualized and non-virtualized environments

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US13/919,304 Continuation US8819228B2 (en) 2007-05-31 2013-06-17 Detecting the health of an operating system in virtualized and non-virtualized environments

Publications (2)

Publication Number Publication Date
US20120215917A1 US20120215917A1 (en) 2012-08-23
US8468242B2 true US8468242B2 (en) 2013-06-18

Family

ID=46002189

Family Applications (3)

Application Number Title Priority Date Filing Date
US11/756,143 Active 2030-11-06 US8176168B1 (en) 2007-05-31 2007-05-31 Detecting the health of an operating system in virtualized and non-virtualized environments
US13/462,079 Active US8468242B2 (en) 2007-05-31 2012-05-02 Detecting the health of an operating system in virtualized and non-virtualized environments
US13/919,304 Active US8819228B2 (en) 2007-05-31 2013-06-17 Detecting the health of an operating system in virtualized and non-virtualized environments

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US11/756,143 Active 2030-11-06 US8176168B1 (en) 2007-05-31 2007-05-31 Detecting the health of an operating system in virtualized and non-virtualized environments

Family Applications After (1)

Application Number Title Priority Date Filing Date
US13/919,304 Active US8819228B2 (en) 2007-05-31 2013-06-17 Detecting the health of an operating system in virtualized and non-virtualized environments

Country Status (1)

Country Link
US (3) US8176168B1 (en)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8799903B1 (en) * 2007-07-31 2014-08-05 Hewlett-Packard Development Company, L.P. Systems and methods for exchanging runtime functionalities between software stacks
US8429650B2 (en) * 2008-11-14 2013-04-23 Oracle International Corporation System and method of security management for a virtual environment
US8776090B2 (en) * 2009-02-17 2014-07-08 Broadcom Corporation Method and system for network abstraction and virtualization for a single operating system (OS)
US8650559B2 (en) * 2009-08-27 2014-02-11 Red Hat Israel, Ltd. Automatic remote installation of a virtualization host
US20110276625A1 (en) * 2010-05-06 2011-11-10 Hemal Shah Method and system for host independent keyboard, video, and mouse (kvm) redirection
GB201220692D0 (en) 2012-11-16 2013-01-02 Overnet Data Man Ltd Software deployment and control method and system
WO2015051332A1 (en) 2013-10-04 2015-04-09 Kanawha Automation, Llc Dynamic additive manufacturing system
CN103746826A (en) * 2013-10-29 2014-04-23 湖南蚁坊软件有限公司 Method for automatically detecting and identifying operating systems of host computers in network
US9928206B2 (en) * 2015-07-21 2018-03-27 American Megatrends Inc. Dedicated LAN interface per IPMI instance on a multiple baseboard management controller (BMC) system with single physical network interface
US10069718B2 (en) * 2015-11-26 2018-09-04 Dell Products, L.P. Switching of host network traffic through baseboard management controller (BMC)
US10078576B2 (en) 2016-03-29 2018-09-18 International Business Machines Corporation Remotely debugging an operating system
US10826883B2 (en) * 2017-04-11 2020-11-03 Dell Products L.P. Systems and methods for host system management of an information handling system via a mobile information handling system
US11602034B2 (en) * 2017-05-08 2023-03-07 Signify Holding B.V. Forming groups of devices by analyzing device control information
US10565021B2 (en) * 2017-11-30 2020-02-18 Microsoft Technology Licensing, Llc Automated capacity management in distributed computing systems
US11593191B2 (en) * 2021-07-13 2023-02-28 Dell Products L.P. Systems and methods for self-healing and/or failure analysis of information handling system storage
US20230300089A1 (en) * 2022-01-26 2023-09-21 Dell Products L.P. Serial console transport offload with smart network interface controller

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030196148A1 (en) 2002-04-12 2003-10-16 Carol Harrisville-Wolff System and method for peer-to-peer monitoring within a network
US20030196136A1 (en) 2002-04-15 2003-10-16 Haynes Leon E. Remote administration in a distributed system
US6813634B1 (en) 2000-02-03 2004-11-02 International Business Machines Corporation Network fault alerting system and method
US20060112247A1 (en) 2004-11-19 2006-05-25 Swaminathan Ramany System and method for real-time balancing of user workload across multiple storage systems with shared back end storage
US20060206300A1 (en) * 2005-03-11 2006-09-14 Microsoft Corporation VM network traffic monitoring and filtering on the host
US20070027981A1 (en) 2005-07-27 2007-02-01 Giovanni Coglitore Computer diagnostic system
US20070050499A1 (en) 2005-08-31 2007-03-01 Atherton William E Apparatus, system, and method for accessing system information
US20070074192A1 (en) 2005-08-30 2007-03-29 Geisinger Nile J Computing platform having transparent access to resources of a host platform
US20070143753A1 (en) 2005-12-15 2007-06-21 International Business Machines Corporation Remote performance monitor in a virtual data center complex
US20070168498A1 (en) 2006-01-19 2007-07-19 Dell Products L.P. Out-of-band characterization of server utilization via remote access card virtual media for auto-enterprise scaling
US7310742B2 (en) * 2004-06-30 2007-12-18 Intel Corporation Method and apparatus for performing disk diagnostics and repairs on remote clients
US20080005748A1 (en) 2006-06-28 2008-01-03 Mathew Tisson K Virtual machine monitor management from a management service processor in the host processing platform
US7552213B2 (en) 2005-05-12 2009-06-23 Avocent Fremont Corp. Remote network node management system and method
US7809976B2 (en) * 2007-04-30 2010-10-05 Netapp, Inc. System and method for failover of guest operating systems in a virtual machine environment

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7458075B2 (en) 2004-03-31 2008-11-25 Intel Corporation Virtual USB port system and method
US7590710B1 (en) 2004-06-17 2009-09-15 Wavetrix, Inc. Method and system for extending a communication port via a general purpose network
US20060104292A1 (en) 2004-11-15 2006-05-18 Gupta Vivek G System and methods for supporting multiple communications interfaces with single client interface
CN100401280C (en) 2005-06-08 2008-07-09 北京飞天诚信科技有限公司 Universal serial bus data transmission method and apparatus thereof
US20060280195A1 (en) 2005-06-10 2006-12-14 Dell Products L.P. Systems and methods for providing dedicated or shared network interface functionality via a single MAC
US9052916B2 (en) 2006-09-21 2015-06-09 Hewlett-Packard Development Company, L.P. System ROM with an embedded disk image

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6813634B1 (en) 2000-02-03 2004-11-02 International Business Machines Corporation Network fault alerting system and method
US20030196148A1 (en) 2002-04-12 2003-10-16 Carol Harrisville-Wolff System and method for peer-to-peer monitoring within a network
US20030196136A1 (en) 2002-04-15 2003-10-16 Haynes Leon E. Remote administration in a distributed system
US7310742B2 (en) * 2004-06-30 2007-12-18 Intel Corporation Method and apparatus for performing disk diagnostics and repairs on remote clients
US20060112247A1 (en) 2004-11-19 2006-05-25 Swaminathan Ramany System and method for real-time balancing of user workload across multiple storage systems with shared back end storage
US20060206300A1 (en) * 2005-03-11 2006-09-14 Microsoft Corporation VM network traffic monitoring and filtering on the host
US7552213B2 (en) 2005-05-12 2009-06-23 Avocent Fremont Corp. Remote network node management system and method
US20070027981A1 (en) 2005-07-27 2007-02-01 Giovanni Coglitore Computer diagnostic system
US20070074192A1 (en) 2005-08-30 2007-03-29 Geisinger Nile J Computing platform having transparent access to resources of a host platform
US20070050499A1 (en) 2005-08-31 2007-03-01 Atherton William E Apparatus, system, and method for accessing system information
US20070143753A1 (en) 2005-12-15 2007-06-21 International Business Machines Corporation Remote performance monitor in a virtual data center complex
US20070168498A1 (en) 2006-01-19 2007-07-19 Dell Products L.P. Out-of-band characterization of server utilization via remote access card virtual media for auto-enterprise scaling
US20080005748A1 (en) 2006-06-28 2008-01-03 Mathew Tisson K Virtual machine monitor management from a management service processor in the host processing platform
US7809976B2 (en) * 2007-04-30 2010-10-05 Netapp, Inc. System and method for failover of guest operating systems in a virtual machine environment

Also Published As

Publication number Publication date
US20130283093A1 (en) 2013-10-24
US20120215917A1 (en) 2012-08-23
US8176168B1 (en) 2012-05-08
US8819228B2 (en) 2014-08-26

Similar Documents

Publication Publication Date Title
US8468242B2 (en) Detecting the health of an operating system in virtualized and non-virtualized environments
US8560686B2 (en) Communicating with an in-band management application through an out-of-band communications channel
US10095559B2 (en) Interface for translating software commands and hardware commands for a distributed computing system
US9507566B2 (en) Entropy generation for a distributed computing system
TWI610167B (en) Computing device-implemented method and non-transitory medium holding computer-executable instructions for improved platform management, and computing device configured to provide enhanced management information
US7546487B2 (en) OS and firmware coordinated error handling using transparent firmware intercept and firmware services
JP3887314B2 (en) Methods and apparatus for powering down a logical partition in a data processing system and / or rebooting a logical partition
US9122810B2 (en) System and method for providing input/output functionality to a processing node
US9021472B2 (en) Virtualizing baseboard management controller operation
JP6067771B2 (en) Out-of-band acquisition of network interface controller information
US8843607B2 (en) System and method for managing computer network interfaces
US20190251266A1 (en) Clearance of bare metal resource to trusted state usable in cloud computing
US20070011507A1 (en) System and method for remote system support
US9712382B2 (en) Retrieving console messages after device failure
US10210842B2 (en) Techniques of displaying host data on a monitor connected to a service processor during pre-boot initialization stage
US10691468B2 (en) Techniques of retrieving bios data from BMC
US10474517B2 (en) Techniques of storing operational states of processes at particular memory locations of an embedded-system device
US20110239038A1 (en) Management apparatus, management method, and program
US20230205671A1 (en) Multipath diagnostics for kernel crash analysis via smart network interface controller

Legal Events

Date Code Title Description
STCF Information on status: patent grant

Free format text: PATENTED CASE

FPAY Fee payment

Year of fee payment: 4

AS Assignment

Owner name: AMERICAN MEGATRENDS INTERNATIONAL, LLC, GEORGIA

Free format text: ENTITY CONVERSION;ASSIGNOR:AMERICAN MEGATRENDS, INC.;REEL/FRAME:049091/0973

Effective date: 20190211

AS Assignment

Owner name: MIDCAP FINANCIAL TRUST, AS COLLATERAL AGENT, MARYL

Free format text: SECURITY INTEREST;ASSIGNOR:AMERICAN MEGATRENDS INTERNATIONAL, LLC;REEL/FRAME:049087/0266

Effective date: 20190401

Owner name: MIDCAP FINANCIAL TRUST, AS COLLATERAL AGENT, MARYLAND

Free format text: SECURITY INTEREST;ASSIGNOR:AMERICAN MEGATRENDS INTERNATIONAL, LLC;REEL/FRAME:049087/0266

Effective date: 20190401

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 8