Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,8 @@ include::modules/installation-azure-trusted-launch.adoc[leveloffset=+2]

include::modules/installation-azure-confidential-vms.adoc[leveloffset=+2]

include::modules/installation-azure-dedicated-disks.adoc[leveloffset=+2]

include::modules/installation-azure-config-yaml.adoc[leveloffset=+2]

include::modules/installation-configure-proxy.adoc[leveloffset=+2]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,8 @@ include::modules/installation-azure-arm-tested-machine-types.adoc[leveloffset=+2
include::modules/installation-azure-trusted-launch.adoc[leveloffset=+2]
include::modules/installation-azure-confidential-vms.adoc[leveloffset=+2]

include::modules/installation-azure-dedicated-disks.adoc[leveloffset=+2]

include::modules/installation-azure-config-yaml.adoc[leveloffset=+2]

include::modules/installation-configure-proxy.adoc[leveloffset=+2]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,8 @@ include::modules/installation-azure-arm-tested-machine-types.adoc[leveloffset=+2
include::modules/installation-azure-trusted-launch.adoc[leveloffset=+2]
include::modules/installation-azure-confidential-vms.adoc[leveloffset=+2]

include::modules/installation-azure-dedicated-disks.adoc[leveloffset=+2]

include::modules/installation-azure-config-yaml.adoc[leveloffset=+2]

include::modules/installation-configure-proxy.adoc[leveloffset=+2]
Expand Down
53 changes: 53 additions & 0 deletions modules/installation-azure-dedicated-disks.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
// Module included in the following assemblies:
//
// * installing/installing_azure/ipi/installing-azure-customizations.adoc
// * installing/installing_azure/ipi/installing-azure-network-customizations.adoc
// * installing/installing_azure/ipi/installing-restricted-networks-azure-installer-provisioned.adoc

:_mod-docs-content-type: PROCEDURE
[id="installation-azure-dedicated-disks_{context}"]
= Configuring a dedicated disk for etcd

You can install your {product-title} cluster on {azure-first} with a dedicated data disk for `etcd`. This configuration attaches a separate managed disk to each control plane node and uses it only for `etcd` data, which can improve I/O performance and stability.

:FeatureName: Dedicated disk for etcd

include::snippets/technology-preview.adoc[]

.Prerequisites
* You have created an `install-config.yaml` file.

.Procedure

* To configure a dedicated `etcd` disk, edit the `install-config.yaml` file and add the `diskSetup` and `dataDisks` parameters to the `controlPlane` stanza:
+
[source,yaml]
----
controlPlane:
architecture: amd64
hyperthreading: Enabled
name: master
diskSetup:
- type: etcd <1>
etcd:
platformDiskID: "etcddisk" <2>
platform:
azure:
type: Standard_D4s_v5
dataDisks:
Copy link

@jinyunma jinyunma Oct 10, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In install-config.yaml parameters, dataDisks objects are described under controlPlane machinepool.
Suggest to keep consistent here, something as below:

controlPlane:
  architecture: amd64
  hyperthreading: Enabled
  name: master
  platform:
    azure:
      dataDisks:
      - cachingType: ReadWrite
         diskSizeGB: 256
         lun: 1
         nameSuffix: etcddisk
  diskSetup:
  - type: etcd
    etcd:
      platformDiskID: etcddisk

And parameter cachingType is also missed under dataDisks.

$ ./openshift-install explain installconfig.controlPlane.platform.azure.dataDisks
KIND:     InstallConfig
VERSION:  v1

RESOURCE: <[]object>
  DataDisk specifies the parameters that are used to add one or more data disks to the machine.

FIELDS:
    cachingType <string>
      Valid Values: "None","ReadOnly","ReadWrite"
      CachingType specifies the caching requirements.

    diskSizeGB <integer> -required-
      Format: int32
      DiskSizeGB is the size in GB to assign to the data disk.

    lun <integer>
      Format: int32
      Lun Specifies the logical unit number of the data disk. This value is used to identify data disks within the VM and therefore must be unique for each data disk attached to a VM.
The value must be between 0 and 63.

    managedDisk <object>
      ManagedDisk specifies the Managed Disk parameters for the data disk.

    nameSuffix <string> -required-
      NameSuffix is the suffix to be appended to the machine name to generate the disk name.
Each disk name will be in format <machineName>_<nameSuffix>.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

my concern with indicating readwrite for cachetype is data loss, maybe a link to azure documentation explaining the risks? for etcd though I would think None is more appropriate

also in researching this I see we have an issue that should be resolved:
https://learn.microsoft.com/en-us/azure/virtual-machines/premium-storage-performance#optimize-performance-on-linux-vms
I will put in a bug to fix this.

Copy link
Contributor Author

@sslocket sslocket Oct 10, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jinyunma @jcpowermac If cachingType: None is the safe option and there isn't a specific use case that necessitates the other two options (which also entail significant risks/unclear benefits), I would prefer to make cachingType: None the requirement for this 4.20 version of the documentation due to time constraints, and revisit later.

- nameSuffix: etcddisk <3>
diskSizeGB: 20 <4>
lun: 0 <5>
replicas: 3
----

<1> Specify `etcd`.
<2> Specify a name to identify the disk.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The platformDiskID has limitation, it could not be longer than 12 characters.

<3> Specify the same value given for `platformDiskID`.
<4> Specify a disk size in GB. This can be any integer from `8` through `32`.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hmm, why does disk size have limitation? It works when I set to more than 32. Or anything that I missed? cc @jcpowermac

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I thought it was anything greater than 0, let me double check

+
[NOTE]
====
A minimum of 20 GB ensures enough space is available for defragmentation operations.
====
<5> Specify a logical unit number (LUN). This can be any integer from `0` through `63` that is not used by another disk.
115 changes: 115 additions & 0 deletions modules/installation-configuration-parameters.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -1596,6 +1596,60 @@ Supplying more than one user-assigned identity is an experimental feature, which
|Enables the encryption of the virtual machine guest state for compute nodes. This parameter can only be used if you use Confidential VMs.
|`VMGuestStateOnly` is the only supported value.

|controlPlane:
diskSetup:
|Specifies node component information for dedicated disk configuration.

[IMPORTANT]
====
Dedicated disk for `etcd` on {azure-full} is a Technology Preview feature only. Technology Preview features are not supported with Red Hat production service level agreements (SLAs) and might not be functionally complete. Red Hat does not recommend using them in production. These features provide early access to upcoming product features, enabling customers to test functionality and provide feedback during the development process.
For more information about the support scope of Red Hat Technology Preview features, see link:https://access.redhat.com/support/offerings/techpreview/[Technology Preview Features Support Scope].
====

|Array of objects. Includes a `type`, which contains `etcd` and `platformDiskID` as described in the following rows of this table.

|controlPlane:
diskSetup:
- type:
|Specifies which node component type to assign a dedicated disk.

[IMPORTANT]
====
Dedicated disk for `etcd` on {azure-full} is a Technology Preview feature only. Technology Preview features are not supported with Red Hat production service level agreements (SLAs) and might not be functionally complete. Red Hat does not recommend using them in production. These features provide early access to upcoming product features, enabling customers to test functionality and provide feedback during the development process.
For more information about the support scope of Red Hat Technology Preview features, see link:https://access.redhat.com/support/offerings/techpreview/[Technology Preview Features Support Scope].
====

|`etcd` is the only supported value.

|controlPlane:
diskSetup:
- type: etcd
etcd:
|Specifies parameters for an `etcd` dedicated disk.

[IMPORTANT]
====
Dedicated disk for `etcd` on {azure-full} is a Technology Preview feature only. Technology Preview features are not supported with Red Hat production service level agreements (SLAs) and might not be functionally complete. Red Hat does not recommend using them in production. These features provide early access to upcoming product features, enabling customers to test functionality and provide feedback during the development process.
For more information about the support scope of Red Hat Technology Preview features, see link:https://access.redhat.com/support/offerings/techpreview/[Technology Preview Features Support Scope].
====

|The `platformDiskID` object is the only supported value.

|controlPlane:
diskSetup:
- type: etcd
etcd:
platformDiskID:
|Specifies a name to identify the dedicated disk.

[IMPORTANT]
====
Dedicated disk for `etcd` on {azure-full} is a Technology Preview feature only. Technology Preview features are not supported with Red Hat production service level agreements (SLAs) and might not be functionally complete. Red Hat does not recommend using them in production. These features provide early access to upcoming product features, enabling customers to test functionality and provide feedback during the development process.
For more information about the support scope of Red Hat Technology Preview features, see link:https://access.redhat.com/support/offerings/techpreview/[Technology Preview Features Support Scope].
====

|String.

|controlPlane:
platform:
azure:
Expand Down Expand Up @@ -1653,6 +1707,67 @@ Supplying more than one user-assigned identity is an experimental feature, which
|Specifies the {azure-short} storage account to store the diagnostic logs for control plane machines. Use `storageAccountName` only when you set `type` to `UserManaged`.
|String.

|controlPlane:
platform:
azure:
dataDisks:
|Specifies dedicated disk parameters.

[IMPORTANT]
====
Dedicated disk for `etcd` on {azure-full} is a Technology Preview feature only. Technology Preview features are not supported with Red Hat production service level agreements (SLAs) and might not be functionally complete. Red Hat does not recommend using them in production. These features provide early access to upcoming product features, enabling customers to test functionality and provide feedback during the development process.
For more information about the support scope of Red Hat Technology Preview features, see link:https://access.redhat.com/support/offerings/techpreview/[Technology Preview Features Support Scope].
====

|Array of objects. Includes a `NameSuffix`, which contains `diskSizeGB` and `lun` as described in the following rows of this table.

|controlPlane:
platform:
azure:
dataDisks:
- NameSuffix:
|Specifies the same value given for `platformDiskID`.

[IMPORTANT]
====
Dedicated disk for `etcd` on {azure-full} is a Technology Preview feature only. Technology Preview features are not supported with Red Hat production service level agreements (SLAs) and might not be functionally complete. Red Hat does not recommend using them in production. These features provide early access to upcoming product features, enabling customers to test functionality and provide feedback during the development process.
For more information about the support scope of Red Hat Technology Preview features, see link:https://access.redhat.com/support/offerings/techpreview/[Technology Preview Features Support Scope].
====

|String.

|controlPlane:
platform:
azure:
dataDisks:
- nameSuffix:
diskSizeGB:
|Specifies a dedicated disk size in GB.

[IMPORTANT]
====
Dedicated disk for `etcd` on {azure-full} is a Technology Preview feature only. Technology Preview features are not supported with Red Hat production service level agreements (SLAs) and might not be functionally complete. Red Hat does not recommend using them in production. These features provide early access to upcoming product features, enabling customers to test functionality and provide feedback during the development process.
For more information about the support scope of Red Hat Technology Preview features, see link:https://access.redhat.com/support/offerings/techpreview/[Technology Preview Features Support Scope].
====

|Integer from `8` through `32`.

|controlPlane:
platform:
azure:
dataDisks:
- nameSuffix:
lun:
|Specifies a logical unit number (LUN) for the dedicated disk.

[IMPORTANT]
====
Dedicated disk for `etcd` on {azure-full} is a Technology Preview feature only. Technology Preview features are not supported with Red Hat production service level agreements (SLAs) and might not be functionally complete. Red Hat does not recommend using them in production. These features provide early access to upcoming product features, enabling customers to test functionality and provide feedback during the development process.
For more information about the support scope of Red Hat Technology Preview features, see link:https://access.redhat.com/support/offerings/techpreview/[Technology Preview Features Support Scope].
====

|Integer from `0` through `63` that is not used by another disk.

|controlPlane:
platform:
azure:
Expand Down