Computer >> 컴퓨터 >  >> 소프트웨어 >> 가상 머신

VMware ESXi 활용 팁과 트릭: 성능 최적화부터 SSH 활성화까지

지금까지 Dedoimedo에서는 ESX에 대해 크게 조명하지 않았습니다. 이제 그 부족함을 한 번에 메워보려 합니다. ESXi에서 가상 머신을 복제하는 방법에 대한 간단한 튜토리얼에 이어, 이번에는 VMware의 숨겨진 매력을 더 폭넓게 소개해 드리겠습니다. ESXi는 무료로 제공되는 베어메탈(bare-metal) 하이퍼바이저로, 가장 비싸고 강력한 ESX 가상화 솔루션으로 나아가는 디딤돌이라 할 수 있습니다.

혹시 궁금해하실 수 있으니 잠깐 짚고 넘어가자면, VMware Player와 Workstation은 개인 사용자를 위한 제품입니다. VMware Server는 ESX가 할 수 있는 일을 훨씬 작은 규모로 맛볼 수 있는 무료 데모 버전이고요. 그리고 ESXi에는 의도적으로 내장된 몇 가지 제한이 존재합니다. 레이싱 게임의 잠긴 보너스 요소처럼 말이죠. ESXi를 최대한 끌어내려면 약간의 추가 작업이 필요하며, 바로 그 팁과 요령을 이 글에 담았습니다.

VMware ESXi 활용 팁과 트릭: 성능 최적화부터 SSH 활성화까지

간단한 사전 안내

저는 VMware 전문가가 아니라 열정적인 사용자일 뿐입니다. 그럼에도 이 주제에 관한 글들이 실무에 도움이 될 것이라 믿습니다. 아래 '추가 자료' 섹션에 검증된 훌륭한 리소스들도 정리해 두었으니 함께 참고하세요. 자, 시작해 보겠습니다.

게스트 성능 최적화

최대 속도로 구동하는 것은 무엇보다 중요합니다. 특히 여러 가상 머신이 한정된 리소스를 두고 경쟁하는 환경이라면 더욱 그렇습니다. 기능을 손상시키거나 제한하지 않으면서 시스템 자원을 최적으로 활용하고 분배하는 것이 목표입니다.

이 작업은 가상 머신의 고급 속성 편집을 통해 가능합니다. 참고로 GUI에서 보이는 모든 파라미터는 가상 머신 구성 파일(.vmx)에서 직접 설정할 수도 있습니다. 여기서는 GUI 방법을 소개하고, 명령줄 방식은 별도 튜토리얼에서 다루겠습니다.

특히 중요한 파라미터는 다음과 같습니다.

Nx 플래그 노출 / 숨기기

Nx 플래그는 호스트 간 VMotion 호환성을 높여 줍니다. VMotion은 유료 기능이므로 사용 계획이 없다면 이 플래그를 숨겨 게스트 성능을 개선하는 것이 좋습니다. 단, 모든 환경에 통하는 만능 설정은 없으므로 자신의 머신에 적합한지 직접 확인해야 합니다.

반가상화(Paravirtualization)

반가상화는 지원되는 게스트 운영체제가 자신이 반가상화 환경에서 실행 중임을 인식할 경우 성능을 크게 향상시켜 줍니다. 어떤 운영체제는 이러한 방식의 실행을 거부하기도 하고, 어떤 것은 전혀 영향을 받지 않습니다. 이 경우 Linux가 가장 좋은 선택입니다.

게스트가 반가상화를 인식하고 지원해야 한다는 점에 유의하세요. 즉, 커널이 반가상화와 VMI 옵션을 활성화한 상태로 컴파일되어 있어야 합니다.

CONFIG_PARAVIRT=Y
CONFIG_VMI=Y

일반적으로 최근 Linux 커널은 이렇게 빌드되어 있습니다. 다만 ESXi는 32비트 게스트에 대해서만 반가상화를 지원하므로, 이에 맞춰 선택하세요.

하드웨어 페이지 테이블 가상화

하드웨어 페이지 테이블 가상화(Hardware Page Table Virtualization) 역시 올바르게 활용하면 성능에 도움이 되는 기능입니다. CPU와 특정 워크로드에 따라 효과가 달라질 수 있으며, 이 옵션 역시 고급(Advanced) 메뉴에 숨어 있습니다.

스왑파일 위치 지정

스왑파일 위치는 성능에 큰 영향을 미치는 요소입니다. 디스크 어레이가 느린 환경에서 여러 가상 머신을 동시에 구동하면, 특히 스와핑이 발생할 때 심각한 성능 저하로 이어질 수 있습니다. IO 경합을 줄이려면 여러 저장 장치에 분산 배치된 여러 개의 스왑파일을 사용하는 것이 좋습니다. 기본적으로 ESXi는 호스트의 설정을 따르지만, 최상의 성능을 원한다면 전용 데이터스토어를 사용하는 편이 좋습니다.

부팅 지연 시간 설정

CD나 ISO 이미지로 게스트를 설치하려면 부팅 우선순위를 하드디스크나 네트워크보다 CD-ROM이 먼저 오도록 변경하면 됩니다. 그런데 기본값으로는 ESXi BIOS에 부팅 지연이 전혀 없어서, 원하는 타이밍에 키 입력을 넣기 어렵고 답답한 경우가 많습니다.

문제없습니다. 구성 옵션에서 부팅 지연 시간을 직접 지정할 수 있으며, 다음 부팅 시 BIOS 설정 화면으로 진입하도록 강제하는 옵션도 제공됩니다. 특수한 요구 사항이 있을 때 유용하게 활용할 수 있습니다.

추가 옵션 활용하기

GUI에서 찾고자 하는 기능이나 옵션이 없다면 가상 머신 구성 파일에 직접 라인을 추가하면 됩니다. 굳이 데이터스토어를 뒤져 .vmx 파일을 찾을 필요는 없지만, 스크립팅과 자동화를 계획하고 있다면 파일을 직접 다루는 법을 익혀두는 것이 좋습니다.

가상 머신 속성 창에서 Option > Advanced > General 경로로 들어가면 'Configuration Parameters(구성 파라미터)' 버튼이 있습니다. 바로 이것입니다.

구성 파라미터 창은 이름-값 쌍의 단순한 표 형태로, 사실상 거의 모든 VMware 옵션을 입력할 수 있습니다. 실험적 기능도 사용할 수 있지만, 벤더 지원 정책을 깨뜨릴 수 있다는 점은 감안해야 합니다. 행을 추가할 수는 있지만 관리 인터페이스 내에서는 삭제할 수 없습니다. 이런 기능은 주로 특별한 요구 사항을 가진 숙련된 고급 사용자에게 유용합니다.

리소스(Resources) 설정

마지막으로 Resources 메뉴에서는 CPU, 메모리, 디스크 관련 각종 옵션을 설정할 수 있습니다. 예컨대 CPU가 지원하고 BIOS에서 해당 기능이 활성화되어 있다면 하이퍼스레딩 공유 모드를 선택할 수 있습니다. 프로세서 선호도(affinity)를 지정해 특정 가상 머신이 지정된 프로세서에서만 실행되도록 강제할 수도 있습니다. 적절히 튜닝하면 엄청난 성능 향상을 얻을 수 있지만, 잘못된 설정 하나로 작업 환경을 쉽게 망칠 수도 있습니다.

예를 들어, 수많은 자식 프로세스를 생성(fork)하는 애플리케이션을 구동하는 가상 머신이라면 단일 코어에 억지로 묶어 놓았을 때 오히려 성능이 떨어질 수 있습니다. 마찬가지로 병렬 컴파일이나 워크플로우 실행 역시 하이퍼스레딩과 CPU 선호도 설정의 영향을 크게 받습니다. 충분히 고민해 볼 가치가 있는 부분입니다.

시간 동기화

Kerberos 티켓, 소프트웨어 업데이트, 프로그램 라이선스, 여러 호스트 간 cron 작업의 실행 순서 등 다양한 이유로 가상 머신의 시간 동기화를 켜거나 꺼야 할 수 있습니다.

이를 위해 NTP 구성을 세밀하게 조정할 수 있습니다. NTP 서비스의 시작/중지, NTP 서버 선택, 포트 번호 지정 등이 가능하며, 대부분의 사용자는 기본 설정으로 충분하지만 필요에 따라 값을 변경해야 할 수도 있습니다.

ESXi 서버에서 SSH 활성화하기

아마 이 글에서 가장 중요한 팁일 것입니다. 실제 장비에서 진행한 작업이라 스크린샷은 없습니다만, 이론상으로는 ESXi ISO를 다른 ESXi 위의 게스트로 설치한 뒤 화면을 캡처할 수도 있었겠죠. 그래도 믿어 주시길 바랍니다. 아래 추가 자료 섹션에 이미지가 포함된 유사 튜토리얼 링크도 있으니 참고하세요.

ESXi에는 두 개의 가상 콘솔이 있습니다(일반적인 Linux는 일곱 개). Alt + F1/F2 조합으로 접근하고 전환할 수 있습니다. VC2는 의사 GUI 관리 콘솔이고, VC1은 서버 로그를 표시하는 화면입니다. 겉보기에는 명령줄이 존재하지 않습니다.

그러나 이 창에서 unsupported라고 입력하면 명령줄이 열립니다. 이것이 첫 번째 단계입니다. 다음으로 SSH를 활성화해야 하는데, 일반적인 Linux와는 약간 다른 방식으로 진행됩니다.

/etc/inetd.conf 파일을 텍스트 편집기(vi)로 엽니다. ssh 관련 줄을 찾아 주석 처리를 해제한 뒤 저장하고 종료합니다. 그다음 inetd를 재시작해 설정을 다시 읽고 SSH가 활성화된 상태로 시작하도록 해야 합니다.

inetd를 재시작하려면 먼저 프로세스 테이블에서 해당 프로세스를 찾습니다:

ps -a | grep inetd

inetd 프로세스 ID(PID)를 확인했다면 다음과 같이 재시작합니다:

kill -1 <pid>

참고: 이는 공식적으로 지원되지 않는 기능입니다. 보증이나 기타 사항을 실수로 깨뜨릴 수 있으므로, 진행 전 IT 지원팀이나 벤더와 상의하는 것이 좋습니다. 다만 무료이며 공식 지원이 없는 제품을 사용하는 입장에서는 큰 문제가 되지 않을 것입니다.

추가 자료

아래 팁 중 일부는 ESX에만 해당되지만 그래도 유용할 것입니다. 일부 자료는 구버전 VMware 제품을 다루고 있지만, 여전히 읽을 가치가 충분합니다.

  • vm-help.com — 제가 아는 한 가장 훌륭하고 포괄적인 자료
  • How to access the VMware ESXi hidden console — 스크린샷이 포함된 훌륭한 튜토리얼
  • VMware Remote Command Line Reference Guide — PDF 직접 링크
  • Guide to VMware ESX Server 3
  • How to administer VMware ESX Server

결론

현실적으로 이 가이드가 당신을 VMware 구루로 만들어 주지는 못할 것입니다. 하지만 GUI 안에 숨겨진 덜 알려진 옵션과 기능들, 즉 성능 튜닝부터 더 효율적인 가상 머신 관리까지에 대한 힌트를 얻는 데는 분명 도움이 될 것입니다. 그래픽 인터페이스는 편리하지만, 장기적으로는 생산성 저하로 이어질 수 있습니다. 다행히 명령줄 콘솔과 SSH가 그 보완재가 되어 줍니다.

오늘은 VMware 가상화 제품으로 작업을 시작하는 데 도움이 되는 유용한 팁들을 살펴보았습니다. 앞으로 다른 일반적인 시나리오와 사용 모델을 다룬 뒤, 최종적으로는 스크립팅과 순수 명령줄 모드까지 파헤쳐 보겠습니다.

즐거운 가상화 되시길 바랍니다.
그럼, 다음에 뵙겠습니다.