WO2017091236A1 - Hardware management - Google Patents

Hardware management Download PDF

Info

Publication number
WO2017091236A1
WO2017091236A1 PCT/US2015/062868 US2015062868W WO2017091236A1 WO 2017091236 A1 WO2017091236 A1 WO 2017091236A1 US 2015062868 W US2015062868 W US 2015062868W WO 2017091236 A1 WO2017091236 A1 WO 2017091236A1
Authority
WO
WIPO (PCT)
Prior art keywords
volume
instruction
computing device
examples
deployment
Prior art date
Application number
PCT/US2015/062868
Other languages
French (fr)
Inventor
Aland B. Adams
Charles E. Fowler
Bruce A. Lundeby
Craig A. Boeker
Original Assignee
Hewlett Packard Enterprise Development Lp
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 Hewlett Packard Enterprise Development Lp filed Critical Hewlett Packard Enterprise Development Lp
Priority to PCT/US2015/062868 priority Critical patent/WO2017091236A1/en
Priority to US15/754,186 priority patent/US10761857B2/en
Priority to EP15909424.2A priority patent/EP3380920A4/en
Priority to CN201580078994.1A priority patent/CN107533436B/en
Publication of WO2017091236A1 publication Critical patent/WO2017091236A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files

Definitions

  • Computing systems can utilize hardware, instructions, or logic to execute a set of workloads.
  • the computing system can include a set of computing devices to execute the set of workloads.
  • the set of computing devices can utilize a set of server images that act as a duplicate copy of boot data within the set of computing devices.
  • a computing device can utilize a server image to boot the computing device.
  • the set of server images can be utilized to restore system data or configure system data to a computing device.
  • Figure 1 illustrates a diagram of an example system for hardware management consistent with the present disclosure.
  • Figure 2 illustrates a diagram of an example computing device for hardware management consistent with the present disclosure.
  • Figure 3 illustrates a diagram of an example system for hardware management consistent with the present disclosure.
  • Figure 4 illustrates a diagram of an example user interface for hardware management consistent with the present disclosure. Detailed Description
  • a non-transitory computer readable medium for hardware management includes instructions to generate an instruction volume by copying a master volume, wherein the instruction volume is a computing device image, execute a set of scripts to alter the instruction volume based on a profile for a computing device, and deploy the instruction volume to the computing device to configure the computing device based on the profile for the computing device.
  • the instruction volume can include operating system instructions, other instructions (e.g., firmware, etc.), data or meta data corresponding to a computing device.
  • the golden image can include a version of a cloned hardware or instruction configuration for a computing device.
  • the hardware management can provide a plurality of server management actions based on a profile.
  • the server management actions can include, but are not limited to: a deployment of an instruction volume, a modifying of computing device firmware, and computing device configuration to ensure that the computing device state is compatible with the instruction volume content.
  • the computing device can be a server such as a server blade within a blade enclosure.
  • a computing device may have a plurality of profiles and corresponding instruction volumes.
  • the instruction volumes can be stored within volume storage.
  • the volume storage can be physically separate from the computing devices.
  • the instruction volumes can be physically separate for updates of the computing device, computing device repair, or instruction volume deployment.
  • the hardware management can provide consistent configuration across a plurality of computing devices by providing configuration selections that are customized based on features of the plurality of computing devices (e.g., hardware configuration, hardware capabilities, etc.).
  • the hardware management described herein can utilize a deployment device that is coupled to a set of computing devices with the deployment device being physically separate from the set of computing devices.
  • the deployment device can be physically combined with other devices including general purpose storage devices or network devices.
  • the deployment device can be coupled to a computing device and physically combined with the computing device.
  • the hardware management as described herein can utilize the
  • deployment device to generate instruction volumes that can be configured for a particular computing device (e.g., a server) based on a build plan.
  • the build plan can be defined or configured through a user interface.
  • the hardware management can utilize the deployment device to make changes to instruction volumes, perform analysis of instruction volumes, or create new images for future deployment.
  • the deployment device can include a memory resource that is separate from the computing devices, utilize a processing resource that is separate from the computing devices, or coupled to the memory resource that is separate from the computing devices.
  • the deployment device can include a repository having a plurality of deployment plans, golden images, build plans, or scripts to be used for deployment of instruction volumes.
  • the deployment of instruction volumes can be defined or configured through a user interface.
  • the repository can include firmware for computing device configuration or a set of profiles.
  • the deployment device can be directly connected to a memory resource that can be utilized to store a plurality images or volumes for corresponding computing devices.
  • the images and volumes can be stored on the memory resource of the deployment device for a set of corresponding computing devices.
  • instruction volumes can be stored in the volume storage for deployment to a particular computing device via the deployment device.
  • multiple versions of the instruction volumes can be stored in the volume storage to switch the hardware configuration of the computing device between the multiple versions.
  • the volume storage can be utilized to examine the instruction volumes.
  • examining the instruction volumes can include scanning the volume storage for malware or unwanted content.
  • the management device can perform actions based on the results of scanning the volume storage.
  • actions may include replicating or preserving volume content to allow more detailed analysis at a later time or to prevent the malware from removing evidence of the malware.
  • actions may include disabling access to the server instruction volume or disabling the server.
  • the actions may include reconfiguring the computing device or creating a new instruction volume.
  • the deployment device can create an image from an existing instruction volume stored in the volume storage.
  • the deployment device can modify images to remove instruction volume content specific to a computing device based on a build plan that can be defined or configured through a user interface.
  • the deployment device may have a set of build plans each having a set of settings. In some examples, these settings may have type constraining values allowed for the settings. In some examples, the settings may have default values or additional value constraints.
  • the build plans may each have a set of build steps using build scripts or programs. The scripts or programs may use setting values to modify instruction volumes during deployment.
  • the deployment device may have a set of golden images.
  • deployment device may have a set of deployment plans with each having a
  • the deployment plan can provide or override default values for build plan settings.
  • the deployment plan can include additional constraints for setting values.
  • the deployment plan can hide settings, or lock values, to prevent profiles from changing setting values.
  • a device manager and deployment device may define a set of user roles.
  • different user roles may have differing
  • Figures 1 and 2 respectively illustrate an example system 100 and an example computing device 214 consistent with the present disclosure.
  • Figure 1 illustrates a diagram of an example system for hardware management consistent with the present disclosure.
  • the system can include a database 104, a hardware
  • the hardware management system 102 can be in communication with the database 104 via a communication link, and can include the set of engines (e.g., profile engine 106, plan engine 108, build engine 1 10, deployment engine 1 12).
  • the hardware management system 102 can include additional or fewer engines than are illustrated to perform the various functions as will be described in further detail in connection with Figures 3-4.
  • the set of engines can include a combination of hardware and programming, but at least hardware, that is configured to perform functions described herein (e.g., generate a profile including a deployment plan for a computing device, generate a master volume based on the deployment plan, the master volume being stored in a volume storage, generate a copy of the master volume, and to provide a set of scripts to alter the copy of the master volume based on a the deployment plan, deploy the altered copy of the master volume to the computing device, etc.) stored in a memory resource (e.g., computer readable medium, machine readable medium, etc.) as well as hardwired program (e.g., logic).
  • a memory resource e.g., computer readable medium, machine readable medium, etc.
  • hardwired program e.g., logic
  • the profile engine 106 can include hardware or a combination of hardware and programming, but at least hardware, to generate a profile including a deployment plan for a computing device. Generating the profile that includes the deployment plan can include a selection of a set of configuration features for the computing device. In some examples, the generated profile can be utilized to generate a corresponding deployment plan for generating an instruction volume that can be deployed to the computing device. As described herein, the instruction volume can include boot instructions or run instructions that can be utilized to configure the computing device.
  • the plan engine 108 can include hardware or a combination of hardware and programming, but at least hardware, to generate a master volume based on the deployment plan, the master volume being stored in a volume storage e.
  • generating the master volume can include copying a golden image (e.g., master image, cache image, etc.) of a computing device or computing device type.
  • the golden image can include a set of default configuration settings and custom settings based on the deployment plan or generated profile.
  • the golden image can include a copy of a volume that was previously utilized by a computing device.
  • the golden image can include an archive of files or instruction packages (e.g., software packages, etc.).
  • the altered copy of the master image is stored in the volume storage.
  • the altered copy comprises an operating system boot volume.
  • the altered copy comprises an operating system boot volume altered for use by an individual computing device.
  • the altered copy includes a secret or security content.
  • the build engine 1 10 can include hardware or a combination of hardware and programming, but at least hardware, to generate a copy of the master volume, and to provide a set of scripts to alter the copy of the master volume based on a the deployment plan.
  • Generating a copy of the master volume can include copying the set of settings to a second volume such as an instruction volume.
  • the instruction volume can be customized to include a set of altered settings.
  • the set of settings can be altered through a set of executable scripts.
  • the deployment plan defines a set of parameters that are utilized to define or control the set of scripts.
  • the deployment plan includes a hierarchy of plans.
  • the hierarchy of plans constrains the ability to change parameter values or the permissible values allowed in other levels of the hierarchy.
  • the set of executable scripts can be applied to the instruction volume based on a set of configuration selections.
  • the configuration selections can be provided to a user via a user interface.
  • the configuration selections can be based on a computing device type where the instruction volume is to be deployed.
  • the configuration selections can be based on a profile of the user. For example, a set of configuration selections can be presented to a user via a user interface to enable a user to select an option for each of the set of configuration selections.
  • the deployment engine 1 12 can include hardware or a combination of hardware and programming, but at least hardware, to deploy the altered copy of the master volume to the computing device.
  • Deploying the altered copy of the master volume can include deploying an instruction volume that includes a set of customized configuration selections.
  • deploying the altered copy of the master volume can include deploying an instruction volume that comprises a boot volume and firmware configuration for the computing device.
  • the deployment plan can include a boot volume and firmware configuration for the computing device.
  • the boot volume and firmware configuration can be implemented on the instruction volume by the build engine 1 10 via a set of scripts that alter the master volume.
  • Figure 2 illustrates a diagram of an example computing device 214 consistent with the present disclosure.
  • the computing device 214 can utilize software, hardware, firmware, or logic to perform functions described herein.
  • the computing device 214 can be any combination of hardware and program instructions configured to share information.
  • the hardware for example, can include a processing resource 216 or a memory resource 220 (e.g., computer-readable medium (CRM), machine readable medium (MRM), database, etc.).
  • a processing resource 216 can include any set of processors capable of executing instructions stored by a memory resource 220. Processing resource 216 may be implemented in a single device or distributed across multiple devices.
  • the program instructions can include instructions stored on the memory resource 220 and executable by the processing resource 216 to implement a function (e.g., generate an instruction volume by copying a master volume, wherein the instruction volume is a computing device image, execute a set of scripts to alter the instruction volume based on a profile for a computing device, deploy the instruction volume to the computing device to configure the computing device based on the profile for the computing device, etc.).
  • the memory resource 220 can be in communication with a processing resource 216.
  • a memory resource 220 as used herein, can include any set of memory components capable of storing instructions that can be executed by processing resource 216.
  • Such memory resource 220 can be a non-transitory CRM or MRM.
  • Memory resource 220 may be integrated in a single device or distributed across multiple devices. Further, memory resource 220 may be fully or partially integrated in the same device as processing resource 216 or it may be separate but accessible to that device and processing resource 216. Thus, it is noted that the computing device 214 may be implemented on a participant device, on a server device, on a collection of server devices, or a combination of the participant device and the server device.
  • the memory resource 220 can be in communication with the processing resource 216 via a communication link (e.g., a path) 218.
  • the communication link 218 can be local or remote to a machine (e.g., a computing device) associated with the processing resource 216.
  • Examples of a local communication link 218 can include an electronic bus internal to a machine (e.g., a computing device) where the memory resource 220 is one of volatile, non-volatile, fixed, or removable storage medium in communication with the processing resource 216 via the electronic bus.
  • a set of modules can include CRI that when executed by the processing resource 216 can perform functions.
  • the set of modules e.g., profile module 222, plan module 224, build module 226, deployment module 228) can be sub-modules of other modules.
  • the profile module 222 and the plan module 224 can be sub- modules or contained within the same computing device.
  • the set of modules e.g., profile module 222, plan module 224, build module 226, deployment module 228) can comprise individual modules at separate and distinct locations (e.g., CRM, etc.).
  • Each of the set of modules can include instructions that when executed by the processing resource 216 can function as a corresponding engine as described herein.
  • the profile module 222 can include instructions that when executed by the processing resource 216 can function as the profile engine 106.
  • Figure 3 illustrates a diagram of an example of a system 330 for hardware management consistent with the present disclosure.
  • the system 330 can include a profile manager 331 to receive, generate, or manage a set of server profiles 332-1 , 332-2.
  • the server profiles 332-1 , 332-2 can be utilized to generate a set of instruction volumes 350-1 , 350-2 to be deployed to a set of computing devices 352-1 , 352-2 within a blade enclosure 353.
  • the profile manager 331 can be coupled to a deployment device 333.
  • the deployment device 333 can include a repository 334 and a volume storage 343 for generating the set of instruction volumes 350-1 , 350-2 to be deployed to the set of computing devices 352-1 , 352-2.
  • the profile manager 331 can be utilized to generate the set of server profiles 332-1 , 332-2. In some examples, the profile manager 331 can be utilized to provide a set of configuration selections for generating the set of server profiles 332-1 , 332-2. In some examples, the set of configuration selections can be utilized to customize hardware settings such as boot settings or run settings of a set of computing devices 352-1 , 352-2. Providing the set of configuration selections for generating the set of server profiles 332-1 , 332-2 via a user interface is described further herein with reference to Figure 4. In some examples, the profile manager 331 can store the set of server profiles 332-1 , 332-2. The stored server profiles 332-1 , 332-2 can be accessed at a later time to enable additional execution of the stored server profiles 332-1 , 332-2.
  • the repository 334 can include a deployment plan 336.
  • the deployment plan 336 can be based on a corresponding server profile 332-1 , 332-2.
  • the deployment plan 336 can define a set of execution steps for deploying an instruction volume 350-1 , 350-2 to a particular computing device 352-1 , 352-2.
  • the deployment plan 336 can define what type of golden image 338 is utilized for a corresponding server profile 332-1 , 332-2.
  • the deployment plan 336 can define an execution of the server profiles 332-1 , 332-2 to generate corresponding instruction volumes 350-1 , 350-2 stored in the volume storage 343.
  • the deployment plan 336 can define a set of parameters within the build plan 340 that are utilized to define the set of plan scripts 342.
  • the set of server profiles 332-1 , 332-2 can be utilized to select a golden image 338.
  • the golden image 338 can be a master image of a computing device.
  • the golden image 338 can be a master image that includes OS configuration data.
  • the golden image 338 can be an image generated from a computing device at a time when the computing device was operating at a particular specification.
  • the golden image 338 can be selected from a plurality of golden images based on the set of server profiles 332-1 , 332-2.
  • a server profile 332-2 can include an OS type and other default configuration settings that can be utilized to select the golden image 338.
  • the golden image 338 can include configuration settings that match the default configuration settings of the server profile 332-2.
  • the golden image 338 can be copied and stored in the volume storage 343 as a golden volume 344.
  • the golden volume 344 can be a volume that is not altered.
  • the golden volume 344 can be utilized for a plurality of different server profiles.
  • the golden volume 344 can be utilized to generate instruction volume 350-1 from the server profile 332-1 and the golden volume 344 can also be utilized to generate instruction volume 350-2 from the server profile 332-2.
  • the server profile 332-1 and the server profile 332-2 can utilize a different golden image and different golden volume for generating an instruction volume.
  • the golden volume 344 can be copied to an instruction volume 348.
  • a smart clone engine 346 can be utilized to copy the golden volume and generate the instruction volume 348.
  • the smart clone engine 346 can be utilized to copy configuration settings from the golden volume 344 to generate the instruction volume 348.
  • the smart clone engine 346 can copy configuration settings from the golden volume 344 based on a
  • the deployment plan 336 can define a build plan 340.
  • the build plan 340 can be utilized to generate plan scripts 342 for altering the
  • the build plan 340 can be based on a corresponding server profile 332-1 , 332-2.
  • a set of configuration settings can be selected for the server profile 332-2 and the build plan 340 can define the plan scripts 342 for altering the instruction volume 348 to reflect the set of configuration settings.
  • the plan scripts 342 can be transferred to the instruction volume 348 to alter the instruction volume 348. That is, the plan scripts 342 can include a set of scripts (e.g., instructions, etc.) that can be utilized to customize the instruction volume 348 based on a corresponding server profile 332-1 , 332-2.
  • the instruction volume 348 can be stored within the volume storage as instruction volume 350-2.
  • the deployment device 333 can allow the plan scripts 342 to run within the repository 334 (e.g., build environment, etc.). In some examples, the deployment device 333 can allow read-only access to particular instruction volumes and allow read/write access to other instruction volumes.
  • the plan scripts 342 can be provided to alter the instruction volume 348 offline from the computing devices 352-1 , 352-2. That is, the plan scripts 342 may not be executed on the computing devices 352-1 , 352-2 until the plan scripts 342 have been provided to the instruction volume 348 and the instruction volume 348 has been transferred to volume storage 343 as instruction volume 350-2.
  • a set of containers or virtual machines can be utilized to provide a repository 334 to transfer the plan scripts 342 to the instruction volume 348. Utilizing the set of containers or virtual machines can protect the deployment device 333 from malicious scripts that are embedded in the plan scripts 342. The set of container or virtual machines can be utilized to generate a build environment as described herein. In addition, the set of containers or virtual machines can allow the deployment device 333 to reuse instruction volumes 350-1 , 350-2 for deployment or allow the deployment device 33 to dispose of instruction volumes 350-1 , 350-2 and generate new instruction volumes.
  • the build plan 340 can define a set of network connections to utilize when deploying the instruction volumes 350-1 , 350-2. For example, there can be a set of network connections that couple the deployment device 333 to the set of computing devices 352-1 , 352-2 that can be selected for deploying the instruction volumes 350-1 , 350-2. In some examples, particular network connections can be blocked to avoid deploying the instruction volumes 350-1 , 350-2 to an incorrect computing device 352-1 , 352-2 or to an incorrect memory resource on the set of computing devices 352-1 , 352-2.
  • a separation between the set of computing devices 352-1 , 352-2 and the deployment device 333 can prevent the plan scripts 342 from affecting the set of computing devices 352-1 , 352-2.
  • executing the plan scripts 342 on the instruction volume 348 can prevent malicious plan scripts from affecting the OS of the set of computing devices 352-1 , 352-2.
  • the build plan 340 can define a set of security settings for a computing device 352-1 , 352-2.
  • the build plan 340 can define a type of security platform to be implemented on the computing device 352-1 , 352-2.
  • the type of computing device can be utilized to determine the type of security platform to be implemented.
  • the instruction volumes 350-1 , 350-2 can be deployed to a set of computing devices 352-1 , 352-2.
  • the instruction volumes 350-1 , 350-2 can be a set of different instruction volume versions for a set of different computing devices 352-1 , 352-2.
  • a server manager can deploy instruction volume 350-1 to computing device 352-1 for a first period of time and deploy instruction volume 350-2 to computing device 352-1 for a second period of time.
  • a server manager can deploy instruction volume 350-1 to computing device 352-1 when utilizing the computing device 352-1 for a first functionality and deploy instruction volume 350-2 to computing device 352-1 when utilizing the computing device 352-1 for a second functionality.
  • the first functionality and the second functionality can utilize a set of different applications, virtual machines, or configuration settings to execute a corresponding set of functions.
  • the instruction volumes 350-1 , 350-2 can be deployed to the set of computing devices 352-1 , 352-2 via image based deployment.
  • image based deployment can include applying the instruction volumes 350-1 , 350-2 as golden image structures. That is, the instruction volumes 350-1 , 350-2 can be deployed and applied to the computing devices 352-1 , 352-2 as if the instruction volumes 350-1 , 350-2 were a golden image 338.
  • the image based deployment of the instruction volumes 350-1 , 350-2 can allow the computing devices 352-1 , 352-2 to be booted directly based on the deployed instruction volumes 350-1 , 350-2.
  • the instruction volumes 350-1 , 350-2 can include hardware configurations and instruction configurations for a corresponding computing device 352-1 , 352-2.
  • a set of hardware settings can be defined by the instruction volumes 350-1 , 350-2 and a set of software settings can be defined by the instruction volumes 350-1 , 350-2.
  • deploying the instruction volumes 350-1 , 350-2 can include simultaneously configuring the hardware and software of the computing devices 352-1 , 352-2.
  • the configuration of the computing devices 352-1 , 352-2 can be performed with less time compared to previous systems and methods.
  • the instruction volumes 350-1 , 350-2 stored within the volume storage 343 can be examined for malware and other malicious instructions prior to being deployed to the set of computing devices 352-1 , 352-2.
  • the plan scripts 342 can include malicious scripts that can negatively affect the instruction volumes 350-1 , 350-2. In previous systems, the malicious scripts could potentially affect the OS of the computing devices 352-1 , 352-2. However, by examining the instruction volumes 350-1 , 350-2 for malware prior to deploying the instruction volumes 350-1 , 350-2 can prevent the malicious scripts from affecting the OS of the computing devices 352-1 , 352-2.
  • a set of actions can be executed upon detection of malware.
  • the set of actions can include, but are not limited to:
  • the system 330 can enable for hardware management that is easier to execute and manage hardware by virtualizing the instruction volumes 350-1 , 350-2 compared to previous systems and methods.
  • the system 330 can provide a visual representation of instruction volumes 350-1 , 350-2 that can be deployed to configure and boot a particular computing device 352-1 , 352-2.
  • the system 330 can be utilized to simultaneously configure hardware and instructions corresponding to the computing devices 352-1 , 352-2. By configuring the hardware and instructions simultaneously, the hardware and instruction configurations can maintain consistency and provide better computing device performance.
  • FIG. 4 illustrates a diagram of an example of a user interface 460 for hardware management consistent with the present disclosure.
  • the user interface 460 can be a representation of a user interface for defining a server profile as described herein.
  • the user interface 460 can define a set of user roles.
  • different user roles may have differing permissions to create, modify, examine, and delete deployment plans, golden images, build plans, and build scripts.
  • different user roles may have different permissions to deploy instruction volumes and control which profile is applied to a computing device.
  • the server profile can define a set of hardware configurations and a set of instruction configurations for a computing device.
  • the user interface 460 can include a representation of a user interface for generating a server profile that can be utilized to define a deployment plan as described herein.
  • the user interface 460 can be a display generated by a profile manager (e.g., profile manager 331 as referenced in Figure 3, etc.).
  • the user interface 460 can include a general section 462 to define a set of general configuration settings for the server profile.
  • the general section 462 can include a text box for generating a name 466.
  • the name 466 can be utilized to indicate a designated computing device that can utilize the server profile.
  • a generic name such as "server 1 " can be utilized.
  • a specific server name or number can be utilized as the name 466.
  • the name 466 can be displayed in the volume storage (e.g., volume storage 343 as referenced in Figure 3, etc.).
  • the general section 462 can include a description 468.
  • the description 468 can include a general description of a purpose of the server profile.
  • a particular computing device can utilize a plurality of different server instruction volumes that are generated by different server profiles.
  • the description 468 can be utilized to distinguish between the different instruction volumes or the different server profiles.
  • the general section 462 can include a server profile template 470.
  • the server profile template 470 can include a dropdown box or selection box to select from a set of existing server profile templates.
  • the server profile template 470 can include a set of default settings for the instruction volume to be generated.
  • the server profile template 470 can include a set of default settings that correspond to a particular server functionality.
  • the server profile template 470 can provide a general description of what types of functions a server can provide when configured to the server profile template 470.
  • a selection of a particular server profile template 470 can limit or expand a set of selections for other elements of within the general section 462.
  • a first server profile template 470 can allow for specific server hardware to be selected and a second server profile template 470 can allow for a greater number or fewer set of server hardware to be selected.
  • the general section 462 can include server hardware selection 472.
  • the server hardware selection 472 can include a set of computing devices that can receive the instruction volume generated by the server profile.
  • the server hardware selection 472 can include a list of computing devices within a blade enclosure to deploy an instruction volume generated by the server profile.
  • the server hardware selection 472 can include a set of computing devices that are coupled to a deployment device (e.g., deployment device 333 as referenced in Figure 3, etc.).
  • the general section 462 can include a server hardware type 474.
  • the server hardware type 474 can be utilized to define what type of hardware is included within a particular computing device.
  • a blade enclosure can include set of different computing device types that can each have different types of hardware.
  • the type of hardware within a computing device can limit a functionality of the computing device.
  • a first computing device with a first type of hardware can have superior computing resources (e.g., processors, memory resources, etc.) compared to a second serer blade with a second type of hardware.
  • the server hardware type 474 can correspond to a particular generation of computing device.
  • the general section 462 can include an enclosure group 476.
  • the enclosure group 476 can define a particular blade enclosure within a data center where the instruction volume generated from the server profile is deployed.
  • the general section 462 can include an affinity 478.
  • the server profile can include an affinity 478 for a server bay.
  • the affinity 478 can be selected based on affinities that are provided by a corresponding computing device as described herein.
  • the user interface 460 can also include a set of deployment settings 464.
  • the deployment settings 464 can include an OS deployment plan 480.
  • the OS deployment plan 480 can define a build plan to transfer a set of plan scripts to an instruction volume.
  • the plan scripts can make a set of changes or alterations to the instruction volume.
  • the OS deployment plan 480 can be selected from a set of predefined deployment plans for a particular type of server hardware.
  • the set of deployment settings 464 can include a set of value settings 482.
  • the set of value settings 482 can include a host name for the computing device when the instruction volume generated by the server profile is deployed to the computing device. That is, when the computing device is configured by the deployed instruction volume, a particular host name can be simultaneously provided to the computing device.
  • the set of deployment settings 464 can include a value setting 482 of whether to utilize encrypted communication.
  • the value settings 482 can include a selection of whether to utilize soft shell (SSH) protocol.
  • SSH soft shell
  • additional encrypted communication protocols can be included within the value settings 482.
  • the user interface 460 can allow a user to generate a server profile for a specific computing device or a plurality of computing devices via a selection process.
  • additional selections can be included within the user interface 460.
  • the selections can be based on a profile of a user. For example, a user with relatively more expertise can have additional selections displayed compared to a user with relatively less expertise.
  • the user interface 460 can be altered for each of a plurality of users to avoid misconfiguration of computing devices.
  • the user interface 460 can allow customization of a server profile for generating instruction volumes to be deployed to a set of computing devices.
  • the user interface 460 can simplify computing device configuration by providing server profile templates that can be utilized for specific hardware.
  • the server profile templates can include default configuration selections for hardware and instructions stored on the computing devices.
  • the user interface 460 can allow for relatively faster configuration of computing devices compared to previous systems and methods.
  • logic is an alternative or additional processing resource to perform a particular action or function, etc., described herein, which includes hardware, e.g., various forms of transistor logic, application specific integrated circuits (ASICs), etc., as opposed to computer executable instructions, e.g., software firmware, etc., stored in memory and executable by a processor.
  • ASICs application specific integrated circuits
  • a set of something can refer to one or more such things.
  • a set of widgets can refer to one or more widgets.

Abstract

In one example, a non-transitory computer readable medium for hardware management includes instructions to generate an instruction volume by copying a master volume, wherein the instruction volume is a computing device image, execute a set of scripts to alter the instruction volume based on a profile for a computing device, and deploy the instruction volume to the computing device to configure the computing device based on the profile for the computing device.

Description

HARDWARE MANAGEMENT
Background
[0001] Computing systems can utilize hardware, instructions, or logic to execute a set of workloads. In some examples, the computing system can include a set of computing devices to execute the set of workloads. The set of computing devices can utilize a set of server images that act as a duplicate copy of boot data within the set of computing devices. For example, a computing device can utilize a server image to boot the computing device. In some examples, the set of server images can be utilized to restore system data or configure system data to a computing device.
Brief Description of the Drawings
[0002] Figure 1 illustrates a diagram of an example system for hardware management consistent with the present disclosure.
[0003] Figure 2 illustrates a diagram of an example computing device for hardware management consistent with the present disclosure.
[0004] Figure 3 illustrates a diagram of an example system for hardware management consistent with the present disclosure.
[0005] Figure 4 illustrates a diagram of an example user interface for hardware management consistent with the present disclosure. Detailed Description
[0006] A set of examples for hardware management are described herein. In one example, a non-transitory computer readable medium for hardware management includes instructions to generate an instruction volume by copying a master volume, wherein the instruction volume is a computing device image, execute a set of scripts to alter the instruction volume based on a profile for a computing device, and deploy the instruction volume to the computing device to configure the computing device based on the profile for the computing device. In some examples, the instruction volume can include operating system instructions, other instructions (e.g., firmware, etc.), data or meta data corresponding to a computing device. In some examples, the golden image can include a version of a cloned hardware or instruction configuration for a computing device.
[0007] In some examples, the hardware management can provide a plurality of server management actions based on a profile. In some examples, the server management actions can include, but are not limited to: a deployment of an instruction volume, a modifying of computing device firmware, and computing device configuration to ensure that the computing device state is compatible with the instruction volume content. In some examples, the computing device can be a server such as a server blade within a blade enclosure.
[0008] In some examples, a computing device may have a plurality of profiles and corresponding instruction volumes. In some examples, the instruction volumes can be stored within volume storage. In some examples, the volume storage can be physically separate from the computing devices. In these examples, the instruction volumes can be physically separate for updates of the computing device, computing device repair, or instruction volume deployment. In addition, the hardware management can provide consistent configuration across a plurality of computing devices by providing configuration selections that are customized based on features of the plurality of computing devices (e.g., hardware configuration, hardware capabilities, etc.).
[0009] In some examples, the hardware management described herein can utilize a deployment device that is coupled to a set of computing devices with the deployment device being physically separate from the set of computing devices. In some examples, the deployment device can be physically combined with other devices including general purpose storage devices or network devices. In some examples, the deployment device can be coupled to a computing device and physically combined with the computing device.
[0010] The hardware management as described herein can utilize the
deployment device to generate instruction volumes that can be configured for a particular computing device (e.g., a server) based on a build plan. In some examples, the build plan can be defined or configured through a user interface. In some examples, the hardware management can utilize the deployment device to make changes to instruction volumes, perform analysis of instruction volumes, or create new images for future deployment.
[0011] The deployment device can include a memory resource that is separate from the computing devices, utilize a processing resource that is separate from the computing devices, or coupled to the memory resource that is separate from the computing devices. The deployment device can include a repository having a plurality of deployment plans, golden images, build plans, or scripts to be used for deployment of instruction volumes. In some examples, the deployment of instruction volumes can be defined or configured through a user interface. In some examples, the repository can include firmware for computing device configuration or a set of profiles.
[0012] In some examples, the deployment device can be directly connected to a memory resource that can be utilized to store a plurality images or volumes for corresponding computing devices. In some examples, the images and volumes can be stored on the memory resource of the deployment device for a set of corresponding computing devices. In some examples, instruction volumes can be stored in the volume storage for deployment to a particular computing device via the deployment device. In some examples, multiple versions of the instruction volumes can be stored in the volume storage to switch the hardware configuration of the computing device between the multiple versions.
[0013] In some examples, the volume storage can be utilized to examine the instruction volumes. In some examples, examining the instruction volumes can include scanning the volume storage for malware or unwanted content. In some examples, the management device can perform actions based on the results of scanning the volume storage. In some examples, actions may include replicating or preserving volume content to allow more detailed analysis at a later time or to prevent the malware from removing evidence of the malware. In some examples, actions may include disabling access to the server instruction volume or disabling the server. In some examples, the actions may include reconfiguring the computing device or creating a new instruction volume.
[0014] In some examples, the deployment device can create an image from an existing instruction volume stored in the volume storage. In some examples, the deployment device can modify images to remove instruction volume content specific to a computing device based on a build plan that can be defined or configured through a user interface. The deployment device may have a set of build plans each having a set of settings. In some examples, these settings may have type constraining values allowed for the settings. In some examples, the settings may have default values or additional value constraints. The build plans may each have a set of build steps using build scripts or programs. The scripts or programs may use setting values to modify instruction volumes during deployment.
[0015] The deployment device may have a set of golden images. The
deployment device may have a set of deployment plans with each having a
corresponding golden image and build plan. In some examples, the deployment plan can provide or override default values for build plan settings. In some examples, the deployment plan can include additional constraints for setting values. In some examples, the deployment plan can hide settings, or lock values, to prevent profiles from changing setting values.
[0016] In some examples, a device manager and deployment device may define a set of user roles. In some examples, different user roles may have differing
permissions to create, modify, examine, and delete deployment plans, golden images, build plans, and build scripts. In some implementations, different user roles may have different permissions to create, modify, examine, and delete profiles having deployment plans. In some examples, different user roles may have different permissions to deploy servers and control which profile is applied to a server. [0017] Figures 1 and 2 respectively illustrate an example system 100 and an example computing device 214 consistent with the present disclosure. Figure 1 illustrates a diagram of an example system for hardware management consistent with the present disclosure. The system can include a database 104, a hardware
management system 102, or a set of engines (e.g., profile engine 106, plan engine 108, build engine 1 10, deployment engine 1 12). The hardware management system 102 can be in communication with the database 104 via a communication link, and can include the set of engines (e.g., profile engine 106, plan engine 108, build engine 1 10, deployment engine 1 12). The hardware management system 102 can include additional or fewer engines than are illustrated to perform the various functions as will be described in further detail in connection with Figures 3-4.
[0018] The set of engines (e.g., profile engine 106, plan engine 108, build engine 1 10, deployment engine 1 12) can include a combination of hardware and programming, but at least hardware, that is configured to perform functions described herein (e.g., generate a profile including a deployment plan for a computing device, generate a master volume based on the deployment plan, the master volume being stored in a volume storage, generate a copy of the master volume, and to provide a set of scripts to alter the copy of the master volume based on a the deployment plan, deploy the altered copy of the master volume to the computing device, etc.) stored in a memory resource (e.g., computer readable medium, machine readable medium, etc.) as well as hardwired program (e.g., logic).
[0019] The profile engine 106 can include hardware or a combination of hardware and programming, but at least hardware, to generate a profile including a deployment plan for a computing device. Generating the profile that includes the deployment plan can include a selection of a set of configuration features for the computing device. In some examples, the generated profile can be utilized to generate a corresponding deployment plan for generating an instruction volume that can be deployed to the computing device. As described herein, the instruction volume can include boot instructions or run instructions that can be utilized to configure the computing device.
[0020] The plan engine 108 can include hardware or a combination of hardware and programming, but at least hardware, to generate a master volume based on the deployment plan, the master volume being stored in a volume storage e. In some examples, generating the master volume can include copying a golden image (e.g., master image, cache image, etc.) of a computing device or computing device type. In some examples, the golden image can include a set of default configuration settings and custom settings based on the deployment plan or generated profile. In some examples, the golden image can include a copy of a volume that was previously utilized by a computing device. In some examples, the golden image can include an archive of files or instruction packages (e.g., software packages, etc.).
[0021] In some examples, the altered copy of the master image is stored in the volume storage. In some examples, the altered copy comprises an operating system boot volume. In some examples, the altered copy comprises an operating system boot volume altered for use by an individual computing device. In some examples, the altered copy includes a secret or security content.
[0022] The build engine 1 10 can include hardware or a combination of hardware and programming, but at least hardware, to generate a copy of the master volume, and to provide a set of scripts to alter the copy of the master volume based on a the deployment plan. Generating a copy of the master volume can include copying the set of settings to a second volume such as an instruction volume. In some examples, the instruction volume can be customized to include a set of altered settings. In some examples, the set of settings can be altered through a set of executable scripts.
[0023] In some examples, the deployment plan defines a set of parameters that are utilized to define or control the set of scripts. In some examples, the deployment plan includes a hierarchy of plans. In some examples, the hierarchy of plans constrains the ability to change parameter values or the permissible values allowed in other levels of the hierarchy.
[0024] In some examples, the set of executable scripts can be applied to the instruction volume based on a set of configuration selections. In some examples, the configuration selections can be provided to a user via a user interface. In some examples, the configuration selections can be based on a computing device type where the instruction volume is to be deployed. In some examples, the configuration selections can be based on a profile of the user. For example, a set of configuration selections can be presented to a user via a user interface to enable a user to select an option for each of the set of configuration selections.
[0025] The deployment engine 1 12 can include hardware or a combination of hardware and programming, but at least hardware, to deploy the altered copy of the master volume to the computing device. Deploying the altered copy of the master volume can include deploying an instruction volume that includes a set of customized configuration selections. In some examples, deploying the altered copy of the master volume can include deploying an instruction volume that comprises a boot volume and firmware configuration for the computing device. In some examples, the deployment plan can include a boot volume and firmware configuration for the computing device. In these examples, the boot volume and firmware configuration can be implemented on the instruction volume by the build engine 1 10 via a set of scripts that alter the master volume.
[0026] Figure 2 illustrates a diagram of an example computing device 214 consistent with the present disclosure. The computing device 214 can utilize software, hardware, firmware, or logic to perform functions described herein.
[0027] The computing device 214 can be any combination of hardware and program instructions configured to share information. The hardware, for example, can include a processing resource 216 or a memory resource 220 (e.g., computer-readable medium (CRM), machine readable medium (MRM), database, etc.). A processing resource 216, as used herein, can include any set of processors capable of executing instructions stored by a memory resource 220. Processing resource 216 may be implemented in a single device or distributed across multiple devices. The program instructions (e.g., computer readable instructions (CRI)) can include instructions stored on the memory resource 220 and executable by the processing resource 216 to implement a function (e.g., generate an instruction volume by copying a master volume, wherein the instruction volume is a computing device image, execute a set of scripts to alter the instruction volume based on a profile for a computing device, deploy the instruction volume to the computing device to configure the computing device based on the profile for the computing device, etc.). [0028] The memory resource 220 can be in communication with a processing resource 216. A memory resource 220, as used herein, can include any set of memory components capable of storing instructions that can be executed by processing resource 216. Such memory resource 220 can be a non-transitory CRM or MRM.
Memory resource 220 may be integrated in a single device or distributed across multiple devices. Further, memory resource 220 may be fully or partially integrated in the same device as processing resource 216 or it may be separate but accessible to that device and processing resource 216. Thus, it is noted that the computing device 214 may be implemented on a participant device, on a server device, on a collection of server devices, or a combination of the participant device and the server device.
[0029] The memory resource 220 can be in communication with the processing resource 216 via a communication link (e.g., a path) 218. The communication link 218 can be local or remote to a machine (e.g., a computing device) associated with the processing resource 216. Examples of a local communication link 218 can include an electronic bus internal to a machine (e.g., a computing device) where the memory resource 220 is one of volatile, non-volatile, fixed, or removable storage medium in communication with the processing resource 216 via the electronic bus.
[0030] A set of modules (e.g., profile module 222, plan module 224, build module 226, deployment module 228) can include CRI that when executed by the processing resource 216 can perform functions. The set of modules (e.g., profile module 222, plan module 224, build module 226, deployment module 228) can be sub-modules of other modules. For example, the profile module 222 and the plan module 224 can be sub- modules or contained within the same computing device. In another example, the set of modules (e.g., profile module 222, plan module 224, build module 226, deployment module 228) can comprise individual modules at separate and distinct locations (e.g., CRM, etc.).
[0031] Each of the set of modules (e.g., profile module 222, plan module 224, build module 226, deployment module 228) can include instructions that when executed by the processing resource 216 can function as a corresponding engine as described herein. For example, the profile module 222 can include instructions that when executed by the processing resource 216 can function as the profile engine 106. [0032] Figure 3 illustrates a diagram of an example of a system 330 for hardware management consistent with the present disclosure. In some examples, the system 330 can include a profile manager 331 to receive, generate, or manage a set of server profiles 332-1 , 332-2. The server profiles 332-1 , 332-2 can be utilized to generate a set of instruction volumes 350-1 , 350-2 to be deployed to a set of computing devices 352-1 , 352-2 within a blade enclosure 353. The profile manager 331 can be coupled to a deployment device 333. In some examples, the deployment device 333 can include a repository 334 and a volume storage 343 for generating the set of instruction volumes 350-1 , 350-2 to be deployed to the set of computing devices 352-1 , 352-2.
[0033] In some examples the profile manager 331 can be utilized to generate the set of server profiles 332-1 , 332-2. In some examples, the profile manager 331 can be utilized to provide a set of configuration selections for generating the set of server profiles 332-1 , 332-2. In some examples, the set of configuration selections can be utilized to customize hardware settings such as boot settings or run settings of a set of computing devices 352-1 , 352-2. Providing the set of configuration selections for generating the set of server profiles 332-1 , 332-2 via a user interface is described further herein with reference to Figure 4. In some examples, the profile manager 331 can store the set of server profiles 332-1 , 332-2. The stored server profiles 332-1 , 332-2 can be accessed at a later time to enable additional execution of the stored server profiles 332-1 , 332-2.
[0034] In some examples, the repository 334 can include a deployment plan 336. In some examples, the deployment plan 336 can be based on a corresponding server profile 332-1 , 332-2. The deployment plan 336 can define a set of execution steps for deploying an instruction volume 350-1 , 350-2 to a particular computing device 352-1 , 352-2. For example, the deployment plan 336 can define what type of golden image 338 is utilized for a corresponding server profile 332-1 , 332-2. In some examples, the deployment plan 336 can define an execution of the server profiles 332-1 , 332-2 to generate corresponding instruction volumes 350-1 , 350-2 stored in the volume storage 343. In some examples, the deployment plan 336 can define a set of parameters within the build plan 340 that are utilized to define the set of plan scripts 342. [0035] In some examples, the set of server profiles 332-1 , 332-2 can be utilized to select a golden image 338. The golden image 338 can be a master image of a computing device. For example, the golden image 338 can be a master image that includes OS configuration data. In some examples, the golden image 338 can be an image generated from a computing device at a time when the computing device was operating at a particular specification. In some examples, the golden image 338 can be selected from a plurality of golden images based on the set of server profiles 332-1 , 332-2. For example, a server profile 332-2 can include an OS type and other default configuration settings that can be utilized to select the golden image 338. In this example, the golden image 338 can include configuration settings that match the default configuration settings of the server profile 332-2.
[0036] In some examples the golden image 338 can be copied and stored in the volume storage 343 as a golden volume 344. In some examples, the golden volume 344 can be a volume that is not altered. In some examples, the golden volume 344 can be utilized for a plurality of different server profiles. For example, the golden volume 344 can be utilized to generate instruction volume 350-1 from the server profile 332-1 and the golden volume 344 can also be utilized to generate instruction volume 350-2 from the server profile 332-2. In some examples, the server profile 332-1 and the server profile 332-2 can utilize a different golden image and different golden volume for generating an instruction volume.
[0037] In some examples, the golden volume 344 can be copied to an instruction volume 348. In some examples, a smart clone engine 346 can be utilized to copy the golden volume and generate the instruction volume 348. In some examples, the smart clone engine 346 can be utilized to copy configuration settings from the golden volume 344 to generate the instruction volume 348. In some examples, the smart clone engine 346 can copy configuration settings from the golden volume 344 based on a
corresponding server profile 332-1 , 332-2.
[0038] In some examples, the deployment plan 336 can define a build plan 340. The build plan 340 can be utilized to generate plan scripts 342 for altering the
instruction volume 348. As described herein, the build plan 340 can be based on a corresponding server profile 332-1 , 332-2. For example, a set of configuration settings can be selected for the server profile 332-2 and the build plan 340 can define the plan scripts 342 for altering the instruction volume 348 to reflect the set of configuration settings. In some examples, the plan scripts 342 can be transferred to the instruction volume 348 to alter the instruction volume 348. That is, the plan scripts 342 can include a set of scripts (e.g., instructions, etc.) that can be utilized to customize the instruction volume 348 based on a corresponding server profile 332-1 , 332-2.
[0039] When the plan scripts 342 are implemented in the instruction volume 348, the instruction volume 348 can be stored within the volume storage as instruction volume 350-2. The deployment device 333 can allow the plan scripts 342 to run within the repository 334 (e.g., build environment, etc.). In some examples, the deployment device 333 can allow read-only access to particular instruction volumes and allow read/write access to other instruction volumes. In some examples, the plan scripts 342 can be provided to alter the instruction volume 348 offline from the computing devices 352-1 , 352-2. That is, the plan scripts 342 may not be executed on the computing devices 352-1 , 352-2 until the plan scripts 342 have been provided to the instruction volume 348 and the instruction volume 348 has been transferred to volume storage 343 as instruction volume 350-2.
[0040] In some examples, a set of containers or virtual machines can be utilized to provide a repository 334 to transfer the plan scripts 342 to the instruction volume 348. Utilizing the set of containers or virtual machines can protect the deployment device 333 from malicious scripts that are embedded in the plan scripts 342. The set of container or virtual machines can be utilized to generate a build environment as described herein. In addition, the set of containers or virtual machines can allow the deployment device 333 to reuse instruction volumes 350-1 , 350-2 for deployment or allow the deployment device 33 to dispose of instruction volumes 350-1 , 350-2 and generate new instruction volumes.
[0041] In some examples, the build plan 340 can define a set of network connections to utilize when deploying the instruction volumes 350-1 , 350-2. For example, there can be a set of network connections that couple the deployment device 333 to the set of computing devices 352-1 , 352-2 that can be selected for deploying the instruction volumes 350-1 , 350-2. In some examples, particular network connections can be blocked to avoid deploying the instruction volumes 350-1 , 350-2 to an incorrect computing device 352-1 , 352-2 or to an incorrect memory resource on the set of computing devices 352-1 , 352-2.
[0042] In some examples, there can be a physical separation between the set of computing devices 352-1 , 352-2 and the deployment device 333. In some examples, a separation between the set of computing devices 352-1 , 352-2 and the deployment device 333 can prevent the plan scripts 342 from affecting the set of computing devices 352-1 , 352-2. For example, executing the plan scripts 342 on the instruction volume 348 can prevent malicious plan scripts from affecting the OS of the set of computing devices 352-1 , 352-2.
[0043] In some examples, the build plan 340 can define a set of security settings for a computing device 352-1 , 352-2. For example, the build plan 340 can define a type of security platform to be implemented on the computing device 352-1 , 352-2. In some examples, the type of computing device can be utilized to determine the type of security platform to be implemented.
[0044] In some examples, the instruction volumes 350-1 , 350-2 can be deployed to a set of computing devices 352-1 , 352-2. In some examples, the instruction volumes 350-1 , 350-2 can be a set of different instruction volume versions for a set of different computing devices 352-1 , 352-2. For example, a server manager can deploy instruction volume 350-1 to computing device 352-1 for a first period of time and deploy instruction volume 350-2 to computing device 352-1 for a second period of time. In another example, a server manager can deploy instruction volume 350-1 to computing device 352-1 when utilizing the computing device 352-1 for a first functionality and deploy instruction volume 350-2 to computing device 352-1 when utilizing the computing device 352-1 for a second functionality. In some examples, the first functionality and the second functionality can utilize a set of different applications, virtual machines, or configuration settings to execute a corresponding set of functions.
[0045] In some examples, the instruction volumes 350-1 , 350-2 can be deployed to the set of computing devices 352-1 , 352-2 via image based deployment. As used herein, image based deployment can include applying the instruction volumes 350-1 , 350-2 as golden image structures. That is, the instruction volumes 350-1 , 350-2 can be deployed and applied to the computing devices 352-1 , 352-2 as if the instruction volumes 350-1 , 350-2 were a golden image 338. In some examples, the image based deployment of the instruction volumes 350-1 , 350-2 can allow the computing devices 352-1 , 352-2 to be booted directly based on the deployed instruction volumes 350-1 , 350-2.
[0046] In some examples, the instruction volumes 350-1 , 350-2 can include hardware configurations and instruction configurations for a corresponding computing device 352-1 , 352-2. For example, a set of hardware settings can be defined by the instruction volumes 350-1 , 350-2 and a set of software settings can be defined by the instruction volumes 350-1 , 350-2. In some examples, deploying the instruction volumes 350-1 , 350-2 can include simultaneously configuring the hardware and software of the computing devices 352-1 , 352-2. In some examples, the configuration of the computing devices 352-1 , 352-2 can be performed with less time compared to previous systems and methods.
[0047] In some examples the instruction volumes 350-1 , 350-2 stored within the volume storage 343 can be examined for malware and other malicious instructions prior to being deployed to the set of computing devices 352-1 , 352-2. As described herein, the plan scripts 342 can include malicious scripts that can negatively affect the instruction volumes 350-1 , 350-2. In previous systems, the malicious scripts could potentially affect the OS of the computing devices 352-1 , 352-2. However, by examining the instruction volumes 350-1 , 350-2 for malware prior to deploying the instruction volumes 350-1 , 350-2 can prevent the malicious scripts from affecting the OS of the computing devices 352-1 , 352-2.
[0048] In some examples, a set of actions can be executed upon detection of malware. In some examples, the set of actions can include, but are not limited to:
making a copy of the instruction volumes 350-1 , 350-2; disabling access to the instruction volumes 350-1 , 350-2; stopping a computing device 352-1 , 352-2 that is utilizing the instruction volumes 350-1 , 350-2; reapplying a profile to repair the computing device; or redeploying the instruction volumes 350-1 , 350-2.
[0049] The system 330 can enable for hardware management that is easier to execute and manage hardware by virtualizing the instruction volumes 350-1 , 350-2 compared to previous systems and methods. The system 330 can provide a visual representation of instruction volumes 350-1 , 350-2 that can be deployed to configure and boot a particular computing device 352-1 , 352-2. The system 330 can be utilized to simultaneously configure hardware and instructions corresponding to the computing devices 352-1 , 352-2. By configuring the hardware and instructions simultaneously, the hardware and instruction configurations can maintain consistency and provide better computing device performance.
[0050] Figure 4 illustrates a diagram of an example of a user interface 460 for hardware management consistent with the present disclosure. The user interface 460 can be a representation of a user interface for defining a server profile as described herein. In some examples, the user interface 460 can define a set of user roles. In some examples, different user roles may have differing permissions to create, modify, examine, and delete deployment plans, golden images, build plans, and build scripts. In some examples, different user roles may have different permissions to deploy instruction volumes and control which profile is applied to a computing device.
[0051] The server profile can define a set of hardware configurations and a set of instruction configurations for a computing device. The user interface 460 can include a representation of a user interface for generating a server profile that can be utilized to define a deployment plan as described herein. In some examples, the user interface 460 can be a display generated by a profile manager (e.g., profile manager 331 as referenced in Figure 3, etc.).
[0052] The user interface 460 can include a general section 462 to define a set of general configuration settings for the server profile. The general section 462 can include a text box for generating a name 466. In some examples, the name 466 can be utilized to indicate a designated computing device that can utilize the server profile. In some examples, a generic name such as "server 1 " can be utilized. In other examples, a specific server name or number can be utilized as the name 466. In some examples, the name 466 can be displayed in the volume storage (e.g., volume storage 343 as referenced in Figure 3, etc.).
[0053] The general section 462 can include a description 468. In some examples, the description 468 can include a general description of a purpose of the server profile. As described herein, a particular computing device can utilize a plurality of different server instruction volumes that are generated by different server profiles. In these examples, the description 468 can be utilized to distinguish between the different instruction volumes or the different server profiles.
[0054] The general section 462 can include a server profile template 470. The server profile template 470 can include a dropdown box or selection box to select from a set of existing server profile templates. In some examples, the server profile template 470 can include a set of default settings for the instruction volume to be generated. In some examples, the server profile template 470 can include a set of default settings that correspond to a particular server functionality. For example, the server profile template 470 can provide a general description of what types of functions a server can provide when configured to the server profile template 470. In some examples, a selection of a particular server profile template 470 can limit or expand a set of selections for other elements of within the general section 462. For example, a first server profile template 470 can allow for specific server hardware to be selected and a second server profile template 470 can allow for a greater number or fewer set of server hardware to be selected.
[0055] The general section 462 can include server hardware selection 472. The server hardware selection 472 can include a set of computing devices that can receive the instruction volume generated by the server profile. For example, the server hardware selection 472 can include a list of computing devices within a blade enclosure to deploy an instruction volume generated by the server profile. In some examples, the server hardware selection 472 can include a set of computing devices that are coupled to a deployment device (e.g., deployment device 333 as referenced in Figure 3, etc.).
[0056] The general section 462 can include a server hardware type 474. The server hardware type 474 can be utilized to define what type of hardware is included within a particular computing device. For example, a blade enclosure can include set of different computing device types that can each have different types of hardware. In some examples, the type of hardware within a computing device can limit a functionality of the computing device. For example, a first computing device with a first type of hardware can have superior computing resources (e.g., processors, memory resources, etc.) compared to a second serer blade with a second type of hardware. In some examples, the server hardware type 474 can correspond to a particular generation of computing device.
[0057] The general section 462 can include an enclosure group 476. The enclosure group 476 can define a particular blade enclosure within a data center where the instruction volume generated from the server profile is deployed. The general section 462 can include an affinity 478. In some examples, the server profile can include an affinity 478 for a server bay. In some examples, the affinity 478 can be selected based on affinities that are provided by a corresponding computing device as described herein.
[0058] The user interface 460 can also include a set of deployment settings 464. The deployment settings 464 can include an OS deployment plan 480. As described herein, the OS deployment plan 480 can define a build plan to transfer a set of plan scripts to an instruction volume. As described herein, the plan scripts can make a set of changes or alterations to the instruction volume. In some examples, the OS deployment plan 480 can be selected from a set of predefined deployment plans for a particular type of server hardware.
[0059] In some examples, the set of deployment settings 464 can include a set of value settings 482. The set of value settings 482 can include a host name for the computing device when the instruction volume generated by the server profile is deployed to the computing device. That is, when the computing device is configured by the deployed instruction volume, a particular host name can be simultaneously provided to the computing device. In some examples, the set of deployment settings 464 can include a value setting 482 of whether to utilize encrypted communication. For example, the value settings 482 can include a selection of whether to utilize soft shell (SSH) protocol. In some examples, additional encrypted communication protocols can be included within the value settings 482.
[0060] As described herein, the user interface 460 can allow a user to generate a server profile for a specific computing device or a plurality of computing devices via a selection process. In some examples, additional selections can be included within the user interface 460. In some examples, the selections can be based on a profile of a user. For example, a user with relatively more expertise can have additional selections displayed compared to a user with relatively less expertise. In this example, the user interface 460 can be altered for each of a plurality of users to avoid misconfiguration of computing devices.
[0061] The user interface 460 can allow customization of a server profile for generating instruction volumes to be deployed to a set of computing devices. The user interface 460 can simplify computing device configuration by providing server profile templates that can be utilized for specific hardware. In some examples, the server profile templates can include default configuration selections for hardware and instructions stored on the computing devices. In some examples, the user interface 460 can allow for relatively faster configuration of computing devices compared to previous systems and methods.
[0062] As used herein, "logic" is an alternative or additional processing resource to perform a particular action or function, etc., described herein, which includes hardware, e.g., various forms of transistor logic, application specific integrated circuits (ASICs), etc., as opposed to computer executable instructions, e.g., software firmware, etc., stored in memory and executable by a processor. Further, as used herein, "a" or "a set of something can refer to one or more such things. For example, "a set of widgets" can refer to one or more widgets.
[0063] The above specification, examples and data provide a description of the method and applications, and use of the system and method of the present disclosure. Since many examples can be made without departing from the spirit and scope of the system and method of the present disclosure, this specification merely sets forth some of the many possible example configurations and implementations.

Claims

What is claimed:
1. A system for hardware management, comprising:
a profile engine to generate a profile including a deployment plan for a computing device;
a plan engine to generate a master volume based on the deployment plan, the master volume being stored in a volume storage;
a build engine to generate a copy of the master volume, and to provide a set of scripts to alter the copy of the master volume based on a the deployment plan; and
a deployment engine to deploy the altered copy of the master volume to the computing device.
2. The system of claim 1 , wherein the altered copy of the master volume is stored in the volume storage.
3. The system of claim 1 , wherein the altered copy of the master volume comprises an operating system boot volume and firmware configuration for the computing device.
4. The system of claim 3, wherein the deployment engine is to deploy the altered copy of the master volume to the computing device by deploying the operating system boot volume and firmware configuration to the computing device together.
5. The system of claim 1 , wherein the build engine is to generate the copy of the master volume and to provide the set of scripts offline from the computing device.
6. The system of claim 1 , wherein the profile engine is to define a set of user roles and corresponding content of the user roles to generate a profile and deploy the altered copy of the master volume.
7. The system of claim 1 , wherein the deployment plan defines a set of parameters that are utilized to define the set of scripts.
8. A non-transitory computer-readable medium storing instructions executable by a processor for hardware management, wherein the instructions are executable to:
generate an instruction volume by copying a master volume, wherein the instruction volume is a computing device image;
execute a set of scripts to alter the instruction volume based on a profile for a computing device; and
deploy the instruction volume to the computing device to configure the computing device based on the profile for the computing device.
9. The medium of claim 8, wherein the instruction volume includes a set of default settings from the master volume and a set of altered settings based on the set of scripts.
10. The medium of claim 8, wherein the computing device is booted directly based on the deployed instruction volume.
1 1. The medium of claim 8, wherein generating the instruction volume comprises generating a plurality of instruction volumes for a plurality of different computing devices utilizing a default setting of the master volume.
12. A method for hardware management, comprising:
generating, at a volume storage, a master volume based on a master image of a computing system;
generating, on the volume storage, an instruction volume based on the master volume;
altering, via a set of scripts, a set of settings of the instruction volume; and deploying, from the volume storage, the instruction volume to the computing system, wherein the instruction volume provides a system boot volume and firmware configuration for the computing system.
13. The method of claim 12, comprising examining a health state of the instruction volume through direct access to the volume storage.
14. The method of claim 13, wherein examining a health state comprises examining the instruction volume within the volume storage for malware.
15. The method of claim 12, comprising deploying, from the volume storage, the altered instruction volume to a different computing system.
PCT/US2015/062868 2015-11-29 2015-11-29 Hardware management WO2017091236A1 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
PCT/US2015/062868 WO2017091236A1 (en) 2015-11-29 2015-11-29 Hardware management
US15/754,186 US10761857B2 (en) 2015-11-29 2015-11-29 Hardware management
EP15909424.2A EP3380920A4 (en) 2015-11-29 2015-11-29 Hardware management
CN201580078994.1A CN107533436B (en) 2015-11-29 2015-11-29 Hardware management

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2015/062868 WO2017091236A1 (en) 2015-11-29 2015-11-29 Hardware management

Publications (1)

Publication Number Publication Date
WO2017091236A1 true WO2017091236A1 (en) 2017-06-01

Family

ID=58763428

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2015/062868 WO2017091236A1 (en) 2015-11-29 2015-11-29 Hardware management

Country Status (4)

Country Link
US (1) US10761857B2 (en)
EP (1) EP3380920A4 (en)
CN (1) CN107533436B (en)
WO (1) WO2017091236A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3522005A4 (en) * 2017-09-18 2019-12-18 Wangsu Science & Technology Co., Ltd. Method and apparatus for constructing mirror image

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11336685B1 (en) * 2021-12-22 2022-05-17 Nasuni Corporation Cloud-native global file system with rapid ransomware recovery

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030041131A1 (en) 2001-08-24 2003-02-27 Microsoft Corporation System and method to automate the management of computer services and programmable devices
US20040260565A1 (en) * 2003-06-05 2004-12-23 Zimniewicz Jeff A. Systems and methods to migrate a user profile when joining a client to a server and/or domain
US20050223210A1 (en) 2004-03-31 2005-10-06 Daisuke Sasaki Machine and method for deployment of OS image
US20060173912A1 (en) * 2004-12-27 2006-08-03 Eric Lindvall Automated deployment of operating system and data space to a server
EP2357558A2 (en) * 2010-01-27 2011-08-17 VMWare, Inc. Independent access to virtual machine desktop content
US20110246981A1 (en) 2010-03-31 2011-10-06 Verizon Patent And Licensing, Inc. Automated software installation with interview
US20120081395A1 (en) 2010-09-30 2012-04-05 International Business Machines Corporation Designing and building virtual images using semantically rich composable software image bundles
US20120254861A1 (en) 2011-03-29 2012-10-04 Hitachi, Ltd. Method and apparatus of data center file system
US20150058467A1 (en) 2012-06-15 2015-02-26 Digital River, Inc. Fast provisioning of platform-as-a-service system and method

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2266223A1 (en) * 1999-03-22 2000-09-22 Virtual Access Ireland Limited Apparatus and method for generating configuration data for a device to access a service
US7013462B2 (en) * 2001-05-10 2006-03-14 Hewlett-Packard Development Company, L.P. Method to map an inventory management system to a configuration management system
US6813587B2 (en) * 2001-06-22 2004-11-02 Invensys Systems, Inc. Remotely monitoring/diagnosing distributed components of a supervisory process control and manufacturing information application from a central location
US20030204711A1 (en) * 2002-04-29 2003-10-30 Guess Alan J. Method and system for restoring custom user configuration settings across a host application download
US20040117462A1 (en) * 2002-12-12 2004-06-17 International Business Machines Corporation Client device configuration with user entry of configuration parameters
US7603443B2 (en) * 2003-08-28 2009-10-13 International Business Machines Corporation Generic method for defining resource configuration profiles in provisioning systems
US7702851B2 (en) * 2005-09-20 2010-04-20 Hitachi, Ltd. Logical volume transfer method and storage network system
US8949585B2 (en) 2007-10-09 2015-02-03 Vmware, Inc. In-place conversion of virtual machine state
CN101910107B (en) * 2008-01-03 2013-03-13 阿克佐诺贝尔股份有限公司 Process to prepare ethylene amines
CN102177499B (en) * 2008-10-08 2014-12-17 惠普开发有限公司 Firmware storage medium with customized image
US8892700B2 (en) 2009-02-26 2014-11-18 Red Hat, Inc. Collecting and altering firmware configurations of target machines in a software provisioning environment
US8943203B1 (en) 2009-07-10 2015-01-27 Netapp, Inc. System and method for storage and deployment of virtual machines in a virtual server environment
US8799418B2 (en) * 2010-01-13 2014-08-05 Vmware, Inc. Cluster configuration
US8347071B2 (en) 2010-02-09 2013-01-01 Microsoft Corporation Converting virtual deployments to physical deployments to simplify management
US8990362B2 (en) * 2010-12-17 2015-03-24 Microsoft Technology Licensing, Llc Virtual machine provisioning engine
TWI462017B (en) 2012-02-24 2014-11-21 Wistron Corp Server deployment system and method for updating data
US9846582B2 (en) * 2012-09-12 2017-12-19 Microsoft Technology Licensing, Llc Operating system hardware configuration state specialization
KR101480903B1 (en) * 2013-09-03 2015-01-13 한국전자통신연구원 Method for multiple checking a mobile malicious code
US9898344B2 (en) * 2013-09-20 2018-02-20 Oracle International Corporation System and method for providing configuration modularity in an application server, cloud platform, or other environment
US20150271014A1 (en) * 2014-03-21 2015-09-24 Onyx Ccs Automatic configuration of new components by infrastructure management software

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030041131A1 (en) 2001-08-24 2003-02-27 Microsoft Corporation System and method to automate the management of computer services and programmable devices
US20040260565A1 (en) * 2003-06-05 2004-12-23 Zimniewicz Jeff A. Systems and methods to migrate a user profile when joining a client to a server and/or domain
US20050223210A1 (en) 2004-03-31 2005-10-06 Daisuke Sasaki Machine and method for deployment of OS image
US20060173912A1 (en) * 2004-12-27 2006-08-03 Eric Lindvall Automated deployment of operating system and data space to a server
EP2357558A2 (en) * 2010-01-27 2011-08-17 VMWare, Inc. Independent access to virtual machine desktop content
US20110246981A1 (en) 2010-03-31 2011-10-06 Verizon Patent And Licensing, Inc. Automated software installation with interview
US20120081395A1 (en) 2010-09-30 2012-04-05 International Business Machines Corporation Designing and building virtual images using semantically rich composable software image bundles
US20120254861A1 (en) 2011-03-29 2012-10-04 Hitachi, Ltd. Method and apparatus of data center file system
US20150058467A1 (en) 2012-06-15 2015-02-26 Digital River, Inc. Fast provisioning of platform-as-a-service system and method

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3380920A4

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3522005A4 (en) * 2017-09-18 2019-12-18 Wangsu Science & Technology Co., Ltd. Method and apparatus for constructing mirror image

Also Published As

Publication number Publication date
US20180246728A1 (en) 2018-08-30
EP3380920A4 (en) 2018-11-21
US10761857B2 (en) 2020-09-01
CN107533436B (en) 2021-02-02
CN107533436A (en) 2018-01-02
EP3380920A1 (en) 2018-10-03

Similar Documents

Publication Publication Date Title
US11863406B2 (en) Networked programmable logic service provider
US11860810B2 (en) Configurable logic platform
EP3561669B1 (en) Containerized application deployment
US10705995B2 (en) Configurable logic platform with multiple reconfigurable regions
US10963268B1 (en) Interception of identifier indicative of client configurable hardware logic and configuration data
US10162921B2 (en) Logic repository service
US9612859B2 (en) Comparing states of a virtual machine
TW202403565A (en) Automatically deployed information technology (it) system and method
US20160019081A1 (en) Viewing a snapshot of a virtual machine
US11175909B2 (en) Software discovery using exclusion
US9229758B2 (en) Passive monitoring of virtual systems using extensible indexing
US9436716B2 (en) Method and system for data plane abstraction to enable a network storage platform ecosystem
US9053442B2 (en) Multiple project areas in a development environment
US10761857B2 (en) Hardware management
Cacciatore et al. Exploring opportunities: Containers and openstack
US10949559B1 (en) Repository-based privilege escalation for workflows
US20160124737A1 (en) Automated generation of an appliance for a computing machine
CN116560787A (en) Configuring instances with instance metadata stored in a virtual secure processor
US20160019083A1 (en) Modifying a state of a virtual machine
WO2017091235A1 (en) Embedded image management

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15909424

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 15754186

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE