Hyperstone
Promo 7 Tips For Designing Storage Systems

Storage Systems: 7 Tips for Robust and Reliable Designs

June 22, 2023
Storage system design involves many decisions and tradeoffs due to the range of options available, including flash controllers. Here are seven considerations that can help solve the storage puzzle.

Members can download this article in PDF format.

What you’ll learn:

  • How to define and understand requirements for a quality storage system and ultimately setting the right foundation.
  • How to navigate challenges such as power failures.
  • Why aligning with the right partner is critical for success.

Embedded system design is a complex game. In pursuit of a NAND flash-based storage system that’s both reliable and robust, one must consider many different factors. Chief among them is the flash controller.

When it comes to SSDs, USB flash drives, eMMC modules, SD cards, and other forms of managed NAND devices, the controller plays a pivotal role, as it’s responsible for regulating system behavior and reliability. Designers are further tasked with optimizing flash controllers for peak performance and cost efficiency, particulars that vary depending on specific industry and use-case demands.

However, while the controller is an integral part of storage system design, it’s only one piece of the puzzle. With an array of systems and controllers available, designers face an overwhelming abundance of considerations, decisions, and tradeoffs. And for teams seeking industrial-grade, high-reliability storage systems, the stakes are high.

To design a robust and reliable storage system, consider these tips:

1. Define and understand your storage system requirements.

Quality storage system design begins with setting the right foundation. This means creating a clear-cut picture of what exactly you need from a storage system. For example:

  • What are your specific use cases?
  • What demands will be put on your system?
  • What industry requirements must you comply with?

Reckoning with these questions is a key part of the design process. For one, different use cases will bear different effects on the performance and the lifetime of the system. Similarly, different industries often have different storage requirements, which means you can't simply search for a one-size-fits-all design.

For instance, for consumer applications, reducing cost is often a primary concern, while for enterprises, performance is a decisive factor. In industrial applications, reliability more often takes priority.

Without making the proper considerations, teams can end up designing a storage system that simply doesn't suit the primary needs of their industry. In the long run, this can lead to system failures, unexpected expenses, and customer complaints.

Conversely, designing a storage system that’s a custom-fit for your specific needs prepares you for success from the get-go. To develop that custom-fit design, teams first need to clearly understand their unique requirements.

2. Know how storage system performance really works.

Of course, optimal performance is the goal of any storage system. But there’s often confusion about how performance really works.

Most importantly, data storage system designers need to remember that performance deteriorates over time. This deterioration is inevitable, as NAND flashes (see figure) have a limited number of program/erase (P/E) cycles. Thus, a stark difference exists between fresh-out-of-the-box (FOB) performance and steady-state performance.

FOB performance is how a flash drive performs when it’s new. Typically, FOB performance is very high performing; unfortunately, it’s not the real performance you'll experience over time. As the drive becomes more filled up (i.e., as more data is added and old data is erased), more demands are placed on the flash controller, which ultimately sacrifices performance.

This deteriorated performance is considered the system’s steady-state performance. However, designers can’t easily predict this performance. While a quality controller can be game-changing for performance, it remains crucial to work with a design team who really knows the ins and outs of such performance.

3. Prepare for power failures.

It’s inevitable. Power failures happen. While you can’t avoid them altogether, you can design a system to be prepared for such outages—and you should. Neglecting to consider if your device is power fail-safe can lead to disastrous consequences down the line. For example, a power failure can cause corrupted data, costly downtime, a damaged reputation, etc.

When designing a storage system, then, it’s paramount that teams consider how susceptible their system may be to unexpected power failures. In industrial environments where the consequences of outages are dire, steps should be taken to ensure devices are power fail-safe.

Again, using the right flash controller can prove the difference. For example, in the event of a power failure, some controllers will recover the last valid entry based on the log of recent flash transactions, while others won’t. A controller can also monitor the supply voltage. Should a voltage drop be detected, and a power fail occur, the controller can stop flash accesses early, thus preventing unwanted problems.

No matter the industry, the hallmark of reliable storage system design is one that’s prepared for the unexpected.

4. Trade capacity for more performance and reliability when designing storage systems.

Peak performance and reliability are always top requests in storage system design. And in some cases, it’s possible to enhance performance and reliability by giving up storage capacity.

For example, industrial automation, networking, and robotics all demand top-tier reliability, endurance, and speed. For this reason, industrial design teams often turn to single-level-cell (SLC) flash. SLC flash provides faster write performance and greater reliability than triple-level-cell (TLC) flash. This is partially because SLC flash stores one bit per cell, while MLC flash stores three bits per cell. SLC flash is, however, more costly.

If you want to design a storage system that can deliver performance and reliability close to SLC at a lower cost premium, you may want to consider using pseudo SLC (pSLC) flash. By using TLC flash but only storing one bit per cell, capacity is traded to enhance performance and reliability for a more attractive price compared to native SLC flash.

Similar effects can be achieved through over-provisioning (OP), where specific flash storage areas are reserved for the controller management data, thus reducing the available space to store user data. Design teams can modify this dedicated OP space to suit their specific industry preferences. In this way, OP is another cost-effective solution to trade capacity for enhanced performance and reliability in storage system design.

5. Ensure device health with SMART monitoring tools.

No matter its design, all storage systems inevitably have limited lifetimes. Some of the many factors that impact the length of a system’s lifetime include P/E cycles, specific use cases, environmental conditions, etc. While you can alleviate some symptoms of an aging storage system with scheduled maintenance, even regular maintenance can’t make a system live forever.

That’s why health monitoring plays such an important role in managing and maintaining storage systems. In addition to monitoring the lifetime of a flash device, health-monitoring tools also help you ensure reliable operations and prevent unexpected system failures. Health monitoring is particularly essential in industrial environments, where costs are high and mission-critical applications are the norm.

Self-monitoring, analysis, and reporting technology (SMART) tools bring new levels of power and precision to storage-system management. For example, with SMART as part of your system, a flash controller can gather and deliver data about the status of the NAND flash. Should there be an imminent failure threatening the device, the controller can alert you with a report of vital statistics.

6. Storage system design teams should consider total cost of ownership.

There’s no escaping the issue of cost in storage system design. But while initial purchase price may get a lot of attention, what design teams should really pay attention to is total cost of ownership (TCO).

Notably, TCO encompasses much more than just purchase price. It includes all of the operating expenses of the system over its lifetime, e.g., power, maintenance, repair, replacement. Moreover, TCO includes expenses incurred due to diminished performance and reliability, security breaches, backup and recovery, etc. In fact, in most industrial environments, the purchase price is merely a fraction of TCO. 

While a cheaper purchase price may seem appealing, it often leads to greater TCO down the line. For example, cheap controllers have fewer features and hardware support. This makes them more prone to issues like non-optimal wear-leveling and poor error-handling, which can reduce a system’s lifetime.

In some cases, the cost of one system failure can easily end up costing more than the purchase price. Ultimately, if you cut costs in system design, you risk greater chances of lost data, downtime, and a higher TCO—none of which are worth a lower purchase price.

7. Identify the right partner when developing a storage system.

Above all, when designing a storage system, your first task is to find the right partner. Between performance requirements, health-monitoring tools, preparation for power failures, and TCO, many decisions, considerations, and tradeoffs must be made. Particularly, if a storage system is vital for your applications, if it holds sensitive data, or if a system failure could cause costly downtime, then identifying a partner who has the competence and experience to support you through the demanding design process is key to the ultimate efficacy of your system.

Today, a wide range of flash controllers are available, each with different interface options and quality levels. But due to the physical characteristics of NAND flash memory, reliable data processing is only possible with a quality NAND flash memory controller that enables the NAND flash to be used in demanding applications.

Companies such as Hyperstone help provide reliable NAND flash memory controllers for industrial and embedded NAND flash-based storage solutions that combine highest reliability with a long system lifetime to satisfy the requirements of the most demanding industrial applications.

Embedded system design is a demanding undertaking. But working with the right partner and following the above tips will prepare you for excellence.

Comments

To join the conversation, and become an exclusive member of Electronic Design, create an account today!