CN117785296A - Method for booting a computing device, computing device and program product - Google Patents

Method for booting a computing device, computing device and program product Download PDF

Info

Publication number
CN117785296A
CN117785296A CN202211161780.9A CN202211161780A CN117785296A CN 117785296 A CN117785296 A CN 117785296A CN 202211161780 A CN202211161780 A CN 202211161780A CN 117785296 A CN117785296 A CN 117785296A
Authority
CN
China
Prior art keywords
hba
computing device
hba cards
cards
operating system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202211161780.9A
Other languages
Chinese (zh)
Inventor
刘冰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dell Products LP
Original Assignee
Dell Products 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 Dell Products LP filed Critical Dell Products LP
Priority to CN202211161780.9A priority Critical patent/CN117785296A/en
Priority to US17/987,265 priority patent/US20240104041A1/en
Publication of CN117785296A publication Critical patent/CN117785296A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • 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
    • 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
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0028Serial attached SCSI [SAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0036Small computer system interface [SCSI]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

Embodiments of the present disclosure provide methods, computing devices, and program products for booting a computing device. The method includes obtaining type information for a plurality of Host Bus Adapter (HBA) cards of a computing device; determining a first set of HBA cards of the plurality of HBA cards based on the type information; and booting an operating system of the computing device by preventing scanning of a disk connected to the first set of HBA cards. In this way, the number of storage devices that need to be scanned before the operating system is started is reduced, increasing the speed of starting the operating system of the computing device.

Description

Method for booting a computing device, computing device and program product
Technical Field
Embodiments of the present disclosure relate to the field of computers, and more particularly, to methods, computing devices, and computer program products for booting a computing device.
Background
The computing device increases capacity through an external storage device to meet user demands. Storage devices, such as disks in general, may be organized as an array and connected to a host via a serial attached small computer system interface (SAs SCSI, abbreviated SAs). What is known as a Host Bus Adapter (HBA) card has been proposed to implement an interconnect between a host and a storage device to provide higher performance and greater capacity.
A large number of HBA cards and disks connected to the HBA cards are required in applications where storage requirements are large, such as data backup and data protection. These storage devices need to be scanned when the device is booted to discover the system disk of the device and to load the operating system. This results in a long device start-up time, which affects the user experience and degrades device performance due to the large amount of storage.
Disclosure of Invention
In accordance with an embodiment of the present disclosure, a scheme for booting a computing device is provided.
According to a first aspect of the present disclosure, a method for booting a computing device is provided. The method includes obtaining type information for a plurality of host HBA cards of the computing device. The method also includes determining a first set of HBA cards of the plurality of HBA cards based on the type information. The method further includes booting an operating system of the computing device by preventing scanning of a disk connected to the first set of HBA cards. Based on the mode, the number of storage devices which need to be scanned before the operating system is started is reduced, and the starting speed of the operating system of the computing device is increased.
According to a second aspect of the present disclosure, there is provided a computing device comprising: at least one processing unit and at least one memory coupled to the at least one processing unit and storing instructions for execution by the at least one processing unit, the instructions when executed by the at least one processing unit cause the computing device to perform a method. The method comprises the following steps: acquiring type information of a plurality of HBA cards of the computing device; determining a first set of HBA cards of the plurality of HBA cards based on the type information; and booting an operating system of the computing device by preventing scanning of a disk connected to the first set of HBA cards.
According to a third aspect of the present disclosure, there is provided a computer program product comprising machine executable instructions which, when executed by an apparatus, cause the apparatus to perform a method according to the first aspect of the present disclosure.
Drawings
The above and other features, advantages and aspects of embodiments of the present disclosure will become more apparent by reference to the following detailed description when taken in conjunction with the accompanying drawings. In the drawings, wherein like or similar reference numerals denote like or similar elements, in which:
FIG. 1 illustrates a block diagram of an example environment in which some embodiments of the disclosure may be implemented;
FIG. 2 illustrates a schematic flow diagram of a process for booting a computing device in accordance with some embodiments of the present disclosure;
FIG. 3 illustrates a schematic diagram of components related to the boot of a computing device, according to some embodiments of the present disclosure;
FIG. 4 illustrates a schematic flow diagram of a boot process of a computing device in accordance with some embodiments of the present disclosure;
figure 5 shows a schematic flow chart of a process of an operating system scanning an HBA card according to some embodiments of the present disclosure; and
fig. 6 illustrates a schematic block diagram of an example device that may be used to implement some embodiments according to the present disclosure.
Detailed Description
Embodiments of the present disclosure will be described in more detail below with reference to the accompanying drawings. While certain embodiments of the present disclosure have been shown in the accompanying drawings, it is to be understood that the present disclosure may be embodied in various forms and should not be construed as limited to the embodiments set forth herein, but are provided to provide a more thorough and complete understanding of the present disclosure. It should be understood that the drawings and embodiments of the present disclosure are for illustration purposes only and are not intended to limit the scope of the present disclosure.
In describing embodiments of the present disclosure, the term "comprising" and its like should be taken to be open-ended, i.e., including, but not limited to. The term "based on" should be understood as "based at least in part on". The term "one embodiment" or "the embodiment" should be understood as "at least one embodiment". The terms "first," "second," and the like, may refer to different or the same object. Other explicit and implicit definitions are also possible below.
In addition, all specific numerical values herein are examples only, and are intended to be construed as being without limitation.
Computing devices use nonvolatile storage (such as disk or flash memory) to store operating systems and data. At device start-up, the operating system is started by scanning the storage device to find a system disk that holds the operating system's program code, which is loaded into memory. The number of storage devices of a typical computing device is relatively small (e.g., a few or tens of disks) and does not take much time to discover and load an operating system. However, some special purpose computing devices (e.g., servers for data protection or data backup purposes) may have a significant amount of storage. For example, a computing device has a set of HBA cards, each HBA having several ports, each port connected to one disk array. The total number of disks of a computing device may be as high as hundreds or even more. In this case, it takes a considerable amount of time to scan, which results in an extended boot time to the computing device, and even an inability to boot.
In view of this, a method is provided for booting a computing device having a plurality of HBA cards, each HBA card possibly having a set of disks or other types of non-volatile storage connected thereto. In the method, type information of a plurality of HBA cards of the computing device is acquired, and whether the HBA card is an external card is judged according to the type information. The external card is known not to store the program code of the operating system, and thus can be prevented from being scanned by the HBA card determined as the external card. In this way, scanning operations for the external card's disk may be skipped, reducing the number of disks that need to be scanned before the operating system is started, increasing the speed of the computing device's startup.
Some example embodiments of the present disclosure will be described below with continued reference to fig. 1-6.
FIG. 1 illustrates a block diagram of an example environment 100, according to some embodiments of the disclosure. The example environment 100 generally depicts an exemplary computing device. The environment 100 may be referred to herein as a computing device 100. It should be understood that the environment illustrated in fig. 1 is only exemplary and should not be construed as limiting the functionality and scope of the implementations described in this disclosure. As shown, computing device 100 includes a host 110 and HBA cards 120-1, 120-2, … …, 120-N (collectively HBA cards 120) connected to host 110 via interface 104. The interface 104 may be a peripheral interconnect express (PCIe) interface or other type of interface. HBA card 120 may also be connected to one or more disks 130 via a fiber or Serial Attached SCSI (SAS) port (not shown). Disk 130 provides non-volatile storage for the host, including system disks and data disks that store program code for the operating system.
Host 110 includes firmware 101, processor 102, and memory 103. Firmware 101 may be stored in a non-volatile memory ROM or flash memory on host 110, for example on a motherboard. Firmware 101 may include a Basic Input Output System (BIOS) or unified extensible interface (UEFI) firmware. When host 110 is powered up, processor 102 executes firmware 101 so that the hardware environment of computing device 100 may be tested or initialized, and a boot loader (bootloader) is loaded into memory 103 for subsequent booting of the operating system. In the process, processor 102 of host 110 scans HBA card 120 and its disk 130 to locate the system disk where the program code of the operating system resides. The program code of the operating system is then loaded into memory 130 and processor 102 executes the program code of the operating system to boot the operating system. In some embodiments, the operating system may scan all HBA cards 120 and their disks 130 in order to mount the disks 130 to the host 120, providing storage capacity.
HBA card 120 has nonvolatile firmware. The firmware may store basic information of the HBA card, such as identification or type information of the HBA card, firmware version information, configuration parameters, vendor information, and the like. The firmware of HBA card 120 may be updated or upgraded. Upon booting the computing device 100, once the presence of new HBA firmware is detected, the operating system may be restarted after the firmware upgrade is completed. In some embodiments, the firmware of HBA card 120 may also be updated after the operating system has been successfully booted.
Disk 130 may include various types of devices having a storage function including, but not limited to, a hard disk (HDD), a Solid State Disk (SSD), a removable disk, a Compact Disk (CD), a laser disk, an optical disk, a Digital Versatile Disk (DVD), a floppy disk, a blu-ray disk, a serial attached small computer system interface (SAS SCSI) storage disk, a Serial Advanced Technology Attachment (SATA) storage disk, any other magnetic storage device, and any other optical storage device, or any combination thereof.
Fig. 2 illustrates a schematic flow diagram of a process 200 for booting a computing device according to some embodiments of the present disclosure. Process 200 may be performed by, for example, processor 102 shown in fig. 1. It should be understood that process 200 may also include additional acts not shown and/or may omit acts shown, the scope of the present disclosure being not limited in this respect.
At block 210, type information for a plurality of HBA cards of a computing device is obtained. Processor 102 may obtain information of the types of the plurality of HBA cards 120 connected to interface 104 of host 110 by executing program code of firmware 101 (e.g., UEFI firmware).
The type information of HBA card 120 is stored in its firmware. In some embodiments, in response to a boot-up (e.g., power-up) of computing device 100, processor 102 loads firmware 101 of host 110 of computing device 100 and obtains type information for HBA card 120 from the firmware of multiple HBA cards 120 based on firmware 101. Firmware 101 of host 110 may be UEFI firmware and accordingly, firmware of HBA card 120 may include UEFI drivers. Here, the type information may have the form of a character or a character string, including but not limited to a model number or identification of HBA card 120, and the like. By way of example and not limitation, the type information may include "HBA355e Adapter", "HBA355i Adapter", and the like.
At block 220, a first set of HBA cards of the plurality of HBA cards is determined based on the type information. The processor 120 may classify the individual HBA cards 120 according to their type information, and the HBA cards 120 are classified into HBA cards necessary for booting the operating system and HBA cards not necessary. The necessary HBA card is connected to the system disk of the operating system. Herein, it is known that the type information of the HBA card necessary to boot the operating system has a specific character or character string, for example, has an "i" character. "i" (internal) means that the HBA card 120 belongs to an internal card of the computing device 100. The system disk of the known operating system is connected to an HBA card whose type information includes the character "i". Therefore, the discs connected to these HBA cards need to be scanned before the operating system of the computing device is started.
Similarly, the non-essential HBA card 120 has a different specific character or string, for example, an "e" character, "e" (external) indicating that the HBA card 120 belongs to an external card of the computing device 100. The system disk of the known operating system is not connected to the HBA card whose type information includes the character "e". The disks of these HBA cards may not be scanned until the operating system of the computing device is booted.
In some embodiments, the first set of HBA cards is determined in response to the type information of the HBA cards including a predefined character or string. The first set of HBA cards is determined to include non-essential HBA cards, e.g., HBA cards whose type information includes the character "e".
At block 230, the operating system of the computing device is booted by preventing scanning of the disk connected to the first set of HBA cards. For each HBA card 120 in the first set of HBA cards, processor 102 prevents scanning the disk of that HBA card 120 by disabling the SAS port of that HBA card 120. For example, processor 102 may send a DISABLE (DISABLE) signal to set the UEFI driver of the HBA card such that the corresponding disk 130 is inaccessible.
According to the method 200 described with reference to fig. 2, processor 102 may skip scanning for external cards, requiring only scanning of the disks of the internal cards in all HBA cards 120 to be able to boot the operating system. In this way, the number of disks that need to be scanned before the operating system is started can be significantly reduced, enabling faster system disks of the operating system to be found and the operating system to be started. As an example, large storage capacity computing devices have hundreds or more disks, traditionally requiring full scanning to load an operating system, and scanning operations alone require tens of minutes. With embodiments of the present disclosure, only a portion of the hundreds of disks need to be scanned to enable the operating system to boot.
The boot process of the computing device includes a boot phase prior to booting the operating system and a phase to boot the operating system. The time required to initiate the boot phase of a computing device can be effectively reduced by the method 200 described with reference to fig. 2. The inventors have also noted that there are also a number of factors that lead to slow start-up in the conventional start-up procedure. For example, during an operating system boot process, the device driver of the operating system scans all HBA cards of the computing device and mounts the connected disk. This consumes processor resources, resulting in an excessive boot time of the operating system. On the other hand, in the conventional method, the device driver concurrently scans the disks of all HBA cards, and a large number of device event messages may be generated in a short time. And these messages are typically transmitted to the processor in an unreliable manner, such as the user datagram UDP protocol. Flooding messages in a short time can cause the device to be lost, i.e., some discs cannot be detected. In addition, in conventional approaches, firmware updates of the HBA are typically completed at device start-up, which also results in an extension of the start-up time. Further embodiments of the present disclosure are described below with reference to fig. 3-6, and in conjunction with fig. 1 and 2.
FIG. 3 illustrates a schematic diagram of components related to the startup of a computing device, according to some embodiments of the present disclosure. In fig. 3, UEFI firmware 301 may be one implementation of firmware 101 of computing device 100 and may be loaded and executed by processor 102 when computing device 100 is powered up. HBA firmware 302 may be implemented in non-volatile memory of HBA card 120. HBA firmware 302 includes UEFI driver 303, as well as other program code. To scan HBA card 120 and load the program code of the operating system, UEFI firmware 301 is utilized to obtain type information for HBA card 120 from UEFI driver 303. The type information may be used to determine the disk 130 of HBA card 120 that was not scanned prior to booting operating system 310, as described above with reference to process 200 of fig. 2.
The operating system 310 includes an external storage detection module 312, a system storage management module 314, a device driver module 316, and a firmware upgrade module 318 that are loaded and run during startup of the operating system. External storage detection module 312 is used to assist operating system 310 in discovering external HBA cards. The disk of the external HBA card is not necessary for the start-up of the operating system and therefore may not be scanned first. The system storage management module 314 is used to manage a wide variety of storage devices (e.g., disk 130), including scanning and discovering storage devices, checking the availability of storage devices, adding storage devices to a storage resource pool, mounting storage devices, deleting storage devices, and the like. The device driver module 316 is used to provide an interface between the host 110 and the HBA card 120 and its disk 130 so that the HBA card 120 and its disk 130 can be accessed by an operating system and other computer programs. Firmware upgrade module 318 is used to control the upgrade of firmware 302 of HBA card 120, for example, to discover and download the latest firmware to the local via the network, and trigger the upgrade of HBA firmware 302 at the appropriate time.
In some embodiments, external storage detection module 312 detects and discovers HBA cards that need to be scanned during operating system startup and external HBA cards that do not need to be scanned. The external storage detection module 312 may notify the system storage management module 314 and the firmware upgrade module 318 of the detection result. The system storage management module 314 may in turn inform the device driver module 316 that the device driver module 316 will only scan the disks of HBA cards that need to be scanned, temporarily not scan the disks of external HBA cards. This can speed up the start-up process of the operating system. In addition, during operating system startup, firmware upgrade module 318 may not trigger an upgrade of firmware 302 of HBA card 120, thereby reducing the time to startup the operating system.
Fig. 4 illustrates a schematic flow diagram of a boot process 400 of a computing device according to some embodiments of the present disclosure. Process 400 may be performed by, for example, processor 102 shown in fig. 1. It should be appreciated that method 400 may also include additional actions not shown and/or may omit actions shown, the scope of the present disclosure being not limited in this respect. Process 400 may be performed by processor 102 during a boot of an operating system.
At block 410, the disk connected to the internal HBA card is scanned. The operating system 310 may detect and discover the external HBA card using the external storage detection module 312 and notify the system storage management module 314. The system storage management module 314 may in turn assign an internal HBA card to the device driver module 316 that is different from the detected external HBA card, causing the device driver module 316 to initiate a scan for the assigned internal HBA card.
Referring to fig. 5, a schematic flow chart of a process 500 for an operating system to scan an HBA card is shown. Process 500 may be implemented as an exemplary implementation of step 410 of fig. 4. At block 510, the addresses of a plurality of HBA cards are obtained. Specifically, the external storage detection module 312 may obtain an address (e.g., PCIe device address) of the interface 104 to which each HBA card 120 is connected.
At block 520, a second set of HBA cards of the plurality of HBA cards having addresses different from the specified address is determined. The internal HBA card is known to have a specified address (e.g., one or more specific slots mounted on the motherboard) and therefore the external HBA card has an address that is different from the specified address. The second set of HBA cards includes external HBA cards that have addresses different from the specified addresses. The second set of HBA cards may be the same or partially the same as the first set of HBA cards determined based on the type information described with reference to fig. 2.
At block 530, the device driver of the operating system is prevented from scanning the disk connected to the second set of HBA cards. In some embodiments, scanning of disks connected to the second set of HBA cards may be prevented by disabling SAS ports of the second set of HBA cards. Alternatively, it is also possible to cause the device driver module 316 to scan only the specified HBA card and disk by indicating only the address of the HBA card to be scanned (i.e., the internal HBA card) to the device driver module 316.
Returning to FIG. 4, at block 420, a determination is made as to whether the operating system has been booted. In some embodiments, in response to initiating a user interaction with the operating system, it is determined that the operating system has been booted. The user interaction includes prompting for authentication information such as a user name, password, etc. Initiating a user interaction base means that the basic functions of the operating system are ready for use by the user without waiting further. Thus, user interactions may be considered demarcation points, operations prior to user interactions being considered necessary, and operations subsequent to user interactions may be performed relatively late. Based on the mode, the user experience when the equipment is started can be improved.
At block 430, the firmware of the HBA card is upgraded. Deferring the firmware upgrade until it is performed after the operating system has been booted may reduce unnecessary additional latency. For example, firmware upgrade module 318 may discover via the network whether the firmware of one or more HBA cards 120 is up-to-date, and if not, perform the firmware upgrade. In some embodiments, the firmware upgrade may be performed concurrently for HBA card 120 that needs to be upgraded.
At block 440, the HBA card's disk that was not scanned during startup is hierarchically scanned. As mentioned above, discovering a large number of disks in bursts may result in loss of device discovery messages, some of which cannot be mounted to a host. For HBA cards that are not scanned, the system storage management module 314 may control the device driver module 316 to hierarchically scan the HBA cards to avoid loss of device discovery messages due to burst scanning.
In some embodiments, the second set of HBA cards identified as external HBA cards described above includes at least two HBA cards. The system memory management module 314 controls the device driver module 316 to intermittently initiate scanning of these HBA cards according to a predetermined time interval. Specifically, the system storage management module 314 informs the device driver module 316 of the address of one HBA card, and the device driver module 316 enables the SAS port of that HBA card and scans the disk connected to that HBA card. Accordingly, a device discovery message is generated and the processor may add the disk to the host as an available storage resource. After a predetermined time interval (e.g., 10 seconds, 15 seconds, 20 seconds, or any other value) the system storage management module 314 notifies the device driver module 316 of the address of the next HBA card, similarly the device driver module 316 enables the SAS port of the HBA card and scans the disk connected to the HBA card, adding more storage resources, and so on. Thus, after the starting of the operating system of the computing device has been completed, the mounting of the storage device can be completed in a relatively idle manner, so that loss is avoided.
Fig. 6 illustrates a schematic block diagram of an example device 600 that may be used to implement some embodiments according to the present disclosure. As shown in fig. 6, the apparatus 600 includes a Central Processing Unit (CPU) 601, which can perform various suitable actions and processes according to computer program instructions stored in a Read Only Memory (ROM) 602 or computer program instructions loaded from a storage unit 608 into a Random Access Memory (RAM) 603. In the RAM 603, various programs and data required for the operation of the device 700 may also be stored. The CPU 601, ROM 602, and RAM 603 are connected to each other through a bus 604. An input/output (I/O) interface 605 is also connected to bus 604.
Various components in device 700 are connected to I/O interface 605, including: an input unit 606 such as a keyboard, mouse, etc.; an output unit 607 such as various types of displays, speakers, and the like; a storage unit 608, such as a magnetic disk, optical disk, or the like; and a communication unit 609 such as a network card, modem, wireless communication transceiver, etc. The communication unit 609 allows the device 700 to exchange information/data with other devices through a computer network, such as the internet, and/or various telecommunication networks.
Various processes and treatments described above, such as methods or processes 200, 400, 500, may be performed by the processing unit 601. For example, in some embodiments, the methods or processes 200, 400, 500 may be implemented as a computer software program tangibly embodied on a machine-readable medium, such as the storage unit 608. In some embodiments, part or all of the computer program may be loaded and/or installed onto the device 700 via the ROM 602 and/or the communication unit 609. When the computer program is loaded into RAM 603 and executed by CPU 601, one or more of the acts of the methods or processes 300, 400, 500 described above may be performed.
The present disclosure may be methods, apparatus, systems, and/or computer program products. The computer program product may include a computer readable storage medium having computer readable program instructions embodied thereon for performing aspects of the present disclosure.
The computer readable storage medium may be a tangible device that can hold and store instructions for use by an instruction execution device. The computer readable storage medium may be, for example, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer-readable storage medium would include the following: portable computer disks, hard disks, random Access Memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static Random Access Memory (SRAM), portable compact disk read-only memory (CD-ROM), digital Versatile Disks (DVD), memory sticks, floppy disks, mechanical coding devices, punch cards or in-groove structures such as punch cards or grooves having instructions stored thereon, and any suitable combination of the foregoing. Computer-readable storage media, as used herein, are not to be construed as transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides or other transmission media (e.g., optical pulses through fiber optic cables), or electrical signals transmitted through wires.
The computer readable program instructions described herein may be downloaded from a computer readable storage medium to a respective computing/processing device or to an external computer or external storage device over a network, such as the internet, a local area network, a wide area network, and/or a wireless network. The network may include copper transmission cables, fiber optic transmissions, wireless transmissions, routers, firewalls, switches, gateway computers and/or edge servers. The network interface card or network interface in each computing/processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium in the respective computing/processing device.
Computer program instructions for performing the operations of the present disclosure can be assembly instructions, instruction Set Architecture (ISA) instructions, machine-related instructions, microcode, firmware instructions, state setting data, or source or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, c++ or the like and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The computer readable program instructions may be executed entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the case of a remote computer, the remote computer may be connected to the user's computer through any kind of network, including a Local Area Network (LAN) or a Wide Area Network (WAN), or may be connected to an external computer (for example, through the Internet using an Internet service provider). In some embodiments, aspects of the present disclosure are implemented by personalizing electronic circuitry, such as programmable logic circuitry, field Programmable Gate Arrays (FPGAs), or Programmable Logic Arrays (PLAs), with state information of computer readable program instructions, which can execute the computer readable program instructions.
Various aspects of the present disclosure are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the disclosure. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer-readable program instructions.
These computer readable program instructions may be provided to a processing unit of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processing unit of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. These computer readable program instructions may also be stored in a computer readable storage medium that can direct a computer, programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer readable medium having the instructions stored therein includes an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer, other programmable apparatus or other devices implement the functions/acts specified in the flowchart and/or block diagram block or blocks.
The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems which perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
The foregoing description of the embodiments of the present disclosure has been presented for purposes of illustration and description, and is not intended to be exhaustive or limited to the embodiments disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the various embodiments described. The terminology used herein was chosen in order to best explain the principles of the embodiments, the practical application, or the improvement of technology in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments disclosed herein.

Claims (19)

1. A method for booting a computing device, comprising:
acquiring type information of a plurality of Host Bus Adapter (HBA) cards of a computing device;
determining a first set of HBA cards of the plurality of HBA cards based on the type information; and
an operating system of the computing device is booted by preventing scanning of discs connected to the first set of HBA cards.
2. The method of claim 1, wherein preventing scanning of discs connected to the first set of HBA cards comprises:
a Serial Attached SCSI (SAS) port of the first set of HBA cards is disabled.
3. The method of claim 2, wherein determining a first set of HBA cards of the plurality of HBA cards comprises:
the first set of HBA cards is determined in response to determining that the type information of HBA cards of the plurality of HBA cards includes a predefined character or string.
4. The method of claim 1, wherein obtaining type information for a plurality of HBA cards of a computing device comprises:
in response to a boot-up of the computing device, loading Unified Extensible Firmware Interface (UEFI) firmware of the computing device; and
based on the loading of the UEFI firmware, the type information is obtained from the firmware of the plurality of HBA cards.
5. The method of claim 1, wherein booting an operating system of the computing device further comprises: during the start-up of the operating system,
acquiring addresses of the plurality of HBA cards;
determining a second set of HBA cards of the plurality of HBA cards having addresses different from the specified address; and
device drivers of the operating system are prevented from scanning discs connected to the second set of HBA cards.
6. The method of claim 1, further comprising:
after the operating system has been booted, firmware of an HBA card of the plurality of HBA cards is upgraded.
7. The method of claim 5 or 6, further comprising:
after the operating system has been booted, the device driver is controlled to scan a disk connected to the second set of HBA cards to add the disk connected to the second set of HBA cards to the computing device.
8. The method of claim 7 wherein the second set of HBA cards includes at least two HBA cards and controlling the device driver to scan a disk connected to the second set of HBA cards includes:
the device driver intermittently initiates scanning of discs connected to the at least two HBA cards based on a predetermined time interval.
9. The method of any of claims 6 to 8, further comprising:
in response to initiating a user interaction with the operating system, it is determined that the operating system has been booted.
10. A computing device, comprising:
at least one processing unit; and
at least one memory coupled to the at least one processing unit and storing instructions for execution by the at least one processing unit, the instructions when executed by the at least one processing unit cause the computing device to perform a method comprising:
acquiring type information of a plurality of Host Bus Adapter (HBA) cards of a computing device;
determining a first set of HBA cards of the plurality of HBA cards based on the type information; and
an operating system of the computing device is booted by preventing scanning of discs connected to the first set of HBA cards.
11. The computing device of claim 10, wherein to prevent scanning of discs connected to the first set of HBA cards comprises to:
a Serial Attached SCSI (SAS) port of the first set of HBA cards is disabled.
12. The computing device of claim 11, wherein to determine a first set of HBA cards of the plurality of HBA cards comprises to:
the first set of HBA cards is determined in response to determining that the type information of HBA cards of the plurality of HBA cards includes a predefined character or string.
13. The computing device of claim 10, wherein to obtain type information for a plurality of HBA cards of the computing device comprises to:
in response to a boot-up of the computing device, loading Unified Extensible Firmware Interface (UEFI) firmware of the computing device; and
based on the loading of the UEFI firmware, the type information is obtained from the firmware of the plurality of HBA cards.
14. The computing device of claim 10, wherein to boot an operating system of the computing device further comprises to: during the start-up of the operating system,
acquiring addresses of the plurality of HBA cards;
determining a second set of HBA cards of the plurality of HBA cards having addresses different from the specified address; and
device drivers of the operating system are prevented from scanning discs connected to the second set of HBA cards.
15. The computing device of claim 10, the method further comprising:
after the operating system has been booted, firmware of an HBA card of the plurality of HBA cards is upgraded.
16. The computing device of claim 14 or 15, the method further comprising:
after the operating system has been booted, the device driver is controlled to scan a disk connected to the second set of HBA cards to add the disk connected to the second set of HBA cards to the computing device.
17. The computing device of claim 16, wherein the second set of HBA cards includes at least two HBA cards, and controlling the device driver to scan a disk connected to the second set of HBA cards includes:
the device driver intermittently initiates scanning of discs connected to the at least two HBA cards based on a predetermined time interval.
18. The computing device of any of claims 15 to 17, the method further comprising:
in response to initiating a user interaction with the operating system, it is determined that the operating system has been booted.
19. A computer program product comprising machine executable instructions which, when executed by a device, cause the device to perform the method of any one of claims 1 to 9.
CN202211161780.9A 2022-09-22 2022-09-22 Method for booting a computing device, computing device and program product Pending CN117785296A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202211161780.9A CN117785296A (en) 2022-09-22 2022-09-22 Method for booting a computing device, computing device and program product
US17/987,265 US20240104041A1 (en) 2022-09-22 2022-11-15 Method for starting computing device, computing device, and program product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211161780.9A CN117785296A (en) 2022-09-22 2022-09-22 Method for booting a computing device, computing device and program product

Publications (1)

Publication Number Publication Date
CN117785296A true CN117785296A (en) 2024-03-29

Family

ID=90359274

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211161780.9A Pending CN117785296A (en) 2022-09-22 2022-09-22 Method for booting a computing device, computing device and program product

Country Status (2)

Country Link
US (1) US20240104041A1 (en)
CN (1) CN117785296A (en)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8897313B2 (en) * 2007-01-31 2014-11-25 International Business Machines Corporation Out-of-band signaling support over standard optical SFP
US9304960B2 (en) * 2013-06-04 2016-04-05 Avago Technologies General Ip (Singapore) Pte. Ltd. Delayed physical link activation in serial attached small computer system interface devices that utilize smart cabling
US10180792B1 (en) * 2015-04-30 2019-01-15 Seagate Technology Llc Cache management in data storage systems
US20190116690A1 (en) * 2017-10-12 2019-04-18 Quanta Computer Inc. Dynamically adjust maximum fan duty in a server system
US10719265B1 (en) * 2017-12-08 2020-07-21 Pure Storage, Inc. Centralized, quorum-aware handling of device reservation requests in a storage system
US10929053B2 (en) * 2017-12-08 2021-02-23 Pure Storage, Inc. Safe destructive actions on drives
US11436367B2 (en) * 2020-02-25 2022-09-06 Hewlett Packard Enterprise Development Lp Pre-operating system environment-based sanitization of storage devices

Also Published As

Publication number Publication date
US20240104041A1 (en) 2024-03-28

Similar Documents

Publication Publication Date Title
US11438229B2 (en) Systems and methods for operating system deployment and lifecycle management of a smart network interface card
EP4113291B1 (en) Request processing method, system on chip, and public cloud management component
US10019253B2 (en) Systems and methods of updating hot-pluggable devices
CN107870968B (en) Performing real-time updates to a file system volume
US7631173B2 (en) Method and system for performing pre-boot operations from an external memory including memory address and geometry
US9250918B2 (en) Server management with dynamic construction of pre-boot images
JP6316978B2 (en) Broadcast management information using fountain codes
US20170161080A1 (en) Method to Facilitate Rapid Deployment and Rapid Redeployment of an Information Handling System
US20160253501A1 (en) Method for Detecting a Unified Extensible Firmware Interface Protocol Reload Attack and System Therefor
CN107135462B (en) Bluetooth pairing method of UEFI firmware and computing system thereof
US8495349B2 (en) Generating a primary BIOS code memory address and a recovery BIOS code memory address, where the recovery BIOS service code is loaded when the primary BIOS code fails to execute
US20090216916A1 (en) Method and apparatus for inputting/outputting data using virtualization technique
US11630591B1 (en) System and method to manage storage system for startup
US11922176B2 (en) Containerized firmware services
US9003172B2 (en) Intelligently controlling loading of legacy option ROMs in a computing system
US20210373905A1 (en) Systems and methods for cloud-centric operating system deployment through service operating system
US11989305B2 (en) Automated update of a customized secure boot policy
US20150212866A1 (en) Management system for service of multiple operating environments, and methods thereof
US20190339987A1 (en) System and Method to Update Operating System Services
CN117785296A (en) Method for booting a computing device, computing device and program product
US20190347084A1 (en) Method to Dynamically Create Plug and Play Identifiers in Firmware to Facilitate Deployment of Windows Services
US20240036896A1 (en) Generating installation images based upon dpu-specific capabilities
US9270635B2 (en) Loading an operating system of a diskless compute node using a single virtual protocol interconnect (‘VPI’) adapter
US11170111B1 (en) System and method for publishing and configuring a management service interface
US12019489B1 (en) System and method for provisioning free standing modules

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination