vSMP로 서버 메모리를 하나의 SMP처럼 묶는 구조

vSMP의 가상 공유 메모리 구조와 RDMA 기반 원격 메모리 접근, 캐시 일관성, NUMA·분산 시스템과의 차이를 정리합니다.

2026-08-14 · 최초 발행 2026-01-03

여러 서버를 하나의 공유 메모리 시스템으로 보이게 하는 방식

vSMP(variable Symmetric Multiprocessing)는 여러 물리 서버를 네트워크로 연결하고, 이를 단일 대형 SMP(Symmetric Multiprocessing) 시스템처럼 다루게 하는 소프트웨어 기술이다. 서버마다 흩어진 CPU, 메모리, I/O 자원을 묶어 애플리케이션이 수백 개의 코어와 수 TB의 메모리를 하나의 시스템에서 쓰는 것처럼 실행할 수 있다.

핵심은 하드웨어를 교체하지 않고 가변적인 크기의 SMP 환경을 만드는 데 있다. 모든 노드의 메모리는 하나의 공유 주소 공간으로 통합되며, 애플리케이션은 로컬 메모리와 원격 메모리를 구분할 필요가 없다. 기존 프로그램을 수정하지 않고 실행할 수 있고, 노드를 더해 CPU와 메모리 용량을 확장할 수 있다는 점도 이 방식의 특징이다.

하드웨어 제약(CPU, 메모리 한계)소프트웨어 확장(노드 추가)vSMP (가상)Node 3CPU 9-12Memory 3고속 네트워크(InfiniBand, RDMA)vSMP Software Layer(가상 공유 메모리)Node 1CPU 1-4Memory 1Node 2CPU 5-8Memory 2전통적 SMP (물리적)CPU 1System BusCPU 2CPU 3CPU 4Shared Memory확장성 제한높은 확장성

물리적 SMP는 CPU 소켓 수와 메모리 용량이라는 하드웨어 한계를 가진다. 대형 전용 서버 대신 범용 서버를 활용해 비용을 조절하고, 인메모리 데이터베이스나 빅데이터 분석에 필요한 대용량 메모리를 구성하려는 요구가 vSMP의 배경이다. 가상화와 클라우드 환경에서도 노드를 추가하며 자원을 유연하게 구성할 수 있다.

애플리케이션 아래에 놓이는 가상 SMP 계층

애플리케이션과 운영체제는 단일 시스템을 바라보고, vSMP 소프트웨어 계층이 실제 서버들의 메모리와 통신을 조정한다. 이 계층은 글로벌 주소 공간을 만드는 메모리 가상화, 캐시 일관성 프로토콜, RDMA 기반 원격 메모리 접근을 담당한다.

vSMP 클러스터애플리케이션 계층물리 계층서버 1CPU: 8 coresRAM: 64GB서버 2CPU: 8 coresRAM: 64GB서버 3CPU: 8 coresRAM: 64GB서버 4CPU: 8 coresRAM: 64GBvSMP 소프트웨어 계층메모리 가상화(글로벌 주소 공간)캐시 일관성 프로토콜RDMA 엔진(원격 메모리 접근)애플리케이션(단일 SMP로 인식)운영체제 (Linux/Windows)고속 네트워크(InfiniBand, 100GbEthernet)가상 단일 시스템CPU: 32 coresRAM: 256GB

메모리 가상화는 각 노드의 메모리를 단일 주소 공간으로 연결한다. 글로벌 주소는 실제 노드의 물리 주소로 매핑되고, OS 페이지 크기 단위로 관리된다. 주소 범위를 노드별로 연속 배정할 수 있으며, 페이지는 노드 사이에서 동적으로 재배치할 수 있다.

캐시 일관성은 하드웨어가 아닌 소프트웨어 프로토콜로 유지한다. 페이지 단위로 일관성을 관리하고, 쓰기가 발생하면 다른 노드의 캐시를 무효화한다. 디렉토리 기반 관리로 각 페이지의 위치와 상태를 추적한다.

RDMA(Remote Direct Memory Access)는 CPU 개입 없이 원격 노드의 메모리에 직접 접근하는 역할을 맡는다. 커널을 우회해 접근 지연을 낮추며, InfiniBand와 RoCE 같은 고속 네트워크 및 네트워크 카드의 DMA 엔진을 활용해 메모리를 전송한다.

원격 주소를 찾고 권한을 넘기는 과정

한 노드의 CPU가 글로벌 메모리 주소에 접근하면 vSMP 에이전트가 그 주소가 어느 노드에 있는지 확인한다. 로컬 주소라면 곧바로 메모리에 접근하지만, 원격 주소라면 RDMA NIC와 고속 네트워크를 거쳐 해당 노드의 메모리에서 데이터를 가져온다.

노드 2노드 1(1) 메모리 접근주소: 80GB(2) 주소 변환노드 2의 16GB아니오(3) RDMA 요청(4) 원격 메모리 접근(5) 데이터 반환(6) 데이터 전달로컬 접근(빠름)CPU로컬 메모리(0-64GB)vSMP AgentRDMA NICCPU로컬 메모리(64-128GB)vSMP AgentRDMA NIC고속 네트워크로컬?

쓰기 접근에서는 페이지 소유권과 캐시 상태를 함께 다뤄야 한다. 예를 들어 노드 2에 읽기 전용 상태로 있던 페이지 X에 노드 1이 쓰기를 요청하면, 노드 1의 vSMP 계층은 페이지 위치를 확인하고 노드 2에 무효화를 요청한다. 캐시와 TLB 무효화가 완료되면 페이지를 복사하고 쓰기 권한을 얻어 CPU에 쓰기를 허용한다.

노드 2 CPU노드 2 vSMP노드 1 vSMP노드 1 CPU노드 2 CPU노드 2 vSMP노드 1 vSMP노드 1 CPU초기: 노드 2에 페이지 X 존재 (Read-Only)이후: 노드 1이 페이지 X 소유 (Read-Write)(1) 페이지 X 쓰기 요청(2) 페이지 X 위치 확인 (노드 2)(3) 페이지 X 무효화 요청(4) 캐시/TLB 무효화(5) 무효화 완료 응답(6) 페이지 X 복사 및 쓰기 권한 획득(7) 쓰기 허용

확장성과 투명성의 대가

vSMP는 애플리케이션을 수정하지 않고 실행할 수 있으며, 노드를 추가해 CPU와 메모리를 늘릴 수 있다. 범용 서버를 활용하므로 전용 대형 서버보다 비용 측면에서 유리하고, 클러스터 크기를 필요에 맞춰 조정할 수 있다. 구성에 따라 노드 장애가 발생해도 나머지 노드로 계속 동작할 수 있다.

반면 원격 메모리 접근은 수십 마이크로초의 네트워크 지연을 수반한다. 물리적 SMP에 비해 원격 접근 성능이 떨어지고, InfiniBand나 RDMA 같은 고속 네트워크에 의존한다. 소프트웨어 계층이 추가되므로 관리가 복잡해지며, 노드가 많아질수록 일관성을 유지하는 오버헤드도 증가한다.

성능 영향메모리 접근 유형대부분 접근대부분 접근데이터 지역성 향상페이지 마이그레이션로컬 메모리 접근(레이턴시: 100ns)원격 메모리 접근(레이턴시: 5-10μs)로컬 접근 위주(성능 우수)원격 접근 빈번(성능 저하)최적화 전략

구현에 필요한 소프트웨어와 네트워크

ScaleMP vSMP Foundation은 ScaleMP사의 상용 vSMP 솔루션이다. Linux와 Windows를 지원하며, 수십 노드와 수십 TB 메모리를 지원한다. 네트워크에는 InfiniBand와 RoCE(RDMA over Converged Ethernet)를 사용한다.

구현은 하이퍼바이저 계층 또는 OS 커널 모듈에 둘 수 있다. 글로벌 주소 공간을 다루는 메모리 관리자, RDMA 기반 노드 간 통신 라이브러리, 클러스터 구성과 모니터링을 위한 관리 도구가 함께 필요하다.

네트워크는 성능 조건을 좌우한다. InfiniBand는 100Gbps 이상의 높은 대역폭과 < 1μs의 낮은 레이턴시를 제공하며, RoCE와 iWARP 같은 RDMA 프로토콜 지원이 요구된다. 노드 간 지연을 줄일 고속 스위치가 필요하고, vSMP 전용 네트워크를 분리하는 구성이 권장된다.

대용량 메모리를 단일 인스턴스에서 써야 할 때

인메모리 데이터베이스에서는 SAP HANA, Redis, VoltDB처럼 대용량 메모리를 요구하는 워크로드에 적용할 수 있다. 수 TB의 메모리를 단일 인스턴스로 활용할 수 있다는 점이 장점이다.

빅데이터 분석에서는 Apache Spark의 인메모리 데이터 처리, 수 TB 데이터 정렬, 대형 그래프의 메모리 로드에 쓸 수 있다. 분산 프로그래밍 없이 공유 메모리 모델로 처리하려는 경우에 해당한다.

과학 계산에서는 대용량 메모리를 요구하는 시뮬레이션, 유전체 데이터 분석, 몬테카를로 시뮬레이션 기반 금융 모델링이 대상이 된다. MPI 없이 공유 메모리 프로그래밍을 사용할 수 있다.

머신러닝에서는 파라미터가 많은 모델 학습, 대량 데이터의 특징 벡터 생성, 여러 모델을 동시에 학습하는 하이퍼파라미터 튜닝에 활용할 수 있다. 단일의 큰 메모리 공간에 데이터를 적재할 수 있다.

물리적 SMP와 분산 시스템 사이의 선택지

특성 vSMP 물리적 대형 SMP
확장성 노드 추가로 유연 하드웨어 한계 명확
비용 범용 서버로 저렴 전용 하드웨어로 고가
성능 원격 접근 시 느림 균일한 빠른 접근
가용성 노드 장애 시 부분 동작 전체 시스템 장애
관리 소프트웨어 복잡도 하드웨어 관리

물리적 대형 SMP와 비교하면 vSMP는 범용 서버를 추가해 유연하게 확장할 수 있지만, 원격 메모리 접근 성능에서는 불리하다.

특성 vSMP 분산 시스템
프로그래밍 모델 공유 메모리 메시지 패싱, MapReduce
애플리케이션 수정 불필요 필수
데이터 공유 자동 (투명) 명시적 통신
확장성 수십 노드 수천 노드
성능 중간 높음 (설계 잘 된 경우)

MPI나 Hadoop 같은 분산 시스템은 메시지 패싱 또는 MapReduce를 전제로 하므로 애플리케이션 수정과 명시적 통신이 필요하다. vSMP는 공유 메모리 모델을 유지하는 대신 확장성은 수십 노드 범위에 머문다.

NUMA는 단일 서버 안의 여러 CPU 소켓과 로컬 메모리로 구성되며, 레이턴시가 낮다. vSMP는 완전한 독립 서버를 네트워크로 묶기 때문에 레이턴시가 더 높지만 확장에는 더 유연하다. 성능은 NUMA가 더 빠르다.

단일 서버낮은 레이턴시여러 서버높은 레이턴시vSMP 클러스터서버 0완전한 시스템네트워크(InfiniBand, RDMA)서버 1완전한 시스템서버 2완전한 시스템서버 3완전한 시스템NUMA 시스템Node 0CPU + 로컬 메모리온칩 인터커넥트(QPI, Infinity Fabric)Node 1CPU + 로컬 메모리Node 2CPU + 로컬 메모리Node 3CPU + 로컬 메모리NUMA 특징vSMP 특징

원격 메모리 비용을 줄이는 배치

vSMP 환경에서는 데이터 지역성이 성능에 직접 연결된다. 데이터를 접근하는 CPU와 가까운 노드에 배치하고, 자주 접근하는 페이지는 로컬 노드로 마이그레이션한다. 스레드를 특정 CPU에 고정하는 Thread Affinity와 처음 접근한 노드에 페이지를 할당하는 First-Touch Policy도 활용할 수 있다.

원격 통신은 가능한 한 줄여야 한다. 여러 원격 접근을 배치 처리로 묶고, 이후에 필요할 데이터를 프리페칭하며, 자주 쓰는 원격 데이터는 로컬에 캐싱한다. 읽기 전용 데이터는 여러 노드에 복제할 수 있다.

애플리케이션에서는 Huge Pages로 TLB 미스를 줄이고, 멀티스레딩으로 여러 코어를 사용한다. 순차 접근과 스트리밍에 맞는 메모리 사용 패턴을 선택하며, 작업은 노드 사이에 균등하게 분배한다.

인터커넥트 변화가 넓히는 적용 범위

CXL(Compute Express Link)은 CPU와 메모리 사이의 고속 인터커넥트이고, RDMA 성능 향상은 더 낮은 레이턴시와 높은 대역폭을 목표로 한다. Gen-Z와 CCIX는 차세대 캐시 일관성 인터커넥트로 언급되며, NVDIMM과 Optane 같은 Persistent Memory도 메모리 확장 수단에 포함된다.

이런 변화는 데이터센터 수준의 메모리 자원 풀링, CPU·메모리·스토리지를 분리하는 디스어그리게이트 아키텍처, 클라우드 환경의 동적 자원 할당, 엣지 서버 클러스터 통합으로 이어질 수 있다.

vSMP공유 메모리RDMASMP컴퓨터구조