CentOS 8 に KVM をインストールする場合は、以下の手順でできます。
1. CPUが仮想化支援機能に対応しているか確認
egrep -c '(vmx|svm)' /proc/cpuinfo
結果が 1以上 ならOKです。
または
lscpu | grep Virtualization
例
Virtualization: VT-x
2. KVM関連パッケージをインストール
==============================================
CentOS 8 の場合は Vault へ変更します。
まずバックアップ。
mkdir /root/repo_backup
cp -p /etc/yum.repos.d/*.repo /root/repo_backup/
次に repo ファイルを編集します。
例えば AppStream なら
vi /etc/yum.repos.d/CentOS-Linux-AppStream.repo
vi /etc/yum.repos.d/CentOS-AppStream.repo
以下のように変更します。
#mirrorlist=http://mirrorlist.centos.org/...
baseurl=http://vault.centos.org/8.5.2111/AppStream/x86_64/os/
CentOS-Base.repo、CentOS-Extras.repo も同様に
#mirrorlist=http://mirrorlist.centos.org/...
baseurl=http://vault.centos.org/8.5.2111/BaseOS/x86_64/os/
設定後
dnf clean all
dnf makecache
が成功すれば、
dnf install -y qemu-kvm libvirt virt-install
==============================================
CentOS 8では以下を実行します。
dnf install -y qemu-kvm libvirt virt-install virt-manager virt-viewer
サーバー用途ならGUI不要なので、
dnf install -y qemu-kvm libvirt virt-install
だけでも十分です。
3. libvirtdを起動
systemctl enable --now libvirtd
状態確認
systemctl status libvirtd
4. KVMモジュール確認
Intel CPU
lsmod | grep kvm_intel
AMD CPU
lsmod | grep kvm_amd
例
kvm_intel
kvm
が表示されればOKです。
5. KVM動作確認
virsh list --all
エラーが出なければ正常です。
さらに
virt-host-validate
実行例
QEMU: Checking for hardware virtualization : PASS
QEMU: Checking if device /dev/kvm exists : PASS
PASSが並べば問題ありません。
新しい仮想マシンを作成しようとするとエラーが出た
「ホストがすべての仮想化オプションをサポートしません」
アップデートを実施
dnf update libgcrypt qemu-kvm
無事、仮想マシンの作成画面が出た
6. ブリッジ作成(VMをLANへ接続する場合)
現在のNIC確認
nmcli connection show
例としてNICが ens192 の場合
nmcli connection add type bridge ifname br0 con-name br0
nmcli connection modify br0 ipv4.method auto ipv6.method auto
nmcli connection add type bridge-slave ifname ens192 master br0
再起動
systemctl restart NetworkManager
7. 仮想マシン作成例
ISOからインストール
virt-install \
--name testvm \
--memory 4096 \
--vcpus 2 \
--disk size=50 \
--os-variant centos8 \
--network bridge=br0 \
--cdrom /iso/CentOS-Stream-8.iso
8. ブリッジを作成
仮想マシンをホストマシンと同じネットワークに接続させるため、ブリッジを作成
nmcli connection add type bridge ifname br0 con-name br0
仮想マシンの状態を確認
[root@kvm01 ~]# virsh list --all
Id 名前 状態
------------------------
1 centos8 実行中
[root@kvm01 ~]# virsh domiflist centos8
インターフェース 種類 ソース モデル MAC
--------------------------------------------------------------------
vnet0 network default e1000 52:54:00:1c:a5:40
[root@kvm01 ~]#
仮想マシンマネージャー上にからのブリッジができた

CentOS8の代わりにWindowsServerを仮想マシンにして、仮想マシンをブリッジ形式にすると
このようになった。
[root@kvm01 ~]# ip a
~略~
2: enp0s25: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br0 state UP group default qlen 1000
link/ether cc:7e:e7:5c:cf:f6 brd ff:ff:ff:ff:ff:ff
5: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether 52:54:00:7a:16:e4 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
6: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel master virbr0 state DOWN group default qlen 1000
link/ether 52:54:00:7a:16:e4 brd ff:ff:ff:ff:ff:ff
7: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether cc:7e:e7:5c:cf:f6 brd ff:ff:ff:ff:ff:ff
inet 192.168.11.177/24 brd 192.168.11.255 scope global noprefixroute br0
valid_lft forever preferred_lft forever
inet6 fe80::95c:8e87:f80:e3c2/64 scope link noprefixroute
valid_lft forever preferred_lft forever
8: vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br0 state UNKNOWN group default qlen 1000
link/ether fe:54:00:1c:a5:40 brd ff:ff:ff:ff:ff:ff
inet6 fe80::fc54:ff:fe1c:a540/64 scope link
valid_lft forever preferred_lft forever
[root@kvm01 ~]#




コメント