We use cookies on this website. To find out more about cookies and how they are used on this website, see our Privacy Policy.
By clicking ‘Continue’, you hereby agree with our use of cookies.

{{vmH.selected.familySearch.replace("EonStor ", "")}} Maintenance Guide

{{vmH.selected.familySearch.replace("EonStor ", "")}} User Guide

Maintenance Guide

Creating a Virtual Machine

KS / KS 5000U / KSa 5016U

Use the Virtual Machines page to create a new virtual machine.

Overview

During the creation process, configure the following settings:

  • Basic information
  • Compute resources
  • Storage
  • Networking
  • Node scheduling
  • Advanced options

If the guest operating system supports it, you can use VirtIO to improve I/O and network performance. VirtIO is a virtualization technology that improves communication efficiency between the guest operating system and the underlying virtualization platform.

Most modern Linux distributions include VirtIO drivers by default. Windows operating systems usually require manual VirtIO driver loading during installation.

Prerequisites

Before creating a virtual machine, verify the following:

  • The required operating system image has been uploaded.
  • The target namespace is available.
  • The required storage resources are available.
  • Network settings are prepared if custom networking is required.
  • If SSH key injection will be used, confirm that the selected Linux image supports cloud-init and SSH key configuration.

Procedure

After checking the prerequisites and completing the settings, the following is the procedure summary of setting up a virtual machine:

  1. Go to EonKube > Virtualization > Virtual Machines.
  2. Click Create to add a new virtual machine.
  3. Configure the following basic settings:
    • Namespace: Choose a namespace.
    • Name: Specify an identifying name.
    • (Optional) Description: If needed, specify the description.
  4. Configure compute resource
  5. Configure Storage
  6. Configure Network
  7. Configure the Node Scheduling rules
  8. Configure Advanced Options
  9. Verify all settings.
  10. Click Create.

The creation process may take several minutes. After the VM is created, it appears in the virtual machine list.

Configuring Compute Resources

In the Basic section, configure the VM’s compute-related settings, including CPU, memory, SSH key, and GPU allocation.

  • CPU: Number of CPU cores for the VM.
  • Memory: Amount of memory reserved for the VM.
  • (Optional) SSHKey: To manage a Linux VM remotely, specify the SSH key. To manage a Windows VM remotely, leave this field blank.
    Note:
    • Windows does not support SSH key injection in this workflow.
    • For Linux VMs, SSH key usage generally requires a cloud-init-capable image. For more information, see Creating a Cloud-Init for a Virtual Machine and Creating an SSH Key.
  • Add GPU: Allocate GPU resources to your virtual machine if GPU resources are required.
    • Select the GPU Group: You need to specify which GPU group you want to use. This is essential as the VM will only utilize GPUs from the selected group.
    • Specify the Number of GPUs: Indicate how many GPUs you would like to allocate from the selected GPU group. Ensure that you choose the correct number based on your VM's requirements.
    • Add Additional GPU Groups: You can configure multiple GPU groups to meet the needs of your VM by repeating steps Add GPU.

Configuring Storage

In the Disk/CD-ROM section, configure the VM storage layout, including the root disk, image source, bus type, additional disks, and CD-ROM attachments. These storage volumes provide space for the operating system, applications, drivers, and user data. By default, the first disk is assigned as the root disk and used as the primary boot device.

  • Supported Source Types
    Depending on the configuration, storage can be created from the following sources:
    • Virtual Machine Image: Uses a pre-uploaded image (ISO, QCOW2) from your library.
    • Container: Mounts a Docker image as a volume. This is often used for mounting VirtIO drivers or specific containerized tools.
    • ConfigMap: Mounts a Kubernetes ConfigMap as a volume to inject configuration files directly into the VM.
  • Volume Parameters
    • Name: Give the disk a label (e.g., disk-0).
    • Image /Docker Image / Configmap: Depending on your source, enter the image path (e.g., registry.com/my-iso:latest) or select a specific Configmap from the dropdown.
    • StorageClass: Select the storage backend for this disk.
      • The StorageClass defines the performance profile expansion capabilities, and data redundancy. If left as "default", the system will use the cluster's pre-defined standard storage provider in your global settings.
        - Path: EonKube > Virtualization > Settings > VM Default Storage Class
    • Size: Specify the capacity (e.g., 10 GiB) if the source is Virtual Machine Image. The system may automatically adjust this based on the minimum requirements of the selected image.
    • Bus Type: Select VirtIO, SATA, or SCSI.
      • Use VirtIO for the best performance if the guest OS supports it.
      • If you use a VMDK image, the system sets the default bus type to SATA for compatibility. If required, you can manually select another bus type.
  • Additional Volume Options
    You can extend the VM storage layout by using the following options:
    • Add Existing Disk: Attach a pre-existing volume already present in the cluster.
    • Add Disk: Create a brand new, empty storage volume.
    • Add CD-ROM: Attach an additional read-only drive from an existing image.
  • Boot Order and Removal
    • Boot Order: Use the Up/Down arrows to change the priority. The device labeled bootOrder: 1 is the primary device the VM will attempt to start from.
    • Remove: Click the "X" icon in the top-right corner of a disk card to delete that specific configuration.
Note:

When using VirtIO storage or network devices in a Windows VM, mount the VirtIO driver image during installation so that Windows can detect the devices correctly.

Configuring Network

In the Networks section, configure the virtual machine’s network interfaces. By default, the VM includes a primary network interface, nic-0, which connects the VM to the pod network. Additional interfaces can be added if secondary or bridged network access is required.

The system allows you to manage different types of connectivity:

  1. Primary Pod Network: Typically configured as nic-0. This interface allows the VM to communicate within the Kubernetes pod network.
  2. Secondary/Bridged Network: Typically configured as additional interfaces (e.g., nic-1). This acts as a bridged connection, allowing the VM to be accessed remotely as if it were a physical host on your local area network (LAN).
  • Default Network Interface
    The default interface, nic-0, is created automatically when the VM is configured. This interface connects the virtual machine to the Kubernetes pod network. In the current UI:
    • Name is preset to nic-0
    • Model is preset to e1000
    • MAC address can be specified if required
    This default interface is typically used for internal cluster communication and basic VM connectivity.
  • Additional Network Interfaces
    If additional network access is required, click Add Network to create another interface, such as nic-1. For additional interfaces, users can typically configure:
    • Name: Enter an identifying name for the interface (e.g., nic-1).
    • Model: Choose the virtual network hardware model:
      • e1000: Emulates an Intel E1000 network card. This offers the highest compatibility for older operating systems but with lower performance compared to VirtIO.
      • virtio: Recommended. Provides the highest performance and lowest overhead. This requires the guest OS to have VirtIO drivers installed.
    • MAC address: If your network environment requires a fixed IP based on hardware identification, you may manually enter a specific MAC address. If left blank, the system will automatically generate a unique MAC address upon VM creation.

If supported by the guest operating system, virtio can be selected for improved network performance.

Configuring Node Scheduling

In the Node Scheduling section, define where the virtual machine can run by selecting a specific node or applying scheduling rules. These settings control VM placement based on resource availability and node selection requirements.

  • Run VM on any available node: Kubernetes automatically deploys the virtual machine to any available node.
  • Run VM on specific node: select a specific Node to run the virtual machine.
  • Run VM on node(s) matching scheduling rules: Set customized deployment rules filter one or more nodes, including required rules and preferred rules:
    • The required rule strictly limits the virtual machine to run only on the node that meets the conditions.
    • The preferred rule also deploys the VM on the node which is compliant to the rule. If there is none, the VM will be deployed on the one which does not compliant to the rule.
    1. Click Add Node Selector.
    2. Specify the priority of the rule by selecting Required or Preferred. If you select Preferred, Enter Weight value 1 ~100 for preference.
    3. Click Add Rule.
    4. Specify a key and value pair with an operator to filter the specific nodes. The operator list includes in list, not in list, is set, is not set, <, or >. To add a rule, click Add Rule below. To delete a rule, click Remove at the end of the key-value pair.
    5. If you want to specify another rule, click Add Node Selector below and repeat step 2 to step 3.

Configuring Advanced Options

In the Advanced Options section, configure additional VM settings, such as run strategy, operating system type, hostname, machine type, cloud configuration, and boot-related options. These settings control the VM’s runtime behavior and advanced guest operating system features.

  • Run Strategy
    You can select one of the following run strategies:
    • Always: The VM remains available and is rebuilt automatically if it fails.
    • RerunOnFailure: Kubernetes attempts to restart the VM after failure.
    • Manual: The VM is managed manually.
    • Halted: The VM does not start automatically.
  • Additional Settings
    1. Select the OS type.
    2. For the Hostname/Machine type, click Show More to see these two items. By default, the hostname follows the VM name.
    3. (Optional) Check and modify the Cloud Configuration and Network Data.
      Note:

      Cloud configuration and Network data is not supported for Windows VMs.

    4. By default, the options Enable USB Tablet, Install guest agent, Booting in EFI mode are enabled. If needed, you can enable Secure Boot and disable some of these options.
      • Enable USB Tablet: This option is useful and typically used in GUI interfaces when connecting using VNC as it can enhance the accuracy of mouse positioning.
      • Install Guest Agent: This option installs a software agent (Guest Agent) in the virtual machine. This agent allows better communication between the management platform and the virtual machine. For example, provide accurate resource usage statistics, support device hot-plugging in the virtual machine, and gracefully shut down the virtual machine.
      • Booting in EFI mode: Select this option to set the virtual machine to boot in EFI/UEFI mode. UEFI (Unified Extensible Firmware Interface) is a modern BIOS replacement that typically offers fast boot and more security features, such as secure boot. EFI mode is the default boot mode for many operating systems today, such as Windows and modern Linux distributions.
      • Secure Boot: Secure Boot is a security feature that, when enabled, allows a virtual machine to only allow signed and trusted operating systems to boot. This helps prevent unauthorized software or malware from loading at system startup. This option is typically used with EFI/UEFI mode to increase the security of the virtual machine.
-----------------------------v1.2---------------------------

In the IEC platform, the process of setting up a virtual machine is very simple and can be personalized according to specific business needs. In addition, you can use VirtIO to Improve IO Performance.

VirtIO is a virtualization technology that can improve the performance of the virtual devices in virtual machines, e.g. virtual network adapters and virtual disks. It provides a set of standard device drivers that allow virtual machines to efficiently communicate with the underlying virtualization platform e.g. KVM.

You can use VirtIO devices in a Windows/Linux virtual machine. To use VirtIO-related devices in a Windows, since Windows does not include VirtIO drivers by default, these drivers need to be installed manually. Compared with Windows, most modern Linux distributions come with VirtIO drivers. That is, when you use VirtIO devices in Linux, the system automatically recognizes them and correctly configures these devices. This allows Linux systems to perform more efficiently in a virtualized environment.

Prerequisites

Before starting to setting up a virtual machine, check the prerequisites and complete the settings first.

Procedure Summary

After checking the prerequisites and completing the settings, the following is the procedure summary of setting up a virtual machine:

  1. Go to EonKube > Virtualization > Virtual Machines.
  2. Specify the following settings:
    • Namespace: Choose a namespace.
    • Name: Specify an identifying name.
    • (Optional) Description: If needed, specify the description.
  3. Configure resource allocation.
  4. Complete volume settings.
  5. Configure the network settings.
  6. Configure the node scheduling.
  7. (Optional) Choose a GPU and enable GPU passthrough.
  8. Check the advanced options settings.
  9. Check all settings to make sure they are correct. Click Create.
  10. The process may take a few minutes. When the creation is completed, you can view the newly-created virtual machine in the virtual machine list.

Procedure

Resource Allocation

Set the number of CPU cores and memory size of the virtual machine according to your application requirements.

  • CPU: Specify the number of cores to reserve for the resources of CPU.
  • Memory: Specify the capacity to reserve for the resources of memory.
  • (Optional) SSHKey: To manage a Linux VM remotely, specify the SSH key. To manage a Windows VM remotely, leave this field blank.
    Note:

Volumes

  1. Select and configure storage volumes for the virtual machine to provide storage space for applications and data.
    The image volume stores the operating system. You can use an existing volume and create a volume for data storage.
    By default, the first disk will be the root disk. After creating another volume, you can change the boot order by dragging the block of volume information or clicking the up and down arrows to change the order. The root disk refers to the main disk used to start the operating system when the virtual machine starts. This disk usually contains the core files and necessary software of the operating system and is responsible for booting the virtual machine and running the system.
  2. Choose the volume type of the image volume.
    • Disk: Serve as a normal disk volume, used to store operating systems, applications, or user data.
    • CD-ROM: It is used as a read-only drive to mount the virtual machine image, which can be exited or removed after the installation is complete. Choose CD-ROM when using an ISO image for the installation.
  3. Select the image that you want to use. For example, rocky-9-x86_64-dvd.iso or windows-10-22h2.iso. For more details of uploading an image file, see Uploading an OS Image.
  4. According to the size of the OS image you selected, the size of the image volume will automatically adjust. The default size is 10 GiB.
  5. For the bus type, select VirtIO, SATA, or SCSI.
    Note:
    When using VirtIO devices (such as volume or network devices) in a Windows VM, mount the VirtIO driver's volume to ensure the network interface is recognized correctly by the OS. When creating a Linux virtual machine, to enable VirtIO devices, select VirtIO as the type of disk.
    • To use an existing volume, click Add Existing Volume.
    • To create a new one, click Add Volume.
    • StorageClass: When adding a volume, it will be assigned a StorageClass. For a virtual machine image, the StorageClass is defined when the image is created.
    • Add Existing Volume: Add an existing disk to the virtual machine.
    • Add VM Image: Add a volume from an existing virtual machine image.
    • Add Container: Add a container to be used as a disk for special purposes, e.g. mount a VirtIO driver, or mount a Docker image as a volume in the VM. A running container cannot be attached.
    • Add ConfigMap: Add Kubernetes ConfigMap as a volume to store configuration data. This is useful for injecting configuration data into the VM from a ConfigMap managed within the Kubernetes cluster.

Network

  1. Select the network module for this VM to communicate with other services inside and outside the cluster. The virtual machine will be configured with a network (nic-0) by default to provide users with external connections or connections to the K8S Cluster network.
    • e1000: This is emulated version Intel 82545 EM Gigabit Ethernet NIC, which is highly compatible and suitable for most operating systems, but has lower performance.
    • VirtIO: This is a high-performance virtual network adapter specially designed for virtualiza-tion environments. It can significantly improve network performance and is suitable for operating systems that support VirtIO drivers.
  2. Select the network mode:
    • Pod Network: This is the default network adapter. Each virtual machine is configured with a network adapter by default when it is created and is connected to the Pod Network in the K8S cluster. This network adapter is used for communication between the virtual machine and other pods and services in the cluster.
    • Multiple network support: You can configure multiple network adapters for an individual virtual machine to connect to different networks or VLANs to meet different network requirements. For example, one network adapter can be connected to the internal network to handle internal communications, and another network adapter can be connected to the external network to access external services.
  3. Choose to allocate the IP address as static or dynamic:
    • DHCP: Usually the virtual machine's network adapter automatically obtains an IP address through the DHCP. This simplifies network configuration, especially in a dynamically changing environment.
    • Static IP: For applications that require a static IP, configure a static IP for the virtual machine. Static IP configuration is typically set up in cloud-init via network data. For more information about VM cloud-init, see VM Cloud-Init Setup.
  4. If needed, configure an additional network. Click Add Network to create another network adapter for this VM to use.

Node Scheduling

  1. Choose one specific node or multiple nodes for this virtual machine to run:
    • Run VM on any available node: Kubernetes automatically deploys the virtual machine to any available node.
    • Run VM on specific node: select a specific Node to run the virtual machine.
    • Run VM on node(s) matching scheduling rules: Set customized deployment rules filter one or more nodes, including required rules and preferred rules:
      • The required rule strictly limits the virtual machine to run only on the node that meets the conditions.
      • The preferred rule also deploys the VM on the node which is compliant to the rule. If there is none, the VM will be deployed on the one which does not compliant to the rule.
      1. Click Add Node Selector.
      2. Specify the priority of the rule by selecting Required or Preferred.
      3. Specify a key-and-value pair with an operator to filter the specific nodes. The operator list includes in list, not in list, is set, is not set, <, or >. To add a rule, click Add Rule below. To delete a rule, click Remove at the end of the key-value pair.
      4. If you want to specify another rule, click Add Node Selector below and repeat step 2 to step 3.

GPUs (GPU Passthrough)

GPU passthrough is a technique for virtual machines to directly use the physical GPU resource. A virtual machine can directly access the physical GPU resource on a Kubernetes node, thereby significantly improving the performance of graphics-intensive applications, for example, deep learning training, scientific computing, graphics rendering, etc. The administrator can flexibly allocate GPU resources to different virtual machines as needed.

Note:
Before setting, enable GPU passthrough first. For more information, see (Optional) Enabling GPU Passthrough.
  1. Select the GPU to allocate to this VM to use.
  2. Click Enable Passthrough.
  3. Install the corresponding GPU drivers on the OS for full functionality.

Advanced Options

  1. Choose the run strategy. When starting this VM, you can specify some commands for this VM to run:
    • Always: This VM is always available. If it fails, it will be automatically rebuilt.
    • RerunOnFailure: This VM is always available. If it fails, Kubernetes will try to restart it.
    • Manual: This VM is manually managed and is not managed by the Kubernetes.
    • Halted: This VM does not start.
  2. Select the OS type.
  3. For the Hostname/Machine type, click Show More to see these two items. The hostname is de-fault set to follow the VM’s name.
  4. (Optional) Check and modify the cloud config and network data.
    Note:
    Cloud config/Network data is not supported for Windows.
  5. By default, the options Enable USB Tablet, Install guest agent, Booting in EFI mode are enabled. If needed, you can enable Secure Boot and disable some of these options.
    • Enable USB Tablet: This option is useful and typically used in GUI interfaces when connecting using VNC as it can enhance the accuracy of mouse positioning.
    • Install Guest Agent: This option installs a software agent (Guest Agent) in the virtual machine. This agent allows better communication between the management platform and the virtual machine. For example, provide accurate resource usage statistics, support device hot-plugging in the virtual machine, and gracefully shut down the virtual machine.
    • Booting in EFI mode: Select this option to set the virtual machine to boot in EFI/UEFI mode. UEFI (Unified Extensible Firmware Interface) is a modern BIOS replacement that typically offers fast boot and more security features, such as secure boot. EFI mode is the default boot mode for many operating systems today, such as Windows and modern Linux distributions.
    • Secure Boot: Secure Boot is a security feature that, when enabled, allows a virtual machine to only allow signed and trusted operating systems to boot. This helps prevent unauthorized software or malware from loading at system startup. This option is typically used with EFI/UEFI mode to increase the security of the virtual machine.

After creating a VM, you can view and manage the resources of a virtual machine without stopping it.

  • When a Linux virtual machine starts, it will automatically load the corresponding VirtIO driver and configure these devices as virtual devices that run efficiently.
  • When a Windows virtual machine starts:
    1. Start the virtual machine and enter the VNC console. Select Browse during the Windows installation process to load the VirtIO driver. This allows the Windows installer to recognize and use the VirtIO device.
    2. After the Windows installation is completed, you can enter the Device Manager to confirm whether all devices have drivers installed normally. If there are unrecognized devices, you need to manually load the drivers.

The following provide an example of setting up a Linux virtual machine and a Windows virtual machine. For more information, see Setting up a Linux Virtual Machine and Setting up a Windows Virtual Machine.