1. Hardware for Use with VMware vSphere

이 장에서는 VMware vSphere에 사용할 하드웨어를 선택하고 구성하는 방법에 대한 지침을 제공한다.

하드웨어 검증(Validate Your Hardware)

시스템을 배포하기 전에 다음 사항을 권장한다.

하드웨어 CPU 고려사항(Hardware CPU Considerations)

이 절에서는 vSphere 6.7과 함께 사용하기 위한 CPU에 대한 지침을 제공한다.

일반 CPU 고려사항

하드웨어를 선택할 때, vMotion™(DRS, DPM 및 기타 기능에 영향을 미침)과 VMware Fault Tolerance를 위해 VMware vSphere®의 CPU 호환성을 고려하는 것이 좋다. "VMware vMotion 및 Storage vMotion", "DRS(VMware Distributed Resource Scheduler)", "VMware Fault Tolerance" 등 참조.

사이드-채널 취약점

많은 현대의 CPU에서 집합적으로 "사이드-채널 취약점(Side-Channel Vulnerabilities)"으로 알려진 보안 취약점 부류가 발견되었다. 여기에는 Spectre, Meltdown, Foreshadow, L1TF 등으로 불리는 취약성이 포함된다. 이러한 취약점에 대한 완화 조치 중 일부는 성능에 상당히 영향을 미칠 수 있다. 이 주제의 복잡성뿐만 아니라 끊임없이 변화하는 특성 때문에, 이 책에서 완전히 다루지 않는다. VMware 제품과 관련된 이러한 취약성에 대한 최신 정보는 정기적으로 업데이트되는 VMware KB 문서 52245, 54951, 55636을 참조한다.

이러한 취약성은 시스템의 여러 부분에서 다양한 방법으로 완화될 수 있다. 취약성의 변종에 따라 하드웨어, 마이크로코드 또는 소프트웨어에서 완화(mitigation)가 발생할 수 있다.

하드웨어 완화

최근의 CPU 릴리스에는 성능에 거의 영향을 미치지 않고 이러한 취약성 중 일부를 해결할 수 있는 하드웨어 완화가 포함되어 있다. 따라서 이러한 CPU의 다른 측면에서의 성능 향상 외에도, 새로운 시스템에 대해 CPU를 선택하는 것은 특정 취약성에 대해 마이크로코드 또는 소프트웨어 완화가 필요한 구형 프로세서에 비해 훨씬 더 큰 성능 향상을 제공할 수 있다.

마이크로코드 완화

일부 사이드-채널 취약점은 마이크로코드로 완화할 수 있다. 마이크로코드는 CPU의 외부에서 볼 수 있는 명령 집합 아래의 CPU에서 실행되는 코드 계층이다. CPU와 함께 제공되는 마이크로코드는 BIOS 업데이트를 통해 또는 운영 체제를 통해 현장에서 업데이트될 수 있다.

ESXi의 일부 버전은 마이크로코드를 업데이트하여 특정 사이드 채널 취약점을 완화할 수 있다.

소프트웨어 완화

소프트웨어에서 일부 사이드-채널 취약점을 완화할 수 있다. 취약점에 따라 이러한 완화는 하이퍼바이저 수준이나 게스트 운영 체제 수준에서 이루어질 수 있다. 이러한 완화는 "ESXi의 사이드-채널 취약점 완화" 및 "게스트 운영체제에서 사이드-채널 취약점 완화"에서 설명한다.

하드웨어 지원 가상화

Intel®과 AMD의 프로세서는 대부분 가상화를 지원하고 성능을 개선하기 위한 하드웨어 기능을 포함하고 있다. 이러한 기능(하드웨어 지원 CPU 가상화, MMU 가상화, I/O MMU 가상화)은 아래에 설명되어 있다.

가상화 기술에 대한 자세한 내용은 다음 URL을 참조
https://www.vmware.com/techpapers/2009/software-and-hardware-techniques-for-x86-virtualiz-10036.html

하드웨어 지원 CPU 가상화(VT-x 및 AMD-V™)

VT-x(Intel processors) 또는 AMD-V(AMD processors)라고 하는 하드웨어 지원 CPU 가상화 지원은 민감한 이벤트와 명령어를 자동으로 트랩하여, 트랩 및 에뮬레이트 스타일 가상화를 가능하게 하며, 이러한 트랩 처리와 관련된 오버헤드를 줄일 수 있는 보조 기능을 제공한다.

버전 6.7부터 ESXi는 더 이상 소프트웨어 CPU 가상화를 지원하지 않는다.

하드웨어 지원 MMU 가상화(Intel EPT 및 AMD RVI)

AMD 프로세서의 경우 RVI(Rapid Virtualization Indexing) 또는 NTP(Nested Page Table)라고 하는 하드웨어 지원 MMU 가상화와, Intel 프로세서의 경우 EPT(Extended Page Table)이라고 하는 MMU 가상화는 MMU 가상화를 위한 하드웨어 지원을 제공하여 메모리 관리 유닛(Memory Management Unit) 가상화로 인한 오버헤드를 해결한다.

하드웨어 지원 MMU 가상화는 게스트 물리적 메모리를 호스트 물리적 메모리 주소에 매핑하는 추가 페이지 테이블 수준을 허용하므로 ESXi에서 섀도 페이지 테이블을 유지할 필요가 없다. 이로 인해 메모리 사용량이 감소하고 게스트 운영 체제가 페이지 테이블을 자주 수정하는 워크로드의 속도가 빨라진다. 하드웨어 지원 MMU 가상화는 대부분 워크로드의 성능을 향상시키지만, TLB miss를 서비스하는 데 필요한 시간을 증가시켜 TLB를 강조하는 워크로드의 성능은 감소시킨다.

그러나 이러한 증가된 TLB miss 비용은 "2MB 대용량 메모리 페이지"에 설명된 대로 게스트 운영 체제 및 애플리케이션이 대용량 메모리 페이지를 사용하도록 구성해서 줄일 수 있다.

버전 6.7부터 ESXi는 더 이상 소프트웨어 MMU 가상화를 지원하지 않는다.

하드웨어 지원 I/O MMU 가상화(VT-d 및 AMD-Vi)

하드웨어 지원 I/O MMU 가상화로 Intel 프로세서에서 VT-d(Directed I/O), AMD 프로세서에서 AMD I/O 가상화(AMD-Vi 또는 IOMMU)로 불리는 I/O MMU 가상화는 I/O DMA 전송 및 디바이스 인터럽트를 다시 매핑하는 I/O 메모리 관리 기능이다. 이 기능(엄밀히 말하면 CPU가 아닌 칩셋의 기능)은 가상 머신이 네트워크 카드, 스토리지 컨트롤러(HBA), GPU와 같은 하드웨어 I/O 디바이스에 직접 액세스할 수 있도록 할 수 있다.

하드웨어 지원 I/O MMU 가상화 사용에 대한 내용은 "DirectPath I/O"와 "SR-IOV(Single Root I/O Virtualization)"를 참조하기 바란다.

AES-NI 지원

vSphere 6.7에는 AES-NI(Intel의 Advanced Encryption Standard New Instruction Set)를 지원하는 하드웨어에서 성능이 크게 향상되거나 CPU 부하가 크게 감소하거나 둘 다 발생하는 기능이 포함되어 있다. 이 기능으로 최고의 성능을 얻으려면:

AES-NI를 지원하는 호스트는 기본적으로 호스트에서 실행 중인 가상 하드웨어 버전 7 이상의 가상 시스템에 노출된다. EVC(Enhanced vMotion Compatibility)를 사용하거나 CPU 마스크를 수정하여 원할 경우 변경할 수 있다(VMware KB 문서 1993 참조). AES-NI 패스스루를 사용하지 않도록 설정하는 것이 바람직할 수 있는 한 가지 상황은 AES-NI를 지원하는 호스트에서 그렇지 않은 호스트로 vMotion 호환성을 허용하는 경우다.

AES-NI를 사용하는 기능에 대한 자세한 내용은 "vSphere 가상 시스템 암호화 권장 사항", "VMware vMotion 권장 사항", "VMware vSAN"을 참조한다.

 

하드웨어 메모리 고려사항 (Hardware Memory Considerations)

이 절에서는 vSphere 6.7과 함께 사용할 메모리에 대한 지침을 제공한다.

Persistent Memory (PMem)

영구 메모리(Persistent memory, PMem)는 표준 서버 DIMM 슬롯에 맞지만 DRAM에 비해 다양한 장점을 가진 일종의 비휘발성 메모리다. PMem의 유형 및 구성 방식에 따라 다음과 같은 몇 가지 조합이 이점에 포함될 수 있다.

Intel Optane DC Persistent Memory Modules(DCPMM)와 NVDIMM-N 등 다양한 유형의 PMem을 사용할 수 있으며, PMem은 각각 아래에서 논의되며 지원하기 위해 설계된 서버에서만 사용할 수 있다. DCPMM은 다음 두 가지 모드 중 하나로 구성할 수 있다: 메모리 모드(Memory Mode) 및 앱 직접 모드(App Direct Mode).

ESXi 6.5 U3 및 6.7 EP10에서 Memory Mode를 활성화; 6.7 EP10은 App Direct Mode 지원.

Intel Optane DC Persistent Memory Modules (DCPMM)

DCPMM은 휘발성 DRAM보다 용량이 크고, GB당 비용이 저렴하지만 접근 속도가 약간 느린 PMem의 일종이다. DCPMM에서 사용할 수 있는 용량이 클수록 시스템당 더 많은 총 메모리가 허용될 수 있다.

Optane DC Persistent Memory Modes

위에서 언급한 바와 같이 DCPMM은 메모리 모드와 앱 다이렉트 모드 중 하나 또는 각 모드에서 부분적으로 구성할 수 있다.

PMem에서 최고의 성능을 얻으려면 App Direct Mode로 구성하고 vPMEM으로 사용하는 것이 좋다. 최고의 애플리케이션 성능을 얻기 위해서는 마이크로소프트 SQL 서버 2019와 같은 PMem-aware 애플리케이션이 필요할 것이다.

NVDIMM-N Persistent Memory

NVDIMM-N은 휘발성 DRAM과 같은 속도로 작동하지만 재부팅(또는 전원 장애 시 자동으로 저장)해도 컨텐츠가 보관되는 PMem의 일종이다.

NVDIMM-N은 항상 운영 체제에 PMem(DCPMM과 같은 메모리 모드는 없음)으로 표시되므로 ESXi 6.7 EP10과 같은 PMem 인식 운영 체제가 필요하다.

ESXi는 애플리케이션 직접 모드에서 DCPMMM을 사용하는 것과 같은 방식으로 NVDIMM-N을 사용할 수 있다.

NVDIMM-N PMem 성능에 대한 자세한 내용은 Persistent Memory Performance on vSphere 6.7을 참조하기 바란다.

 

하드웨어 네트워킹 고려사항(Hardware Networking Considerations)

이상적인 단일 포트 10Gb/s 이더넷 네트워크 어댑터는 PCIe x8(또는 그 이상) 또는 PCI-X 266을 사용해야 하며, 이중 포트 10Gb/s 이더넷 네트워크 어댑터는 PCIe x16(또는 그 이상)을 사용해야 한다. 실제 이더넷 디바이스(장치 자체에 내장된 브리지 칩 포함)에 대한 경로에는 가급적 "브리지 칩"(예: PCI-X에서 PCIe로 또는 PCI-X에서 PCI-X로)이 없어야 한다. 이상적으로 40Gb/s 이더넷 네트워크 어댑터는 PCI Gen3 x8/x16 슬롯(또는 그 이상)을 사용해야 한다.

단일 가상 스위치(vSwitch)와 물리적 네트워크 사이의 여러 물리적 네트워크 어댑터가 NIC 팀을 구성한다. NIC 팀은 하드웨어 장애나 네트워크 중단 시 수동적 페일오버를 제공할 수 있으며, 일부 구성에서는 트래픽을 물리적 네트워크 어댑터 전체에 분산시켜 성능을 높일 수 있다.

하나의 vSwitch에 연결된 여러 물리적 네트워크 어댑터 간에 로드 밸런싱을 사용할 경우 모든 NIC의 라인 속도가 동일해야 한다.

물리적 NIC가 연결된 물리적 네트워크 스위치(또는 스위치)가 LACP(Link Aggregation Control Protocol)를 지원하는 경우 이 기능을 사용하도록 물리적 네트워크 스위치와 vSwitch를 모두 구성하면 처리량과 가용성이 향상될 수 있다.

 

하드웨어 스토리지 고려사항(Hardware Storage Considerations)

백엔드 스토리지 구성은 성능에 큰 영향을 미칠 수 있다. 스토리지 구성에 대한 자세한 내용은 VMware vSphere 6.7용 vSphere Storage 문서를 참조하기 바란다.

예상보다 낮은 스토리지 성능은 ESXi와 관련된 문제가 아니라, 기본 스토리지 디바이스의 구성 문제로 인해 발생하는 경우가 가장 많다.

스토리지 성능은 워크로드, 하드웨어, 벤더, RAID 레벨, 캐시 크기, 스트라이프 크기 등에 따라 달라지는 방대한 주제다. 스토리지 벤더뿐 아니라 VMware의 적절한 설명서를 참조하기 바란다.

많은 워크로드가 I/O 작업의 지연 시간에 매우 민감하다. 따라서 저장 장치를 올바르게 구성하는 것이 중요하다. 이 절의 나머지 부분에는 최적의 스토리지 성능을 위해 VMware에서 권장하는 사례 및 구성이 나열되어 있다.

vSphere Flash Infrastructure 계층은 PCIe 플래시 카드 또는 SAS 또는 SATA 연결 SSD 드라이브로 구성될 수 있으며, PCIe 플래시 카드는 일반적으로 SSD 드라이브보다 성능이 우수하다.

VVol 성능은 스토리지 하드웨어 벤더마다 크게 다르므로 선택한 스토리지 하드웨어가 예상하는 VVol 성능을 제공하는지 확인한다.

개선 정도는 스토리지 하드웨어에 따라 다르지만 VAAI는 스토리지 확장성을 향상시키고, 여러 유형의 스토리지 작업에 대한 스토리지 지연 시간을 줄일 수 있으며, 스토리지 작업에 대한 ESXi 호스트 CPU 활용률을 낮출 수 있으며, 스토리지 네트워크 트래픽을 줄일 수 있다.

SAN에서 VAAI는 다음과 같은 기능을 제공한다.

블록 제로화("Write Same"라고도 함)는 eager-zeroed 씩 디스크의 생성 속도를 높이고, lazy-zeroed 씩 디스크와 씬 디스크에서 처음 쓰기 성능을 향상시킬 수 있다.

Dead space reclamation(UNMAP 명령 사용)를 통해 호스트는 더 이상 사용되지 않는 블록을 스토리지로 전송할 수 있다. 어레이 측에서 씬 프로비저닝된 LUN에서는 스토리지 어레이 하드웨어가 더 이상 필요하지 않은 블록을 재사용할 수 있다.

이 맥락에서 "씬 프로비저닝"은 스토리지 어레이의 LUN을 말하며, "Virtual Disk Types"에 설명되어 있는 씬 프로비저닝 VMDK와 구별된다.

NAS 기기에서 VAAI는 다음과 같은 기능을 제공한다.

NAS 네이티브 스냅샷 디스크를 사용하여 가상 머신 스냅샷을 처음 생성하는 것은 VMware redo 로그로 스냅샷을 생성하는 것보다 느리다. 이러한 성능 영향을 줄이려면 NAS 네이티브 스냅샷을 사용하여 가상 시스템의 스냅샷을 생성하는 동안 가상 시스템에서 과도한 쓰기 I/O 로드를 방지할 것을 권장한다.
마찬가지로 NAS 네이티브 스냅샷을 사용하여 연결된 클론을 생성하는 것은 redo 로그를 사용하는 동일한 작업보다 약간 느릴 수 있다.

VAAI에 대한 자세한 내용은 VMware vSphere Storage API - Array Integration(VAAI)을 참조한다(vSphere 5.1용으로 작성되었지만 대부분의 컨텐츠는 vSphere 6.7에 적용됨). ESXi에서 VAAI를 사용하는 방법을 구성하는 방법에 대한 자세한 내용은 "ESXi Storage Consideration"을 참조하기 바란다.

그러나 VLAN과 VPN은 초과 구독은 제거하지 않지만 대역폭을 특정 트래픽에 우선하거나 비례적으로 할당할 수 있는 방법을 제공하는 QoS(네트워크 서비스 품질) 기능을 사용할 수 있도록 허용한다. 이 문제에 대한 다른 접근 방법은 "Network I/O Control(NetIOC)"를 참조.

이렇게 손실된 네트워크 패킷을 복구하면 성능이 크게 저하된다. 데이터가 삭제되었는지 확인하는 데 걸리는 시간 외에도, 재전송은 새로운 거래에 사용될 수 있는 네트워크 대역폭을 사용한다.

예를 들어, 전체 대역폭 잠재력을 공급하기 위해 단일 포트 32Gb/s 파이버 채널 HBA 카드는 최소 PCIe 2세대 x8 또는 PCIe 3세대 x4 슬롯(각 방향에서 최대 32Gb/s의 순 최대치가 가능한)에 설치해야 하며 이중 포트 32Gb/s 파이버 채널 HBA 카드는 최소 PCIe 3세대 x8 슬롯 이상에 설치해야 한다(각 방향에서 최대 64Gb/s의 순 최대치가 가능).

이러한 고성능 카드는 일반적으로 느린 PCIe 슬롯에서도 작동하지만 최대 처리량은 슬롯의 가용 대역폭에 의해 제한될 수 있다. 이는 블록 크기가 큰 I/O를 많이 사용하는 워크로드에 가장 적합하며, 이 카드들이 가장 높은 처리량을 개발하는 경향이 있기 때문이다.

하드웨어 BIOS 설정(Hardware BIOS Settings)

서버의 기본 하드웨어 BIOS 설정이 최적의 성능을 위해 항상 최선의 선택은 아닐 수 있다. 이 절에는 특히 새 서버를 처음 구성할 때 확인할 수 있는 BIOS 설정이 나열되어 있다.

일반 BIOS 설정

BIOS를 업데이트한 다음, 새 BIOS 옵션을 사용할 수 있게 되거나 이전 옵션의 설정이 변경된 경우 BIOS 설정을 다시 방문한다.

하드웨어 지원 가상화 기능을 변경한 후에는 변경 사항을 적용하기 전에 일부 시스템의 전원을 완전히 꺼야 할 수 있다. 자세한 내용은 http://communities.vmware.com/docs/DOC-8978을 참조하기 바란다.

전원 관리 BIOS 설정

VMware ESXi는 소프트웨어에서 호스트를 완전히 사용하지 않을 때 전력을 절약할 수 있는 모든 호스트 전원 관리 기능을 포함하고 있다("ESXi의 호스트 전원 관리" 참조). 하드웨어에서 제공하는 전원 관리 기능을 ESXi에서 가장 유연하게 사용(또는 사용하지 않음)할 수 있도록 BIOS 설정을 구성한 다음 ESXi 내에서 전원 관리를 선택하는 것이 좋다.

그러나 I/O 지연 시간에 매우 민감한 소수의 멀티스레드 워크로드에 대해 C-states는 성능을 저하시킬 수 있다. 이러한 경우 BIOS에서 사용하지 않도록 설정하여 더 나은 성능을 얻을 수 있다.

C1E와 심층 C-상태 구현은 서로 다른 프로세서 벤더와 세대마다 다를 수 있기 때문에, 결과는 달라질 수 있다.