10.16. 云环境中的 RHEL

kdump 有时不会在 Azure 和 Hyper-V 上启动

在托管在 Microsoft Azure 或 Hyper-V hypervisor 上的 RHEL 8 客户机操作系统中,启动 kdump 内核在某些情况下会在启用执行后通知程序时失败。

要临时解决这个问题,请禁用 crash kexec post notifiers:

# echo N > /sys/module/kernel/parameters/crash_kexec_post_notifiers

(BZ#1865745)

在 VMWare 主机的 RHEL 8 虚拟机中设置静态 IP 无法正常工作

目前,当在 VMWare 主机中使用 RHEL 8 作为虚拟机(VM)的客户机操作系统时,DatasourceOVF 功能无法正常工作。因此,如果您使用 cloud-init 实用程序将虚拟机的网络设置为静态 IP,然后重启虚拟机,则虚拟机的网络将更改为 DHCP。

(BZ#1750862)

内核转储带有特定 NIC 的 RHEL 8 虚拟机到 Azure 的远程机器所需的时间比预期的时间要长

目前,虚拟机使用启用了加速网络的 NIC 时,用 kdump 实用程序将 RHEL 8 虚拟机(VM)的内核转储保存到远程机器上无法正常工作。因此,转储文件会在大约 200 秒后保存,而不是立即保存。另外,在保存转储文件前会在控制台中记录以下出错信息。

device (eth0): linklocal6: DAD failed for an EUI-64 address

(BZ#1854037)

nm-cloud-setup工具 在 Microsoft Azure 上设置了一个不正确的默认路由

在 Microsoft Azure 上,nm-cloud-setup 工具无法检测云环境的正确网关。因此,实用程序会设置不正确的默认路由,并破坏连接性。目前还没有可用的临时解决方案。

BZ#1912236

当使用多个客户机磁盘引导 Hyper-V 虚拟机时,SCSI 主机地址有时会改变

目前,当在 Hyper-V hypervisor 上引导 RHEL 8 虚拟机时,主机部分的主机 、Bus、Target、Lun(HBTL)SCSI 地址在某些情况下发生了变化。因此,使用虚拟机中的 HBTL SCSI 识别或者设备节点设置的自动任务无法持续工作。如果虚拟机有多个磁盘,或者磁盘大小不同,会出现这种情况。

要临时解决这个问题,使用以下方法之一修改 kickstart 文件:

方法 1:对 SCSI 设备使用持久性标识符。

您可以使用以下 powershell 脚本来确定具体设备标识符:

# Output what the /dev/disk/by-id/<value> for the specified hyper-v virtual disk.
# Takes a single parameter which is the virtual disk file.
# Note: kickstart syntax works with and without the /dev/ prefix.
param (
    [Parameter(Mandatory=$true)][string]$virtualdisk
)

$what = Get-VHD -Path $virtualdisk
$part = $what.DiskIdentifier.ToLower().split('-')

$p = $part[0]
$s0 = $p[6] + $p[7] + $p[4] + $p[5] + $p[2] + $p[3] + $p[0] + $p[1]

$p = $part[1]
$s1 =  $p[2] + $p[3] + $p[0] + $p[1]

[string]::format("/dev/disk/by-id/wwn-0x60022480{0}{1}{2}", $s0, $s1, $part[4])

您可以在 hyper-v 主机上使用此脚本,如下所示:

PS C:\Users\Public\Documents\Hyper-V\Virtual hard disks> .\by-id.ps1 .\Testing_8\disk_3_8.vhdx
/dev/disk/by-id/wwn-0x60022480e00bc367d7fd902e8bf0d3b4
PS C:\Users\Public\Documents\Hyper-V\Virtual hard disks> .\by-id.ps1 .\Testing_8\disk_3_9.vhdx
/dev/disk/by-id/wwn-0x600224807270e09717645b1890f8a9a2

之后,可在 kickstart 文件中使用磁盘值,如下所示:

part / --fstype=xfs --grow --asprimary --size=8192 --ondisk=/dev/disk/by-id/wwn-0x600224807270e09717645b1890f8a9a2
part /home --fstype="xfs" --grow --ondisk=/dev/disk/by-id/wwn-0x60022480e00bc367d7fd902e8bf0d3b4

因为这些值特定于每个虚拟磁盘,因此需要为每个虚拟机实例进行配置。因此,使用 %include 语法将磁盘信息放在单独的文件中可能会很有用。

方法 2:按大小设置设备选择。

根据大小配置磁盘选择的 kickstart 文件必须包含类似如下的行:

...

# Disk partitioning information is supplied in a file to kick start
%include /tmp/disks

...

# Partition information is created during install using the %pre section
%pre --interpreter /bin/bash --log /tmp/ks_pre.log

	# Dump whole SCSI/IDE disks out sorted from smallest to largest ouputting
	# just the name
	disks=(`lsblk -n -o NAME -l -b -x SIZE -d -I 8,3`) || exit 1

	# We are assuming we have 3 disks which will be used
	# and we will create some variables to represent
	d0=${disks[0]}
	d1=${disks[1]}
	d2=${disks[2]}

	echo "part /home --fstype="xfs" --ondisk=$d2 --grow" >> /tmp/disks
	echo "part swap --fstype="swap" --ondisk=$d0 --size=4096" >> /tmp/disks
	echo "part / --fstype="xfs" --ondisk=$d1 --grow" >> /tmp/disks
	echo "part /boot --fstype="xfs" --ondisk=$d1 --size=1024" >> /tmp/disks

%end

(BZ#1906870)

RHEL 8 虚拟机在 AWS ARM64 实例上的网络性能较低

当在 Amazon Web Services(AWS) ARM64 实例上运行的虚拟机(VM)中使用 RHEL 8 作为操作系统时,当使用iommu.strict=1 内核参数或 未定义iommu.strict 参数时,VM的网络性能会低于预期。

要临时解决这个问题,将参数改为iommu.strict=0。但是,这也会降低虚拟机的安全性。

(BZ#1836058)

启用 FIPS 模式时,休眠 RHEL 8 虚拟机会失败

目前,如果虚拟机使用 FIPS 模式,则无法休眠使用 RHEL 8 作为其客户机操作系统的虚拟机。

(BZ#1934033, BZ#1944636)

从备份 AMI 创建的 EC2 实例上未正确生成 SSH 密钥

目前,当从备份 Amazon Machine Image(AMI)创建新的 RHEL 8 的 Amazon EC2 实例时,cloud-init 会删除虚拟机上现有的 SSH 密钥,但不会创建新密钥。因此,在某些情况下虚拟机无法连接到主机。

要临时解决这个问题,请编辑 cloud.cgf 文件,并将"ssh_genkeytypes:~"那行改为 ssh_genkeytypes: ['rsa', 'ecdsa', 'ed25519']

当在上述的情形中创建 RHEL 8 虚拟机时,可以正确删除并生成 SSH 密钥。

(BZ#1957532)

从备份 AMI 创建的 EC2 实例上未正确生成 SSH 密钥

目前,当从备份 Amazon Machine Image(AMI)创建新的 RHEL 8 的 Amazon EC2 实例时,cloud-init 会删除虚拟机上现有的 SSH 密钥,但不会创建新密钥。因此,在某些情况下虚拟机无法连接到主机。

要临时解决这个问题,请编辑 cloud.cgf 文件,并将"ssh_genkeytypes:~"那行改为 ssh_genkeytypes: ['rsa', 'ecdsa', 'ed25519']

当在上述的情形中创建 RHEL 8 虚拟机时,可以正确删除并生成 SSH 密钥。

(BZ#1963981)