Jelastic Cloud Storage Components

Jelastic Cloud Storage is a solution, which allows transforming low-cost hardware and network equipment into 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 Cloud Storage is a cluster. Jelastic Cloud Storage cluster consists of bare-metal servers, and each one 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 (including the contents of virtual machines and containers) in the form of fixed-size chunks and provides access to them. For better I/O load balancing and to ensure fault tolerance and HA availability in case of chunk servers' failure, data replication for Cloud Storage shall be set to 3:2 or higher.
  • User nodes - servers, where the VZ-based containers and virtual machines are running, and which consume the storage from Cloud Storage cluster chunk services.
Note: Even though Erasure Coding for Cloud Storage provides higher values of allocatable space for the entire cloud storage cluster - it is not recommended as a production solution for containers' data storing. Erasure Coding is designed for low-load scenarios and is suitable for storing static data only.

jelastic cloud storage requirements

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

And below, the following information regarding the Cloud Storage installation is presented:

General Requirements

For Jelastic 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, entirely dedicated to the 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 roughly 3 or 5 servers:

  • for clusters up to 15 servers with chunk service roles, MDS service role can be combined with chunk service and/or user nodes (i.e. some servers can be shared between MDS 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 MDS service role can be combined with user node 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 Jelastic Cloud Storage traffic should be provided, meeting the following requirements:

  • network should operate at least at 10 Gbps speed
  • ethernet switches should be non-blocking
  • please also check the network sizing guidelines below

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 Chunk, MDS and User Node roles, it’s strongly recommended not to share User Node roles with Chunk and MDS and run last at dedicated storage nodes.

Storage and Storage Devices Requirements

Each server in the cluster, regardless of which Cloud Storage 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 the Virtuozzo 7 operating system installation.

Servers with chunk services export local directories as an internal storage backend for the Cloud Storage 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 to export individual disks as separate single-disk RAID 0 arrays or JBOD block devices.

Consider the following regarding the RAID controllers usage:

  • configure passthrough for each drive to be exported for chunk service
  • if it is not supported by the RAID controller, configure separate RAID0 for every drive (do not include other drives in this RAID0)
  • make sure RAID controller cache is battery-protected

SSD drives considerations:

  • if you use HDD drives for Jelastic Cloud Storage backend on chunk servers, SSD drives are recommended for write journaling on chunk services
    • this might increase overall cluster performance up to 2 and more times
    • there might be more than one SSD drive needed, which depends on the number of HDDs and the speed of SSDs you have
    • for proper sizing, please contact Jelastic Operations team
  • consider server-grade SSDs
  • consider SSD drives with support for data protection on power loss

Please, contact the Jelastic Operations team if you have questions.

Network considerations:

  • use a separate network for the Cloud Storage traffic
  • network should operate at least at 10 Gbps; 25 Gbps is recommended
  • Ethernet non-blocking switches usage is recommended
  • network bonding is recommended for better reliability

Storage sizing guidelines

  • usually, each data chunk is stored in several replicas as a pre-requirement for HA, achieving redundancy and IO load balancing
  • to roughly calculate the usable data in the cluster, refer to Virtuozzo documentation

VM Usage

Running Jelastic Cloud Storage cluster on virtual machines instead of bare-metal servers will result in severe performance degradation of your storage; hence such a configuration can be applied only for evaluation purposes.

What’s next?