Subject : 기업 환경 변화와 NUMA시대

Solution Description:
=====================

 기업경영 환경이 점차 고객지향적으로 바뀌면서 기업들은 고객의 요구를 즉시
 파악, 경쟁업체와는 다른 독특한 비즈니스 솔루션을 제공해야 하는 사업적
 요구를 받고 있다. 기업은 이러한 내부업무 처리를 위해 방대한 데이터를
 이용할 수밖에 없다. 게다가 수천∼수만명에 달하는 사용자를 지원해야 하는
 만큼 1백 테라바이트급 초대형 데이터베이스의 구축이 필수적이고 이를 강력한
 의사결정지원시스템(DSS:Decision Support System)으로 이용하고 있기도 하다.

 기업이 DSS를 통해 정보생성 비용의 절감, 의사결정의 고급화, 타깃마케팅의
 강화, 정보의 신뢰성 향상 등 기업경쟁력을 강화시키고 있다. 또 웹(Web)사용에
 따른 대용량 메모리를 요구하는 이미지와 동영상 데이터를 저장, 효율적으로
 활용하고 있다.

 기업의 사업적 요구가 변화하면서 컴퓨팅 환경도 기업경영 환경에 맞게
 발전했으며 이에 따라 중대형 시스템의 설계기술도 발전했다. 초기 중대형
 시스템은 메인프레임처럼 폐쇄형 시스템이었다. 이 시스템은 업무가 다양화하고
 급변하는 경쟁환경 속에서 신속히 대응할 수 있는 유연한 시스템으로 역할을
 수행하기에는 역부족이었다. 그래서 오늘날에는 많은 정보시스템들이 개방형
 시스템으로 변모하고 있다.

 개방형 시스템은 그간 대칭형 다중처리방식(SMP) 아키텍처와 초병렬
 처리방식(MPP) 아키텍처가 주종을 이루어 왔으나 최근 새로운 NUMA(Non-Uniform
 Memory Access) 아키텍처가 등장, 차세대 아키텍처로 주목을 받고 있다.

 NUMA는 기본적으로 기존 SMP의 소프트웨어적인 장점과 MPP의 하드웨어적인
 장점이 통합된 차세대 아키텍처라고 한다. SMP와 MPP는 어떠한 특징을 갖고
 있고 NUMA가 탄생하게 된 기술적인 배경은 무엇인가.

 SMP노드는 2개 이상의 프로세서를 보유하고 있는데 이들 각 프로세서는 서로
 대등한 관계에 있다. 여기서 노드란 한 개 이상의 프로세서, 관련 메모리와
 I/O로 구성된 컴퓨터를 말한다. 각 노드는 단일 복사본의 운용체계를 필요로
 한다. 하나의 운용체계와 각 프로세서는 노드의 컴퓨팅 자원에 동등하게
 액세스하는데 이를 두고 대칭적(symmetrical)이라 한다.

 각 SMP노드는 단 하나의 OS복사본을 운용한다. 이것은 노드 내 프로세서와
 메모리 사이의 상호 연결에 일관성을 유지하기 위한 상호 연결구조를 적용해야
 한다는 뜻이다. SMP노드의 경우 OS가 성능향상이나 애플리케이션 추가에 따른
 자원활용 면에서 상당히 많은 작업을 수행하기 때문에 개발자 애플리케이션에
 적합한 시스템이라고 할 수 있다. 각 벤더들이 제공하는 SMP 아키텍처는
 기본적으로 같은 것이어서 소프트웨어를 간단하게 이식(porting)할 수 있다.
 소프트웨어의 이식성은 SMP 시스템이 갖고 있는 장점 중 하나다.

 대형 단일노드 SMP시스템의 단점은 백플레인의 크기 및 속도, 그리고 공유된
 시스템 버스에 따라 프로세서의 수가 제한된다는 것이다. 마이크로프로세서의
 성능이 급속하게 향상됨에 따라 컴퓨터 시스템 디자이너들은 버스길이와
 버스속도를 면밀하게 분석해야 한다.

 MPP노드는 전통적으로 노드마다 단일 CPU, 작은 메모리, 약간의 I/O, 노드간의
 상호 연결, 그리고 노드당 단일복사본의 OS로 구성돼 있다. 노드 사이의 상호
 연결에는 각 노드가 자체적으로 OS를, 다시 말해 자체 물리적 메모리 어드레스
 스페이스를 갖고 있기 때문에 하드웨어적인 일관성이 필요하지 않다. 다만
 메시지-패싱(message-passing)을 통해 소프트웨어적으로만 일관성을 유지한다.

 메시지를 기반으로 하는 소프트웨어적인 일관성 대기시간은 하드웨어적인
 경우에 비해 수백배 또는 수천배 느리지만 개발비용은 훨씬 적게 든다.
 MPP에서는 보다 많은 수의 프로세서를 연결하기 위해 어느 정도 대기시간에
 대한 희생을 감수하고 있다. MPP 시스템은 이를 통해 수백, 심지어 수천개의
 노드를 연결할 수 있는 기회를 갖게 되는 것이다.

 MPP 아키텍처는 개발비용이 저렴하며 비교적 간단한 문제점만을 갖고 있어
 하드웨어 개발자에게 매력적인 아키텍처라 할 수 있다. 또 공유메모리나
 캐시일관성에 대한 하드웨어적인 지원이 전혀 없기 때문에 많은 수의
 프로세서를 쉽게 연결할 수 있다.

 노드간 데이터의 흐름을 효과적으로 관리하는 방법은 데이터를 분할하는
 것이다. 데이터 공유는 온라인 거래처리(OLTP)에서 기본적인 요소다. 모든
 사용자들은 데이터를 가능한 한 빨리 공유하고 싶어하지만 OLTP 사용자들에게
 데이터의 분할을 강요하면 심각한 성능제한이 초래된다.

 이처럼 SMP시스템은 소프트웨어를 간단하게 이식할 수 있다는 장점으로 그간
 대규모 OLTP 및 DSS 애플리케이션에 이상적으로 적용되고 많은 호평을
 받아왔다. 또 속도가 매우 빠르며 데이터의 일관성을 하드웨어적으로 충분히
 관리할 수 있으므로 가용성이 매우 높다는 것도 장점에 속한다. 단점으로는
 백플레인의 크기 및 속도, 그리고 공유된 시스템 버스에 따라 프로세서의 수가
 제한된다는 것이다. 다시 말해 물리적으로 대역폭에 한계가 나타나게 된다.

 반면 MPP시스템은 우선 개발비용이 적게 든다는 것이 장점이다. MPP에서는 보다
 많은 수의 프로세서를 연결하기 위해 어느 정도 대기시간에 대한 희생을
 감수하고 있다. MPP시스템은 이를 통해 수백, 심지어 수천 개의 노드를 연결할
 수 있는 확장성을 갖게 되는 점이 가장 큰 장점이다. MPP의 단점은 비슷한 수의
 프로세서를 가진 MPP시스템에서 노드 사이의 일관성을 소프트웨어에 의해
 관리하기 때문에 사용자는 성능이 감소되지 않도록 노드 사이에 발생하는
 트래픽을 관리해야 하는 불편이 있는 등 가용성 측면에서 SMP에 비해 낮다. 또
 프로그래밍의 복잡성으로 다양한 애플리케이션이 개발되지 못하다는 것도 단점
 중 하나이다.

 최초의 NUMA시스템은 81년 BBN이 개발한 버터플라이(Butterfly)시스템이며
 최초로 작동한 CC(Cache-Coherent)-NUMA시스템은 스탠퍼드 DASH였다.
 스탠퍼드대 연구팀은 지난 92년 32개 프로세서의 CC-NUMA노드 상에서 SGI의
 유닉스 운용체계인 아이릭스(Irix)를 연구하는 기회를 얻었다. 이 팀은 현재
 DASH의 후속작업으로 FLASH라 불리는 시스템을 구현하고 있다. FLASH가 목표로
 하는 것은 SMP 캐시 일관성 공유메모리 모델과 MPP 소프트웨어 기반의 캐시
 일관성 메시지 패싱모델을 하나의 아키텍처로 통합하는 것이다. 현재 많은
 시스템 벤더들이 NUMA 아키텍처와 시스템을 발표하거나 개발중인데 시퀀트,
 데이터제너럴, SGI 등이 대표적이다.

 NUMA 아키텍처는 메모리 접근 대기시간을 최소화하는 상호 연결기술을 구현하는
 방식에 따라 구별되는데 대표적으로 CC-NUMA와 COMA(Cache-Only Momory
 Access), 그리고 시퀀트가 독자적으로 개발한 NUMA-Q(쿼드를 가진 CC-NUMA)
 등이 있다.

 CC-NUMA는 분산된 메모리가 단일 메모리를 형성하면서 함께 묶이게 된다.
 메모리 위치간 페이지나 데이터의 복사본이 존재하는 것이 아니며 소프트웨어
 메시지-패싱이 전혀 없다. 단순히 코퍼케이블 및 백플레인이 아닌 몇몇 스마트
 하드웨어와 함께 물리적으로 연결된 단일 메모리 맵이 있는 것이다.
 하드웨어적인 캐시 일관성이 갖는 의미는 다수의 데이터 복사본을 지속적으로
 업데이트한다거나 다수의 OS, 혹은 애플리케이션 복사본 사이에서 데이터를
 전송하기 위한 소프트웨어적인 요구가 없다는 것이다.

 이러한 모든 것이 OS의 단일 복사본과 다수의 프로세서를 갖고 있는
 SMP노드에서와 같이 하드웨어 수준에서 관리된다는 것이다. 그러나 이렇게
 일관성을 유지하기 위해 스누피 버스를 이용하는 대신 디렉터리 기반의 일관성
 구조를 채용하고 있다.

 COMA는 CC-NUMA와 대별되는 아키텍처로 비슷한 목적을 지니고 있지만 전개방법
 측면에서 차이가 있다. COMA노드에는 메모리가 없고 각 쿼드에 「어트랙션
 캐시(Attraction Cache)」라고 불리는 하나의 대형 캐시만 존재한다. 아직까지
 이러한 상호 연결은 일관성을 유지해야만 하며 OS의 단일 복사본이 모두 쿼드에
 걸쳐 운용된다.

 그러나 특정 부분의 데이터에 대한 홈메모리가 없다. COMA 하드웨어는 메모리
 할당 및 프로세서 스케줄링과 관련, OS 알고리듬의 약점을 보충할 수 있다.
 여기에는 OS의 가상메모리 서브시스템에 대한 변환이 요구되며 캐시 일관성
 상호 연결보드에 추가되는 커스텀 메모리보드를 필요로 한다.

 기존 유닉스시스템은 SMP, MPP, 클러스터시스템으로 이루어져 왔으며 여러가지
 단점으로 인해 컴퓨팅 환경의 한계성을 면치 못했다. 현재 정보기술분야, 특히
 클라이언트 서버 솔루션분야에서 일어나고 있는 빠른 개발 및 성장은 앞으로도
 몇 년 동안 계속될 것이다.

 시장조사회사인 에버딘사의 조사에 따르면 지난 1년 6개월 동안 포천지 선정
 1천대 기업 중 1백여개의 기업이 1백GB 이상의 데이터베이스를 개발해 왔으며
 이러한 횟수는 18개월마다 6∼7배 성장하고 있다고 한다. 그리고 몇 년 내에는
 수십 테라바이트급에 달할 것으로 예상하고 있다.

 이러한 대규모 데이터베이스 및 애플리케이션은 기존의 SMP, MPP 등
 하드웨어기술의 한계를 뛰어넘는 새로운 하드웨어 아키텍처를 요구하고 있다고
 할 수 있다. 새로운 대용량 애플리케이션은 수십개 이상의 프로세서를 필요로
 하게 되며 이를 통해 실시간 업무처리 및 정보활용, 복잡한 업무의 신속한 처리
 등을 충분히 수행할 수 있어야 한다.

 새로운 대형 컴퓨팅 아키텍처의 요구에 대응하고 향후 10여년 동안 컴퓨팅
 환경을 주도할 시스템 아키텍처는 프로세서를 2백52개까지 확장할 수 있어야
 하고 1백테라바이트의 데이터 저장용량, 64기가바이트의 메모리를 지원할 수
 있는 NUMA-Q와 같은 NUMA 아키텍처가 될 것이라는 것이 전문가들의 공통된
 전망이다.

 NUMA 아키텍처는 기존의 유닉스시스템으로는 감당하기 어려웠던 엔터프라이즈급
 시스템의 업무를 처리하게 될 것이다. 이는 미래의 네트워크 컴퓨팅시대에
 반드시 필요한 시스템이 될 것이다.

----------------------------------------------------------------------------

Revision History

작성일자 : 97.07.03
작성자 : 이민호

수정일자 :
수정자 :