Analysts at Wikibon forecast that the big data market will grow at a 14.4 percent compound annual growth rate (CAGR) to $92.2 billion by 2026. Organizations are rethinking storage approaches to remain competitive, understanding that vertical scaling is no longer adequate for today’s storage needs. It can’t be done quickly enough or cost-effectively enough to meet demand. Consequently, more and more data centers are transitioning from a vertical architecture to software-defined storage (SDS).
Another recent arrival on the storage scene is hybrid cloud, which presents a way for organizations to gain the maximum amount of business flexibility from cloud architectures. This helps maximize budget efficiency and performance goals at the same time. Since hybrid cloud architectures are so new, many are still learning about the benefits and challenges associated with deploying a hybrid cloud approach. This article will offer some design elements you can use to ensure your hybrid cloud delivers the performance, flexibility, and scalability you need.
The Foundation: Scale-Out NAS
What makes a hybrid-cloud storage solution like this possible is scale-out, network-attached storage (NAS). Since hybrid cloud architectures are relatively new to the market—and even newer in full-scale deployment—many organizations are unaware of the importance of consistency in a scale-out NAS. Many environments are eventually consistent, meaning that files that you write to one node are not immediately accessible from other nodes. This can be caused by not having a proper implementation of the protocols, or not tight enough integration with the virtual file system. The opposite of that is being strictly consistent: files are accessible from all nodes at the same time. Compliant protocol implementations and tight integration with the virtual file system is a good recipe for success.
A hybrid cloud setup like this should be based on three layers. Each server in the cluster will run a software stack based on these layers.
- The persistent storage layer. This layer is based on an object store, which provides advantages like extreme scalability. However, the layer must be strictly consistent in itself.
- The virtual file system layer. It is in this second layer, the heart of any scale-out NAS, that features like caching, locking, tiering, quota, and snapshots are handled.
- The protocol layer. It contains the protocols like server message block (SMB) and network file system (NFS) but also integration points for hypervisors, for example.
It is very important to keep the architecture symmetrical and clean. If you manage to do that, many future architectural challenges will be much easier to solve.
It’s time now to focus on the storage layer. Because it is based on an object store, we can now easily scale our storage solution. With a clean and symmetrical architecture, we can reach exabytes of data and trillions of files.
The storage layer is responsible for redundancy, so a fast and effective self-healing mechanism is needed. To keep the data footprint low in the data center, the storage layer needs to support different file encodings. Some are good for performance and some for reducing the footprint.
Speeding Things up with Cache
Performance can be an issue for software-defined storage (SDS) solutions, so they need caching devices. From a storage solution perspective, both speed and size matter – as well as price; finding the sweet spot is important. For an SDS solution, it is also important to protect the data at a higher level by replicating the data to another node before de-staging the data to the storage layer.
As the storage solution grows in both capacity and features, particularly in virtual or cloud environments, supporting multiple file systems and domains becomes more important. Supporting multiple file systems is also very important. Different applications and use cases prefer different protocols. And sometimes it is also necessary to be able to access the same data across different protocols.
Metadata is a critical component of the virtual file system. Metadata are pieces of information that describe the structure of the file system. For example, one metadata file can contain information about what files and folders are contained in a single folder in the file system. That means that we will have one metadata file for each folder in our virtual file system. As the virtual file system grows, we will get more and more metadata files.
Centralized storage of metadata is a popular option, but that only works well for smaller setups. Here we are talking about scale-out. So, let’s look at where not to store metadata. Storing metadata in a single server can cause poor scalability, poor performance, and poor availability. Since our storage layer is based on an object store, a better place to store all our metadata is in the object store – particularly when we are talking about high quantities of metadata. This will ensure good scalability, good performance, and good availability.
For an enterprise with multiple sites, each site has its own independent file system. A likely scenario is that different offices have a need for both a private area and an area that they share with other branches. So only parts of the file system will be shared with others.
To provide the flexibility needed to scale the file system outside the four walls of the office, administrators can select a section of a file system and let others mount it at any given point in the other file systems – making sure that the synchronization is made at the file system level in order to have a consistent view of the file system across sites. Being able to specify different file encodings at different sites is useful, for example, if one site is used as a backup target.
Because this is a cloud storage solution, it requires support for hypervisors. Therefore, the scale-out NAS needs to be able to run as hyper-converged as well. Being software-defined makes sense here.
In this “flat Earth” scenario devoid of external storage systems, the scale-out NAS must be able to run as a virtual machine and make use of the hypervisor host’s physical resources. The guest virtual machine’s (VM’s) own images and data will be stored in the virtual file system that the scale-out NAS provides. The guest VMs can use this file system to share files between them, making it perfect for virtual desktop infrastructure (VDI) environments as well.
Now, why is it important to support many protocols? Well, in a virtual environment, there are many different applications running, having different needs for protocols. By supporting many protocols, we keep the architecture flat, and we have the ability to share data between applications that speak different protocols, to some extent.
A Better Storage Future
Taken together, all of these elements make a very flexible and useful storage solution: being software-defined, supporting both fast and energy-efficient hardware, having an architecture that allows us to start small and scale up, supporting bare-metal as well as virtual environments, and having support for all major protocols. This new architecture will serve organizations looking for a scalable solution to meet escalating storage demands.