News for hackers. Stuff that matters.
Re:Announcing Linode Block Storage Volumes by chatmasta on Thursday February 01, 2018 @02:28PM (#16285005)
Why does block storage seem to take so long for companies to implement? DigitalOcean only implemented it in the past year, when they had hundreds of employees. It seems like it would be a priority feature, so I imagine a sizable team was working on it. Why did it take so long for digitalocean, and now Linode, to implement block storage? Are there some inherently architecture-dependenent complexities that render it a deceivingly difficult project to implement?
Re:Announcing Linode Block Storage Volumes by nickvanw on Thursday February 01, 2018 @03:40PM (#16285643)
I was the Engineering Manager for the Storage team at DigitalOcean that took the Block Storage project from conception to launch (though I no longer work there), so I might be able to shed some light.

In general, it's really hard to do at-scale network-backed storage - by the time your applications get access to the file system, there are a myriad of abstractions that aren't always receiptive to the idea of the network "going away", or even a modicum of lag. On top of that, in order for it to be profitable, you need to work at a massively-shared scale. This means expensive SSDs, servers and switches that require a lot of capex and no guaranteed revenue because it's a new product. For us, this meant building entirely new network architecture in some places to allow the massive amount of data being shared in the storage cluster and across VMs to not overwhelm existing traffic, etc.

In order to create the reliability in network and persistency that your normal application desires, you need extremely strong consistency and low latency. Every replication strategy (replication and erasure coding) requires each write to touch more than one SSD/HDD/NVMe device in order to acknowledge the write, and that all needs to happen in a shared system with an immense amount of contention, every time.

It takes a while because you only get one opportunity to get all of this right - it's one thing if the network has a few more blips in a month, or if there's a bit more CPU contention than you'd like, but you absolutely can't lose peoples' data.

I can understand why companies are so hesitant to do this - there may be technical debt in their software/network stack that makes it very difficult, or they may not want to proceed unless they have the right set of experts working on the project.

Re:Announcing Linode Block Storage Volumes by neom on Thursday February 01, 2018 @04:19PM (#16286015)
How do you like Ceph generally as a technology, rest of the implementation aside, thoughts on Ceph?
Re:Announcing Linode Block Storage Volumes by antongribok on Thursday February 01, 2018 @04:44PM (#16286221)
Not the OP, but I've been running production Ceph clusters for the past 4.5 years at two different fortune-50 companies.

We've had very good success with Ceph for block storage and a fairly rough time with it for object storage. We're currently doing our best to try to improve it (both our own upstream contributions and collaborating with RedHat).

From a technology standpoint, I think it is very interesting and for the most part has a lot of very good engineering. However, it is fairly complex and even today it's very easy to have a hard time with it when starting out. You really need to pay attention to every detail and your hardware selection is extremely important.

It is extremely resilient, and goes to great lengths to preserve your data. Ceph can be performant, however that requires very good hardware and network.

My experience is limited up to the Jewel release (we haven't upgraded to Luminous and we are not planning on using BlueStore anytime soon).

Re:Announcing Linode Block Storage Volumes by rodgerd on Friday February 02, 2018 @12:36AM (#16288651)
> However, it is fairly complex and even today it's very easy to have a hard time with it when starting out.

Sage's talk at LCA covered the work they're doing here; https://www.youtube.com/watch?v=GrStE7XSKFE

But yes, at small scale Gluster is still a lot easier to deploy and run.

Re:Announcing Linode Block Storage Volumes by nickvanw on Thursday February 01, 2018 @04:31PM (#16286100)
Ceph is good! I'm a bit removed from keeping up on the day-to-day, but I always respected it as being a solid and dependable piece of open source software.

There are options that will perform better, but they are almost always considerably more expensive than FOSS, and all have their own weird scaling quirks.

With the launch of BlueStore a few months ago as well as improvements in erasure coding, I wouldn't hesitate to take a look at it again if I was starting a new project.

Re:Announcing Linode Block Storage Volumes by nik736 on Friday February 02, 2018 @04:11AM (#16289359)
Is DO using Ceph for their block storage solution?
Re:Announcing Linode Block Storage Volumes by petecooper on Thursday February 01, 2018 @04:13PM (#16285954)
As a DO customer – thanks for the insight, this is really good to know.
Re:Announcing Linode Block Storage Volumes by wmf on Thursday February 01, 2018 @02:50PM (#16285207)
Reliable storage software is very difficult to develop in general. If you want reliability and low cost or reliability and performance it's much harder.

In some sense, "cloud native" architecture has shifted all the hard problems into storage by treating all non-storage resources as transient. So storage is the one place where persistent state exists and you can't just reboot it into a clean state.

Re:Announcing Linode Block Storage Volumes by fredliu on Thursday February 01, 2018 @04:20PM (#16286020)
In short, at the scale any block service is intended to serve, HDDs/SSDs are going to fail, networks are going to be down, data corruptions are going to happen, unpredictable latencies are going to appear, etc. etc. All these failures are destined to happen at a not so infrequent rate. The service offers the abstraction/illusion of "HDD in the cloud that never fails (or may 9s SLA)" despite all that is pretty hard to pull off.
Re:Announcing Linode Block Storage Volumes by distantsounds on Thursday February 01, 2018 @02:38PM (#16285108)
Passing block-level storage through a virtualization platform is not an easy task, because you're talking about a physical connection to the block storage (i.e. fiber, 10G copper, etc) passing through the hypervisor, to become accessible at the VM level. When dealing with a cluster of hypervisors, making that block-level storage accessible, and portable, to entire infrastructure, requires a level of engineering effort.
Re:Announcing Linode Block Storage Volumes by sneak on Thursday February 01, 2018 @03:16PM (#16285456)
Plus all the existing difficulty of running a highly available, highly performant SAN at scale before you even get to counting the added complexity of virtualization. That alone is a task of a difficulty level that many have forgotten, what with AWS et al handling most of it for us for the last decade.
Re:Announcing Linode Block Storage Volumes by mattbee on Thursday February 01, 2018 @04:40PM (#16286188)
Bytemark's Cloud Servers went all in on network storage from 2012, 10 years after our first platform that only used local storage. The main motivation was so all our servers would be live-migratable in case of hardware trouble, but it also means customers aren't having to choose between "local and fast" or "remote and flexible" - we've spent years making "remote and fast" work smoothly.

But yes it was a hard road to get there, particularly in the days when Linux's 10Gbps drivers and btrfs were less good than they are now, and we also needed to write a new NBD server for all the live migration to work smoothly (https://github.com/BytemarkHosting/flexnbd-c)

Re:Announcing Linode Block Storage Volumes by not_kurt_godel on Friday February 02, 2018 @01:28PM (#16292863)
To pile on what others are saying, implementing reliable, functional distributed networked storage at scale is an insanely difficult engineering task. EBS (AWS Elastic Block Storage) was notorious for years for causing problems both externally (reddit) and internally (causing AWS outages). If anything, one should be impressed that smaller companies like DO and Linode are able to offer block storage at all.