无法在 Apache CloudStack 中将 ISO 作为 HVM 启动

Apache CloudStack 中的 ISO 引导时,报错:

Unable to start instance 'hostname' (UUID), see management server log for details

ISO介质不支持在XenServer 6.2中作为PV来宾安装,它需要在PVHVM模式下安装,这需要进行以下工作才能正确引导。

检查管理服务器日志,发现了以下错误。

2014-04-24 20:53:02,143 WARN  [c.c.h.x.r.CitrixResourceBase] (DirectAgent-123:ctx-ba34b259) (logid:c106bd42) Unable to start VM(i-1-50-VM) on host(67bf3786-d8aa-569e-bcbf-123bc567b67b) due to Task failed! Task record:                 uuid: 38b2cbee-4c03-9389-403f-806ad63459ed
           nameLabel: Async.VM.start_on
     nameDescription: 
   allowedOperations: []
   currentOperations: {}
             created: Fri Apr 24 20:53:10 AEST 2014
            finished: Fri Apr 24 20:53:12 AEST 2014
              status: failure
          residentOn: jack@onitroad
            progress: 1.0
                type: 
              result: 
           errorInfo: [BOOTLOADER_FAILED, OpaqueRef:ed846391-76ea-429d-ed38-37a7552528f8, INVALID_SOURCE
Unable to access a required file in the specified repository: file:///tmp/cdrom-repo-P8F-B1/install/vmlinuz.

我尝试启动的特定 ISO 是基于 SLES 12 的,为了尝试排除 CloudStack 作为问题,我直接通过 Citrix XenCenter 创建了一个虚拟机到 XenServer 6.2 并从相同的 ISO 启动。
尝试开机时,显示以下错误。

Starting VM 'hostname'
The bootloader for this VM returned an error -- did the VM installation succeed? INVALID_SOURCE
Unable to access a required file in the specified repository: file:///tmp/cdrom-repo-FMlQEz/install/vmlinuz.

发生这种情况是因为我在创建虚拟机时选择了与安装媒体紧密匹配的操作系统类型,而不是创建它并选择“其他安装媒体”时它正确启动。
要让 VM 以选定的操作系统类型启动,我们可以根据需要通过 XenServer 执行这些修改。

虚拟机正确启动后,从 ISO 安装操作系统并根据需要对其进行配置。
完成后关闭虚拟机。

接下来,我们需要复制这个虚拟机的 VHD 文件并将其放在 Web 服务器上。
Apache CloudStack 目前允许我们从通过 HTTP/HTTPS 提供服务的 .VHD 文件创建模板。

要获取虚拟机的 UUID,请在 XenServer 中运行以下命令。

xe vm-disk-list name-label=[VM-NAME]

磁盘 0 将是主磁盘,获取 VDI UUID,然后运行以下命令。

xe vdi-list uuid=[VDI-UUID]

这将显示存储库的 sr-uuid,如果存储库是基于 ext3 或者 NFS 的,挂载点将是 /var/run/sr-mount/[SR-UUID]。
虚拟机的 VHD 文件位于 /var/run/sr-mount/[SR-UUID]/[VDI-UUID].vhd

复制此文件并将其放置在 Web 服务器上,CloudStack 需要通过 HTTP/HTTPS 访问以进行下载。

通过模板下的 CloudStack,选择注册模板按钮。
提供 VHD 文件的 URL,并确保将操作系统类型设置为适当的内容,例如其他 Linux。
还必须勾选 HVM 选项,这很重要。

一旦模板完成下载和安装,我们应该能够通过 CloudStack 创建一个新实例,该实例将从 ISO 引导我们直接安装在 XenServer 中的操作系统,否则不会直接通过 CloudStack 引导。

日期:2020-07-07 20:57:01 来源:oir作者:oir