VirtuStor is storage software bundled with Linux operating system that is installed on each baremetal server in the VirtuStor cluster. The cluster needs to have a minimum of 3 physical servers. VirtuStor can be installed on any server that supports Linux (essentially any x86 based server).
VirtuStor has four software modules – storage, monitor, iSCSI, and management.
The storage software module is responsible for the placement and retrieval of data in Linux filesystem that controls the storage media (hard drives and SSDs) in each server. This module runs on every server that carries SSDs and/or HDDs for storing data. It is also responsible for replicating data to one other server in the cluster to protect against data loss if the server or storage media were to fail.
The monitor software module continuously monitors the health of all the components of VirtuStor and alerts administrators to failures.
iSCSI – this is software that presents the VirtuStor cluster to any servers / VMs connected to it over iSCSI SAN protocol.
All three software modules can be co-located on the same physical servers, and a minimum of three instances of each software running on three separate servers in the cluster provide resiliency in case a server were to fail.
VirtuStor’s management module is the graphical user interface used to manage VirtuStor.
Enterprise storage has 3 aspects – capacity, performance, and redundancy
Capacity – You add SATA hard drives or SATA SSDs to each server and scale up storage linearly. Since most servers support hot swap SATA slots and VirtuStor doesn’t rely on RAID, HDDs or SSDs can be added hot without requiring any downtime. If all the SATA slots on all the servers have been used up, an additional server needs to be added to the cluster to increase capacity. This server can be added ‘hot’ as well.
Performance – The performance of VirtuStor relies on SSDs either in the VirtuStor servers or VMware hosts that are connected to VirtuStor. You can create an all-SSD VirtuStor cluster or a hybrid cluster with SSDs and HDDs in each server. A higher performing configuration for VMware customers would be to use VirtuCache (Virtunet’s host side caching software) installed in the VMware host operating system to cache frequently used data from VirtuStor to in-VMware host SSDs or RAM. This configuration is available to VMware customers only, since VirtuCache works for VMware only. A low latency VirtuStor cluster would also need 10gbps network for iSCSI and VirtuStor replication.
VirtuStor’s support for high availability and fault tolerance is because of the fact that VirtuStor replicates data across multiple storage media across servers in the same cluster. At least one additional copy of the data is kept on at least one additional hard drive and server. This architecture ensures that in case of failure of a server, hard drive, server NIC, and any instance of any VirtuStor software component, there is no data loss. The failed component can then be replaced without incurring any downtime. If you are very conservative, you could choose to replicate data 2-way, thus keeping three copies of the same data on 3 different servers. However increasing the replication factor will consume additional bandwidth on your IP network.
Handling failure situations – If you have configured VirtuStor for replication factor of 1 and if a hardware component fails, storage will not be affected and the failed part can be replaced without any downtime. Now if two of the same components (say 2 servers) fail at the same time, then the cluster will move to a read only mode to prevent losing or corrupting data. However since writes cannot be committed anymore, VirtuStor will not be operational till the failed component is replaced.