3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

KVM版 仮想HMC V9R2 インストール (RHEL8.4)

Posted at

カーネル・ベース仮想マシン(KVM)ハイパーバイザーを使用して、IBM Powerシステム ハードウェア管理コンソール(HMC)仮想アプライアンス(以降、vHMC と記述する)のインストール手順を仮想化ホストの設定を中心に紹介する。

実行環境

以下の環境で実施した。

ハードウェア

  • IBM 7944-PKM X3550 M3
    • CPU: Xeon X5650 2.66GHz 6core
    • Memory: 48GB
    • Disk: 1TB

ソフトウェア

  • Red Hat Enterprise Linux 8.4
    • qemu-kvm.x86_64: 4.2.0-48
    • libvirt-daemon.x86_64: 6.0.0-35
    • virt-install.noarch: 2.2.1-4
  • vHMC
    • Virtual HMC V9R2.950 for KVM (11/2020)

ネットワーク

外部接続用とPowerマシンHypervisor接続用との2インターフェースを使用する。ここではプライベートネットワークで実施している。

物理インターフェース 用途 ネットワーク構成 備考
p11s0f0 接続用ネットワーク接続 Bridge構成 仮想化ホスト、vHMCで共用
p11s0f1 Powerシステム接続 Direct構成 vHMCのみ使用

p11s0f0に対してBridge構成 (bridge1)を構成する。構成方法はここでは省略する。p11s0f1は11s0f1は仮想化ホストで使用しないのでDirect構成と使用する。

その他

仮想化ホストシステムは、RHEL 8.4を「GUIサーバーグループ」でインストール済。リポジトリー設定済み。

# hostnamectl
   Static hostname: rheles249
         Icon name: computer-server
           Chassis: server
        Machine ID: 074d1dfd2cf24c23b13752b4efac0afa
           Boot ID: 37c671a9104c4a9d8079da59be72a6c1
  Operating System: Red Hat Enterprise Linux 8.4 (Ootpa)
       CPE OS Name: cpe:/o:redhat:enterprise_linux:8.4:GA
            Kernel: Linux 4.18.0-305.el8.x86_64
      Architecture: x86-64

準備作業

仮想化機能の使用可能化

下記仮想化パッケージ一式と関連パッケージをインストールする。

  • libvirt
  • virt-install
  • virt-manager
  • qemu-kvm
  • qemu-img
# dnf install qemu-kvm qemu-img libvirt virt-install virt-manager

仮想化ホストの検証する。

# virt-host-validate

この環境では、IOMMUについて警告が発生したので、付録G PCI パススルーを有効にするためのホストの設定を参照して解決した。

仮想化サービスを始動する。

# systemctl start libvirtd
# systemctl enable libvirtd

vHMCのインストール

仮想化ホストの準備が整ったので仮想ゲストOSとしてHMCをインストールする。

vHMCインストールイメージの入手

vHMCインストールイメージを入手し、展開する。
ここでは下記のイメージファイルを入手した。

VIRTUAL_HMC_V9.2.950_FOR_KVM.tar.gz

イメージ配置用ディレクトリーを作成して配置する。このディレクトリーの下にディスクイメージを展開してVMを構成する。したがって、十分なスペースがあることを確認しておく。

# mkdir -p /data/images
# cd /data/images
# ls
VIRTUAL_HMC_V9.2.950_FOR_KVM.tar.gz

ファイルを展開する。

# mkdir hmc01
# cd hmc01
# gunzip -c ../VIRTUAL_HMC_V9.2.950_FOR_KVM.tar.gz |tar -xvf 

仮想ゲストOS作成準備

ファイルを確認する。

# ls -l
total 23940676
-rw-r--r--. 1 root root         8551 Oct 23  2020 checksum
drwxr-xr-x. 5 root root          213 Apr 21 16:25 data
-rw-r--r--. 1 root root 536870912000 Oct 23  2020 disk1.img
-rw-r--r--. 1 root root         1676 Oct 23  2020 domain.xml
-rw-r--r--. 1 root root         6746 Oct 23  2020 Readme.html
-rw-r--r--. 1 root root        60801 Oct 23  2020 user_data

domain.xmlをエディターを使用して編集する。
該当タグの内容を使用環境に合わせてそれぞれ変更する。- がオリジナルで + が変更後を表す。

name

任意の名前に変更する。仮想ゲストOS名になるのでわかりやすい名前にする。この例はhmc01とした。

- <name>vHMC</name>
+ <name>hmc01</name>

os

属性 machineをq35に変更します。

  <os>
-   <type arch='x86_64' machine='rhel6.4.0'>hvm</type>
+   <type arch='x86_64' machine='q35'>hvm</type>
    <boot dev='hd'/>
  </os>

q35に変更する理由に興味がある方は文末の【参考】osの属性をq35に変更した理由を参照

disk (device='cdrom')

cdromの属性busをsataに変更する。

  <devices>
    <disk type='file' device='cdrom'>
-     <target dev='hdc' bus='ide'/>
+     <target dev='hdc' bus='sata'/>
      <readonly/>
    </disk>
        :
  </devices>

disk (device='disk')

上述の手順で保管したディスクイメージファイルのパス/data/images/hmc01/disk1.imgを設定する。また、ディスクドライブは1個だけなので2個目の設定は削除する。

  <devices>
        :
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw' cache='none'/>
-     <source file='DISK_PATH'/>
+     <source file='/data/images/hmc01/disk1.img'/>
      <target dev='vda' bus='virtio'/>
    </disk>
-   <disk type='file' device='disk'>
-     <driver name='qemu' type='raw'/>
-     <source file='AEDISK'/>
-     <target dev='vdb' bus='virtio'/>
-   </disk>

interface

あらかじめ設定したインターフェースに合わせて変更と追加を行う。

bridge1: 外部接続用 (VMホストとvHMCで共用)
esp11s0f1: vHMCとPowerシステムHMCポートを接続 (VMホストは不使用)

  <devices>
        :   
    <interface type='bridge'>
-     <mac address='MAC_ADDRESS'/>
-     <source bridge='eth0'/>
-     <target dev='vnet0'/>
+     <source bridge='bridge1'/>
      <model type='virtio'/>
    </interface>
+   <interface type='direct'>
+     <source dev='enp11s0f1' mode='bridge'/>
+     <model type='virtio'/>
+   </interface>
domain.xmlの設定例
   <domain type='kvm'>
  <name>hmc01</name>
  <uuid></uuid>
  <memory unit='GB'>8</memory>
  <currentMemory unit='GB'>8</currentMemory>
  <vcpu placement='static'>4</vcpu>
  <os>
    <type arch='x86_64' machine='q35'>hvm</type>
    <boot dev='hd'/>
  </os>
  <features>
    <acpi/>
    <apic/>
    <pae/>
  </features>
  <clock offset='utc'/>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <devices>
    <emulator>/usr/libexec/qemu-kvm</emulator>
    <disk type='file' device='cdrom'>
      <target dev='hdc' bus='sata'/>
      <readonly/>
    </disk>
    <rng model='virtio'>
      <rate period='2000' bytes='1234'/>
      <backend model='random'>/dev/random</backend>
    </rng>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw' cache='none'/>
      <source file='/data/images/hmc01/disk1.img'/>
      <target dev='vda' bus='virtio'/>
    </disk>
    <interface type='bridge'>
      <source bridge='bridge1'/>
      <model type='virtio'/>
    </interface>
    <interface type='direct'>
      <source dev='enp11s0f1' mode='bridge'/>
      <model type='virtio'/>
    </interface>
    <serial type='pty'>
      <target port='0'/>
    </serial>
    <console type='pty'>
      <target type='serial' port='0'/>
    </console>
    <input type='mouse' bus='ps2'/>
    <graphics type='vnc' port='-1' autoport='yes'/>
    <video>
      <model type='vga'/>
    </video>
    <memballoon model='virtio'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
    </memballoon>
  </devices>
</domain>

仮想ゲストOSを作成する

上記で編集したdomain.xmlを用いて、ゲスト用OSを作成する。

# virsh define domain.xml
Domain hmc01 defined from domain.xml

# virsh list --all
 Id   Name    State
------------------------
-    hmc01   shut off

(補足) 仮想ゲストOSの削除

何らかの支障があった場合は仮想ゲストOSを削除して再定義する。

# virsh undefine hmc01
Domain hmc01 has been undefined

vHMC(仮想ゲストOS)始動

vHMCを始動する。

# virsh start hmc01

VNC接続するためのアドレスを取得する。

# virsh vncdisplay hmc01
127.0.0.1:1

デスクトップ画面(GNOME)でターミナルと起動し、VNCビューアーを始動してHMCのコンソールを表示する。

# vncviewer 127.0.0.1:1

vHMCの初期設定

VNCビューアーにコンソールが表示される。Linuxが起動され、vHMCのDisplay設定がウィンドウが表示される。
KVM版vHMCインストール_HMC初期設定.png
30秒何も入力しないと先に進むが、最初に設定をしておく。後から再設定可能であるが、最初に設定を済ませ、再起動時間の短縮のために再度設定パネルがでないようにする。

これ以降は通常のHMCの初期設定と同じである。

おわりに

これにより、ハードウェア版HMCを置き換えて使用できる。現在、仮想HMCはバージョン10がリリースされているが、この手順を活用してインストールできる。

【参考】osの属性をq35に変更した理由

(詳細を参照する場合は展開する) デフォルト設定の下記指定のままで仮想ゲストOSを作成して始動>した場合は下記のエラーが発生する。
error: internal error: process exited while connecting to monitor: 2022-04-21T08:17:43.712693Z qemu-kvm: -machine rhel6.4.0,accel=kvm,usb=off,dump-guest-core=off: unsupported machine type
Use -machine help to list supported machines

これは、RHEL8のKVMは、RHEL 7.0 以降のゲストOSをサポートしているためにrhel6.4ではサポート外のためエラーが発生する。サポートしているOSを表示すると下記のリストとなる。

# /usr/libexec/qemu-kvm -machine help
Supported machines are:
pc                   RHEL 7.6.0 PC (i440FX + PIIX, 1996) (alias of pc-i440fx-rhel7.6.0)
pc-i440fx-rhel7.6.0  RHEL 7.6.0 PC (i440FX + PIIX, 1996) (default)
pc-i440fx-rhel7.5.0  RHEL 7.5.0 PC (i440FX + PIIX, 1996)
pc-i440fx-rhel7.4.0  RHEL 7.4.0 PC (i440FX + PIIX, 1996)
pc-i440fx-rhel7.3.0  RHEL 7.3.0 PC (i440FX + PIIX, 1996)
pc-i440fx-rhel7.2.0  RHEL 7.2.0 PC (i440FX + PIIX, 1996)
pc-i440fx-rhel7.1.0  RHEL 7.1.0 PC (i440FX + PIIX, 1996)
pc-i440fx-rhel7.0.0  RHEL 7.0.0 PC (i440FX + PIIX, 1996)
q35                  RHEL-8.2.0 PC (Q35 + ICH9, 2009) (alias of pc-q35-rhel8.2.0)
pc-q35-rhel8.2.0     RHEL-8.2.0 PC (Q35 + ICH9, 2009)
pc-q35-rhel8.1.0     RHEL-8.1.0 PC (Q35 + ICH9, 2009)
pc-q35-rhel8.0.0     RHEL-8.0.0 PC (Q35 + ICH9, 2009)
pc-q35-rhel7.6.0     RHEL-7.6.0 PC (Q35 + ICH9, 2009)
pc-q35-rhel7.5.0     RHEL-7.5.0 PC (Q35 + ICH9, 2009)
pc-q35-rhel7.4.0     RHEL-7.4.0 PC (Q35 + ICH9, 2009)
pc-q35-rhel7.3.0     RHEL-7.3.0 PC (Q35 + ICH9, 2009)
none                 empty machine

vHMC V9.2.950のベースはRHEL8なのでq35を選択する。また、ここでq35とした場合は、diskタグのdevicecdromのbus設定をsataに変更する。これは、ideをサポートしていないためで、サポートしているbusのsataを指定する。ideのままで、仮想ゲストOSを定義すると下記のエラーが発生する。

error: unsupported configuration: IDE controllers are unsupported for this QEMU binary or machine type

参考資料

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?