SevOne Data Platform Deployment on KVM
Each KVM implementation varies dependent upon your environment. The following workflow reflects an Openstack implementation. The typical implementation is to set up a private, internal network for the Openstack instances to use for communication. This private network is made available to the public network via NAT. You apply a floating IP address from the public network to the instance's main interface in the private network. Users connect to the floating IP address via their regular network. SevOne instances (each virtual appliance you peer into the cluster) is peered to one another via the private IP address. The private IP address must be reachable (i.e., in the same Neutron network, or otherwise routable). Otherwise, you should use floating IP addresses from the public network to establish peering. Metadata service is not supported.
The KVM image file has a QCOW2 file extension. QCOW2 is a file format for disk image files used by QEMU, a hosted virtual machine monitor. It stands for QEMU Copy On Write and uses a disk storage optimization strategy that delays allocation of storage until it is actually needed. You followed the steps earlier in this document to download the QCOW2 image.
Openstack Installation
Perform the following steps to incorporate the SevOne image via Openstack.
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.
- 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 / KVM 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
Alternatively, you can use the following command from the KVM command prompt.
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
SevOne Appliance Configuration
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.