Looking Back At Microsoft's Rocky History In Storage Tech
nk497 writes "Following the demise of Windows Home Server's Drive Extender, Jon Honeyball looks back on Microsoft's long, long list of storage disasters, from the dodgy DriveSpace to the Cairo Object File System, and on to the debacle that was WinFS."
I would have to include NTFS alternate data streams as well. It sounded like a good idea, but in practice it just left huge security holes.
IMHO, Microsoft worst offense in storage is drive letters, which provide no information about either the type and structure of the underlying disks or the data they contain, and have caused untold headaches from applications (and the OS itself) being reliant on paths that are arbitrarily assigned, subject to change, and often out of the user's control.
Admittedly, Microsoft didn't invent the system, but the fact that drive letters still exist in 2011 is entirely their fault.
How can I believe you when you tell me what I don't want to hear?
Because Windows Server has Active Directory and Group Policies. and Linux doesn't. Thats what sells Windows Server 2000/2003/2008. When there was a proposal to incorporate OpenLDAP auto confguration policy into KDE - it was rejected. That is why Linux lost the war for the Enterprise desktop.
It's not just closed source, but closed standard. Microsoft keeps the specification officially secret (Though I believe you can see if it you agree to an agreemet saying you won't disclose or actually impliment it). That linux can use NTFS is a tribute to many hours of dedicated reverse-engineering and various tidbits of information that escaped until a full picture could be assembled,
NTFS still doesn't have shared cluster filesystem capability. This has a bunch of flow-on effects, which basically means that Windows Server clusters are actually "Failover Clusters". The key part of that being the "Fail".
Really basic services like the file shares are impossible to make truly highly available using Windows, because neither NTFS nor SMB support transparent fail-over of open files. There isn't even a way of doing a clean administrative cluster fail-over, such as a drain-stop. The only option is forcibly closing all open files, potentially corrupting user data, and forcing users to click through dirty error messages that their PCs may or may not recover from.
I've tried things like Polyserve, which is a third-party filesystem that has proper cluster support, but it's still hamstrung by SMB. What's doubly ridiculous is that Microsoft basically re-engineered SMB for Vista, and called it "SMB2", but it still can't do clean fail-over!
Similarly, SQL Server can't do proper failover of cluster nodes, nor can it do proper active-active database clusters that share a single database file, because of the limitations of the underlying filesystem. It can no active-active clustering for read-only files, but that's only rarely useful.
Even within Microsoft, workarounds had to be found to make some of their key products somewhat resilient. Both SQL Server and Exchange now use software mirroring for cleaner failover. Ignoring the cost of having to purchase twice as much disk, mirroring has other issues too, like becoming bottle-necked by the network speed, or limiting the features that can be used. For example, if your application performs queries across two databases in a single query, then you can't use Mirroring, because there's no way to specify that the two databases should fail over in a group.
VMware has become a multi-billion dollar company in a few short years because a single non-clustered Windows Server on a VMware cluster is more robust than a cluster of Windows Servers!
"Enterprise Edition" my ass.
How about getting the directory separator wrong? This has indirectly led to a generation of TV and radio presenters having to say "forward slash" when reading out URLs...
In a survey of 100 programmers, 111111 thought that duck-typing was a good idea.
Please name a linux based solution, apart from 100% proprietary Unraid, which allow for me to do what drive extender does. I'm serious. I refuse to install WHS, and thus far the closest I can find is going Unraid, which feels dirty to me, or nexentastor.
What drive extender does, in a nutshell:
-all of your hard drives show up as one big storage pool.
-100% of disparate drive sizes can be used (excluding copies/parity obviously). So if you have 3 old 1tb drives, 2 old 1.5tb drives, and 1 2tb drive you'll have 8gb of storage
-configurable redundancy such that any single disk failure, no matter the size, all files are still available
-if two drives fail, you only lose the files that were on those two drives, not the entire array
-take any one drive out of the array, plug it into ANY windows vista or higher PC (new NTFS version), have access to all the files that were stored in that drive.
-add a drive, get that much more storage (excluding copies/parity obviously)
ZFS comes DAMNED close, but you cannot grow the number of disks in a raidz array, you have to add an entire extra array (meaning 3+ disks) to the pool. You also lose the entire array if 2 (or 3 with raidz2, or 4 with raidz3) disks die, and cannot have direct file access just by plugging in 1 disk of the array, but that honestly doesn't bother me that much.
Oh, and ZFS isn't on linux except through fuse.
Nobody is saying you can't do that stuff on *NIX but its hard to do that on stand alone machines. When you are talking about shared machines or terminals where everything can be handled with NIS and home directories reside on an NFS share used by all hosts the facilities to manage user experience exist.
As soon as you start having laptops and desktops running all around the office you can't manage the settings the user is talking about anymore. Yes you can do it at deployment time. Sure you could write init scripts to go fetch and overwrite/update rc files and stuff but you'd have to do all of it yourself and it would be a security nightmare to try and get correct without putting a lot of resources into it.
GPOs make it really easy change all the CSRs home pages to the new customer service portal, and set all the sales reps wall paper to the latest product sheet instead of their embarrassing personal photos any time its needed. It also makes it possible to do things like yes your screen saver is going to turn on and the desktop will be locked after 15min, no exceptions. Sometimes that sort of thing gets required for PayCardIndustry rules and the like, and those things change every now and then.
Got a way for me to change your screen saver settings on every Ubuntu box in the company? Yes I know I can run a sed script to go into each home directory and alter the config file for whatever desktop environment is being used, I still have to find away to do it to every box.
Trust me I have been doing this for some years and this is one place where Windows gets it right, so right in fact that it in some ways justifies the use of Windows even though its otherwise a really inferior platform.
Repeal the 17th Amendment TODAY! Also Please Read http://www.gnu.org/philosophy/right-to-read.html
Sweet, so LVM provides redundancy? Or I still need to use software raid for that, which reqires all disks to be the same size in order to get full usage out of them?
And if I create an LVM array, and 1 disk dies, I no longer lose everything, the filesystem is easily mounutable and I only lose the files that were on that disk and weren't redundant (which you've also assured me LVM handles for you?)
And who mentioned drive letters? You're telling me that every unix will combine all of my storage devices into one pool, as opposed to having to mount them discretely in mount points? So if I have 5 disks, by default all of my files, regardless of location in the filesystem, will get nicely distributed across said disks? That's great to know as well! Last time I checked (about 2 seconds ago, from the ubuntu box I'm posting this from) you have to choose a mount point for any volume (logical or physical), and it only provides storage to that section of the filesystem. If my /var/log is full, and I just throw in another 1tb disk, /var/log does not get access to that new storage.
I asked a serious question. I really am interested in a set of technologies that have the same capabilities as unraid (which is linux based but NOT open nor free) and drive extender. LVM and software raid are in no way comparable.
The article does a fairly thorough job of roasting MS over their lack of internal coordination, outlining how one wing starts to work on a new technology and other departments that need to get on board "wanted nothing to do with it'. In any well-managed company, a department that refuses to get on board with a new technology gets hell rained down on them from above until they fall into line.
Take Apple's "spotlight" meta search feature for example. Imagine the team working on the AddressBook app "wanted nothing to do with it"? There'd be hell to pay, and either team managers would change their tune or get replaced. In a large project like an operating system, lack of cooperation simply cannot be tolerated. But it seems that MS is just so large at this point that it doesn't have the power to guarantee their different projects cooperate fully with each other.
I have read from time to time that there was this sort of internal battle going on at MS, where different projects worked in isolation and there was infighting, but I'd never really seen the effects of these issues before. It's interesting to see the result. This appears to be an upper management or communications problem. Whoever is above the Outlook team needs to be asking that team manager "so how's integration with drive extender going?" If they get foot-dragging and complaining and brush-offs, that manager needs to be dragged into the director's office for some "re-education" on cohesive development. If the director isn't asking these questions, THEY need to be replaced. Something of this sort is isn't working properly at MS.
Its like a construction project. You've got all these separate units coming in, doing electrical, plumbing, structural, heating, floors. The general contractor has to make sure these people work together. Refusing to cooperate with one of the other groups simply cannot be tolerated, and it's the GC's responsibility to make sure everything works smoothly. Problems between groups need to be brought to the GC, and the GC needs to settle them immediately. Otherwise the finished building has serious problems. You can't just turn over the house to the owner and say "Oh by the way we removed the heating from the bathroom. The plumbers wouldn't route the pipes around where the heating ducts needed to go. You don't REALLY need heat in such a small room anyway." But that's the sort of thing that MS is pulling from time to time.
I think MS is just taking the cowardly way out. "We can't control our own internal development processes well enough to get this feature integrated properly in with the rest of our technology, so we're just canceling it." The article states simply that companies like Dropbox and DataRobotics (makers of Drobo) that have only one core technology are forced to "get it right", because dropping it simply isn't an option. MS seems to think they have the option to just drop any feature at any time on a whim if it's not going well, instead of going to the additional effort of kicking some butts and making it work. It's not like its an impossible task. This is doable. They just lack the necessary internal management to pull it off consistently.
Bottom line: At MS, with any new project, unless all the key players decide to get on board, the project is doomed.
In other words, the Outlook team manager should not be capable of tanking Drive Extender. But it is, and it did. And THAT is a serious internal management problem that MS has demonstrated over and over. Something's gotta change.
I work for the Department of Redundancy Department.