How much private region free space is required for a successful Veritas Volume Manager (VxVM) diskgroup join

book

Article ID: 100005194

calendar_today

Updated On:

Description

Error Message

# vxdg join srcdg targetdg
VxVM vxdg ERROR V-5-1-4597 vxdg join srcdg targetdg failed
join failed : Configuration too large for configuration copies

Cause

The size of the total config records in sectors is listed in the vxdisk list output as "configs len".   The config records are used to store the VxVM objects.   Old VxVM versions created small private regions of 1MB or 2MB by default.    For example, 

# vxdisk list HDS9500-ALUA1_4
Device:    HDS9500-ALUA1_4
.....
info:      format=cdsdisk,privoffset=256,pubslice=2,privslice=2
.....
private:   slice=2 offset=256 len=2048 disk_offset=0          <<< private region length is 2048 sectors (1MB)
....
configs:   count=1 len=1280            <<< total config records in number of sectors (1280)
.....
Defined regions:
 config   priv 000048-000239[000192]: copy=01 offset=000000 disabled     <<< 192 sectors
 config   priv 000256-001343[001088]: copy=01 offset=000192 disabled     <<< 1088 sectors
.....
 

When the disk is used to create a diskgroup, VxVM will start to use the config records to store the VxVM object (e.g. diskgroup, volume, plex, subdisk, etc.)   The usage can be checked with the vxdg list  command.

# vxdg list tmpdg
Group:     tmpdg
....
config:    seqno=0.1027 permlen=1280 free=1277 templen=2 loglen=192     <<< permlen and free
config disk HDS9500-ALUA1_4 copy 1 len=1280 state=clean online
.....

The "permlen" parameter shown by vxdg list  output is the total config records in number of sectors (which is the same as configs length as shown in vxdisk list output).   The "free" parameter is the available config records in number of sectors.    As more VxVM objects are created, the "free" sectors will decrease.     The number of config record sectors used can be calculated as (permlen - free).    For example, in the above example, the number of config record sectors used to store the VxVM objects is 1280-1277=3 (it is an empty diskgroup will only basic config records.)

When two diskgroups are joined together, the resulting configuration will be approximately the combined size of the config records.   The resulting size may be a few sectors smaller because some basic records can be combined.     As a result for a successful diskgroup join operation to occur, both diskgroups must have enough config records to accommodate the combined configurations.  

For example,  joining the following two diskgroups will succeed because the combined config record size is 454 + 7 = 461 sectors which is smaller than the premlen of both diskgroups.


# vxdg list targetdg
Group:     targetdg
dgid:      1298071684.76.sydfire02
import-id: 1024.162
flags:     cds
version:   140
alignment: 8192 (bytes)
local-activation: read-write
ssb:            on
detach-policy: global
dg-fail-policy: dgdisable
copies:    nconfig=1 nlog=1
config:    seqno=0.7107 permlen=1280 free=826 templen=222 loglen=192    <<< 1280-826 = 454
config disk HDS9500-ALUA1_4 copy 1 len=1280 state=clean online
config disk HDS9500-ALUA1_13 copy 1 len=2800 disabled
log disk HDS9500-ALUA1_4 copy 1 len=192
log disk HDS9500-ALUA1_13 copy 1 len=416 disabled

# vxdg list srcdg
Group:     srcdg
dgid:      1298087887.78.sydfire02
import-id: 1024.160
flags:     cds
version:   140
alignment: 8192 (bytes)
local-activation: read-write
ssb:            on
detach-policy: global
dg-fail-policy: dgdisable
copies:    nconfig=default nlog=default
config:    seqno=0.1048 permlen=528 free=521 templen=5 loglen=80       <<< 528-521 = 7
config disk HDS9500-ALUA1_5 copy 1 len=528 state=clean online
log disk HDS9500-ALUA1_5 copy 1 len=80

# vxdg join srcdg targetdg

# vxdg list targetdg
Group:     targetdg
dgid:      1298071684.76.sydfire02
import-id: 1024.162
flags:     cds
version:   140
alignment: 8192 (bytes)
local-activation: read-write
ssb:            on
detach-policy: global
dg-fail-policy: dgdisable
copies:    nconfig=1 nlog=1
config:    seqno=0.7130 permlen=1280 free=821 templen=222 loglen=80   << 1280-821 = 459 sectors
config disk HDS9500-ALUA1_4 copy 1 len=1280 state=clean online
config disk HDS9500-ALUA1_5 copy 1 len=528 disabled
config disk HDS9500-ALUA1_13 copy 1 len=2800 disabled
log disk HDS9500-ALUA1_4 copy 1 len=192
log disk HDS9500-ALUA1_5 copy 1 len=80 disabled
log disk HDS9500-ALUA1_13 copy 1 len=416 disabled

 

The following vxdg join operation will fail because the combined config records is bigger than the permlen paremeter of one of the diskgroups.

# vxdg list srcdg
Group:     srcdg
dgid:      1298083316.90.sydfire02
import-id: 1024.89
flags:     cds
version:   140
alignment: 8192 (bytes)
local-activation: read-write
ssb:            on
detach-policy: global
dg-fail-policy: dgdisable
copies:    nconfig=default nlog=default
config:    seqno=0.1046 permlen=528 free=521 templen=3 loglen=80     <<< 528 -  521 = 7 sectors used to store config records
config disk HDS9500-ALUA1_5 copy 1 len=528 state=clean online
log disk HDS9500-ALUA1_5 copy 1 len=80


# vxdg list targetdg
Group:     targetdg
dgid:      1298071684.76.sydfire02
import-id: 1024.58
flags:     cds
version:   140
alignment: 8192 (bytes)
local-activation: read-write
ssb:            on
detach-policy: global
dg-fail-policy: dgdisable
copies:    nconfig=2 nlog=2
config:    seqno=0.4430 permlen=1280 free=556 templen=353 loglen=192    <<< 1280 - 556 = 724 sectors used to store config records
config disk HDS9500-ALUA1_4 copy 1 len=1280 state=clean online
config disk HDS9500-ALUA1_13 copy 1 len=2800 state=clean online
log disk HDS9500-ALUA1_4 copy 1 len=192
log disk HDS9500-ALUA1_13 copy 1 len=416

Since the combined configuration has size of 724 + 7 = 731 sectors.  This is bigger than the premlen 528 of the first diskgroup and hence the vxdg join fails.


# vxdg join srcdg targetdg
VxVM vxdg ERROR V-5-1-4597 vxdg join srcdg targetdg failed
join failed : Configuration too large for configuration copies

 

 

 

Resolution

If vxdg join fails with "Configuration too large for configuration copies" error, please try to reduce the number of objects in the diskgroups so that the combined size is less than the smallest premlen of the diskgroups.    For example, if a plex is comprised of many small subdisks, then try to migrate the plex to a blank disk to combine the subdisks together.

If it is not possible to reduce the number of VxVM objects, then you will need to migrate the data to disks initialized with bigger private region size.

 

Applies To

Infoscale Volume Manager

Issue/Introduction

Diskgroup join fails because the resulting diskgroup configuration is too large to be accommodated by the private region config records.