http://www.freebsddiary.org/zfs-with-gpart.php
Partition the HDD and give only the partition to ZFS. [...] This strategy is only useful when setting up a new array. The idea is to use slightly less than your entire HDD. Thus, if a replacement HDD happens to be smaller, you're covered.zpool replace [-f] pool old_device [new_device]
Replaces old_device with new_device. This is equivalent to attach-
ing new_device, waiting for it to resilver, and then detaching
old_device.
The size of new_device must be greater than or equal to the minimum
size of all the devices in a mirror or raidz configuration.