SevOne Data Platform Deployment on IBM Cloud using VPC Infrastructure

This document describes how to deploy SevOne NMS on IBM Cloud using the Virtual Private Cloud (VPC) infrastructure.

Important: 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, execute the steps below. Verifying the disk setup and running the script below is suggested.

Log on to the instance created and perform the following.
  • Using a text editor of your choice, create /opt/ibmcloud_setup.sh file, if it does not exist.
    
    $ touch /opt/ibmcloud_setup.sh
    
  • Edit /opt/ibmcloud_setup.sh file.
    
    $ vi /opt/ibmcloud_setup.sh
    
  • Add the following script to configure the data disk and run the script manually with bash.

    Example: ibmcloud_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
    

To deploy IBM SevOne NPM component, NMS, on IBM Cloud, the following steps are required.

  • create or utilize an existing IBM Cloud Object Storage location to upload IBM SevOne NPM .qcow2 image for component, SevOne NMS.
  • create a custom image for VPC.
  • create a new Virtual Server instance for VPC and boot the newly created custom image.
  • configure the boot and data drives.
  • set the appliance size and type.
Important:
  • You must download IBM SevOne NPM KVM/Openstack .qcow2 image for component, SevOne NMS, from IBM Passport Advantage (https://www.ibm.com/software/passportadvantage/pao_download_software.html) via Passport Advantage Online.
  • You must have experience with IBM Cloud and have an account with required permissions to create infrastructure such as, storage, custom images, and virtual server instances.
  • For details on how to create a standard IBM Cloud component, please refer to https://cloud.ibm.com/docs or contact SevOne Support Team or your Technical Account Manager.
Important: The free tier of IBM Cloud cannot be utilized for deploying IBM SevOne NPM components.
Note: In this section, deployment is demonstrated using the IBM Cloud web interface. However, you may utilize any other IBM Cloud methods such as, API.
Note: SevOne NMS image is cloud-init enabled. This means that it will configure its hostname, network configuration, and SSH key automatically as part of the boot process on IBM Cloud.

Upload image to IBM Cloud Object Storage

Execute the following steps.

  1. Create or utilize an existing IBM Cloud Object Storage instance and bucket. For details on how to configure these, please refer to https://cloud.ibm.com/docs.
  2. Once an IBM Cloud Object Storage instance and bucket are configured, browse to the bucket and click the Upload button.
    uploadCloudObjectStorage

  3. An Upload menu will open.
    Upload menu...
    uploadCloudObjectStorageMenu

    • Select Aspera high-speed transfer radio button; this option is recommended for large files.
      Important: You may be prompted to install the IBM Aspera Connect file transfer utility.
    • Click Upload files button to open the file browser and select the nms-<enter version>.qcow2 file from your local machine.
      Important: The file must have a .qcow2 extension. If the file extension is .gz then you will first need to decompress the file using an archive utility.
    • Click Upload button to start the transfer.
      Important: You must wait for the file transfer to complete.

      This may take some time depending on your connection speed to the IBM Cloud.

      Once the upload has completed, nms-<enter version>.qcow2 file will be available in the bucket.

      uploadQCOW2File

    • Upload of .qcow2 file to IBM Cloud Object Storage is now complete. You may now proceed to section Create a Custom image for VPC to create a custom VPC image.

Create a Custom image for VPC

Execute the following steps.

  1. To create a custom image for virtual private cloud, .qcow2 image is required. This image is converted to a bootable image which can be attached to a VPC virtual server instance.
  2. Under VPC Infrastructure in left panel, click Images.
  3. In the right panel, tab Custom images, click the Create button.
    customVPCImageCreate

  4. When you click on Create button, Custom image for VPC workflow will open.
    Example
    customImageVPCParameters

    createCustomImageVPC1

    createCustomImageVPC2

    • Name - enter the name for the image. For example, nms-<enter version>.qcow2. For consistency, do not enter extension .qcow2.
    • Image source - choose radio button Cloud Object Storage.
      • select Locate by instance and bucket.
      • set the Cloud Object Storage instance, Location, and Bucket from the respective drop-downs. The instance and bucket must match to where you uploaded the image in the previous step.
      • locate your .qcow2 image in the file list and select the radio button next to it. For example, nms-<enter version>.qcow2.
    • For SevOne NMS 6.x, choose the operating system.
      • Operating system - select Red Hat Enterprise Linux.
      • Version - select red-8-amd64-byol.
  5. For any other settings such as, Encryption, Tags, Resource group, etc., please contact your IBM Cloud Administrator or leave the fields with the default values.
  6. Click Create custom image button.
    Note: You have now created an image and you may perform the provisioning of one or more VPC virtual server instances for SevOne NMS.

Create a new Virtual server instance for VPC

  1. Create a Virtual server instance for each node you intend to deploy in your SevOne NMS cluster.
  2. Under VPC Infrastructure in left panel, click Virtual server instances.
  3. In the right panel Virtual server instances for VPC, click the Create button.
    createVirtualServerInstance

  4. When you click on Create button, Virtual server for VPC workflow will open.
    createVirtualServerForVPC1

    createVirtualServerForVPC2

    createVirtualServerForVPC3

    1. Name - enter the name for the specific instance. It is recommended to set this to the desired hostname.
    2. Image - click Change image and select the custom NMS image you created in the previous step.
    3. Profile - click Change profile and select an appropriate compute profile to match or exceed the hardware requirements of the instance you are deploying.
      Note: Please refer to Hardware Requirements to obtain compute requirements for each instance type.

      For example, if you are deploying a vPAS100k, the minimum hardware requirements are,

      • vCPU Cores - 8
      • RAM - 96GB
      • Storage - 500GB / 2TB (Boot Drive / Data Storage)

      Based on this, the closest IBM Cloud instance type is bx2-32x128 or cx2-64x128.

    4. SSH keys - choose your SSH key.
    5. Storage
      Important: This does not apply to vPAS5k hardware component.
      • Leave the Boot volume as default. It is usually 150 GB.
      • Under Data volumes, add additional volumes as required.
        Note: Example

        For vPAS100k, 500GB of boot drive is required. 150GB already configured. So, you need to add an additional 350GB volume to meet the 500GB total boot drive requirement. Additionally, for vPAS100k, you also require 2TB of data storage. For this, add 2TB volume.

    6. For any other settings such as, Networking, Advanced options, Tags, Resource group, etc., please contact your IBM Cloud Administrator or leave the fields with the default values.
    7. Click Create virtual server button. Repeat this process for each NMS instance you want to create.
      Important: Once the instance is created, it will automatically boot and become available from your Virtual Server Instance list.

Configure Boot & Data Drives

Important: This does not apply to vPAS5k hardware component.

To configure the boot and data drives, it is assumed that the additional storage volumes have been created as mentioned in the section above. Additionally, it is assumed that the volumes are attached as /dev/vd<x>. If the attachment differs from this, please use the correct paths for your environment.

To find the correct paths for your environment, execute the following command as root.

Example: vPAS100k

$ lsblk
NAME               MAJ:MIN      RM      SIZE    RO    TYPE     MOUNTPOINT
vda                252:0        0       150G    0     disk
  vda1             252:1        0       500M    0     part     /boot
  vda2             252:2        0       149.5G  0     part
    root_vg-root   253:0        0       145.4G  0     lvm      /
    root_vg-swap   253:1        0       4G      0     lvm      [SWAP]
vdb                252.16       0       350G    0     disk
vdc                252.32       0       2T      0     disk
vdd                252.48       0       368K    0     disk
vde                252.64       0       44K     0     disk

There are two additional unmounted disks (vdb and vdc)

  • /dev/vdb - an additional 350GB for boot expansion.
  • /dev/vdc - 2TB for data storage.

Prior to deployment, determine the size of the hard drive required based on the virtual appliance you are deploying. For details, please refer to Hardware Requirements.

Configure additional Boot Drive

Important: This does not apply to vPAS5k hardware component.

To configure additional boot drive space, assume /dev/vdb as the additional boot drive.

Execute the commands below as root.

$ pvcreate /dev/vdb  
Physical volume "/dev/vdb" successfully created.
$ vgextend root_vg /dev/vdb
Volume group "root_vg" successfully extended
$ lvextend -l +100%FREE /dev/root_vg/root -r
Size of logical volume root_vg/root changed from <145.44 GiB (2327 extents) to <495.44 GiB (7927
extents).
Logical volume root_vg/root successfully resized.
meta-data=/dev/mapper/root_vg-root isize=512 agcount=4, agsize=9531392 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1 bigtime=0 inobtcount=0
data = bsize=4096 blocks=38125568, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=18616, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 38125568 to 129875968

Verify that the boot disk has been expanded.

$ df -hT /
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/root_vg-root xfs 496G 26G 471G 6% /

This indicates that the boot drive (the slash drive) has now been resized to 500GB.

Note: The size will report slightly under 500GB due to disk formatting. This is acceptable and the boot drive configuration is now complete.

Configure Data Drive

Important: This does not apply to vPAS5k hardware component.

To configure the additional data drive space, assuming /dev/vdc is the data drive, perform the following steps as root.

Format volume for 'xfs'

$ mkfs.xfs /dev/vdc

Create 'mount' directory

$ mkdir -p /mnt/data_volume

Using a text editor of your choice, manually add the following entry to fstab to avoid formatting issues.

Add entry to 'fstab'

/dev/vdc /mnt/data_volume xfs defaults 1 2

Mount using the updated 'fstab' entry

$ mount -a

Shutdown both MySQL instances (data & config) and stop SevOne daemons


$ podman stop nms-nms-mysqldata

$ podman stop nms-nms-mysqlconfig

Move existing data directories to newly mounted volume

$ mv /data /mnt/data_volume
$ mv /data2 /mnt/data_volume

Add symlink to the new locations

$ ln -s /mnt/data_volume/data /data
$ ln -s /mnt/data_volume/data2 /data2
$ ln -s /mnt/data_volume/data/index /index

Change file permissions to MySQL user

$ chown -R mysql:mysql /data /data2 /mnt/data_volume

Start SevOne daemons and both MySQL instances (data & config)


$ podman start nms-nms-mysqldata

$ podman start nms-nms-mysqlconfig

Set Appliance Size & Type

Allow the system to operate in the most optimal manner using all applicable resources you have allocated. Please refer to SevOne NMS Appliance Configuration Guide for details.

Note: You have now completed the deployment of SevOne NMS component of IBM SevOne NPM on IBM Cloud.