Deliberations

Thoughts on the problems and solutions I work with every day, along with musings on random topics

NAVIGATION - SEARCH

Win2012 - Storage Spaces: Rebuild == Gone?

No, don't fret - it just LOOKS like they're not there any more. By default Windows Server sets any storage space drives to manual attachment mode rather than auto-attach mode. To fix it we need PowerShell.

First, get the list of Virtual Disks:

PS C:\Windows\system32> Get-VirtualDisk

FriendlyName        ResiliencySettingNa OperationalStatus   HealthStatus        IsManualAttach                     Size
                    me
------------        ------------------- -----------------   ------------        --------------                     ----
ReFS RAID 10        Mirror              OK                  Healthy             True                               4 TB
RAID 5 ReFS         Parity              OK                  Healthy             True                               5 TB

Now, you know the names of the virtual disks to modify. Get the properties of the virtual disk and you'll see the source of the problem (the screenshot should make it more obvious where to look):

PS C:\Windows\system32> Get-VirtualDisk "ReFS RAID 10" | fl

ObjectId                          : {73c0ad00-f4d5-11e1-93ee-001b21b01e8b}
PassThroughClass                  :
PassThroughIds                    :
PassThroughNamespace              :
PassThroughServer                 :
UniqueId                          : 00ADC073D5F4E11193EE001B21B01E8B
Access                            : Read/Write
AllocatedSize                     : 71672266752
DetachedReason                    : None
FootprintOnPool                   : 143344533504
FriendlyName                      : ReFS RAID 10
HealthStatus                      : Healthy
Interleave                        : 262144
IsDeduplicationEnabled            : False
IsEnclosureAware                  : False
IsManualAttach                    : True
IsSnapshot                        : False
LogicalSectorSize                 : 512
Name                              :
NameFormat                        :
NumberOfAvailableCopies           : 0
NumberOfColumns                   : 3
NumberOfDataCopies                : 2
OperationalStatus                 : OK
OtherOperationalStatusDescription :
OtherUsageDescription             :
ParityLayout                      :
PhysicalDiskRedundancy            : 1
PhysicalSectorSize                : 4096
ProvisioningType                  : Thin
RequestNoSinglePointOfFailure     : True
ResiliencySettingName             : Mirror
Size                              : 4398583382016
UniqueIdFormat                    : Vendor Specific
UniqueIdFormatDescription         :
Usage                             : Other
PSComputerName                    :

 

Since you already know a little PowerShell you have probably worked out that you next need to use the Set-VirtualDisk cmdlet:

PS C:\Windows\system32> Set-VirtualDisk "ReFS RAID 10" -IsManualAttach $False

Check your results with the Get-VirtualDisk command:

PS C:\Windows\system32> Get-VirtualDisk "ReFS RAID 10" | fl

ObjectId                          : {73c0ad00-f4d5-11e1-93ee-001b21b01e8b}
PassThroughClass                  :
PassThroughIds                    :
PassThroughNamespace              :
PassThroughServer                 :
UniqueId                          : 00ADC073D5F4E11193EE001B21B01E8B
Access                            : Read/Write
AllocatedSize                     : 71672266752
DetachedReason                    : None
FootprintOnPool                   : 143344533504
FriendlyName                      : ReFS RAID 10
HealthStatus                      : Healthy
Interleave                        : 262144
IsDeduplicationEnabled            : False
IsEnclosureAware                  : False
IsManualAttach                    : False
IsSnapshot                        : False
LogicalSectorSize                 : 512
Name                              :
NameFormat                        :
NumberOfAvailableCopies           : 0
NumberOfColumns                   : 3
NumberOfDataCopies                : 2
OperationalStatus                 : OK
OtherOperationalStatusDescription :
OtherUsageDescription             :
ParityLayout                      :
PhysicalDiskRedundancy            : 1
PhysicalSectorSize                : 4096
ProvisioningType                  : Thin
RequestNoSinglePointOfFailure     : True
ResiliencySettingName             : Mirror
Size                              : 4398583382016
UniqueIdFormat                    : Vendor Specific
UniqueIdFormatDescription         :
Usage                             : Other
PSComputerName                    :

All done!

Windows 2012 - Unidentified Network at Boot

This is a quick and easy fix. If, like many admins, you configure your server with a redundant network connection (colloquially a "team"); and if you have configured even servers to have a firewall (even if only for the Public zone); and if you choose to use Windows 2012 inbuilt teaming (which is a great idea - no more quirky drivers, stupid apps, poor UI); and if you create the host team as LACP, you'll probably run into this one.

You do a nice controlled reboot, and ... your server never comes back. Well it does; you can use the iLO or DRAC or whatever IBM call their cards nowadays, and the console's just fine, but the network is showing as Unidentified network.

Which is pretty annoying considering the network is working just fine and you can ping the domain controller. By name. So what's wrong with the silly thing this time?

Service timing. Specifically, the network location and hence firewall zone is being detected prior to the team coming online. You can confirm that for yourself simply by restarting the Network Location Awareness service, which will also restart the Network List Service service:

And that should give you a hint about how to resolve it - change the startup type for the Network Location Awareness service to "Automatic (Delayed Start)":

Or for the command line junkies (or as part of your scripted build process):

sc config NlaSvc start= delayed-auto

This workaround shouldn't be needed forever, as it seems likely that this bug will be squashed in the first Service Pack (Edit: 13 December 2016: Here we are four years later, still there).