Linux Aspetti da considerare in merito alla migrazione verso IBM Cloud VPC

Esaminare le considerazioni relative alla migrazione di Linux per IBM Cloud VPC, tra cui la verifica del driver VirtIO, la configurazione di cloud-init e le impostazioni di rete.

Prima di avviare una migrazione, si prega di tenere conto delle seguenti informazioni.

Verificare i driver di VirtIO

Linux Le migrazioni di Windows sono generalmente più semplici di quelle di Windows, ma la guida descrive alcune considerazioni importanti da tenere a mente.

Le seguenti distribuzioni Linux includono i driver VirtIO nel kernel:

  • Ubuntu: 16.04 e successivi
  • RHEL/CentOS: 6.x e successivamente
  • Debian: versione 8 e successive
  • SUSE: 12 e successivi

Utilizzare il seguente comando per verificare che i driver VirtIO siano presenti.

lsmod | grep virtio

Vengono visualizzati i seguenti driver:

  • virtio_blk- Driver del dispositivo a blocchi
  • virtio_net- Driver di rete
  • virtio_scsi- Driver SCSI
  • virtio_pci- Driver del bus PCI

Se questi driver mancano, è necessario ricostruire il kernel con il supporto di VirtIO o installare una distribuzione più recente.

Non è necessario un equivalente di Sysprep

Linux non lega i driver all'hardware. Il kernel rileva il nuovo hardware all'avvio e carica i driver appropriati. Questo processo rende la migrazione semplice e non richiede alcuna preparazione.

Regolare la configurazione di rete

Linux non lega i driver all'hardware come Windows. Il kernel rileva il nuovo hardware all'avvio e carica i driver appropriati, semplificando notevolmente la migrazione senza che sia necessaria una preparazione speciale.

Problema comune: I nomi delle interfacce di rete cambiano durante la migrazione.

In VMware, l'interfaccia potrebbe essere denominata:

  • ens192 (denominazione prevedibile di systemd)
  • eth0 (denominazione tradizionale)

In VPC, può diventare:

  • ens3 o ens33 (comune negli ambienti VirtIO )
  • eth0 (se si utilizzano le convenzioni di denominazione tradizionali)

Per risolvere la configurazione dell'IP statico, utilizzare le seguenti informazioni:

  • NetworkManager-based ( Red Hat Enterprise Linux (RHEL) 7 o versioni successive 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
    
  • Basato su 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]
    
  • Tradizionale /etc/network/interfaces ( Debian, più vecchio Ubuntu )

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

Correzione della configurazione DHCP:

Se si utilizza DHCP, la configurazione è automatica, ma potrebbe essere necessario aggiornare i nomi delle interfacce nei file di configurazione.

Considerazioni sul cloud-init

Cloud-init è usato per inizializzare le istanze del cloud, tipicamente usato con i modelli di immagine. Lo strumento si avvia al primo avvio del sistema per eseguire le seguenti operazioni:

  • Impostare un nome di host
  • Configura rete
  • Creare utenti e chiavi SSH
  • Eseguire script personalizzati

Contesto di migrazione: se sul server virtuale migrato è installato cloud-init, VPC può considerare il primo avvio come un avvio iniziale, il che attiva le seguenti azioni:

  • Modifiche del nome host
  • Riconfigurazione della rete
  • Modifiche all'account utente
  • Esecuzione di script cloud-init

Decisioni di progettazione

Opzione 1: Disabilitare cloud-init

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

Opzione 2: Accettare il comportamento al primo avvio

  • Utile se si vuole che la VPC autoconfiguri la rete tramite DHCP
  • potrebbe richiedere alcune regolazioni manuali dopo l'avvio (nome host, utenti)

Opzione 3: Configurare cloud-init

  • Creare una configurazione cloud-init per conservare le impostazioni
  • Più complesso, ma con controllo

Per le migrazioni individuali di VM (non per le distribuzioni di modelli), disabilitare cloud-init per preservare la configurazione esistente. Per le distribuzioni basate su modelli, usare cloud-init per la configurazione automatica.

Considerazioni sulla partizione e sul file system

Verifica della tabella delle partizioni: Dopo aver trasferito i dischi, utilizzare il seguente comando per verificare che le tabelle di partizione siano intatte:

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

Ridimensionamento del volume di avvio: Se il volume di avvio è stato ridimensionato verso l'alto (ad esempio, da 80 GB in VMware a 100 GB in VPC),

  1. Potrebbe essere necessario aggiornare la tabella delle partizioni:

Se si è ridimensionato il volume di avvio verso l'alto (da 80 GB in VMware a 100 GB in 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. Ridimensionare il file system:
# 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

In VMware, è possibile utilizzare fstrim per recuperare lo spazio inutilizzato nei file VMDK con allocazione dinamica. In VPC, tutti i volumi sono sottoposti a thin-provisioning a livello di storage, ma fstrim non ha alcun effetto sul recupero dello spazio in VPC. Tenete presente che fstrim non libera spazio in memoria.

I cron job esistenti di fstrim possono essere mantenuti o rimossi per evitare I/O non necessari.