Same problem. Also, I assume you meant DiskIdGuid and not DiskSignature. Signature will not accept a GUID as a valid input, which stands to reason if it's expecting a MBR signature.
If I get-clusterparameter from a working GPT disk resource, I get:
Object Name Value Type
------ ---- ----- ----
WorkingVolName DiskIdType 1 UInt32
WorkingVolName DiskSignature 0x0 UInt32
WorkingVolName DiskIdGuid {880987f7-9954-4eb8-9100-2... String
WorkingVolName DiskRunChkDsk 0 UInt32
WorkingVolName DiskUniqueIds {16, 0, 0, 0...} ByteArray
WorkingVolName DiskVolumeInfo {1, 0, 0, 0...} ByteArray
WorkingVolName DiskArbInterval 3 UInt32
WorkingVolName DiskPath String
WorkingVolName DiskReload 0 UInt32
WorkingVolName MaintenanceMode 0 UInt32
WorkingVolName MaxIoLatency 1000 UInt32
WorkingVolName CsvEnforceWriteThrough 0 UInt32
WorkingVolName DiskPnpUpdate {0, 0, 0, 0...} ByteArray
If I run the same against the disk resource that won't come online, I get:
Object Name Value Type
------ ---- ----- ----
NewClusterDisk DiskIdType 1 UInt32
NewClusterDisk DiskSignature 0x0 UInt32
NewClusterDisk DiskIdGuid a435b71b-d677-445a-933d-3b... String
NewClusterDisk DiskRunChkDsk 0 UInt32
NewClusterDisk DiskUniqueIds {} ByteArray
NewClusterDisk DiskVolumeInfo {} ByteArray
NewClusterDisk DiskArbInterval 3 UInt32
NewClusterDisk DiskPath String
NewClusterDisk DiskReload 0 UInt32
NewClusterDisk MaintenanceMode 0 UInt32
NewClusterDisk MaxIoLatency 1000 UInt32
NewClusterDisk CsvEnforceWriteThrough 0 UInt32
NewClusterDisk DiskPnpUpdate {} ByteArray
Right away, I'm noticing the working disk resource uses proper GUID notation with "{" and "}" characters. I also notice it contains volume information, presumably because the volume is online and reachable.
If I set the GUID manually on the command line with $clusterres | Set-ClusterParameter "DiskIdGuid" "a4f3edf4-a070-48a8-a801-6f8490adf83a", I will get an error that gives the correct GUID, but the same error about repairing the volume.
This is the one thing I'm not excited by with this setup- There doesn't seem to be much rhyme or reason to failures like these. But, for kicks I removed the disk resource from the cluster and tried to bring the LUN online as a disk in the Windows disk management tool, and it took right off. I assigned it a drive letter and was able to browse with no problem.
So, to me, it looks like NetApp Powershell toolkit has presented the LUN to the cluster nodes successfully. Now it looks like the Microsoft Clustering Powershell toolkit is having a problem bringing that LUN into the cluster as a working resource. When I manually add the disk resource through the Failover cluster management tool, it works like a CHARM. So, perhaps I'm missing some critical step with the cluster toolkit.
My other scripts that work with the cluster toolkit work fine, but I'm using SDCLI to bring the volumes online in that case. (I've been told that I was not the use case when NetApp initially conceived of the PS toolkit...because I use literally none of the GUI tools ) I don't have to do anything special to add dependencies or anything, so I don't think I'm missing a step here. Any other ideas?