A forma recomendada de importar imagens de disco de arranque para o Compute Engine a partir dos seus data centers físicos, de máquinas virtuais (VMs) na sua estação de trabalho local ou de VMs executadas noutra plataforma na nuvem é usar a ferramenta de importação de discos virtuais, que automatiza todos os passos neste guia.
Se preferir não usar a ferramenta automatizada, pode seguir as instruções manuais passo a passo neste guia.
Este processo de importação de imagens só pode importar um disco de cada vez, e este guia centra-se em como importar imagens de disco de arranque.
Importe os seus discos de arranque existentes apenas se não conseguir criar ou migrar as suas apps para serem executadas sobre as imagens públicas do Compute Engine. As imagens públicas já estão configuradas para serem executadas no ambiente do Compute Engine, pelo que pode executar apps nessas imagens sem ter de se preocupar com as configurações do carregador de arranque e do sistema operativo. No entanto, pode ter de importar as suas próprias imagens de disco de arranque nos seguintes cenários:
- As suas apps requerem um sistema operativo que não é disponibilizado como uma imagem pública.
- Já tem um conjunto de imagens básicas que usa para criar VMs noutra plataforma na nuvem.
- O trabalho necessário para migrar o código da app para uma das imagens públicas é superior ao trabalho necessário para concluir o processo de importação de imagens do disco de arranque.
Em alternativa, pode receber assistência com a migração das suas VMs através de serviços de parceiros. Para mais informações, consulte o artigo Migrar VMs para o Compute Engine.
Vista geral
Para importar uma imagem de disco de arranque para o Compute Engine, use o seguinte processo:
- Planeie o caminho de importação. Tem de identificar onde vai preparar a imagem do disco de arranque antes de a carregar e como vai estabelecer ligação a essa imagem depois de arrancar no ambiente do Compute Engine.
- Prepare o disco de arranque para que possa arrancar no ambiente do Compute Engine e para que possa aceder ao mesmo após o arranque.
- Crie e comprima o ficheiro de imagem do disco de arranque.
- Carregue o ficheiro de imagem para o Cloud Storage e importe a imagem para o Compute Engine como uma nova imagem personalizada.
- Use a imagem importada para criar uma instância da VM e certifique-se de que é iniciada corretamente.
- Se a imagem não for iniciada com êxito, pode resolver o problema anexando a imagem do disco de arranque a outra instância e reconfigurando-a.
- Otimize a imagem e instale o ambiente convidado para que a imagem do sistema operativo importada possa comunicar com o servidor de metadados e usar funcionalidades adicionais do Compute Engine.
Requisitos
Requisitos do disco de arranque
Para importar discos de arranque para o Compute Engine, os discos de arranque têm de cumprir os seguintes requisitos:
- Recomendamos que instale todas as atualizações disponíveis na VM de origem.
- Se criou um kernel do sistema operativo personalizado, este tem de cumprir os requisitos de configuração de hardware e do kernel. A maioria das distribuições do Linux de origem já cumprem estes requisitos, pelo que este requisito destina-se apenas a utilizadores avançados que criam os seus próprios sistemas operativos personalizados para serem executados no Compute Engine.
- O disco de arranque não pode ter mais de 2048 GB (2 TB).
- O disco de arranque que importa tem de ter uma tabela de partições MBR funcional ou uma configuração híbrida de uma tabela de partições GPT com um carregador de arranque MBR.
- A partição principal no disco de arranque pode estar em qualquer formato que quiser, desde que arranque corretamente a partir do carregador de arranque MBR.
- O carregador de arranque no disco de arranque não pode ter argumentos da linha de comandos do kernel
quiet
,rhgb
ousplashimage=
. O Compute Engine não suporta ecrãs iniciais no arranque. Pode remover estes valores da configuração do GRUB durante o passo de configuração do carregador de arranque. - O sistema operativo no disco de arranque tem de suportar ACPI.
Requisitos do ficheiro de imagem
O ficheiro de imagem que importa tem de cumprir os seguintes requisitos:
- Execute uma verificação de consistência na imagem do disco com o comando
qemu-img check
no disco. - Para exportar o disco virtual, use a função de exportação do software de gestão de VMs. Não copie o ficheiro VMDK do sistema de ficheiros do gestor de VMs.
- O ficheiro de imagem tem de ser de uma imagem suportada.
- O nome do ficheiro de imagem de disco tem de ser
disk.raw
. - O ficheiro de imagem RAW tem de ter um tamanho num incremento de 1 GB. Por exemplo, o ficheiro tem de ter 10 GB ou 11 GB, mas não 10,5 GB.
- O ficheiro comprimido tem de ser um ficheiro
.tar.gz
que use a compressão gzip e a opção--format=oldgnu
para o utilitáriotar
(manual).
Requisitos para o seu projeto
Quando cria uma instância de VM a partir de uma imagem importada, a instância tem de conseguir aceder ao repositório de pacotes externo para o sistema operativo configurado no disco de arranque.
Pode aceder a este repositório diretamente a partir do fornecedor do sistema operativo ou através de uma ligação de rede à sua infraestrutura no local que aloja estes repositórios.
Para configurar o acesso ao repositório externo, conclua um dos seguintes passos no seu projeto:
- Configure um endereço IP externo estático para a VM estabelecer ligação à sua rede local nas instalações ou a outras redes externas.
- Configure um anfitrião de bastião, uma VPN ou o encaminhamento TCP do IAP que possa ser usado para estabelecer ligação à sua rede local no local ou a outras redes externas.
Limitações
Para importar discos através de redes que não permitem endereços IP externos, tem de cumprir requisitos de rede adicionais. Para mais informações, consulte o artigo Importar discos através de redes que não permitem endereços IP externos.
Custos de importação de imagens
Antes de começar, compreenda os custos do processo de importação. Não existe qualquer custo para a transferência de dados de rede de entrada para carregar o ficheiro de imagem do disco de arranque para o Cloud Storage, nem para importar essa imagem como uma imagem personalizada do Compute Engine. No entanto, existem custos para alguns passos específicos no processo de importação:
- O custo do armazenamento temporário dos seus ficheiros de imagem comprimidos num contentor padrão do Cloud Storage. Tem de usar um contentor do Cloud Storage temporário para guardar os seus ficheiros antes de os poder importar como imagens personalizadas do Compute Engine. Pode remover o contentor depois de concluir o processo de importação.
- O custo do armazenamento de imagens personalizadas depois de as importar para o Compute Engine.
- O custo potencial das transferências de dados de saída no seu centro de dados existente, fornecedor de rede ou serviço na nuvem atual. Os ficheiros de imagem podem ser muito grandes, mesmo depois de os comprimir. Por isso, a cópia desses ficheiros para o Compute Engine pode incorrer em custos significativos de transferência de dados de saída em algumas plataformas.
- O custo dos discos persistentes do Compute Engine e das instâncias de VM, onde pode configurar a imagem depois de a importar para o Compute Engine.
Planeie e prepare o caminho de importação
O método de importação do disco depende da configuração atual do sistema que quer mover para o Compute Engine. Precisa de um sistema onde possa criar e comprimir o ficheiro de imagem do disco de arranque, bem como um sistema onde possa carregar o ficheiro de imagem para o Cloud Storage. Considere os seguintes itens quando planear o caminho de importação:
- O caminho de importação de imagens requer que configure o disco de arranque num ambiente de sistema operativo funcional. Este processo pode fazer com que o disco de arranque não arranque em nenhum local fora de um ambiente do Compute Engine. É da sua responsabilidade garantir que não perde dados nos seus discos nem interrompe as suas apps empresariais funcionais enquanto importa o seu sistema para o Compute Engine.
- Identifique a configuração de acesso do sistema existente e planeie como quer aceder ao sistema depois de o importar para o Compute Engine.
- Se o seu sistema tiver configurações de início de sessão do utilizador ou SSH existentes, pode configurar apenas o carregador de arranque e, posteriormente, configurar a imagem para ser executada de forma ideal no Compute Engine. Pode aceder à instância através da sua configuração SSH existente ou através de um início de sessão de utilizador direto na consola série interativa.
- Se o seu sistema não tiver configurações de início de sessão do utilizador ou SSH existentes, tem de configurar o disco de arranque para poder aceder ao mesmo depois de arrancar no Compute Engine.
- O processo de importação pode demorar várias horas ou dias, consoante o tamanho do disco de arranque e a velocidade da ligação de rede.
- O sistema onde cria e comprime a imagem do disco de arranque tem de ter espaço de armazenamento suficiente para criar os ficheiros de imagem num dispositivo de armazenamento que não seja o próprio disco de arranque. Normalmente, os ficheiros de imagem e
tar.gz
usam 2 a 3 vezes mais espaço do que o próprio disco de arranque. - Compreenda a estrutura do sistema de ficheiros do sistema existente que quer importar.
- Se o seu sistema operativo e ficheiros de apps estiverem distribuídos por vários discos, importe cada um desses discos individualmente e use cada imagem para criar um disco persistente único para a sua instância de VM do Compute Engine.
- Se os seus sistemas tiverem volumes de arranque numa configuração de RAID em que vários discos atuam como um único volume lógico, crie uma única imagem a partir de toda a matriz em vez de criar uma imagem para cada disco na matriz. Os discos persistentes do Compute Engine eliminam a necessidade de configurações RAID.
- Se o seu sistema encriptar o conteúdo do disco de arranque com um Trusted Platform Module ou com encriptação ao nível do software, desencripte o disco de arranque antes de criar o ficheiro de imagem do disco de arranque. A Google não consegue ler as suas imagens se estiverem encriptadas. Encriptamos as suas imagens depois de as carregar e permitimos-lhe fornecer as suas próprias chaves de encriptação para os seus discos persistentes e contentores do Cloud Storage.
Depois de identificar ou criar um sistema onde possa concluir o processo de importação, ligue-se a esse sistema e configure o carregador de arranque.
Prepare a imagem de disco de arranque
Num sistema em execução, prepare a imagem do disco de arranque para que possa funcionar num ambiente do Compute Engine.
- Configure o carregador de arranque no disco de arranque para que a imagem possa ser iniciada no Compute Engine.
- Configure o acesso SSH ou de início de sessão do utilizador no disco de arranque para que possa aceder ao mesmo depois de o importar para o Compute Engine e iniciá-lo como uma instância de VM.
Este processo pode tornar o sistema não arrancável fora do Compute Engine. Por isso, a prática recomendada é concluir este passo num sistema isolado com uma cópia do disco de arranque que quer importar.
Configure o carregador de arranque
Configure o carregador de arranque no sistema para que possa arrancar no Compute Engine.
Ligue-se ao terminal no sistema com o disco de arranque que planeia importar.
Edite o ficheiro de configuração do GRUB. Normalmente, este ficheiro encontra-se em
/etc/default/grub
, mas, em algumas distribuições anteriores, pode estar localizado num diretório não padrão.Faça as seguintes alterações ao ficheiro de configuração do GRUB:
- Remova todas as linhas que tenham
splashimage=
. O Compute Engine não suporta ecrãs iniciais no arranque. - Remova os argumentos da linha de comandos do kernel
rhgb
equiet
. - Adicione
console=ttyS0,38400n8d
aos argumentos da linha de comandos do kernel para que a instância possa interagir com a consola série.
- Remova todas as linhas que tenham
Volte a gerar o ficheiro
grub.cfg
. Use um dos seguintes comandos, consoante a sua distribuição.- Debian e Ubuntu:
sudo update-grub
- RHEL, CentOS, SUSE, openSUSE:
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
- Debian e Ubuntu:
Edite o ficheiro
/etc/fstab
e remova as referências a todos os discos e partições, exceto o próprio disco de arranque e as partições nesse disco de arranque. As entradas inválidas em/etc/fstab
podem fazer com que o processo de arranque do sistema pare.
Depois de configurar o carregador de arranque, crie e comprima o ficheiro de imagem de disco.
Configure o acesso SSH ou de início de sessão do utilizador na imagem
Depois de a imagem estar em execução no Compute Engine como uma instância de VM, tem de ter uma forma de aceder a essa instância. Pode ligar-se à instância através de uma configuração SSH existente ou iniciar sessão com um nome de utilizador e uma palavra-passe ligando-se à consola série.
Conclua a configuração de SSH ou de início de sessão do utilizador antes de criar e comprimir o ficheiro de imagem de disco.
Crie e comprima o ficheiro de imagem de disco
Crie e comprima o ficheiro de imagem do disco de arranque para o sistema que quer importar para o Compute Engine. O processo de criação e compressão do ficheiro de imagem é diferente consoante a plataforma onde os seus sistemas operam.
Generic
Em quase todos os sistemas, pode usar este processo para criar um ficheiro de imagem RAW que pode importar para o Compute Engine. Pode concluir este processo no sistema em execução que está a importar ou pode anexar o disco de arranque como um disco secundário noutro sistema e criar a imagem do disco de arranque a partir do disco parado. Certifique-se de que tem espaço de armazenamento disponível suficiente para guardar temporariamente os ficheiros de imagem de disco. Este exemplo tira uma imagem de um sistema em execução.
Ligue-se ao terminal no sistema que tem o disco de arranque que planeia importar.
Use o comando
lsblk
para identificar o disco de arranque de origem a partir do qual quer criar uma imagem e a localização onde tem espaço suficiente para escrever os ficheiros de imagem. Para este exemplo,/dev/sda
é o disco de arranque de origem e/dev/sdb
é um disco secundário grande montado no diretório/tmp
. Embora /dev/sda esteja em execução, ainda pode criar uma imagem a partir dele. É melhor fazê-lo num sistema silencioso que não esteja a processar ativamente dados nem a executar apps.lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 100G 0 disk ├─sda1 8:1 0 96G 0 part / ├─sda2 8:2 0 1K 0 part └─sda3 8:5 0 4G 0 part [SWAP] sdb 8:16 0 500G 0 disk /tmp sr0 11:0 1 1024M 0 rom
Crie o ficheiro de imagem a partir do disco de arranque.
sudo dd if=/dev/sda of=/tmp/disk.raw bs=4M conv=sparse
Mude para o diretório onde escreveu o ficheiro
disk.raw
.cd /tmp
Comprima o disco não processado no formato
tar.gz
. Este passo comprime o ficheiro de imagem para que o possa carregar mais rapidamente para o Cloud Storage. No OSX, instalegtar
e use-o para este passo em vez detar
.tar --format=oldgnu -Sczf /tmp/compressed-image.tar.gz disk.raw
VirtualBox
Se preparou o seu sistema num ambiente do VirtualBox, pode usar a ferramenta VBoxManage
para converter uma imagem de disco .vdi
ou .qcow2
no formato disk.raw
.
Encerre a máquina convidada do VirtualBox que quer importar, substituindo GUEST_NAME pelo nome da sua máquina convidada. Pode encerrar a máquina convidada com a interface do VirtualBox ou através do utilitário VBoxManage.
VBoxManage controlvm GUEST_NAME acpipowerbutton
Converta a imagem do convidado para o formato RAW através do utilitário VBoxManage, substituindo GUEST_NAME pelo caminho para a imagem do convidado. Esta imagem de convidado pode ser fornecida como um ficheiro
vdi
ouqcow2
:VBoxManage clonemedium GUEST_NAME ~/disk.raw --format RAW
Comprima o disco não processado no formato
tar.gz
. Este passo comprime o ficheiro de imagem para que o possa carregar mais rapidamente para o Cloud Storage. No OSX, instalegtar
e use-o para este passo em vez detar
.sudo tar --format=oldgnu -Sczf /tmp/compressed-image.tar.gz disk.raw
O ficheiro de imagem é comprimido e fica pronto para carregamento para o Cloud Storage.
Importe a imagem para a sua lista de imagens personalizadas
Carregue o ficheiro para o Cloud Storage e importe a imagem para a sua lista de imagens personalizadas. Opcionalmente, pode encriptar a imagem durante o passo de importação de imagens.
Importe a imagem com a consola ou as ferramentas da Google Cloud CLI:
Consola
Copie o ficheiro compressed-image.tar.gz
para a sua estação de trabalho local e use a consola para criar um contentor e carregar o ficheiro. Google Cloud
- Na Google Cloud consola, aceda à página do navegador do Cloud Storage.
- Na parte superior da página, clique em Criar contentor.
- Especifique um nome de contentor exclusivo, a classe de armazenamento Standard e uma localização onde quer armazenar os ficheiros de imagem.
- Clique em Criar para criar o contentor. A página do navegador navega para o novo grupo.
- Na parte superior da página, clique em Carregar ficheiros.
- Na caixa de diálogo de ficheiros, selecione o ficheiro
compressed-image.tar.gz
que transferiu do seu sistema. O ficheiro é carregado a partir da sua estação de trabalho local. Este passo pode demorar várias horas, consoante o tamanho do ficheiro de imagem comprimido e a velocidade da sua ligação de rede.
Depois de carregar a imagem para o Cloud Storage, importe o ficheiro de imagem para a sua lista de imagens personalizadas.
- Na Google Cloud consola, aceda à página Imagens.
- Na parte superior da página, clique em Criar imagem.
- No campo Nome, especifique um nome exclusivo para a imagem.
- Opcionalmente, especifique uma família de imagens para a nova imagem ou configure definições de encriptação específicas para a imagem.
- Clique no menu Origem e selecione Ficheiro do Cloud Storage.
Introduza o caminho para o ficheiro
compressed-image.tar.gz
que carregou para o Cloud Storage.BUCKET_NAME/compressed-image.tar.gz
Clique em Criar para importar a imagem. O processo pode demorar vários minutos, consoante o tamanho da imagem do disco de arranque.
A imagem é agora incluída na página Imagens. Pode criar uma VM com esta imagem importada. Se ocorrer uma falha de arranque, verifique e certifique-se de que configurou o carregador de arranque corretamente.
gcloud e gcloud storage
Use a CLI gcloud para carregar o ficheiro de imagem do disco de arranque comprimido. Pode concluir este processo no sistema onde criou a imagem do disco de arranque ou pode copiar esse ficheiro para outro sistema e concluir o processo de carregamento aí.
Instale e inicialize a CLI gcloud no sistema a partir do qual planeia carregar o ficheiro
compressed-image.tar.gz
.Use a CLI gcloud para criar um novo contentor do Cloud Storage.
gcloud storage buckets create gs://BUCKET_NAME
Carregue o ficheiro
compressed-image.tar.gz
para o novo contentor.gcloud storage cp compressed-image.tar.gz gs://BUCKET_NAME
Importe o ficheiro de imagem como uma nova imagem personalizada.
gcloud compute images create IMAGE_NAME --source-uri gs://BUCKET_NAME/compressed-image.tar.gz
Substitua o seguinte:
- IMAGE_NAME: o nome da imagem que importou.
- BUCKET_NAME: o nome do contentor no qual a imagem importada está armazenada.
A imagem é agora incluída na lista de imagens personalizadas. Pode criar uma VM com esta imagem importada. Se ocorrer uma falha de arranque, verifique e certifique-se de que configurou o carregador de arranque corretamente.
gcloud compute images list --no-standard-images
NAME PROJECT FAMILY DEPRECATED STATUS [IMAGE_NAME] [PROJECT_ID] READY
Teste a imagem importada para garantir que funciona
Confirme que a imagem importada funciona como esperado. Crie uma VM com um disco de arranque que use a imagem importada.
Consola
Na Google Cloud consola, aceda à página Criar uma instância.
Na secção Disco de arranque, clique em Alterar e, de seguida, faça o seguinte:
- Selecione o separador Imagens personalizadas.
- Para selecionar o projeto de imagens, clique em Selecionar um projeto e, de seguida, faça o seguinte:
- Selecione o projeto que contém a imagem.
- Clique em Abrir.
- Na lista Imagem, clique na imagem que importou.
- Selecione o tipo e o tamanho do disco de arranque.
- Para confirmar as opções do disco de arranque, clique em Selecionar.
Clique em Criar.
gcloud
gcloud compute instances create VM_NAME --zone ZONE --image IMAGE_NAME
Substitua o seguinte:
- VM_NAME: um nome exclusivo para a sua VM.
- ZONE: a zona onde criou o disco autónomo.
- IMAGE_NAME: o nome da imagem que importou.
Depois de criar a VM, confirme se foi iniciada corretamente. Verifique a saída da porta série:
Consola
- Na Google Cloud consola, aceda à página Instâncias de VM.
- Na lista de VMs, clique no nome da VM que criou a partir da imagem importada. É apresentada a página de detalhes da VM.
- Na secção Registos, clique na porta série adequada para expandir e ver a saída da porta série desta VM.
Se a VM parou em Booting from Hard Disk 0...
, tem de
resolver os problemas
no ambiente do Compute Engine ou pode
reconfigurar o disco de arranque no sistema original e repetir o processo
de importação.
gcloud
gcloud compute instances get-serial-port-output VM_NAME
Se a VM parou em Booting from Hard Disk 0...
, tem de
resolver os problemas
no ambiente do Compute Engine ou pode
reconfigurar o disco de arranque no sistema original e repetir o processo
de importação.
Também pode testar a VM estabelecendo ligação à mesma. Ligue-se à VM através de uma das seguintes opções:
- SSH: se a VM tiver uma configuração de SSH funcional, pode estabelecer ligação à VM através do SSH e da sua chave privada. Pode encontrar o endereço IP da instância de VM na página Instâncias de VM.
- Consola série: se precisar de iniciar sessão na VM diretamente sem SSH, pode ativar a consola série e iniciar sessão com um nome de utilizador e uma palavra-passe.
O que se segue?
- Configure o disco para que a sua imagem possa tirar partido das funcionalidades no ambiente do Compute Engine.
- Quando a imagem estiver pronta para produção, crie uma versão final dessa imagem personalizada e inclua a imagem numa família de imagens para poder gerir as versões atualizadas da imagem personalizada.
- Algumas importações podem falhar devido a problemas com o disco de arranque. Para mais informações, consulte o artigo Resolução de problemas de discos de arranque.