⫸VMware

VMware ESXi 서버구조 - VMkernel

OSMU-PIPELINE 2022. 10. 2. 18:00
반응형

VMkernel

 

VMkernel의 가장 큰 역할은 하드웨어 리소스 스케줄링을 담당하는 것이다. 일반적인 범용 운영 체제와는 달리, 목적 자체가 가상 머신을 생성하고 작동시키기 위한 것이기 때문에 매우 가볍고 견고하게 제작되었다. 가상화를 위한 하드웨어 리소스 스케줄링을 포함한 기타 자세한 역할은 다음과 같다.

• 하드웨어 리소스 스케줄링 담당 -  VMkernel은 하드웨어 리소스를 직접 조정하여 가상 머신들이 리소스 사용을 요구할 때 즉각 접근할 수 있게끔 리소스 스케줄링을 담당하는 가장 중요한 역할을 담당한다. 특히 CPU와 메모리 리소스를 가상화하는 방식은 상당히 중요하다. CPU, 메모리, HDD, 네트워크의 네 가지 중요한 하드웨어 리소스들을 어떻게 가상화하고 사용하는지 그 자세한 내용은 다음에 설명해 보도록 하겠다.

 

• User World 프로세스 담당 - VMkernel에서 실행되는 프로세스들을 ESX 서버에서는 User World 애플리케이션이라고 부른다. 정통 POSIX 규약을 따라가는 형태이지만, 그렇다고 일반 범용 운영체제(ex.Linux)의 프로세스와는 동일하지는 않으며, 가상화 운영체제를 작동하기 위한 목적에 부합되도록 제한된 syscall 기능을 갖추어 최적화되어 있다.

 

• 가상 머신을 위한 VMM 운영 -  VMM은 Virtual Machine Monitor의 약자이며, 가상 머신에서 실행되는 실제 CPU 명령을 전달하는 중개자 역할을 담당한다. 모든 개별 가상 머신에게는 각각 하나의 VMM이 반드시 생성되는데, 가상 머신이 시작되면 CPU 명령어를 물리적인 CPU에 전달하고, 또한 개별 가상 머신들이 서로 충돌이나 간섭 없이 작동될 수 있도록 격리(isolation)시키는 역할도 담당한다. ESX 서버에서 VMM이 실제 물리적인 CPU에게 명령을 던질 경우에는 직접 물리적인 CPU에게 명령어를 던지거나, 또는 간접적으로 에뮬레이션 화해서 던지는 두 가지 방식을 선택한다. 이러한 상세한 접근 방법은 나중에 설명하겠다. 

 

• VMX 프로세스 운영 - VMX 프로세스는 VMkernel에서 작동되는 User World 애플리케이션이며, 하나의 VM에게는 하나의 VMX 프로세스가 실행이 된다. 이 VMX는 직접 VMkernel에서 가상화하여 조종하는 장치가 아닌 CD-ROM, 플로피 드라이브, 시리얼 포트와 같은 장치들을 서비스 콘솔을 통해 가상 머신들이 접근하여 사용할 수 있게끔 중개자 역할을 한다. 또한 가상 머신들의 시작( Power on)과 종료(Shutdown) 시그널을 전달하는 역할도 담당하며, Hostd 프로세스와 통신하여 가상 머신의 각종 정보를 전달하기도 한다.

 

 

ESXi 구조

 

ESXi 구조
<ESXi 구조>

• Hostd 프로세스 - vCenter 서버 또는 VMware vCenter Client 프로그램과 통신을 하며 호스트의 구성 정보 값, 가상 머신들의 인벤토리 및 각종 정보, 성능 데이터 등을 전달한다.

 

• Vpxa 프로세스 -  흔히 vCenter 에이전트라고 부른다. ESXi 서버가 최초 vCenter 서버에 추가될 때 자동으로 설치/작동되며 vCenter 서버와 통신하기 위한 에이전트 서비스이다.

 

• DCUI(Direct Console User Interface) - 실제 하드웨어 시스템에 연결된 키보드와 비디오를 통해 VMkernel의 중요 정보 값들을 살펴보거나 구성할 수 있게끔 도와주는 사용자 인터페이스 프로그램이다. 마치 일반 시스템의 ROM BIOS 메뉴를 선택하는 것과 흡사한 인터페이스를 갖추었으며, 매우 손쉽게 설정할 수 있다는 장점이 잇다. DCUI를 통해 초기 IP 주소 입력과 root 계정의 암호 설정뿐만 아니라 로그 살펴보기, 네트워크 연결 테스트, Hostd 에이전트 재시작, 각종 설정 초기화 등 트러블슈팅과 관련 항목까지 작업할 수 있다.

 

• CIM 브로커(Broker) - 일종의 하드웨어 리소스 모니터링 프레임 워크이며, 흔히 CIM 브로커라 일컫는 CIM Object Manager와 다양한 CIM providers로 구성되어 있다. 이를 통해 ESXi는 별도의 에이전트 없이도 기본적인 하드웨어 모니터링 정보를 전달해 줄 수 있게 되었다.

 

• Syslog, SNMP 데몬 운영 - iptables에 기반한 방화벽 프로그램과 syslog 데몬 그리고 SNMP 서비스 등이 직접 VMkernel 위에서 실행된다.

 

 

 

ESXi 파티션 정보

ESXi 파티션

ESXi의 파티션 구조는 크게 5개로 나누어진다. 각 파티션은 다음과 같은 정보를 담고 있다.

 

• Bootloader 파티션 - 부트로더가 담겨 있다.

 

• Boot Bank  주 파티션 - VMkernel(32MB)과 서버 하드웨어 제조업체들의 고유한 CIM providers(약 16MB)가 포함되어 있다.

• Boot Bank 부 파티션 - 주 파티션에 문제가 발생할 경우를 대비한 이중화 파티션이다. 이를테면 듀얼 바이오스와 같은 개념으로 이해하는 편이 좋다.

 

• 스토어 파티션 - VMware tools와 VMware vCenter Client 도구가 담겨 있다.

 

• 코어 덤프 파티션 -  VMkernel의 크래시 덤프가 담겨 있다.

 

보다시피, 사실 VMkernel 자체는 32MB이지만 부트로더와 커널 파티션 이중화 그리고 각종 도구와 크래시 덤프 파티션을 담아두다 보니 전체 크기는 약 750MB이다. 재미있는 것은 Boot Bank가 이중화로 구성되어 있다는 것이다. 이것은 마치 일반 x86 서버에서도 확인할 수 있는 것처럼 ROM BIOS가 이중화되어 있는 것과 동일한 개념이다. 만일 첫 번째 Boot Bank 파티션이 깨지거나 문제가 발생하여 제대로 부팅이 되지 않을 경우 두 번째 부 파티션으로 부팅이 이루어진다. 필요하다면 초기 부팅에서 아예 어떤 파티션 쪽으로 부팅을 할 것인지 직접 선택하는 것도 가능하다.

 

 

 

 

 

반응형