Scale-out and scale-up architectures—also known, respectively, as horizontal scaling and vertical scaling and scale in and scale down—refer to how companies scale their data storage: by adding more hardware drives (scale up/vertical scaling), or by adding more software nodes (scale out/horizontal scaling). Scale-up is the more traditional format, but it runs into space issues as data volumes grow and the need for more and more data storage increases. Hence, the advent of scale-out architectures.
This is a very high-level description of the two main methods of scaling data storage capacity, so let’s delve into it a little deeper.
What Is Scale-up Architecture?
In a scale-up data storage architecture, storage drives are added to increase storage capacity and performance. The drives are managed by two controllers. When you run out of storage capacity, you add another shelf of drives to the architecture.
What Is Scale-out Architecture?
A scale-out architecture uses software-defined storage (SDS) to separate the storage hardware from the storage software, letting the software act as the controllers. This is why scale-out storage is considered to be network attached storage (NAS).
Scale-out NAS systems involve clusters of software nodes that work together. Nodes can be added or removed, allowing things like bandwidth, compute, and throughput to increase or decrease as needed. To upgrade a scale-out system, new clusters must be created.
How Are Scaling In and Scaling Down Different?
Vertical-scaling (i.e., scaling in) and horizontal-scaling (i.e., scaling down) architectures differ in the way they scale data storage. Decoupling storage software from storage hardware in the scale-out model allows companies to expand their storage capacity when and how they see fit. With scale-up architectures, on the other hand, another piece of proprietary hardware has to be added to be able to scale.
Advantages of Scale-up Architecture
Scaling up offers certain advantages, including:
- Affordability: Because there’s only one large server to manage, scaling up is a cost-effective way to increase storage capacity since you’ll end up paying less for your network equipment and licensing. Upgrading a pre-existing server costs less than purchasing a new one. Vertical scaling also tends to require less new backup and virtualization software.
- Maintenance: Since you have only one storage system to manage versus a whole cluster of different elements, scale-up architectures are easier to manage and also make it easier to address specific data quality issues.
- Simpler communication: Since vertical scaling means having just a single node handling all the layers of your services, you don’t need to worry about your system synchronizing and communicating with other machines to work, which can lead to faster response times.
Disadvantages of Scale-up Architecture
The disadvantages of scale-up architectures include:
- Scalability limitations: Although scaling up is how enterprises have traditionally handled storage upgrades, this approach has slowly lost its effectiveness. The RAM, CPU, and hard drives added to a server can only perform to the level the computing housing unit allows. As a result, performance and capacity become a problem as the unit nears its physical limitations. This, in turn, impacts backup and recovery times and other mission-critical processes.
- Upgrade headaches and downtime: Upgrading a scale-up architecture can be extremely tedious and involve a lot of heavy lifting. Typically, you need to copy every piece of data from the old server over to a new machine, which can be costly in terms of both money and downtime. Also, adding another server to the mix usually means adding another data store, which could result in the network getting bogged down by storage pools and users not knowing where to look for files. Both of these can negatively impact productivity. Also, with a scale-up architecture, you need to take your existing server offline while replacing it with a new, more powerful one. During this time, your apps will be unavailable.
Advantages of Scale-out Architecture
The advantages of scale-out architecture include:
- Better performance: Horizontal scaling allows for more connection endpoints since the load will be shared by multiple machines, and this improves performance.
- Easier scaling: Horizontal scaling is much easier from a hardware perspective because all you need to do is add machines.
- Less downtime and easier upgrades: Scaling out means less downtime because you don’t have to switch anything off to scale or make upgrades. Scaling out essentially allows you to upgrade or downgrade your hardware whenever you want as you can move all users, workloads, and data without any downtime. Scale-out systems can also auto-tune and self-heal, allowing clusters to easily accommodate all data demands.
Disadvantages of Scale-out Architecture
The disadvantages of horizontal scaling include:
- Complexity: It’s always going to be harder to maintain multiple servers compared to a single server. Also, things like load balancing and virtualization may require adding software, and machine backups can also be more complex because you’ll need to ensure nodes synchronize and communicate effectively.
- Cost: Scaling out can be more expensive than scaling up because adding new servers is far more expensive than upgrading old ones.
Which One Is Best: Scale-out or Scale-up?
The answer depends on your particular needs and resources. Here are some questions to think about:
- Are your needs long term or short term?
- What’s your budget? Is it big or small?
- What type of workloads are you dealing with?
- Are you dealing with a temporary traffic peak or constant traffic overload?
Once you’ve answered those questions, consider these factors:
- Cost: Horizontal scaling is more expensive, at least initially, so if your budget is tight, then scaling up might be the best choice.
- Reliability: Horizontal scaling is typically far more reliable than vertical scaling. If you’re handling a high volume of transactional data or sensitive data, for example, and your downtime costs are high, you should probably opt for scaling out.
- Geographic distribution: If you have, or plan to have, global clients, you’ll be much better able to maintain your SLAs via scaling out since a single machine in a single location won’t be enough for customers to access your services.
- Future-proofing: Because scaling up uses a single node, it’s tough to future-proof a vertical scaling-based architecture. With scaling out, it’s much easier to increase the overall performance threshold of your organization by adding machines. If you’re planning for the long term and operate in a highly competitive industry with lots of potential disruptors, scaling out would be the best option.
In short, if you have a bigger budget and expect a steady and large growth in data over a long period of time and need to distribute an overstrained storage workload across several storage nodes, scaling out is the best option. If you haven’t yet maxed out the full potential of your current infrastructure and can still add CPUs and memory resources to it and you don’t anticipate a meaningfully large growth in your data set over the next three to five years, then scaling up would likely be the best choice.
Get Pure FlashBlade for an Agile, Scale-out Architecture
If you decide to go with scaling out, you’ll want to look into getting the most powerful and agile storage software available: Pure Storage® FlashBlade®. FlashBlade offers unified fast file and object (UFFO) storage. It’s the industry’s most advanced all-flash storage solution for consolidating fast file and object data.
- High performance: FlashBlade goes beyond the capabilities of traditional scale-out NAS and provides massive throughput and parallelism with consistent multidimensional performance. Simply add blades to scale capacity and performance.
- Agile scale-out architecture: FlashBlade’s metadata architecture can handle tens of billions of files and objects with maximum performance and rich data services.
- Simplified workload consolidation: FlashBlade offers AI-powered storage management with easy updating and managing thanks to automated APIs.