VMware Cloud Community
drnewman5
Contributor
Contributor

Aligning VMFS on FreeBSD 8.0 ZFS

Greetings. After creating a VMFS datastore on a FreeBSD 8.0 system ISCSI target, the target machine complains that:

partition 1 does not start on a track boundary

If it's relevant, the ISCSI machine uses the istgt port, and also uses ZFS filesystems.

I suspect the error is related to the fact that the ZFS partition starting block is 8388770, which is not an integer multiple of either 4 or 64 (I think VMFS wants 64-kbyte blocks).

I can delete and recreate the VMFS datastore. How can I ensure it is aligned with the underlying ZFS filesystem?

thanks

0 Kudos
4 Replies
drnewman5
Contributor
Contributor

An update: I've rebuilt the iSCSI box to use partition boundaries that are multiples of 64, but still get the same alignment errors after formatting the partition as VMFS:

Apr 30 12:43:02 bettini kernel: GEOM: zvol/tank/bettini0: partition 1 does not start on a track boundary.

Apr 30 12:43:02 bettini kernel: GEOM: zvol/tank/bettini0: partition 1 does not end on a track boundary.

This error message occurs only AFTER I format the datastore in VMFS format.

I'm aware from the VMware documentation that misalignment may significantly degrade I/O throughput and increase latency.

Thanks in advance for clues on getting VMFS to align correctly.

0 Kudos
sferk
Contributor
Contributor

Did you try using fdisk to set the starting block to 128? :

0 Kudos
drnewman5
Contributor
Contributor

Interesting, thanks. I have not tried 128, but the document you cited suggests 128 only as an example for an EMC device to align on a 64-kbyte boundary. The doc also says if there's no recommendation given to use a starting block that's a multiple of 8 kbytes. My current setup does start on a 64-kbyte boundary but not an 8-kbyte one:

  1. gpart show

<snip>

34 128 1 freebsd-boot (64K)

162 8388638 2 freebsd-swap (4.0G)

8388800 1944715008 3 freebsd-zfs (927G)

I will try rebuilding this system on Monday using an 8k multiple, and report back.

ps. The terminology about 8- and 64-kbyte blocks is confusing to me. When formatting VMFS datastores in the Vsphere 4 client, the smallest block size choice is 1 Mbyte.

0 Kudos
drnewman5
Contributor
Contributor

I've rebuilt the system so that the ZFS partition begins on block 128 but still get the same alignment error:

from /var/log/messages each time after starting/restarting istgt:

May

6 14:29:15 bettini kernel: GEOM: zvol/tank/bettini0: partition 1 does

not start on a track boundary.

May 6 14:29:15 bettini kernel: GEOM: zvol/tank/bettini0: partition 1

does not end on a track boundary.

partial output of 'gpart show':

34 1953103805 da7 GPT (931G)

34 94 1 freebsd-boot (47K)

128 1944584192 2 freebsd-zfs (927G)

1944584320 8388608 3 freebsd-swap (4.0G)

output of 'zfs list tank/bettini0':

NAME USED AVAIL REFER MOUNTPOINT

tank/bettini0 1T 6.15T 33.9M -

Since this error occurs only after formatting the datastore into a VMFS datastore, I believe there's some issue related to using VMFS either with GEOM or ZFS.

Thanks in advance for additional clues on getting the VMFS and FreeBSD partitions aligned.

0 Kudos