ヘルプ:仮想マシン構築(KVM)(CentOS8)
提供:あわ自由帳
メインページ > ヘルプ:目次 > ヘルプ:自宅サーバー構築(CentOS8) > 仮想マシン構築(KVM)(CentOS8)
- KVM ( Kernel-based Virtual Machine ) + QEMU の仮想化です。
- 搭載している CPU が仮想化機構 ( Intel VT, AMD-V 等 ) を備えている必要があります。
KVM使用可否確認
[root@host3 ~]# grep -E 'svm|vmx' /proc/cpuinfo > /dev/null && echo OK ← CPUの完全仮想化対応確認 OK ← OKと表示されれば完全仮想化対応CPU [root@host3 ~]# grep flags /proc/cpuinfo|grep lm > /dev/null && echo OK ← CPUの64ビット確認 OK ← OKと表示されれば64ビットCPU
仮想化関連パッケージインストール
必要なパッケージをインストール
[root@host3 ~]# dnf -y install qemu-kvm libvirt virt-install
モジュールが読み込まれているか確認
[root@host3 ~]# lsmod | grep kvm kvm_intel 290816 0 kvm 753664 1 kvm_intel irqbypass 16384 1 kvm
仮想マシン制御
仮想マシン制御起動
[root@host3 ~]# systemctl enable --now libvirtd
仮想マシン制御起動確認
[root@host3 ~]# systemctl status libvirtd ● libvirtd.service - Virtualization daemon Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled; vendor pr> Active: active (running) since Tue 2020-03-24 13:02:32 JST; 32s ago Docs: man:libvirtd(8) https://libvirt.org Main PID: 28976 (libvirtd) Tasks: 18 (limit: 32768) Memory: 59.4M CGroup: /system.slice/libvirtd.service tq28976 /usr/sbin/libvirtd mq29027 /usr/sbin/iptables -w --table nat --insert POSTROUTING --sou>
仮想化設定
- ゲスト OS がブリッジ接続できるようにブリッジネットワークを構成しておきます。
ネットワーク構成を確認
[root@host3 ~]# ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: ens1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 9c:8e:99:01:57:38 brd ff:ff:ff:ff:ff:ff inet 192.168.1.3/24 brd 192.168.1.255 scope global noprefixroute ens1 valid_lft forever preferred_lft forever inet6 2001:a453:61e1:9000:3d60:b782:2a65:42d8/64 scope global dynamic noprefixroute valid_lft 13392sec preferred_lft 11592sec inet6 fe80::b4d:68a5:a851:38a0/64 scope link noprefixroute valid_lft forever preferred_lft forever 3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000 link/ether 52:54:00:b7:2d:7c 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 4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel master virbr0 state DOWN group default qlen 1000 link/ether 52:54:00:b7:2d:7c brd ff:ff:ff:ff:ff:ff
- 既存のインターフェース名を[ens1]メモする。
ブリッジネットワークを構成
- ゲスト OS がブリッジ接続できるようにブリッジネットワークを構成しておきます。
- [ens1] のインターフェース名の部分は環境によって異なるため、自身の環境に読み替えてください。
ブリッジ [br0] を追加
[root@host3 ~]# nmcli connection add type bridge autoconnect yes con-name br0 ifname br0 接続 'br0' (7f2c03fc-1ff5-4d60-b4e2-a7b615974533) が正常に追加されました。
[br0] の IPアドレス設定
- 一時的に使用するIPアドレスを設定する。
[root@host3 ~]# nmcli connection modify br0 ipv4.addresses 192.168.1.10/24 ipv4.method manual
[br0] の ゲートウェイ設定
[root@host3 ~]# nmcli connection modify br0 ipv4.gateway 192.168.1.1
[br0] の DNS 設定
[root@host3 ~]# nmcli connection modify br0 ipv4.dns 192.168.1.2
ブリッジインターフェースbr0の設定を反映
[root@host3 ~]# nmcli con up br0 接続が正常にアクティベートされました (master waiting for slaves) (D-Bus アクティブパス: /org/freedesktop/NetworkManager/ActiveConnection/7)
既存のインターフェースは一旦削除
[root@host3 ~]# nmcli connection del ens1 接続 'ens1' (31c461e4-a7a9-44fa-8edc-fc469393bf92) が正常に削除されました。
- SSHで設定対象ホストにリモート接続している場合、このタイミングで既存のIPアドレスが無効化されて接続が切断されるので注意してください。
- 再接続するときは、ブリッジインターフェースbr0に設定した一時的に使用するIPアドレスをSSHの接続先に指定します。
[br0] のメンバーとして再度追加
[root@host3 ~]# nmcli connection add type bridge-slave autoconnect yes con-name ens1 ifname ens1 master br0
サーバーのIPアドレスを [br0] に設定
- 一時的に使用するIPアドレスにリモート接続。
- サーバーが使っていた、IPアドレスを設定する。
- 以後、設定したIPアドレスをSSHの接続先に指定します。
[root@host3 ~]# nmcli connection modify br0 ipv4.addresses 192.168.1.3/24 ipv4.method manual
再起動
[root@host3 ~]# reboot
ブリッジネットワーク構成を確認
[root@host3 ~]# ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: ens1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master br0 state UP group default qlen 1000 link/ether 9c:8e:99:01:57:38 brd ff:ff:ff:ff:ff:ff 3: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 9c:8e:99:01:57:38 brd ff:ff:ff:ff:ff:ff inet 192.168.1.3/24 brd 192.168.1.255 scope global noprefixroute br0 valid_lft forever preferred_lft forever inet6 2001:a453:61e1:9000:ae73:bc53:5199:20c7/64 scope global dynamic noprefixroute valid_lft 13742sec preferred_lft 11942sec inet6 fe80::c26e:1b68:d062:e977/64 scope link noprefixroute valid_lft forever preferred_lft forever 4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000 link/ether 52:54:00:b7:2d:7c 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 5: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel master virbr0 state DOWN group default qlen 1000 link/ether 52:54:00:b7:2d:7c brd ff:ff:ff:ff:ff:ff