If you were planning on deploying Windows 8 Server for your SQL Servers as soon as it is released, I would plan on rethinking those plans, especially if you plan on using the new Windows 8 file system ReFS (Resilient File System) instead of the NTFS (New Technology File System).  You see as a part of ReFS there was some streamlining of the code which ended up leaving only the most used features and according to Surendra Verma (development manager on Microsoft’s Storage and File System team) …

“deprecating others that provide limited value at the cost of system complexity and footprint”

Now I’m sure sure how they figured out which features provide limited value, but I consider Alternate File Streams and sparse files to be extremely important features of the file system.  You see these are just a couple of the features which are being deprecated and removed in ReFS.

Q) What semantics or features of NTFS are no longer supported on ReFS?

The NTFS features we have chosen to not support in ReFS are: named streams, object IDs, short names, compression, file level encryption (EFS), user data transactions, sparse, hard-links, extended attributes, and quotas.

Now I’m sure that this is just be being picky, but I kind of like the ability to use DBCC CHECKDB on my databases without having to lock the objects that I’m checking by using the WITH TABLOCK syntax.  This uses the named streams feature of NTFS as SQL Server creates a hidden snapshot when DBCC CHECKDB runs normally.  This will mean that the only way to run DBCC CHECKDB on a database which resides on the a file system which uses ReFS will be to lock all the tables.

Another feature which I really like to use is database snapshots in general.  Normal database snapshots won’t work on ReFS volumes either because database snapshots require the use of sparse files, another feature which has now been deprecated.

From a file server perspective I can’t believe that a feature like quotas is being removed.  As someone who used to manage file server for a large enterprise and had several thousand people storing files on my file servers, being able to use quotas was a great way to keep people from dropping all their MP3s on my file server.

Personally I just find it mind boggling that it appears that the ReFS team didn’t bother to talk to the team that makes what is probably the largest biggest selling server based application out there, about what these changes to ReFS would do to SQL Server.  It’s not like the SQL Server team wouldn’t have taken the call, they’ll still talk to me, and I’m pretty sure my picture is on more than a few dart boards around building 35.  I’m sure if such a call had been made someone on the Microsoft SQL Server team would have mentioned that they require named steams (also known as alternate file steams) and sparse file for basically every version of SQL Server from SQL Server 2005 and higher to continue to run.

Way to go ReFS team, the biggest consumer of storage (SQL Server) in the majority of Microsoft shops can’t use your product.  Good job.

As I get more information from the ReFS product team and the SQL Server product team, I’ll be sure to publish it here.  Until then I’ll just bitch and complain about it as loudly as possible.



2 Responses

  1. I was reading a lot about ReFS today and I don’t dare to use it anymore for my normale file data storage on the new 2012 server of a client.

    It’s just not clear to me if 3rd party applications are all compatible with ReFS and missing for example Alternate Data Stream.
    What I read only 1 concurrent stream can be made to a file, but i’m not 100% sure of that…

  2. Interesting. Especially when I ran ‘fsutil fsinfo volumeinfo e:’ on my ReFS volume. Two of the items listed are:

    Supports Named Streams
    Supports Sparse Files
    So what was your argument again?

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Trust DCAC with your data

Your data systems may be treading water today, but are they prepared for the next phase of your business growth?