Criar um plano de migração
Para começar a migração das VMs, é necessário criá-la primeiro. Isso gera um objeto de plano de migração. Geralmente, o arquivo precisa de mais revisão e personalização antes de você prosseguir com a migração.
Uma migração é o objeto central com que você executa ações de migração,
monitora as atividades de migração e o status com migctl
e o Console do Google Cloud. Esse objeto
é implementado como uma definição de recurso personalizada (CRD, na sigla em inglês) do Kubernetes e
inclui recursos extras, como um PersistentVolumeClaim
do Kubernetes
no plano de migração.
Antes de começar
- Adicione uma origem de migração.
- Encontre o ID da instância da máquina virtual (VM), conforme descrito na seção a seguir.
- Quando usar o Compute Engine como origem da migração, interrompa a VM de origem antes de criar uma migração. Depois que o objeto de migração for criado, reinicie a VM.
Encontrar o ID da VM
Para encontrar o ID da VM, procure o inventário da VM ou encontre-o manualmente, dependendo do tipo de origem.
Encontrar o ID usando o inventário da VM
Ao usar o
migctl
, é possível visualizar uma lista de VMs emitindo o seguinte comando:migctl source list-vms <name> [ --refresh ] [ --wide ]
Ao usar o Console do Google Cloud, navegue até o tipo de origem para encontrar uma tabela listando todas as VMs desse tipo.
Encontrar o ID manualmente
Encontre o ID da VM manualmente por tipo de origem:
Compute Engine
vmId
-- Nome da VM como aparece no Console do Google Cloud.
VMware
vmId
: o ID ou nome da VM a ser migrada conforme exibidos na plataforma de origem. É possível usar um dos valores a seguir.O nome da VM. Se você tiver certeza de que cada nome de VM é exclusivo em toda a implantação do VMware, o nome simples da VM funcionará. Se os nomes das VMs estiverem duplicados, use o ID conforme descrito abaixo.
Veja na imagem a seguir como conseguir o nome da VM no vSphere Web Client.
O ID da VM do vSphere, também chamado de MoRef. Ele é exibido no URL do vSphere Web Client ao selecionar a VM.
Também é possível usar a PowerCLI para encontrar o MoRef.
Requisitos de nomenclatura
Você atribui um nome a uma migração ao criá-la no Migrate to Containers. O nome precisa cumprir os seguintes requisitos:
- conter no máximo 63 caracteres;
- conter apenas caracteres alfanuméricos minúsculos ou "-" (hífen);
- começar com um caractere alfanumérico;
- terminar com um caractere alfanumérico.
Cargas de trabalho compatíveis
Crie uma migração
Cargas de trabalho do Linux e do Windows
Crie uma migração usando a ferramenta migctl
ou o
console do Google Cloud.
migctl
Pare a VM. A VM precisa ser interrompida para você criar uma migração. Após a conclusão da migração, reinicie a VM.
Crie a migração:
migctl migration create my-migration --source
my-src --vm-idmy-id --typeserver-type Em que
--vm-id
especifica o nome da instância de VM, conforme mostrado no console do tipo de origem. Em que--type
é--type=windows-iis-container
oulinux-system-container
.
Console
Se a origem da migração for uma VM do Compute Engine, interrompa-a. A VM precisa ser interrompida para você criar uma migração. Após a conclusão da migração, reinicie a VM.
Abra a página "Migrate to Containers" no Console do Google Cloud.
Clique na guia Migrações para exibir uma tabela com as migrações disponíveis.
Clique em Criar migração.
Digite o nome da migração.
Selecione a origem da migração que você criou em Como adicionar uma origem de migração.
Defina o Tipo de carga de trabalho como Contêiner do sistema baseado em imagem ou Contêiner do IIS do Windows.
Digite o ID da VM de origem. Consulte Antes de começar para mais informações sobre como determinar o ID da VM.
Clique em Criar migração.
Quando a criação da migração for concluída, a coluna Status exibe Plano de migração gerado.
CRD
Para definir uma migração, crie um arquivo de Migração com o nome
my-migration.yaml
.Nesse arquivo, o campo
name
emsourceProviderRef
especifica o nome de um SourceProvider criado anteriormente, e o camposourceId
especifica o nome da instância do Compute Engine.Type
vai ser--type=windows-iis-container
oulinux-system-container
.apiVersion: anthos-migrate.cloud.google.com/v1 kind: Migration metadata: name: my-migration namespace: v2k-system spec: type: linux-system-container sourceSnapshotTemplate: spec: sourceProviderRef: name: my-ce-src sourceId: my-id
Se você estiver migrando uma VM do Compute Engine, interrompa-a. A VM precisa ser interrompida para você criar uma migração. Após a conclusão da migração, reinicie a VM.
Aplique o arquivo:
kubectl apply -f my-migration.yaml
Cargas de trabalho do Tomcat
Especificar parâmetros do Tomcat
Você precisa especificar manualmente os valores de CATALINA_BASE
e CATALINA_HOME
.
migctl
Pare a VM do Compute Engine. A VM precisa ser interrompida para você criar uma migração. Após a conclusão da migração, reinicie a VM.
Crie a migração:
migctl migration create my-migration --source my-ce-src --vm-id my-id --type tomcat-container --parameters catalina-base=/catalina/base/path1:/catalina/base/path2,catalina-home=/catalina/home/path/,java-version=11
--vm-id
especifica o nome da instância, conforme mostrado no console de serviço.catalina-base
especifica uma lista de valoresCATALINA_BASE
separados por dois pontos.catalina-home
especifica o valor deCATALINA_HOME
.java-version
é um parâmetro opcional que especifica a versão do Java que será usada pelo contêiner.
CRD
Para definir uma migração, crie um arquivo de Migração com o nome
my-migration.yaml
.Nesse arquivo, defina os seguintes campos:
sourceProvider
: especifica o nome de um SourceProvider criado anteriormente.sourceId
: especifica o nome da instância de VM do Compute Engine.parameters
: define parâmetros específicos para as cargas de trabalho do Tomcat.
Confira a seguir um exemplo de um arquivo de migração com estes valores de campo definidos:
apiVersion: anthos-migrate.cloud.google.com/v1 kind: Migration metadata: name: my-migration namespace: v2k-system spec: type: tomcat-container sourceSnapshotTemplate: spec: sourceProviderRef: name: my-ce-src sourceId: my-id parameters: - name: catalina-base value: /opt/tomcat - name: catalina-home value: /opt/tomcat
Se você estiver migrando uma VM do Compute Engine, interrompa-a. A VM precisa ser interrompida para você criar uma migração. Após a conclusão da migração, reinicie a VM.
Aplique o arquivo:
kubectl apply -f my-migration.yaml
Cargas de trabalho do WebSphere tradicional
Especificar WAS_HOME
A variável de ambiente WAS_HOME
especifica onde o WAS tradicional está instalado,
como /opt/IBM/WebSphere/AppServer/
. O Migrate to Containers usa esse valor
quando você cria uma migração para executar scripts que buscam informações sobre um app
e determina o caminho de um perfil de app. Se o Migrate to Containers não localizar a pasta de instalação, defina o valor de WAS_HOME
.
migctl
Pare a VM. A VM precisa ser interrompida para você criar uma migração. Após a conclusão da migração, reinicie a VM.
Crie a migração:
migctl migration create my-migration --source
my-was-src --vm-idmy-id --type websphere-traditional-container --parameters was-home=/opt/IBM/WebSphere/AppServer/ Em que
--vm-id
especifica o nome da instância, conforme mostrado no console de serviço.
CRD
Para definir uma migração, crie uma Migração arquivada com o nome
my-migration.yaml
.Nesse arquivo, defina os seguintes campos:
sourceProvider
: especifica o nome de um SourceProvider criado anteriormente.sourceId
: especifica o nome da instância de VM do Compute Engine.parameters
: define parâmetros específicos para as cargas de trabalho do WebSphere.
Confira a seguir um exemplo de um arquivo de migração com estes valores de campo definidos:
apiVersion: anthos-migrate.cloud.google.com/v1 kind: Migration metadata: name: my-migration namespace: v2k-system spec: type: websphere-traditional-container sourceSnapshotTemplate: spec: sourceProviderRef: name: my-ce-src sourceId: my-id parameters: - name: was_home value: /opt/IBM/WebSphere/AppServer/
Se você estiver migrando uma VM do Compute Engine, interrompa-a. A VM precisa ser interrompida para você criar uma migração. Após a conclusão da migração, reinicie a VM.
Aplique o arquivo:
kubectl apply -f my-migration.yaml
Cargas de trabalho do JBoss
Crie uma migração usando a ferramenta migctl
ou o
console do Google Cloud.
migctl
Pare a VM. A VM precisa ser interrompida para você criar uma migração. Após a conclusão da migração, reinicie a VM.
Crie a migração:
migctl migration create my-migration --source
my-src --vm-idmy-id --type=jboss-container --parameters jboss-home=/opt/jboss Em que
--vm-id
especifica o nome da instância de VM, conforme mostrado no console do tipo de origem.
Console
Se a origem da migração for uma VM do Compute Engine, interrompa-a. A VM precisa ser interrompida para você criar uma migração. Após a conclusão da migração, reinicie a VM.
Abra a página "Migrate to Containers" no Console do Google Cloud.
Clique na guia Migrações para exibir uma tabela com as migrações disponíveis.
Clique em Criar migração.
Digite o nome da migração.
Selecione a origem da migração que você criou em Como adicionar uma origem de migração.
Defina o Tipo de carga de trabalho como Contêiner do JBoss.
Digite o Nome da instância de origem. Consulte Antes de começar para mais informações sobre como determinar o nome da instância.
Defina o parâmetro JBOSS_HOME e use o caminho de instalação do JBoss.
Clique em Criar migração.
Quando a criação da migração for concluída, a coluna Status exibe Plano de migração gerado.
CRD
Para definir uma migração, crie um arquivo Migration chamado
my-migration.yaml
.Nesse arquivo, o campo
name
emsourceProviderRef
especifica o nome de um SourceProvider criado anteriormente, e o camposourceId
especifica o nome da instância do Compute Engine. No campotype
, insirajboss-container
. É possível adicionar uma lista de parâmetros de descoberta emdiscoveryParameters
. Cada parâmetrodiscoveryParameters
tem duas propriedades:name
evalue
. Ao criar uma migração do JBoss, o parâmetrodiscoveryParameters
chamadojboss-home
, que especifica o caminho inicial do JBoss comovalue
, é obrigatório.apiVersion: anthos-migrate.cloud.google.com/v1 kind: Migration metadata: name: my-migration namespace: v2k-system spec: type: jboss-container2 discoveryParameters: - name: jboss-home value: /path-to-jboss-home sourceSnapshotTemplate: spec: sourceProviderRef: name: my-ce-src sourceId: my-id
Se você estiver migrando uma VM do Compute Engine, interrompa-a. A VM precisa ser interrompida para você criar uma migração. Após a conclusão da migração, reinicie a VM.
Aplique o arquivo:
kubectl apply -f my-migration.yaml
Cargas de trabalho do Apache
Crie uma migração usando a ferramenta migctl
ou o
console do Google Cloud.
migctl
Pare a VM. A VM precisa ser interrompida para você criar uma migração. Após a conclusão da migração, reinicie a VM.
Crie a migração:
migctl migration create my-migration --source
my-src --vm-idmy-id --type=apache-containerEm que
--vm-id
especifica o nome da instância de VM, conforme mostrado no console do tipo de origem.
Console
Se a origem da migração for uma VM do Compute Engine, interrompa-a. A VM precisa ser interrompida para você criar uma migração. Após a conclusão da migração, reinicie a VM.
Abra a página "Migrate to Containers" no Console do Google Cloud.
Clique na guia Migrações para exibir uma tabela com as migrações disponíveis.
Clique em Criar migração.
Digite o nome da migração.
Selecione a origem da migração que você criou em Como adicionar uma origem de migração.
Defina o Tipo de carga de trabalho como Contêiner do Apache.
Digite o ID da VM de origem. Consulte Antes de começar para mais informações sobre como determinar o ID da VM.
Clique em Criar migração.
Quando a criação da migração for concluída, a coluna Status exibe Plano de migração gerado.
CRD
Para definir uma migração, crie um arquivo Migration chamado
my-migration.yaml
.Nesse arquivo, o campo
name
emsourceProviderRef
especifica o nome de um SourceProvider criado anteriormente, e o camposourceId
especifica o nome da instância do Compute Engine. No campotype
, insiraapache-container
.apiVersion: anthos-migrate.cloud.google.com/v1 kind: Migration metadata: name: my-migration namespace: v2k-system spec: type: apache-container sourceSnapshotTemplate: spec: sourceProviderRef: name: my-ce-src sourceId: my-id
Se você estiver migrando uma VM do Compute Engine, interrompa-a. A VM precisa ser interrompida para você criar uma migração. Após a conclusão da migração, reinicie a VM.
Aplique o arquivo:
kubectl apply -f my-migration.yaml
Cargas de trabalho do WordPress
Crie uma migração usando a ferramenta migctl
ou o
console do Google Cloud.
migctl
Pare a VM. A VM precisa ser interrompida para você criar uma migração. Após a conclusão da migração, reinicie a VM.
Crie a migração:
migctl migration create my-migration --source
my-src --vm-idmy-id --type=wordpress-containerEm que
--vm-id
especifica o nome da instância de VM, conforme mostrado no console do tipo de origem.
Console
Se a origem da migração for uma VM do Compute Engine, interrompa-a. A VM precisa ser interrompida para você criar uma migração. Após a conclusão da migração, reinicie a VM.
Abra a página "Migrate to Containers" no Console do Google Cloud.
Clique na guia Migrações para exibir uma tabela com as migrações disponíveis.
Clique em Criar migração.
Digite o nome da migração.
Selecione a origem da migração que você criou em Como adicionar uma origem de migração.
Defina o Tipo de carga de trabalho como Contêiner do WordPress.
Digite o ID da VM de origem. Consulte Antes de começar para mais informações sobre como determinar o ID da VM.
Clique em Criar migração.
Quando a criação da migração for concluída, a coluna Status exibe Plano de migração gerado.
CRD
Para definir uma migração, crie um arquivo Migration chamado
my-migration.yaml
.Nesse arquivo, o campo
name
emsourceProviderRef
especifica o nome de um SourceProvider criado anteriormente, e o camposourceId
especifica o nome da instância do Compute Engine. No campotype
, insirawordpress-container
.apiVersion: anthos-migrate.cloud.google.com/v1 kind: Migration metadata: name: my-migration namespace: v2k-system spec: type: wordpress-container sourceSnapshotTemplate: spec: sourceProviderRef: name: my-ce-src sourceId: my-id
Se você estiver migrando uma VM do Compute Engine, interrompa-a. A VM precisa ser interrompida para você criar uma migração. Após a conclusão da migração, reinicie a VM.
Aplique o arquivo:
kubectl apply -f my-migration.yaml
Monitorar a criação da migração
Use a ferramenta migctl
ou o console do Google Cloud
para monitorar o progresso da criação da migração.
migctl
Aguarde o término da fase de criação da migração:
migctl migration status my-migration NAME CURRENT-OPERATION PROGRESS STEP STATUS AGE my-migration GenerateMigrationPlan [1/3] CreateSourceSnapshots Running 13s
Se você estiver migrando uma VM do Compute Engine, reinicie-a. Uma VM interrompida não é necessária após esta etapa.
Console
Quando o status da migração mostrar que a migração foi criada, avance para a próxima etapa:
Abra a página "Migrate to Containers" no Console do Google Cloud.
Clique na guia Migrações para exibir uma tabela com as migrações disponíveis.
Veja o status de uma migração:
Como visualizar a coluna Status da linha para a migração.
Clique no nome da migração. A página Detalhes da migração é aberta. Clique na guia Monitoramento para ver o status detalhado ou na guia Eventos para ver os eventos de migração.
Quando a criação da migração for concluída, o Status exibe Plano de migração gerado.
Se você estiver migrando uma VM do Compute Engine, reinicie-a. Uma VM interrompida não é necessária após esta etapa.
CRD
Use kubectl
para receber informações de migração e status de MigrationStatus especificando um JSONPath
para o campo necessário.
Aguarde o término da fase de criação da migração:
Use dois comandos
kubectl wait
, um para aguardar a condição "Ready" e outro para a condição "Failed". A fase de criação do plano de migração está em execução até que a primeira condição seja atendida.unset pids; for cond in "Ready" "Failed"; do kubectl wait migrations.anthos-migrate.cloud.google.com my-migration -n v2k-system --for condition=$cond --timeout=15m & pids+=($!); done; wait -p met_pid -n ${pids[@]} kill ${pids[@]/$met_pid} # terminate the process that did not complete.
Quando o comando de espera estiver completo, a operação vai ser concluída e você vai poder passar para a próxima etapa.
Veja o status do plano de migração:
kubectl get migrations.anthos-migrate.cloud.google.com -n v2k-system -o jsonpath={.status.conditions[?(@.type==\"Ready\")].status} my-migration
Retorna
True
quando o plano de migração está pronto ouFalse
quando falha.Quando a fase de criação da migração falhar, use o seguinte comando para receber a mensagem de erro:
kubectl get migrations.anthos-migrate.cloud.google.com -n v2k-system -o jsonpath={.status.conditions[?(@.type=="Ready")].message} my-migration
Se você estiver migrando uma VM do Compute Engine, reinicie-a. Uma VM interrompida não é necessária após esta etapa.
A seguir
- Saiba como migrar dados.