Handling of minor number conflicts

The volume device minor numbers in a disk group to be imported may conflict with existing volume devices. In releases of VxVM prior to 5.1, the conflicts resulted in failures; either the disk group imported failed, or the slave node failed to join for a shared disk group. When this happened, you had to run the vxdg reminor command manually to resolve the minor conflicts.

From release 5.1 onward, VxVM can automatically resolve minor number conflicts. When there exists a minor conflict when a disk group is imported, the disk group is automatically assigned a new base minor, and the volumes in the disk group are reminored based on the new base minor. You do not need to run the vxdg reminor command to resolve the minor conflicts.

To avoid the conflicts between shared and private disk groups, the minor numbers have been divided into shared and private pools. Minor numbers of shared disk groups are allocated only from shared pools, and minor numbers of private disk groups are allocated only from private pools. If you import a private disk group as a shared disk group or vice versa, the device minor numbers are re-allocated from the correct pool. The disk group is dynamically reminored.

By default, private minor numbers range from 0-32999, and shared minor numbers start from 33000. You can change the division if required. For example, you can set the range for shared minor numbers to start from a lower number, to provide more minor numbers for shared disk groups and fewer minor numbers for private disk groups.

Normally the minor numbers in private and shared pools are sufficient, so there is no need to make changes to the division.

Note:

To make the new division take effect, you must run vxdctl enable or restart vxconfigd after the tunable is changed in the default file. The division on all the cluster nodes must be exactly the same, to prevent node failures for node join, volume creation, or disk group import operations.

To change the division between shared and private minor numbers

  1. Add the tunable sharedminorstart to the default file /etc/default/vxsf . For example, to change the shared minor numbers so that the range starts from 20000, set the following line in the /etc/default/vxsf file.

    sharedminorstart=20000

    You cannot set the shared minor numbers to start at less than 1000. If sharedminorstart is set to values between 0 to 999, the division of private minor numbers and shared disk group minor numbers is set to 1000. The value of 0 disables dynamic renumbering.

  2. Run the following command:

    # vxdctl enable

In certain scenarios, you may need to disable the division of between shared minor numbers and private minor numbers. For example, to prevent the device minor numbers from being changed when you upgrade to VxVM 5.1. In this case, disable the dymanic reminoring before you install the new VxVM package.

To disable the division between shared and private minor numbers

  1. Set the tunable sharedminorstart to the default file /etc/default/vxsf to 0 (zero). Set the following line in the /etc/default/vxsf file.

    sharedminorstart=0
  2. Run the following command:

    # vxdctl enable