Deploy and Configure Virtual Appliance in KVM
Kernel-based Virtual Machine (KVM) uses Linux as a hypervisor to run virtual machines. For more information, see What is KVM?.
Download the QCOW2 image from the Virtual Appliance tab in the Downloads portal, and verify that the file has execute permissions.
You can deploy the Virtual Appliance using the QCOW2 image. Splunk AppDynamics recommends you to use the custom scripts that are available in Splunk AppDynamics GitHub repository. This deployment requires three KVM hypervisors and runs single virtual machine in each hypervisors.
Before you run these scripts, ensure to update or verify the configuration details in config.cfg such as tags, deployment configuration, and IP addresses.
chmod 744 ~/<folder path or filename>
前提条件
仮想アプライアンスを展開する前に、次のことを確認します。
- ハイパーバイザ間で時間を同期できるように NTPサービスを有効にしている。
CODE
$ timedatectl status Local time: Thu 2024-10-03 22:36:06 UTC Universal time: Thu 2024-10-03 22:36:06 UTC RTC time: Thu 2024-10-03 22:36:06 Time zone: Etc/UTC (UTC, +0000) System clock synchronized: yes NTP service: active RTC in local TZ: no - KVM がサーバーで有効になっている。
CODE
$ kvm-ok INFO: /dev/kvm exists KVM acceleration can be used - ブリッジされたデバイスが利用可能。後の手順で
config.cfgファイルで指定するデバイス名を書き留めておきます。
詳細については、Readme.md の「Ubuntu サーバーインストールの考慮事項」を参照してください。
KVM 設定の更新と確認
カスタムスクリプトでは、config.cfg ファイルで指定された設定を使用します。config.cfg ファイルの設定を更新して確認します。このファイルには、次のパラメータが含まれています。
| パラメータ | 説明 |
|---|---|
|
ストレージ プール |
このプールには、仮想マシンのイメージファイルとディスクが保存されます。ストレージプールのパラメータで、次を指定します。
|
|
ネットワーク |
仮想マシンをホストネットワークに接続する Linux ブリッジデバイスを指定します。 |
|
ホストとピアの IP アドレス |
ピアアドレスのホストおよびポートを指定します。仮想アプライアンスクラスターは、LIBVIRT_HOST_SELF IP アドレスに展開されます。 LIBVIRT_HOST_PEERS に、仮想マシンを展開する他の KVM ハイパーバイザノードの IP アドレスを一覧表示します。
注: ピアのリストでは SELF IP アドレスを指定しないでください。
|
|
仮想マシンネットワーク |
クラスター名、CIDR、ゲートウェイ、DNS、ホスト名などの仮想マシンのネットワークパラメータを指定します。 |
| 仮想マシンのサイズ |
仕様で仮想アプライアンスプロファイルを指定します。「サイジング要件」を参照してください。
注: 現在、KVM では、仮想アプライアンスは Small プロファイルのみをサポートしています。
|
config.cfg スクリプトの例
## libvirt/kvm host user with virt permissions
DEPLOY_ID=${USER} ## defaults to current user
## Libvirt directory storage pool name
# Storage pool parameters
STORAGE_POOL="appdva-storage" # node-local directory
STORAGE_PATH="/data/${STORAGE_POOL}" # path to local storage on each node
# Network parameters (kvm phys host VM bridge name)
BRIDGE_NAME=<Name of the Bridge Network>
# Physical libvirt hypervisor IPs
# used for virsh remote connections:
# VIRT_CONNECTION_URL="qemu+ssh://${DEPLOY_ID}@${HOSTIP}/system"
# enabling remote operations on different physical libvirt nodes
#
LIBVIRT_HOST_SELF="10.0.0.1" # specify the primary node here
LIBVIRT_HOST_PEERS=(
"10.0.0.2"
"10.0.0.3"
)
# LIBVIRT_HOST_PEERS=( )
## VM Network parameters
VM_CLUSTER_NAME="libvirt1"
# these CIDR values change with the cluster name, consult the wiki
VM_CIDRS=(
"10.0.0.11/20"
"10.0.0.12/20"
"10.0.0.13/20"
)
VM_GATEWAY=10.x.x.x
VM_DNS=10.x.x.x
VM_HOSTNAME_PREFIX="appdva-${VM_CLUSTER_NAME}-vm"
VM_NAME_PREFIX="${DEPLOY_ID}-${VM_HOSTNAME_PREFIX}"
## VM size parameters
# profile=small
NUM_VMS=3
VM_VCPUS=16
VM_MEMORY_GB=64
VM_OS_DISK_GB=200
VM_DATA_DISK_GB=500
カスタムスクリプトの実行
KVM に仮想マシンを展開するには、指定された順序でスクリプトを実行します。
ハイパーバイザの設定
01-prepare-hypervisor.sh を実行してハイパーバイザを設定します。このスクリプトによって以下が実行されます。
- 仮想アプライアンスの展開に必要なパッケージをインストールします。
CODE
cloud-image-utils, cpu-checker, libvirt-clients, libvirt-daemon, libvirt-daemon-driver-qemu, libvirt-daemon-system, jq, ovmf, virtinst, virt-viewer, qemu-system-x86 qemu-block-extra, qemu-utils, numad, numactl, and sysstat - 仮想マシンをホストするようにカーネル
cmdlineを調整します。 - KVM パラメータを更新します。
- SSH キー ペアを生成します。
クラスターの実行
run-cluster コマンドを実行します。このスクリプトによって以下が実行されます。
- 仮想マシンを使用して 3 ノードクラスターを作成します。
- クラスター内の各ノードのストレージを設定します。
- 仮想マシンのイメージを作成するためのストレージディレクトリを
libvirtで管理できるようにします。
クラスターステータスの確認
cluster-status を実行して、仮想アプライアンスクラスターがアクティブであるかどうかを確認します。
追加のスクリプト
ストレージと仮想マシンをクリーンアップする場合は、次のスクリプトを実行して各タスクを実施できます。
| Script | 説明 |
|---|---|
cleanup-storage |
仮想アプライアンスクラスターのストレージプールを削除します。 |
cleanup-vms |
仮想アプライアンスの仮想マシンを削除します。 |