3)Add the same virtual ip on VM2
however 1-2 hours later, I can ping it successfully.
Try flushing the ARP table on the client:
ip neigh flush all dev eth0
Also, I believe having the second VM send gratuitous ARPs after getting the new IP will solve the problem.