clean up, refactor and add save restore interface in vdev

clean up, refactor, add save restore interface in vdev