Abstract:
A target machine in a sub-network requires network booting. The target machine broadcasts messages in the sub-network indicating that the target machine needs booting, and which are detected by other machines in the sub-network which are capable of booting the target machine. The other machines respond to the messages by electing one of them as a master boot control for the target machine. The elected machine controls booting of the target machine.

Description:
TECHNICAL FIELD 
       [0001]    The present invention relates to a method of network booting a target computer, a computer for network booting a target computer and a computer program for network booting a target computer. 
       BACKGROUND 
       [0002]    It is known to use DHCP/PXE processes to network boot a computer which requires booting (herein the “target machine”). The PXE protocol is a standard remote boot method described in the “Preboot Execution Environment (PXE) Specification” issued by Intel Corp. DHCP (Dynamic Host Configuration Protocol) is a known protocol used by PXE. Examples of network booting methods are described in US 2008/0155245 A1 and US 2003/0005096 A1. 
         [0003]    It is desirable to improve the selection of the machine which boots the target machine. 
       SUMMARY 
       [0004]    In accordance with one aspect of the present invention, there is provided a method of booting a target machine in a sub-network of a computer network, the sub-network comprising other machines capable of booting the target machine, in which method the target machine transmits on the sub-network a message indicating it requires booting, in response to the message, the other machines in the sub-network interact to elect one of them as a local network booting master, and the elected booting master controls the booting of the target machine. 
         [0005]    In an embodiment of the invention the target machine transmits a DHCP message indicating it needs booting and each of the other machines has a DHCP service. 
         [0006]    In accordance with another aspect of the present invention, there is provided a non-transitory computer readable medium storing program code which when run on a suitable computer in a sub-network of a computer network including a target machine, detecting a message transmitted on the sub-network by the target machine indicating it requires booting, in response to the message, interacting with other machines in the sub-network interact having similar program code to elect one of them as a local network booting master, and control the booting of the target machine if the computer having the non-transitory computer readable medium is the elected master. 
         [0007]    In an embodiment of the invention the program code includes a DHCP service for detecting a DHCP message transmitted on the sub-network by the target machine indicating it requires booting. 
         [0008]    The election of the booting master takes place based on predetermined criteria and the criteria may be considered in a predetermined order of priority. The criteria define the desired properties of a machine for booting the target machine to enable efficient booting of the target machine. 
         [0009]    In embodiments of the invention the criteria include, but are not limited to, one or more of:
       i) Is the machine able to respond?   ii) Does the machine have a network boot program?   iii) Does the machine have an Operating System suitable for the target machine?       
 
         [0013]    The election criteria may additionally include, but are not limited to, one or more of the following:
       iv) How many sessions is the computer running? The machine running the fewest sessions is preferred.   v) What is the type of machine? A server is preferred to a PC. A desktop PC is preferred to a laptop.       
 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0016]    Further features and advantages of the invention will become apparent from the following description of illustrative embodiments of the invention, given by way of example only, which is made with reference to the accompanying drawings, in which: 
           [0017]      FIG. 1  is a schematic block diagram of a network including a wide area network and at least one sub-network in which network booting takes place; 
           [0018]      FIG. 2  is a schematic block diagram of a workstation of the network of  FIG. 1 ; 
           [0019]      FIG. 3  is a flow chart providing an overview of an example of a network booting process in accordance with the present invention; 
           [0020]      FIG. 4  is a schematic diagram of an election process; and 
           [0021]      FIG. 5  is a schematic interaction diagram illustrating a DHCP process for carrying out an example of a network booting process in accordance with the present invention. 
       
    
    
     DETAILED DESCRIPTION 
     Structure of the Network of FIGS. 1 and 2 
       [0022]    Referring to  FIG. 1 , a systems management tool  130  for example a Configuration Manager (SCCM) and a database  135  are connected to a WAN  105  to which one or more branch networks  100 ,  101  are also connected via routers  110 . The systems management tool  130  includes a configuration manager database  131  and a web service  133 . The data base  135  stores boot action data which are instructions for controlling booting of a machine to be booted. 
         [0023]    Only two sub-networks,  100  and  101 , are shown in  FIG. 1 . Machines of different types may be connected to the branch network  100 , for example personal computers  115 ,  116 , desktop machines, laptops and workstations  121 ,  122 . Each machine is equipped with conventional data storage and there may be an additional shared storage resource (not shown).  FIG. 1  also shows a target machine  120  which is to be network booted. The target machine  120  in this example is a bare metal machine which has a PXE BIOS as known but no operating system and no application programs installed. Two or more, and preferably all of the machines  115 ,  116 ,  121  and  122  (but not initially the bare metal machine  120 ) in the subnet have a program referred to as PXE Lite Local and a DHCP service as will be described below. ( FIG. 1  shows the PXE Lite Local program and a DHCP service at only one machine, but it is installed at two or more of the machines.) 
         [0024]    Referring to  FIG. 2 , an illustrative one of the computers machines  115 ,  116 ,  120 ,  121  and  122  comprises, amongst other items: a CPU  222 ; a main memory  240  for example a hard disk drive or other storage device, for example electronic memory; a network interface  260  a BIOS  239  and one or more busses  216 . The BIOS  239  is typically a Read Only Memory (ROM). The machines may also have other items for example a display driver  280  coupled to a display device  282 ; human interface devices or input devices for example a keyboard  210  and a pointing device  212 . The items are conventional and interact via the buss(es)  216  in a conventional way. The network interface couples the computer to the network  105  via the router  110  and to other computers in the sub-network  100  having respective IP (Internet Protocol) addresses. The computer also comprises a power supply  214 . Programs are stored in the main memory  240  and executed by the CPU  222 . 
         [0025]    The ROM  239  or another ROM (not shown) of the target machine  120  stores the PXE BIOS program which is needed to initiate a network boot process. Two or more of, and preferably all, the other machines  115 ,  116 ,  121 ,  122  in the network have a network boot program, Windows PE pre-installation files, Operating system images, a program the Applicants 1E Limited call “PXE LITE local” which will be described below. PXELite software is available from 1E Limited, and a DHCP service. 
         [0026]    Consequently, up-to-date operating system images will be available on two or more of the machines  115 ,  116 ,  121 , 122  in the sub-network  100 . The machines having PXE Lite local installed are referred to as “PXE Lite local machines.” 
         [0027]    PXE LITE Local interacts with a program the Applicants 1E Limited call “PXE LITE Central” which is installed either in the configuration manager  131  or in another machine (not shown) which accesses the SCCM. PXE Lite Central will be described below. 
       EXAMPLE 
       [0028]    Referring to  FIG. 3 , in step  30 , the target machine  120  broadcasts a DHCPDISCOVER message on the subnet  100 . 
         [0029]    In step  32 , the DHCP server  125  responds to the message, causing the PXELite local machines  115 ,  116 ,  121  and  122  on subnet  100  to elect one of them as the local PXE Lite Local server which interacts with the target machine to provide the required operating system. 
         [0030]    In step  34  the elected PXE Lite local machine contacts PXE Lite Central to find out whether it should PXE boot the target machine  120 . 
         [0031]    In step  36 , PXE Lite Central checks the configuration manager  130  for relevant Operating System deployment advertisements. 
         [0032]    In step  38 , the webservice  133  uses boot action data from the boot status information database  135  to instruct the elected PXE Lite Local server how to react. 
       Election Criteria 
       [0033]    A PXE Lite Local machine on the subnet  100  is elected by an election process which is carried out by interaction of the PXE Lite Local machines. Each PXE Lite local machine  42  has election software  40  of known type which uses an election group address. The election is based for example on the following criteria and order of priority:
       i) Is the machine able to respond ?   ii) Does the machine have a network boot program?   iii) Does the machine have an Operating System suitable for the target machine?       
 
         [0037]    The election criteria may additionally include for example one or more of the following in the following illustrative order of priority:
       iv) How many sessions of booting target machines is the computer running? The machine running the fewest sessions is preferred.   v) What is the type of machine? A server is preferred to a PC. A desktop PC is preferred to a laptop.       
 
         [0040]    Other orders of priority for the additional criteria may be chosen. 
         [0041]    If there are several target machines requiring booting separate elections are carried out for each target machine. 
         [0042]      FIG. 4  illustrates one example of the use of the election criteria to elect a local machine. 
         [0043]    In step S 50  all the machines on the subnet respond to the DHCP server to initiate an election. In step S 51  the machines contact the Configuration manager to determine what boot image is required for the target machine. 
         [0044]    The election according to the criteria then proceeds with those machines which do not have the required boot image exiting the election at step S 53 . The remaining machines determine which are able to respond S 54  to the boot request and which have S 55  a network boot program. Steps S 52 , S 54  and S 55  may be done in a different order. Machines which fail those criteria exit the election. The remaining machines then elect one machine on the basis of (any) other criteria. 
       Power Management During Election 
       [0045]    In an embodiment, power management is prevented from taking place at the computer which wins the election. The power management may be re-enabled after the booting system has started the process of installing an OS. 
       DHCP Process and Interaction of the Machines (FIG. 4) 
       [0046]    When the target machine  120  first connects to the network, it broadcasts Si the DHCPDISCOVER message. It has to broadcast the message as it has no network address at this stage. The DHCPDISCOVER message includes the MAC address and SM BIOS (Systems Management BIOS) GUID (Globally Unique ID) of the target machine  120 . The DHCP service on the PXELite local machines detect the DHCPDISCOVER message and that triggers an election process S 2  as described above. The elected machine responds S 31  with a DHCPOFFER message, offering various types of data including an IP network address for the newly started target machine. The elected machine also sends S 32  the IP address of the elected machine. Steps S 31  and S 32  may be combined. The target machine  120  can accept any or all of the data. In accordance with the known DHCP process, it accepts the network address by sending S 4  a DHCPREQUEST message which the DHCP service of the elected machine will acknowledge by sending S 5  a DHCPACK message (not shown). The DHCP request is also transmitted to the other machines on the subnet. The DHCP messages are transmitted in packets which have a fixed size header. Data can be held in the header or by populating numbered field options within the message body. In practice, the header has enough space to carry a network address for a newly booting machine. 
         [0047]    The elected PXE Lite local machine then interacts with the target machine in the manner known for PXELite. In step S 6  the target machine sends a Boot Service Discover message to the elected machine which responds with an acknowledgement S 7 . The elected machine responds by sending S 8  a message to PXE Lite central. The message includes the MAC and SM BIOS GUID of the target machine. PXELite central then interrogates S 9  the SCCM (Configuration Manager) to determine if there are any Operating System (OS) advertisements for the target machine. If there are any advertisements, PXE Lite Central obtains S 10  boot action data for the target machine from the boot action data base and sends S 11  it to the elected PXELite local machine. 
         [0048]    The boot action data is used by to determine the behavior of the PXE Lite local machine in booting S 12  the target machine. For example, in accordance with the boot action data:
       A) if a mandatory OS Deployment Task Sequence advertisement is found, the elected PXE Lite local machine boots the target machine using the net boot program and WIN PE pre-installation files in known manner;   B) if only a non-mandatory OS Deployment Task Sequence advertisement is found, the elected PXELite local machine, user interaction is required to boot the target machine; or   C) if no OS Deployment Task Sequence advertisement is found, PXE boot is abandoned and the target machine is allowed to boot using its local OS if it has one.       
 
         [0052]    US 2008/0155245 A1 describes the use of the boot action data in more detail. 
       Providing Operating Systems and Other Software to the PXE Lite Local Machines 
       [0053]    The foregoing description assumes that the PXE Lite Local machines  115 ,  116 ,  121  and  122  have the appropriate software packages , for example Operating Systems available. The packages are made available by downloads from the SCCM  130 . To provide the downloads efficiently, the SCCM downloads are delivered from the SCCM server  130  over the WAN  105  in the following manner which may be implemented by NOMAD software available from 1E Limited, described in US2006/159090. When a new package is available, it is advertised by the SCCM server  130  which alerts the machines  115 ,  116 ,  121 , 122  on the branch network  100 . This triggers a selection process at the branch network  100  and causes one of the machines  115 ,  116 ,  121 ,  122  to be elected as an active download master. The mechanism may be used to distribute the image files. These mechanisms are used to ensure that the following are present on at least two active machines, and preferably all active machines,  115 ,  116 ,  121 ,  122  in each sub-network the network boot program, the Windows PE pre-installation files, the Operating system images, the PXE Lite Local software including the DHCP service. 
       Computer Programs 
       [0054]    The invention also provides a suite of one or more computer programs which, when run on a computer system, implements the procedures described above. The computer program(s) is/are stored on one or more non transitory carriers, for a computer readable medium for example a hard disk, an optical disc, a magneto-optical disk, a compact disc, a magnetic tape, electronic memory including Flash memory, ROM and RAM, a RAID or any other suitable computer readable storage device. 
         [0055]    One program of suite of programs is run on the PXE Lite local machines. Another program or suite of programs is run on a PXE Lite Central machine which may be the same machine as runs the SCCM or another machine linked to the SCCM. 
         [0056]    The above embodiments are to be understood as illustrative examples of the invention. Further embodiments of the invention are envisaged. For example, one of the election criteria could be vi) Is power management active? An electable machine without power management active is preferred to a machine with power management active because there is no risk of it adopting a low power state during the interaction with the target machine. If power management is active it may be set to avoid adopting a low power state at least while the electable machine interacts with the target machine. 
         [0057]    It is to be understood that any feature described in relation to any one embodiment may be used alone, or in combination with other features described, and may also be used in combination with one or more features of any other of the embodiments, or any combination of any other of the embodiments. Furthermore, equivalents and modifications not described above may also be employed without departing from the scope of the invention, which is defined in the accompanying claims.