I. Introduction
Cloud computing is a well-established but constantly evolving technology. Virtualization is a fundamental element of cloud computing. It allows cloud users to share the same underlying infrastructure, as isolated software abstractions. It enhances portability, flexibility and scalability on cloud, while it improves the resource utilization and reduces the cost and energy consumption of the cloud infrastructure. Software Defined Systems (SDS) also use virtualization to provide a software abstraction for different subsystems including Software Defined Networking (SDN) [1], Software Defined Storage (SDStorage), Software Defined Servers (Virtualization) etc. [2].