KVMは、カーネルベースの仮想マシンを指します。これは、複数のLinuxまたはウィンドウベースの分離されたゲストを、独自のOSおよび仮想専用ハードウェアとともに実行するのに役立ちます。 KVMを実行するには、システムがAMD-VやIntel-VTなどのハードウェア仮想化拡張機能と互換性がある必要があります。
VMテンプレートは、特定の仮想マシン構成とゲストOSを含む仮想マシンのコピーです。同じインスタンスの複数のVMをデプロイする必要がある場合は、テンプレートを使用して仮想マシンを作成すると便利です。これは、時間とストレージの節約に大きな役割を果たします。
このチュートリアルでは、KVM上の既存のVMからVMテンプレートを作成する方法を示します。この記事では、KVMのインストールとLinuxOSテンプレートの作成はUbuntu20.04システムで行われます。プロセスを続行する前に、KVMがインストールされたシステムを準備するように事前に要求されます。
KVM仮想マシンの作成
まず、libvirtdデーモンがシステムで実行されていることを確認します。そうでない場合は、systemctlコマンドを使用してデーモンを起動して有効にします。
$ sudo systemctl start libvirtd
$ sudo systemctl enable libvirtd
libvirtdデーモンのステータスを確認しています
$ sudo systemctl status libvirtd
現在のシステムがUbuntu/Debianの場合は、次のコマンドを使用してvhost-netカーネルモジュールを有効にします。
$ sudo modprobe vhost_net
テンプレートを作成するには、最初にシステムにインストールインスタンスを用意する必要がありました。以下のqemu-imgコマンドを使用して、15 G centos8KVMイメージを作成します。
$ sudo qemu-img create -o preallocation=metadata -f qcow2 /var/lib/libvirt/images/centos8.qcow2 15G
次に、下記のvirt-installコマンドを使用して仮想マシンを作成します。ゲストOSにはCentOS8を使用しますが、他のディストリビューションを使用することもできます。インストールするOS(/home/janak/Downloads/CentOS-8.4.2105-x86_64-boot.iso)を含むISOイメージへのパスを、インストールするOSのパスと一致するように調整するように注意してください。 VM内。
$ sudo virt-install --virt-type kvm --name centos8 --ram 2048 \ --disk /var/lib/libvirt/images/centos8.qcow2,format=qcow2 \ --network network=default \ --graphics vnc,listen=0.0.0.0 --noautoconsole \ --os-type=linux --os-variant=rhel7.0 \ --cdrom=/home/janak/Downloads/CentOS-8.4.2105-x86_64-boot.iso
上記のコマンドで、–cdromオプションのパラメーターをダウンロードしたcentosisoイメージに置き換えます。次に、コマンドはKVMにVMをインストールして実行するため、virt-managerを使用してKVMを開きます。
$ sudo virt-manager
KVMを開くと、VMが実行状態になっていることがわかります。そのため、VMを開くと、システムが起動プロセスを開始し、centosの次の初期設定ページが表示されます。次に、セットアッププロセスを実行し、セットアップを完了します。
KVMでの仮想マシンテンプレートの作成
セットアップが完了したら、システムにログインし、システムを更新して、すべての基本パッケージと必要なパッケージをインストールします。
システムリポジトリのパッケージ情報を更新するには、次を使用します。
$ sudo yum update -y
必要と思われる基本的なパッケージをいくつかインストールします。私の場合、次のパッケージをインストールしました。
$ sudo yum install curl epel-release unzip telnet wget -y
次に、zeroconfルートを無効にします。 Zeroconfは、2台のコンピューター間で通信し、それらが互いのリソースを共有できるようにするネットワーク方式です。インターネットプロトコル(IP)を使用して、2台のコンピューター間の通信を確立します。
$ echo "NOZEROCONF=yes" | sudo tee -a /etc/sysconfig/network
次に、仮想マシンの電源を切り、さらに処理を続行します。
$ sudo poweroff
通常のターミナルで、次のvirt-sysprepコマンドを実行してインスタンスをクリーンアップします。 virt-sysprepは、VMをクローン可能にするためにVMを再構成またはリセットするためのコマンドラインユーティリティです。
$ sudo virt-sysprep -d centos8
コマンドでは、centos8はインストールVMの名前を参照しているため、別のVM名がある場合は、VM名に置き換えます。システムにvirt-sysprepがインストールされていない場合は、以下のコマンドを使用してインストールできます。
$ sudo apt update
$ sudo apt install libguestfs-tools
最後に、次のvirsh undefined domainコマンドを実行して、ゲスト仮想マシンの構成を削除します。
$ sudo virsh undefine centos8
おめでとうございます。テンプレートが作成されました。これで、その複数のインスタンスのクローンを作成してデプロイできます。
結論
この記事を読んでいただきありがとうございます。この記事では、仮想マシンを作成し、仮想マシンの複数のインスタンスを作成してデプロイするためのテンプレートを作成する方法を学びます。