カーネル・ベース仮想マシン(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設定がウィンドウが表示される。
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