Introduction to Endurance Storage

Overview

Endurance is a new class of block and file storage from SoftLayer that brings best-in-class levels of durability and availability with an unmatched feature set. Built using industry standards and best practices, Endurance is designed to protect the integrity of the data and maintain availability through maintenance events and unplanned failures while providing a consistent performance baseline.

Endurance is available in multiple performance tiers to support varied application needs and has the following core features:

  • Consistent performance baseline
    • Provided through the allocation of protocol-level input/output operations per second (IOPS) to individual volumes
  • Block and file storage
    • Available for both block-based iSCSI LUNs and file-based NFS shares
  • Highly durable and resilient
    • Protects the integrity of the data and maintains availability through maintenance events and unplanned failures without the need to create and manage operating system-level redundant array of independent disk (RAID) arrays
  • Snapshots
    • Captures point-in-time data snapshots non-disruptively
  • Replication
    • Automatically copies snapshots to a partner SoftLayer data center
  • Highly available connectivity
    • Uses redundant networking connections to maximize availability - iSCSI-based Block Storage uses Multipath I/O (MPIO) and NFS-based File Storage routed TCP/IP connections
  • Concurrent access
    • Allows multiple hosts to simultaneously access both block and file volumes
  • Clustered databases
    • Supports advanced use cases, such as clustered databases

Tiers

Endurance is available in three IOPS performance tiers to support varying application needs. Note: Once provisioned, you cannot migrate between tiers.

  • 0.25 IOPS per GB is designed for workloads with low I/O intensity. These workloads are typically characterized by having a large percentage of data inactive at a given time. Example applications include storing mailboxes or departmental level file shares.
  • 2 IOPS per GB is designed for most general purpose usage. Example applications include hosting small databases backing web applications or virtual machine disk images for a hypervisor.
  • 4 IOPS per GB is designed for higher-intensity workloads. These workloads are typically characterized by having a high percentage of data active at a given time. Example applications include transactional and other performance-sensitive databases.

Performance

IOPS are measured based on a 16KB block size with a 50/50 read/write mix. To achieve maximum IOPS on a volume, adequate network resources need to be in place. Other considerations include private network usage outside of storage and host side and application specific tunings (IP stack, queue depths, and so on).

Best Practices for block storage

Choosing the endurance block storage that is right for your workload is important, and equally important is how to avoid bottlenecks. Endurance storage is offered in .25 IOPS per GB, 2 IOPS per GB, and 4 IOPS per GB where an IOP is measured based on a 16KB block size with a 50/50 read/write mix. This is important because if you choose a block size larger than 16k the throughput is affected. The reason is that a 16k block is the equivalent of 1 write to the volume. Each multiple adds more writes decreasing the response time to the server. For example, a 64k block size is the equivalent to 4 writes to the volume.  Said another way, 4 IOPS per GB at 16kb block size is equivalent to 1 IOPS per GB at 64kb block size.

Knowing how many IOPS you are getting from your volume can help you determine what your throughput will be. As the way to calculate expected throughput is multiply Block size by IOPS (Block size * IOPS = Throughput). However, throughput can also be constrained by other factors. The speed of your Ethernet connection must be faster than the expected maximum throughput from your volume. For example, if you have 6000 IOPS and are using a 16k block size the volume is capable of approximately 94 MB per second. If you have a 1 Gbps Ethernet connection to your LUN it will become a bottleneck when your servers attempt to utilize the maximum available throughput.

As a general rule you should not expect to saturate your Ethernet connection beyond 70% of the available bandwidth. If expected workload will require the maximum throughput of your volume it is recommended to ensure that your Ethernet connection speed can accommodate the necessary throughput. In the example above, 70% of the theoretical limit of a 1 Gbps Ethernet connection (125 MB per second) would allow for 88 MB per second. This would be a bottleneck if you were attempting to utilize the maximum throughput of 94 MB per second of your Endurance volume.

Another factor to consider is the number of hosts that are utilizing your Endurance volume. If there is a single host that is accessing the volume it may be difficult to realize the maximum IOPS available, especially at extreme IOPS counts (10,000s). If your workload requires high throughput it would best to configure at least 2 or 3 servers to access your Endurance volume to avoid a single server bottleneck.

While choosing the right tier of Endurance block storage for your workload it is key, it is equally important to use the block size, Ethernet connection speed, and number of hosts necessary to achieve maximum performance. If any of these parts do not align with the other it can have a significant impact on the resulting throughput.