Forum Discussion

Balthier35's avatar
Balthier35
Level 3
11 years ago

Volume drive letters are not enumerated

Hello,

I have a two node failover cluster which is running SQL Server 2008R2.
The OS on the nodes is Server 2008 R2, and we are utilizing Veritas Storage Foundation for Windows 6.0.1

The issue is that at failover from Node01 to Node02, the Dynamic Disk Groups (of which there are 4) are imported just fine, but the volumes are not enumerated with Drive Letters. Therefore the SQL Instance fails, and no one is able to connect to the SQL database.

In Failover Cluster Manager, the VMDG is imported just fine, and it is online, but the volumes have no drive letter, instead it says "failed to obtain the partition information"

To rectify the issue, I have tried to install CP3 for VSFW 6.0.1

This CP inlucdes the following hotfix

[11] Hotfix name: Hotfix_6_0_10012_308_3347495

Symptom:
After a failover, VEA sometimes does not show the drive letter or mounted folder paths of a successfully-mounted volume.

Description:
This issue may occur after a failover when VEA sometimes does not show the drive letter or mounted folder paths of a volume even though the volume is successfully mounted with the expected drive letter or folder paths. During a failover, when a disk group gets imported, SFW mounts all volumes of the disk group by querying the mount points using Microsoft API GetVolumePathNamesForVolumeName(). Sometimes, this API fails to return the correct drive letter or mounted folder paths because of which VEA fails to update the same.

Resolution:
NOTE: Please note that using the following workaround has a performance impact on the service group offline and failover operations. This happens because, during the service group offline or failover operation, the performance of the disk group deport operation is impacted by "n/2" seconds maximum, where "n" is the number of volumes in the disk group. To resolve this issue, the operation needs to be retried after a few milliseconds so that the Microsoft API GetVolumePathNamesForVolumeName() returns correct information. As a workaround, a new retry logic is added to the GetVolumePathNamesForVolumeName() API so that it retries the operation in case the mount path returned is empty. It will retry after every 100 milliseconds for "n" number of attempts (5 by default), which can be configured using the registry. This retry logic is disabled by default.

To use the workaround, do the following:
1. Enable the retry logic by changing the value of the registry entry "RetryEnumMountPoint" from 0 to 1 under the registry key 
- HKEY_LOCAL_MACHINE\SOFTWARE\VERITAS\VxSvc\CurrentVersion\VolumeManager
2. Configure the number of retry attempts by changing the value of the registry entry "RetryEnumMPAttempts" under the registry key
- HKEY_LOCAL_MACHINE\SOFTWARE\VERITAS\VxSvc\CurrentVersion\VolumeManager


Binary / Version:
mount.dll / 6.0.10012.308

After installing the hotfix, two Dword Values were added to 

HKEY_LOCAL_MACHINE\SOFTWARE\VERITAS\VxSvc\CurrentVersion\VolumeManager

They are called "RetryEnumMountPoint" and "RetryEnumMPAttempts", value of the former is 0, while value of the latter is 5.
I did not change these values. At the next failover (to Node02) the drive letters were enumerated just fine. So I thought I had fixed the issue, but at the subsequent failover (to Node02), I had the same problem again.

So from what I can gather, I have to change the value of "RetryEnumMountPoint" from 0 to 1.

Which leads to my question. Has anyone ever experienced this issue, and if you have, could you please share your experience? smiley

  • Hi Balthier35,

    I don't think you are having the issue described in path 3347495.  That patch sounds like VEA would be the only place where the drive letter enumeration issues would present itself - in other words the actual drive path would be available to the application (SQL in your case.)  From you post it sounds like SQL is having problems accessing the drive.  This leads me to believe that Mount Manager on node 2has lost the drive letter mapping for the volumes involved.  This should be fixed by manually mounting the volumes on node 2.  The manual mounting will reset Mount Manager to know where the volumes should be mounted when the volumes arrive.

     

    Thank you,

    Wally

  • Hi Balthier35,

    It sounds like the volumes were unmounted for some reason.  I would recommend going into VEA where the VMDg resource is online and try mounting the volumes to the correct drive letter.  Then the rest of the service group should be able to come online. 

    Once you are able to the get the group to come online, try moving the group to all available cluster nodes and ensure that the drive letters are assigned on all nodes.  You may need to manually assign the drive letters on each node of the cluster.  Once they are assigned on each node then the service group should be able to failover without issues again.

    If you are still having problems please open a case with Symantec Technical Support so that we can assist you with resolving this issue and restore your application availaibility.

    Thank you,

    Wally

  • Hi Wally,

    Could you please comment on the hotfix, and if the issue that is described in the hotfix is related to the problem I am experiencing with my cluster?

    Btw, the drive letters are enumerated just fine on Node 1, so whenever I experience this issue, I just restart Node2, and when the SQL instance is failed over back to Node1, things work just fine. Next time the drive letters are not enumerated on Node2, I will manually assign the drive letters.

    But do you reckon I need to change the value of "RetryEnumMountPoint" from 0 to 1?

  • Hi Balthier35,

    I don't think you are having the issue described in path 3347495.  That patch sounds like VEA would be the only place where the drive letter enumeration issues would present itself - in other words the actual drive path would be available to the application (SQL in your case.)  From you post it sounds like SQL is having problems accessing the drive.  This leads me to believe that Mount Manager on node 2has lost the drive letter mapping for the volumes involved.  This should be fixed by manually mounting the volumes on node 2.  The manual mounting will reset Mount Manager to know where the volumes should be mounted when the volumes arrive.

     

    Thank you,

    Wally

  • Thank you for your response Wally. Basically, I need to manually assign drive letters to the volumes, the next time they are not enumerated on Node2.

    Btw, do you recommend that I should do this in VEA, or should I use the mountvol command at command prompt?

  • Hi Bathier35,

    I prefer VEA.  But either will work.

     

    Thank you,

    Wally