ノート:
- このチュートリアルは、Oracle提供の無料ラボ環境で提供されています。
- Oracle Cloud Infrastructureの資格証明、テナンシおよびコンパートメントの値の例を使用します。演習を完了するときは、これらの値をクラウド環境に固有の値に置き換えます。
Oracle LinuxでKVMを使用してVMを作成
イントロダクション
カーネルベースの仮想マシン(KVM)は、オープンソースのtype-1 (ベアメタル)ハイパーバイザです。この機能により、Oracle Linux 8などのホストシステムが、サポートされるハードウェア上で実行するときに複数の仮想マシン(VM)またはゲストをホストできます。
このチュートリアルでは、Oracle Linux Kernel Virtualization Manager (KVM)をデプロイして仮想マシンを作成します。
目的
- KVMのデプロイ
- 仮想マシン用のCockpitのデプロイ
- ISOからの仮想マシンの作成
- Oracle Cloudイメージを使用した仮想マシンの作成
前提条件
次の構成を持つ任意の Oracle Linux 8以降のシステム:
- sudo権限を持つroot以外のユーザー
仮想化をサポートする環境の検証
ノート: 無料ラボ環境を使用する場合、接続およびその他の使用手順については、Oracle Linux Labの基本を参照してください。
-
まだ接続していない場合は、端末を開き、ssh経由でインスタンスに接続します。
ssh oracle@<ip_address_of_instance>
-
次のコマンドを実行して、CPUタイプを確認します。
grep -e 'vendor_id' /proc/cpuinfo
出力例:
[oracle@ol-node01 ~]$ grep -e 'vendor_id' /proc/cpuinfo vendor_id : GenuineIntel vendor_id : GenuineIntel vendor_id : GenuineIntel vendor_id : GenuineIntel vendor_id : GenuineIntel vendor_id : GenuineIntel
このシステムは、GenuineIntelの出力で示される Intelベースです。
-
Intelシステムの場合は、次のコマンドを入力します。
grep -e 'vmx' /proc/cpuinfo
コマンド出力にvmxフラグが存在することは、このシステムが仮想化をサポートしていることを示しています。
-
ロードされたKVMモジュールを確認します。
lsmod | grep kvm
出力例:
[oracle@ol-node01 ~]$ lsmod |grep kvm kvm_intel 262144 0 kvm 696320 1 kvm_intel irqbypass 16384 1 kvm
出力には、このシステムのハードウェアに基づくKVMカーネルモジュールと kvm_intelプロセッサモジュールが表示されます。これらのモジュールは、最新のLinuxシステムにデフォルトでロードする必要があります。
KVMのインストールと起動
-
Oracle Linux仮想化モジュールに関連付けられたソフトウェアパッケージをインストールします。
sudo dnf module install virt -y
このコマンドは、libvirt、qemu- kvm、およびその他の依存関係を含む仮想化パッケージのコレクションをインストールします。
-
virt-install
およびvirt-viewer
をインストールします。sudo dnf install virt-install virt-viewer -y
これで、必要なパッケージセットのインストールが完了します。
-
ホスト・マシンが準備でき、libvirt VMを実行するように設定されていることを確認します。
virt-host-validate
出力例:
[oracle@ol-node01 ~]$ virt-host-validate QEMU: Checking for hardware virtualization : PASS QEMU: Checking if device /dev/kvm exists : PASS QEMU: Checking if device /dev/kvm is accessible : PASS QEMU: Checking if device /dev/vhost-net exists : PASS QEMU: Checking if device /dev/net/tun exists : PASS QEMU: Checking for cgroup 'cpu' controller support : PASS QEMU: Checking for cgroup 'cpuacct' controller support : PASS QEMU: Checking for cgroup 'cpuset' controller support : PASS QEMU: Checking for cgroup 'memory' controller support : PASS QEMU: Checking for cgroup 'devices' controller support : PASS QEMU: Checking for cgroup 'blkio' controller support : PASS QEMU: Checking for device assignment IOMMU support : WARN (No ACPI DMAR table found, IOMMU either disabled in BIOS or not supported by this hardware platform) QEMU: Checking for secure guest support : WARN (Unknown if this platform has Secure Guest support)
すべてがPASSをチェックすると、システムは作成されたVM用に準備されます。失敗をチェックする場合は、手順に従って問題を修正します。いずれかのチェックがWARNの値を返した場合は、指示に従って仮想化機能を改善することを検討してください。
-
libvirtd
デーモンを起動し、各ブート時に自動的に起動されるようにします。次に、ステータスをチェックして稼働中であることを確認します。sudo systemctl enable --now libvirtd.service sudo systemctl status libvirtd.service
出力例:
[oracle@ol-node01 ~]$ sudo systemctl enable --now libvirtd.service [oracle@ol-node01 ~]$ sudo systemctl status libvirtd.service * libvirtd.service - Virtualization daemon Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled; vendor pr> Active: active (running) since Mon 2022-06-13 21:28:19 GMT; 8s ago Docs: man:libvirtd(8) https://libvirt.org ...
出力は、サービスが有効で動作していることを示します。
Oracle LinuxでKVMを管理するためのCockpit Webコンソールの設定
-
Libvirtに基づいてVMを管理するためのcckpit- machines拡張をインストールします。
sudo dnf install cockpit cockpit-machines –y
-
コックピットソケットを起動し、システムブート時に自動起動できるようにします。
sudo systemctl enable --now cockpit.socket sudo systemctl status cockpit.socket
出力例:
[oracle@ol-node01 ~]$ sudo systemctl enable --now cockpit.socket Created symlink /etc/systemd/system/sockets.target.wants/cockpit.socket -> /usr/lib/systemd/system/cockpit.socket. [oracle@ol-node01 ~]$ sudo systemctl status cockpit.socket * cockpit.socket - Cockpit Web Service Socket Loaded: loaded (/usr/lib/systemd/system/cockpit.socket; enabled; vendor pres> Active: active (listening) since Mon 2022-06-13 21:39:24 GMT; 10s ago Docs: man:cockpit-ws(8) Listen: [::]:9090 (Stream) ...
出力は、サービスが有効でリスニング中であることを示します。
-
このサイトにリモートでアクセスするには、cockpitサービスのファイアウォールポートを有効にし、ファイアウォール構成を再ロードして新しい変更を適用します。
sudo firewall-cmd --add-service=cockpit --permanent sudo firewall-cmd --reload
ノート: lunaboxデスクトップの2番目の端末からこの次のコマンドを実行してください。
-
lunaboxデスクトップで2番目の端末を開き、次のコマンドを入力して、sshを使用してCockpitのローカルポートフォワードを作成します。
ssh -L 9090:localhost:9090 oracle@<instance_ip_address>
-
デスクトップでWebブラウザを開き、https://localhost:9090を参照します。
Cockpit Webコンソールは、自己署名証明書を使用してHTTPSを有効にします。
「Advanced」をクリックし、ブラウザから警告が表示されたら接続を受け入れます。
-
パスワードが
oracle
のoracle
ユーザーとしてログインします。コックピット・ダッシュボードが表示されます。
-
「アクセス制限」ボタンをクリックして、管理権限を取得します。
-
管理アクセス・ウィンドウを閉じます。
ISOからの仮想マシンの作成
-
左側のナビゲーション・パネルで「仮想マシン」オプションをクリックします。
-
「Create VM」ボタンをクリックします。
-
次の情報を入力します。
Name: OL-demo Connection: System Installation type: URL (ISO image or distro install tree) Installation source: https://yum.oracle.com/ISOS/OracleLinux/OL8/u6/x86_64/OracleLinux-R8-U6-x86_64-dvd.iso Operating system: Oracle Linux 8.6 Storage: Create new volume Size: 20 GiB Memory: 16 GiB Immediately start VM: check
-
「作成」をクリックして開始します。
-
「仮想マシン」のリストから、「OL- demo」リンクをクリックします。
-
下にスクロールしてVNCコンソールを表示します。
十分な速さがある場合は、Oracle Linuxのインストールまたはこのメディアのテストとインストールのオプションを含むメニューが表示されます。「テスト」オプションは、数秒後にデフォルトで選択されます。インストーラは、メディア上のコンテンツが有効であることを確認してから、インストーラを起動します。
-
インストーラがブートすると、「Welcome to Oracle Linux」画面が表示されます。インストール・プロセスの言語を選択してインストールを開始します。
この演習は、インストール・プロセスを続行しません。
ノート: このビデオ・リンクでOracle Linuxのインストール・プロセスを示す無料ビデオを視聴できます: Oracle Linux 8のインストール
-
ウィンドウの右上にある「X」をクリックして、Webブラウザを閉じます。
Oracle Cloudイメージを使用した仮想マシンの作成
ノート: クラウド・インスタンス(ol-node01)端末ウィンドウから次のコマンドを入力してください。
-
KVMイメージの格納場所に変更します。
cd /var/lib/libvirt/images
-
Oracle Linux VMテンプレートをダウンロードします。
sudo curl -O https://yum.oracle.com/templates/OracleLinux/OL8/u6/x86_64/OL8U6_x86_64-kvm-b126.qcow
-
メタデータ・ファイルを作成します。
cat << 'EOF' | sudo tee ~/meta-data > /dev/null instance-id: iid-local01 local-hostname: vm-01 EOF
-
ユーザーデータ・ファイルを作成します。
cat << 'EOF' | sudo tee ~/user-data > /dev/null #cloud-config system_info: default_user: name: opc ssh_authorized_keys: - <paste_public_key_here> EOF
-
SSHキー・ペアの生成
ssh-keygen -t rsa -b 4096
Enter
を押して、各デフォルトを受け入れます。キー・ペアは、ユーザー・ホームの.ssh
ディレクトリに書き込まれます。 -
公開鍵をuser- dataファイルにコピーします。
SSHKEY=$(cat ~/.ssh/id_rsa.pub) sed -i "s|<paste_public_key_here>|${SSHKEY}|g" ~/user-data
-
ISOイメージを生成します。
sudo genisoimage -output /var/lib/libvirt/images/vm-01.iso -volid cidata -joliet -rock ~/user-data ~/meta-data
-
インスタンスを作成します。
sudo cp /var/lib/libvirt/images/OL8U6_x86_64-kvm-b126.qcow /var/lib/libvirt/images/vm-01.qcow sudo virt-install --name vm-01 \ --memory 2048 \ --vcpus 2 \ --disk /var/lib/libvirt/images/vm-01.qcow,device=disk,bus=virtio \ --disk /var/lib/libvirt/images/vm-01.iso,device=cdrom \ --os-type linux --os-variant ol8.6 \ --virt-type kvm --graphics none \ --network network=default,model=virtio \ --noautoconsole \ --import
-
VMをリストします。
sudo virsh list
-
vm-01
仮想マシンのIPアドレスを取得します。sudo virsh net-dhcp-leases --network default
ノート: 仮想マシンの起動速度によっては、IPアドレスを表示するためにコマンドを再度実行する必要がある場合があります。
-
または、MACアドレスに基づいてフィルタできます。
sudo virsh domiflist vm-01
-
前の出力からMACアドレスをコピーし、次のコマンドで指定します。
sudo virsh net-dhcp-leases --network default --mac <MAC_address>
-
ssh
に接続して、仮想マシンが動作していることを確認します。ssh opc@<vm-01-ip_address>
出力例:
[oracle@ol-node01 images]$ ssh opc@192.168.122.46 The authenticity of host '192.168.122.46 (192.168.122.46)' can't be established. ECDSA key fingerprint is SHA256:xcuVfQdoFDCC72i7plD0OfqDTSBG6QWhOm5ti4HIKEs. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes Warning: Permanently added '192.168.122.46' (ECDSA) to the list of known hosts. [opc@vm-01 ~]$ uname -a Linux vm-01 5.4.17-2136.307.3.1.el8uek.x86_64 #2 SMP Mon May 9 17:29:47 PDT 2022 x86_64 x86_64 x86_64 GNU/Linux
[オプション] CockpitダッシュボードからVMを表示
ノート: lunaboxデスクトップの端末からこの次のコマンドを実行してください。
-
lunabox Desktop端末ウィンドウから次のコマンドを入力して、sshを使用してCockpitのローカルポートフォワードを作成します。
ssh -L 9090:localhost:9090 oracle@<instance_ip_address>
-
デスクトップでWebブラウザを開き、https://localhost:9090を参照します。
-
パスワードが
oracle
のoracle
ユーザーとしてログインします。コックピット・ダッシュボードが表示されます。
-
必要に応じて、「アクセス制限」ボタンをクリックして管理権限を取得します。
-
左側のナビゲーション・パネルで「仮想マシン」オプションをクリックします。
-
仮想マシンのリストから、vm-01リンクをクリックします。
-
必要に応じて、「概要」セクション、「ディスク」セクション、ネットワーク・インタフェースなどを確認します。
ノート:
vm-01
仮想マシンがvirt-install
の--graphical none
オプションを使用して作成されたため、コンソールはCockpit内でアクティブではありません。
これで、この演習は終了です。
詳細情報:
その他の学習リソース
他のラボをdocs.oracle.com/learnで探すか、Oracle Learning YouTubeチャネルでより無料の学習コンテンツにアクセスします。また、education.oracle.com/learning-explorerにアクセスしてOracle Learning Explorerになります。
製品のドキュメントは、Oracle Help Centerを参照してください。
Create VMs with KVM on Oracle Linux
F58830-01
June 2022
Copyright © 2022, Oracle and/or its affiliates.