When a bunch of engineers gather for an impromptu lunch break, creative brainstorming can quickly turn into a killer strategic direction. It was at one such lunch where we got the idea: Could Scality make a file system run on Azure cloud object storage? After all, our Scale-Out File System (SOFS) technically already runs on object storage, and we thought porting it to another object storage platform should be possible. We also knew there was a need. Customers are turning to us for high performance with low-cost solutions in the cloud. So Scality engineers got to work, partnering with Microsoft to bring this idea to life.
Rising to meet the challenge: Build a high-performance, on-demand cloud file system on low-cost cloud object storage
The challenge had an interesting ‘ring’ to it (pun intended): Scality SOFS is a 10-year-old POSIX-compatible file system. Scality’s customers have been running SOFS in production for years—delivering high throughput workloads and holding multiple petabytes. Scalty SOFS in Azure would provide an extra layer of scalability. No more hardware to depend on for storage capacity, no capex, plus all the other advantages of cloud storage. And the added benefit of supporting “legacy” applications with SMB file protocol access.
Challenge accepted and won: Today, I’m excited to share Scality’s technical preview and the initial performance results for SOFS in the Azure Cloud. Leveraging the low cost of Azure Blob object storage, SOFS provides on-demand scaling and drives unlimited levels of performance and capacity with sufficient resources.Could Scality make a file system run on Azure cloud object storage? Turns out, we did! And performance/cost ratio is astonishing. Check it out! Click To Tweet
Let’s set the stage, How did we get here?
Before I jump in deeper, let’s take a step back. Starting in the early ‘90s, enterprise file systems and network-attached storage (NAS) devices became a prominent way to solve problems in data storage. They offered a simpler way to manage data as files, versus the previous block storage model. These solutions also enabled file sharing for groups of users, and introduced enterprise IT to standard network file storage protocols such as NFS and SMB. These protocols are still with us today, and are another reason for the popularity of network file storage and NAS solutions.
As the internet boom took off in the early 2000s, users encountered some genuine limitations in existing file systems and NAS technologies. New use cases began to emerge at “internet and cloud-scale,” which meant that storage now had to handle millions to billions of files and petabytes of data. But we had to be careful about how many files we stored because, ultimately, there were limits in capacity and performance per file system and per directory. This went way beyond the capabilities of the current generation of file systems, and thus it sparked a whole new generation of scale-out file system solutions. These newer scale-out solutions promised to grow to much higher levels of capacity and performance, essentially allowing a single deployment to do the job of several traditional non-scalable devices.
What are the differences between object, NAS and file storage?
Today’s scale-out cloud file systems are readily available but expensive. Fast forward and we now have a wide variety of scale-out file systems from multiple vendors, including a plethora of cloud file systems as offered by the large cloud vendors themselves (AWS, Azure, Google) and by 3rd party storage vendors. Offerings today include AWS Elastic File System (EFS), Azure files, Google Filestore and many more. A common characteristic of these file systems is that they depend on higher-end (premium) and high-cost classes of storage as their persistence layer, in order to deliver high file system performance. We see three flavors of this:
- Instance storage in cloud VMs (typically the most costly approach)
- Block storage services (such as AWS EBS or Azure Disk Storage)
- Vendor-specific hardware appliances (such as Netapp Cloud Volumes Service for Google or NetApp Azure files, essentially a NAS filer appliance managed by the cloud service provider)
1 Terabit per second throughput with Scality RING on Azure Blob
To realize the dream of Scality on Azure, we ported our SOFS customer-proven code base (remember it’s been deployed for a decade in many multi-petabyte enterprise deployments) to the Azure cloud. Scality SOFS leverages Azure Blob cloud as its data storage layer and Azure Cosmos DB for its metadata.
Then we staged a performance test as follows: SOFS was deployed on general purpose Azure D8S v3 virtual machine (VM) instances each with 8 vCPUs and 32 GiB RAM, storing and accessing data in Azure Blob Hot Access Tier. This storage tier is optimized for active data that is being or is expected to be accessed and processed. Remember that the SOFS VMs are completely stateless, and we use Azure Blob for persistent data storage. We then performed a series of aggregated sequential I/O speed (throughput) tests using an industry standard tool called IOR, accessing SOFS over the SMB file protocol. The results were quite impressive on Azure Blob Hot Access Tier.
First, a single VM was able to achieve up to 450 MB/s over SMB—very fast in its own right, but, more importantly, we looked at the effects of scaling-out across additional SOFS VMs and clients. By doing so, SOFS achieved 650 Gbit/s of throughput in a single SMB file system namespace.
We then ran a second test using premium flash storage in Azure. In this case we showed SOFS achieving over 1 Tbit/second of SMB throughput—this is really massive performance typically achievable only by specialized HPC file systems on costly direct attached storage. Think of this as enough performance to store or read hundreds of high-definition movies simultaneously each second!
Although our press release reported 50 high-def movies per second, the calculations we’ve run actually demonstrate a much higher throughput than our conservative engineers like us to share with the press. We are all about underpromising and overdelivering! The power is that linear scaling of cloud VMs lets SOFS achieve any level of performance. This can be used to solve use cases in energy research, media & entertainment, big data analytics, AI/ML and more.
10x cost savings to match performance
SOFS in Azure uses inexpensive VMs, we start with an efficient cloud deployment model that can be up to 10x less expensive than competing solutions. Moreover, we can power these instances down when not needed—they are stateless with the data being retained in Azure Blob. For example, running SOFS in Azure for a week with 100TB of capacity and 4.5 Gigabytes per second of throughput would cost under $1200 in Azure cloud resources. This is a truly magic combination of on-demand access and scale-out performance on very affordable cloud object storage.
For more information, check out:
IDC Spotlight: The Value of an On-Demand, Scale-Out File System on Low-Cost Cloud Storage