+ Responder ao Tópico



  1. #1
    mano_tux
    Visitante

    Padrão Novo kernel e compatibilidade

    Pessoal,

    Tenho um servidor RHEL 4 em produção com kernel 2.6.9 e precisarei recompilá-lo para aplicação de patches do OpenVZ (ambiente de virtualização).

    Para evitar problemas de compatibilidade com os módulos e bibliotecas, irei manter a versão 2.6.9, mas gostaria de saber que precauções deveria tomar no caso de mudar para uma versão mais atual, como 2.6.18, por exemplo.

    Tenho módulos de placas de rede, controlador SCSI SAS, controladora RAID megaraid, tudo compilado com os headers do 2.6.9. Se fosse utilizar outra release do kernel eu poderia ter algum problema de compatibilidade? Deveria recompilar todos os drivers?

    Qual a forma mais correta de agir nesse caso?

    Muito obrigado

  2. #2

    Padrão

    Não dá para dar uma resposta 100% certa para você, mas geralmente o quê nós fazemos quando vamos atualizar o kernel é pegar o .config anterior e carregar no menuconfig do novo kernel. Em 99% dos casos resolve. Agora, garantir a compatibilidade por parte da APLICAÇÃO, eu já não consigo.

    Abraços!

  3. #3

    Padrão

    O RedHat depende de uma série de patches proprios aplicados por eles no kernel, coisas como SElinux e etc. Quando ao suporte de hardware, você terá que recompilar CERTAMENTE todos os módulos de kernel, visto que esse não suporta carregar módulos compilados para outras versões (exceto sobre condições absurdamente específicas).

    Outra questão a qual deve-se ser atento é que parte da funcionalidade do redhat é dada por alguns desses patches adicionados ao kernel, sendo as vezes bastante complexo realizar alterações.

    Para situações de virtualização, recomendaria sinceramente (a não ser que você tenha um contrato de suporte com a Red Hat) a utilização de outra distribuição que lhe dê mais flexibilidade quanto a alterações no Kernel, como por exemplo Debian ou Slackware, que alteram minimamente o kernel vanilla (em geral somente patches de correção de falhas que são publicamente conhecidos), e no caso do Debian, se não me falhe a memória, existe suporte a openVZ no etch (4.0, quase stable) diretamente dos repositorios (ou seria apenas para vserver e xen?) sem ter que recompilar nada ou quase nada.

    No RedHat 5 há suporte a virtualização, com o Xen, mas me parece que o seu tipo de aplicação para virtualização é outro, então eu sinceramente lhe recomendaria o uso das distribuições que citei no paragrafo acima, pois na minha opinião, apesar de ser um sistema muito bom o RedHat me parece muito pouco flexivel, sendo dificil altera-lo para usos não previstos pelos seus criadores (muita desta fala de flexibilidade causada pelo fato deste ter de ser homologado para aplicações específicas, como oracle por exemplo, e hardwares específicos), deixando o menos "general purpose" do que outras distribuições.

  4. #4
    mano_tux
    Visitante

    Padrão

    Pessoal, muito obrigado pelas respostas.

    Evandrofisico, não sabia desses detalhes de patches no kernel específicos para o Red Hat funcionar, essa foi uma boa dica, pois evitarei utilizar um kernel vanilla para esse caso.

    Eu escolhi o OpenVZ a partir de uma comparação de todas as soluções que temos hoje, fiz essa decisão baseado no pouco overhead que essa solução fornece pelo fato de termos apenas 1 kernel rodando e o servidor em questão ter apenas 2 Gb de RAM. Além das máquinas virtuais para projetos específicos, esse servidor funciona como Samba e servidor de autenticação LDAP para toda organização, então tenho que tomar cuidado com a sobrecarga, principalmente para garantir a disponibilidade dos serviços.

    O meu servidor é um Dell Xeon 64 bits rodando kernel 2.6.9-5ELsmp, se pegar patches do OpenVZ específicos do Red Hat EL4 (tem um branch rhel4-2.6.9) eu terei que recompilar o kernel, certo? Mas terei que me preocupar também com os módulos já que a versão é a mesma?

    A minha preocupação reside principalmente quanto aos drivers da controladora RAID (megaraid_sas) que eu inseri por disquete na instalação do SO, e da placa de rede (bnx2) que eu compilei em separado. Terei que recompilá-los?

    Será que vale a pena aproveitar a situação e atualizar para o kernel mais novo do Red Hat 4 ou talvez utilizar o do branch rhel5-2.6.18 para o Red Hat 5?

    Muito obrigado pela ajuda, pessoal.