第3章 仮想マシンの作成
RHEL 10 で仮想マシン (VM) を作成するには、コマンドラインまたは RHEL 10 Web コンソールを使用できます。
3.1. コマンドラインを使用した仮想マシンの作成 リンクのコピーリンクがクリップボードにコピーされました!
virt-install ユーティリティーを使用して、RHEL 10 ホスト上に仮想マシン (VM) を作成できます。
前提条件
- ホストシステムで仮想化が 有効になっている。
- ディスク領域、RAM、CPU など、仮想マシンに割り当てるのに十分なシステムリソースがある。推奨される値は、仮想マシンで行うタスクやワークロードにより大きく異なる可能性がある。
オペレーティングシステム (OS) のインストールソースがローカルまたはネットワークで利用できる。これには、次のいずれかを使用できます。
- インストールメディアの ISO イメージ
既存の仮想マシンインストールのディスクイメージ
警告RHEL 10 では、ホストの CD-ROM または DVD-ROM デバイスからインストールすることはできません。RHEL 10 で使用可能な仮想マシンインストール方法を使用するときに、インストールソースとして CD-ROM または DVD-ROM を選択すると、インストールが失敗します。詳細は Red Hat ナレッジベース を参照してください。
また、Red Hat がサポートするのは、一部のゲストオペレーティングシステム のみであることに注意してください。
-
libvirt の
system接続を使用する仮想マシンを作成するには、root 特権を持っているか、ホスト上のlibvirtユーザーグループに属している必要があります。詳細は、仮想化のユーザー空間接続タイプ を参照してください。 - 任意: インストールをより速く、簡単に設定するために、キックスタートファイルを利用できます。
手順
仮想マシンを作成して OS のインストールを開始するには、以下の必須引数を指定して、
virt-installコマンドを使用します。--name- 新しいマシンの名前
--memory- 割り当てるメモリーの量
--vcpus- 割り当てる仮想 CPU の数
--disk- 割り当てるストレージの種類とサイズ
--cdromまたは--location- OS インストールソースの種類と場所
--osinfoインストールする OS の種類とバージョン
注記--osinfo引数に使用可能なすべての値をリスト表示するには、virt-install --osinfo listコマンドを実行します。osinfo-query osコマンドを実行して詳細を参照することもできます。ただし、先にlibosinfo-binパッケージをインストールする必要がある場合があります。選択したインストール方法に応じて、必要なオプションと値が異なります。詳細は、次の例を参照してください。
仮想マシンを作成し、ローカルの ISO ファイルから OS をインストールする:
次のコマンドは、demo-guest1 という名前の仮想マシンを作成し、ローカルの /home/username/Downloads/Win10install.iso ファイルに保存されている ISO イメージから、Windows 10 OS をインストールします。この仮想マシンには、2048 MiB の RAM と 2 つの vCPU が割り当てられ、80 GiB の qcow2 仮想ディスクも自動的に割り当てられます。
virt-install \ --name demo-guest1 --memory 2048 \ --vcpus 2 --disk size=80 --osinfo win10 \ --cdrom /home/username/Downloads/Win10install.iso# virt-install \ --name demo-guest1 --memory 2048 \ --vcpus 2 --disk size=80 --osinfo win10 \ --cdrom /home/username/Downloads/Win10install.isoCopy to Clipboard Copied! Toggle word wrap Toggle overflow
仮想マシンを作成し、ライブ CD から OS をインストールして、永続ディスクは作成しない:
次のコマンドは、demo-guest2 という名前の仮想マシンを作成し、/home/username/Downloads/rhel10.iso イメージを使用して、ライブ CD から RHEL 10 OS を実行します。この仮想マシンにはディスク領域が割り当てられないため、セッション中に行った変更は保持されません。また、仮想マシンには、4096 MiB の RAM と、4 つの vCPU が割り当てられます。
virt-install \ --name demo-guest2 --memory 4096 --vcpus 4 \ --disk none --livecd --osinfo rhel10.0 \ --cdrom /home/username/Downloads/rhel10.iso# virt-install \ --name demo-guest2 --memory 4096 --vcpus 4 \ --disk none --livecd --osinfo rhel10.0 \ --cdrom /home/username/Downloads/rhel10.isoCopy to Clipboard Copied! Toggle word wrap Toggle overflow
仮想マシンを作成し、既存のディスクイメージをインポートする:
次のコマンドは、demo-guest3 という名前の RHEL 10 仮想マシンを作成し、既存のディスクイメージ /home/username/backup/disk.qcow2 に接続します。これは、マシン間でハードドライブを物理的に移動するのと似ています。したがって、demo-guest3 で使用できる OS およびデータは、イメージが処理された方法により決定します。また、仮想マシンには、2048 MiB の RAM および 2 つの vCPU が割り当てられます。
virt-install \ --name demo-guest3 --memory 2048 --vcpus 2 \ --osinfo rhel10.0 --import \ --disk /home/username/backup/disk.qcow2# virt-install \ --name demo-guest3 --memory 2048 --vcpus 2 \ --osinfo rhel10.0 --import \ --disk /home/username/backup/disk.qcow2Copy to Clipboard Copied! Toggle word wrap Toggle overflow ディスクイメージをインポートする場合、
--osinfoオプションを使用する必要があることに注意してください。このオプションを指定しないと、作成された仮想マシンのパフォーマンスに影響を及ぼします。
仮想マシンを作成し、リモート URL から OS をインストールする:
次のコマンドは、demo-guest4 という名前の仮想マシンを作成し、URL
http://example.com/OS-installからインストールします。インストールを開始するには、作業中の OS インストールツリーを URL に指定する必要があります。さらに、OS は、キックスタートファイル /home/username/ks.cfg で自動的に設定されます。この仮想マシンには、2048 MiB の RAM、2 つの vCPU、および 160 GiB の qcow2 仮想ディスクも割り当てられます。virt-install \ --name demo-guest4 --memory 2048 --vcpus 2 --disk size=160 \ --osinfo rhel10.0 --location http://example.com/OS-install \ --initrd-inject /home/username/ks.cfg --extra-args="inst.ks=file:/ks.cfg console=tty0 console=ttyS0,115200n8"# virt-install \ --name demo-guest4 --memory 2048 --vcpus 2 --disk size=160 \ --osinfo rhel10.0 --location http://example.com/OS-install \ --initrd-inject /home/username/ks.cfg --extra-args="inst.ks=file:/ks.cfg console=tty0 console=ttyS0,115200n8"Copy to Clipboard Copied! Toggle word wrap Toggle overflow さらに、ARM 64 ホスト上の RHEL 10 で demo-guest4 をホストする場合は、キックスタートファイルによって
kernel-64kパッケージが確実にインストールされるように、次の行を追加します。%packages -kernel kernel-64k %end
%packages -kernel kernel-64k %endCopy to Clipboard Copied! Toggle word wrap Toggle overflow
仮想マシンを作成し、テキストのみのモードで OS をインストールする:
次のコマンドは、demo-guest5 という名前の仮想マシンを作成し、グラフィックスがない、テキストのみのモードである
RHEL10.isoイメージファイルからインストールします。ゲストコンソールをシリアルコンソールに接続します。仮想マシンには、16384 MiB のメモリー、16 個の vCPU、および 280 GiB のディスクが割り当てられます。このようなインストールは、低速なネットワークリンクを介してホストに接続する際に便利です。virt-install \ --name demo-guest5 --memory 16384 --vcpus 16 --disk size=280 \ --osinfo rhel10.0 --location RHEL10.iso \ --graphics none --extra-args='console=ttyS0'# virt-install \ --name demo-guest5 --memory 16384 --vcpus 16 --disk size=280 \ --osinfo rhel10.0 --location RHEL10.iso \ --graphics none --extra-args='console=ttyS0'Copy to Clipboard Copied! Toggle word wrap Toggle overflow
仮想マシンを作成し、グラフィカルモードで OS をインストールする:
次のコマンドは、demo-guest-6 という名前の仮想マシンを作成します。この仮想マシンは demo-guest5 と同じ設定ですが、ネットワーク用にホストデバイス
pci_0003_00_00_0を提供し、グラフィカルインストール用にグラフィックスを設定します。virt-install \ --name demo-guest6 --memory 16384 --vcpus 16 --disk size=280 \ --os-info rhel10.0 --location RHEL10.iso --graphics vnc,listen=0.0.0.0,5901 \ --input keyboard,bus=virtio --input mouse,bus=virtio \ --hostdev pci_0003_00_00_0 --network none# virt-install \ --name demo-guest6 --memory 16384 --vcpus 16 --disk size=280 \ --os-info rhel10.0 --location RHEL10.iso --graphics vnc,listen=0.0.0.0,5901 \ --input keyboard,bus=virtio --input mouse,bus=virtio \ --hostdev pci_0003_00_00_0 --network noneCopy to Clipboard Copied! Toggle word wrap Toggle overflow なお、インストールに使用できるホストデバイスの名前は、
virsh nodedev-list --cap pciコマンドを使用して取得できます。インストール GUI を使用するには、インストールの開始時に、任意の VNC ビューアーを VNC ポート 5901 でホストの IP に接続できます。ただし、先にファイアウォールでこのポートを開く必要がある場合があります。次に例を示します。firewall-cmd --add-port 5901/tcp
# firewall-cmd --add-port 5901/tcpCopy to Clipboard Copied! Toggle word wrap Toggle overflow
リモートホストに仮想マシンを作成します。
次のコマンドは、demo-guest7 という名前の仮想マシンを作成します。この仮想マシンは demo-guest5 と同じ設定ですが、リモートホスト 192.0.2.1 上に配置されます。
virt-install \ --connect qemu+ssh://root@192.0.2.1/system --name demo-guest7 --memory 16384 \ --vcpus 16 --disk size=280 --osinfo rhel10.0 --location RHEL10.iso \ --graphics none --extra-args='console=ttyS0'# virt-install \ --connect qemu+ssh://root@192.0.2.1/system --name demo-guest7 --memory 16384 \ --vcpus 16 --disk size=280 --osinfo rhel10.0 --location RHEL10.iso \ --graphics none --extra-args='console=ttyS0'Copy to Clipboard Copied! Toggle word wrap Toggle overflow
リモートホストに仮想マシンを作成し、DASD 仲介デバイスをストレージとして使用する:
次のコマンドは、demo-guest-8 という名前の仮想マシンを作成します。この仮想マシンは demo-guest5 と同じ設定ですが、ストレージには DASD 仲介デバイス
mdev_30820a6f_b1a5_4503_91ca_0c10ba12345a_0_0_29a8を使用し、デバイス番号1111を割り当てる点が異なります。virt-install \ --name demo-guest8 --memory 16384 --vcpus 16 --disk size=280 \ --osinfo rhel10.0 --location RHEL10.iso --graphics none \ --disk none --hostdev mdev_30820a6f_b1a5_4503_91ca_0c10ba12345a_0_0_29a8,address.type=ccw,address.cssid=0xfe,address.ssid=0x0,address.devno=0x1111,boot-order=1 \ --extra-args 'rd.dasd=0.0.1111'# virt-install \ --name demo-guest8 --memory 16384 --vcpus 16 --disk size=280 \ --osinfo rhel10.0 --location RHEL10.iso --graphics none \ --disk none --hostdev mdev_30820a6f_b1a5_4503_91ca_0c10ba12345a_0_0_29a8,address.type=ccw,address.cssid=0xfe,address.ssid=0x0,address.devno=0x1111,boot-order=1 \ --extra-args 'rd.dasd=0.0.1111'Copy to Clipboard Copied! Toggle word wrap Toggle overflow インストールに利用可能な仲介デバイスの名前は、
virsh nodedev-list --cap mdevコマンドを使用して取得できることに注意してください。
-
virt-installコマンドの追加オプションと例は、システム上のvirt-install(1)man ページを参照してください。
検証
- 仮想マシンが問題なく作成されると、仮想マシンのグラフィカルコンソールで virt-viewer 画面が開き、ゲスト OS のインストールが開始します。
トラブルシューティング
virt-installがcannot find default networkエラーを出力する場合は、以下のようにします。libvirt-daemon-config-networkパッケージがインストールされていることを確認します。dnf info libvirt-daemon-config-network Installed Packages Name : libvirt-daemon-config-network [...]
# dnf info libvirt-daemon-config-network Installed Packages Name : libvirt-daemon-config-network [...]Copy to Clipboard Copied! Toggle word wrap Toggle overflow libvirtのデフォルトネットワークがアクティブで、自動的に起動するように設定されていることを確認します。virsh net-list --all Name State Autostart Persistent -------------------------------------------- default active yes yes
# virsh net-list --all Name State Autostart Persistent -------------------------------------------- default active yes yesCopy to Clipboard Copied! Toggle word wrap Toggle overflow そうでない場合は、デフォルトのネットワークをアクティブにし、自動起動に設定します。
virsh net-autostart default Network default marked as autostarted virsh net-start default Network default started
# virsh net-autostart default Network default marked as autostarted # virsh net-start default Network default startedCopy to Clipboard Copied! Toggle word wrap Toggle overflow デフォルトのネットワークをアクティベートしても以下のエラーが出て失敗する場合は、
libvirt-daemon-config-networkパッケージが正常にインストールされていません。error: failed to get network 'default' error: Network not found: no network with matching name 'default'
error: failed to get network 'default' error: Network not found: no network with matching name 'default'Copy to Clipboard Copied! Toggle word wrap Toggle overflow この問題を修正するには、以下のコマンドで
libvirt-daemon-config-networkを再インストールします。dnf reinstall libvirt-daemon-config-network
# dnf reinstall libvirt-daemon-config-networkCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のようなエラーでデフォルトのネットワークをアクティベートできない場合には、デフォルトネットワークのサブネットとホストの既存インターフェイスで競合が発生しています。
error: Failed to start network default error: internal error: Network is already in use by interface ens2
error: Failed to start network default error: internal error: Network is already in use by interface ens2Copy to Clipboard Copied! Toggle word wrap Toggle overflow これを修正するには、
virsh net-edit defaultコマンドを使用して、設定の192.0.2.*の値を、ホストで使用していないサブネットに変更します。