Para quem tem problemas em atualizar o kernel ou aplicar patches em seus servidores, pois existem processos críticos sendo rodados e que não podem se dar ao luxo de parar para o reboot do sistema, eis a solução: Ksplice.
Realizar uma atualização no kernel é uma tarefa simples, mas quando falamos de um servidor cujos processos não podem parar, isto já se torna um pouco mais complicado. Praticamente tudo pode ser atualizado no sistema, mas as atualizações de kernel necessitam de um reboot do sistema.
Assim sendo imagino que vários sysadmins perdem noites e mais noites de sono para poderem aplicar algum patch em seu kernel, pois só podem parar o sistema de madrugada quando se tem poucos usuários utilizando os servidores. Isso quando se é possível rebootar o servidor.
Se você se identifica com essa situação ou algo parecido, lhes apresento o Ksplice.
Essa poderosa ferramenta permite que sejam aplicados patches no kernel sem o tradicional reboot. Isso mesmo, ele pára o sistema por 0,7ms. Como isso é possível? Veremos mais adiante.
Entendendo o funcionamento do Ksplice
Para gerar a atualização, ele compara os objetos compilados antes e depois do patch ser aplicado. Esta é uma técnica chamada de "pre-post differencing", ou seja, ele compara o pré-código com o que está rodando na memória e em seguida modifica o caminho das funções para que as novas funções passem a ser lidas no lugar das antigas.
Nos testes realizados foi constatado que 88% dos patches de segurança podem ser implementados sem a necessidade de mais nenhum código adicional.
Hoje o Ksplice Uptrack pode ser instalado facilmente no Ubuntu por um pacote .deb pré-testado.
[1] Comentário enviado por snails em 19/08/2009 - 12:52h
Muito bom artigo, mas tenho uma dúvida.
No caso de atualização de kernel...por exemplo...eu tenhu um kernel de versão mais atual do que está operando. Eu o compilei em uma máquina de desenvolvimento a parte e gostaria de descompactá-lo no meu sistema. Ao realizar este procedimento eu consigo subir o kernel novo, mas preciso do reboot para que os módulos e o sistema suba neste kernel novo.
Gostaria de saber se, consigo gerar um patch com o kernel compilado novo, e fazer com que o ksplice suba os serviços neste kernel novo sem reboot.
[2] Comentário enviado por gersonraymond em 19/08/2009 - 17:32h
Muito bom o artigo amigo e sinceramente meus parabéns pela ferramenta de extrema utilidade, sem comentários adicionais ... o próprio artigo já responde por si mesmo.
[4] Comentário enviado por ragen em 24/08/2009 - 18:12h
Olá Flávio,
Me tira uma dúvida:
E se por acaso o kernel não bootar, como um kernel que dá panic porque alguma recurso foi mal aplicado, ou conflitante com um kernel "não padrão" como muita gente que usa/usava patches do PaX/GrSec em seus servidores.