VMmanager 6: introducing the box and comparing with the previous generation





On October 8, a boxed version of VMmanager 6, the new virtualization control panel, was released. Now it can be installed on the server and used to sell virtual machines or manage your own infrastructure. In this article, we compare the new generation with the previous one - VMmanager 5 and VMmanager 6.







Both panels support KVM virtualization and manage the physical server using libvirt.







VMmanager 5 was released in 2013, VMmanager 6 - in 2019. The new generation is more convenient and more resistant to stress. Supports imaging, task management and monitoring.







In this article, we compare two generations of panels. First, let's talk about conceptual differences: architecture, interface, and resistance to loads. In the second part, we will see how identical tasks are solved in two panels.







More about the product is in the VMmanager 6 section of the ISPsystem website.







Part 1. Conceptual differences



Architecture



VMmanager 5 was a monolith written in C ++, which in some places unnecessarily complicated the development of simple things.







That is why in VMmanager 6 we used Python for simple tasks, such as configuring nodes, configuring VMs, working with libvirt. Such code is easier to write, debug, and “assemble”. They talked about this in another article on Habré .







Tasks where decentralization of data is not terrible and horizontal scaling is necessary, we shifted to Golang, highlighting business logic in microservices. Oddly enough, here we also won in speed and ease of development. The rest of the logic continues to take advantage of the monolith in C ++ - reliability, speed and data consistency.







In addition, VMmanager 6 comes in docker containers. VMmanager 5 was installed using packages. A definite plus of containerization is the high predictability of application behavior (the environment is always the same). It has become easier to reproduce situations or problems, there is no need to make many assemblies for different OSs, deployment is faster.







In VMmanager 5, the installation of packages carried a lot of dependencies that could conflict with already installed packages. In this case, there were situations when the removal of a harmless package with the option “-y” deleted the entire panel by dependency.







Another major change: VMmanager 6 supports images. An image is a complete copy of a VM disk. It is used when creating virtual machines and backups. Not to be confused with ISO images in VMmanager 5 - these are two different technologies.


Load resistance



An important consequence of changes in architecture is increased load resistance.







VMmanager 5 does not withstand heavy loads: if more than 500 virtual machines are created, it starts to work slowly. To get around this limitation, providers install another VMmanager and create new virtual machines in it. Large providers may have several panels: according to the number of locations or tariffs.







In VMmanager 5, a lot was done in the main process and, as a rule, in one thread. To manage long operations, there was a longtask module (the progenitor of taskmanager, a service for dispatching tasks in the sixth version), but we did not immediately begin to actively use it. There was no lock mechanism in longtask, only queues in which tasks could be performed strictly one by one in the order in which they got there. One task could not stand in several lines. The longtask operations themselves were special files on disk. And a large number of files in one directory creates a serious load on all UNIX systems. This did not allow to distribute tasks between several dispatchers / servers.







The load in VMmanager 6 is answered by a special task management service - Taskmanager. Now most operations are performed as deferred in separate processes. This increases the responsiveness of the system - a separate request cannot block its operation; and also increases stability - if something goes wrong, it will not affect the entire system, at most some operation. A flexible system of locks and high isolation of individual processes allows optimally queuing tasks and executing them in parallel where possible.







Also in the new version, it was decided to separate the reader and writer (processes that are responsible for the read and write operations in the system). Unlike VMmanager 5, the panel user can always get information, because reader threads can always work in parallel, regardless of how many write operations are currently running.







Interface



The most noticeable difference between the two generations is the interface. And it's not just about design. Differences in speed and responsiveness.







The VMmanager 5 interface is outdated both in appearance and in “behavior”. The first is visible with the naked eye, and the second is noticeable during long operations: if you stop the virtual machine or start mass migration, a blocking progress bar will appear on the screen. If the user has many such operations, then someone else will just wait to see a list of virtual machines.









Blocking progress bar when a virtual machine stops in VMmanager 5







Along with design changes, VMmanager 6 came with architectural changes to the client side. Previously, page templates were generated from server-side xml files, now it is SPA (Single Page Application) based on the popular Angular framework. The application consists of separate independent modules (downloaded on demand) and components. The components are allocated to the library and are developed in accordance with the design system.







To increase responsiveness, communication with the server occurs using the REST API and WebSocket. In most cases, we try to use non-blocking or delayed operations. Notification of the client part about any changes in the application, whether it is creating a virtual machine or changing the status of a node in the table, is carried out through a special service. This service learns about changes from the key-value storage, where events get from all microservices.







Thus, the VMmanager 6 interface has not only become more modern, but also more convenient, responsive and “friendly”.









When a VM stops in VMmanager 6, the interface is not blocked. The status can be observed in the list of virtual machines







Part 2. Problem solving



Creating virtual machines



Let's move on to the tasks. The first is the creation of a VM.







VMmanager 5 creates a virtual machine in 8-10 minutes - a long time. That's because the process goes by the usual means: packages are downloaded, deployed, installed. To prevent customers from waiting, providers write plug-ins: create a virtual machine in advance, and when the client arrives, reassign it. An elevated user can create a virtual machine by himself, but you will have to fill out a complex form.









Virtual Machine Creation Form in VMmanager 5







VMmanager 6 uses a new mechanism for creating virtual machines. The panel does not download packages, but deploys a copy of the image. No need to write additional plugins: VM issuance without them happens quickly - from 1 minute 20 seconds to 2 minutes. Network failures or the release of a new version of the OS no longer affects the installation, and if it starts, it will definitely end. The VM creation form has become much simpler.









Virtual Machine Creation Form in VMmanager 6







Creating OS Templates



Providers sell customers virtual machines with WordPress, 1C-Bitrix or other software. Companies using VMmanager for internal needs create many of the same type of VM for testing, deploying internal services and their own software. Setting up each machine is the routine of the administrator or tester. The control panel helps to automate it: once you configure the template and create pre-configured VPS from it.







In VMmanager 5, OS templates are stored in repositories. To add your template, you need to create a repository and prepare the OS configuration files. The repository is created on a separate server. The template consists of an XML description and a configuration file, as well as all the files needed to create the OS. The administrator must prepare the template. The task is not easy, and to solve it without instructions is unlikely to succeed.









OS templates in VMmanager 5. You can start the installation from the interface, but you cannot configure the template







The OS template in VMmanager 6 is a disk image of a virtual machine with an installed operating system. To create a template with additional software, just configure it on one virtual machine and make an image of its disk. After that, all VMs created from this image will be configured in the same way. Only the network settings and access to the VM will change - they are not written to the image. The task is simple, the administrator will cope without instructions. Of course, script lovers can still use them - there is such a possibility in VMmanager 6.









Creating a virtual machine from a user image in VMmanager 6







Statistics and Monitoring



Statistics and monitoring services are indispensable helpers for every system administrator. They allow you to quickly respond to emergency situations that occur on nodes and VMs. A sudden influx of visitors, a DDoS attack or a malfunctioning script can heavily load the virtual machine. If no action is taken, it will fail, as will the site or project located on it. It is convenient when the monitoring system is included in the panel.







VMmanager 5 has a mechanism for monitoring the status of virtual machines. Every 10 minutes, it analyzes the number of packets sent over the network and the number of write requests to the virtual machine disk. The main page of the panel shows the top 10 nodes for outgoing traffic, processor load and memory. There are no notifications by mail or instant messengers.









Statistics on nodes on the main VMmanager 5. If there is not enough data, then the graphics are ugly







VMmanager 6 also monitors the status of VMs and nodes, as before, collects statistics on the use of resources. But following the needs of users, we have developed a new online monitoring system for nodes and VMs. It monitors the consumption of RAM, CPU and hard disk, monitors network activity. If the load becomes critical, it is impossible not to notice this - the monitoring data is displayed in the lists of nodes and virtual machines, as well as on individual cards of these entities. Having visited the list of nodes, the administrator can immediately notice which of the servers is overloaded and by what indicator. The dashboard is under development, the appearance is expected in the panel this year.









Host card in VMmanager 6. Here is information about the load and statistics on the created virtual machines







post office



It is convenient when the panel reports on current events or problems. To do this, it must support sending messages.







There is no way to manage mail in VMmanager 5 . Only an administrator can reset a forgotten password; it cannot be restored automatically. Virtual machine creation notifications are sent by BILLmanager. Add a new event for alerts — the whole thing.







VMmanager 6 can send mail. Already, notifications about the creation and reinstallation of VMs, letters for password recovery are arriving. When billing is enabled, sending messages from the panel can be disabled. In the future, there will be notifications of problems that occurred on the VM nodes. It is also planned to implement the sending of notifications to instant messengers.







Task management



It’s not enough to learn about the problem, you need to quickly find its cause and fix it. Why a virtual machine has not been created or a script has not been executed, what operations in the system often fail, you can find all this in the list of tasks of VMmanager 6.







VMmanager 5 does not have a task monitoring mechanism, since there was no task mechanism itself (see the first part of the article). Partial execution of background tasks can be monitored in the System Status section. You can see the start and end time, as well as the status - completed successfully or with an error. A hung longtask operation can be terminated forcibly. But if the virtual machine has not been created, you won’t be able to find out the reason from the panel: you’ll have to take the ID and go to the “grab logs” console.









Task management in VMmanager 5. You can see the start time and status or complete the script







VMmanager 6 user manages operations in the "Task List". It stores information about current and completed operations on virtual machines, nodes, OS templates. By the duration of the tasks, you can track the patterns: what kind of operation took what time, who started it. If it failed, the log is visible - it is displayed in the interface. If the script does not execute, an error code will appear in the interface. Immediately clear what to do.









The list of tasks in VMmanager 6. You can understand who, what and when did









The card of the task that completed with an error. A log is visible right in the panel - you don’t need to “eat anything” in the console







Backups



This is one of the tasks that is solved differently in two panels.







VMmanager 5. You can create copies of all or specific virtual machines. Backups are stored on the local disk or remote FTP-storage - one or more. The XML description of the virtual machine is copied, copies of its virtual disks, a memory dump are created, and all this is packed into the archive.









Backing up virtual machines in VMmanager 5







VMmanager 6 . There is no backup in the usual sense - everything is stored in the database. If the panel fails, but the database is saved, it will not be difficult to restore the system. The role of backups of virtual machines is performed by images. You can restore a damaged VM from an image if necessary. Now images are created with VM stopped, but in the future they can be made without stopping and sold through billing.









Creating an image in VMmanager 6







Native support for the Hetzner data center



Hetzner is a popular data center among Russian providers. It uses Port Security for protection, so when working with it you need special network settings.







In VMmanager 5, the network for the Hetzner nodes must be configured manually: edit the panel configuration files, configure the server’s network interface and network bridge, and enable forwarding. At the same time, one panel can manage only one cluster - if the provider has its own servers other than those rented by Hetzner, then they need to be set up in a separate panel.







VMmanager 6 has native Hetzner support. The administrator adds a Hetzner type cluster and connects the server. After this, routing follows the model of this data center, VM settings are made in accordance with the type of cluster in which they are located. At the same time, in the same panel there may be clusters with other network settings. By the way, managing multiple clusters is one of the key features of VMmanager 6.









Hetzner type cluster creation form in VMmanager 6







Local storage



VMmanager 5 supports file storage and LVM. In one cluster there can be nodes with different types of storage (as time has shown, the mechanism turned out to be unclaimed, and it required a lot of resources). The panel also supports a large number of different types of network attached storage. In the sixth version, in the next releases we will implement support for the most popular of them - Ceph-storage.







VMmanager 6 supports file storage and LVM. In one cluster, there can be no nodes with different types of storage. This eliminates migration problems - they are inevitable if some of the disks are in file storage, and some are in LVM.







System requirements



VMmanager 5 : a clean server with CentOS 6 and 7, 100-150 GB for the root partition.







VMmanager 6 : a clean server with CentOS 7, a dual-core processor with a frequency of 3 GHz, 4 GB of RAM, 40 GB of disk space. The server does not have to be iron, virtual will do.







Price / Transition



VMmanager 5 costs 8 euros per node per month, 80 - if you buy for a year. Each new node costs 8 euros. Now only those who have already purchased a license for VMmanager 5 can purchase it.







The cost of VMmanager 6 consists of two parts: the price of nodes and a package of virtual machines.









For customers with active VMmanager 5 licenses, a special offer for the purchase of VMmanager 6 is valid. Conditions and details about migration can be found in the announcement on the ISPsystem website .







Conclusion



The fifth and sixth generation of VMmanager is suitable for managing virtualization. But the difference between them is big. To summarize:









VMmanager 6 has already been rated by 30 providers. Reviews - in the announcement on the ISPsystem website.







The maximum details and specifics are in the documentation for VMmanager 5 and VMmanager 6 .









You can try VMmanager 6 for free right now. The trial version is valid for 30 days. To use it, leave a request and follow the instructions in the response letter.



All Articles