Code Change Request

# 27663

Back to Code Changes

Christopher
Technical Support
StableBit DrivePool
2.2.0.852
Public
Alex

* [Issue #27663] Use the kernel path to locate the VDS volume for a pool part.
Public
Alex

It looks like that drive's volume GUID path has changed since it was added to the pool. The service synchronizes some pool part information from VDS (which includes the file system), and it uses the volume GUID path to locate the appropriate volume in VDS.

In this case, the volume GUID path is reported to be different than what the pool part knows.

From vds.log:

Basic disk: 2
        Properties:
          Size: 4,998,257,704,960
          Bus type: VDSBusTypeRAID
          Device type: DISK
          Media type: FixedMedia
          Device path: \\?\scsi#disk&ven_hgst&prod_hdn726050al#5&29902dbc&0&000000#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}
          Device status: VDS_DS_ONLINE
          Disk id: f0a8f28f-4374-4d6c-a9c5-80feb266f646
          Bytes per sector: 512
          Disk flags: 0x00000000
        Pack:
          Pack status: VDS_PS_ONLINE
          Pack flags: 0
        Basic volumes:
          Volume: C:\PoolDisks\5\
          Volume GUID path: [\\?\Volume{bb5dad12-b296-11e7-8239-005056c00008}\]
            Type: VDS_VT_SIMPLE
            File system type: VDS_FST_NTFS
            Size: 4,998,120,628,224
            Flags: 0x000B8460

From Store viewer for the pool part:
"Volume": {
    "VolumeProperties": {
      "id": "0d74b605-7ffb-4b7f-9c45-0a060b5c9770",
      "type": 10,
      "status": 1,
      "health": 1,
      "TransitionState": 1,
      "ullSize": 134217728,
      "ulFlags": 525408,
      "RecommendedFileSystemType": 4,
      "pwszName": "\\\\?\\GLOBALROOT\\Device\\HarddiskVolume31"
    },
    "VolumeGuidPaths": [
      {
        "sAccessPath": "\\\\?\\Volume{14957755-2b67-b14f-aead-cb840c4d29fa}\\"
      },
      {
        "sAccessPath": "\\\\?\\Volume{14957755-2b67-b14f-aead-cb840c4d29fa}\\"
      }
    ]
...
        "pwszDiskAddress": "Port8Path0Target0Lun0",
        "pwszName": "\\\\?\\PhysicalDrive2",
        "pwszFriendlyName": "HGST HDN726050AL SCSI Disk Device",
        "pwszAdaptorName": "Adaptec RAID 51245",
        "pwszDevicePath": "\\\\?\\SCSI#Disk&Ven_HGST&Prod_HDN726050AL#5&29902dbc&0&000000#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}",
        "pwszLocationPath": "PCIROOT(0)#PCI(1C03)#PCI(0000)#RAID(P00T00L00)"

I'm going to change how VDS <-> pool part volumes are located. They'll use the kernel path instead, and we'll synchronize it on every boot. This should be more reliable as it won't depend on the kernel mount manager.