IP Library Granted Patent US 12,566,601
Granted Patent B2
US 12,566,601 · App. 18/504,978 · Granted Mar 3, 2026

Method for automatic bootstrapping environment using operating system and address of imaging location for remote node configuration

Inventors: Monica Adusumilli (Rajahmundry, IN); Toms Varghese (Thiruvalla, IN); Kumar Sidhartha (Bangalore, IN); Amritesh Patidar (Bangalore, IN)
Assignee: Nutanix, Inc.
G06F8/63G06F9/4406
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,566,601
App. No.
18/504,978
Filed
Nov 8, 2023
Granted
Mar 3, 2026
Kind
B2
Art Unit
2184
USPC
713/2
Abstract

A system and method for imaging a self-bootstrapping computing node includes booting, from a boot device, the computing node into a bootstrapping environment using a bootstrap operating system, where the bootstrap operating system is configured with an address of an imaging location, accessing the imaging location and receiving a software image for the computing node, and, imaging the computing node using the software image including installing another operating system on the computing node to boot from the boot device. Monitoring a status of the computing node's imaging operations using an application programming interface (API), monitoring a health status of the computing node, and enabling restart of the boot process upon failure (e.g., self-healing, self-recovery, etc.), is also described.

Claims (76)

1 . A computing node comprising:

a boot device;

at least one processor;

at least one non-transitory computer readable storage medium encoded with instructions which, when executed are configured to cause the computing node to perform imaging operations comprising:

boot, from the boot device, the computing node into a bootstrapping environment using a bootstrap operating system, the bootstrap operating system configured with an address of an imaging location;

access the imaging location and receive a software image for the computing node; and

image the computing node using the software image including installing another operating system on the computing node to boot from the boot device.

2 . The computing node of claim 1 , wherein the instructions, when executed, further cause the computing node to:

monitor, based at least on an application programming interface (API) of the bootstrapping environment, a status of the imaging operations.

3 . The computing node of claim 2 , wherein the instructions, when executed, further cause the computing node to:

provide, using a graphical user interface, the status of the imaging operations based at least on the monitoring, wherein the status comprises one or more progress updates associated with the imaging operations.

4 . The computing node of claim 1 , wherein the imaging location is a URL using one or more schemes, including Hypertext Transfer Protocol (HTTP), Hypertext Transfer Protocol Secure (HTTPS), Network File System (NFS), Server Message Block (SMB), or combinations thereof, and wherein the URL is accessible from the computing node without client authentication.

5 . The computing node of claim 1 , wherein the imaging location is a URL and points to a JavaScript object notation (JSON) file provided to the computing node.

6 . The computing node of claim 3 , wherein the one or more progress updates are stored on one or more files, wherein at least one of the one or more files is accessible via the API of the bootstrapping environment, and wherein one or more log files may comprise the one or more progress updates.

7 . The computing node of claim 2 , wherein the instructions, when executed, further cause the computing node to:

monitor the status of the imaging operations; and

based on determining that the imaging operations have failed, restart the boot process to image the computing node.

8 . The computing node of claim 1 , wherein the instructions, when executed, further cause the computing node to:

monitor a health status of the computing node;

based on determining the computing node is in a failsafe state, restart the boot process to image the computing node.

9 . The computing node of claim 7 , wherein failure of the imaging operations is caused by one or more of a failure to access the imaging location and receive the software image for the computing node, accessing an incorrect imaging location, accessing an incorrect software image for the computing node, or combinations thereof.

10 . The computing node of claim 1 , wherein the instructions, when executed, further cause the computing node to:

upon completion of installing the another operating system on the computing node to boot from the boot device, cause the computing node to join one or more other computing nodes as a plurality of computing nodes.

11 . The computing node of claim 10 , wherein the plurality of computing nodes comprises the one or more other computing nodes and the computing node, and wherein each node of the plurality of computing nodes is configured to perform one or more functions, including a distributed file server function, a backup system function, or a combination thereof.

12 . The computing node of claim 1 , wherein the instructions, when executed, further cause the computing node to:

upon completion of installing the another operating system on the computing node to boot from the boot device, cause the computing node to operate without joining one or more other computing nodes.

13 . The computing node of claim 11 , wherein the plurality of nodes is a cluster of nodes.

14 . The computing node of claim 1 , wherein the software image comprises the another operating system and wherein the boot device comprises a solid-state drive (SSD), hard disk drive (HDD), non-volatile memory express (NVMe), or combinations thereof.

15 . The computing node of claim 2 , wherein the API is a REST API, an RPC API, a GraphQL API, or combinations thereof.

16 . The computing node of claim 1 , wherein the image location is at a filer location.

17 . At least one non-transitory computer-readable storage medium including instructions that when executed by a computing node in a computing system, cause the computing node to:

boot, from a boot device, the computing node into a bootstrapping environment using a bootstrap operating system, wherein the bootstrap operating system is configured with an address of an imaging location comprising another operating system;

access, by the computing node, the imaging location and receiving a software image for the computing node comprising the another operating system; and

image, by the computing node, the computing node using the software image, the imaging including installing the another operating system on the computing node to boot from the boot device.

18 . The at least one non-transitory computer-readable storage medium of claim 17 , the computing node further caused to monitor, based at least on an application programming interface (API) of the bootstrapping environment, a status of the imaging operations.

19 . The at least one non-transitory computer-readable storage medium of claim 18 , the computing node further caused to provide, using a graphical user interface, the status of the imaging operations based at least on the monitoring, wherein the status comprises one or more progress updates associated with the imaging operations.

20 . The at least one non-transitory computer-readable storage medium of claim 17 , wherein the imaging location is a URL using one or more schemes, including Hypertext Transfer Protocol (HTTP), Hypertext Transfer Protocol Secure (HTTPS), Network File System (NFS), Server Message Block (SMB), or combinations thereof, and wherein the URL is accessible from the computing node without client authentication.

21 . The at least one non-transitory computer-readable storage medium of claim 17 , wherein the imaging location is a URL and points to a JavaScript object notation (JSON) file provided to the computing node.

22 . The at least one non-transitory computer-readable storage medium of claim 19 , wherein the one or more progress updates are stored on one or more files, wherein at least one of the one or more files is accessible via the API of the bootstrapping environment, and wherein one or more log files may comprise the one or more progress updates.

23 . The at least one non-transitory computer-readable storage medium of claim 18 , the computing node further caused to:

monitor the status of the imaging operations; and

based on determining that the imaging operations have failed, restart the boot process to image the computing node.

24 . The at least one non-transitory computer-readable storage medium of claim 17 , the computing node further caused to:

monitor a health status of the computing node;

based on determining the computing node is in a failsafe state, restart the boot process to image the computing node.

25 . The at least one non-transitory computer-readable storage medium of claim 23 , wherein failure of the imaging operations is caused by one or more of a failure to access the imaging location and receive the software image for the computing node, accessing an incorrect imaging location, accessing an incorrect software image for the computing node, or combinations thereof.

26 . The at least one non-transitory computer-readable storage medium of claim 17 , the computing node further caused to:

upon completion of installing the another operating system on the computing node to boot from the boot device, cause the computing node to join one or more other computing nodes as a plurality of computing nodes.

27 . The at least one non-transitory computer-readable storage medium of claim 26 , wherein the plurality of computing nodes comprises the one or more other computing nodes and the computing node, and wherein each node of the plurality of computing nodes is configured to perform one or more functions, including a distributed file server function, a backup system function, or a combination thereof.

28 . The at least one non-transitory computer-readable storage medium of claim 17 , the computing node further caused to:

upon completion of installing the another operating system on the computing node to boot from the boot device, cause the computing node to operate without joining one or more other computing nodes.

29 . The at least one non-transitory computer-readable storage medium of claim 27 , wherein the plurality of nodes is a cluster of nodes.

30 . A method comprising:

booting, from a boot device, a computing node into a bootstrapping environment using a bootstrap operating system, wherein the bootstrap operating system is configured with an address of an image hosting server comprising a computing node operating system;

accessing, by the computing node, the image hosting server and receiving a software image for the computing node comprising the computing node operating system; and

imaging, by the computing node, the computing node using the software image, the imaging including installing the computing node operating system on the computing node to boot from the boot device.

31 . The method of claim 30 , the method further comprising:

monitoring a status of the imaging, the monitoring based at least on an application programming interface (API) of the bootstrapping environment.

32 . The method of claim 31 , the method further comprising:

providing, using a graphical user interface, the status of the imaging based at least on the monitoring, wherein the status comprises one or more progress updates associated with the imaging.

33 . The method of claim 30 , wherein a location of the image hosting server is located at a URL using one or more schemes, including Hypertext Transfer Protocol (HTTP), Hypertext Transfer Protocol Secure (HTTPS), Network File System (NFS), Server Message Block (SMB), or combinations thereof, and wherein the URL is accessible from the computing node without client authentication.

34 . The method of claim 33 , wherein the location of the image hosting server is a URL and points to a JavaScript object notation (JSON) file provided to the computing node.

35 . The method of claim 32 , wherein the one or more progress updates are stored on one or more files, wherein at least one of the one or more files is accessible via the API of the bootstrapping environment, and wherein one or more log files may comprise the one or more progress updates.

36 . The method of claim 31 , the method further comprising:

monitoring the status of the imaging; and

based on determining that the imaging has failed, restarting the boot process to image the computing node.

37 . The method of claim 30 , the method further comprising:

monitoring a health status of the computing node;

based on determining the computing node is in a failsafe state, restarting the boot process to image the computing node.

38 . The method of claim 36 , wherein failure of the imaging is caused by one or more of a failure to access the image hosting server and receive the software image for the computing node, accessing an incorrect image hosting server, accessing an incorrect software image for the computing node, or combinations thereof.

39 . The method of claim 30 , the method further comprising:

upon completion of installing the computing node operating system on the computing node to boot from the boot device, cause the computing node to join one or more other computing nodes as a plurality of computing nodes.

40 . The method of claim 39 , wherein the plurality of computing nodes comprises the one or more other computing nodes and the computing node, and wherein each node of the plurality of computing nodes is configured to perform one or more functions, including a distributed file server function, a backup system function, or a combination thereof.

41 . The method of claim 30 , the method further comprising:

upon completion of installing the computing node operating system on the computing node to boot from the boot device, cause the computing node to operate without joining one or more other computing nodes.

42 . The method of claim 40 , wherein the plurality of nodes is a cluster of nodes.

Assignments (2)
SECURITY INTEREST Recorded Feb 13, 2025
From: NUTANIX, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 070206/0463 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2023
From: ADUSUMILLI, MONICA; VARGHESE, TOMS; SIDHARTHA, KUMAR; PATIDAR, AMRITESH
To: NUTANIX, INC.
Reel/Frame 065508/0832 →
Continuity (1)
Related Publication 20250147746A1 · May 8, 2025
References Cited (118)
US 6980239B1 · Motta · 2005 [cited by examiner]
US 7920549B2 · Alt et al. · 2011 [cited by applicant]
US 8085695B2 · Kushalnagar et al. · 2011 [cited by applicant]
US 8429276B1 · Kumar et al. · 2013 [cited by applicant]
US 8549518B1 · Aron et al. · 2013 [cited by applicant]
US 8601473B1 · Aron et al. · 2013 [cited by applicant]
US 8656018B1 · Keagy · 2014 [cited by examiner]
US 8726274B2 · Pafumi et al. · 2014 [cited by applicant]
US 8776050B2 · Plouffe et al. · 2014 [cited by applicant]
US 8850130B1 · Aron et al. · 2014 [cited by applicant]
US 8863124B1 · Aron · 2014 [cited by applicant]
US 8938523B2 · Jaroker · 2015 [cited by applicant]
US 9009106B1 · Aron et al. · 2015 [cited by applicant]
US 9027087B2 · Ishaya et al. · 2015 [cited by applicant]
US 9069708B2 · Gill et al. · 2015 [cited by applicant]
US 9130837B2 · Bjarnason et al. · 2015 [cited by applicant]
US 9135145B2 · Voccio et al. · 2015 [cited by applicant]
US 9152447B2 · Venkat et al. · 2015 [cited by applicant]
US 9262155B2 · Johnsen et al. · 2016 [cited by applicant]
US 9336132B1 · Aron et al. · 2016 [cited by applicant]
US 9426026B2 · Rider · 2016 [cited by applicant]
US 9426030B1 · Anerousis et al. · 2016 [cited by applicant]
US 9652265B1 · Narayanasamy et al. · 2017 [cited by applicant]
US 9716624B2 · Zeyliger et al. · 2017 [cited by applicant]
US 9747287B1 · Bhardwaj et al. · 2017 [cited by applicant]
US 9772866B1 · Aron et al. · 2017 [cited by applicant]
US 10120725B2 · Jubran et al. · 2018 [cited by applicant]
US 10191757B2 · Venkataramaiah et al. · 2019 [cited by applicant]
US 10284642B2 · Shanley et al. · 2019 [cited by applicant]
US 10374877B2 · Patterson et al. · 2019 [cited by applicant]
US 10516760B2 · Chugtu et al. · 2019 [cited by applicant]
US 10534600B2 · Bertani et al. · 2020 [cited by applicant]
US 10979289B2 · Sidhartha et al. · 2021 [cited by applicant]
US 11005973B2 · Chugtu · 2021 [cited by examiner]
US 11159367B2 · Finn et al. · 2021 [cited by applicant]
US 11212168B2 · Sidhartha et al. · 2021 [cited by applicant]
US 11334367B2 · Liu · 2022 [cited by examiner]
US 12069184B2 · Liu · 2024 [cited by examiner]
US 20050120160A1 · Plouffe et al. · 2005 [cited by applicant]
US 20050169195A1 · Luo et al. · 2005 [cited by applicant]
US 20060143432A1 · Rothman et al. · 2006 [cited by applicant]
US 20060155674A1 · Traut et al. · 2006 [cited by applicant]
US 20100017597A1 · Chandwani · 2010 [cited by applicant]
US 20110075591A1 · Cheshire · 2011 [cited by applicant]
US 20120079474A1 · Gold et al. · 2012 [cited by applicant]
US 20120150985A1 · Marion et al. · 2012 [cited by applicant]
US 20120207291A1 · West et al. · 2012 [cited by applicant]
US 20130227144A1 · Saito et al. · 2013 [cited by applicant]
US 20130287026A1 · Davie · 2013 [cited by applicant]
US 20140156824A1 · Biswas et al. · 2014 [cited by applicant]
US 20150096011A1 · Watt · 2015 [cited by applicant]
US 20150134791A1 · Cohn et al. · 2015 [cited by applicant]
US 20150271014A1 · Madama · 2015 [cited by applicant]
US 20150341189A1 · Zhang et al. · 2015 [cited by applicant]
US 20150363724A1 · Chatterjee et al. · 2015 [cited by applicant]
US 20150365323A1 · Duminuco et al. · 2015 [cited by applicant]
US 20160006607A1 · Wang et al. · 2016 [cited by applicant]
US 20160212044A1 · Danforth · 2016 [cited by applicant]
US 20160255045A1 · Kolesnik et al. · 2016 [cited by applicant]
US 20170223053A1 · Dhanabalan et al. · 2017 [cited by applicant]
US 20180129524A1 · Bryant et al. · 2018 [cited by applicant]
US 20180367530A1 · Mistry · 2018 [cited by applicant]
US 20180375921A1 · Wang et al. · 2018 [cited by applicant]
US 20190166032A1 · Inbaraj · 2019 [cited by examiner]
US 20190188021A1 · Finn et al. · 2019 [cited by applicant]
US 20190356541A1 · Finn et al. · 2019 [cited by applicant]
US 20200044917A1 · Peng · 2020 [cited by applicant]
US 20210051062A1 · Sidhartha et al. · 2021 [cited by applicant]
US 20210152420A1 · Sidhartha et al. · 2021 [cited by applicant]
US 20210382738A1 · Huang et al. · 2021 [cited by applicant]
CN 105573810A · 2016 [cited by applicant]
CN 107479937A · 2017 [cited by applicant]
EP 3438829A1 · 2021 [cited by applicant]
WO 2016014803A1 · 2016 [cited by applicant]
WO 2019222262A1 · 2019 [cited by applicant]
International Search Report and Written Opinion received in PCT/US2019/032284 mailed Aug. 23, 2019. [cited by applicant]
U.S. Appl. No. 18/671,838 titled “Systems and Methods for Upgrading Unconfigured Nodes, Including Examples of Health Monitoring and Parallel Upgrades” filed May 22, 2024. [cited by applicant]
Communication Pursuant to Article 94(3) EPC dated Feb. 14, 2022 for EP Application 19726864.2, pp. 1-5. [cited by applicant]
“Cisco HyperFlex Edge 4.0 with Cisco Intersight—Deployment Guide for HyperFlex Edge Systems with Cisco Intersight Cloud Management Platform and VMware ESXi”, Cisco, Oct. 11, 2019, pp. 68-96. [cited by applicant]
“Cluster create”, NetApp | https://docs.netapp.com/us-en/ontap-cli-9121/cluster-create.html#description, Nov. 29, 2022, pp. 2. [cited by applicant]
“Create a Deploy Rule”, VMWare Docs; retrieved from: https://docs.vmware.com/en/VMware-vSphere/7.0/com.vmware.esxi.install.doc/GUID-DF1FFD91-1BBC-492B-AB4E-AEB1D3C9BB03.html, Feb. 11, 2020. [cited by applicant]
“Deployment—VMware Validated Design for Remote Office Branch Office 4.3”, VMware Validated Design 4.3 VMware Validated Design for Remote Office Branch Office 4.3, Sep. 25, 2018, pp. 34-36. [cited by applicant]
“Introduction to vSphere Auto Deploy”, VMWare Docs; retrieved from: https://docs.vmware.com/en/VMware-vSphere/6.5/com.vmware.vsphere.install.doc/GUID-9A827220-177E-40DE-99A0-E1EB62A49408.html, Apr. 18, 2022. [cited by applicant]
“Introduction to vSphere Auto Deploy”, VMWare Docs; retrieved from: https://docs.vmware.com/en/VMware-vSphere/7.0/com.vmware.esxi.upgrade.doc/GUID-9A827220-177E-40DE-99A0-E1EB62A49408.html, Apr. 18, 2022. [cited by applicant]
“Isilon: How to perform simultaneous drive firmware updates manually using Drive Support Package 1.19 and newer”, Dell Technologies | https://www.dell.com/support/kbdoc/en-in/000019212/how-to-perform-simultaneous-drive-… [cited by applicant]
“SmartProvisioning R76 Administration Guide”, Check Point: Software Technologies LTD, Feb. 7, 2013, pp. 87-97. [cited by applicant]
“VSphere Auto Deploy Boot Process”, VMWare Docs; retrieved from: https://docs.vmware.com/en/VMware-vSphere/7.0/com.vmware.esxi.install.doc/GUID-8C221180-8B56-4E07-88BE-789B25BA372A.html, Nov. 23, 2022. [cited by applicant]
Abhilash , “VMware vSphere 5.5 Cookbook”, Packt Publishing, Limited, Olton Birmingham, Feb. 27, 2015. [cited by applicant]
Cano, Ignacio , et al., “Curator: Self-Managing Storage for Enterprise Clusters”, University of Washington, Mar. 2017, pp. all. [cited by applicant]
Khmelnitsky, Michael , “Qumulo in GCP: Upgrade an Unconfigured Node”, Qumulo Care | https://care.qumulo.com/hc/en-us/articles/360037777433-Qumulo-in-GCP-Upgrade-an-Unconfigured-Node#in-this-article-0-0, May 2022, pp. 8. [cited by applicant]
Poitras, Stevens , et al., “The Nutanix Bible”, https://nutanixbible.com, May 21, 2024, pp. 268. [cited by applicant]
“Bootstrap a Node”, ProgressChef | https://docs.chef.io/install_bootstrap/, Retrieved Dec. 14, 2022, pp. 16. [cited by applicant]
“Kubernetes Infrastructure”, Red Hat | https://docs.openshift.com/container-platform/3.11/architecture/infrastructure_components/kubernetes_infrastructure.html, Retrieved Nov. 4, 2022, pp. 15. [cited by applicant]
“Node Bootstrapping”, ProgressChef | https://docs.chef.io/automate/ha_node_bootstraping/, Retrieved Dec. 14, 2022, pp. 4. [cited by applicant]
“VxRail node image management (NIM) tool”, Make It Work | https://make-it-work.net/2022/01/vxrail-node-image-management-nim-tool/, Jan. 4, 2022, pp. 6. [cited by applicant]
Poitras, Steven , “The Nutanix Bible”, https://nutanixbible.com/, Apr. 9, 2019, pp. all. [cited by applicant]
Poitras, Steven , “The Nutanix Bible”, http://stevenpoitras.com/the-nutanix-bible/ (Publication date based on indicated capture date by Archive.org; first publication date unknown), Jan. 11, 2014, pp. all. [cited by applicant]
Poitras, Steven , “The Nutanix Bible”, https://nutanixbible.com/, Jan. 12, 2016, pp. all. [cited by applicant]
Poitras, Steven , “The Nutanix Bible”, https://nutanixbible.com/, Jan. 3, 2017, pp. all. [cited by applicant]
Poitras, Steven , “The Nutanix Bible”, https://nutanixbible.com/, Jan. 3, 2018, pp. all. [cited by applicant]
Poitras, Steven , “The Nutanix Bible”, http://stevenpoitras.com/the-nutanix-bible/ (Publication date based on indicated capture date by Archive.org; first publication date unknown), Jan. 7, 2015, pp. all. [cited by applicant]
Poitras, Steven , “The Nutanix Bible”, https://nutanixbible.com/, Jan. 8, 2019, pp. all. [cited by applicant]
Poitras, Steven , “The Nutanix Bible”, https://nutanixbible.com/, Jul. 25, 2019, pp. all. [cited by applicant]
Poitras, Steven , “The Nutanix Bible”, http://stevenpoitras.com/the-nutanix-bible/ (Publication date based on indicated capture date by Archive.org; first publication date unknown), Jun. 20, 2014, pp. all. [cited by applicant]
Poitras, Steven , “The Nutanix Bible”, https://www.nutanixbible.com, Jun. 23, 2023, pp. 1-263. [cited by applicant]
Poitras, Steven , “The Nutanix Bible”, https://nutanixbible.com/, Jun. 25, 2018, pp. all. [cited by applicant]
Poitras, Steven , “The Nutanix Bible”, https://nutanixbible.com/, Jun. 8, 2017, pp. all. [cited by applicant]
Poitras, Steven , “The Nutanix Bible”, http://stevenpoitras.com/the-nutanix-bible/ (Publication date based on indicated capture date by Archive.org; first publication date unknown), Jun. 9, 2015, pp. all. [cited by applicant]
Poitras, Steven , “The Nutanix Bible”, https://nutanixbible.com/, Jun. 9, 2016, pp. all. [cited by applicant]
Poitras, Steven , “The Nutanix Bible”, https://nutanixbible.com/, Mar. 2, 2020, pp. all. [cited by applicant]
Poitras, Steven , “The Nutanix Bible”, https://nutanixbible.com/, Mar. 2, 2021, pp. all. [cited by applicant]
Poitras, Steven , “The Nutanix Bible”, http://stevenpoitras.com/the-nutanix-bible/ (Publication date based on indicated capture date by Archive.org; first publication date unknown), Oct. 15, 2013, pp. all. [cited by applicant]
Poitras, Steven , “The Nutanix Bible”, https://nutanixbible.com/, Sep. 1, 2020, pp. all. [cited by applicant]
Poitras, Steven , “The Nutanix Bible”, https://nutanixbible.com/, Sep. 17, 2019, pp. all. [cited by applicant]
Poitras, Steven , “The Nutanix Bible”, https://nutanixbible.com/, Sep. 3, 2021, pp. all. [cited by applicant]
Poitras, Steven , “The Nutanix Bible”, https://nutanixbible.com/, Sep. 4, 2015, pp. all. [cited by applicant]
Poitras, Steven , “The Nutanix Bible—Classic Edition”, https://nutanixbible.com/ (Mar. 1, 2023), Mar. 1, 2023, pp. all. [cited by applicant]
Poitras, Steven , “The Nutanix Bible—Classic Edition”, https://nutanixbible.com/ (Sep. 9, 2022), Sep. 9, 2022, pp. all. [cited by applicant]