Ubuntu - Executando o software de 32 bits no servidor de 64 bits

1

Estou planejando hospedar um aplicativo da 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 da web usa um simulador, que pode ser compilado e executado apenas no modo de 32 bits. Então, agora estou pensando em duas possíveis soluções:

  1. Instalar o Ubuntu de 32 bits - o simulador seria executado com alegria, mas a utilização de recursos pode não ser ideal
  2. Instale o SO 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".

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

Já pesquisei os tópicos semelhantes aqui e descobri que isso está intimamente relacionado: 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 puderam me satisfazer completamente.

Finalmente, devo confessar que não tenho nenhum conhecimento sobre virtualização. Opção # 2 fornecida acima é baseada no que eu sei sobre um sistema. No entanto, estou mais do que ansioso para aprender sobre virtualização.

    
por Barun 27.11.2011 / 15:11

2 respostas

3

O pacote ia32-libs contém uma grande coleção de bibliotecas x86_32. Se o seu programa puder ser executado apenas com essas bibliotecas, você está pronto. Existem também ferramentas de desenvolvimento de 32 bits no gcc-multilib e binutils-multiarch pacotes.

Se você precisar ir além disso, execute um sistema de 32 bits em um chroot. O Debian e o Ubuntu vêm com ferramentas que tornam isso fácil, principalmente schroot , e debootstrap para instalação. Configurar um schroot e instale seu sistema de 32 bits dentro dele . Chamar schroot cuida de chamar setpersonality() , o que, em particular, torna uname() return i686 e não x86_64 . Ter uname retornando um valor inesperado é provavelmente o que confundiu seu aplicativo quando você tentou executá-lo diretamente no sistema de 64 bits. Lembre-se de desativar os serviços no chroot (o guia com o qual eu fiz a ligação 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 é usada aqui. Você teria todos os problemas de manutenção de um chroot, além dos da VM, mais os da separação (uso da memória, uso do disco,…), além da instância separada do Apache na VM, mais o redirecionamento no host, mais possivelmente problemas de desempenho.

    
por 27.11.2011 / 19:39
1

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

    
por 27.11.2011 / 21:25