KVM での仮想アプライアンスの展開および構成

カーネルベース仮想マシン(KVM)では、仮想マシンを実行するハイパーバイザとして Linux を使用します。詳細については、「What is KVM?」を参照してください。

注: このページには、RedHat のマニュアルへのリンクが含まれています。RedHat で自身のマニュアルを管理しているため、Splunk AppDynamics では RedHat のマニュアルの精度については一切保証しません。

ダウンロードポータルの [Virtual Appliance] タブから QCOW2 イメージをダウンロードし、ファイルに実行権限があることを確認します。

QCOW2 イメージを使用して仮想アプライアンスをデプロイできます。Splunk AppDynamics では、Splunk AppDynamics GitHub リポジトリで入手可能なカスタムスクリプトを使用することを推奨しています。このデプロイメントには 3 つの KVM ハイパーバイザが必要であり、各ハイパーバイザで 1 つの仮想マシンを実行します。

重要:

これらのスクリプトを実行する前に、タグ、展開設定、IP アドレスといった config.cfg の設定の詳細を更新または確認してください。

イメージとスクリプトをダウンロードしたら、次のようにしてカスタムスクリプトに 744 権限を付与します。
CODE
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 ファイルの設定を更新して確認します。このファイルには、次のパラメータが含まれています。

パラメータ 説明

ストレージ プール

このプールには、仮想マシンのイメージファイルとディスクが保存されます。ストレージプールのパラメータで、次を指定します。

  • すべての仮想マシンのストレージプールパラメータ。
  • 各 KVMノードに設定されている仮想マシンのディスクストレージのパス。

ネットワーク

仮想マシンをホストネットワークに接続する Linux ブリッジデバイスを指定します。

ホストとピアの IP アドレス

ピアアドレスのホストおよびポートを指定します。仮想アプライアンスクラスターは、LIBVIRT_HOST_SELF IP アドレスに展開されます。

LIBVIRT_HOST_PEERS に、仮想マシンを展開する他の KVM ハイパーバイザノードの IP アドレスを一覧表示します。

注: ピアのリストでは SELF IP アドレスを指定しないでください。

仮想マシンネットワーク

クラスター名、CIDR、ゲートウェイ、DNS、ホスト名などの仮想マシンのネットワークパラメータを指定します。

仮想マシンのサイズ

仕様で仮想アプライアンスプロファイルを指定します。「サイジング要件」を参照してください。

注: 現在、KVM では、仮想アプライアンスは Small プロファイルのみをサポートしています。

config.cfg スクリプトの例

JSON
## 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 に仮想マシンを展開するには、指定された順序でスクリプトを実行します。

  1. ハイパーバイザの設定

  2. クラスターの実行
  3. クラスターステータスの確認

ハイパーバイザの設定

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 を実行して、仮想アプライアンスクラスターがアクティブであるかどうかを確認します。
重要: デフォルトでは、ノードのパスワードが changeme に設定されています。展開が成功したら、クラスターの各ノードでパスワードを確実にリセットします。

追加のスクリプト

ストレージと仮想マシンをクリーンアップする場合は、次のスクリプトを実行して各タスクを実施できます。

Script 説明
cleanup-storage 仮想アプライアンスクラスターのストレージプールを削除します。
cleanup-vms 仮想アプライアンスの仮想マシンを削除します。