É bom ter várias versões do kernel do Linux?

14

Uma vez, eu estava instalando alguns patches do kernel & algo deu errado em um servidor ao vivo, onde tivemos centenas de clientes. Apenas um kernel estava lá no sistema. Então, o servidor ficou inativo por algum tempo, e usando um CD ao vivo, nós colocamos o sistema no & executando & fez o trabalho de reparação adicional.

Agora, minha pergunta: É uma boa idéia ter duas versões do kernel, para que, se o kernel estiver corrompido, sempre possamos reinicializá-lo com outro kernel disponível? Por favor me avise.

Além disso, é possível ter 2 versões do mesmo kernel? Para que eu possa escolher o outro kernel quando houver corrupção do kernel?

Edited:
My Server Details:
2.6.32-431.el6.x86_64
CentOS release 6.5 (Final)

Como posso ter a mesma cópia deste kernel, para que quando meu kernel corromper, eu possa iniciar o kernel de backup?

    
por Mani 13.01.2015 / 12:33

2 respostas

18

Tanto a distribuição RedHat quanto a baseada no Debian mantêm várias versões do Kernel quando você instala uma nova usando yum ou apt-get por padrão. Isso é considerado uma boa prática e é feito exatamente para o caso que você descreve: se algo der errado com o kernel mais recente, você pode sempre reinicializar e, no GRUB, escolher inicializar usando um dos kernels anteriores.

Nas distribuições RedHat, você controla o número dos kernels a serem mantidos na configuração /etc/yum.conf with installonly_limit . Na minha nova instalação do CentOS 7, o padrão é 5.

Além disso, se no RedHat você estiver instalando o novo kernel do pacote RPM, você deve usar rpm -ivh , não rpm -Uvh : o primeiro manterá o kernel mais antigo no lugar enquanto o posterior o substituirá.

O Debian mantém kernels antigos, mas não os remove automaticamente. Se você precisar liberar sua partição de inicialização, você terá que remover os kernels antigos manualmente (lembre-se de deixar pelo menos um dos kerneles anteriores). Para listar todos os pacotes de instalação do kernel e de cabeçalhos do kernel, use dpkg -l | egrep "linux-(im|he)" .

Respondendo sua pergunta - Além disso, é possível ter uma versão 2 do mesmo kernel? - Sim, é possível. Eu não posso verificá-lo no CentOS 6.5 agora, mas no CentOS 7 eu era capaz de produzir o resultado desejado apenas duplicando arquivos relacionados ao kernel do diretório /boot e reconstruindo o menu grub:

cd /boot

# Duplicate kernel files; 
# "3.10.0-123.el7" is a substring in the name of the current kernel
ls -1 | grep "3.10.0-123.el7" | { while read i; \
    do cp $i $(echo $i | sed 's/el7/el7.backup/'); done; }

# Backup the grub configuration, just in case
cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.backup

# Rebuild grub configuration
grub2-mkconfig -o /boot/grub2/grub.cfg

# At this point you can reboot and see that a new kernel is available 
# for you to choose in GRUB menu
    
por 13.01.2015 / 12:51
7

Sim, é possível e eu diria mesmo aconselhável. Você só precisa configurar o processo de inicialização para oferecer a alternativa. Normalmente, isso é feito na configuração do gerenciador de inicialização - normalmente você pode apenas duplicar a entrada que está lá e alterar o nome do arquivo de imagem do kernel e o rótulo de entrada do menu de inicialização.

Em um servidor de produção, isso geralmente não é um problema, mas sempre que você atualiza o kernel, é uma boa idéia ter um presente de backup. Algumas distribuições Linux oferecem reversão (geralmente apoiada por recursos de snapshot de sistema de arquivos) em atualizações de pacotes para tornar o processo o mais simples possível, mas mesmo nesses casos eu teria a tendência de manter um backup pronto.

Quanto a ter várias cópias do mesmo kernel - até mesmo isso faria sentido, mas como aponta @goldilocks no comentário abaixo, se o seu kernel for corrompido, você deve pensar em substituir o hardware. Por outro lado, colocar a duplicata em um HD físico diferente pode poupar alguns problemas. Mas tenha em mente que o arquivo de imagem do kernel só é sempre usado durante a inicialização.

    
por 13.01.2015 / 12:45