SevOne Data Platform Deployment on KVM
SevOne supports deployment on KVM-based virtualization platforms.
Examples referenced in this guide include KVM (libvirt) and OpenStack environments. Other virtualization platforms built on KVM technology, such as Oracle Linux Virtualization Manager (OLVM) and similar KVM-based solutions, are also supported.
Each Kernel-based Virtual Machine (KVM) deployment may vary depending on your environment and infrastructure requirements. The KVM image uses the QCOW2 file format, a disk image format used by QEMU. QCOW2 (QEMU Copy-On-Write) optimizes disk usage by allocating storage space only when required.
The required QCOW2 image can be downloaded from IBM Passport Advantage Online (https://www.ibm.com/software/passportadvantage/pao_download_software.html). If you are using a legacy or flexible SevOne contract and do not have access to IBM Passport Advantage, but have an active support contract, contact IBM SevOne Support to obtain the image file. The download process may take approximately 30 minutes.
In most deployments, SevOne virtual appliances communicate over a private internal network. These private IP addresses must be reachable between cluster peers. If private network connectivity is unavailable, publicly routable IP addresses can be used for inter-node communication and peering.
Please refer to SevOne NMS Appliance Configuration Guide for details on how to set the correct application configuration for the customer’s license type and count.
KVM (libvirt) Command Line Implementation
To install the virtual appliance via KVM (libvirt) command prompt, execute the following command.
$ virt-install \
-n <virtual appliance size> \
--description "<description>" \
--os-type=Linux \
--os-variant=virtio26 \
--ram=4096 \
--vcpus=4 \
--disk path=/var/lib/libvirt/images/NAME-OF-SEVONE-IMAGE.qcow2,bus=virtio,size=600 \
--graphics none \
--network bridge:br0
Example: for vPAS 20K virtual appliance
$ virt-install \
-n sevone-vpas-20k \
--description "SevOne vPAS 20K" \
--os-type=Linux \
--os-variant=virtio26 \
--ram=4096 \
--vcpus=4 \
--disk path=/var/lib/libvirt/images/NAME-OF-SEVONE-IMAGE.qcow2,bus=virtio,size=600 \
--graphics none \
--network bridge:br0
where,
- n - name of your Virtual Machine.
- description - some valid description about your Virtual Machine.
- os-type - operating system type. For SevOne virtual appliances, use Linux.
- os-variant - distribution type for the above os-type. For SevOne virtual appliances, use virtio26.
- ram - memory for the Virtual Machine in MB. For details, please refer to Hardware Requirements.
- vcpu - total number of virtual CPUs for the Virtual Machine. For details, please refer to Hardware Requirements.
- disk path - path where the SevOne virtual appliance image files are stored. For example, /var/lib/libvirt/images/NAME-OF-SEVONE-IMAGE.qcow2,bus=virtio,size=600. The size is in GB. In this example, the image file is 600GB.
- graphics - this instructs virt-install to use a text console on the Virtual Machine serial port instead of graphical VNC window. If you have the xmanager set up, then you can ignore this parameter.
- network - SevOne Virtual Machine uses bridged adapter br0. For example, bridge:br0.
KVM Drive Configuration
If an empty data disk is attached to a virtual machine on first boot, it will be automatically formatted, mounted, and configured. However, if the user has already booted and now wants to attach a /data disk, the steps below must be performed.
- Using a text editor of your choice, create /opt/kvm_setup.sh file. This file is not available automatically and you must create it.
$ touch /opt/kvm_setup.sh - Edit /opt/kvm_setup.sh file.
$ vi /opt/kvm_setup.sh - Add the following script to configure the data disk and run the script manually with bash.
Example: kvm_setup.sh
# This script is only valid during initial deployment, and should not be used # to migrate data on an existing environment with a significant amount of # collected historical data set -e MIN_SIZE=$((150 * 1024 * 1024 * 1024)) DATA_SIZE=$(df -B1 /data 2>/dev/null | awk 'NR==2 {print $3}') if [[ "$DATA_SIZE" =~ ^[0-9]+$ ]] && (( DATA_SIZE > MIN_SIZE )); then MIN_SIZE=$DATA_SIZE fi DISK_NAME=$(lsblk -o NAME,FSTYPE,SIZE -Jb | jq -r --argjson minSize "$MIN_SIZE" '[.blockdevices[] | select((.children|length==0) and (.size|tonumber >= $minSize) and (.fstype|not))] | max_by(.size|tonumber) | select(.) | .name') if [ -z "$DISK_NAME" ]; then echo "No appropriate blank disks found" >&2 exit 1 fi systemctl stop nms mkdir -p /data_temp /data mv /data/* /data_temp mkfs.xfs /dev/$DISK_NAME cat > /etc/systemd/system/data.mount <<__DATA_MOUNT__ [Unit] Description=Mount unit for /data Before=nms_deployment.service prometheus_deployment.service collectors_deployment.service [Mount] What=/dev/$DISK_NAME Where=/data Type=xfs DirectoryMode=0755 [Install] WantedBy=multi-user.target __DATA_MOUNT__ systemctl daemon-reload systemctl enable data.mount systemctl restart data.mount mv /data_temp/* /data systemctl start nms rmdir /data_temp
Openstack Installation
The following workflow describes a typical OpenStack deployment and the steps required to deploy the SevOne image using OpenStack.
A private internal network is commonly used for communication between OpenStack instances, with external access provided through Network Address Translation (NAT). A floating IP address from the public network is assigned to the instance’s primary interface, allowing users to connect through a publicly reachable address.
SevOne instances (each virtual appliance added to the cluster) typically peer using private IP addresses across the internal network, such as within the same Neutron network or other routable networks. If private connectivity between instances is not available, floating IP addresses from the public network must be used for peering.
Get image into Openstack
$ glance image-create --name "SevOne Image" --is-public true --disk-format qcow2 \
--container-format bare \
--file SevOne.qcow2
Log on to Openstack. If you do not have the Openstack GUI or you prefer to use command line Openstack, see the end of this section for command line instructions.
admin:admin

- In the Username field, enter your Openstack user name.
- In the Password field, enter your Openstack password.
- Click Sign In.
The Overview page appears with the System - Overview tab displayed.

In the left menu, click Project, then select Compute, and then select Overview to display the statistics that enables you to determine if you have enough space for the virtual appliance. For details, please refer to Hardware Requirements.

After you confirm that there are enough resources to install the virtual appliance, perform the following steps to create a flavor.
- In the left menu select System then select Flavors.

- Click Create Flavor.

- In the Name field, enter the name of the flavor.
- In the ID field, enter the flavor identifier.
-
In the VCPUs field, enter the number of virtual CPUs. This is equal to the number of CPUs plus the number of cores listed in the requirements.
- In the RAM field, enter the amount of RAM.
- In the Root Disk field, enter the amount of space to allocate on the root disk.
- In the Ephemeral Disk field, enter the amount of space to allocate on the ephemeral disk.
- In the Swap Disk field, enter the amount of space to allocate on the swap disk.
- Click Create Flavor to return to the Flavors page with the new flavor displayed in the list.
Perform the following steps to launch the instance for the virtual appliance.
- In the left menu, select Compute then select Instances to display the Instances page that displays the status of your instances.

- Click Launch Instance to display the Launch Instance page, Details tab, Advanced Options that enable you to define the details to launch an instance.

- Click the Availability Zone drop-down and select an availability zone.
- In the Instance Name field, enter the instance name.
- Click the Flavor drop-down and select the flavor you created in the previous section.
- In the Instance Count field, enter the instance count.
- Click the Instance Boot Source drop-down and select Boot From Image (Creates New Volume).
- Click the Image Name drop-down and select the image name.
- In the Device Size field, enter the size of the device.
- Click Launch to display the Launch Instance page Networking tab.

- In the Available Networks section, click the + next to Private Network to move the Private Network to the Selected Networks field.
- Click Launch to return to the Instances page and to add the new instance to the Instances list.
The Instances list now displays your instance.

Perform the following steps to associate a floating IP address to the instance.

- Click the Create Snapshot drop-down and select Associate Floating IP to display the Allocate Floating IP page.

- Click the IP Address drop-down and select an IP address or click + next to the IP Address field to display the the Allocate Floating IP pop-up.
>
- Click the Port to be Associated drop-down and select the instance for the virtual appliance.
- Click Associate.

Enter the following command to boot the SevOne KVM implemented appliance.
Boot SevOne KVM implemented appliance
$ qemu SevOne.qcow -boot c -net nic -net user -m 196 -localtime
Openstack Command Line Implementation
If you do not have the Openstack GUI or you prefer to install the virtual appliance via an Openstack command prompt, please execute the following command.
openstack server create --image nms-<enter version>.qcow2 --flavor
<virtual appliance size> --security-group default --nic net-id=421d3d2d-4b29-4a43-89fa-4717f506fcb3
nms-<enter version>-qcow2-test
Example: for vPAS 20K virtual appliance
openstack server create --image nms-7.1.0-20240530-221824-90c22736.qcow2 --flavor vPAS20K --security-group
default --nic net-id=421d3d2d-4b29-4a43-89fa-4717f506fcb3 nms-7.1.0-20240530-221824-90c22736-qcow2-test