vSMP로 서버 메모리를 하나의 SMP처럼 묶는 구조
vSMP의 가상 공유 메모리 구조와 RDMA 기반 원격 메모리 접근, 캐시 일관성, NUMA·분산 시스템과의 차이를 정리합니다.
2026-08-14 · 최초 발행 2026-01-03
여러 서버를 하나의 공유 메모리 시스템으로 보이게 하는 방식
vSMP(variable Symmetric Multiprocessing)는 여러 물리 서버를 네트워크로 연결하고, 이를 단일 대형 SMP(Symmetric Multiprocessing) 시스템처럼 다루게 하는 소프트웨어 기술이다. 서버마다 흩어진 CPU, 메모리, I/O 자원을 묶어 애플리케이션이 수백 개의 코어와 수 TB의 메모리를 하나의 시스템에서 쓰는 것처럼 실행할 수 있다.
핵심은 하드웨어를 교체하지 않고 가변적인 크기의 SMP 환경을 만드는 데 있다. 모든 노드의 메모리는 하나의 공유 주소 공간으로 통합되며, 애플리케이션은 로컬 메모리와 원격 메모리를 구분할 필요가 없다. 기존 프로그램을 수정하지 않고 실행할 수 있고, 노드를 더해 CPU와 메모리 용량을 확장할 수 있다는 점도 이 방식의 특징이다.
물리적 SMP는 CPU 소켓 수와 메모리 용량이라는 하드웨어 한계를 가진다. 대형 전용 서버 대신 범용 서버를 활용해 비용을 조절하고, 인메모리 데이터베이스나 빅데이터 분석에 필요한 대용량 메모리를 구성하려는 요구가 vSMP의 배경이다. 가상화와 클라우드 환경에서도 노드를 추가하며 자원을 유연하게 구성할 수 있다.
애플리케이션 아래에 놓이는 가상 SMP 계층
애플리케이션과 운영체제는 단일 시스템을 바라보고, vSMP 소프트웨어 계층이 실제 서버들의 메모리와 통신을 조정한다. 이 계층은 글로벌 주소 공간을 만드는 메모리 가상화, 캐시 일관성 프로토콜, RDMA 기반 원격 메모리 접근을 담당한다.
메모리 가상화는 각 노드의 메모리를 단일 주소 공간으로 연결한다. 글로벌 주소는 실제 노드의 물리 주소로 매핑되고, OS 페이지 크기 단위로 관리된다. 주소 범위를 노드별로 연속 배정할 수 있으며, 페이지는 노드 사이에서 동적으로 재배치할 수 있다.
캐시 일관성은 하드웨어가 아닌 소프트웨어 프로토콜로 유지한다. 페이지 단위로 일관성을 관리하고, 쓰기가 발생하면 다른 노드의 캐시를 무효화한다. 디렉토리 기반 관리로 각 페이지의 위치와 상태를 추적한다.
RDMA(Remote Direct Memory Access)는 CPU 개입 없이 원격 노드의 메모리에 직접 접근하는 역할을 맡는다. 커널을 우회해 접근 지연을 낮추며, InfiniBand와 RoCE 같은 고속 네트워크 및 네트워크 카드의 DMA 엔진을 활용해 메모리를 전송한다.
원격 주소를 찾고 권한을 넘기는 과정
한 노드의 CPU가 글로벌 메모리 주소에 접근하면 vSMP 에이전트가 그 주소가 어느 노드에 있는지 확인한다. 로컬 주소라면 곧바로 메모리에 접근하지만, 원격 주소라면 RDMA NIC와 고속 네트워크를 거쳐 해당 노드의 메모리에서 데이터를 가져온다.
쓰기 접근에서는 페이지 소유권과 캐시 상태를 함께 다뤄야 한다. 예를 들어 노드 2에 읽기 전용 상태로 있던 페이지 X에 노드 1이 쓰기를 요청하면, 노드 1의 vSMP 계층은 페이지 위치를 확인하고 노드 2에 무효화를 요청한다. 캐시와 TLB 무효화가 완료되면 페이지를 복사하고 쓰기 권한을 얻어 CPU에 쓰기를 허용한다.
확장성과 투명성의 대가
vSMP는 애플리케이션을 수정하지 않고 실행할 수 있으며, 노드를 추가해 CPU와 메모리를 늘릴 수 있다. 범용 서버를 활용하므로 전용 대형 서버보다 비용 측면에서 유리하고, 클러스터 크기를 필요에 맞춰 조정할 수 있다. 구성에 따라 노드 장애가 발생해도 나머지 노드로 계속 동작할 수 있다.
반면 원격 메모리 접근은 수십 마이크로초의 네트워크 지연을 수반한다. 물리적 SMP에 비해 원격 접근 성능이 떨어지고, InfiniBand나 RDMA 같은 고속 네트워크에 의존한다. 소프트웨어 계층이 추가되므로 관리가 복잡해지며, 노드가 많아질수록 일관성을 유지하는 오버헤드도 증가한다.
구현에 필요한 소프트웨어와 네트워크
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 환경에서는 데이터 지역성이 성능에 직접 연결된다. 데이터를 접근하는 CPU와 가까운 노드에 배치하고, 자주 접근하는 페이지는 로컬 노드로 마이그레이션한다. 스레드를 특정 CPU에 고정하는 Thread Affinity와 처음 접근한 노드에 페이지를 할당하는 First-Touch Policy도 활용할 수 있다.
원격 통신은 가능한 한 줄여야 한다. 여러 원격 접근을 배치 처리로 묶고, 이후에 필요할 데이터를 프리페칭하며, 자주 쓰는 원격 데이터는 로컬에 캐싱한다. 읽기 전용 데이터는 여러 노드에 복제할 수 있다.
애플리케이션에서는 Huge Pages로 TLB 미스를 줄이고, 멀티스레딩으로 여러 코어를 사용한다. 순차 접근과 스트리밍에 맞는 메모리 사용 패턴을 선택하며, 작업은 노드 사이에 균등하게 분배한다.
인터커넥트 변화가 넓히는 적용 범위
CXL(Compute Express Link)은 CPU와 메모리 사이의 고속 인터커넥트이고, RDMA 성능 향상은 더 낮은 레이턴시와 높은 대역폭을 목표로 한다. Gen-Z와 CCIX는 차세대 캐시 일관성 인터커넥트로 언급되며, NVDIMM과 Optane 같은 Persistent Memory도 메모리 확장 수단에 포함된다.
이런 변화는 데이터센터 수준의 메모리 자원 풀링, CPU·메모리·스토리지를 분리하는 디스어그리게이트 아키텍처, 클라우드 환경의 동적 자원 할당, 엣지 서버 클러스터 통합으로 이어질 수 있다.