Atualização do SO 'on-the-fly'

2

Eu me pergunto se existe uma maneira de instalar uma nova versão do sistema operacional, digamos 14.04 (quando chegar) na segunda partição do meu servidor a partir do sistema operacional rodando (eg Ubuntu 12.04), então mude a ordem de inicialização do grub reinicializar para o novo sistema (reduzindo o tempo de inatividade do servidor)?

Cenário:

primeira partição - Ubuntu 12.04 - feliz e correndo
2ª partição - vazia

novo LTS vem

1ª partição - Ubuntu 12.04 (servidor ainda em execução) - instalar 14.04 na segunda partição
2ª partição - instalação em andamento

reinicialize após a instalação

1ª partição - sistema antigo (prestes a ser eliminado)
2ª partição - servidor rodando em 14.04 agora (tempo de inatividade reduzido a uma reinicialização)

Alguma idéia de como isso poderia ser alcançado? O boneco é capaz de automação deste tipo?

Obrigado!

    
por pet5o 02.10.2013 / 13:59

1 resposta

3

Você provavelmente poderia fazer, mas antes de chegar a isso, considere a abordagem tradicional:

  1. Aguarde fora de horas. Poucos servidores precisam estar ativos 24/7 e aqueles que normalmente têm um sistema de failover que permite que você atualize um servidor de cada vez sem nenhum tempo de inatividade. Se não for importante o suficiente para ter uma hora de inatividade planejada, você poderá agendar uma atualização.

  2. Faça um backup em disco no seu segundo disco. Mas você já faz isso regularmente, né?

  3. Faça o upgrade padrão de LTS para LTS. Corrija qualquer coisa que esteja quebrada e siga em frente. Os serviços no servidor permanecerão ativos o máximo que puderem (o MySQL et al irá reiniciar os upgrades, mas eles geralmente retornam diretamente).

A única maneira de fazer o que você está pedindo é com uma máquina virtual. Você poderia tentar métodos LXC ou schroot leves, mas acho que você provavelmente desejará usar o VirtualBox apenas porque é antigo e documentado.

Instale-o, crie uma VM com acesso bruto quase físico ao disco, instale o Ubuntu e configure tudo. Eu concedo a você, isso lhe dá muita flexibilidade para fazer com que as coisas sejam reconfiguradas se você precisar alterar alguma coisa na atualização.

A outra e única abordagem de alta disponibilidade é a abordagem de substituição a quente / failover. Inicie um novo servidor, instale o Ubuntu, configure-o, sincronize os dados (de maneira ideal, compartilhe-o de uma SAN sobre NFS entre todos os servidores, para que haja alguma consistência atômica) e coloque-o em operação. Flick o switch e em um novo microssegundo, o novo servidor toma o lugar do antigo.

Uma abordagem mais moderna é a virtualização de todo o seu hardware, para que, mesmo que você tenha apenas um servidor host físico, você possa criar outra VM para o novo servidor e fazer um simples comutador simples.

Acho que o primeiro método tradicional oferece a você mais segurança sem complicar uma configuração de produção existente com coisas como máquinas virtuais (supondo que elas já não estejam no lugar).

    
por Oli 02.10.2013 / 20:04