Handling of minor number conflicts

The volume device minor numbers in a disk group to be imported may conflict with existing volume devices. In previous releases of VxVM, the conflicts resulted in failures. Either the disk group import operation failed, or the slave node failed to join a shared disk group. When this situation happened, you had to run the vxdg reminor command manually to resolve the minor conflicts. Starting with this release, VxVM can automatically resolve minor number conflicts.

If a minor conflict exists when a disk group is imported, VxVM automatically assigns a new base minor to the disk group, and reminors the volumes in the disk group, based on the new base minor. You do not need to run the vxdg reminor command to resolve the minor conflicts.

To avoid any conflicts between shared and private disk groups, the minor numbers are divided into shared and private pools. VxVM allocates minor numbers of shared disk groups only from the shared pool, and VxVM allocates minor numbers of private disk groups only from the private pool. 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. This range provides 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 defaults 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 defaults 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 between shared minor numbers and private minor numbers. For example, you may need to prevent the device minor numbers from being changed when you upgrade from a previous release. In this case, disable the dynamic reminoring before you install the new VxVM package.

To disable the division between shared and private minor numbers

  1. Set the tunable sharedminorstart in the defaults 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