Ubuntu -- 64비트 서버에서 32비트 소프트웨어 실행

Ubuntu -- 64비트 서버에서 32비트 소프트웨어 실행

32GB RAM을 갖춘 64비트 Dell 서버에서 웹 애플리케이션을 호스팅할 계획입니다. 나는 거기에 Ubuntu 10.04 LTS를 넣을 계획입니다. 문제는 우리 웹 앱이 32비트 모드에서만 컴파일하고 실행할 수 있는 시뮬레이터를 사용한다는 것입니다. 그래서 지금은 두 가지 가능한 해결책을 생각하고 있습니다.

  1. 32비트 Ubuntu 설치 - 시뮬레이터는 원활하게 실행되지만 리소스 활용도가 최적이 아닐 수 있습니다.
  2. 64비트 OS를 설치합니다. 다른 32비트 Ubuntu 가상 머신을 설치합니다. Apache가 주 서버에서 "가상" 서버로 리디렉션되도록 합니다.

이 두 기술의 장단점에 대해 알고 싶습니다. 더 나은 대안이 있다면 기꺼이 듣겠습니다.

나는 이미 여기에서 비슷한 스레드를 검색했으며 이것이 밀접하게 관련되어 있음을 발견했습니다. 64비트 Debian 서버에서 32비트 및 64비트 프로덕션 애플리케이션을 실행해야 합니까?

그러나 거기에서 제공된 솔루션은 나를 완전히 만족시키지 못했습니다.

마지막으로 저는 가상화에 대한 지식이 전혀 없다는 점을 고백해야 합니다. 위에 제공된 옵션 #2는 시스템에 대해 내가 알고 있는 내용을 기반으로 합니다. 하지만 저는 가상화에 대해 배우고 싶어합니다.

답변1

그만큼ia32-libs패키지에는 x86_32 라이브러리의 대규모 컬렉션이 포함되어 있습니다. 프로그램이 해당 라이브러리로만 실행될 수 있으면 설정된 것입니다. 32비트 개발 도구도 있습니다.gcc-multilib그리고binutils-multiarch패키지.

그 이상을 수행해야 한다면 chroot에서 32비트 시스템을 실행하십시오. 데비안과 우분투에는 주로 이를 쉽게 해주는 도구가 제공됩니다.슈루트, 그리고디부트스트랩설치용.schroot를 설정하고 그 안에 32비트 시스템을 설치하십시오.. 호출은 schroot호출을 처리하며 setpersonality(), 특히 반환 이 아닌 uname()반환을 수행합니다 . 예상치 못한 값을 반환 하는 것은 아마도 64비트 시스템에서 직접 실행하려고 할 때 애플리케이션을 혼란스럽게 만드는 것일 수 있습니다. chroot에서 서비스를 끄고(링크된 가이드에서 방법을 설명함) chroot에서 보안 업그레이드를 수행하십시오(여기서 어떤 서비스도 실행하지 않을 것이지만 라이브러리에 버그가 있을 수 있습니다).i686x86_64uname

여기서는 가상 머신이 쓸모가 없습니다. chroot의 모든 유지 관리 문제와 VM의 문제, 분리(메모리 사용량, 디스크 사용량 등) 문제, VM의 별도 Apache 인스턴스, 호스트의 리디렉션 문제 등이 있습니다. 성능 문제가 있을 수 있습니다.

답변2

내가 당신이라면 32비트 버전(64비트 시스템에서 32비트 라이브러리를 조작하는 것보다 쉽습니다)으로 PV xen을 실행하겠습니다(따라서 VM에 대한 "페널티"를 최소화합니다). 그리고 저는 이 목적을 위해 AMD-Opteron 기반 시스템을 사용할 것입니다(Intel은 32비트를 에뮬레이트하고 AMD는 이를 기본적으로 실행합니다).

관련 정보