"Error: Cannot allocate space" reported when trying to mirror root disk with vxassist file present at /etc/default location

book

Article ID: 100010421

calendar_today

Updated On:

Description

Error Message

When performing below

#/etc/vx/bin/vxmirror c0t0d0 c0t1d0
!vxassist -g rootdg mirror rootvolc0t1d0
vxvm:vxassist

It would report below error

ERROR: Cannot allocate space to mirror xxxx block volume
! vxbootsetup

Resolution

Consider an instance, 

Below is  the output of vxprint:

# vxprint -g rootdg-ht

dgrootdg      default      default  0        1026950909.1025.dbsun03

dmc0t0d0       c0t0d0s2     sliced  2888     71124291 -
dmc0t1d0       c0t1d0s2     sliced  2888     71124291-

v  rootvol      -            ENABLED  ACTIVE  69018210 ROUND     -root
pl rootvol-01  rootvol      ENABLED  ACTIVE   69018210CONCAT    - RW
sdc0t0d0-02    rootvol-01   c0t0d0   2097413  690182100         c0t0d0ENA

v  swapvol      -            ENABLED  ACTIVE  2097414  ROUND     -swap
pl swapvol-01  swapvol      ENABLED  ACTIVE  2097414  CONCAT    -RW
sdc0t0d0-B0    swapvol-01   c0t0d0   711242901        0         c0t0d0ENA
sdc0t0d0-01    swapvol-01   c0t0d0  0        2097413  1         c0t0d0ENA

From the above output it can be seen that the size of the root disk and mirror disk is 71124291*512/1024/1024/1024=33 GB.

The error message indicated that vxmirror was not able to allocate space to mirror a 69018210 block volume which would be 33 GB(69-18210*512/1024/1024/1024),  hence mirroring of the whole disk failed.

When checking the output from vxexplorer it turned out the file /etc/default/vxassist was present:

#more/etc/default/vxassist
mirror=controller

The default values that the vxassist command used can be specified in the file /etc/default/vxassist,  so in this case the default value requires that mirroring needs to be on the different controller,  yet c0t0d0 and c0t1d0 are under the same controller which causes vxmirror to fail.


WORKAROUND AVAILABLE
==============================
Move the default file to a different location or rename it to .old in the same location and then mirror the root disk again:

# mv/etc/default/vxassist /etc/default/vxassist.old
 
OR

# mv/etc/default/vxassist /tmp
 

 

Issue/Introduction

When attempts are made to mirror the root disk that has the vxassist file available at /etc/default location, then the mirror operation would fail.