By now most people dealing with storage know that IBM acquired the XIV technology. What IBM is doing now is trying to push the technology to everyone and their dog, for reasons weâ€™ll get into…
I just hope IBM gets their storage act together since now theyâ€™re selling products made by 4-5 different vendors, with zero interoperability between them (maybe SVC is the â€œone ring to rule them allâ€?)
In a nutshell, the way XIV works is by using normal servers running Linux and the XIV â€œsauceâ€ and coupling them together via an Ethernet backbone. A few of the nodes get FC cards and can become FC targets. A few more of the features:
- Thin provisioning
- Synchronous (only) replication
- Easy to use (thereâ€™s not much you can do with it)
- Uses RAID-X (no global spares, merely thereâ€™s space on each drive, faster rebuilds are possible)
- Only mirrored
- A good amount of total cache per system since each server has several GB of RAM BUT the cache is NOT global (each node simply caches the data for its local disks).
IBM claims insane performance numbers with the XIV (â€œit will destroy DMX/USP!â€ â€” sure). But letâ€™s take a look at how everything looks:
- 180 maximum (or minimum) drives (you can get a half config but I think you always get the 180 drives but license half, I might be mistaken – I believe you have to make a commitment that youâ€™ll buy the whole thing in 1 year)
- Normal Linux servers do everything
- Only SATA
- The backbone is Ethernet, not FC or Infiniband (much, much higher latency is incurred by Ethernet vs the other technologies)
The way IBM claims they can sustain high speed is to not try and make the SATA drives get bound by their low transactional performance vs 15K FC drives or, even worse, SSDs. From what I understand (and IBM employees feel free to chime in) XIV:
- Ingests data using a few of the front-end nodes
- Tries to break up the datastream into 1MB chunks
- The algorithm tries to pseudo-randomly spread the 1MB chunks and mirror them among the nodes (the simple rule being that a 1MB chunk cannot have a mirror on the same server/shelf of drives!)
Obviously, by doing effectively as much as possible large block writes to the SATA drives and using the cache to great effect, one should be able to see the 180 SATA drives perform pretty much as fast as possible (ideally, the drives should be seeing streaming instead of random data). However (thereâ€™s always that little word…)
- There is no magic!
- If the incoming random IOPS are coming at too great a rate (OLTP scenarios), any cache can get saturated (the writes HAVE to be flushed to disk, I donâ€™t care what array you have!) and it all boils down to the actual number of disks in the box. The box is said to do 20,000 IOPS if that happens – which I think is optimistic at 111 IOPS/drive! At any rate, 20,000 IOPS is less than what even small boxes from EMC or other vendors can do when they run out of cache. Whereâ€™s the performance advantage of XIV?
- The â€œrandomization removing algorithmâ€, if indeed thereâ€™s such a thing in the box, will have issues with more than 1-2 servers sending it stuff
- See #1!
Like with anything, you can only extract so much efficiency out of a given system before it blows up.
An EMC CX4-960 could be configured with 960 drives. Even assuming that not all are used due to spares etc. you are left with a system with over 5 times the number of physical disks vs an XIV, tons more capacity etc. Even if the â€œmagicâ€ of XIV makes it more efficient, are those XIV SATA drives really 5 times more efficient (5 times would make it EQUAL to the 960 performance, XIV would have to be well over 5 times more efficient than an EMC box of equivalent size to beat the 960).
Letâ€™s put it that way:
If my system was as efficient as IBM claims, and I had IBMâ€™s money, itâ€™d buy all the competitive arrays, even at several times the size of my box, and publicize all kinds of benchmarks showing just how cool my box is vs the competition. You just canâ€™t find that info anywhere, though.
Regarding innovation: Other vendors have had similar chunklet wide striping for years now (HP EVA, 3Par, Compellent if Iâ€™m not mistaken, maybe more). 3Par for sure does hot sparing similar to an XIV (they reserve space on each drive). 3Par can also grow way bigger than XIV (over 1,000 drives).
So, if I want a box with thin provisioning, wide striping, sparing like XIV but the ability to choose among different drive types, why not just get a 3Par? What is the compelling value of XIV, short of being able to push 180 SATA drives well? Nobody has been able to answer this.
Iâ€™m just trying to understand XIVâ€™s value prop since:
- Itâ€™s not faster unless you compare it to poorly architected configs
- It has less than 50% efficiency at best, so itâ€™s not good for bulk storage
- Itâ€™s not cheap from what Iâ€™ve seen
- Burns a ton of power
- Cannot scale AT ALL
- Cannot tier within the box (NO drive choices besides 1TB SATA)
- Cannot replicate asynchronously
- Has no application integration
- No Quality of Service performance guarantees
- No ability to granularly configure it
- Is highly immature technology with a small handful of reference customers and a tiny number of installs! (I guess everyone has to start somewhere but do YOU want to be the guinea pig?)
Unless your needs are exactly what XIV provides, why would you ever buy one? Even if your space/performance needs are in the XIV neighborhood there are other far more capable storage systems out there for less money!
IBM is not stupid, or at least I hope not. So, what IBM is doing is pretty much handing out XIVs to whoever will take one. If you get one, think of yourself as a beta tester. Because I hardly believe that IBM bought the XIV IP without seeing some kind of roadmap, otherwise the purchase would be kinda stupid! If you are a beta-tester, be aware that:
- XIV cheats with benchmarks that write zeros to the disk or read from not previously-accessed addresses
- XIV will be super-fast with 1-2 hosts pushing it, push it realistically with a real number of hosts
- Try to load up the box since if itâ€™s not full enough youâ€™ll get an extremely skewed view of performance – put even dummy data inside but fill it to 80% and then run benchmarks!
- Test with your applications, not artificial benchmarks
- Do not accept the box in your datacenter before you see a quote! In at least 3 cases that I know of IBM drops off the box without giving you even a ballpark figure. I think thatâ€™s insane.
And last, but not least: I keep hearing and reading about the following being true, Iâ€™d love IBM engineers to disprove it:
If you remove 2-3 drives from different trays simultaneously from a loaded system then you will suffer a catastrophic failure (logically makes sense looking at how the chunks get allocated but Iâ€™d love to know how it works in real life). And before someone tells me that this never happens in real life, Itâ€™s personally happened to me at least once (lost 2 drives in rapid succession) and many other people I know that have any serious real-world experience…