I've got a Solaris 10 system on SPARC hosting multiple Linux guest LDoms which were installed on ZFS zvols. After resizing the zvol though, the Linux doesn't "detect" that disk resized, and from what I can gather this is probably due to the VTOC on the disk still specifying the old disk size.

This is the mapping of the ldom using the primary virtual disk:

ldadm@ldom0> ldm list -o disk ldom1

    NAME             VOLUME                      TOUT ID   DEVICE  SERVER         MPGROUP       
    osdisk0          ldom1osdisk0@p-vds0             0    disk@0  primary  

Here's the corresponding zfs volume before the resize:

root@ldom0> zfs list -t volume
NAME                       USED  AVAIL  REFER  MOUNTPOINT
ldom0/LDom/ldom1/osdisk0  13.5G  71.3G  3.10G  -

I then resized the volume:

root@ldom0> zfs set volsize=40g ldom0/LDom/ldom1/osdisk0

This is the zvol afterwards:

root@ldom0> zfs list -t volume
NAME                       USED  AVAIL  REFER  MOUNTPOINT
ldom0/LDom/ldom1/osdisk0  42.5G   101G  3.10G  -

However, when I start the Linux:

ldadm@ldom0> telnet localhost 5000
ldom1 login: root
root@ldom1> fdisk -l
Disk /dev/vdiska: 12 GiB, 12884901888 bytes, 25165824 sectors
Geometry: 255 heads, 63 sectors/track, 1566 cylinders
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 8192 bytes
I/O size (minimum/optimal): 8192 bytes / 8192 bytes
Disklabel type: sun

Device          Start      End  Sectors  Size Id Type         Flags
/dev/vdiska1        0   192779   192780 94.1M  1 Boot              
/dev/vdiska2   192780  8482319  8289540    4G 83 Linux native      
/dev/vdiska3        0 25157789 25157790   12G  5 Whole disk        
/dev/vdiska4  8482320 12466439  3984120  1.9G 82 Linux swap        
/dev/vdiska5 12466440 25157789 12691350  6.1G 83 Linux native    

As already mentioned, I assume that this is normal behavior due to the VTOC label containing the size as explained here 1. There's documentation on how to edit or print the label on Solaris eg. here 2, but I didn't find anything for Linux.

Am I right in assuming I need to edit the VTOCs, and if, how? Or did I miss something else?

1 Answer 1


While I assumed VTOCs being the answer to the question, the real answer was simply ldm not picking up on the changes. A simple remove-and-readd fixed the problem, ie.:

ldadm@ldom0> ldm stop ldom1
ldadm@ldom0> ldm rm-vdisk osdisk0 ldom1
ldadm@ldom0> ldm add-vdisk osdisk0 ldom1osdisk0@p-vds0 ldom1
ldadm@ldom0> ldm start ldom1

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .