Patent Publication Number: US-2016241432-A1

Title: System and method for remote configuration of nodes

Description:
TECHNICAL FIELD 
     This disclosure relates generally to information handling system, and relates more particularly to a system and method for remote configuration of nodes. 
     BACKGROUND 
     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. For example, an information handling system may be a tablet computer, a mobile device (e.g., personal digital assistant (PDA) or smart phone), or an enterprise server configured to transmit data on a wireless communications network. 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. 
     Certain information handling systems require flash storage space to perform management tasks. As space constraints increase in information handling systems, certain issues and problems may arise with providing sufficient flash storage space. 
     SUMMARY 
     According to embodiments of the present disclosure, a system comprises a first node and the first node comprises a first controller. The first controller is operable to access a set of files that are stored within a drive of the first node and configure the first node based on the set of files. The first controller is further configured to receive, from a second controller, a first message requesting access to the partition in the first node comprising the set of files. The second controller may be within a second node, which is different than the first node. In response to receiving the first message, the first controller transmits a second message to the second controller allowing the second controller to access the partition in the first node comprising the set of files by emulating the partition to configure the second node. The first controller is further configured to transfer the set of files to the second controller. 
     Certain embodiments of the present disclosure may provide one or more technical advantages. For example, by allowing access to the set of files stored on the first node, the second node may not need as much storage space (e.g., the second node may not need a separate storage device such as a flash storage device) because it may not need to store items such as operating system images and operating system drivers used for configuring or updating the operating system or other software, firmware, and/or hardware of the second node. This may provide the ability to reduce or eliminate the need for certain storage devices on many nodes and/or servers, thereby saving costs. As another example, one advantage can be reducing or eliminating the need to ship additional media (e.g., optical discs such as Compact Discs (CDs) or Digital Video Discs (DVDs)) to customers. 
     In some embodiments, the system allows its nodes to be configured and/or updated by accessing a set of files stored on a first node, rather than requiring additional media to store the set of files. As an additional example, as the space used by operating systems increases and space constraints in information handling systems continue to remain a concern, one advantage can be reducing or eliminating the need for large flash storage to store items such as operating system drivers, updates, or other software or files used to update or configure an operating system or other software on a node. 
     In some embodiments, emulating the partition may include using a Network Block Device (NBD) service. The first message may be transmitted to first controller as a request and the second message may be transmitted to the second controller as a NBD response. By using NBD responses, the second message allows the second controller to access the partition in the first node comprising the set of files by emulating the partition to configure the second node. 
     In some embodiments, the first controller receives a third message comprising a request using Domain Name System Service Discovery (DNS-SD) and the third message may request whether a NBD service is available. In some embodiments, the first controller transmits a fourth message comprising a response using DNS-SD and the fourth message indicates that the NBD service is available. By using DNS-SD, the system allows for nodes to discover NBD services. 
     Other technical advantages of the present disclosure will be readily apparent to one skilled in the art from the following figures, descriptions, and claims. Moreover, while specific advantages have been enumerated above, various embodiments may include all, some, or none of the enumerated advantages. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       Reference is now made to the following description taken in conjunction with the accompanying drawings, wherein like reference numbers represent like parts. 
         FIG. 1A  and  FIG. 1B  are block diagrams of examples of information handling systems in accordance with some embodiments of the present disclosure. 
         FIGS. 2-3  are flowcharts describing examples of configuring one or more nodes in an information handling system. 
     
    
    
     DETAILED DESCRIPTION 
       FIG. 1A  and  FIG. 1B  are block diagrams of examples of information handling systems  100   a  and  100   b  in accordance with some embodiments of the present disclosure. In particular embodiments, components of information handling systems  100   a - b  may include master nodes  120   a - b , slave nodes  130   a - b  and  140   a - b  housed within chassis  110 . Nodes  120   a - b ,  130   a - b , and  140   a - b  may be coupled to modular chassis controller  150  and/or network  160 . Domain Name System (DNS) server  170  may also be coupled to network  160  in order to communicate with nodes  120   a - b ,  130   a - b , and  140   a - b . Master nodes  120   a - b  may include drives  126   a - b , which may store operating systems  127   a - b . Drives  126   a - b  may include one or more partitions  128   a - b  that are separate from operating systems  127   a - b . Partitions  128   a - b  may store a set of files used to configured nodes  120   a - b ,  130   a - b , and  140   a - b . Systems  100   a - b  are operable to configure one or more master nodes  120   a - b  and one or more slave nodes  130   a - b  and  140   a - b  using a set of files stored in partitions  128   a - b  within drives  126   a - b  of master nodes  120   a - b.    
     Chassis  110  of  FIG. 1A , may, in some embodiments, comprise a structure configured to fully or partially enclose one or more nodes, such as nodes  120   a ,  130   a , and  140   a . For example, chassis  110  may include or may be a part of a DELL POWEREDGE VRTX chassis or a DELL POWEREDGE M1000e Blade Enclosure. Nodes  120   b ,  130   b , and  140   b , illustrated in  FIG. 1B , may also be enclosed within one or more chassis  110 . For example, node  120   b  may be in the same chassis  110  as node  130   b , while node  140   b  may be housed in a separate chassis. Chassis  110  may also comprise modular chassis controller (MCC)  150 . MCC  150  of  FIG. 1A , in some embodiments, may be any system, device, or apparatus configured to facilitate management and/or control of system  100   a . For example, MCC  150  may be a DELL Baseboard Management Controller (BMC). In some embodiments, MCC  150  may be configured to issue commands and/or other signals to manage and/or control system  100   a  and/or components of system  100   a . For example, MCC  150  may facilitate communication between controllers of different nodes (e.g., controller  133   a  of node  130   a  communicating with controller  123   a  of node  120   a ). MCC  150  may comprise one or more: microprocessors, microcontrollers, digital signal processors (DSP), application specific integrated circuits (ASIC), field programmable gate arrays (FPGA), electrically erasable programmable read-only memories (EEPROM), or any suitable combination thereof. As shown in  FIG. 1A , MCC  150  may be communicatively coupled to nodes  120   a ,  130   a , and  140   a . In some embodiments, MCC  150  may provide a user interface that permits a user to configure and control nodes, such as node  120   a.    
     Nodes  120   a - b ,  130   a - b , and  140   a - b  in some embodiments, may comprise a server sled, a server module, a server node, a server blade, or any suitable structure capable of housing node components (e.g., drives  126   a - b , processors  121   a - b ,  131   a - b , and  141   a - b , memory modules  122   a - b ,  132   a - b , and  142   a - b , and controllers  123   a - b ,  133   a - b , and  143   a - b ). Nodes  120   a - b ,  130   a - b , and  140   a - b  may comprise processors  121   a - b ,  131   a - b , and  141   a - b , memory modules  122   a - b ,  132   a - b , and  142   a - b , and controllers  123   a - b ,  133   a - b , and  143   a - b . In some embodiments, nodes  120   a - b  may be master nodes and may include one or more drives  126   a - b  that store operating systems  127   a - b  and partitions  128   a - b . It should be understood that the particular illustrated components of each node are examples only and that additional, fewer, and/or alternative components may be present. For example, node  120   a  may include multiple processors  121   a , memory modules  122   a , or drives  126   a . As another example, although only node  120   a  (and node  120   b  in  FIG. 1B ) is designated a “master node,” there may be any number of master nodes within system  100   a . For example, system  100  may include a second master node that may act as a back up master node in the event that the original master node fails or has any problems. By including a second master node, system  100  is able to continue operation without interruption, allowing time for the original master node to be repaired and/or replace. 
     Drives  126   a - b , in some embodiments, may comprise a flash drive, a solid-state drive, a hard disk drive, or any other suitable storage device operable to store operating systems  127   a - b  and partitions  128   a - b . Operating systems  127   a - b  may, in some embodiments, comprise instructions executable by processors  120   a - b  to operate systems  100   a - b  and/or nodes  120   a - b  after booting. Operating systems  127   a - b  may be stored within a separate partition of drives  126   a - b  than partitions  128   a - b.    
     Partitions  128   a - b , in some embodiments, may be operable to store a set of files that can be used to configure nodes  120   a - b ,  130   a - b , and  140   a - b . The set of files within partitions  128   a - b  may, in some embodiments, be used to perform management tasks such as firmware updates or system repair. For example, the set of files may comprise operating system images or operating system drivers. In some embodiments, the set of files stored within partitions  128   a - b  may be removed in order to provide space for separate sets of files used to perform other management tasks. Partitions  128   a - b  (e.g., a deployment partition) may be created by an administrator of systems  100   a - b  using, as examples, an Intelligent Platform Management Interface (IPMI) or factory provisioning software tools. In some embodiments, partitions  128   a - b  may be a hidden partition such that it is not visible to the host system, for example operating systems running on nodes  120   a - b , but rather only visible to controllers  123   a - b . For example, controllers  123   a - b  may detect the presence of partitions  128   a - b , respectively, via a Peripheral Component Interconnect Express Vendor Defined Message (PCIe-VDM) while certain operating systems running on nodes  120   a - b  may not detect the presence of partitions  128   a - b , respectively. Partitions  128   a - b  may each be a portion of a drive allocated for a particular file system. Examples of file systems deployed on partitions  128   a - b  are: FAT16, FAT32, NTFS, HFS, HFS+, ZFS, EXT3, EXT4, and BTRFS. 
     Processors  121   a - b ,  131   a - b , and  141   a - b  may, in various embodiments, comprise any system, device, or apparatus operable to interpret and/or execute program instructions and/or process data. Processors  121   a - b ,  131   a - b , and  141   a - b  may include one or more: microprocessors, microcontrollers, digital signal processors (DSP), application specific integrated circuits (ASIC), or another digital or analog circuitry configured to interpret and/or execute program instructions and/or process data. In some embodiments, processors  121   a - b ,  131   a - b , and  141   a - b  may interpret and/or execute program instructions and/or process data stored locally (e.g., in memory modules  122   a - b ,  132   a - b , and  142   a - b , respectively). In the same or alternative embodiments, processors  121   a - b ,  131   a - b , and  141   a - b  may interpret and/or execute program instructions and/or process data stored remotely. 
     Memory modules  122   a - b ,  132   a - b , and  142   a - b  may, in various embodiments, comprise any system, device, or apparatus operable to retain and/or retrieve program instructions and/or data (e.g., computer-readable media). Memory modules  122   a - b ,  132   a - b , and  142   a - b  may comprise one or more modules; such modules can include random access memory (RAM), electrically erasable programmable read-only memory (EEPROM), a PMCCIA card, flash memory, magnetic storage, opto-magnetic storage, and/or a suitable selection and/or array of volatile or non-volatile memory that retains data after power to its associated information handling system, such as information handling systems  100   a - b , is powered down. 
     In certain embodiments, controllers  123   a - b ,  133   a - b , and  143   a - b  may be implemented using any suitable device, system, or apparatus configured to monitor and/or manage one or more aspects of systems  100   a - b , such as nodes  120   a - b ,  130   a - b , and  140   a - b , respectively. For example, controllers  123   a - b ,  133   a - b , and  143   a - b  may include or may be a part of a DELL REMOTE ACCESS CONTROLLER (DRAC) or an INTEGRATED DELL REMOTE ACCESS CONTROLLER (iDRAC). In certain embodiments, controllers  123   a - b ,  133   a - b , and  143   a - b  may enable an administrator or other user to remotely monitor and/or remotely manage one or more aspects of systems  100   a - b  and/or nodes  120   a - b ,  130   a - b , and  140   a - b , respectively. 
     In some embodiments, controllers  123   a - b ,  133   a - b , and  143   a - b  may comprise Domain Name System-Service Discovery (DNS-SD) (e.g., as specified by the Internet Engineering Task Force) servers  124   a - b  and DNS-SD clients  134   a - b  and  144   a - b  in order to allow a host to discover a list of named instances of a desired service using DNS messages. Systems  100   a - b  may use any system that facilitates service discovery via the DNS-SD protocol suite, for example, AVAHI (e.g., as developed by Lennart Poettering and Trent Lloyd) and BONJOUR (e.g., as developed by APPLE INC.). To implement DNS-SD, systems  100   a - b  may comprise DNS-SD servers  124   a - b  and DNS-SD clients  134   a - b  and  144   a - b . In some embodiments, DNS-SD clients  134   a - b  and  144   a - b  may transmit a message using DNS-SD requesting information on whether a service (e.g., a Network Block Device (NBD) service as used in the LINUX kernel) is available. For example, node  130   a  may use DNS-SD client  134   a  to engage in multicast discovery, which comprises sending a message using DNS-SD to one or more nodes  120   a  and  140   a  in system  100   a  to determine what services are available. In some embodiments, DNS-SD server  124   a  may transmit a message using DNS-SD in response indicating what services are available. The message from DNS-SD server may further include information such as the service name and the domain of the discovered service. 
     In some embodiments, as illustrated in  FIG. 1B , system  100   b  comprises DNS server  170 , which may comprise a server, node, or any device operable to store DNS records for a domain name and respond with answers to queries against its stored DNS records. For example, node  130   a  may use DNS-SD client  134   a  to engage in unicast discovery in which DNS-SD client  134  a sends a message using DNS-SD to DNS server  170  to determine what services are available in system  100   b . DNS server  170  may transmit a message using DNS-SD in response, indicating the name and domain of available services. Unicast discovery may be advantageous in some embodiments because it may reduce the number of DNS-SD messages that DNS-SD clients  134   a - b  and  144   a - b  may need to send to discover what services are available. Further, unicast discovery may reduce the number of DNS-SD messages that DNS-SD servers  124   a - b  may need to send to inform DNS-SD clients  134   a - b  and  144   a - b , respectively, what services are available. For example, DNS-SD server  124   b  may send a message to DNS server  170  regarding the services available on node  120   b  so that DNS server  170  may store that information, rather than DNS-SD server  124   b  responding to DNS-SD requests multiple times from various nodes  130   b  and  140   b.    
     In some embodiments, controllers  123   a - b ,  133   a - b , and  143   a - b  may comprise Network Block Device (NBD) servers  125   a - b  and NBD clients  135   a - b  and  145   a - b  to enable a device stored in a remote location (e.g., partition  128   a  stored on node  120   a ) to be recognized by a separate node (e.g., node  130   a ) as a device to which the node is connected. NBD components, in some embodiments, may comprise NBD servers  125   a - b  and NBD clients  135   a - b  and  145   a - b . In some embodiments, NBD clients  135   a - b  and  145   a - b  may be configured to retrieve data (e.g., set of files in partitions  128   a - b ) by sending requests to NBD servers  125   a - b , respectively. Once NBD servers  125   a - b  receive the request, they may respond with the requested data. In some embodiments, slave controller (e.g, controller  133   b ) may send a message requesting to update its node (e.g., node  130   b ) to DNS server  170  and/or other nodes in system  100   b . In some embodiments, the second controller may use the NBD service to emulate the partition in the first node comprising the set of files to configure the second node. Using the NBD service provides one example of how the second controller may emulate the partition in the first node; other techniques of emulating the partition may be used in various embodiments. 
     User interfaces  181 - 183 , illustrated in  FIG. 1B , may include any instrumentality or aggregation of instrumentalities by which a user may interact with system  100   b . User interfaces  181 - 183  may comprise a system, device, or apparatus generally operable to receive and/or transmit data to, from, or within system  100   b . For example, user interfaces  181 - 183  may permit a user to input data and/or instructions into system  100   b  (e.g., via a keyboard, pointing device, touch screen, and/or other suitable means), and/or otherwise manipulate system  100   b  and its associated components. User interfaces  181 - 183  may also permit system  100   b  to communicate data to a user, e.g., by means of a display device. For example, user interfaces  181 - 183  may include a touch panel that may include circuitry for enabling touch functionality in conjunction with a display. In some embodiments, an administrator of system  100   b  may utilize user interfaces  181 - 183  to store the set of files in partition  128   b  of drive  126   b.    
     Network  160 , illustrated in  FIG. 1B , in some embodiments, may be implemented as, or may be a part of, a storage area network (SAN), personal area network (PAN), local area network (LAN), a metropolitan area network (MAN), a wide area network (WAN), a wireless local area network (WLAN), a virtual private network (VPN), an intranet, the Internet or another appropriate architecture or system that facilitates the communication of signals, data and/or messages (generally referred to as data). Network  160  and its various components may be implemented using hardware, software, or any combination thereof. Network  160  is configured such that nodes  120   b ,  130   b , and  140   b  may communicate with or access information in information handling system  100   b , or particular components of information handling system  100   b , such as DNS server  170 . Although  FIG. 1B  illustrates one network  160 , it should be understood that any number of networks may be included. 
     In some embodiments, network interfaces  129   b ,  139   b , and  149   b , illustrated in  FIG. 1B , may be any suitable system, apparatus, or device operable to serve as an interface between nodes  120   b ,  130   b , and  140   b  and network  160 . As an example and not by way of limitation, network interfaces  129   b ,  139   b , and  149   b  may include a network interface controller or card (NIC) or network adapter for communicating with an Ethernet or other wireline network or a wireless NIC (WNIC) or wireless adapter for communicating with a wireless network, such as a WI-FI network. Network interfaces  129   b ,  139   b , and  149   b  may enable nodes  120   b ,  130   b , and  140   b  to communicate over network  160  using a suitable transmission protocol and/or standard, including, but not limited to, transmission protocols and/or standards enumerated above with respect to the discussion of network  160 . Network interfaces  129   b ,  139   b , and  149   b  may be communicatively coupled to controllers  123   b ,  133   b , and  143   b , respectively, by a communication medium, such as a Peripheral Component Interconnect (PCI) bus, PCI-Express (PCIe) bus, PCIe Vendor Defined Message (VDM) HyperTransport (HT) bus, System Management Bus (SMBus), or any suitable bus architecture. 
     In some embodiments, controllers  123   a - b  are configured to access a set of files stored in partitions  128   a - b  and configure nodes  120   a - b , respectively, based on the set of files. Controllers  123   a - b  may be further configured to receive a DNS-SD message requesting whether a NBD service is available. In some embodiments, as illustrated in  FIG. 1A , controller  123   a  may receive the DNS-SD message sent from one or more slave controllers  133   a  and  143   a . Controller  123   a  may be further configured to send a response using DNS-SD indicating that NBD service is available. In certain embodiments, as illustrated in  FIG. 1B , controller  123   b  may send information to DNS server  170  via network  160 , such that DNS server  170  responds to requests from controllers  133   b  and  143   b  with information regarding an available NBD service. Controllers  123   a - b  may be further configured to receive a NBD request from slave controllers  133   a - b  and  143   a - b  requesting access to drives  126   a - b . Controllers  123   a - b  may be configured to transmit a NBD response allowing slave controllers  133   a - b  and  143   a - b  access to drives  126   a - b  and transmitting the set of files stored within partitions  128   a - b , respectively. 
     In some embodiments, controllers  133   a - b  and  143   a - b  are configured to: determine that nodes  130   a - b  and  140   a - b  require a management task to be performed (e.g., installing operating system, updating operating system with OS drivers), send a DNS-SD request to controllers  123   a - b  requesting whether a NBD service is available, and receive a DNS-SD response from controllers  123   a - b  indicating that a NBD service is available. In some embodiments, as illustrated in  FIG. 1B , controllers  133   b  and  143   b  may send a DNS-SD request to DNS server  170  and receive a response from DNS server  170  indicating the nodes that may offer a NBD service. Controllers  133   a - b  and  143   a - b  may be further configured to send a NBD request to controllers  123   a - b , receive a NBD response sent from controllers  123   a - b  allowing access to drives  126   a - b , emulate partitions  128   a - b  to perform the necessary management task for nodes  130   a - b  and  140   a - b , and receive the set of files stored in partitions  128   a - b.    
     In some embodiments, with reference to  FIG. 1A , system  100   a  may operate as follows. Controller  123   a  may detect the presence of partition  128   a  within drive  126   a  and determine that a management task (e.g., firmware update, installation of an operating system, updating an operating system, updating a driver) needs to be performed on node  120   a . Controller  123   a  may access the set of files (e.g., an operating system image) within partition  128   a  in order to configure and/or update node  120   a . Slave controllers  133   a  and  143   a  may determine that a management task (e.g., installation of an operating system) needs to be performed on nodes  130   a  and  140   a . Controllers  133   a  and  143   a  may send a DNS-SD message using DNS-SD clients  134   a  and  144   a , through MCC  150 , to master controller  123   a . The DNS-SD message for example, may request whether a NBD service is available on node  120   a . Controller  123   a , after receiving the DNS-SD message from controllers  133   a  and  143   a  may determine that a NBD service is available and send a DNS-SD response to controllers  133   a  and  143   a  indicating an NBD service is available. Slave controllers  133   a  and  143   a  may receive the DNS-SD message, which includes information regarding the available NBD service, at DNS-SD clients  134   a  and  144   a . Controllers  133   a  and  143   a  may use NBD clients  135   a  and  145   a  to send a NBD request message requesting access to a set of files stored within partition  128   a , so that nodes  130   a  and  140   a  may be configured and/or updated. Controller  123   a  may receive the NBD request message at NBD server  125   a  and send a response message indicating that controllers  133   a  and  143   a  have access to partition  128   a . Controllers  133   a  and  143   a  may use NBD clients  135   a  and  145   a  to emulate partition  128   a  to access the set of files stored on partition  128   a  and update and/or configure nodes  130   a  and  140   a.    
     In some embodiments, with reference to  FIG. 1B , system  100   b  may operate as follows. Master controller  123   b  may detect the presence of partition  128   b  comprising a set of files configured to update and/or configure node  120   b . Controller  123   b  may access the set of files in order to update and configure node  120   b . Slave controllers  133   b  and  143   b , may determine that a management task (e.g., installing an operating system) needs to be performed on nodes  130   b  and  140   b . Controllers  133   b  and  143   b  may use DNS-SD clients  134   b  and  144   b  to send a multicast message to other nodes within system  100   b . For example, controller  143   b  may use network  160  to send a DNS-SD request message to controllers  123   b  and  133   b . Continuing the example, controller  133   b  of slave node  130   b  may not respond to controller  143   b  because it does not have a NBD service available, while controller  123   b  would respond to controller  143   b  indicating that it has a NBD service available and giving additional information about the NBD server. In some embodiments, controller  143   b  may utilize unicast discovery by sending a DNS-SD message to DNS server  170  through network  160 . DNS server  170  may receive the DNS-SD message from controller  143   b  and determine information regarding an available NBD service (e.g., that controller  123   b  has a NBD service available). DNS-SD server  170  may send a response DNS-SD message to controller  143   b  including the information regarding the available NBD service. Controller  143   b  may send a NBD request to controller  123   b , knowing that controller  123   b  has a NBD service available, either because controller  123   b  responded to slave controller  143   b  itself or because slave controller  143   b  received this information from DNS server  170 . Controller  123   b  may receive the NBD request at NBD server  125   b  and send a NBD response indicating that controller  143   b  may access partition  128   b . Controller  123   b  then transmits the set of files stored within partition  128   b . Controller  143   b  may emulate partition  128   b  that stores the set of files in order to update and/or configure its host system node  140   b.    
       FIG. 2  illustrates a flowchart describing an example of configuring one or more nodes in an information handling system. To illustrate examples of configuring one or more nodes, the steps of  FIG. 2 , described below, discuss some of the components of  FIG. 1A , although other components not illustrated in  FIG. 1A  may be used. At step  202 , in some embodiments, controller  123   a  accesses a set of files stored within partition  128   a . The set of files may include data that allows controller  123   a  to update and/or configure node  120   a . For example, the set of files may include the image of an operating system or operating system drivers. At step  204 , in some embodiments, controller  123   a  configures master node  120   a  based on the set of files accessed in step  202  (e.g., configuring or updating the operating system or other software, firmware, and/or hardware of the master node). 
     At step  206 , in some embodiments, controller  143   a  transmits DNS-SD request messages to other nodes in system  100   a . Controller  143   a  may use MCC  150  in order to transmit the message to the other nodes stored in chassis  110 . Controller  143   a  may transmit the DNS-SD messages to any number of nodes within system  100   a . For example, controller  143   a  may send a DNS-SD message to each node within the system, such as node  130   a  and node  120   a . As another example, controller  143   a  may send a DNS-SD request message to only one other node in the system such as node  120   a.    
     At step  208 , in some embodiments, controllers  123   a  and  133   a  of nodes  120   a  and  130   a , respectively, may receive the DNS-SD request sent from controller  143   a . Controller  133   a , in some embodiments may receive the DNS-SD request message and send no response because it does not have a NBD service available. As another example, at step  210  controller  123   a  may transmit a DNS-SD response to slave controller  143   a  indicating that it has a NBD service available, which may be received by controller  143   a  in step  212 . In receiving the DNS-SD response, controller  143   a  now has information (e.g., domain) of the NBD service that is available. 
     At step  214 , in some embodiments, controller  143   a  may transmit a NBD request, which may be received by controller  123   a  at step  216 . The NBD request may be sent using MCC  150  and may request access to the set of files stored in partition  128   a . At step  218 , in some embodiments, controller  123   a  may transmit a NBD response message to slave controller  143   a , which slave controller  143   a  may receive at step  220 . The response may include information indicating that controller  143   a  has access to partition  128   a  of drive  126   a  and the set of files stored within partition  128   a . If controller  123   a  initiates the NBD process in this way, then steps  214 ,  216 , and  218  may be omitted. This allows system  100   a  to reduce the number of messages being sent between nodes  120   a ,  130   a , and  140   a.    
     At step  222 , in some embodiments, controller  143   a  may emulate partition  128   a  in order to receive the set of files from controller  123   a . By emulating partition  186   a , controller  143   a  is able to update and/or configure node  140   a  even though the set of files are not stored within the host system of node  140   a , but rather stored remotely within node  120   a . Emulating may include causing the node to detect the drive or partition as if the drive or partition were connected to the node. This may reduce the amount of required storage space within node  140   a  while still allowing management tasks, such as loading an operating system or updating an operating system using operating system drivers, to be performed. In some embodiments, controller  143   a  may emulate partition  128   a  using the NBD service, although other suitable protocols, programs, or services may be used. At step  224 , in some embodiments, controller  123   a  transfers the set of files stored within partition  128   a  to controller  143   a . Controller  143   a , by continuing to emulate partition  128   a , may update and configure node  140   a . After this, the method ends. 
       FIG. 3  illustrates a flowchart describing an example of configuring one or more nodes in information handling system  100   b . To illustrate examples of configuring one or more nodes, the steps of  FIG. 3 , described below, discuss components of  FIG. 1B , although other components not illustrated in  FIG. 1B  may be used. At step  302 , in some embodiments, controller  123   b  accesses a set of files stored within partition  128   b  and, in step  304 , configures master node  120   a  based on the set of files. In some embodiments, steps  302 - 304  of the method illustrated in  FIG. 3  can be performed using one or more of the techniques discussed above with respect to steps  202 - 204  of  FIG. 2 . 
     At step  306 , in some embodiments, controller  123   b  may transmit a DNS-SD message to DNS server  170  via network  160  in order to advertise the services that node  120   b  has available. By sending this information to DNS server  170 , controller  123   b  can allow controllers  133   b  and  144   b  to use the unicast method of service discovery, rather than the multicast method of service discovery. At step  308 , controllers  133   b  and  143   b  may transmit a DNS-SD message to DNS server  170  requesting information regarding available services (e.g., NBD service) within system  100   b  and DNS server  170  receives the message at step  310 . By engaging in unicast discovery, controller  133   b  only needs to send one message to DNS server  170 , rather than sending a DNS-SD message to each of the other nodes (e.g., nodes  120   b ,  140   b ) in system  100   b . In response to receiving the DNS-SD request at step  310 , DNS server  170  may transmit a DNS-SD response indicating information regarding the requested service at step  312 . At step  314 , controller  123   b  may receive the message regarding the requested service. 
     In some embodiments, controller  133   b  may engage in multicast discovery, which includes sending DNS-SD messages to a plurality of nodes within system  100   b . At step  316 , in some embodiments, controller  133   b  may send DNS-SD requests to other nodes (e.g.,  120   b  and  140   b ) in system  100   b . For example, controller  133   b  may send a DNS-SD message indicating whether a NBD service is available that would be received by controllers  143   b  and  123   b  at step  318 , in some embodiments. Continuing the example, controller  143   b  would send no response because it does not provide a NBD service in this example, while controller  123   b  would send a DNS-SD response, at step  320 , indicating information about the NBD service available through node  120   b . At step  322 , in some embodiments, controller  133   b  receives the DNS-SD response from controller  123   b . In some embodiments, steps  316 - 322  of the method illustrated in  FIG. 3  may be performed using one or more of the techniques discussed above with respect to steps  206 - 212  of  FIG. 2 . In some embodiments, controller  133   b  may use multicast discovery instead of, or in addition to, unicast discovery. If engaging in unicast discovery, steps  316 - 322  may be omitted from the method shown in  FIG. 3 . If engaging in multicast discovery, steps  306 - 314  may be omitted from the method illustrated in  FIG. 3 . 
     At step  324 , in some embodiments, controller  133   b  transmits a NBD request, which is received by controller  123   b  at step  326 . In response to the NBD request, controller  123   b , in some embodiments, transmits a NBD response at step  328  indicating that controller  133   b  has access to drive  126   b , and the response is received by controller  133   b  at step  330 . At step  332 , in some embodiments, controller  143   b  may emulate partition  128   b  in order to receive the set of files that are transferred by controller  123   b  at step  334 . Then the method ends. In some embodiments, steps  324 - 334  of the method illustrated in  FIG. 3  can be performed using one or more of the techniques discussed above with respect to steps  214 - 224  of  FIG. 2 . 
     For the purposes of this disclosure, an information handling system may include any instrumentality or aggregate of instrumentalities operable to compute, calculate, determine, classify, process, transmit, receive, retrieve, originate, switch, store, display, communicate, 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 (e.g., desktop or laptop), tablet computer, mobile device (e.g., personal digital assistant (PDA) or smart phone), server (e.g., blade server or rack server), 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, touchscreen and/or a video display. The information handling system may also include one or more buses operable to transmit communication between the various hardware components. 
     For the purposes of this disclosure, computer-readable media may include any instrumentality or aggregation of instrumentalities that may retain data and/or instructions for a period of time. Computer-readable media may include, without limitation, storage media, such as a direct access storage device (e.g., a hard disk drive or floppy disk); a sequential access storage device (e.g., a tape disk drive); a compact disk; CD-ROM; DVD; random access memory (RAM); read-only memory (ROM); electrically erasable programmable read-only memory (EEPROM); and/or flash memory; as well as communications media, such as wires, optical fibers, microwaves, radio waves, and other electromagnetic and/or optical carriers; and/or any combination of the foregoing. 
     Modifications, additions, or omissions may be made to the systems described herein without departing from the scope of the disclosure. Although this disclosure describes and illustrates a particular information handling system having a particular number of particular components in a particular arrangement, this disclosure contemplates any suitable information handling system having any suitable number of any suitable components in any suitable arrangement. For example, information handling systems  100   a - b  may include any number of nodes  120   a - b ,  130   a - b , and  140   a - b , chassis  110 , controllers  123   a - b ,  133   a - b ,  143   a - b , processors  121   a - b ,  131   a - b ,  141   a - b , memories  122   a - b ,  132   a - b ,  142   a - b , DNS servers  170 , and networks  160 . The components may be integrated or separated. Moreover, the operations may be performed by more, fewer, or other components. Additionally, the operations may be performed using any suitable logic comprising software, hardware, and/or other logic. Further, the steps may be combined, modified, or deleted where appropriate, and additional steps may be added. Additionally, the steps may be performed in any suitable order without departing from the scope of the present disclosure. While discussed as controllers (e.g.,  123 ,  133 ,  143 ), their components, and DNS server  170  performing the steps, any suitable component of information handling system  102  may perform one or more of the steps. 
     Although the present invention has been described with several embodiments, a myriad of changes, variations, alterations, transformations, and modifications may be suggested to one skilled in the art, and it is intended that the present invention encompass such changes, variations, alterations, transformations, and modifications as fall within the scope of the appended claims.