Ubuntu – Executando software de 32 bits em servidor de 64 bits

Ubuntu – Executando software de 32 bits em servidor de 64 bits

Estou planejando hospedar um aplicativo Web em um servidor Dell de 64 bits com 32 GB de RAM. Estou planejando colocar o Ubuntu 10.04 LTS lá. O problema é que nosso aplicativo web usa um simulador, que só pode ser compilado e executado no modo de 32 bits. Então, agora estou pensando em duas soluções possíveis:

  1. Instale o Ubuntu de 32 bits - o simulador funcionaria perfeitamente, mas a utilização de recursos pode não ser ideal
  2. Instale o sistema operacional de 64 bits; instale outra máquina virtual Ubuntu de 32 bits. Faça com que o Apache redirecione do servidor principal para o servidor "virtual".

Gostaria de saber sobre os prós e os contras dessas duas técnicas. Caso haja alguma alternativa melhor, ficaria feliz em ouvir isso.

Já pesquisei tópicos semelhantes aqui e descobri que estão intimamente relacionados: Devo executar aplicativos de produção de 32 e 64 bits em um servidor Debian de 64 bits?

No entanto, as soluções fornecidas não conseguiram me satisfazer totalmente.

Por fim, devo confessar que não tenho nenhum conhecimento sobre virtualização. A opção 2 fornecida acima é baseada no que sei sobre um sistema. No entanto, estou mais do que ansioso para aprender sobre virtualização.

Responder1

Oia32-libsO pacote contém uma grande coleção de bibliotecas x86_32. Se o seu programa pode ser executado apenas com essas bibliotecas, você está pronto. Existem também ferramentas de desenvolvimento de 32 bits nogcc-multilibebinutils-multiarchpacotes.

Se você precisar ir além disso, execute um sistema de 32 bits em um chroot. Debian e Ubuntu vêm com ferramentas que facilitam isso, principalmenteidiota, edebootstrappara instalação.Configure um schroot e instale seu sistema de 32 bits dentro dele. Calling schrootcuida de call setpersonality(), que em particular faz uname()return i686e not x86_64. Ter unameretornado um valor inesperado foi provavelmente o que confundiu seu aplicativo quando você tentou executá-lo diretamente no sistema de 64 bits. Lembre-se de desligar os serviços no chroot (o guia ao qual vinculei explica como) e fazer atualizações de segurança no chroot (você não executará nenhum serviço lá, mas pode haver bugs nas bibliotecas).

Uma máquina virtual não adianta aqui. Você teria todos os problemas de manutenção de um chroot, mais os da VM, mais os da separação (uso de memória, uso de disco, …), mais a instância separada do Apache na VM, mais o redirecionamento no host, mais possivelmente problemas de desempenho.

Responder2

Se eu fosse você, executaria um PV xen (minimizando assim a "penalidade" para a VM) com a versão de 32 bits (o que é mais fácil do que mexer em bibliotecas de 32 bits em um sistema de 64 bits). E eu usaria uma máquina baseada em AMD-Opteron para essa finalidade (a Intel emula 32 bits, a AMD executa nativamente).

informação relacionada