Frequently Asked Questions and Recommended Practices for Microsoft Azure

Updated -

Table of Contents

Frequently Asked Questions

Can I use my existing Red Hat Enterprise Linux subscription for Microsoft Azure?

Customers can use their existing and unused Red Hat Enterprise Linux (RHEL) subscriptions in Microsoft Azure by registering with the Red Hat Cloud Access program. Red Hat subscriptions offer the flexibility to deploy either in an on-premise data center or in Microsoft Azure. Depending on which RHEL variant is purchased, customers may provision up to two virtual machines (VMs) in Microsoft Azure for every RHEL subscription. For more information, see Getting started with Red Hat Cloud Access.

What is the difference between Red Hat Cloud Access and On-Demand?

Red Hat Cloud Access refers to a program provided by Red Hat for Red Hat customers. The Red Hat Cloud Access program allows customers to use their existing and unused Red Hat subscriptions for certain products in certified public cloud environments. With Cloud Access, customers can import their own Red Hat virtual image(s) into the cloud environment to be used to provision cloud instances. By using Cloud Access, Red Hat customers continue to receive support directly from Red Hat and are not required to pay additional subscription fees.

On-Demand refers to a program provided by a cloud service company, where a customer pays for a preconfigured RHEL product (for example, Red Hat Enterprise Linux 7 on Microsoft Azure). The purchased RHEL product is installed and provisioned directly within the cloud provider's platform.

For more information about these two methods for deploying RHEL to the cloud, see The Difference between Red Hat Cloud Access and Red Hat Enterprise Linux On-Demand Subscriptions.

How do I retrieve my Microsoft Azure subscription ID?

Customers need to supply an active Microsoft Azure subscription ID to complete the Red Hat Cloud Access program enrollment process. To retrieve an existing Microsoft Azure subscription ID, complete the steps below.

  1. Log in to the Microsoft Azure portal.
  2. Select Subscriptions from the left navigation pane.
  3. Copy the active subscription ID you want to use.

How do I get started with Red Hat and Microsoft Azure?

The Get Started tab on the Microsoft Azure partner page describes how to enroll in the Red Hat Cloud Access program, migrate your unused subscriptions, and create and provision a Red Hat Enterprise Linux VM in Microsoft Azure.

Can I convert an On-Demand VM to a Cloud Access VM?

No, there is no method for converting an On-Demand VM to a Cloud Access VM or converting a Cloud Access VM to an On-Demand VM.

Which RHEL versions are supported?

See the Product/Configuration Matrix for Microsoft Azure for supported RHEL operating systems, VM minimum capacity requirements, and information about other supported Red Hat products.

Can I do an in-place upgrade of RHEL?

In-place upgrades are possible for minor releases, for instance, from RHEL 6.9 to RHEL 6.10 or RHEL 7.3 to RHEL 7.4. This type of upgrade can be performed by running the yum update command. Microsoft Azure does not support an in-place upgrade of a major release, for instance, from RHEL 6 to RHEL 7.

What Red Hat products are certified for use in Microsoft Azure?

See Certified Cloud Provider/Microsoft Azure for Red Hat software products certified to operate in Microsoft Azure.

Are Red Hat products available in all Microsoft Azure regions?

See Regional Product Availability for information about Red Hat product availability in Microsoft Azure.

Does Red Hat provide evaluations of Red Hat products in Microsoft Azure?

Existing Red Hat subscriptions can be used to evaluate products either on-premise or in Microsoft Azure through the Red Hat Cloud Access program. If you do not have existing subscriptions, follow the same rules for obtaining an on-premise product evaluation and register those subscriptions for Red Hat Cloud Access in Microsoft Azure. Microsoft is responsible for determining and granting access to Microsoft Azure services (IaaS or other services). For additional information, see the Red Hat Evaluation FAQ.

Does RHEL support high availability (HA) in Microsoft Azure?

Yes. RHEL supports HA clusters in Microsoft Azure. See Installing and Configuring a Red Hat Enterprise Linux 7.4 (and later) High-Availability Cluster on Microsoft Azure. For Red Hat's support policies for HA clusters, see Support Policies for RHEL High Availability Clusters.

Should I open a case with Red Hat or Microsoft for my issue?

Red Hat and Microsoft have an integrated support relationship where Red Hat has on-site support personnel colocated at Microsoft. Whether you open your case with Red Hat or Microsoft, there are defined channels for collaborating to resolve your technical support issue. See How to Engage Red Hat for Issues in Microsoft Azure for more information on this integrated support approach.

How do I determine the status of Microsoft Azure services?

Microsoft displays the status of its Azure servers, outages, and other events at the Azure status site.

Who should I contact if I have a question about a Red Hat product running in Microsoft Azure?

Contact Red Hat Support for performance-related issues or other issues related to the product itself.

What is Microsoft Azure Premium Storage?

Microsoft Azure Premium Storage disks are high-performance solid state drives (SSDs). Premium Storage is used for I/O-intensive applications and RAID 0 disk configurations. For general data storage and archiving, hard disk drives (HDDs) should be used (Standard Storage). Premium Storage disks are supported by RHEL 6.7 or higher and RHEL 7.2 or higher.

Note: Do not allocate a separate swap disk using Premium Storage. A temporary resource disk located on the local blade server hosting the Microsoft Azure VM handles swap file operations.

To learn more about Microsoft Azure storage, see Microsoft Azure Premium Storage.

Is cloud-init supported for provisioning virtual machines in Azure?

Yes, for RHEL 7.6 and later versions, cloud-init version 18.2 (or later) is supported for provisioning virtual machines in Azure.

What are Linux Integration Services (LIS), and why do I need them for Microsoft Azure?

Microsoft Azure uses Hyper-V for VMs running in Microsoft Azure. While native Linux VMs can run under Hyper-V, the collection of drivers and services provided by LIS allows Linux VMs to run more effectively and benefit from the management infrastructure provided by Hyper-V in Microsoft Azure.

Can Logical Volume Management (LVM) be used for RHEL VM disks in Microsoft Azure?

Yes. LVM is supported for operating system disks and data disks in Microsoft Azure.

What is a temporary resource disk?

A temporary resource disk is located on the local blade server hosting the Microsoft Azure VM and is mounted during the provisioning of the VM. The resource disk maintains higher input/output operations per second (IOPS). The primary purpose for the resource disk is to handle swap file operations. The size of the disk varies based on the size of the VM, that is, a larger VM will have a larger temporary resource disk.

Note: Because the resource disk is located on the physical server, you should not allocate a separate Premium Storage swap disk. Swap operations on the local server are much faster than swap operations would be on a Premium Storage disk. Additional costs are also associated when using a Premium Storage disk.

Important: Do not store anything on the temporary resource disk that you need to keep. If the VM is migrated from one host machine to a new host machine, a new temporary resource disk is created on the new host and the old temporary resource disk is inaccessible.

The temporary resource disk is mounted on /mnt/resource and is typically located in the /dev/sdb1 file system, as shown below.

[clouduser@localhost ~]$ sudo df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2        29G  1.6G   28G   6% /
devtmpfs        1.7G     0  1.7G   0% /dev
tmpfs           1.7G     0  1.7G   0% /dev/shm
tmpfs           1.7G   17M  1.7G   1% /run
tmpfs           1.7G     0  1.7G   0% /sys/fs/cgroup
/dev/sda1       497M  114M  384M  23% /boot
/dev/sdb1       133G  2.1G  124G   2% /mnt/resource
tmpfs           345M     0  345M   0% /run/user/1000

The temporary resource disk is configured in the Microsoft Azure Linux Guest Agent configuration file (/etc/waagent.conf). The configuration details are shown below.

# Format if unformatted. If 'n', resource disk will not be mounted.
ResourceDisk.Format=y

# File system on the resource disk
# Typically ext3 or ext4. FreeBSD images should use 'ufs2' here.
ResourceDisk.Filesystem=ext4

# Mount point for the resource disk
ResourceDisk.MountPoint=/mnt/resource

Swap space is also configured in /etc/waagent.conf. The configuration details are shown below.

# Create and use swapfile on resource disk.
ResourceDisk.EnableSwap=y

# Size of the swapfile.
ResourceDisk.SwapSizeMB=5120

Note: The resource disk swap file size can be adjusted to the size required by the VM operating environment.

How do I attach and detach a Microsoft Azure VM data disk?

Attach a new data disk

Enter the following command to attach a new data disk. The example includes the minimum options necessary to create a new attached data disk. See the Azure CLI 2.0 command reference for additional command options.

$ az vm disk attach -g <resource-group> --vm-name <virtual-machine-name> --disk <disk-name> --size-gb <size-in-GB> --new

Example:

[clouduser@localhost]$ az vm disk attach -g azrsgroup74 --vm-name azrhel74vm --disk azhrel74datadisk --size-gb 100 --new
/Starting...
/Running...
[clouduser@localhost]$


Once the disk is attached, open an SSH session and log in to the VM. Once logged in, create partitions, mount file systems, and add the reference to the disk in the /etc/fstab file. See Add a disk to a Linux VM for additional instructions.

Detach a data disk

Enter the following command to detach a data disk. See the Azure CLI 2.0 command reference for additional command options.

az vm disk detach --name <data-disk-name> -g <resource-group> --vm-name <virtual-machine-name>
[clouduser@localhost]$ az vm disk detach --name azhrel74datadisk -g azrsgroup74 --vm-name azrhel74vm
/Starting...
/Running...
[clouduser@localhost]$

The disk remains in storage but is no longer attached to the VM. You can reattach it or attach it to a different VM. See Attach an existing disk for more information.

How can I get logs for a Microsoft Azure VM?

Microsoft Azure agent logs are stored in the path /var/log/waagent.log on the VM. Note that the log rotation settings are set in /etc/logrotate.d/waagent. The command and option waagent -serialconsole enable kernel log output to the serial port and set serial port ttyS0 in GRUB. Log settings are configured in /etc/waagent.conf at the section shown below.

Logs.File=/var/waagent.log
Logs.Console=y
Logs.Verbose=n

Note: Boot diagnostics for the VM are available from the Microsoft Azure portal. Refer to the Enable the Boot Diagnostics option for more information.

Can Fedora be used to provision the RHEL VM?

Yes, customers can create a RHEL VM image for use in Microsoft Azure from a Fedora system. Use the instructions in Creating a Red Hat Enterprise Linux Virtual Machine Image and Provisioning It to Microsoft Azure as a guide. Note that supporting packages need to be installed manually for Fedora. An additional qemu-img command option is required and noted where it occurs in the instructions.

Recommended Practices

Update the software on the Microsoft Azure RHEL VM

Keep the software on a Microsoft Azure RHEL VM current by running yum update on a regular basis. Updating the VM software ensures that important Microsoft Azure patches, Hypervisor drivers, and software packages stay current.

Enable Boot Diagnostics

Boot Diagnostics is an important tool to use when troubleshooting a VM that will not boot. The console output and the boot log can greatly assist Red Hat Technical Support when resolving a boot issue. The following two methods describe how to enable Boot Diagnostics in the Microsoft Azure portal.

When creating a Microsoft Azure Marketplace (On-Demand) RHEL VM

When configuring the On-Demand image, the Diagnostics setting defaults to Enabled and a Diagnostics storage account is created automatically. When Diagnostics is enabled, Boot Diagnostics is also enabled.

Enable Boot Diagnostics

When the existing RHEL VM is already running

For an existing VM, open the VM properties, select Diagnostics settings, set the Status to On, and check Boot diagnostics. Note that you may need to select a Diagnostics storage account in the same location as the VM.

Enable Boot Diagnostics for an Existing VM

For additional information, refer to Microsoft Azure Boot Diagnostics.

Download the Boot Log

Once Boot Diagnostics is enabled, you can view the console output for the VM and download the boot log to send to Red Hat Technical Support.

Download the Boot Log

Use the nofail option in /etc/fstab

Enable the nofail option when creating a single disk attached to the VM and for VM data disks configured for RAID 0. This ensures that if a disk is missing or if the RAID 0 disk configuration becomes corrupted, the VM operating system disk will boot normally. This prevents the VM from booting into maintenance mode. Booting into maintenance mode will essentially make the VM inaccessible because console access is not supported currently in Microsoft Azure.

Edit the /etc/fstab file and add the nofail option.

For a RAID 0 file system data disk

UUID="<disk_UUID>"   /raidfs       ext4   defaults,nofail   0   0

For a single attached data disk

UUID="<disk_UUID>"   /singledisk   ext4   defaults,nofail   0   0

Use RAID 0 for I/O-intensive applications

For I/O-intensive applications (video editing, medical imaging, weather simulations, and so forth), use RAID 0 striped across multiple disks. RAID 0 improves performance and throughput. Use the Configure Software RAID on Linux instructions to configure RAID 0 for Linux VMs.

Use UUIDs in the /etc/fstab file

The fstab (file systems table) file contains the information that allows the system to map devices to mount points in a file system. This file is read by the mount command. The syntax of an /etc/fstab entry is shown below.

<device-name or UUID> <mount point> <file system type> <options> <pass>

Device names do not persist in Microsoft Azure. A device name in Microsoft Azure changes during system reconfiguration, shutdown, and reboot. The device UUID is persistent and should always be used in the fstab file. Use blkid and the mount point to get the device UUID and file system type.

# blkid /dev/sdb1

/dev/sdb1: UUID="<disk_UUID>" TYPE="ext4"

References

5 Comments

Hi, is there a way to get additional repositories inside a On-Demand Azure VM? For example I would like to use rhel-7-server-ansible-2-rpms which is currently not in /etc/yum.repos.d/rh-cloud.repo

Greetings Klaas

At the time of this writing, that repo is not available on the Azure RHUI server. If you would like to use that repo, you would need to enroll into the Cloud Access program and bring your own subscription over to Azure in order to enable that repo.

The repo is included in all rhel subscriptions, right? So I would not be violating licenses if I just install the ansible packages from my own mirror?

If you have a subscription that includes Ansible, then you can use that subscription to install Ansible. If you would like further info regarding your situation, I would recommend opening up a support ticket so we can verify your subscriptions.

What are the best practices considering the naming of the VMs? Do you recommend naming the Azure VMs with fqdn? Or do you suggest to use the shortname as hostname?