ReFS Windows 8.1 failure

Discussion in 'Windows 8' started by seehazy, Oct 30, 2013.

  1. seehazy

    seehazy MDL Novice

    Oct 28, 2013
    15
    1
    0
    Have finished upgrading to Windows 8.1 and my RAID-5 ReFS volume has NOT yet been recognized. It was not available in "This PC" after the upgrade... and was still not available after using the ReFS registry hack. After applying the hack and restarting the computer, the only change was the System Reserved portion of my C drive became visible.

    Under Administrative Tools> Computer Management> Disk Management, the drives in question are visible as a single RAID-5 volume but Status shows "failed", the file system entry is empty, and the drive letter is absent showing a red "x" icon.

    Currently downloading the latest chipset, SATA AHCI, and graphics drivers for my mobo. Will update once those have been installed.

    Anyone have any ideas?

    For more info--> Original post: Forum> Windows 8> "Seeking REFS advice"
     
  2. rnb5500

    rnb5500 MDL Junior Member

    May 15, 2011
    92
    35
    0
  3. seehazy

    seehazy MDL Novice

    Oct 28, 2013
    15
    1
    0
    #3 seehazy, Oct 30, 2013
    Last edited by a moderator: Apr 20, 2017
    (OP)
    I don't suppose those commands can be issued in command prompt?

    Regardless, do I issue each line of code as a separate command? Are the line bars to be included or do they mean something else? Meaning:

    Code:
    C:\WINDOWS\system32>Get-StoragePool | Where-Object {$_.IsReadonly –eq  $True } | Set-StoragePool –IsReadonly $False
    
    C:\WINDOWS\system32>Get-VirtualDisk | Where-Object {$_.IsManualAttach –eq $True} | Set-VirtualDisk –IsManualAttach $False
    Is that how it would be written? Would I need the directory to be something else?
     
  4. rnb5500

    rnb5500 MDL Junior Member

    May 15, 2011
    92
    35
    0
    #4 rnb5500, Oct 30, 2013
    Last edited: Oct 30, 2013
    I don't know if they'll work from cmd, guessing not.

    Yes issue both commands separately, launch PowerShell as admin as you would cmd. Then copy paste and enter, starting directory is unimportant.
     
  5. murphy78

    murphy78 MDL DISM Enthusiast

    Nov 18, 2012
    6,787
    10,365
    210
  6. seehazy

    seehazy MDL Novice

    Oct 28, 2013
    15
    1
    0
    #6 seehazy, Oct 30, 2013
    Last edited: Oct 30, 2013
    (OP)
    Will give it a shot from cmd and report back. I don't suppose there is a way to look up similar commands for Windows 8? That is if this is only good for PowerShell (Windows Server 2012).

    @murphy78: The article you are referring to is the ReFS registry tweak/ hack I have already issued. Thanks though.

    EDIT: Thought PowerShell was server-only... oops. Giving it a shot now.
     
  7. seehazy

    seehazy MDL Novice

    Oct 28, 2013
    15
    1
    0
    PowerShell commands did not work. Thanks anyways.

    Did some more research and there are additional options under Computer Management> Disk Management that I did not know about. Right clicking the left-hand portion of a disk gives the option to "reactivate disk." This is the only literature from Microsoft regarding dynamic disks with a "failed" status and how to bring them back online. IT DID NOT WORK.

    Now I am worried my volume is totally destroyed. I have reinstalled Windows Server 2012 many times in the past and there was never a single issue with recognizing my ReFS volume. I really hope this is just a Windows 8 thing. Will definitely be going back to Windows Server 2012 to determine if my volume is okay... very worried :(
     
  8. rnb5500

    rnb5500 MDL Junior Member

    May 15, 2011
    92
    35
    0
    Sry to hear that.

    Could you do Get-PhysicalDisk command in powershell, it should tell you if the HDDs are seen as healthy.
     
  9. seehazy

    seehazy MDL Novice

    Oct 28, 2013
    15
    1
    0
    It shows that all of my disks are healthy. Well that sounds like good news to me!

    Is it possible that there have been changes made to ReFS specifically in Windows 8.1 RTM? Could this be a reason why my volume is not activating? Even without the registry hack, Windows 8.1 is supposed to read ReFS just fine and should detect my volume... which has not been my experience so far.

    Just throwing out ideas: is there a difference between creating a RAID-5 ReFS volume vs. creating a Storage Space with parity ReFS volume? Not sure exactly the steps I took when it was originally created, but could this be a reason it is failing me?
     
  10. Enigma256

    Enigma256 MDL Senior Member

    Jan 17, 2011
    354
    300
    10
    #10 Enigma256, Oct 30, 2013
    Last edited by a moderator: Apr 20, 2017
    The issue is not ReFS.

    The issue is Windows RAID-5, which is a server-only feature and is disabled on client SKUs. If you move those drives to a system running Windows Server 2012 R2, they will work fine. Move them back to 8.1, and they'll say "Failed". Move them back again to Server, and they'll work again. You can try this out for yourself if you want.

    If you are on a client SKU, there is no reason to use Windows RAID-5 because a parity space in Storage Pools does the same thing (and better, arguably). Hell, even if I were running a server SKU, I'd still use the new storage pools instead. It's simply a better feature.

    That having been said, the Storage Spaces UI has issues. Its parity spaces are always 3-column (1/3 parity, 2/3 data), which makes sense if you have 3 disks (in which case, it'll be equivalent to RAID-5) or if you have 6 disks (in which case it'll be like RAID-6), but with 4 or 5 disks, you get a weird, inefficient, and slower setup.

    The UI also always uses thin provisioning, which is just stupid, IMO because you can't shrink the nominal size of a space and it causes nasty problems when you run out of space (the pool basically goes offline until you can add drives). Fixed provisioning makes so much more sense because it avoids those issues and because spaces can always be enlarged. So instead of making a huge nominal space and watching it grow automatically (thin provisioning), you can create a small space and grow it manually as needed (fixed provisioning). Fixed provisioning is more like how traditional setups work anyway and is just a far more reliable approach. I really strongly recommend using fixed provisioning instead of thin. It'll save you so many headaches down the road.

    Almost all of the complaints I see about Storage Spaces stem from bad configurations that could've been avoided if the UI used better defaults (fixed provisioning, columns that match drive count) or if the UI gave the user the ability to specify these settings.

    So use storage spaces. Use the UI to create a storage pool and use the following PowerShell command to create the actual spaces (drive partitions in the pool) (the default name of the storage pool is "Storage pool", which the following commands use to identify the pool).

    Code:
    New-VirtualDisk -FriendlyName "name of my space here" -StoragePoolFriendlyName "Storage pool" `
                    -UseMaximumSize -ProvisioningType Fixed -Interleave 262144 `
                    -ResiliencySettingName Parity -NumberOfColumns 3 -PhysicalDiskRedundancy 1
    Change "NumberOfColumns" to match the number of drives in the pool. Change "PhysicalDiskRedundancy" to the number of drives worth of parity that you want. So a 4-disk RAID-5 would be 4 columns with 1 PDR, and a 10-disk RAID-6 would would 10 columns with 2 PDR.

    The interleave is basically the stripe size, in bytes. Must be a power of 2. 256KiB is the default, and it works perfectly for my setup, but you can play around with it if you want (create a space, benchmark it, destroy the space, create again with another interleave, benchmark that, etc.).

    The "-UseMaximumSize" can be changed to something like "-Size 1.5TB" if you don't want the space to use the entire pool (if you want to create multiple volumes on the pool, or if you think at some point in the future, you'll create multiple volumes on the pool--remember, spaces can only be enlarged, not shrunk, so if your space takes up the entire size of the pool, then you won't be able to add more volumes in the future unless you delete this one). If you plan to have only one volume on the pool, then -UseMaximumSize is a good idea.

    Finally, if you have battery backup, you can run
    Code:
    Set-StoragePool -FriendlyName "Storage pool" -IsPowerProtected $true
    This will greatly increase your write performance. But use it only if you have battery backup, because otherwise, you run a very high risk of data corruption if there is sudden power loss.
     
  11. seehazy

    seehazy MDL Novice

    Oct 28, 2013
    15
    1
    0
    :worthy: YOU ARE A GOD. Thank you for clearing this up for me. I always had this feeling my volume was not set up using Storage Spaces because I could never manage it using the Storage Spaces UI. It was created in Windows Server 2012, but I must have created it manually without storage spaces.

    I am guessing there is not a simple way to convert it to a storage spaces accessible format?

    Basically, I am going to need to create a new volume (using the methods you described) for it to work in Windows 8.1, correct?

    I have used 4+ TB of space already and it will be a pain moving the data to alternative drives. But it can be done. My volume has six drives (2TB each). So the three-column setup works okay for me. This means for "NumberOfColumns" I would input "6"... correct? My goal is to have 1 parity drive in case of data corruption/ drive failure.

    I wish I could hit the Thanks button a million times! :D
     
  12. moderate

    moderate MDL Guru

    Aug 31, 2009
    2,619
    2,120
    90
    #12 moderate, Oct 30, 2013
    Last edited by a moderator: Apr 20, 2017
    RAID-5 is only available on Server. Send PM to KNARZ user for help...
    To use RAID-5 on client you need to edit SKU by importing
    Code:
    volmgrx-ppdlic.xrm-ms
    certificate from W2012SR2b9600 to the system license...
    The value
    Code:
    volmgrxSupportRaid5
    has to be set to 1 as
    Code:
    SL_DATA_DWORD
    The file you need is:

    volmgrx-ppdlic.xrm-ms

    located in:

    c:\Windows\System32\spp\tokens\ppdlic

    of W2012SR2b9600

    the import could be done by (after file is copied to client):

    Code:
    slmgr /ilc "c:\Windows\System32\spp\tokens\ppdlic\volmgrx-ppdlic.xrm-ms"
    If that will not help, then system licence rebuild is required by:

    Code:
    slmgr /rilc
     
  13. Enigma256

    Enigma256 MDL Senior Member

    Jan 17, 2011
    354
    300
    10
    #13 Enigma256, Oct 30, 2013
    Last edited by a moderator: Apr 20, 2017
  14. seehazy

    seehazy MDL Novice

    Oct 28, 2013
    15
    1
    0
    Thank you all for taking the time to help me out. I am tempted to use moderate's method and hack Windows 8.1... but I really should go ahead and set up my volume in the most up to date and future-proof fashion.

    I plan on going back to Server and confirming my data is still available, moving my data to alternative drives, and recreating my volume using Storage Spaces in Server. And then going back to 8.1... a lot of work... but it will be worth it to me since I am constantly having issues with Server and it is probably unnecessary to have a dedicated server OS in a home environment.

    Not sure that my Server is R2... does this make any difference with respect to my issues? Any differences in regards to ReFS and Storage Spaces? Would running all available updates in Server make a difference of any kind? :confused:
     
  15. Enigma256

    Enigma256 MDL Senior Member

    Jan 17, 2011
    354
    300
    10
    I haven't played around much with the UI for storage spaces in server. I know it's named differently ("Storage Pools", IIRC?), and it's found in the server management thing instead of in control panel. And the UI looks very different too. I don't remember if the UI provides more options than the UI in Windows 8/8.1, but I still like using the command line.

    As for whether or not to use ReFS, in Windows 8.1, mirrored storage spaces actually default to using ReFS (because of the "scrubbing" feature in ReFS that can automatically fix latent errors for mirrored volumes). But for parity and other non-mirrored spaces where this feature is not applicable, it defaults to NTFS and ReFS is not even available as an option (though you can change that with a registry tweak). Personally, I don't trust ReFS yet. NTFS has been around for over 20 years and is mature, reliable, and well-understood. ReFS has good features and looks good on paper, but it's just too new. Coupled with a couple of anecdotal horror stories about ReFS that I've read in another forum, I'd rather wait and see and stick with NTFS for now.
     
  16. seehazy

    seehazy MDL Novice

    Oct 28, 2013
    15
    1
    0
    Does anyone know the difference between the registry tweak Enigma256 references above and the simple method at the Winaero website?

    The Winaero website says all you have to do is add the MiniNT registry key and a DWORD "AllowRefsFormatOverNonmirrorVolume". Reboot and go to town.

    MDL Forum has what appears to be a similar method, but there are .dll files included and it seems slightly more involved.

    Is there a difference?
     
  17. Enigma256

    Enigma256 MDL Senior Member

    Jan 17, 2011
    354
    300
    10
    I just used the reg tweak, since 8.1 already has ReFS (it is enabled and the default for mirrored volumes, after all), so I'm not sure what the files in the RAR are for or what they do. All I used was the reg tweak, and things work fine for me (I have a spare disk that I'm using as a ReFS test volume). (The reg tweak at the winaero website was first discovered in that that thread, and my link was to the post in the thread with the reg tweak.)
     
  18. shot²

    shot² MDL Novice

    Feb 20, 2011
    35
    9
    0
    Tiny informative post about the "HKLM...MiniNT" registry hack to enable ReFS formatting under W8.1 : this trick unfortunately disables the Even Log Viewer, as well as various functions in the Action Center...

    It's probably better to enforce the hack only temporarily, to format a hard disk as ReFS, then disable (remove/neutralize) the registry key again...
     
  19. Enigma256

    Enigma256 MDL Senior Member

    Jan 17, 2011
    354
    300
    10
    Um, no. If all you did was edit the registry, the ONLY thing that the registry key does is enable the format of non-mirrored ReFS. It has absolutely no effect on the Event Viewer or any other part of the OS. Now, if you applied whatever stuff was in that rar file (which you should not do because ReFS is already installed, functional, and enabled, right out-of-the-box, in 8.1). The registry key is checked only by the ReFS userland interface DLL to determine if it should allow a volume a non-mirrored volume to be formatted as ReFS. The actual ReFS file system driver doesn't look at it, nor does any other Windows component.
     
  20. shot²

    shot² MDL Novice

    Feb 20, 2011
    35
    9
    0