-
Jan Siwiec authoredJan Siwiec authored
Virtualization
Running virtual machines on compute nodes.
Introduction
There are situations when our clusters' environment is not suitable for user's needs:
- Application requires a different operating system (e.g. Windows) or it is not available for Linux;
- Application requires a different versions of base system libraries and tools;
- Application requires specific setup (installation, configuration) of a complex software stack;
- Application requires privileged access to the operating system;
- ... and combinations of the above cases.
The solution for these cases is virtualization. Clusters' environment allows to run virtual machines on compute nodes. Users can create their own images of the operating system with a specific software stack and run instances of these images as virtual machines on compute nodes. Run of virtual machines is provided by the standard mechanism of Resource Allocation and Job Execution.
Solution is based on QEMU-KVM software stack and provides hardware-assisted x86 virtualization.
Limitations
Clusters' infrastructure and environment were s not designed for virtualization. Compute nodes, storages, and infrastructure is intended and optimized for running HPC jobs. This implies suboptimal configuration of virtualization and limitations.
Clusters' virtualization does not provide the performance and all features of a native environment. There is significant a performance hit (degradation) in I/O performance (storage, network). The virtualization is not suitable for I/O (disk, network) intensive workloads.
Virtualization has some drawbacks, as well. It is not so easy to set up an efficient solution.
The solution described in the HOWTO section is suitable for single node tasks; it does not introduce virtual machine clustering.
!!! note Consider virtualization as a last resort solution for your needs.
!!! warning Consult use of virtualization with IT4Innovations' support.
For running a Windows application (when the source code and Linux native application are not available), consider use of Wine, Windows compatibility layer. Many Windows applications can be run using Wine with less effort and better performance than when using virtualization.
Licensing
IT4Innovations does not provide any licenses for operating systems and software of virtual machines. Users are (in accordance with Acceptable use policy document) fully responsible for licensing all software running on virtual machines on clusters. Be aware of complex conditions of licensing software in virtual environments.
!!! note Users are responsible for licensing OS (e.g. MS Windows) and all software running on their virtual machines.