Virtualization efficiently manages the ever-increasing demand for storage, computing, and networking resources in large-scale Cloud Data Centers. Virtualization attains multifarious resource management objectives including proactive server maintenance, load balancing, pervasive service availability, power management, and fault tolerance by virtual machine (VM) migration. VM migration is a resource-intensive operation as it constantly requires adequate CPU cycles, memory capacity, system cache, and network bandwidth. Consequently, it adversely affects the performance of running applications and cannot be entirely overlooked in contemporary data centers, particularly when user SLA and critical business goals are to be met. The unavailability of a comprehensive survey on VM migration schemes that covers various VM migration aspects such as migration patterns, sequence, application performance, bandwidth optimization, and migration granularity has motivated this review of existing schemes. This paper reviews state-of-the-art live and non-live VM migration schemes. Through an extensive literature review, a detailed thematic taxonomy is proposed for the categorization of VM migration schemes. Critical aspects and related features of current VM migration schemes are inspected through detailed qualitative investigation. We extract significant parameters from existing literature to discuss the commonalities and variances among VM migration schemes. Finally, open research issues and challenges with VM migration that require further consideration to develop optimal VM migration schemes in Cloud Data Centers are briefly addressed.