内容


IBM POWER8 上的 IBM PowerKVM(第 1 部分)

系统启动

Comments

PowerKVM 简介

Linux® 拥有自己的内置虚拟机管理程序,以及基于内核的虚拟机 (KVM)。IBM Power Architecture 中现在已经添加了 KVM 支持,因此可以使用开源虚拟化标准来虚拟化 IBM Power Systems。KVM 作为不同架构的开源虚拟机管理程序已经有一段时间了,现在,KVM 已经移植到 IBM Power Architecture® 并进行调优。领先的 Linux 发行版供应商 SUSE 和 Red Hat 的 Guest 系统可以轻松地部署在企业就绪的 PowerKVM 环境中。IBM 还开发了具有工程质量水平的 OPAL,可以使用它在基于下一代 IBM POWER® 处理器的服务器上运行 KVM。因此,IBM 伸出了它的智慧之手,为客户提供了 KVM 作为 Power Systems 上的一种值得信赖的开源虚拟化技术。

要理解 PowerKVM,则需要理解 Power Systems with PowerKVM 中涉及的构建块。下图描绘了运行 PowerKVM 的 Power Systems 中涉及的高级构建块。

图 1. PowerKVM 的构建块
PowerKVM 的构建块
PowerKVM 的构建块

灵活服务处理器 (FSP)

FSP 是一种高级服务处理器,它提供了丰富的功能,包括初始化系统芯片组,引导到虚拟机管理程序运行时,连接到管理模块,以及为高级的可靠性、可用性和可服务性 (RAS) 功能提供运行时支持。FSP 是硬件中一个额外的层,用于紧密监视其他硬件组件,在事件发生期间,它还会在失败发生之前通知系统管理员或供应商主动出击,避免服务遭到破坏。

固件或 OPAL

OPAL 是基于 POWER8 处理器的服务器 PowerKVM 的产品栈中的系统固件。它包含 3 个主要部分,这三个部分分别名为 skiboot、skiroot 和 skirun。

OPAL 引导 (skiboot)

这是 FSP 加载的一个二进制组件(一个负载 ID),它执行一些系统初始化和设置(PCIe 等),为客户端操作系统提供运行时服务抽象。这些服务服务包含访问实时时钟,重新引导系统、各种与 PCIe PCI Host Bridging (PHB) 相关的功能和 nvram。此外,OPAL 还会在引导时加载控件并传输到 OPAL 加载器。

OPAL 引导 (skiroot)

这是一个基于 Linux 的引导加载器,它从磁盘或网络发现 I/O 设备并加载基于 Linux 的虚拟机管理程序

OPAL 运行时 (skirun)

OPAL 运行时是一个存储在单独的本地 ID 中的 Linux 系统(内核 + ramdisk)。此系统用于访问 I/O 设备(比如磁盘、网络等),找到并加载宿主 Linux 系统,以便在虚拟机管理程序模式下在系统上运行它。

PowerKVM

PowerKVM 是在虚拟机管理程序模式下运行的 Linux 宿主系统内核。借助一个开源 KVM 生态系统,PowerKVM 允许在虚拟机管理程序模式下无缝地运行多个 Linux Guest 系统。宿主系统内核能够访问所有内存和所有系统资源。在 PowerKVM 上运行的所有 Guest 都使用了 PAPR 接口半虚拟化。PowerKVM 宿主系统在虚拟机管理程序模式下运行,其中 Guest 系统内核也在虚拟机管理程序模式下运行。特殊的固件 OPAL 是为提供对虚拟机管理程序模式的完整访问权而开发的, Guest 系统能够以完整的硬件速度运行,而不许与任何特权指令竞争。

FSP 的接口

用户可以通过 IPMItool 和 Advanced System Management (ASM) 访问 Power Systems 的 FSP。

IBM 推荐和建议的 FSP 方法方式是使用基于命令行的开源 IPMItool。用户也可以使用 FSP 提供的 GUI(也被称为 ASM)。

IPMItool:

IPMItool 是一个开源系统管理工具,可下载并安装在 Linux 系统上。安装之后,FSP 可以使用以下命令进行访问。

$ipmitool -I lanplus -H <fsp_ip> -P <fsp_password> power status

其中,

  • fsp_ip:指示 FSP 的 IP
  • fsp_password:FSP 的 IPMI 密码。
    默认密码将设置为 ‘passw0rd’。请参阅固件发行说明,了解有关的更多信息。
  • power:Power Systems 上的一个命令 IPMITool 支持示例

请查阅 IPMItool 手册页面,了解其他命令和用法。

ASM:

ASM 是一个来自 FSP 的基于 GUI 的 Web 产品,用于管理系统。用户可在任何浏览器上使用 https://<fsp_ip> 连接到各个 FSP 的 ASM。

选择虚拟机管理程序

在 2014 年之前,POWER 固件是一个固件包(软件),可在 FSP 和 IBM POWER Hypervisor™ 上运行。现在 POWER 固件还包含 OPAL(用于 PowerKVM 的固件)的加载 ID,以及 FSP 固件和 POWER Hypervisor。

这意味着 2014 年以后,PowerKVM 和 IBM PowerVM 产品栈需要的固件始终可在系统中找到。因此,在打开 Power Systems 服务器后,需要根据其产品栈需求来选择固件。这一步可使用 ASM 完成。

使用 ASM 执行以下步骤,选择一个虚拟机管理程序:

在左侧面板上,单击 System Configuration ➟ Hypervisor Configuration。然后选择 OPAL

备注:

  • 此选项仅在系统处于 Powered Off 态时才可用。
  • 将虚拟机管理程序设置为 OPAL 操作,需要在没有附加 HMC 时完成。所以,在将虚拟机管理程序设置为 OPAL 之前,需要断开 HMC 连接(如果已经连接)。

PowerKVM 系统启动和安装步骤

  1. 更新 Power System 服务器上的固件
  2. 配置 PowerKVM 存储库
  3. 启动 POWER8 H/W 系统
  4. 从 Petitboot 选择要引导的镜像
  5. 安装 PowerKVM
  6. 登录到 PowerKVM
  7. 访问安装的系统

1. 更新 Power Systems 服务器上的固件

在某些情况下,用户需要将 Power Systems 固件升级到更新的级别,以便获取新特性或额外的设备支持。PowerKVM 提供了一个工具来完成此工作。请确保满足以下要求。

  • 一个在该系统上运行的 OS 操作系统(所以请继续完成其他主题,以在执行固件更新之前启动操作系统)。
  • 用户需要更新到的 OPAL 级别的 .img 文件。

Power Systems 可从一个由两部分组成的闪存引导固件,这两个部分分别为永久 部分和临时 部分。这样,可首先在闪存的临时 部分测试固件更新,然后再将测试的更改提交到永久 部分,进而提交新更新。

执行以下步骤来完成更新:

  1. 在真正更新之前保存现有固件的级别。在 ASM 中的系统菜单中,单击 Service Aids ➟ Service Processor Command Line,运行以下命令:
    cupdcmd -f
  2. 将要更新的固件级别的 .img 文件下载到 PowerKVM 中的一个位置。请参阅 IBM Fix Central 来下载镜像文件。
  3. 运行以下命令对下载的镜像进行验证,然后保存输出。
    $update_flash -v -f <file name.img>
  4. 运行以下命令来更新固件。
    $update_flash -f <file name.img>

    备注:

    • 该命令重新引导系统,因此会话(如果有)将丢失。
    • 在系统恢复运行前不要重新引导或关闭它。
  5. 验证闪存的临时部分中更新的固件级别,像第 1 步中所做的那样。
  6. 新更新的级别可运行以下命令来提交到闪存的永久部分:
    $update_flash -c

在需要还原更新时,用户可以运行 $update_flash -r 命令来完成(rejection 将仅拒绝闪存的临时部分。因此只有在对新固件进行全面测试后,新级别才应提交到永久部分)。

2. 配置 PowerKVM 存储库

A. 下载 PowerKVM 构建版本

要下载 PowerKVM 产品,请参阅 IBM Fix Central 网页

B. 配置存储库

可以为安装配置不同类型的存储库。

Netboot/PXEboot 存储库设置

对于此设置,您将需要一个 DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)/TFTP(Trivial File Transfer Protocol,平凡文件传输协议)服务器和一个 Web 服务器。

  1. 下载 ibm-powerkvm-xxx-ppc64-GA-xxx.iso 文件并执行一次 loop mount,将它解压到您 HTTP 服务器的 www 根结构中的某个文件夹中。
    $  mkdir /tempiso
    Download  ibm-powerkvm-xxx-ppc64-GA-xxx.iso to /tempiso
    $ cd /tempiso
    $ mkdir iso
    $ mount -o loop ibm-powerkvm-xxx-ppc64-GA-xxx.iso ./iso
  2. 将解压的目录的内容复制到 Web 服务器的文档根目录中。
    $ mkdir /www-root-directory/powerkvmnetboot
     For example: mkdir /var/www/html/powerkvmnetboot
    $ cp -a ./iso/* <www-root-directory/powerkvmnetboot>
     For example:$ cp -a ./iso/* /var/www/html/powerkvmnetboot
  3. 在您的 tftproot 目录(比如 /tftproot/kvmonp)中创建 petitboot.conf 文件
    $ mkdir -p /tftproot/kvmonp 
    $ touch /tftproot/kvmonp/petitboot.conf
  4. 针对您的 Web 服务器配置路径和 IP 地址调整 petitboot.conf 文件。
    $ vi /tftproot/kvmonp/petitboot.conf    
    label PowerKVMAutomatedInstall_BUILD13
    kernel http://YOUR-SERVER-IP/powerkvmnetboot/ppc/ppc64/vmlinuz
    initrd http://YOUR-SERVER-IP/powerkvmnetboot/ppc/ppc64/initrd.img
    append root=live:http://YOUR-SERVER-IP/powerkvmnetboot/LiveOS/squashfs.img 
    repo=http://YOUR-SERVER-IP/powerkvmnetboot/packages rd.dm=0 rd.md=0 
         console=hvc0 console=tty0

    保存包含上述内容的 peitboot.conf 文件。
  5. 编辑您的 dhcpd.conf 文件,将它设置为指向用于 PXE 引导的 peitboot.conf 文件内容和配置。

    在开头设置以下指令

    allow bootp;
    allow booting;
    ddns-update-style none;
    always-reply-rfc1048 true;
    ignore unknown-clients;
    option conf-file code 209 = text;
  6. 将该系统指令附加到 /etc/dhcpd/dhcpd.conf 文件。
    host <your-system> { 
                 hardware ethernet <system macaddr>
                 fixed-address <system ip>; 
                 option host-name "<system hostname>";
                 option conf-file "<kvmonp/petitboot.conf>"; }

    例如:
    host powerkvm.host.domain.com { 
               hardware ethernet 52:53:88:60:12:40; 
               fixed-address 192.168.10.149; 
               option host-name "powerkvm.host.domain.com"; 
               option conf-file "<kvmonp/petitboot.conf>"; }
  7. 保存 dhcpd.conf 文件。
  8. 重新启动 dhcpd 服务或重新引导 DHCP 服务器。
    $service dhcpd restart

网络文件系统 (NFS) 存储库设置

  1. 配置您的 TFTP 和 DHCP 服务器,根据 Netboot 中的说明将内核 (vmlinuz) 和 initrd 复制到其中。
  2. 配置您的 NFS 服务器。
  3. 将 PowerKVM ISO 复制到一个 NFS 文件夹中。
  4. 针对您的 Web 服务器配置而修改 petitboot.conf 文件。
    label PowerKVMAutomatedInstall_BUILD13
    kernel http://YOUR-SERVER-IP/powerkvmnetboot/ppc/ppc64/vmlinuz
    initrd http://YOUR-SERVER-IP/powerkvmnetboot/ppc/ppc64/initrd.img
    append root=live:http://YOUR-SERVER-IP/powerkvmnetboot/LiveOS/squashfs.img
    repo=http://YOUR-SERVER-IP/powerkvmnetboot/packages rd.dm=0 rd.md=0 
         console=hvc0 console=tty0

CD/DVD 引导设置

  1. 将下载的 PowerKVM ISO 镜像刻录到一个空白 CD/DVD 中。
  2. 在 petitboot 屏幕上看到 “POWERKVM_LIVECD” 消息时开始安装。

HTTP 引导设置

您需要一个正在运行的 Web 服务器,其中包含 netboot.tar 文件或 ISO 的内容,并且这些内容可通过网络访问。此内容可在以下位置用于超文本传输协议 (HTTP) 引导:http://<your httpserver.com>/powerkvmnetboot

要使用 HTTP 引导方法,我们需要执行以下步骤。

  1. 清除对 HTTP 存储库服务器的所有 BSO 访问权。
  2. 在 petitboot 菜单中,按下 n 创建一个新的临时条目。
    按如下所示填充该条目:
    Kernel: http://YOUR-http-SERVER-IP/powerkvmnetboot/ppc/ppc64/vmlinuz
    Initrd: http://YOUR-http-SERVER-IP/powerkvmnetboot/ppc/ppc64/initrd.img
    Device tree:---------------------------------------------------------
    Boot arguments: 
      root=live:http://YOUR-http-SERVER-IP/powerkvmnetboot/LiveOS/squashfs.img
    repo=http://YOUR-http-SERVER-IP/powerkvmnetboot/packages rd.dm=0 rd.md=0 
      console=hvc0 console=tty0

3. 启动 POWER8 H/W 系统

选择虚拟机管理程序并升级固件后,如果需要的话,可以开启 POWER8 系统。

执行以下步骤来开启它。

使用 ASM:

  1. 在 ASM 中单击 Power/Restart Control ➟ Power On/Off System
  2. 在该页面上,确保恰当地选择了引导选项。
    • Firmware boot side for the next boot:Temporary or Permanent
    • System operating mode:Normal
    • Server firmware start policy:Running
    • System power off policy:<As required>

系统控制台

在 OPAL 虚拟机管理程序模式中,用户可以通过两种方式访问系统控制台,系统控制台可用于排除问题和跟踪系统的引导。

使用 IPMI 控制台:

IPMItool 提供了系统的 Serial Over LAN (SOL) 控制台,该控制台可通过以下命令进行访问。

$ipmitool -I lanplus -H <fsp_ip> -P <ipmi_password> sol activate

请参阅 IPMItool 的手册页,了解可用于 sol 命令的其他选项。

4. 从 Petitboot 选择要引导的镜像

Petitboot 是 IBM Power Systems 上的 OPAL 和 PowerKVM 产品栈的引导加载器,也就是 图 1 中的 “OPAL”。

它是一个基于文本的工具,可在系统中扫描磁盘、网络和媒体上的所有可引导实例。它列出了可引导的实例,供用户选择要从中引导的来源。它还为用户提供了手动创建新的临时引导实例的选项,该选项通常用于 HTTP 引导。

它还提供了一种查看和设置基本的网络配置的方式。这里设置的网络配置将在安装 PowerKVM 后在系统中反映出来,只要在 PowerKVM 安装期间未被网络配置覆盖。

例如,petitboot 菜单类似于图 2。

图 2:Petitboot
图 2:Petitboot
图 2:Petitboot

5. 安装 PowerKVM

A. 新安装

新安装意味着会擦除所有配置文件并重新格式化选定的磁盘。

这一步要求您在开始安装之前遵循所有需要的存储库设置。

请注意,您可以选择本教程的存储库配置部分中提到的任意安装方法来安装 PowerKVM。在这里,我们专门给出了编写本文时涉及的 PXE 安装的屏幕截图。

重新启动 Power Systems 服务器并验证 “IBMPowerKVMAutomatedInstall” 选项是否可用在 petitboot 上来开始安装。

选择该标签已继续安装。

图 3:新安装
图 3:新安装
图 3:新安装

在选择 IBMPowerKVMAutomatedInstall 后(如图 3 所示),可以看到引导消息,需要几分钟时间检查要检测的所有现有的以太网接口。所以,请耐心等待安装屏幕在控制台上打开。

在语言选择屏幕上,保留默认选项,选择 English 并按下回车键前进到下一个屏幕。

图 4:安装屏幕
图 4:安装屏幕
图 4:安装屏幕

这里显示了安装 IBM PowerKVM 的屏幕。

如果系统已安装 PowerKVM 操作系统,那么您可看到两个选项:Install IBM PowerKVMReinstall IBM PowerKVM。否则,您只会看到 Install IBM PowerKVM 选项。选择该选项并按回车键开始全新安装。

然后,按照屏幕上的操作说明(如以下屏幕截图所示)完成安装。

图 5:磁盘选择

图 6:引导密码
图 6:引导密码
图 6:引导密码
图 7:接口选择
图 7:接口选择
图 7:接口选择
图 8:接口配置
图 8:接口配置
图 8:接口配置
图 9:安装
图 9:安装
图 9:安装

进度达到 100% 后,在 Reboot 选项上按下回车键引导到 PowerKVM 宿主系统。

最后,完成本教程后面的一部分提及的安装后步骤。

B. 重新安装

可以重新安装该系统,而不执行全新安装。选择重新安装选项后,将通过清除所有分区和配置来擦除系统,然后执行完整安装。但是,此方法保留了 /var/lib/libvirt/images 和 /var/log 中的内容。

要继续完成重新安装,您需要执行以下步骤:

  1. 引导 PowerKVM CD/DVD,或者采用 pxeboot、httpboot 或 nfs 引导方法。
  2. 选择 English 作为语言并按下回车键。
  3. 选择 Reinstall PowerKVM。此时将会显示一条警告消息,如图 10 所示。
    图 10:重新安装
    图 10:重新安装
    图 10:重新安装
  4. 单击 Yes 允许继续重新安装。
  5. 等待安装完成,在提示时重新引导。
  6. 在重新引导选项上按下回车键,重新引导 PowerKVM 主机。
  7. 然后,继续完成安装后步骤。

备注:请参阅 IBM PowerKVM 2.1 已知问题和字数文件,在 “PowerKVM 安装考虑因素” 下了解重新安装的限制和已知问题(如果有)。

6. 登录到 PowerKVM

安装完成后,系统将重新引导。从 Petitboot 菜单,选择一个已安装的磁盘标签,如下所示:

  • IBM PowerKVM
  • IBM PowerKVM, with Linux 3.10.23-1300.pkvm2_1.1.ppc64

它从安装的内核引导并设置 selinux 策略。随后,它会自动重新引导以保存配置的 selinux 策略。

现在再次选择上面提到的一个标签,然后等待在 IPMI 控制台上看到登录提示。

IBM_PowerKVM release 2.1.0 build 13 Beta5 (pkvm2_1) Kernel
3.10.23-1300.pkvm2_1.1.ppc64 on a ppc64 (hvc0) 
powerkvmhost login:

7. 访问安装的系统

您应能够从控制台访问安装的系统,以及使用对系统 IP 的 Secure Shell (SSH) 来远程访问。

验证 PowerKVM 安装

要验证安装是否成功,可使用以下命令:

$uname -a
Linux powerkvmhost.xxx.ibm.com 3.10.23-1400.pkvm2_1.2.ppc64 #1
SMP Thu Apr 17 15:32:52 CDT 2014 ppc64 ppc64 ppc64 GNU/Linux

突出显示的部分应指示了安装的 PowerKVM 级别。

问题排除

本节将介绍各种错误和排除这些错误的技巧。

  1. IPMItool 命令返回:
    Error:Unable to establish IPMI v2 / RMCP+
    session Error:No response activating SOL payload

    验证虚拟机管理程序选项是否仍然正确。如果 FSP 已意外地重新引导,那么虚拟机管理程序有可能变为 00。虚拟机管理程序必须为 03,这样 IPMI 命令才能有效。
  2. IPMItool 命令返回:
    Error:Unable to establish IPMI v2 / RMCP+
    session

    通过 ASM 验证并更正 IPMItool 密码。
  3. 未在 IPMI 控制台或调试 TTY 中看到任何信息。确保系统已开启。 在 FSP 重新引导后系统仍处于 Powered Off 状态。

相关主题


评论

添加或订阅评论,请先登录注册

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Linux, AIX and UNIX
ArticleID=987134
ArticleTitle=IBM POWER8 上的 IBM PowerKVM(第 1 部分)
publish-date=10232014