Chapter 23. Setting up Stratis file systems


Stratis is a local storage-management solution for Red Hat Enterprise Linux. It is focused on simplicity, ease of use, and gives you access to advanced storage features.

Stratis runs as a service to manage pools of physical storage devices, simplifying local storage management with ease of use while helping you set up and manage complex storage configurations.

Stratis can help you with:

  • Initial configuration of storage
  • Making changes later
  • Using advanced storage features

The central concept of Stratis is a storage pool. This pool is created from one or more local disks or partitions, and file systems are created from the pool. The pool enables features such as:

  • File system snapshots
  • Thin provisioning
  • Caching
  • Encryption

23.1. Components of a Stratis file system

Externally, Stratis presents the following file system components on the command line and through the API:

blockdev
Block devices, such as disks or disk partitions.
pool

Composed of one or more block devices.

A pool has a fixed total size, equal to the size of the block devices.

The pool contains most Stratis layers, such as the non-volatile data cache using the dm-cache target.

Stratis creates a /dev/stratis/my-pool/ directory for each pool. This directory contains links to devices that represent Stratis file systems in the pool.

filesystem

Each pool can contain zero or more file systems. A pool containing file systems can store any number of files.

File systems are thinly provisioned and do not have a fixed total size. The actual size of a file system grows with the data stored on it. If the size of the data approaches the virtual size of the file system, Stratis grows the thin volume and the file system automatically.

The file systems are formatted with the XFS file system.

Important

Stratis tracks information about file systems that it created which XFS is not aware of, and changes made using XFS do not automatically create updates in Stratis. Users must not reformat or reconfigure XFS file systems that are managed by Stratis.

Stratis creates links to file systems at the /dev/stratis/my-pool/my-fs path.

Stratis uses many Device Mapper devices, which appear in dmsetup listings and the /proc/partitions file. Similarly, the lsblk command output reflects the internal workings and layers of Stratis.

23.2. Block devices compatible with Stratis

Storage devices that can be used with Stratis.

Supported devices

Stratis pools have been tested to work on these types of block devices:

  • LUKS
  • LVM logical volumes
  • MD RAID
  • DM Multipath
  • iSCSI
  • HDDs and SSDs
  • NVMe devices

Unsupported devices

Because Stratis contains a thin-provisioning layer, Red Hat does not recommend placing a Stratis pool on block devices that are already thinly-provisioned.

23.3. Installing Stratis

Install the required packages for Stratis.

Procedure

  1. Install packages that provide the Stratis service and command-line utilities:

    Copy to Clipboard Toggle word wrap
    # dnf install stratisd stratis-cli
  2. To start the stratisd service and enable it to launch at boot:

    Copy to Clipboard Toggle word wrap
    # systemctl enable --now stratisd

Verification

  • Verify that the stratisd service is enabled and is running:

    Copy to Clipboard Toggle word wrap
    # systemctl status stratisd
    stratisd.service - Stratis daemon
    Loaded: loaded (/usr/lib/systemd/system/stratisd.service; enabled; preset:>
    Active: active (running) since Tue 2025-03-25 14:04:42 CET; 30min ago
    Docs: man:stratisd(8)
    Main PID: 24141 (stratisd)
    Tasks: 22 (limit: 99365)
    Memory: 10.4M
    CPU: 1.436s
    CGroup: /system.slice/stratisd.service
    └─24141 /usr/libexec/stratisd --log-level debug

23.4. Creating an unencrypted Stratis pool

You can create an unencrypted Stratis pool from one or more block devices.

Prerequisites

  • Stratis is installed and the stratisd service is running. For more information, see Installing Stratis.
  • The block device on which you are creating a Stratis pool is not in use, unmounted, and is at least 1 GB in space.
  • On the IBM Z architecture, the /dev/dasd* block devices must be partitioned. Use the partition device for creating the Stratis pool.

    For information about partitioning DASD devices, see Configuring a Linux instance on IBM Z.

Note

You can only encrypt a Stratis pool during creation, and not later.

Procedure

  1. Erase any file system, partition table, or RAID signatures that exist on each block device that you want to use in the Stratis pool:

    Copy to Clipboard Toggle word wrap
    # wipefs --all block-device

    The block-device value is the path to the block device; for example, /dev/sdb.

  2. Create the new unencrypted Stratis pool on the selected block device:

    Copy to Clipboard Toggle word wrap
    # stratis pool create my-pool block-device

    The block-device value is the path to an empty or wiped block device.

    You can also specify multiple block devices on a single line by using the following command:

    Copy to Clipboard Toggle word wrap
    # stratis pool create my-pool block-device-1 block-device-2

Verification

  • Verify that the new Stratis pool was created:

    Copy to Clipboard Toggle word wrap
    # stratis pool list

23.5. Creating an unencrypted Stratis pool by using the web console

You can use the web console to create an unencrypted Stratis pool from one or more block devices.

Prerequisites

  • You have installed the RHEL 9 web console.
  • You have enabled the cockpit service.
  • Your user account is allowed to log in to the web console.

    For instructions, see Installing and enabling the web console.

  • Stratis is installed and the stratisd service is running. For more information, see Installing Stratis.
  • The block device on which you are creating a Stratis pool is not in use, unmounted, and is at least 1 GB in space.
Note

You cannot encrypt an unencrypted Stratis pool after it is created.

Procedure

  1. Log in to the RHEL 9 web console.

    For details, see Logging in to the web console.

  2. Click Storage.
  3. In the Storage table, click the menu button and select Create Stratis pool.
  4. In the Name field, enter a name for the Stratis pool.
  5. Select the Block devices from which you want to create the Stratis pool.
  6. Optional: If you want to specify the maximum size for each file system that is created in the pool, select Manage filesystem sizes.
  7. Click Create.

Verification

  • Go to the Storage section and verify that you can see the new Stratis pool in the Devices table.

23.6. Creating an encrypted Stratis pool using a key in the kernel keyring

To secure your data, you can use the kernel keyring to create an encrypted Stratis pool from one or more block devices.

When you create an encrypted Stratis pool this way, the kernel keyring is used as the primary encryption mechanism. After subsequent system reboots this kernel keyring is used to unlock the encrypted Stratis pool.

When creating an encrypted Stratis pool from one or more block devices, note the following:

  • Each block device is encrypted using the cryptsetup library and implements the LUKS2 format.
  • Each Stratis pool can either have a unique key or share the same key with other pools. These keys are stored in the kernel keyring.
  • The block devices that comprise a Stratis pool must be either all encrypted or all unencrypted. It is not possible to have both encrypted and unencrypted block devices in the same Stratis pool.
  • Block devices added to the data cache of an encrypted Stratis pool are automatically encrypted.

Prerequisites

  • Stratis v2.1.0 or later is installed and the stratisd service is running. For more information, see Installing Stratis.
  • The block device on which you are creating a Stratis pool is not in use, unmounted, and is at least 1 GB in space.
  • On the IBM Z architecture, the /dev/dasd* block devices must be partitioned. Use the partition in the Stratis pool.

    For information about partitioning DASD devices, see Configuring a Linux instance on IBM Z.

Procedure

  1. Erase any file system, partition table, or RAID signatures that exist on each block device that you want to use in the Stratis pool:

    Copy to Clipboard Toggle word wrap
    # wipefs --all block-device

    The block-device value is the path to the block device; for example, /dev/sdb.

  2. If you have not set a key already, run the following command and follow the prompts to create a key set to use for the encryption:

    Copy to Clipboard Toggle word wrap
    # stratis key set --capture-key key-description

    The key-description is a reference to the key that gets created in the kernel keyring. You will be prompted to enter a key value at the command-line. You can also place the key value in a file and use the --keyfile-path option instead of the --capture-key option.

  3. Create the encrypted Stratis pool and specify the key description to use for the encryption:

    Copy to Clipboard Toggle word wrap
    # stratis pool create --key-desc key-description my-pool block-device
    key-description
    References the key that exists in the kernel keyring, which you created in the previous step.
    my-pool
    Specifies the name of the new Stratis pool.
    block-device

    Specifies the path to an empty or wiped block device.

    You can also specify multiple block devices on a single line by using the following command:

    Copy to Clipboard Toggle word wrap
    # stratis pool create --key-desc key-description my-pool block-device-1 block-device-2

Verification

  • Verify that the new Stratis pool was created:

    Copy to Clipboard Toggle word wrap
    # stratis pool list

23.7. Creating an encrypted Stratis pool using Clevis

Starting with Stratis 2.4.0, you can create an encrypted pool using the Clevis mechanism by specifying Clevis options at the command line.

Prerequisites

Procedure

  1. Erase any file system, partition table, or RAID signatures that exist on each block device that you want to use in the Stratis pool:

    Copy to Clipboard Toggle word wrap
    # wipefs --all block-device

    The block-device value is the path to the block device; for example, /dev/sdb.

  2. Create the encrypted Stratis pool and specify the Clevis mechanism to use for the encryption:

    Copy to Clipboard Toggle word wrap
    # stratis pool create --clevis tpm2 my-pool block-device
    tpm2
    Specifies the Clevis mechanism to use.
    my-pool
    Specifies the name of the new Stratis pool.
    block-device

    Specifies the path to an empty or wiped block device.

    Alternatively, use the Clevis tang server mechanism by using the following command:

    Copy to Clipboard Toggle word wrap
    # stratis pool create --clevis tang –tang-url my-url –thumbprint thumbprint my-pool block-device
    tang
    Specifies the Clevis mechanism to use.
    my-url
    Specifies the URL of the tang server.
    thumbprint

    References the thumbprint of the tang server.

    You can also specify multiple block devices on a single line by using the following command:

    Copy to Clipboard Toggle word wrap
    # stratis pool create --clevis tpm2 my-pool block-device-1 block-device-2

Verification

  • Verify that the new Stratis pool was created:

    Copy to Clipboard Toggle word wrap
    # stratis pool list
    Note

    You can also create an encrypted pool using both Clevis and keyring mechanisms by specifying both Clevis and keyring options at the same time during pool creation.

23.8. Creating an encrypted Stratis pool by using the storage RHEL system role

To secure your data, you can create an encrypted Stratis pool with the storage RHEL system role. In addition to a passphrase, you can use Clevis and Tang or TPM protection as an encryption method.

Important

You can configure Stratis encryption only on the entire pool.

Prerequisites

Procedure

  1. Store your sensitive variables in an encrypted file:

    1. Create the vault:

      Copy to Clipboard Toggle word wrap
      $ ansible-vault create ~/vault.yml
      New Vault password: <vault_password>
      Confirm New Vault password: <vault_password>
    2. After the ansible-vault create command opens an editor, enter the sensitive data in the <key>: <value> format:

      Copy to Clipboard Toggle word wrap
      luks_password: <password>
    3. Save the changes, and close the editor. Ansible encrypts the data in the vault.
  2. Create a playbook file, for example ~/playbook.yml, with the following content:

    Copy to Clipboard Toggle word wrap
    ---
    - name: Manage local storage
      hosts: managed-node-01.example.com
      vars_files:
        - ~/vault.yml
      tasks:
        - name: Create a new encrypted Stratis pool with Clevis and Tang
          ansible.builtin.include_role:
            name: redhat.rhel_system_roles.storage
          vars:
            storage_pools:
               - name: mypool
                 disks:
                   - sdd
                   - sde
                 type: stratis
                 encryption: true
                 encryption_password: "{{ luks_password }}"
                 encryption_clevis_pin: tang
                 encryption_tang_url: tang-server.example.com:7500

    The settings specified in the example playbook include the following:

    encryption_password
    Password or passphrase used to unlock the LUKS volumes.
    encryption_clevis_pin
    Clevis method that you can use to encrypt the created pool. You can use tang and tpm2.
    encryption_tang_url
    URL of the Tang server.

    For details about all variables used in the playbook, see the /usr/share/ansible/roles/rhel-system-roles.storage/README.md file on the control node.

  3. Validate the playbook syntax:

    Copy to Clipboard Toggle word wrap
    $ ansible-playbook --ask-vault-pass --syntax-check ~/playbook.yml

    Note that this command only validates the syntax and does not protect against a wrong but valid configuration.

  4. Run the playbook:

    Copy to Clipboard Toggle word wrap
    $ ansible-playbook --ask-vault-pass ~/playbook.yml

Verification

  • Verify that the pool was created with Clevis and Tang configured:

    Copy to Clipboard Toggle word wrap
    $ ansible managed-node-01.example.com -m command -a 'sudo stratis report'
    ...
                            "clevis_config": {
                                "thp": "j-G4ddvdbVfxpnUbgxlpbe3KutSKmcHttILAtAkMTNA",
                                "url": "tang-server.example.com:7500"
                            },
                            "clevis_pin": "tang",
                            "in_use": true,
                            "key_description": "blivet-mypool",

Additional resources

  • /usr/share/ansible/roles/rhel-system-roles.storage/README.md file
  • /usr/share/doc/rhel-system-roles/storage/ directory
  • Ansible vault

23.9. Creating an encrypted Stratis pool by using the web console

To secure your data, you can use the web console to create an encrypted Stratis pool from one or more block devices.

When creating an encrypted Stratis pool from one or more block devices, note the following:

  • Each block device is encrypted using the cryptsetup library and implements the LUKS2 format.
  • Each Stratis pool can either have a unique key or share the same key with other pools. These keys are stored in the kernel keyring.
  • The block devices that comprise a Stratis pool must be either all encrypted or all unencrypted. It is not possible to have both encrypted and unencrypted block devices in the same Stratis pool.
  • Block devices added to the data tier of an encrypted Stratis pool are automatically encrypted.

Prerequisites

  • You have installed the RHEL 9 web console.
  • You have enabled the cockpit service.
  • Your user account is allowed to log in to the web console.

    For instructions, see Installing and enabling the web console.

  • Stratis v2.1.0 or later is installed and the the stratisd service is running.
  • The block device on which you are creating a Stratis pool is not in use, unmounted, and is at least 1 GB in space.

Procedure

  1. Log in to the RHEL 9 web console.

    For details, see Logging in to the web console.

  2. Click Storage.
  3. In the Storage table, click the menu button and select Create Stratis pool.
  4. In the Name field, enter a name for the Stratis pool.
  5. Select the Block devices from which you want to create the Stratis pool.
  6. Select the type of encryption, you can use a passphrase, a Tang keyserver, or both:

  7. Optional: If you want to specify the maximum size for each file system that is created in pool, select Manage filesystem sizes.
  8. Click Create.

Verification

  • Go to the Storage section and verify that you can see the new Stratis pool in the Devices table.

23.10. Renaming a Stratis pool by using the web console

You can use the web console to rename an existing Stratis pool.

Prerequisites

  • You have installed the RHEL 9 web console.
  • You have enabled the cockpit service.
  • Your user account is allowed to log in to the web console.

    For instructions, see Installing and enabling the web console.

  • Stratis is installed and the stratisd service is running.

    The web console detects and installs Stratis by default. However, for manually installing Stratis, see Installing Stratis.

  • A Stratis pool is created.

Procedure

  1. Log in to the RHEL 9 web console.

    For details, see Logging in to the web console.

  2. Click Storage.
  3. In the Storage table, click the Stratis pool you want to rename.
  4. On the Stratis pool page, click edit next to the Name field.
  5. In the Rename Stratis pool dialog box, enter a new name.
  6. Click Rename.

23.11. Setting overprovisioning mode in Stratis file system

By default, every Stratis pool is overprovisioned meaning the logical file system size can exceed the physically allocated space. Stratis monitors the file system usage, and automatically increases the allocation by using available space when needed. However, if all the available space is already allocated and the pool is full, no additional space can be assigned to the file system.

Note

If the file system runs out of space, users might lose data. For applications where the risk of data loss outweighs the benefits of overprovisioning, this feature can be disabled.

Stratis continuously monitors the pool usage and reports the values using the D-Bus API. Storage administrators must monitor these values and add devices to the pool as needed to prevent it from reaching capacity.

Prerequisites

Procedure

To set up the pool correctly, you have two possibilities:

  1. Create a pool from one or more block devices to make the pool fully provisioned at the time of creation:

    Copy to Clipboard Toggle word wrap
    # stratis pool create --no-overprovision pool-name /dev/sdb
    • By using the --no-overprovision option, the pool cannot allocate more logical space than actual available physical space.
  2. Set overprovisioning mode in the existing pool:

    Copy to Clipboard Toggle word wrap
    # stratis pool overprovision pool-name <yes|no>
    • If set to "yes", you enable overprovisioning to the pool. This means that the sum of the logical sizes of the Stratis file systems, supported by the pool, can exceed the amount of available data space. If the pool is overprovisioned and the sum of the logical sizes of all the file systems exceeds the space available on the pool, then the system cannot turn off overprovisioning and returns an error.

Verification

  1. View the full list of Stratis pools:

    Copy to Clipboard Toggle word wrap
    # stratis pool list
    
    Name       Total Physical                    Properties    UUID                                  Alerts
    pool-name  1.42 TiB / 23.96 MiB / 1.42 TiB  ~Ca,~Cr,~Op    cb7cb4d8-9322-4ac4-a6fd-eb7ae9e1e540
  2. Check if there is an indication of the pool overprovisioning mode flag in the stratis pool list output. The " ~ " is a math symbol for "NOT", so ~Op means no-overprovisioning.
  3. Optional: Check overprovisioning on a specific pool:

    Copy to Clipboard Toggle word wrap
    # stratis pool overprovision pool-name yes
    
    # stratis pool list
    
    Name          Total Physical                    Properties     UUID                                   Alerts
    pool-name     1.42 TiB / 23.96 MiB / 1.42 TiB   ~Ca,~Cr,~Op    cb7cb4d8-9322-4ac4-a6fd-eb7ae9e1e540

23.12. Binding a Stratis pool to NBDE

Binding an encrypted Stratis pool to Network Bound Disk Encryption (NBDE) requires a Tang server. When a system containing the Stratis pool reboots, it connects with the Tang server to automatically unlock the encrypted pool without you having to provide the kernel keyring description.

Note

Binding a Stratis pool to a supplementary Clevis encryption mechanism does not remove the primary kernel keyring encryption.

Prerequisites

Procedure

  • Bind an encrypted Stratis pool to NBDE:

    Copy to Clipboard Toggle word wrap
    # stratis pool bind nbde --trust-url my-pool tang-server
    my-pool
    Specifies the name of the encrypted Stratis pool.
    tang-server
    Specifies the IP address or URL of the Tang server.

23.13. Binding a Stratis pool to TPM

When you bind an encrypted Stratis pool to the Trusted Platform Module (TPM) 2.0, the system containing the pool reboots, and the pool is automatically unlocked without you having to provide the kernel keyring description.

Prerequisites

Procedure

  • Bind an encrypted Stratis pool to TPM:

    Copy to Clipboard Toggle word wrap
    # stratis pool bind tpm my-pool
    my-pool
    Specifies the name of the encrypted Stratis pool.
    key-description
    References the key that exists in the kernel keyring, which was generated when you created the encrypted Stratis pool.

23.14. Unlocking an encrypted Stratis pool with kernel keyring

After a system reboot, your encrypted Stratis pool or the block devices that comprise it might not be visible. You can unlock the pool using the kernel keyring that was used to encrypt the pool.

Prerequisites

Procedure

  1. Re-create the key set using the same key description that was used previously:

    Copy to Clipboard Toggle word wrap
    # stratis key set --capture-key key-description

    key-description references the key that exists in the kernel keyring, which was generated when you created the encrypted Stratis pool.

  2. Verify that the Stratis pool is visible:

    Copy to Clipboard Toggle word wrap
    # stratis pool list

23.15. Unbinding a Stratis pool from supplementary encryption

When you unbind an encrypted Stratis pool from a supported supplementary encryption mechanism, the primary kernel keyring encryption remains in place. This is not true for pools that are created with Clevis encryption from the start.

Prerequisites

Procedure

  • Unbind an encrypted Stratis pool from a supplementary encryption mechanism:

    Copy to Clipboard Toggle word wrap
    # stratis pool unbind clevis my-pool

    my-pool specifies the name of the Stratis pool you want to unbind.

23.16. Starting and stopping Stratis pool

You can start and stop Stratis pools. This gives you the option to disassemble or bring down all the objects that were used to construct the pool, such as file systems, cache devices, thin pool, and encrypted devices. Note that if the pool actively uses any device or file system, it might issue a warning and not be able to stop.

The stopped state is recorded in the pool’s metadata. These pools do not start on the following boot, until the pool receives a start command.

Prerequisites

Procedure

  • Use the following command to stop the Stratis pool. This tears down the storage stack but leaves all metadata intact:

    Copy to Clipboard Toggle word wrap
    # stratis pool stop --name pool-name
  • Use the following command to start the Stratis pool. The --unlock-method option specifies the method of unlocking the pool if it is encrypted:

    Copy to Clipboard Toggle word wrap
    # stratis pool start --unlock-method <keyring|clevis> --name pool-name
    Note

    You can start the pool by using either the pool name or the pool UUID.

Verification

  • Use the following command to list all active pools on the system:

    Copy to Clipboard Toggle word wrap
    # stratis pool list
  • Use the following command to list all the stopped pools:

    Copy to Clipboard Toggle word wrap
    # stratis pool list --stopped
  • Use the following command to view detailed information for a stopped pool. If the UUID is specified, the command prints detailed information about the pool corresponding to the UUID:

    Copy to Clipboard Toggle word wrap
    # stratis pool list --stopped --uuid UUID

23.17. Creating a Stratis file system

Create a Stratis file system on an existing Stratis pool.

Prerequisites

Procedure

  1. Create a Stratis file system on a pool:

    Copy to Clipboard Toggle word wrap
    # stratis filesystem create --size number-and-unit my-pool my-fs
    number-and-unit
    Specifies the size of a file system. The specification format must follow the standard size specification format for input, that is B, KiB, MiB, GiB, TiB or PiB.
    my-pool
    Specifies the name of the Stratis pool.
    my-fs

    Specifies an arbitrary name for the file system.

    For example:

    Example 23.1. Creating a Stratis file system

    Copy to Clipboard Toggle word wrap
    # stratis filesystem create --size 10GiB pool1 filesystem1
  2. Set a size limit of a file system:

    Copy to Clipboard Toggle word wrap
    # stratis filesystem create --size number-and-unit --size-limit number-and-unit my-pool my-fs
    Note

    This option is available starting with Stratis 3.6.0.

    You can also remove the size limit later, if needed:

    Copy to Clipboard Toggle word wrap
    # stratis filesystem unset-size-limit my-pool my-fs

Verification

  • List file systems within the pool to check if the Stratis file system is created:

    Copy to Clipboard Toggle word wrap
    # stratis fs list my-pool

Additional resources

23.18. Creating a file system on a Stratis pool by using the web console

You can use the web console to create a file system on an existing Stratis pool.

Prerequisites

  • You have installed the RHEL 9 web console.
  • You have enabled the cockpit service.
  • Your user account is allowed to log in to the web console.

    For instructions, see Installing and enabling the web console.

  • The stratisd service is running.
  • A Stratis pool is created.

Procedure

  1. Log in to the RHEL 9 web console.

    For details, see Logging in to the web console.

  2. Click Storage.
  3. Click the Stratis pool on which you want to create a file system.
  4. On the Stratis pool page, scroll to the Stratis filesystems section and click Create new filesystem.
  5. Enter a name for the file system.
  6. Enter a mount point for the file system.
  7. Select the mount option.
  8. In the At boot drop-down menu, select when you want to mount your file system.
  9. Create the file system:

    • If you want to create and mount the file system, click Create and mount.
    • If you want to only create the file system, click Create only.

Verification

  • The new file system is visible on the Stratis pool page under the Stratis filesystems tab.

23.19. Mounting a Stratis file system

Mount an existing Stratis file system to access the content.

Prerequisites

Procedure

  • To mount the file system, use the entries that Stratis maintains in the /dev/stratis/ directory:

    Copy to Clipboard Toggle word wrap
    # mount /dev/stratis/my-pool/my-fs mount-point

The file system is now mounted on the mount-point directory and ready to use.

Note

Unmount all file systems belonging to a pool before stopping it. The pool will not stop if any file system is still mounted.

23.20. Setting up non-root Stratis file systems in /etc/fstab using a systemd service

You can manage setting up non-root file systems in /etc/fstab using a systemd service.

Prerequisites

Procedure

  • As root, edit the /etc/fstab file and add a line to set up non-root file systems:

    Copy to Clipboard Toggle word wrap
    /dev/stratis/my-pool/my-fs mount-point xfs defaults,x-systemd.requires=stratis-fstab-setup@pool-uuid.service,x-systemd.after=stratis-fstab-setup@pool-uuid.service dump-value fsck_value
Important

Persistently mounting a Stratis filesystem from an encrypted Stratis pool can cause the boot process to stop until a password is provided. If the pool is encrypted using any unattended mechanism, for example, NBDE or TPM2, the Stratis pool will be unlocked automatically. If not, the user will need to enter a password in the console.

Back to top
Red Hat logoGithubredditYoutubeTwitter

Learn

Try, buy, & sell

Communities

About Red Hat Documentation

We help Red Hat users innovate and achieve their goals with our products and services with content they can trust. Explore our recent updates.

Making open source more inclusive

Red Hat is committed to replacing problematic language in our code, documentation, and web properties. For more details, see the Red Hat Blog.

About Red Hat

We deliver hardened solutions that make it easier for enterprises to work across platforms and environments, from the core datacenter to the network edge.

Theme

© 2025 Red Hat, Inc.