Cannot initialise a non-EFI disk greater than 1TB in VxVM on Solaris

I had an interesting issue over the weekend when trying to initialise a disk in VxVM. The disk itself is 2TB in size (presented from a storage array), and I am running VxVM on the Solaris OE.

When using vxdisksetup to initialisation initialise the disk, the action fails with one of the following errors:

VxVM vxdisksetup ERROR V-5-2-3628 The dmpnode <disk_name> is disabled. Can not proceed with vxdisksetup.
VxVM vxdisk ERROR V-5-1-5433 init failed:  Device path not valid.

NOTE: vxconfigd also returns the following when restarted:

get_geometry_info_common: /dev/vx/rdmp/<disk_name>/fmt_page_code failed. ret 0x6 

After scratching my head for over an hour, it transpires that disks that are greater than 1TB in size needs an to have an EFI label on Solaris before they can be initialised under VxVM.

Resolution

The following steps can be taken to assign an EMI label to the disk, thus allowing for a successful initialisation under VxVM.

  1. Locate the c#t#d# disk from VxVM :
    root@solvm# vxdisk list <disk_name>
    Make a note of the c#t#d# from the output:
  2. Obtain the slice layout from the disk using prtvtoc.
    prtvtoc /dev/dsk/<c#t#d#s0>
    For example:
    root@solvm# prtvtoc /dev/dsk/c4t1d0s0
    * /dev/dsk/c4t1d0s2 partition map
    *
    * Dimensions:
    *     512 bytes/sector
    *     424 sectors/track
    *      24 tracks/cylinder
    *   10176 sectors/cylinder
    *   14089 cylinders
    *   14087 accessible cylinders
    *
    * Flags:
    *   1: unmountable
    *  10: read-only
    *
    *                          First     Sector    Last
    * Partition  Tag  Flags    Sector     Count    Sector  Mount Directory
          0      2    00          0  40968576  40968575   /
          1      3    01   40968576  51205632  92174207
          4      7    00   92174208  30721344 122895551   /var
          5      0    00  122895552  20453760 143349311   /opt
    
  3. Using format, write an SMI label to the disk. For example:
    root@solvm# format -e c4t1d0
    • At the format> prompt, type p
    • At the partition> prompt, type l to initialise the disk with an EFI label
    • Type q to quit format.
  4. Verify the status of the disk within VxVM:
    root@solvm# vxdisk list
    DEVICE    TYPE         DISK        GROUP   STATUS
    c0t3d0s2  auto:sliced  rootdisk01  rootdg  online
    c1t0d0s2  auto:sliced  rootdisk02  rootdg  online
    c4t1d0s2  auto:none    -           -       online invalid
    As the disk status now shows as "online invalid", we can continue to initialise the disk.
  5. Use vxdisksetup to initialise the disk under VxVM.
    vxdisksetup -i <disk_name> <options>
    For example:
    root@solvm# vxdisksetup -i c4t1d0 format=sliced
  6. Finally, verify the status of the disk under VxVM control. For example:
    root@solvm# vxdisk list | grep c4t1d0
    c4t1d0s2  auto:sliced  -           -       online
    The disk should now show as "ONLINE".