Thanks for the reply , I don't think if headswap is a good idea for our project because anyway we are upgrading the shelves too and if we do headswap we still need to move the data out of old shelves.
Option B seems much better if we can do it while snapmirror replications are still running . So correct me if I m wrong :
1. We add the new nodes and shelves to the existing cluster ( we may need to upgrade the existing cluster since it's running on 9.3 and new nodes are probably coming with 9.8 or 9.9 )
2. non-disruptively move the volumes to the new aggregates owned by new nodes ( should they be in the same SVM ? )
3. Resynch the snapmirror ?