Marco's Blog

Here you can find my thoughts

Virtualization 2: Cluster and Pool

Definitions

Let’s start with the definitions

  • Pool: it is a group of virtual machines that share the same configuration and are managed as a single entity. It may be used to provide access to multiple users or applications without requiring dedicated physical hardware for each one. A pool can also enable load balancing, high availability, and scalability for virtual machines. A pool helps you optimize the use of your hardware resources, simplify the management of your virtual machines, and improve performance and availability. There are different types of pools in virtualization, depending on the resource that is being virtualized. For example:
    • virtual desktop pool is a group of virtual machines that run desktop operating systems and applications.
    • virtual server pool is a group of virtual machines that run server operating systems and applications.
    • virtual storage pool is a group of virtual storage devices that abstract physical storage resources, such as disks, flash drives, or tapes.
  • Cluster: it is a group of physical servers that work together to provide high performance, availability, and scalability for the virtual machines running on them. A cluster can be used to distribute the workload among multiple servers, balance the load, and ensure that the virtual machines can continue to run even if one or more servers fail. It may help you improve the efficiency, reliability, and flexibility of your virtual machines, simplify the administration and maintenance of your physical servers, and support various applications and use cases. There are different types of clusters in virtualization, depending on the purpose and architecture of the cluster. For example:
    • high-performance computing (HPC) cluster is a group of servers that use massively parallel computing to process large and complex problems at extremely high speeds. 
    • virtual machine cluster is a group of servers that run a common virtualization platform, such as VMware or oVirt, and share the same storage and network resources. Virtual machine clusters enable the creation and management of multiple virtual machines on a single platform and provide features such as live migration, high availability, and backup.
    • virtual cluster is a group of virtual machines that run within an existing Kubernetes cluster and act as independent clusters. Virtual clusters enable the isolation and separation of different workloads or tenants within the same physical cluster and provide features such as resource quota, network policy, and RBAC.

Virtual Machine Cluster

I will speak more in detail about the VMware environment but the following informations are the same for all the types of hypervisors.

Benefits

A virtual machine cluster in VMware is a group of ESXi hosts that run a common virtualization platform and share the same storage and network resources. A virtual machine cluster can unlock some very useful features in the VMware environment, all kinds of features that brought us to cloud virtualization. Some of them are the following:

  • High Availability (HA): This feature monitors the availability of the virtual machines and hosts in the cluster, and automatically restarts the virtual machines on other hosts if a host fails or becomes isolated from the network.
  • Flexibility with Distributed Resource Scheduler (DRS): This feature balances the workload and resources among the hosts in the cluster, and automatically migrates the virtual machines to other hosts based on their resource demands and predefined rules. We will discuss it in another post.
  • Storage DRS: This feature balances the storage space and I/O load among the datastores in the cluster, and automatically moves the virtual machine disks to other datastores based on their space utilization and performance.
  • vMotion: This feature enables you to migrate live virtual machines between hosts in the cluster without downtime or service disruption.
  • Storage vMotion: This feature enables you to migrate live virtual machine disks between data stores in the cluster without downtime or service disruption.

Limits

The befits of a cluster come with some draws back. In order to create a cluster there are several limitations and requirements to adhere by.

  • Processor compatibility: The hosts in the cluster must use processors that are compatible with each other and support hardware virtualization. 
  • Licensing: The hosts in the cluster must be licensed for Fault Tolerance, which is a feature that provides continuous availability for virtual machines by creating and maintaining a secondary copy of the virtual machine on another host.
  • Networking: The hosts in the cluster must have Fault Tolerance logging and vMotion networking configured.
  • Storage: The virtual machine files (except for the VMDK files) must be stored on shared storage, such as Fibre Channel, iSCSI, vSAN, NFS, or NAS. The VMDK files can be stored on local or shared storage.
  • Devices and features: The virtual machines in the cluster must not have any unsupported devices attached to them, such as USB devices, sound cards, or serial ports. They must also not use any incompatible features, such as snapshots, linked clones, or encryption.
  • Memory reservation: The memory reservation of a fault-tolerant virtual machine is set to the virtual machine’s memory size when Fault Tolerance is turned on.

TL;DR

A cluster is a group of physical servers that work together to provide high performance, availability, and scalability for the virtual machines running on them.

A pool is a group of virtual machines that share the same configuration and are managed as a single entity.

A cluster can use a pool to provide access to multiple users or applications without requiring dedicated physical hardware for each one. A pool can also enable load balancing, high availability, and scalability for virtual machines.

For example, you can create a virtual desktop pool that consists of multiple virtual machines that run desktop operating systems and applications. You can then assign the virtual desktop pool to a cluster of servers. This way, you can provide remote access to the virtual desktops for your users, and leverage the features of the cluster, such as HA, DRS, and vMotion.

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *