Nope. That's not how LACP works. :(
Incorrect. Sending to two destination addresses on the remote NAS could certainly result in this behaviour, but the switch may be using a different hashing algorithm so it may take things like the port number into account, which can result in some infuriating difficulties for an admin trying to precompute what behaviour will result.
Also incorrect!
"LACP balances outgoing traffic across the active ports based on hashed protocol header information and accepts incoming traffic from any active port. The hash includes the Ethernet source and destination address and, if available, the VLAN tag, and the IPv4 or IPv6 source and destination address."
Seems like different destination IP addresses would yield different hashes.
Because you do get it. This part is correct. The hash used by the switch, though, may be different, so you have a complex multivariable problem here, both "will the FreeBSD hash do the right thing" and then "will the switch hash also do the right thing."
Is there a technique to leverage LACP for the transfer? Maybe split it into two snaphot sync processes to two addresses on the receiving NAS?
But this, though, this is the problem I see. (Assuming you get the hash thing working. Which is a workable problem.)
Your idea isn't really possible without some sort of multiple snapshot scenario. If you have multiple datasets, and you snap each one, then yes, this is theoretically possible, but I hope it is obvious that this is something you'd have to be doing by hand.
Do you have existing snapshots or other ZFS-y things you're trying to preserve on the pool? Or are you just looking to move files from pool A to pool B?
If you're just looking to move files from A to B, you could also say "screw snapshots" and just do it the conventional way. Use tar and netcat. Do some legwork to determine, using du or whatever, a list of top level directories that's approximately half of all your data. Then you do:
# cd /mnt/mynewpool
# nc -d -l 5000 | tar xf - &
# nc -d -l 5001 | tar xf - &
on the receiving host, then
# cd /mnt/sadoldpool
# tar cf - Documents Pictures Downloads Music | nc 10.0.0.101 5000 &
# tar cf - Video | nc 10.0.0.102 5000 &
You can even do this a little bit at a time if you're not exactly sure about the balance, unlike the snapshot method where once you've started you are committed. Desperate admins been doing things like this for many years.
