<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>engineering Archives - OVHcloud Blog</title>
	<atom:link href="https://blog.ovhcloud.com/tag/engineering/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.ovhcloud.com/tag/engineering/</link>
	<description>Innovation for Freedom</description>
	<lastBuildDate>Mon, 09 Jun 2025 14:38:10 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://blog.ovhcloud.com/wp-content/uploads/2019/07/cropped-cropped-nouveau-logo-ovh-rebranding-32x32.gif</url>
	<title>engineering Archives - OVHcloud Blog</title>
	<link>https://blog.ovhcloud.com/tag/engineering/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>OVHcloud: Microcode management at scale</title>
		<link>https://blog.ovhcloud.com/ovhcloud-microcode-management-at-scale/</link>
		
		<dc:creator><![CDATA[Jean-Baptiste Delon]]></dc:creator>
		<pubDate>Mon, 09 Jun 2025 14:33:49 +0000</pubDate>
				<category><![CDATA[OVHcloud Engineering]]></category>
		<category><![CDATA[engineering]]></category>
		<category><![CDATA[Infrastructure]]></category>
		<category><![CDATA[management at scale]]></category>
		<category><![CDATA[microcode]]></category>
		<category><![CDATA[OVHcloud]]></category>
		<guid isPermaLink="false">https://blog.ovhcloud.com/?p=29064</guid>

					<description><![CDATA[Microphotograph of the Motorola 68000 microprocessor die. Image courtesy of Wikimedia Commons, licensed under CC BY 3.0.No changes were made. Table of content: What is microcode? As Gordon Moore predicted in 1965, in what is now known as Moore’s Law, the number of transistors in an integrated circuit would double every two years. This exponential [&#8230;]<img src="//blog.ovhcloud.com/wp-content/plugins/matomo/app/matomo.php?idsite=1&amp;rec=1&amp;url=https%3A%2F%2Fblog.ovhcloud.com%2Fovhcloud-microcode-management-at-scale%2F&amp;action_name=OVHcloud%3A%20Microcode%20management%20at%20scale&amp;urlref=https%3A%2F%2Fblog.ovhcloud.com%2Ffeed%2F" style="border:0;width:0;height:0" width="0" height="0" alt="" />]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image aligncenter size-large is-resized"><img fetchpriority="high" decoding="async" width="1024" height="905" src="https://blog.ovhcloud.com/wp-content/uploads/2025/06/image-1024x905.jpeg" alt="" class="wp-image-29065" style="width:459px;height:auto" srcset="https://blog.ovhcloud.com/wp-content/uploads/2025/06/image-1024x905.jpeg 1024w, https://blog.ovhcloud.com/wp-content/uploads/2025/06/image-300x265.jpeg 300w, https://blog.ovhcloud.com/wp-content/uploads/2025/06/image-768x679.jpeg 768w, https://blog.ovhcloud.com/wp-content/uploads/2025/06/image-1536x1358.jpeg 1536w, https://blog.ovhcloud.com/wp-content/uploads/2025/06/image-2048x1811.jpeg 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="has-text-align-center"><em>Microphotograph of the Motorola 68000 microprocessor die. Image courtesy of <a href="https://commons.wikimedia.org/wiki/File:Motorola_68000_die.JPG" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">Wikimedia Commons</a>, licensed under <a href="https://creativecommons.org/licenses/by/3.0/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">CC BY 3.0</a>.</em><br><em>No changes were made.</em></p>



<p><strong>Table of content:</strong></p>



<ul class="wp-block-list">
<li><a href="#What-is-microcode?">What is microcode?</a></li>



<li><a href="#What-is-it-used-for?">What is it used for?</a></li>



<li><a href="#Benefits-and-drawbacks">Benefits/Drawbacks</a></li>



<li><a href="#Microcode-architecture">Microcode Architecture</a></li>



<li><a href="#Microcode-update-integration">Microcode Update Integration</a></li>



<li><a href="#Microcode-update-format">Microcode Update format</a></li>



<li><a href="#Microcode-update-methods">Microcode Update Methods</a></li>



<li><a href="#Microcode-update-methods-comparison">Microcode Update Methods Comparison</a></li>



<li><a href="#Microcode-update-challenges-at-OVHcloud">Microcode Update challenges at OVHcloud</a></li>



<li><a href="#OVHcloud-boot-process">OVHcloud Boot Process</a></li>



<li><a href="#OVHcloud-microcode-validation">OVHcloud Microcode validation</a></li>
</ul>



<h1 class="wp-block-heading" id="What-is-microcode?">What is microcode?</h1>



<p>As Gordon Moore predicted in 1965, in what is now known as Moore’s Law, the number of transistors in an integrated circuit would double every two years. This exponential growth has driven the design of smaller, faster, and more efficient transistors, pushing CPUs to unprecedented levels of complexity. As a result, a more flexible way of converting machine code into CPU circuit-level operations is needed. Although MIT pioneered software-controlled circuitry in the 1950s, the widespread use of micro-programming for CPU was delayed for decades by the limited capacity and high cost of storage.</p>



<p>Microcode is an abstraction layer that sits between the CPU’s hardware and machine code (a binary representation of the compiled program). It translates machine instructions (basic steps a computer performs), state machine data, or other inputs into sequences of detailed circuit-level operations. It separates machine instructions from the control signal (i.e., electrical impulses), thereby enabling greater flexibility in designing and modifying instructions. Unlike hardwired instruction decoding, which requires hardware changes for bug fixes, microcode software-based updates provide a simpler, more efficient patching process.<br>Microcode software is exclusively edited by the hardware manufacturer, and is closely tied to the particular hardware it runs on. This means microcode is typically proprietary software (Intel x86, AMD x86), with the exception of a few open-source hardware CPUs.</p>



<h1 class="wp-block-heading" id="What-is-it-used-for?">What is it used for?</h1>



<ul class="wp-block-list">
<li>Instruction decoding</li>



<li>CPU bug fixes</li>



<li>Exception handling</li>



<li>Power management</li>



<li>Complex CPU features</li>
</ul>



<h1 class="wp-block-heading" id="Benefits-and-drawbacks">Benefits and drawbacks</h1>



<figure class="wp-block-table"><table><tbody><tr><td class="has-text-align-center" data-align="center">✅<strong>Benefits</strong></td><td class="has-text-align-center" data-align="center">❌<strong>Drawbacks</strong></td></tr><tr><td class="has-text-align-center" data-align="center">✅Easy design, machine code scalability</td><td class="has-text-align-center" data-align="center">❌New layer &#8211; new attack vector and higher risk of microcode bugs</td></tr><tr><td class="has-text-align-center" data-align="center">✅CPU manufacturing optimisation: identical hardware across products, with different features (features are enabled or disabled via microcode)</td><td class="has-text-align-center" data-align="center">❌High machine latency (more clock cycles needed to run a machine code, compared to its equivalent in assembly code)&nbsp;</td></tr><tr><td class="has-text-align-center" data-align="center">✅Easy debugging and testing during production phases</td><td class="has-text-align-center" data-align="center">❌Except for very few exceptions, microcode is obscure and lacks documentation</td></tr><tr><td class="has-text-align-center" data-align="center">✅Microcode updates can be used to correct hardware design flaws, thus reducing post-production and distribution costs</td><td class="has-text-align-center" data-align="center"></td></tr></tbody></table></figure>



<h1 class="wp-block-heading" id="Microcode-architecture">Microcode architecture</h1>



<p>Instructions specific to CPU architecture (or macro-instructions) are complex and must be broken down into sequences of simple instructions.</p>



<ul class="wp-block-list">
<li>Decoder: translates CPU architecture-specific instruction to micro-operation
<ul class="wp-block-list">
<li>Short Decoder + operation packing: widely used hardware-based decoder that can incorporate multiple short decoders</li>



<li>Long Decoder:&nbsp; hardware-based decoder operating similarly to a more intricate set of instructions</li>



<li>Vector Decoder &#8211; microcode engine: software-based decoder for rare and very complex instructions</li>
</ul>
</li>



<li>Scheduler
<ul class="wp-block-list">
<li>Micro-ops are reordered and then fed into the pipeline</li>
</ul>
</li>



<li>Processing
<ul class="wp-block-list">
<li>Micro-ops are processed by the corresponding execution unit</li>
</ul>
</li>
</ul>



<figure class="wp-block-image aligncenter size-full"><img decoding="async" width="608" height="619" src="https://blog.ovhcloud.com/wp-content/uploads/2025/06/image.png" alt="" class="wp-image-29066" srcset="https://blog.ovhcloud.com/wp-content/uploads/2025/06/image.png 608w, https://blog.ovhcloud.com/wp-content/uploads/2025/06/image-295x300.png 295w, https://blog.ovhcloud.com/wp-content/uploads/2025/06/image-70x70.png 70w" sizes="(max-width: 608px) 100vw, 608px" /></figure>



<h1 class="wp-block-heading" id="Microcode-update-integration">Microcode update integration</h1>



<p>Microcode uses 2 types of storage:</p>



<ul class="wp-block-list">
<li>Microcode ROM: for storing the program</li>



<li>Microcode RAM: for storing the microcode update</li>
</ul>



<p>Match registers are used to provide breakpoints in the microcode ROM</p>



<ul class="wp-block-list">
<li></li>
</ul>



<p>When a particular address is reached, it’s rerouted to the microcode RAM containing the update.</p>



<p>Since microcode patches are stored in a low-latency volatile on-chip RAM, it’s fairly limited in size and not persistent. <strong>Each time the system boots</strong>, it needs to:</p>



<ul class="wp-block-list">
<li>be in kernel mode (or supervisor mode)</li>



<li>load microcode update into RAM</li>



<li>write the update’s virtual address to the Microcode Specific Register (MSR)</li>
</ul>



<figure class="wp-block-image aligncenter size-large"><img decoding="async" width="1024" height="586" src="https://blog.ovhcloud.com/wp-content/uploads/2025/06/microcode-update-integration-1024x586.png" alt="" class="wp-image-29094" srcset="https://blog.ovhcloud.com/wp-content/uploads/2025/06/microcode-update-integration-1024x586.png 1024w, https://blog.ovhcloud.com/wp-content/uploads/2025/06/microcode-update-integration-300x172.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2025/06/microcode-update-integration-768x440.png 768w, https://blog.ovhcloud.com/wp-content/uploads/2025/06/microcode-update-integration.png 1041w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<p>By design, microcode patches add extra condition checks, which slows down CPU performance. Additionally, patch application isn’t always successful, and in some cases, only provides a partial fix.</p>



<h1 class="wp-block-heading" id="Microcode-update-format">Microcode update format</h1>



<p>CPU manufacturers distribute microcode updates as <strong>bundled microcode files</strong>. A bundle microcode file is a concatenation of <strong>individual microcode files</strong>; each individual file is a single patch for a unique CPUID (the signature of a CPU hardware model within a product). Practically speaking, a microcode bundle contains all the microcode updates for every CPUID from a specific CPU manufacturer, as of a particular date. Each microcode file includes a header (see Intel structure table below and the payload containing the patch).</p>



<p>This payload consists of match registers (breakpoints) and triads (containing the microcode patch).</p>



<p>Triggers represent conditions under which control is transferred from microcode ROM to patch RAM.&nbsp;</p>



<p>Each triad contains:</p>



<ul class="wp-block-list">
<li>3 micro-ops: microcode instruction that runs code</li>



<li>Sequence word: for redirecting control flow</li>
</ul>



<figure class="wp-block-table aligncenter"><table><tbody><tr><td class="has-text-align-right" data-align="right">B/Bit</td><td class="has-text-align-center" data-align="center"><strong>0</strong></td><td class="has-text-align-center" data-align="center"></td><td></td><td class="has-text-align-right" data-align="right"><strong>31</strong></td><td><strong>32</strong></td><td></td><td></td><td class="has-text-align-right" data-align="right"><strong>63</strong></td></tr><tr><td class="has-text-align-right" data-align="right">0</td><td class="has-text-align-center" data-align="center" colspan="4">Header type</td><td class="has-text-align-center" data-align="center" colspan="4">Update revision</td></tr><tr><td class="has-text-align-right" data-align="right">8</td><td class="has-text-align-center" data-align="center" colspan="4">Update release date</td><td class="has-text-align-center" data-align="center" colspan="4">CPUID</td></tr><tr><td class="has-text-align-right" data-align="right">16</td><td class="has-text-align-center" data-align="center" colspan="4">Checksum</td><td class="has-text-align-center" data-align="center" colspan="4">Loader version</td></tr><tr><td class="has-text-align-right" data-align="right">24</td><td class="has-text-align-center" data-align="center" colspan="4">Platform ID</td><td class="has-text-align-center" data-align="center" colspan="4">Data size</td></tr><tr><td class="has-text-align-right" data-align="right">32</td><td class="has-text-align-center" data-align="center" colspan="4">Total size</td><td class="has-text-align-center" data-align="center" colspan="4">Metadata size</td></tr><tr><td class="has-text-align-right" data-align="right">40</td><td class="has-text-align-center" data-align="center" colspan="4">Minimum version</td><td class="has-text-align-center" data-align="center" colspan="4">Reserved</td></tr></tbody></table><figcaption class="wp-element-caption"><em>Bit-field diagram: Intel individual microcode update file</em></figcaption></figure>



<h1 class="wp-block-heading" id="Microcode-update-methods">Microcode update methods</h1>



<p>Microcode updates can be applied at one of the following layers:</p>



<ul class="wp-block-list">
<li>Firmware layer</li>



<li>Kernel layer</li>



<li>Operating system layer</li>
</ul>



<p>Regardless of the method used, the impact on CPU performance is consistent for all microcode updates. </p>



<figure class="wp-block-table aligncenter is-style-regular"><table><tbody><tr><td class="has-text-align-center" data-align="center"><strong>Application</strong></td></tr><tr><td class="has-text-align-center" data-align="center"><strong>Operating system</strong><br>(APIs, system calls, file management)</td></tr><tr><td class="has-text-align-center" data-align="center"><strong>Kernel</strong><br>(Hardware Abstraction, drivers)</td></tr><tr><td class="has-text-align-center" data-align="center"><strong>Firmware</strong><br>(BIOS/UEFI)</td></tr><tr><td class="has-text-align-center" data-align="center"><strong>Hardware</strong><br>(CPU)</td></tr></tbody></table></figure>



<h1 class="wp-block-heading" id="Microcode-update-methods-comparison">Microcode update methods comparison</h1>



<p>There are many ways to update a microcode. Here’s an extensive list of update options:</p>



<figure class="wp-block-table"><table><tbody><tr><td class="has-text-align-center" data-align="center"><strong>Description</strong></td><td class="has-text-align-center" data-align="center"><strong>Examples</strong></td><td class="has-text-align-left" data-align="left"><strong>Layer</strong></td><td class="has-text-align-left" data-align="left"><strong>Source</strong></td><td>✅<strong>Benefits/❌Drawbacks</strong></td></tr><tr><td class="has-text-align-center" data-align="center">Microcode update available via regular BIOS/UEFI updates</td><td class="has-text-align-center" data-align="center">OpenBMC<br>HP BIOS Update Utility<br>ASRock Instant Flash<br>ASUS EZ Flash Supermicro Update Manager</td><td class="has-text-align-left" data-align="left"><strong>Firmware</strong></td><td class="has-text-align-left" data-align="left">Motherboard manufacturer</td><td>✅Cross-OS compatibility <br>❌Update process varies depending on BIOS/UEFI editors and versions.<br>❌Difficult to automate<br>❌New microcode for firmware updates has a much slower release cycle than OS updates, causing delays in delivery <br>❌Risk of a failed update damaging the motherboard<br>❌Requires a system reboot</td></tr><tr><td class="has-text-align-center" data-align="center">&nbsp; &nbsp; Microcode updates can be integrated directly into a custom-built kernel</td><td class="has-text-align-center" data-align="center">Linux kernel<br>TinyOS<br>Minix</td><td class="has-text-align-left" data-align="left" rowspan="2"><strong>Kernel</strong></td><td class="has-text-align-left" data-align="left">CPU manufacturer</td><td>✅Automation is feasible across different hardware and OSs¹<br>✅Highly customisable<br>✅Shortens the time between release and update<br>❌Requires a high level of technical expertise<br>❌Requires a significant investment (time/money)<br>❌Requires a system reboot</td></tr><tr><td class="has-text-align-center" data-align="center">&nbsp; &nbsp; Microcode update available through regular OS updates</td><td class="has-text-align-center" data-align="center">Package manager, like APT on debian-based Linux OSs (or ‘early loading’)<br>Windows update</td><td class="has-text-align-left" data-align="left">OS Editor</td><td class="has-text-align-left" data-align="left">✅Easy<br>✅Safe, fewer chances of unpredictable behaviour<br>❌Update process is OS-specific and limited to OS in use<br>❌Delayed availability of new microcode packages<br>❌Requires system reboot</td></tr><tr><td class="has-text-align-center" data-align="center">&nbsp; &nbsp; Manual microcode loading</td><td class="has-text-align-center" data-align="center">iucode-tool command on Linux (or ‘late loading’)<br>Chain command on iPXE</td><td class="has-text-align-left" data-align="left"><strong>Operating System</strong></td><td class="has-text-align-left" data-align="left">Manual download from CPU manufacturer</td><td>✅Reduces update delays after public release announcements (Intel &#8220;public disclosure&#8221;)<br>✅No reboot required² ✅Automation-ready<br>❌Risk of unexpected errors for certain patches when CPU is running&nbsp;<br>❌Requires advanced expertise, prone to human errors (misapplied microcode, inconsistent download) <br>❌OS-specific update process, not persistent across reboot</td></tr></tbody></table></figure>



<p>____</p>



<p>¹ Assuming the custom kernel is compatible with hardware</p>



<p>² Assuming the running OS is the one applying the microcode update</p>



<h1 class="wp-block-heading" id="Microcode-update-challenges-at-OVHcloud">Microcode update challenges at OVHcloud</h1>



<p>While CPU manufacturers strongly recommend installing the latest microcode updates, no contractual obligations compel end customers to install the most recent microcode versions. However, it might be required by internal policy and/or industry certifications and standards.</p>



<p>Microcode updates are usually distributed through system firmware (BIOS/UEFI) or OS patches, in partnership with hardware manufacturers and software editors.</p>



<p>As a server manufacturer, OVHcloud enables its customers to access these microcode updates.</p>



<p>Automating a diverse range of BIOS/UEFI editors and versions is a challenge for the company given its broad hardware range, strategic factors, and a geographically diverse supply chain. As a result, it doesn’t update microcode at the firmware layer.</p>



<p>Moreover, OVHcloud maintenance is limited to hardware and firmware layers, and doesn’t include accessing the operating system on the customer’s bare-metal server. So updating the microcode through an OS-dependent method is ruled out as an option.</p>



<h1 class="wp-block-heading" id="OVHcloud-boot-process">OVHcloud boot process</h1>



<p>As previously mentioned, the wide range of hardware motherboards makes it impossible to automate the boot mode switch from BIOS/UEFI. This is why OVHcloud uses a temporary, minimalist, in-memory OS for the boot process. One major advantage of this open-source boot firmware is its powerful scripting, which extends the capabilities of traditional Preboot Execution Environment (PXE) without the need for BIOS/UEFI reflashing. The boot process unfolds in the following steps:</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="263" src="https://blog.ovhcloud.com/wp-content/uploads/2025/06/boot-schema-1024x263.png" alt="" class="wp-image-29074" srcset="https://blog.ovhcloud.com/wp-content/uploads/2025/06/boot-schema-1024x263.png 1024w, https://blog.ovhcloud.com/wp-content/uploads/2025/06/boot-schema-300x77.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2025/06/boot-schema-768x197.png 768w, https://blog.ovhcloud.com/wp-content/uploads/2025/06/boot-schema.png 1299w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Depending on whether the customer chooses to boot from disk, a rescue environment, or a custom iPXE script, the corresponding iPXE script will run.</p>



<p>If a custom iPXE script isn’t chosen, the system downloads the latest validated AMD or Intel (CPU-specific) microcode bundle and signature from OVHcloud. Once the signature is validated, the microcode patches are distributed across all the CPU’s cores. The system then boots from a local disk or a remote image.</p>



<p>If the customer decides to boot using an iPXE script, the API will generate the iPXE script as per the customer’s specifications, with no changes made. This means that without a custom iPXE script specifying otherwise, customers won’t receive microcode updates.</p>



<h1 class="wp-block-heading" id="OVHcloud-microcode-validation">OVHcloud microcode validation</h1>



<p>Whenever a CPU manufacturer releases a new microcode, OVHcloud repackages the microcode bundles (separate AMD and Intel versions). As expected, the cloud provider wants the ability to skip microcode patches for CPUs not in its infrastructure or those that have created issues on some of its CPUs problems. OVHcloud also enables the signing of bundles to ensure data integrity. Once the bundle microcode file is published to the file server, automated testing begins on dedicated servers, one for each affected CPU and platform.</p>



<p>The following actions are carried out on each testing server:</p>



<ul class="wp-block-list">
<li>server reboot from rescue with the microcode patch(s) to validate</li>



<li>CPU microcode version check to validate iPXE script from the rescue boot</li>



<li>disk(s) erasure to remove artefacts from previous OS re-installs and install a minimalist Linux distribution</li>



<li>server reboot from disk and proper boot check</li>



<li>CPU microcode version check to validate microcode update for boot from disk</li>
</ul>



<p>Once validated, the new URL to the bundle microcode file is replaced in all the rescue and iPXE boot scripts; human intervention is required to manually change the URL. Depending on the severity, a targeted email can be sent to the affected customers. The new microcode patch only takes effect after the next server hardware reboot³. OVHcloud never reboots a dedicated server without the customer’s consent.</p>



<p>____</p>



<p>³ A (hard) reboot from the OVHcloud Control Panel or API is needed. Soft reboot (reboot command from the OS) doesn’t apply the microcode patch.</p>



<p></p>



<p>Sources</p>



<ul class="wp-block-list">
<li><a href="https://en.wikipedia.org/wiki/Microcode" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">Microcode (Wikipedia)</a></li>



<li><a href="https://en.wikipedia.org/wiki/Micro-operation" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">Micro-operation (Wikipedia)</a></li>



<li><a href="https://www.usenix.org/system/files/conference/usenixsecurity17/sec17-koppe.pdf" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">Reverse Engineering x86 Processor Microcode (Usenix)</a></li>



<li><a href="https://blog.ovhcloud.com/cve-2023-20593-zenbleed/" data-wpel-link="internal">CVE-2023-20593/Zenbleed (OVHcloud Blog)</a></li>



<li><a href="https://ipxe.org/buildcfg/image_ucode?s%5B%5D=microcode" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">iPXE &#8211; open source boot firmware [buildcfg:image_ucode]</a></li>



<li><a href="https://github.com/platomav/MCExtractor" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">MCExtractor (GitHub)</a></li>



<li><a href="https://www.kernel.org/doc/html/latest/arch/x86/microcode.html" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">The Linux Microcode Loader</a></li>



<li><a href="https://help.ovhcloud.com/csm/en-dedicated-servers-ola-netboot?id=kb_article_view&amp;sysparm_article=KB0057776#a-quick-overview-of-netboot-startup-at-ovhcloud" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">A quick overview of Netboot startup at OVHcloud</a></li>
</ul>
<img loading="lazy" decoding="async" src="//blog.ovhcloud.com/wp-content/plugins/matomo/app/matomo.php?idsite=1&amp;rec=1&amp;url=https%3A%2F%2Fblog.ovhcloud.com%2Fovhcloud-microcode-management-at-scale%2F&amp;action_name=OVHcloud%3A%20Microcode%20management%20at%20scale&amp;urlref=https%3A%2F%2Fblog.ovhcloud.com%2Ffeed%2F" style="border:0;width:0;height:0" width="0" height="0" alt="" />]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Bare Metal Pod: Genesis</title>
		<link>https://blog.ovhcloud.com/bare-metal-pod-genesis/</link>
		
		<dc:creator><![CDATA[David Mondon]]></dc:creator>
		<pubDate>Tue, 01 Apr 2025 07:10:26 +0000</pubDate>
				<category><![CDATA[OVHcloud Engineering]]></category>
		<category><![CDATA[bare metal]]></category>
		<category><![CDATA[engineering]]></category>
		<category><![CDATA[Infrastructure]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Security]]></category>
		<guid isPermaLink="false">https://blog.ovhcloud.com/?p=28439</guid>

					<description><![CDATA[Today, we&#8217;re going to embark on a journey of discovery, and unveil our latest product: Bare Metal Pod. You know us for the services we provide: bare metal servers, managed and unmanaged virtualisation platform, our 40+ public cloud services, domain names and telco. This is just the tip of the iceberg, and to understand why [&#8230;]<img src="//blog.ovhcloud.com/wp-content/plugins/matomo/app/matomo.php?idsite=1&amp;rec=1&amp;url=https%3A%2F%2Fblog.ovhcloud.com%2Fbare-metal-pod-genesis%2F&amp;action_name=Bare%20Metal%20Pod%3A%20Genesis&amp;urlref=https%3A%2F%2Fblog.ovhcloud.com%2Ffeed%2F" style="border:0;width:0;height:0" width="0" height="0" alt="" />]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="683" src="https://blog.ovhcloud.com/wp-content/uploads/2025/03/Copy-of-Blog-post-1200x8001-1-1024x683.png" alt="" class="wp-image-28486" srcset="https://blog.ovhcloud.com/wp-content/uploads/2025/03/Copy-of-Blog-post-1200x8001-1-1024x683.png 1024w, https://blog.ovhcloud.com/wp-content/uploads/2025/03/Copy-of-Blog-post-1200x8001-1-300x200.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2025/03/Copy-of-Blog-post-1200x8001-1-768x512.png 768w, https://blog.ovhcloud.com/wp-content/uploads/2025/03/Copy-of-Blog-post-1200x8001-1.png 1200w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Today, we&#8217;re going to embark on a journey of discovery, and unveil our latest product: <a href="https://www.ovhcloud.com/en-ie/bare-metal/secnumcloud/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">Bare Metal Pod</a>.</p>



<p>You know us for the services we provide: bare metal servers, managed and unmanaged virtualisation platform, our 40+ public cloud services, domain names and telco.</p>



<p>This is just the tip of the iceberg, and to understand why we built and now offer Bare Metal Pod, we have to dig deeper.</p>



<p>So let’s begin this journey exploring the origins of Bare Metal Pod, and in later articles we’ll cover the more technical details—there’s a lot to touch on.</p>



<h3 class="wp-block-heading"><strong>The OVHcloud way: more than just servers</strong></h3>



<p>As a cloud services provider, we supply the different platforms mentioned above. But most importantly, we have to take care of the infrastructure dedicated to these services, from the buildings, power and cooling to the software stack and automation required.</p>



<p>And we’ve been doing just this since 2001. It all started with the opening of our first datacentre in Paris, then building our own servers the next year, and our proprietary water-cooling solution the year after that.</p>



<p>At the core, we are all about <strong>efficiency, automation, and sustainability</strong>:</p>



<ul class="wp-block-list">
<li><strong>Repurposing buildings</strong> as datacentres</li>



<li><strong>Designing our own servers</strong> to optimise performance and cost</li>



<li><strong>Maximising cooling efficiency</strong> to cut waste</li>



<li><strong>Automating everything</strong> to reduce errors and delays</li>
</ul>



<p>And, in all modesty&#8230;. we&#8217;re pretty good at these.</p>



<h3 class="wp-block-heading"><strong>Optimising datacentres like a pro</strong></h3>



<p>Basically, building our own servers in our Croix (FR) and Beauharnois (CA) plants means packing <strong>a ton of servers into a square metre. </strong>We’re talking about 4 custom racks, each hosting 48 servers, all in just 3 sq.m and using up to 160kW of 12V DC power. This gives us a server density of about 5000W per sq/ft, which beats out 90% of the industry.</p>



<p>And on top of that, we’ve got our proprietary water-cooling system—we save energy by not using AC for our servers. To further optimise air cooling, each of our rack is equipped with a large condenser (we call it a <strong>chilled door</strong>) at the rear of the rack, dissipating regular server heat in our water system. This keeps the datacentre comfortably warm for our staff and the network equipment, and extends hardware lifespan (less maintenance, fewer replacements, fewer outages….so <strong>more savings</strong>).</p>



<p>In addition to the physical optimisations we’ve just mentioned is our <strong>automation system</strong>. When a server or a cluster of servers have been assembled and tested in our plant, it’s sent to the datacentre, racked and connected to power, network, and water-cooling systems by our DC staff.</p>



<p>And from there, everything is automated. From server power management, discovery, testing, and readiness checks, to the moment it’s selected by a customer using their Control Panel, and then configured. No human interaction is required, meaning no delay and no error.</p>



<p>And these operations have been optimised and refined for over 20 years.</p>



<h3 class="wp-block-heading"><strong>Enter Project Gold-o-rack</strong></h3>



<p>So in June 2023, a small team was assembled to review, analyse and build a new version of this system. We had 3 goals:</p>



<ul class="wp-block-list">
<li>Provide customers with dedicated <strong>on-premises autonomous racks</strong></li>



<li>Offer custom-built, plug-and-play <strong>Bare Metal Pods</strong></li>



<li>Upgrade the automation and security of our <strong>own datacentres</strong></li>
</ul>



<p>And that’s how <strong>Project Gold-o-rack</strong> came to be—a tribute to <strong>Goldorak (Grendizer)</strong>, the legendary <strong>70s anime mecha</strong> that crushed its enemies with style. Like its namesake, our system is <strong>powerful, autonomous, and unstoppable</strong>.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1024" height="1024" src="https://blog.ovhcloud.com/wp-content/uploads/2025/03/Final.png" alt="" class="wp-image-28440" srcset="https://blog.ovhcloud.com/wp-content/uploads/2025/03/Final.png 1024w, https://blog.ovhcloud.com/wp-content/uploads/2025/03/Final-300x300.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2025/03/Final-150x150.png 150w, https://blog.ovhcloud.com/wp-content/uploads/2025/03/Final-768x768.png 768w, https://blog.ovhcloud.com/wp-content/uploads/2025/03/Final-70x70.png 70w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Using opensource technology was a must, as we absolutely can’t do without transparency and community support. So we went for <strong>OpenStack</strong>, <strong>Netbox</strong>, <strong>Grafana</strong>, and developed our own network management and automation system, and much more.</p>



<p>By <strong>September 2023</strong>—just <strong>three months later</strong>—we had a fully functional <strong>24U rack</strong>, deployable and operational in <strong>25 minutes</strong>. That’s not just fast—that’s <strong>insanely fast</strong>.</p>



<p>Security was a top priority since these racks would be installed in <strong>third-party datacentres</strong>. We quickly applied for <strong>SecNumCloud qualification</strong>, leveraging our existing compliance expertise.</p>



<p>Then, it hit us: <strong>why not offer this as a full-fledged product?</strong> And that’s how <strong>Bare Metal Pod</strong> came to be—dedicated, secure, and fully automated.</p>



<p>We structured the product into <strong>three key components</strong>:</p>



<ol class="wp-block-list" start="1">
<li><strong>On-Prem Cloud Platform (OPCP):</strong> The autonomous rack, with its own <strong>KMS and encryption mechanisms</strong></li>



<li><strong>Bare Metal Pod:</strong> Built on <strong>OPCP</strong>, hosted in <strong>our datacentres</strong>, and <strong>SecNumCloud-compliant</strong></li>



<li><strong>Cloud Store:</strong> A software catalogue enabling automated deployment within the rack</li>
</ol>



<p>In June 2024, OPCP was ready, just 12 months after the 1st meeting… and shortly after we got the “green light” from the ANSSI, allowing us to pursue the SecNumCloud qualification process.</p>



<p>And if you were at, or watched our Summit Keynote in November 2024, you definitely saw it live…</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="576" height="577" src="https://blog.ovhcloud.com/wp-content/uploads/2025/03/Capture-decran-2025-03-28-094957.png" alt="BM POD Summit 2024" class="wp-image-28470" srcset="https://blog.ovhcloud.com/wp-content/uploads/2025/03/Capture-decran-2025-03-28-094957.png 576w, https://blog.ovhcloud.com/wp-content/uploads/2025/03/Capture-decran-2025-03-28-094957-300x300.png 300w, https://blog.ovhcloud.com/wp-content/uploads/2025/03/Capture-decran-2025-03-28-094957-150x150.png 150w, https://blog.ovhcloud.com/wp-content/uploads/2025/03/Capture-decran-2025-03-28-094957-70x70.png 70w" sizes="auto, (max-width: 576px) 100vw, 576px" /></figure>



<p></p>



<h3 class="wp-block-heading"><strong>What’s under the hood?</strong></h3>



<p>As an autonomous rack, it contains:</p>



<ul class="wp-block-list">
<li> Power Distribution Units</li>



<li> Network equipment for internal and external connectivity</li>



<li> Servers, including a <strong>Pod Controller</strong></li>
</ul>



<p>There are <strong>9 Bare Metal server models</strong> available, from 16 to <strong>256 cores</strong>, from 128 GB to <strong>2.5 TB of memory</strong>, up to 792 TB NVMe SSD (RAW),<strong> Nvidia L4 and L40s GPU</strong> depending on your needs.</p>



<p>And the best part is that you can mix and match them, to build and manage the perfect autonomous rack, while keeping <strong>full control on security and resources</strong>.</p>



<p>We’ve got a total of 607 models in Bare Metal Pod, enough for nearly any configuration and need. And with up to 1500 servers in a single Pod, the possibilities are endless.</p>



<p>And on top of these servers, we are building an automated software library: <strong>the Cloud Store</strong>. Enclosed in the Bare Metal Pod, the Cloud Store will offer the Pod admin a selection of OS, virtualisation platforms and various software that can be <strong>pushed, installed, configured automatically on the servers</strong> in the Pod. This includes built-in <strong>security, monitoring, and logging</strong> integrated in the Pod monitoring tools.</p>



<p>And herein<sup data-fn="116cf438-18fd-4e6b-9424-87a974fecaf9" class="fn"><a href="#116cf438-18fd-4e6b-9424-87a974fecaf9" id="116cf438-18fd-4e6b-9424-87a974fecaf9-link">1</a></sup> lies the main challenge: making sure an entire collection of software from various editors can cohabit and interact with a single, opensource monitoring platform, a KMS, and an IAM without breaking anything…</p>



<h3 class="wp-block-heading"><strong>Coming up next…</strong></h3>



<p>That’s a wrap for now! In the next article, we’ll deep-dive into <strong>hardware, networking, and security</strong>. Stay tuned!</p>



<h3 class="wp-block-heading">Some of the Bare Metal servers options:</h3>



<ul class="wp-block-list">
<li><strong>Scale A1 &#8211; A8</strong>: Equipped with 4th Gen Intel Xeon Gold or AMD EPYC 9004 series processors, these servers provide between 16 to 256 cores and 128 GB to 1 TB of DDR5 ECC RAM. They are suitable for:
<ul class="wp-block-list">
<li>Hosting SaaS and PaaS solutions</li>



<li>Virtualisation</li>



<li>Database hosting</li>



<li>Containerisation and orchestration</li>



<li>Confidential computing</li>



<li>High-performance computing</li>
</ul>
</li>



<li><strong>Scale-GPU 1 &#8211; 3</strong>: Featuring NVIDIA L4 GPU cards (x2 or x4) and up to 1.2 TB of DDR5 ECC RAM, these servers are ideal for:
<ul class="wp-block-list">
<li>3D modelling</li>



<li>Media streaming</li>



<li>Virtual Desktop Infrastructure (VDI)</li>



<li>Data inference</li>
</ul>
</li>
</ul>



<ul class="wp-block-list">
<li><strong>HGR-HCI I1 &#8211; I4</strong>: With dual 5th Gen Intel Xeon Gold or 4th Gen AMD EPYC 9004 series processors, these servers provide between 16 to 72 cores and up to 2.5 TB of DDR5 ECC RAM. They are suitable for:
<ul class="wp-block-list">
<li>Hyperconverged infrastructure</li>



<li>Virtualisation</li>



<li>Database hosting</li>



<li>Containerisation and orchestration</li>



<li>Confidential computing</li>



<li>High-performance computing</li>
</ul>
</li>



<li><strong>HGR-SDS 1 &#8211; 2</strong>: Equipped with dual 5th Gen Intel Xeon Gold processors, these servers offer between 16 to 48 cores and up to 1.5 TB of DDR5 ECC RAM. They are ideal for:
<ul class="wp-block-list">
<li>Software-defined storage solutions</li>



<li>Object storage solutions</li>



<li>Big data</li>



<li>Database hosting</li>
</ul>
</li>



<li><strong>HGR-STOR 1 &#8211; 2</strong>: Featuring a 5th Gen Intel Xeon Gold processor with 36 cores and up to 512 GB of DDR5 ECC RAM, these servers are designed for:
<ul class="wp-block-list">
<li>Archiving</li>



<li>Database hosting</li>



<li>Backup and disaster recovery plans</li>
</ul>
</li>



<li><strong>HGR-AI-2</strong>: Equipped with NVIDIA L40s GPU cards (x2 or x4) and up to 2.3 TB of DDR5 ECC RAM, these servers are optimized for:
<ul class="wp-block-list">
<li>Machine learning</li>



<li>Deep learning</li>
</ul>
</li>
</ul>



<p>(And many other options… you get the idea.)</p>


<ol class="wp-block-footnotes"><li id="116cf438-18fd-4e6b-9424-87a974fecaf9"><a href="https://www.collinsdictionary.com/dictionary/english/herein" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external"> </a>My editor liked the word and I found it cool too. <a href="https://www.collinsdictionary.com/dictionary/english/herein" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external">https://www.collinsdictionary.com/dictionary/english/herein</a> <a href="#116cf438-18fd-4e6b-9424-87a974fecaf9-link" aria-label="Jump to footnote reference 1">↩︎</a></li></ol><img loading="lazy" decoding="async" src="//blog.ovhcloud.com/wp-content/plugins/matomo/app/matomo.php?idsite=1&amp;rec=1&amp;url=https%3A%2F%2Fblog.ovhcloud.com%2Fbare-metal-pod-genesis%2F&amp;action_name=Bare%20Metal%20Pod%3A%20Genesis&amp;urlref=https%3A%2F%2Fblog.ovhcloud.com%2Ffeed%2F" style="border:0;width:0;height:0" width="0" height="0" alt="" />]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
