I was doing some Solaris 10 8/07 testing with EMC Clariion CX4-960 array. One of the tests was to dynamically grow LUN. Until now, I have been doing this on HP EVA array. It was pretty straight forward:

  1. Grow the LUN on the array itself
  2. On the server use type subcommand of the format utility and Autoconfigure the LUN in question - this where the OS will detect the size increase
  3. Grow the filesystem

Of course, there are more steps if the LUN is mirrored, but I will leave that out. For some reason when I tried to autoconfigure the LUN on Clariion format would refuse to replace the VTOC, coming back with the following error:

Continue labelling disk? yes
Warning: error writing VTOC.
Warning: no backup labels
Label failed.

After a while of trying this and trying that, I got nowhere. I tried searching the web, but the search was not coming up with anything useful. Some people suggested it was a bug in format utility, some installed a different update of Solaris 10, others apparently got it work by booting into single user. None of this was acceptable.

The whole point of the exercise is to do this as efficiently as possible with the smallest amount of disruption to service. So no, I will not boot into single user mode.

Finally I decided to zero out VTOC, before running format command to Autoconfigure the LUN:

bash-3.00# dd if=/dev/zero of=/dev/rdsk/c4t6006016076011F00A83040728E6EDF11d0s2 bs=512 count=1

Sure enough, that worked and I successfully grew the LUN. What bugs me is that the procedure worked fine on EVA array. Sure, it is not exactly the same situation - different hardware, etc. But I do not think I should have to manually zero out VTOC to write a new one, when connected to Clariion. Maybe someone has a definite answer to this?