Parallels Cloud Storage Cluster Components

Parallels Cloud Storage is a solution, that allows to transform low-cost commodity storage hardware and network equipment into a protected enterprise-level storage. It is optimized for storing large amounts of data and provides replication, high-availability, and self-healing features for the data.

The basic element of PCStorage is a cluster. Parallels Cloud Storage cluster consists of bare-metal servers, each of which can be assigned any combination of the following 3 roles:
  • Metadata service (MDS), which stores metadata about chunk servers and controls how files are keeping the contents of virtual machines, how containers are split into chunks, and where these chunks are located.
  • Chunk service, which stores all the data on local disks of the server it runs on (including the contents of virtual machines and containers) in the form of fixed-size chunks, and provides access to these chunks. For better I/O load balancing and to ensure fault tolerance and HA availability in case of CS servers' failure, data replication for Cloud Storage shall be set to 3:2 or higher.
  • Clients - servers, where the PCS-based containers and virtual machines are running, and which consume the storage from Parallels Cloud Storage cluster chunk services.

For better understanding, please check the Parallels Cloud Storage documentation. In case you have any questions remained, please contact Jelastic Operations team.

And below, the following information regarding the PCStorage installation is presented:

General Requirements

For Parallels Cloud Storage cluster itself, you need to provide at least 5 bare-metal servers (9 or more servers are recommended) with a separate internal network, fully dedicated to the Parallels Cloud Storage, and with some specific requirements configured for disks and networking. Each server can be assigned any combination of the abovementioned 3 roles, but the following rules should be followed:

  1. Chunk services should be run on at least 5 servers (9 or more recommended for better performance)
  2. MDS services should be run on 5 servers:
    • for clusters up to 15 servers with chunk service roles, MDS service role can be combined with chunk service and/or clients; in other words, some servers can be shared between MDS service role and chunk service role
    • for larger clusters, MDS service role should be run on dedicated servers (i.e. with no roles combining).
  3. Chunk service role and/or MDS service role can be combined with client role on the same server. Please remember that in case of large clusters, MDS service should be run on separate servers.
  4. A separate network for Parallels Cloud Storage traffic should be provided, which meets the following requirements:
    • network should operate at least at 1Gbps speed
    • ethernet switches should be non-blocking
    • please also check the network sizing guidelines here  
  5. On each server with MDS service, 1 GB of RAM should be added per each 100 TB of the total storage in the cluster.

Note: While single Cloud Storage cluster node can share CS, MDS and Client roles it’s strongly recommended not to share Client roles wth CS and MDS and run last at dedicated storage nodes.

Storage and Storage Devices Requirements

Each server in the cluster, regardless of which PCStorage role it is assigned, should have 100-120 GB of reliable RAID1 level storage (or similar in terms of reliability - 2 disks for Linux LVM mirror) for Operating System installation. The Operating System that should be installed is Parallels Cloud Server 6.

Servers with chunk services export local directories as internal storage backend for the PStorage cluster, and data chunks are stored in these directories. In every such directory, the separate ext4 file system should be mounted. This ext4 filesystem should fill exactly one disk, and this disk should not be shared with other file systems. No RAID1 / RAID5 / RAID6 / LVM / dmraid configuration should be used for these file systems; however, RAID controllers still can be used.

Consider the following regarding the RAID controllers usage:
  • configure passthrough for each such drive to be exported for Chunk Service
  • if it is not supported by RAID controller, configure separate RAID0 for every such drive (do not include other drives in this RAID0)
  • make sure RAID controller cache is battery-protected

SSD drives considerations
  • SSD drives are recommended for caching purposes on PStorage clients. Using SSDs in this case might increase overall cluster performance by up to 10 and more times
  • if you use HDD drives for PStorage backend on Chunk servers, SSD drives are recommended for write journaling on Chunk Services
    • this might increase overall cluster performance by up to 2 and more times
    • there might be more than one SSD drive needed, depends on number of HDDs and the speed of SSDs you have, please check details here
    • for proper sizing, please contact Jelastic Operations team
  • SSD drives can be used for data chunk file systems, and you will not need another SSDs for journaling purposes in this case
  • please consider server-grade SSDs, some details here and here
  • please consider SSD drives with support for data protection on power loss

Please, contact Jelastic Operations team if you have questions on this.

Network considerations
  • use separate network for Parallels Cloud Storage traffic
  • network should operate at least at 1Gbps; 10Gbps is recommended
  • Ethernet non-blocking switches usage is recommended
  • in case of 1Gbps speed, please use 1Gbps link per each 2 drives.
  • network bonding is recommended for better reliability

Storage sizing guidelines
  • each data chunk is stored usually in 3 replicas, to achieve redundancy, IO load balancing, and as a pre-requirement for HA
  • to understand, how much usable data roughly you will get in the cluster, just divide the total amount of storage (exported under Chunk Service control) by the number of replicas

Virtualization Technologies Usage

Running Parallels Cloud Storage cluster on virtual machines instead of bare-metal servers might result in serious performance degradation and data loss, hence such a configuration can be applied only for evaluation purposes.

Running PStorage Services with Jelastic Services on Same Servers

Jelastic services can be run on servers of Parallels Cloud Storage Cluster. To be more precise:
  • infra nodes of Jelastic SHOULD NOT be run on servers with client role
  • user nodes of Jelastic SHOULD be run only on servers with client role
  • for each server, the overall requirements should be combined: PStorage + Jelastic