CentOS 8.2にKVMサーバー構築

Linux

1. KVM側でVM作成

最低限の推奨

  • vCPU:2以上
  • メモリ:4GB以上(できれば8GB)
  • ディスク:40GB以上
  • NIC:virtio
  • Disk Bus:virtio(推奨)

ISOは以下のようなものを使用(例)

  • CentOS-8.2.2004-x86_64-dvd1.iso

※CentOS 8 はEOLなので、本番なら後継の Rocky Linux や AlmaLinux を強く推奨です。
ただし「既存環境合わせ」で8.2指定ならそのままでOK。

2. インストール開始

インストーラで以下を設定

Installation Destination(インストール先)

ここが重要です。

  1. ディスク一覧が出る
  2. インストール先ディスクにチェックを入れる

通常:

  • sda → 仮想ディスク1本目
  • sdb → 2本目

もし迷ったら「容量」で判断します。

例:

  • 40GB → OS用ならこれ
  • 1TB → データディスクなので違う

パーティション

おすすめ:

Automatic(自動)

最初はこれ。

以前「手動」で失敗していたので、まず成功優先が良いです。

もし前回の残骸でエラーになるなら:

Reclaim space → 全削除

を実施。

3. よくある失敗(あなたの状況っぽい)

ケース1:sda/sdbが分からない

インストーラの「Installation Destination」でディスクサイズを見る。

たとえば

  • vda 40GB
  • sdb 500GB

なら OSは40GB側。

virtioの場合は sda ではなく vda になることもあります。

ケース2:前回インストール失敗の残骸

KVM側で既存ディスクを使い回していると、古いLVMやパーティションが残ります。

対策:

インストーラで

Installation Destination

Reclaim Space

全部削除

またはシェルで初期化:

wipefs -a /dev/sda

(virtioなら /dev/vda

ケース3:KVMディスクが見えない

KVM設定でディスクバスが変

IDE/SATAではなく

VirtIO

にする。

4. インストール後

最初に実施:

dnf update -y

エラーになった。

[root@kvm01 ~]# dnf update -y
CentOS-8 - AppStream 0.0 B/s | 0 B 00:00
Errors during downloading metadata for repository 'AppStream':

Curl error (6): Couldn't resolve host name for http://mirrorlist.centos.org/?release=8&arch=x86_64&repo=AppStream&infra=stock [Could not resolve host: mirrorlist.centos.org]
エラー: Failed to download metadata for repo 'AppStream': Cannot prepare internal mirrorlist: Curl error (6): Couldn't resolve host name for http://mirrorlist.centos.org/?release=8&arch=x86_64&repo=AppStream&infra=stock [Could not resolve host: mirrorlist.centos.org]
[root@kvm01 ~]#

CentOS 8 の標準 mirrorlist が終了(EOL)している

mirrorlist.centos.org を見に行こうとして失敗しています。

そのため、repo を Vault に変更します。

1. repoバックアップ

mkdir -p /root/repo_bk
cp -a /etc/yum.repos.d/*.repo /root/repo_bk/

2. repoをVaultへ変更

まず確認:

grep -r mirrorlist /etc/yum.repos.d/

次に置換:

sed -i 's/^mirrorlist=/#mirrorlist=/g' /etc/yum.repos.d/CentOS-*.repo
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*.repo

3. repo確認

grep -E "mirrorlist|baseurl" /etc/yum.repos.d/CentOS-*.repo

mirrorlist= がコメントアウトされ、

baseurl=http://vault.centos.org

になっていればOK。

4. キャッシュ作り直し

dnf clean all
rm -rf /var/cache/dnf
dnf makecache

5. 更新

dnf update -y

うまくいけば、今度は AppStreamBaseOS のメタデータ取得が始まります。

(CentOS 8.2 はKVMホスト用途だと、ここを越えればあとはKVMパッケージ導入まで進めます)

KVMゲストツール:

dnf install qemu-guest-agent -y
systemctl enable --now qemu-guest-agent

もし今の状態(エラー画面)があるなら、そのスクショを貼ってください。
「continue後に止まる」「sda/sdbで迷う」なら、ほぼ原因を特定できます。

centos 8.2上にKVMサーバを構築したい

了解です。
CentOS 8.2 をKVMホスト(仮想化サーバ)にする」手順ですね。
最短で動く構成を、実運用寄りで書きます。

※CentOS 8.2 はEOLですが、既存環境合わせ前提で説明します。

構成イメージ

CentOS 8.2 (ホスト)
├─ KVM
├─ libvirt
├─ virt-install
├─ bridge(br0)
└─ 仮想マシン
├─ Windows Server
├─ Linux
└─ etc

1. CPUが仮想化対応か確認

まず確認。

egrep -c '(vmx|svm)' /proc/cpuinfo

結果:

  • 0 → BIOSで仮想化無効
  • 1以上 → OK

IntelならVT-x、AMDならAMD-Vです。

詳細:

lscpu | grep Virtualization

例:

Virtualization: VT-x

2. パッケージインストール

以下を実行。

dnf update -y

dnf groupinstall "Virtualization Host" -y

dnf install virt-install libvirt virt-manager cockpit-machines bridge-utils -y

インストール確認:

rpm -qa | grep qemu

3. libvirtd起動

KVMサービス起動。

systemctl enable --now libvirtd
systemctl status libvirtd

状態が

active (running)

ならOK。

自動起動確認:

virsh list --all

エラーが出なければ良いです。

4. KVMモジュール確認

Intel:

lsmod | grep kvm

例:

kvm_intel
kvm

AMD:

kvm_amd
kvm

5. ブリッジ設定(重要)

仮想マシンを普通のLANに出すなら bridge を作ります。

今のNIC確認:

nmcli con show

例えばNICが ens160 の場合。

br0作成

nmcli con add ifname br0 type bridge con-name br0
nmcli con add type bridge-slave ifname ens160 master br0

IP移行(例 DHCP)

nmcli con mod br0 ipv4.method auto

固定IPなら:

nmcli con mod br0 ipv4.addresses 192.168.1.10/24
nmcli con mod br0 ipv4.gateway 192.168.1.1
nmcli con mod br0 ipv4.dns "8.8.8.8"
nmcli con mod br0 ipv4.method manual

旧NIC設定OFF:

nmcli con down ens160
nmcli con up br0

確認:

ip a

br0 にIPがついていればOK。

NetworkManager設定例

6. 仮想マシン格納先

容量あるディスク推奨。

例:

mkdir -p /kvm/images

pool登録:

virsh pool-define-as kvmimages dir - - - - "/kvm/images"
virsh pool-build kvmimages
virsh pool-start kvmimages
virsh pool-autostart kvmimages

確認:

virsh pool-list

7. VM作成例(CLI)

ISOを置く:

mkdir /iso

例:

virt-install \
--name centos82 \
--ram 8192 \
--vcpus 4 \
--disk path=/kvm/images/centos82.qcow2,size=80 \
--os-variant centos8 \
--network bridge=br0 \
--graphics vnc \
--cdrom /iso/CentOS-8.2.iso

8. 管理

一覧:

virsh list --all

起動:

virsh start centos82

停止:

virsh shutdown centos82

コンソール:

virsh console centos82

9. Web GUI(便利)

Cockpit有効化。

systemctl enable --now cockpit.socket
firewall-cmd --add-service=cockpit --permanent
firewall-cmd --reload

ブラウザで:

https://サーバIP:9090

からVM管理できます。

最初にやるならおすすめは:

  1. KVM導入
  2. bridge(br0)作成
  3. CockpitでVM作成

です。
今のCentOS 8.2サーバは「GUIあり」ですか?「最小構成(CLIのみ)」ですか? それで手順少し変わります。

コメント

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