How Ceph Storage Architecture Improves Cloud Hosting Services
Related Articles
The main advantage of Cloud Hosting is the fact that the chances of downtime are greatly reduced as the resources required for running and maintaining your website are spread across an array of servers working together. But this ability greatly depends upon the kind of storage architecture that is used in Cloud Hosting. When you are looking to select Cloud Hosting Services for your website, it is always a good idea to look at which kind of Storage architecture is applied by your Cloud Hosting Service provider. In this post, we are going to talk about Ceph storage architecture and how it helps the overall reliability of Cloud Hosting Service.
Ceph Storage Architecture is an Open Source software born in 2003 as the outcome of Sage Weil’s doctoral dissertation and then released in 2006 under the LGPL 2.1 license, designed to provide scalable object, block and file-based storage under a centralized system.
To understand how Ceph architecture improves scalability and availability across Cloud Hosting, we should first understand how traditional storage systems work. Under this architecture, to store or retrieve data, clients talk to a centralized component known as a controller or gateway. These storage controllers act as a single point of contact for a client’s request. It can be seen in the block diagram below:
In the above traditional storage system, the Storage gateway acts as the single point of entry to the storage shelves and incidentally also becomes a single point of failure. These two aspects lead to two drawbacks, 1) limitation of scalability and performance and 2) Threat to data loss due to a single point of failure.
Ceph does not follow this traditional storage architecture; it has been totally reinvented for the next-generation of storage. Ceph storage architecture makes use of Ceph OSDs (Object Store Devices). Each Ceph Storage Device node runs one or more Ceph OSD daemons, one per disk device. The OSD is a Linux process (daemon) that handles all operations related to its assigned disk (HDD or SSD). The OSD daemon accesses a local file system to store data and metadata rather than communicating with the disk directly. Ceph eliminates the centralized gateway by enabling the clients to interact with the Ceph OSD daemons directly. Multiple Ceph ODSs are put together to form ODC Clusters to enable high processing.
Apart from the Ceph OSDs, Ceph storage architecture also makes use of Ceph Monitor Nodes. A Ceph Monitor daemon maintains a master copy of the cluster map. Although a Ceph cluster can work with a single monitor, having more ensures high availability. A majority of monitors is needed to establish a quorum; therefore, an odd number of monitors is recommended. For example, both three and four monitors protect against a single failure, while five monitors protect against two failures. The block diagram of Ceph Storage Architecture can be seen below:
Furthermore, to understand how Ceph Storage Architecture avoids single point failure, The CRUSH (Controlled Replication Under Scalable Hashing) plays an important role. Ceph storage makes use of redundancy of primary OSD into secondary OSD. The primary OSD is responsible for data replication, coherency, rebalancing and replication. Each secondary OSD is ready to become primary. However, if the replication is not controlled, it could lead to making the database heavy and increase latency. That is overcome by CRUSH by configuring it to create recommended/required number of data replicas, data affinity and distribution. It is designed in such a way that small changes to the cluster require a small amount of data to be copied/moved from one OSD to another.
This ultimately leads to having a more stable, reliable and efficient storage architecture with no single point failure. There are few top of the line Cloud Hosting providers who have adopted Ceph Storage Architecture as the default storage architecture for their Cloud Hosting Services. If you are looking to move to Cloud Hosting, knowing this information should help you understand what to look for and choose the right Cloud Hosting Services for your valuable website. Hope this sheds some light and makes your decision making easier. Please feel free to share your thoughts in the comments section below and if you have any follow up question, I would be more than happy to address them!