Frequently Asked Questions and Recommended Practices for Microsoft Azure
Table of Contents
- Frequently Asked Questions
- Can I use my existing Red Hat Enterprise Linux subscription for Microsoft Azure?
- What is the difference between Red Hat Cloud Access and On-Demand?
- How do I retrieve my Microsoft Azure subscription ID?
- How do I get started with Red Hat and Microsoft Azure?
- Can I do an in-place upgrade of RHEL?
- What Red Hat products are certified for use in Microsoft Azure?
- Are Red Hat products available in all Microsoft Azure regions?
- Does Red Hat provide evaluations of Red Hat products in Microsoft Azure?
- Does RHEL support high availability (HA) in Microsoft Azure?
- Should I open a case with Red Hat or Microsoft for my issue?
- How do I determine the status of Microsoft Azure services?
- Who should I contact if I have a question about a Red Hat product running in Microsoft Azure?
- What is Microsoft Azure Premium Storage?
- Is cloud-init supported for provisioning virtual machines in Azure?
- What are Linux Integration Services (LIS), and why do I need them for Microsoft Azure?
- Can Logical Volume Management (LVM) be used for RHEL VM disks in Microsoft Azure?
- What is a temporary resource disk?
- How do I attach and detach a Microsoft Azure VM data disk?
- How can I get logs for a Microsoft Azure VM?
- Can Fedora be used to provision the RHEL VM?
- Is kpatch supported in Azure?
- Update the software on the Microsoft Azure RHEL VM
- Enable Boot Diagnostics
- Download the Boot Log
- Use the nofail option in /etc/fstab
- Use RAID 0 for I/O-intensive applications
- Use UUIDs in the /etc/fstab file
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.
- Log in to the Microsoft Azure portal.
- Select Subscriptions from the left navigation pane.
- 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 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 support an in-place upgrade of a major release, for instance, from RHEL 7 to RHEL 8 see the instructions on upgrading from RHEL 7 to RHEL 8.
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.
Please notice that some VM sizes don't provide the temporary resource disk. See: Azure VM sizes with no local temporary disk
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 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 devtmpfs 1.6G 0 1.6G 0% /dev tmpfs 1.6G 0 1.6G 0% /dev/shm tmpfs 1.6G 8.6M 1.6G 1% /run tmpfs 1.6G 0 1.6G 0% /sys/fs/cgroup /dev/mapper/rootvg-rootlv 2.0G 70M 2.0G 4% / /dev/mapper/rootvg-usrlv 10G 1.5G 8.6G 15% /usr /dev/sda1 496M 157M 339M 32% /boot /dev/mapper/rootvg-tmplv 2.0G 47M 2.0G 3% /tmp /dev/mapper/rootvg-homelv 1014M 40M 975M 4% /home /dev/mapper/rootvg-varlv 8.0G 292M 7.8G 4% /var /dev/sda15 495M 6.9M 488M 2% /boot/efi /dev/sdb1 6.9G 32M 6.5G 1% /mnt tmpfs 327M 0 327M 0% /run/user/1001
The temporary resource disk is configured by cloud-init. And there's no swap space enabled by default. If you want to enable swap space, please configure 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 # Create and use swapfile on resource disk. ResourceDisk.EnableSwap=y # Size of the swapfile. ResourceDisk.SwapSizeMB=5120
Then restart waagent service. The required swap space will be configured.
# systemctl restart waagent.service
Note: The "ResourceDisk.MountPoint" option in /etc/waagent.conf will be recovered by cloud-init. The swapfile will still be located in /mnt.
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
[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.
Is kpatch supported in Azure?
Yes, on the x86_64 platform, starting with RHEL 8.1, RHEL 7.7; RHEL-7.6, starting with kernel-3.10.0-957.35.1.el7 -- live kernel patches are available and supported in Azure . Is live kernel patch (kpatch) supported in Red Hat Enterprise Linux ?
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.
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.
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.
Use the nofail option in /etc/fstab
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.
/etc/fstab file and add the
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
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"
- Certified Cloud Provider/Microsoft Azure
- Configure Software RAID on Linux
- Creating a Red Hat Enterprise Linux Virtual Machine Image and Provisioning It to Microsoft Azure
- Add a Disk to a Linux VM
- How to Detach a Disk from a Linux Virtual Machine
- Microsoft Azure Linux Agent User Guide
- How to Engage Red Hat for Issues in Microsoft Azure
- Microsoft Azure Linux Support Team Blog
- Microsoft Azure Boot Diagnostics
- Premium Storage for Azure VM Workloads
- Product/Configuration Matrix for Microsoft Azure
- Red Hat Evaluation FAQ
- Red Hat/Microsoft Azure Partner Page
- Red Hat Cloud Access and Migrating Your Subscriptions between Clouds
- VM Boot Diagnostics
- VM Sizes in Microsoft Azure
- Article Type
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
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?
I can't seem to find any information about Red Hat pay as you go Images in Azure China. For now they do not seem to exist in market place. Will you support Azure China in future or will there never be Red Hat pay as you go in Azure China?
It seems the resource disk is no longer on /mnt/resource with the newest rhel 8.2 payg images. It is now set up via cloud-init to /mnt and it no longer includes creation of swap.