Bem, como o VMotion é um recurso licenciado do vCenter, invocá-lo precisaria ser feito pelo servidor vCenter. Talvez o motivo pelo qual ele não esteja exposto atualmente pela CLI seja por alguns motivos comerciais / de licenciamento.
De qualquer forma, procurei e também não consigo encontrar referências ao equivalente VMware de "svmotion" para o VMotion tradicional.
Suponho que, se você não quiser usar o PowerCLI, tente criar um script semelhante a VMotion com vmware-cmd, mas mesmo que funcione (o que duvido), será desajeitado e totalmente sem suporte.
A estrutura básica por trás de uma operação VMotion é:
- criar um instantâneo de memória de uma VM em execução no host de origem
- comece a rastrear alterações no mapa de memória da VM desde o instantâneo
- transferir o instantâneo da memória original para o host ESX de destino
- interromper a VM
- aplicar delta de instantâneo de memória ao instantâneo de memória original no host de destino
- pare a VM no host de origem
- inicie a VM no host de destino com instantâneo de memória
Há um parâmetro vmware-cmd que faz instantâneos de desativação e memória, portanto, enquanto você não conseguir fazer (2), poderá fazer o resto.
Virtual Machine Operations
vmware-cmd <conn_option> <config_file_path>
[answer |
connectdevice <device_name> |
createsnapshot <name> <description> quiesce [0|1] memory [0|1] |
...
Duvido que seja executado em um período de tempo suficientemente curto para ser útil em relação à perda de serviço. Desculpe, provavelmente não é a resposta que você está procurando.
- ab1
Referência:
http://pubs.vmware.com/vsphere-51/index.jsp?topic=%2Fcom.vmware.vcli.ref.doc%2Fvmware-cmd.html