Friday, December 13, 2013

ZFS Online Pool Expansion Does Not Work For Solaris Cluster 4.x Clustered Zpools

Symptoms
ZFS online pool expansion does not work on Solaris Cluster 4.x clustered pools
Issue clarification

Cause
System running Solaris 11.1 with zpool online expansion does not understand global name space in Solaris cluster
 Cause determination
Command use for online expansion of Sun Cluster LUNs
[root@cbneuh02b]$ truss -aefEl -vall -o truss.out -u libzfs zpool online -e
XTOHTXX1_db /dev/did/dsk/d63s0 /dev/did/dsk/d62s0 /dev/did/dsk/d61s0 /d>
: cannot relabel 'dsk/d63s0': unable to open device
: cannot relabel 'dsk/d62s0': unable to open device
: cannot relabel 'dsk/d61s0': unable to open device
: cannot relabel 'dsk/d60s0': unable to open device

From the truss data, it seems that libzfs is not able to filter the Solaris
Cluster device path and finally wrong pathname is passed into
zpool_relabel_disk().

13418/1: 0.0000 open("/dev/rdsk/dsk/d63s0", O_RDWR|O_NDELAY) Err#2
EN OENT
13418/1: 0.0000 fstat64(2, 0xF782BC38) = 0
13418/1: d=0x09580000 i=711604508 m=0020620 l=1 u=0 g=7
rdev
=0x01B4001D
13418/1: at = May 2 18:11:14 EST 2013 [ 1367482274.000000000
]
13418/1: mt = May 2 18:11:14 EST 2013 [ 1367482274.000000000
]
13418/1: ct = May 1 13:04:15 EST 2013 [ 1367377455.000000000
]
13418/1: bsz=8192 blks=0 fs=dev
13418/1: 0.0000 write(2, " : ", 2) = 2
13418/1: 0.0000 write(2, " c a n n o t r e l a b".., 49) = 49
13418/1: 0.0000 write(2, "\n", 1) = 1
root@cbneuh02b]$ zpool status XTOHTXX1_db
  pool: XTOHTXX1_db
 state: ONLINE
  scan: none requested
config:

  NAME STATE READ WRITE CKSUM
  XTOHTXX1_db ONLINE 0 0 0
  /dev/did/dsk/d63s0 ONLINE 0 0 0
  /dev/did/dsk/d62s0 ONLINE 0 0 0
  /dev/did/dsk/d61s0 ONLINE 0 0 0
  /dev/did/dsk/d60s0 ONLINE 0 0 0


Need to take an outage to export zpools, and re-import them in order to
expand ZFS pools.

Bug is 16923140

Solution
Please ask for Oracle support for solution
 Action Plan

No comments:

Post a Comment