CentOS8にKVMインストール

Linux

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 ~]#

コメント

タイトルとURLをコピーしました