Linux considerações sobre a migração para IBM Cloud VPC

Analise as considerações sobre a migração do Linux para o IBM Cloud VPC, incluindo a verificação do driver VirtIO, a configuração do cloud-init e as configurações de rede.

Antes de iniciar uma migração, leve em consideração as informações a seguir.

Verifique os drivers do site VirtIO

Linux são geralmente mais simples do que as do Windows, mas o guia descreve algumas considerações importantes que devem ser levadas em conta.

As seguintes distribuições Linux incluem drivers VirtIO no kernel:

  • Ubuntu: 16.04 e versões posteriores
  • RHEL/CentOS: 6.x e posteriormente
  • Debian: 8 e versões posteriores
  • SUSE: 12 e posteriores

Use o comando a seguir para verificar se os drivers do VirtIO estão instalados.

lsmod | grep virtio

Você vê os drivers a seguir:

  • virtio_blk- Driver de dispositivo de bloco
  • virtio_net- Driver de rede
  • virtio_scsi- Driver SCSI
  • virtio_pci- Driver de barramento PCI

Se esses drivers estiverem faltando, você precisará reconstruir o kernel com suporte a VirtIO ou instalar uma distribuição mais recente.

Não é necessário um equivalente do Sysprep

Linux não vincula os drivers ao hardware. O kernel detecta o novo hardware na inicialização e carrega os drivers apropriados. Esse processo torna a migração simples, sem a necessidade de preparação.

Ajustar a configuração da rede

Linux não vincula os drivers ao hardware como o Windows. O kernel detecta o novo hardware na inicialização e carrega os drivers apropriados, o que torna a migração significativamente mais fácil, sem a necessidade de nenhuma preparação especial.

Problema comum: Os nomes das interfaces de rede mudam durante a migração.

Em VMware, sua interface pode ser nomeada:

  • ens192 (nomeação previsível do systemd)
  • eth0 (nomeação tradicional)

No VPC, isso pode mudar para:

  • ens3 ou ens33 (comum em ambientes VirtIO )
  • eth0 (se você usar as convenções de nomenclatura tradicionais)

Para resolver a configuração de IP estático, use as informações a seguir:

  • NetworkManager-based ( Red Hat Enterprise Linux (RHEL) 7 ou superior, ou versões mais recentes do Ubuntu )

    # Identify new interface name
    ip link show
    # Edit connection
    nmcli con edit "System eth0"
    # Change interface-name to new name
    # Save and quit
    # Restart NetworkManager
    systemctl restart NetworkManager
    
  • Baseado no Netplan ( Ubuntu 18.04 +)

    # /etc/netplan/01-netcfg.yaml
    network:
      version: 2
      ethernets:
        ens3:  # Updated from ens192
          addresses: [10.240.0.10/24]
          gateway4: 10.240.0.1
          nameservers:
            addresses: [8.8.8.8, 8.8.4.4]
    
  • Tradicional /etc/network/interfaces ( Debian, mais antigo Ubuntu )

    auto ens3
    iface ens3 inet static
      address 10.240.0.10
      netmask 255.255.255.0
      gateway 10.240.0.1
    

Correção da configuração do DHCP:

Se você usar o DHCP, a configuração será automática, mas talvez seja necessário atualizar os nomes das interfaces nos arquivos de configuração.

Considerações sobre a inicialização na nuvem

O Cloud-init é usado para inicializar instâncias de nuvem, normalmente usado com modelos de imagem. A ferramenta é executada na primeira inicialização para realizar as seguintes ações:

  • Definir um nome de host
  • Configurar rede
  • Criar usuários e chaves SSH
  • Executar scripts personalizados

Contexto de migração: Se o cloud-init estiver instalado no seu servidor virtual migrado, o VPC pode tratar a primeira inicialização como uma inicialização inicial, o que aciona as seguintes ações:

  • Mudanças do nome do host
  • Reconfiguração de rede
  • Alterações na conta do usuário
  • Execução de scripts de instalação na nuvem

Decisões de design

Opção 1: Desativar a inicialização da nuvem

# Before migration
sudo touch /etc/cloud/cloud-init.disabled
# Or after migration via VNC console

Opção 2: Aceitar o comportamento de primeira inicialização

  • Útil se você quiser que a VPC configure automaticamente a rede por meio do DHCP
  • pode exigir ajustes manuais após a inicialização (nome do host, usuários)

Opção 3: Configurar o cloud-init

  • Crie uma configuração de inicialização na nuvem para preservar suas configurações
  • Mais complexo, mas oferece controle

Para migrações individuais do VM (não implantações de modelos), desative a instalação na nuvem para preservar a configuração existente. Para implementações baseadas em modelos, use o cloud-init para configuração automática.

Considerações sobre a partição e o sistema de arquivos

Verificação da tabela de partição: Depois de transferir os discos, use o seguinte comando para verificar se as tabelas de partição estão intactas:

# On worker virtual server instance (VSI) after transfer
fdisk -l /dev/vdb
# For GPT
gdisk -l /dev/vdb

Redimensionamento do volume de inicialização: Se você redimensionou o volume de inicialização para cima (exemplo: de 80 GB em VMware para 100 GB em VPC),

  1. Talvez seja necessário atualizar a tabela de partições:

Se você redimensionou o volume de inicialização para cima (de 80 GB em VMware para 100 GB em VPC):

# For MBR
fdisk /dev/vda
# Delete and recreate partition with same start sector, new end sector
# For GPT (automatic backup GPT update)
gdisk /dev/vda
  1. Redimensionar o sistema de arquivos:
# For ext4
resize2fs /dev/vda1
# For xfs
xfs_growfs /
# For LVM
pvresize /dev/vda2
lvextend -l +100%FREE /dev/mapper/vg-root
resize2fs /dev/mapper/vg-root

fstrim e Thin Provisioning

No VMware, você pode usar o comando fstrim para recuperar espaço não utilizado em VMDKs com provisionamento dinâmico. Na VPC, todos os volumes são provisionados na camada de armazenamento, mas o fstrim não tem efeito sobre a recuperação de espaço na VPC. Lembre-se de que o fstrim não libera armazenamento.

Os trabalhos cron do fstrim existentes podem permanecer no lugar ou removê-los para evitar E/S desnecessárias.