Como posso reinstalar o servidor de produção ao vivo com o mínimo de tempo de inatividade?

2

Eu preciso reinstalar o Ubuntu Server em execução no VMWare VPS. A maneira mais simples seria fazer uma nova instalação a partir do mini ISO. Mas é um servidor de produção e não posso pagar uma hora ou mais de tempo de inatividade. É possível reinstalar quase sem tempo de inatividade (digamos, 15 minutos ou mais)?

Em outras palavras, estou procurando uma maneira de atualizar a versão do SO no Ubuntu Server ao vivo sem tempo de inatividade perceptível. Vou transferir todas as configurações e dados manualmente.

Fatos do servidor:

  • Ubuntu Server 10.04.2 LTS amd64
  • VMWare VPS com acesso ao console (posso montar uma imagem ISO local)
  • Unidade única:
    • /boot , 92 MB em sda1 @ ext4
    • / , 1,5 GB no LVM root @ ext4
    • /srv , 19 GB no LVM data @ ext4
    • troca no LVM swap

Eu não tenho experiência com as ferramentas do sistema de arquivos Linux ( chroot e similares) ainda. No entanto, eu acho que um plano de ação semelhante ao seguinte pode funcionar ( host é máquina VPS de destino, upgrade é novo SO):

  1. Instalar o SO de atualização

    Instale um novo Ubuntu Server no Virtual Box local.

  2. Serviços e configurações de transferência

    Transfira serviços e configurações do sistema operacional atual para atualizar o sistema operacional. Eu mantenho a configuração o mais portável possível e uso o etckeeper para acompanhar as alterações de configuração.

  3. Copie o sistema de arquivos do sistema operacional de atualização para o host

    Eu pretendo usar rsync para copiar o sistema de arquivos do sistema operacional de atualização para o host. Mas onde colocá-lo no host? Eu pensei em:

    • uma partição separada; Eu precisaria reduzir o LVM data no host e preparar a nova partição para o sistema de arquivos do SO de atualização.

    • uma imagem de arquivo; Eu criaria uma imagem de arquivo na partição /srv do host, montaria no host (ainda não sei como) e copiaria o sistema de arquivos do sistema operacional de atualização para ele.

    • uma pasta; Eu transferiria o espelho para a pasta na partição /srv do host. Esta seria a melhor opção IMO, se possível.

  4. Substitua o SO atual pelo sistema de arquivos do SO de atualização

    Estou ciente de que depende de onde o espelho foi transferido. Em qualquer caso, deve ser possível alternar primeiro para testá-lo e substituir os sistemas de arquivos posteriormente. Eu posso dar ao luxo de reiniciar e usar o console de recuperação ou inicializar o mini ISO para isso.

Os passos 3 e 4 são os principais pontos de interrogação sobre os quais preciso de instruções. Se você puder aconselhar mudanças em meu "plano" ou uma abordagem diferente, por favor, vá em frente. Referência a instruções ou documentação seria apreciada.

Editar: como sugerido eu usaria uma máquina clone se não houvesse outra solução.

    
por gadamiak 23.06.2011 / 12:30

1 resposta

9

Não tenho ideia de qual é o seu relacionamento comercial com o seu provedor de VPS, mas se esse fosse o ambiente VMWare, eu simplesmente clonaria a VM de produção atual, traria o clone com um endereço IP adjacente, aplicaria alterações / atualizações, moveria sobre qualquer coisa que tenha mudado desde a produção desde a clonagem, teste o clone atualizado e, quando feliz, troque os IPs e acabe com a VM original.

    
por 23.06.2011 / 12:58