Patent Publication Number: US-7899090-B2

Title: Remote installation performance over management controllers in monolithic and modular systems

Description:
BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The present invention relates in general to the field of remote information handling system administration and more specifically, to the remote installation of software code. 
     2. Description of the Related Art 
     As the value and use of information continues to increase, individuals and businesses seek additional ways to process and store information. One option available to users is information handling systems. An information handling system generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes thereby allowing users to take advantage of the value of the information. Because technology and information handling needs and requirements vary between different users or applications, information handling systems may also vary regarding what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information may be processed, stored, or communicated. The variations in information handling systems allow for information handling systems to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, or global communications. In addition, information handling systems may include a variety of hardware and software components that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems. 
     The volume of data that information handling systems manage continues to grow, driving the need for scalable systems that not only sustain information integrity and availability, but also make efficient use of computing resources. One popular approach to addressing this need is the use of large, interconnected servers comprising multiple processors. Another popular approach is blade server systems, which generally comprise a number of individual computer blades housed within a chassis that provides a common power supply, cooling, and management resources. Each computer blade typically includes one or more processors, computer memory, network connections, and computer storage. An advantage to this approach is that users, applications and/or processes can be assigned to specific computer blades and/or spread across available resources. As additional processing power or capacity is needed, additional computer blades are added to the blade server. 
     Regardless of the chosen approach, administering servers from a remote location is often mandatory in today&#39;s business environment. Management access controllers (MACs) like the Dell Remote Access Controller (DRAC) provide the ability to install and manage software on remote servers. One aspect of these MACs is they allow the remote installation of operating system (OS) and other software through a feature known as virtual media. Virtual media allows administrators to remotely connect a mass storage device to a server and use the device as if it were physically present on the server. Virtual media generally uses hardware to emulate universal serial bus (USB) mass storage devices with native USB interfaces, thereby avoiding the need for additional device drivers. After the virtual media device is connected through the managed server&#39;s USB bus, the server&#39;s OS treats it as if the administrator had physically attached a USB hard disk, floppy disk, or compact disk to the remote server. Once a virtual media device is connected to the server, administrators can remotely boot the device through a remote management console application. Once the remote management console is launched and the managed server powered-up and booted, the system management experience is the same as if the administrator were physically present at the remote server. 
     Virtual media can be similarly used to emulate the managed server&#39;s MAC as a local, USB-connected storage device. During software installations, the managed server will attempt to read data from the MAC just as if it were a local storage device. In actuality, a read request generated by the managed server is typically routed through a host USB bus port to a USB bus port on the MAC where it is received by the MAC&#39;s USB hardware. The management application running in the MAC formats the request into Ethernet packets, which are forwarded through the MAC to management firmware residing in the LAN On Motherboard (LOM) module. The LOM then forwards the packets to the remote management client over an external network connection. Responses are received over the network connection from the remote management client and the process is repeated in reverse until the remote server receives the response. As another example, since the MAC is emulated as a local USB device, the OS is required to load modules for USB devices. Because of this, software installations (e.g., OS installation) take more time with virtual media implementations than with existing installation methods such as pre-boot execution environment (PXE) and network file system (NFS) that are implemented over a network connection. In part, this is due to multiple MACs in a blade system sharing a single network connection. Simultaneous remote installations can create excessive amounts of network traffic, leading to congestion on the shared network connection. While providing an effective remote administration solution, this approach adds undesirable latency and increases installation time due to the multiple hardware and software steps involved. As a result, longer installation times can be experienced as well as possible connection timeouts, which can become more pronounced over time as processing loads increase. 
     SUMMARY OF THE INVENTION 
     A method and system are disclosed for installing software code on a remote information handling system (RIHS) comprising a management access controller (MAC). In selected embodiments, a remote management station (RMS) is implemented to manage the RIHS by communicating with its MAC over a network connection. The RIHS is initially booted by selecting a virtual media device (VMD) that emulates a predetermined physical media device attached to the RMS. In one embodiment, the physical media device is a universal serial bus (USB) mass storage device (e.g., floppy drive, CR-ROM drive, hard drive, etc.), which contains a boot file and appears to the RIHS to be physically attached via the RIHS&#39;s USB bus. 
     Once booted, the RMS transfers additional boot files and installation files containing network share information over an out-of-band network connection to a network port on the MAC. The MAC receives the files and transfers them across the RIHS&#39;s USB bus, where they are loaded into the RIHS&#39;s memory and installed. 
     Once the RIHS is fully booted and the network share installation files are installed, the RIHS uses the network share information to establish a network connection to a network share comprising software code installation files. After the network connection is established, the software code installation files are transferred from the network share to the RIHS for installation. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The present invention may be better understood, and its numerous objects, features and advantages made apparent to those skilled in the art by referencing the accompanying drawings. The use of the same reference number throughout the several figures designates a like or similar element. 
         FIG. 1  is a generalized illustration of an information handling system  100  that can be used to implement the system and method of the present invention; 
         FIG. 2  is a generalized flowchart of the installation of software code on a remote information handling system (RIHS) in accordance with an embodiment of the invention; and 
         FIG. 3  is a generalized block diagram of an RIHS implemented in accordance with an embodiment of the invention for the remote installation of software code. 
     
    
    
     DETAILED DESCRIPTION 
     A method and system are provided for installing software code on a remote information handling system (RIHS) comprising a management access controller (MAC). In selected embodiments, a remote management station (RMS) is implemented to manage the RIHS by communicating with its MAC over a network connection. The RIHS is initially booted by selecting a virtual media device (VMD) that emulates a predetermined physical mass storage device (e.g., floppy drive, CR-ROM drive, hard drive, etc.), which contains a boot file and appears to be physically attached via the RIHS&#39;s USB bus. Once booted, the RMS transfers additional boot files and installation files containing network share information to the MAC, which transfers them across the RIHS&#39;s USB bus to the RIHS&#39;s memory where they are loaded and installed. Once the RIHS is fully booted and the network share installation files are installed, a network connection is established to a network share comprising software code installation files. The software code installation files are transferred from the network share to the RIHS for installation. 
     For purposes of this disclosure, an information handling system may include any instrumentality or aggregate of instrumentalities operable to compute, classify, process, transmit, receive, retrieve, originate, switch, store, display, manifest, detect, record, reproduce, handle, or utilize any form of information, intelligence, or data for business, scientific, control, or other purposes. For example, an information handling system may be a personal computer, a network storage device, or any other suitable device and may vary in size, shape, performance, functionality, and price. The information handling system may include random access memory (RAM), one or more processing resources such as a central processing unit (CPU) or hardware or software control logic, ROM, and/or other types of nonvolatile memory. Additional components of the information handling system may include one or more disk drives, one or more network ports for communicating with external devices as well as various input and output (I/O) devices, such as a keyboard, a mouse, and a video display. The information handling system may also include one or more buses operable to transmit communications between the various hardware components. 
       FIG. 1  is a generalized illustration of an information handling system  100  that can be used to implement the system and method of the present invention. The information handling system includes a processor (e.g., central processor unit or “CPU”)  102 , input/output (I/O) devices  104 , such as a display, a keyboard, a mouse, and associated controllers, a hard drive or disk storage  106 , various other subsystems  108 , network port  110  operable to connect to a network  122 , and system memory  112 , all interconnected via one or more buses  114 . System memory  112  further comprises boot files  116 , network share installation files  118 , and software code installation files  120 . 
       FIG. 2  is a generalized flowchart of the installation of software code  200  on a remote information handling system (RIHS) in accordance with an embodiment of the invention. In selected embodiments, remote installation of software code on an RIHS comprising a management access controller (MAC) begins in step  202 . In step  202 , the RIHS boots to a virtual media device (VMD), which generally uses hardware to emulate universal serial bus (USB) mass storage devices with native USB interfaces, thereby avoiding the need for additional device drivers. In one embodiment (not shown), a virtual media server runs in the RIHS&#39;s MAC and a virtual media client runs in a remote management station (RMS). Administrators can log onto the virtual media server through an out-of-band network connection and establish a virtual media session. Once established, the virtual media session forwards requests from the RIHS to the management client running on the remote management station through a network connection. After the virtual media device is connected through the RIHS&#39;s USB bus, the RIHS&#39;s OS treats it as if the administrator had physically attached a USB hard disk, floppy disk, or compact disk to the RIHS. Once a virtual media device is connected to the server, administrators can remotely boot the device through a management application implemented in the remote management station. Once the management application is launched and the RIHS powered-up and booted, the system management experience is the same as if the administrator were physically present at the RIHS. 
     Once the RIHS has completed its initial boot sequence, the VMD accesses the RMS for additional boot files in step  206 , followed by the RMS generating one or more installation files comprising network share information. Once the network share installation files are generated, the RMS uses a network connection to send the additional boot files and the generated network share installation files in step  210  to the MAC implemented in the RIHS. In one embodiment, the network connection is over a local area network (LAN) using a communications protocol such as Ethernet to connect to a network port implemented in the MAC. In another embodiment, the network connection is over a wide area network (WAN) using a telecommunications protocol such as TCP/IP or frame relay to connect to a network port implemented in the MAC. In yet another embodiment, the network connection implements a plurality of communication technologies and protocols to connect to a network port implemented in the MAC. 
     After the MAC receives the additional boot files and the network share installation files, they are routed in step  212  through a USB port implemented in the MAC to a host USB port on the RIHS, where they are loaded into the RIHS&#39;s memory. Once loaded, boot procedures proceed using the additional boot files and after the server is booted, the installation files comprising the network share information are likewise loaded and executed. After the network share installation files have been installed, the RIHS uses the network share information to establish a network connection to the network share location in step  214 . Once the network connection is established, software code installation files are transferred from the network share to the RIHS for installation in step  216 . In one embodiment, the network connection between the network share and the RIHS is through a LAN on motherboard (LOM) port implemented in the RIHS. Once all software code installation files have been received and installed, remote installation ends in step  218 . 
       FIG. 3  is a generalized block diagram of a remote information handling system (RIHS) implemented in accordance with an embodiment of the invention for the remote installation  300  of software code. In selected embodiments, RIHS  330  comprises a processor (e.g., central processor unit or “CPU”)  102 , input/output (I/O) devices  104 , such as a display, a keyboard, a mouse, and associated controllers, a hard drive or disk storage  106 , various other subsystems  108 , network port  110  operable to connect to a network  122 , and system memory  112 , all interconnected via one or more buses  114 . System memory  112  further comprises boot files  116 , network share installation files  118 , and software code installation files  120 . RIHS  330  also comprises management access controller (MAC)  332  connected via universal serial bus (USB)  342  to I/O port  104 . MAC  332  further comprises network port  334 , USB firmware  340 , and MAC firmware  336 , which further comprises virtual media device (VMD)  338 . 
     Remote management station (RMS)  320  comprises a processor (e.g., central processor unit or “CPU”)  302 , input/output (I/O) devices  304 , such as a display, a keyboard, a mouse, and associated controllers, a physical media device  306  such as a floppy disk drive, a CD-ROM drive or a hard disk drive, various other subsystems  308 , network port  310  operable to connect to a network  122 , and system memory  312 , all interconnected via one or more buses  314 . System memory  312  further comprises management client  322  and virtual media client  324 . RIHS  330 , RMS  320  and network share  348  are all connected via network  122 . 
     In selected embodiments, remote installation of software code on RIHS  330  begins with the RIHS booting to VMD  338 , which generally uses hardware to emulate  334  physical media device  306 . In one embodiment, VMD  338  emulates physical media device  306  as a USB mass storage device with a native USB interface, thereby avoiding the need for additional device drivers. In one embodiment, the physical media device comprises a boot file, which further comprises a boot kernel. In another embodiment (not shown), a virtual media server runs in the MAC  332  and a virtual media client runs in RMS  320 . Administrators can log onto the virtual media server through an out-of-band (OOB) network connection  346  and establish a virtual media session. Once established, the virtual media session forwards requests from the RIHS  330  to the management client running on the RMS  320  through OOB network connection  346 . After the virtual media device is connected through the RIHS&#39;s USB bus  342 , the RIHS  330  treats it as if the administrator had physically attached physical media  306  (e.g., USB hard disk, floppy disk, or compact disk) to the RIHS  330 . Once the virtual media device  338  is connected to the RIHS  330 , administrators can remotely boot the device through the management application  322  implemented in the RMS  320 . Once the management application  322  is launched and the RIHS  330  powered-up and booted, the system management experience is the same as if the administrator were physically present at the RIHS. 
     Once RIHS  330  has completed its initial boot sequence, the VMD  338  accesses the RMS  320  for additional boot files, followed by the RMS  320  generating one or more installation files comprising network share  348  information. Once the network share installation files are generated, the RMS uses a network connection to send the additional boot files and the generated network share installation files to the MAC  332  network port  334  over OOB network connection  346 . In one embodiment, the OOB network connection  346  is over a local area network (LAN) using a communications protocol such as Ethernet to connect to a network port  334 . In another embodiment, the OOB network connection  346  is over a wide area network (WAN) using a telecommunications protocol such as TCP/IP or frame relay to connect to a network port  334 . In yet another embodiment, the OOB network connection  346  implements a plurality of communication technologies and protocols to connect to network port  334 . 
     After the MAC  332  receives the additional boot files and the network share installation files, they are routed through a USB port implemented in the MAC  331  over USB bus  342  to a host USB port on the RIHS  330 , where they are loaded into the RIHS&#39;s memory  112 . Once loaded, boot procedures proceed using the additional boot files  116 , and after the server is booted, the network share installation files  118  comprising the network share  348  information are likewise loaded and executed. After the network share installation files  118  have been installed, the RIHS  330  uses the network share  348  information to establish a network connection from network port  110 , through network  348 , to the network share  348 . Once the network connection is established, software code installation files  120  are transferred from the network share  348  to the RIHS  330  for installation. In one embodiment, the network connection between the network share  348  and the RIHS  330  is through a network port  110  comprising a LAN on motherboard (LOM) port. 
     It will be apparent to those of skill in the art that the undesirable latency and increased software code installation times of current approaches are reduced as only boot files and network share installation files are routed over USB bus  342 . Software code installation files, which typically comprise the majority of the files involved when installing software code, are instead routed from network share  348  through network  122  to network port  110 . As a result, the slower bus speed of USB bus  342  and the intermediate processing steps described in greater detail herein are removed as constraints. Skilled practitioners in the art will likewise recognize that many other embodiments and variations of the present invention are possible. In addition, each of the referenced components in this embodiment of the invention may be comprised of a plurality of components, each interacting with the other in a distributed environment. Furthermore, other embodiments of the invention may expand on the referenced embodiment to extend the scale and reach of the system&#39;s implementation.