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.
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.
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