Ceph is an open source file system originally designed for Linux. It offers easily scalable storage (object, block and file based) under a unified system. The storage clusters run on commodity hardware using an algorithm – CRUSH. This ensures that data distribution is even across the cluster. Also, the cluster nodes are able to retrieve data without any centralized bottlenecks.
A good storage architecture for hosting offers scalability, maintains the integrity of the data in a multi-user scenario, security of the data along with being cost efficient as compared to its physical storage counterparts.
Jump to your favourite topic
Let’s look at some features of Ceph Storage:
In Ceph Storage, all data is automatically replicated from one node to multiple other nodes. This way the data is automatically backed up on multiple nodes (which means servers) and in case one node fails, the data can always be retrieved from a different node. This can be a great feature for Cloud Hosting and the website data is made redundant and safe in case of disasters.
2. Erasure Coding
Data is stored in Ceph in replicated and erasure-coded pools. The replicated pools are used by default.
Now, Erasure Coding is a data protection mechanism wherein the data is broken into small fragments, encoded and subsequently stored in a distributed manner. Due to the architecture of Ceph, it uses Erasure Coding to offer additional data protection to users.
- The data is divided into ‘k’ chunks
- ‘m’ number of codes are added to the data for protection
- The total number of chunks created after the coding process
Hence, n = k + m
In case of a failure, Ceph retrieves the remaining ‘k’ and ‘m’ from the other OSDs and reconstructs the data.
3. Thin Provisioning
Thin provisioning is a method of optimizing the efficiency of a storage system. It ensures that the storage space is not occupied until the data is written. Ceph block devices are thin-provisioned, resizable and store data striped over multiple OSDs (Object Storage Daemon) in a Ceph cluster. By being thin provisioned, Ceph allows for quick cloning of virtual machines in Cloud Hosting. This helps service providers and enterprises consolidate virtual server images.
A snapshot is a read-only copy of the state of an image at a particular point in time. One of the advanced features of Ceph block devices is that you can create snapshots of the images to retain a history of an image’s state. Ceph also supports snapshot layering, which allows you to clone images (for example a VM image) quickly and easily. Which means I can access both the original and the snap using the same storage extent and essentially have hundreds of snaps pointing to the same extent. But, at the same time I can edit each snap individually which will not occupy the same storage as the original one does. Only the change in data is stored in separate storage extents. This saves a lot of space and also makes it easy to share information across multiple virtual environments.
Ceph Storage can be useful for hosting types like Cloud Hosting where the Cloud’s scalability and cost effectiveness can be coupled with Ceph’s data reliability and speed. If you think there are any other features that Ceph brings to the table and can make a difference in web hosting, please feel free to pen them down in the comments section below.