mkfs.ext4 /dev/vdb
mkdir /var1
echo UUID=$(blkid | grep /dev/vdb | sed 's/^.*UUID="//' | sed 's/" TYPE.*$//') /var1 ext4 noatime 1 2 >> /etc/fstab
mount /var1
rsync -raHAXP -v /var/* /var1/
sed -i 's/\/var1/\/var/' /etc/fstab
umount /var1
mv /var /var2
mkdir /var
mount /var
init 6

# after reboot:
rm -rf /var1
rm -rf /var2

I don't think this method is suitable for an already long-running/established system, for those I think using live CD/DVD/USB is better since there should be no loss of written data to already opened file in /var after rsync but before reboot.