목차
2. ESX / ESXi 4.0 서버 구조
(1)편에서 VMware vSphere에 포함되어 있는 핵심적인 기능들을 살펴보았다면, 이번 게시글에서는 물리적인 호스트 시스템 위에서 리소스를 가상화하는 핵심 엔진 역할의 가상화 운영체제 ESX 4.0 서버와 ESXi 4.0 서버에 대해 자세하게 다루고자 한다.
ESX 4.0 서버
ESX 4.0 서버는 크게 하이퍼바이저 가상화 커널인 VMKernel과, 이 VMKernel의 사용자 인터페이스 역할을 하는 서비스 콘솔로 구성된다.
VMkernel
- 하드웨어 리소스 스케쥴링 담당
- VM이 리소스 사용을 요구할 때 즉각 접근 가능하게끔 리소스 스케쥴링을 담당한다. CPU, 메모리, HDD, 네트워크 네 가지의 중요한 H/W 리소스를 가상화한다.
- User World 프로세스 담당
- VMkernel 에서 실행되는 프로세스들을 ESX 서버에서는 User World 애플리케이션이라고 하며, 이는 정통 POSIX 규약을 따르지만, 일반 범용 운영 체제(ex. Linux)의 프로세스와 동일하지는 않다. 즉, 가상화 운영체제 작동을 위한 목적에 부합하도록 제한된 syscall 기능을 갖추어 최적화 되어 있다.
- 가상 머신을 위한 VMM 운영
- Virtual Machine Monitor으로, VM에서 실제 CPU 명령을 전달하는 중개자 역할을 한다. 모든 VM에는 하나의 VMM이 생성되는데, VM이 시작되면 CPU 명령어를 물리적인 CPU 에 전달하고, VM 간 충돌이나 간섭 없이 작동하도록 격리하는 역할을 한다. 이때, VMM이 물리적인 CPU에 명령을 던지는 방식은 Direct Execution과 Binary Translation 두 가지 방식이 있다.
- VMX 프로세스 운영
- VMkernel에서 작동하는 User World 애플리케이션으로, VM 별 하나의 VMX 프로세스가 실행된다. 이는 CD-ROM, 플로피 드라이브, 시리얼 포트와 같은 장치들을 서비스 콘솔을 통해 VM이 접근하여 사용할 수 있게끔 중개자 역할을 한다. 또한, VM의 시작(Power on)과 종료(Shutdown) 시그널을 전달하는 역할을 하며, Hostd 프로세스와 통신하여 VM의 정보들을 전달한다.
서비스 콘솔
vSphere 4에서의 서비스 콘솔은 64비트 버전의 Linux 커널 2.6 버전을 기반으로 만들어졌으며, Redhat Linux Enterprise 5.2 버전과 호환되므로, 일반적인 Linux 명령어가 모두 실행된다. 또한, 서비스 콘솔에서는 VMkernel의 UI 역할에 맞게 모든 RPM이 수정되거나, 제거되어 최소한의 관리 프로그램과 데몬만 작동하기 때문에, 별도 어플리케이션을 얹거나 컴파일 하여 사용할 수 없다.
- Hostd 프로세스
- vCenter 서버 또는 VMware vCenter Client 프로그램과 통신하며, 호스트의 config 정보 값, 가상 머신의 인벤토리 및 각종 정보, 성능 데이터 등을 전달한다.
- Authd 프로세스
- VMware vCenter Client 프로그램이 VMkernel을 통해 VM을 사용하기 전, 보안된 채널을 형성하여 통신 가능하도록 Authd 프로세스가 관여한다. 이때, TCP 902, 903번을 사용하여 만들어진 채널을 이용해 VM의 콘솔을 이용할 수 있다.
- Vpxa 프로세스
- vCenter 에이전트라고 부르며, ESX 서버가 최초 vCenter 서버에 추가될 때 자동으로 설치/작동된다.
- Firewall, syslog, SNNP 데몬 운영
- iptalbes에 기반한 방화벽 프로그램과 syslog 데몬 그리고, SNMP* 서비스, SSH 등이 직접 서비스 콘솔 위에서 작동된다. FTP나, Telnet은 기본적으로 사용하지 않는다.
- SNMP : Simple Network Management Protocol, 네트워크 장치를 모니터링/관리하는데 사용되는 표준 통신 프로토콜
- iptalbes에 기반한 방화벽 프로그램과 syslog 데몬 그리고, SNMP* 서비스, SSH 등이 직접 서비스 콘솔 위에서 작동된다. FTP나, Telnet은 기본적으로 사용하지 않는다.
서비스 콘솔에 접속하기 위해 SSH를 사용하는데, Telnet 데몬은 보안상 기본적으로 사용 중지가 되어 있다. 서비스 콘솔에서는 VMkernel의 구성을 설정하거나, 그 상태를 살펴볼 수 있는 CLI 명령어를 사용할 수 있는데, 대부분 esxcfg-로 시작하며, VMkernel의 구성 정보 및 변경 상태를 알아볼 수 있다.
서비스 콘솔의 특징은 다음과 같다.
- 기본 메모리 300MB 사용 : 초기 설치 시 자동으로 스왑 메모리 파티션 크기가 600MB로 설정되며(기본 메모리의 2배), 300MB 기본 메모리는 최대 800MB까지 늘릴 수 있다. 이에 따라 스왑 메모리 파티션 크기도 늘려줘야 한다.
- 보안에 관한 위험성 : 쉘과 커널을 지니고 있으며, iptables에 의한 방화벽과 Secure Shell을 이용하더라도, Redhat Linux 기반의 운영체제 이므로, 보안에 관한 위험성이 제기된다.
ESXi 4.0 서버
ESX 서버에서 서비스 콘솔이 제거된 제품이다. 서비스 콘솔이 없는 대신 아래의 각종 프로세스들 (Hostd, Vpxa 등)은 전부 User World 애플리케이션 형태로 바뀌었으며, VMkernel 위에서 직접 실행된다.
- DCUI (Direct Console User Interface)
- 실제 H/W 시스템에 연결된 키보드와 비디오를 통해 VMkernel의 중요 정보 값을 살펴보거나, 구성할 수 있게 도와주는 UI 프로그램이다. 일반 시스템의 ROM BIOS 메뉴를 선택하는 것과 유사한 인터페이스이며, 손쉽게 설정할 수 있다. 이를 통해 초기 IP 주소 입력과 root 계정의 암호 설정, 로그 살펴 보기, 네트워크 연결 테스트, Hostd 에이전트 재시작, 각종 설정 초기화 등 트러블 슈팅도 가능하다.
- CIM* 브로커
- VMware가 인증한 타사 하드웨어 관리 에이전트 프로그램(ex. HP Insight Management Agents, Dell OpenManage 등)을 서비스 콘솔에 설치하면, SNMP 기반의 관리 소프트웨어와 통신하며 다양한 H/W 정보를 전달해 줄 수 있지만, ESXi 제품은 CIM(Common Information Management)로 이러한 기능을 대체한다. 이는 H/W 리소스 모니터링 프레임워크로, CIM Object Manager와 다양한 CIM Provider로 구성되어 있다.
- CIM은 DMTF(Distributed Management Task Force) 연합에서 발표한 정식 스탠다드 규약 중 하나로, 컴퓨터/스토리지/네트워크 장비들 간 H/W 정보를 쉽게 교환할 수 있게 하나의 스키마 역할을 한다.
- HDD에 설치할 수 있는 Installable 버전과 USB 메모리 스틱, SD 메모리 카드에 설치할 수 있는 Embedded 버전으로 나뉜다. HDD 방식은 호스트 시스템의 하드 디스크에 직접 설치하여 사용할 수 있다는 장점이 있으나, 본래 ESXi의 취지에 부합하지 않는다는 단점이 있다.
- VMware가 인증한 타사 하드웨어 관리 에이전트 프로그램(ex. HP Insight Management Agents, Dell OpenManage 등)을 서비스 콘솔에 설치하면, SNMP 기반의 관리 소프트웨어와 통신하며 다양한 H/W 정보를 전달해 줄 수 있지만, ESXi 제품은 CIM(Common Information Management)로 이러한 기능을 대체한다. 이는 H/W 리소스 모니터링 프레임워크로, CIM Object Manager와 다양한 CIM Provider로 구성되어 있다.
ESXi 파티션 정보
아래의 5가지 파티션으로 나뉜다.
- Bootloader 파티션 : 부트로더가 들어있다.
- Boot Bank 주 파티션 : VMkernel과 서버 H/W 제조업체들의 고유한 CIM Providers가 포함되어 있다.
- Boot Bank 부 파티션 : 주 파티션에 문제가 생길 경우를 대비한 이중화 파티션이다. 듀얼 바이오스와 유사한 개념이다.
- 스토어 파티션 : VMware Tool과 VMware vCenter Client 도구가 담겨져 있다.
- 코어 덤프 파티션 : VMkernel의 크래시 덤프가 담겨져 있다.
VMkernel의 용량 외에도 부트로더, 커널 파티션 이중화, 각종 도구와 크래시 덤프 파티션을 담아 전체 크기는 약 1GB 정도가 된다.
원격 CLI
서비스 콘솔이 없는 ESXi 서버에서 CLI 명령을 실행하기 위해 원격 CLI (vSphere CLI 4.0)을 다음의 두 가지 방법으로 제공한다.
- vSphere CLI 패키지 : Linux / Windows가 실행되는 시스템에 설치하여 원격으로 CLI 명령을 실행할 수 있는 프로그램이다.
- vMA : vSphere Management Assistant의 약자로, VM 어플라이언스 (OVF 형태)로 제공된다. 즉, vSphere Client를 통해 OVF 형태의 vMA 어플라이언스 가상 머신을 Export 하여 ESXi 서버에 가상 머신으로 설치해 사용한다.
Data Science / DevOps TIL-log
학부생 때는 Data Science 공부하다가, 회사에서는 (어쩌다보니) DevOps를 하고 있는 사람의 TIL 블로그입니다. 게시글이 도움 되셨다면 구독과 좋아요 b + :)
'DevOps > #Infra' 카테고리의 다른 글
[Infra] 인사이드 VMware vSphere (4) (0) | 2024.05.18 |
---|---|
[Infra] 인사이드 VMware vSphere (3) (0) | 2024.05.17 |
[Infra] 인사이드 VMware vSphere (1) (0) | 2024.05.17 |
[CI/CD] Cloud Native Application의 구성요소 (0) | 2022.12.19 |
[SAP PI] EAI(Enterprise Application Integration) (0) | 2022.12.09 |