844. 가상머신 (VM) 하이퍼바이저 가상 스위치 (vSwitch) - 구조 병목 한계와 패킷 경로 탐색 기술
핵심 인사이트: 1대의 깡통 물리 서버(컴퓨터) 안에 윈도우(VM) 10대를 띄웠다. 이 10대의 가짜 윈도우들도 구글에 접속하려면 인터넷이 되어야 한다. 그런데 진짜 물리 컴퓨터 엉덩이에 꽂힌 진짜 랜선 포트는 딱 1개뿐이다. 어떻게 랜선 구멍 1개로 10대의 가짜 컴퓨터가 동시에 인터넷을 할까? "물리 서버 뱃속(소프트웨어)에다가 구멍 10개짜리 '가짜 공유기(vSwitch)'를 코딩으로 만들어 넣자! 가상머신 10대에서 나온 랜선을 이 가짜 공유기에 다 꽂은 뒤, 가짜 공유기 입구를 진짜 쇳덩어리 랜카드 포트 1개에 연결해 버려!" 서버 내부에 지어진 보이지 않는 통신망, 가상 스위치다.
Ⅰ. 하이퍼바이저 (Hypervisor)와 vSwitch의 개념
- 하이퍼바이저: 깡통 서버 1대에 여러 개의 운영체제(VM)를 동시에 띄우고 CPU, RAM을 쪼개 나눠주는 가상화의 핵심 엔진입니다 (VMWare ESXi, KVM 등).
- vSwitch (가상 스위치): 이 하이퍼바이저 뱃속(소프트웨어 메모리 공간)에 코딩으로 만들어진 L2 스위치 모듈입니다. VM들끼리 내부 통신을 하거나, VM이 외부 인터넷(물리 랜카드)으로 나갈 수 있게 트래픽을 모아주고 찢어주는 다리 역할을 합니다 (대표적으로 Open vSwitch, OVS).
Ⅱ. vSwitch의 데이터 흐름 구조 (경로 탐색) 🌟
1. VM ➜ VM (서버 내부 통신)
- 1번 물리 서버 안에서 돌고 있는 VM A와 VM B가 통신합니다.
- 패킷은 서버 밖으로 아예 나가지 않고, 하이퍼바이저 뱃속에 있는 vSwitch 메모리를 타고 0.0001초 만에 A에서 B로 빛의 속도로 핑퐁 튕깁니다. 속도가 미친 듯이 빠르고 보안이 완벽합니다.
2. VM ➜ 외부 인터넷 (물리망 연동)
- VM A가 네이버(외부)에 접속하려 합니다.
- 패킷 경로:
VM A (가상 랜카드)➜하이퍼바이저 (vSwitch)➜서버의 물리적 랜카드 (NIC)➜진짜 쇳덩어리 스위치 (ToR 스위치)➜인터넷. - vSwitch가 여러 VM에서 쏟아지는 트래픽을 모아서 물리 랜카드 1개로 몰아주는 멀티플렉싱을 수행합니다.
Ⅲ. vSwitch 구조의 치명적 병목 한계 (CPU 오버헤드의 저주) 🌟
클라우드 1세대의 아킬레스건이 바로 이 vSwitch였습니다.
- 문제점 폭발: vSwitch는 쇳덩어리 반도체 스위치가 아니라, 그냥 리눅스 커널(OS) 위에서 도는 **순수 100% 소프트웨어 프로그램(C언어 코드)**입니다.
- CPU의 과로사: 1대의 물리 서버 안에 50대의 VM을 띄워놓고 얘네들이 동시에 10Gbps의 트래픽을 미친 듯이 쏟아내기 시작합니다. 이 패킷들을 vSwitch가 스위칭(길 찾기)해 주기 위해 서버의 메인 뇌인 CPU 자원을 무지막지하게 갉아먹습니다 (CPU의 30~50% 낭비).
- 결국 비싼 돈을 주고 산 CPU가 넷플릭스 영화(본업)를 연산하지 못하고, 오직 vSwitch 패킷 분류 노가다(부업)만 하다가 뻗어버리는 처참한 병목이 터졌습니다.
Ⅳ. 병목 한계 돌파 기술 (하드웨어 오프로드와 커널 우회) 🌟
이 서버 CPU의 짐을 덜어주기 위해 클라우드 천재들이 3가지 마법을 발명했습니다.
- SR-IOV (단일 루트 I/O 가상화):
- 가짜 소프트웨어 스위치(vSwitch)를 거치지 않습니다!
- 진짜 비싼 물리 랜카드(NIC) 반도체 칩셋을 논리적으로 50개로 쪼개어 썰어버립니다. 그리고 그 쪼개진 진짜 하드웨어 랜카드를 VM 50대의 엉덩이에 직접 1:1로 냅다 꽂아줍니다(Direct Assignment). CPU 소모율이 0%로 떨어지는 극한의 하드웨어 마법입니다.
- DPDK (Data Plane Development Kit):
- 다음 846번 문서에서 다룰 핵심 마법입니다. 리눅스 커널 스택(vSwitch가 낑겨있는 병목 구간)을 아예 우회(Bypass)해버려 CPU 소모를 박살 냅니다.
- SmartNIC / DPU 도입:
- 아예 요즘 랜카드 안에는 휴대폰에 들어가는 ARM CPU 칩이 통째로 박혀있습니다. 메인 서버 CPU를 괴롭히지 않고, 랜카드 자신이 직접 미니 컴퓨터가 되어 vSwitch 스위칭 연산을 자기 칩 안에서 100% 다 처리(Offload)해 버립니다. (AWS의 Nitro 시스템이 대표적입니다.)
📢 섹션 요약 비유: 가상 스위치(vSwitch)는 회사 건물 로비에 앉아있는 '사람 우편 안내원(소프트웨어)'입니다. 건물 안의 50개 부서(가상머신 VM)가 하루에 10만 통의 우편물을 쏟아내면, 이 안내원이 손수 주소를 읽고 분리수거(스위칭)를 하느라 과로사 직전이 되고, 정작 건물의 본업이 올스톱됩니다(CPU 과부하 병목). 이 병목을 해결하는 SR-IOV 기술은 건물 밖의 진짜 우체국 배달원(하드웨어 랜카드)이 안내원(vSwitch)을 아예 거치지 않고, 50개 부서의 책상 앞까지 직접 우편물을 다이렉트로 꽂아주고 가버리는 것입니다. **DPU(SmartNIC)**는 아예 안내원 책상에 초거대 '인공지능 자동 분류 기계(랜카드 자체 하드웨어 칩셋)'를 설치해 버려서, 회사 사장님(메인 CPU)의 체력을 단 1도 쓰지 않고 우편물을 빛의 속도로 쳐내는 극한의 짐 덜기(오프로드) 구조 혁신입니다.