Veritas Volume Replicator(VVR) pool size might become invalid after system reboot on Solaris

book

Article ID: 100052674

calendar_today

Updated On:

Description

Error Message

For example, setting vol_rvio_maxpool_sz as 2G.

# vxtune vol_rvio_maxpool_sz 2048M
# cat /kernel/drv/vxio.conf | grep vol_rvio_maxpool

vol_rvio_maxpool_sz=2147483648;

# echo "vol_rvio_maxpool_sz/J" | mdb -k
vol_rvio_maxpool_sz:
vol_rvio_maxpool_sz:            80000000

After reboot:
# echo "vol_rvio_maxpool_sz/J" | mdb -k
vol_rvio_maxpool_sz:
vol_rvio_maxpool_sz:            ffffffff80000000  <<------- Invalid value

Due to the invalid value, VVR might work abnormally. An IO hang has been observed followed by a system reboot when vol_rvio_maxpool_sz is set at 2Gb.

 

Note:

We observed the file system mount commands hanging  as well due to this problem.

This issue is applicable for all existing versions of Infoscale on Solaris.

Cause

The Solaris driver.conf(5) code does not currently support 64-bit properties. Veritas uses 32-bit integer properties, and those integer properties get sign extended when reloading modules or a system reboot. Therefore, they become invalid and cause unexpected behaviour.
 

Resolution

Due to a limitation of Solaris, any pool size settings which are larger than or equal to 2 Gb have to be explicitly set after reboot or module reload.

#vxtune vol_rvio_maxpool_sz 2048M 

 

Reference:
Oracle has an enhancement request, but it hasn’t been implemented yet.
ENH 24683160 - driver.conf: provide support for 64-bit integer properties

 

 

 

Issue/Introduction

If any VVR pool size is set larger than or equal to 2G, they will become invalid after a system reboot. Those tunables are:
  • vol_max_adminio_poolsz
  • vol_max_nmpool_sz
  • vol_max_rdback_sz
  • voliomem_maxpool_sz
  • vol_rvio_maxpool_sz

Additional Information

JIRA: STESC-6796