김진용 타이달스케일코리아 이사

▲ 김진용 타이달스케일코리아 이사

[컴퓨터월드] 타이달스케일은 기존 가상화가 도달하지 못했던 미지의 영역을 보여주는, 마치 맵핵과 같은 제품이다. 소프트웨어는 딱딱한 하드웨어와는 달라서 어떠한 모양으로라도 변할 수 있지만, 그 한계는 하드웨어에 의해 정해진다. 즉 소프트하게 반죽되고 만들어질 수 있는 것은, 하드웨어라는 반죽틀 위에 놓인 자원 만큼일 뿐이다. 그래서 항상 먼저 하드웨어가 준비되면 그 위에 운영 가능한 OS와 소프트웨어들이 만들어진다. 즉 그동안 소프트웨어의 한계는 하드웨어에 의해서 정해졌다는 것이다.

그러나 이제는 타이달스케일이 그 상식을 바꿔주게 된다. 타이달스케일은 반죽틀 여러 개를 붙여서, 하나의 큰 반죽틀을 만들어 그 위에 뭉뚱그려진 모든 자원을 소재로 큰 작품을 만들 수 있게 한다. 생각해보면 큰 작품을 위해서는 당연한 접근법이었는데, 왜 그런 제품이 이제서야 나타난 것일까? 여기에 타이달스케일이 가진 3가지의 특별한 기술적 이유가 있다.


1. 움직이는 vCPU

여러 대의 컴퓨터에 큰 업무를 수행하기 위해서는 몇 가지 방법이 있다. 먼저 가능한 그 업무를 여러 개로 나누는 것이다. 그 나눠진 단위는 당연히 하나의 컴퓨터가 수용할 수 있을 정도의 프로그램 부분과 데이터 부분으로 구성돼야 한다(데이터셋). 그런데 이 방식은 이미 방식의 정의 자체가 모순을 담고 있다. 큰 업무라고 했는데 나눠진다면 원래 큰 업무가 아니지 않은가?

▲ <그림 1> 데이터를 잘 나누는 것이 관건.

현실에서는 가능한 한 서로 연관성을 가진 데이터들을 잘 나눠서 배치함으로써, 되도록 서로 중첩되는 부분을 적게 만들어야 한다. 이렇게 데이터를 나누는 것이 쉽지 않기 때문에, 이런 일을 전문적으로 하는 사람을 데이터 사이언티스트라고 부르는 것이다.

그러나 결국 아무리 데이터를 잘 나누더라도 자신이 소유하고 있지 않은 데이터에 접근해야 할 일들이 생기게 되고, 그러면 그 원격의 데이터를 읽을 때마다 CPU는 최소 천 배~백만 배 이상 기다릴 수밖에 없다. 그 데이터가 영상이나, 그래픽이라면 그 이상의 대기시간이 소요될 것이다.

게다가 최근의 빅데이터들은 그 양도 양이지만 데이터의 타입도 너무나 다양해졌다. 다시 말해 오늘날 데이터의 평균 크기는 과거에 비해 수천 배 이상 커졌다는 것이다. 이런 방식으로는 아무리 데이터를 잘 나누더라도 계산을 하는 시간보다 데이터를 가져와서 처리하는 데 소요되는 시간이 더 많이 걸릴 수밖에 없는 것이다.

▲ <그림 2> 데이터가 너무 크다.

그러나 타이달스케일은 먼저 하나의 큰 컴퓨터를 만들고, 여기에 모든 데이터를 집어넣는다. 데이터의 연관성을 생각할 필요가 없다. 어차피 하나의 OS위에서 운영되는 단일 메모리 주소이기 때문이다.

데이터에 접근할 때, 그 데이터를 불러오는 것이 아니라 친히 vCPU가 그 노드에 방문하는 것이다. <그림 1>과 같은 기존의 환경에서는 절대 CPU가 다른 노드로 이동할 수 없었다. 하지만 타이달스케일의 vCPU는 단일 OS위에서 다른 노드로 vCPU가 이동할 수 있는 것이다. 데이터의 단위가 크면 클수록 이 효과는 커진다.

타이달스케일 위에서 운영되는 OS의 관점에서 보자면 프로그램은 기존과 동일하게 동작된다. 다만 타이달스케일의 하이퍼커널은 해당 프로그램이 요구하는 데이터가 있는 위치에 그 프로그램이 동작되고 있는 vCPU를 이동시켜주는 것이다.

▲ <그림 3> 힘들게 나누지 않고 그냥 넣는다.

2. 실시간 머신러닝

기존의 환경에서 CPU는 하나의 하드웨어에 고정돼 있었기 때문에, 외부의 자원을 참조할 때 많은 시간이 소요됐다. 그런데 정말 완벽하게 요구되는 데이터를 미리 잘 넣어 준다면 그보다 빠를 수 없을 것이다. 다만 우리의 문제는 그 요구되는 데이터가 어떤 것인지 미리 예측할 수가 없다는 것이다.

그런데 우리의 뛰어난 CPU가 메모리를 참조할 때 101, 302 102, 303…과 같은 식으로 참조한다면, 매번 참조할 때마다 메뚜기처럼 뛰어다니지 않고 좀 더 편한 방법을 찾을 수 있을 것이다. <그림 4>처럼 말이다. 그러면 처음 데이터를 이동할 때는 시간이 더 소요될 수 있겠지만, 비슷한 패턴의 수행이 반복된다면 전체 소요시간은 줄어들게 된다.1)

▲ <그림 4> 메모리 참조 시 비슷한 패턴이 반복된다면 전체 소요시간은 줄어들 것이다.

타이달스케일의 하이퍼커널은 각 노드가 원격의 자원을 요구할 때 메모리 원격 액세스, 메모리 카피, vCPU 이동 중 가장 빠른 방법을 선택한다. 그리고 그 결과를 기억한다. 동일한 패턴이 반복되면 집합적인 결과가 더 빠른 방식을 선택하게 된다.

이런 학습은 미리 주어진 연관성에 의해서 만들어지는 것이 아니라, 실시간으로 발생하는 vCPU와 메모리의 움직임을 기반으로 자체적으로 생성되고 발전한다. 이런 학습이 계속되면 궁극적으로는 vCPU와 데이터가 동일한 노드별로 자연스럽게 뭉쳐진다. 타이달스케일은 지금도 더 효과적인 방법으로 학습을 하고 있다.


3. 보다 효과적인 인터커넥트 네트워크

앞선 두 가지의 기술은 가능한 자원을 이동하지 않게 함으로써, 프로세싱의 내재화를 높이는 것이라고 볼 수 있다. 그러나 어찌됐건 노드와 노드 간에는 vCPU든 데이터든 이동이 일어날 수밖에 없다. 그렇다면 네트워크가 빠를수록 더 나은 효과를 발휘할 것이다.

타이달스케일의 네트워크는 기본적으로 일반적인 이더넷 어댑터와 이더넷 스위치를 사용한다. 즉 OSI 계층에서 L1, L2는 표준을 따르지만 L3이상에서는 IP가 아닌 타이달스케일만의 방식을 사용한다. 전송계층에서도 패킷의 크기 등을 하이퍼커널 간 vCPU와 데이터를 가장 효율적으로 전달할 수 있도록 만들어냈다.2)

기본적으로는 제로카피(Zero-copy) 형태로 네트워크 기능을 수행한다. 실무적으로 봤을 때, 타이달스케일의 인터커넥트 네트워크는 높은 상호통신이 일어나는 상황에도 10% 이상의 밴드위스(bandwidth) 사용률을 보이지 않는다.

▲ <그림 5> 타이달스케일의 인터커넥트 네트워크는 효율적으로 데이터를 전달한다.

오는 6월에 정식 발표 예정인 버전2(version 2)의 기능을 미리 살펴보면, 여러 대의 하드웨어를 하나의 컴퓨터로 운영하기 위한 필수 조건으로 온라인상에서의 노드 증설과 축소를 들 수 있다. 어떠한 기능이든지 그 앞에 온라인이라는 수식어가 붙게 되면 그 어려움이 한없이 커지게 된다. 디스크나, 어댑터도 아니고 하드웨어 전체를 움직이는 것은 더 말할 나위 없다.

과거 하이퍼바이저도 온라인상에서 자원을 추가하는 것이 가능했지만 실재 게스트OS에서 그 기능을 지원하는 데는 오랜 시간이 걸렸으며, 그것도 특별한 OS만 지원이 가능했다. 그런데 타이달스케일은 최초로 서버의 씬프로비전(Thin-provision) 개념을 들고 나왔다.

▲ <그림 6> 하이퍼커널은 현존하는 CPU의 수보다 더 많은 vCPU를 게스트OS에게 보여줄 수 있다.

하이퍼커널은 현재 존재하고 있는 CPU의 수보다 더 많은 수의 vCPU를 게스트OS에 보여줄 수 있다. 즉 OS는 부팅할 때 스스로 보유한 CPU가 6개라고 인식하고 부팅을 하지만, 실제 두 노드 모두를 합쳐도 pCPU는 4개에 지나지 않는다. 이것이 가능하다면, 기존의 OS가 가진 고질적인 문제인 CPU의 온라인 확장, 축소가 가능해진다. 타이달스케일은 OS벤더에 기능을 요구하는 방식이 아닌 스스로의 기술로 OS에 지금까지 없었던 자유를 주었고, 그로 인해 온라인상에서 하드웨어를 추가, 제거할 수 있게 한다.

▲ 컴퓨팅 자원의 속도가 갑자기 큰 차이를 나타내는 것을 ‘메모리 절벽’이라고 한다. 전체적인 시간을 줄이기 위해서는 빠른 자원을 더 빠르게 하는 것보다, 느린 자원을 가능한 쓰지 않게 하는 것이 필요하다(점선 박스 안이 타이달스케일이 동작하는 구간이다).

타이달스케일로 구현된 가상머신은 분명 기존 가상머신보다는 빠르다. 왜냐하면 하이퍼커널 스스로 소모하는 부하가 하이퍼바이저에 비해 확연히 작기 때문이다.3) 그러나 타이달스케일이 기존의 하드웨어를 더 빠르게 만들어줄 수 있는 것은 아니다. 다만 지금까지 하드웨어가 가진 규모(Scale)의 한계로 새로운 프로그래밍이 요구됐거나, 데이터의 분리가 요구되는 등 기존까지는 아예 하지 못했던 일들을 타이달스케일은 논리적 변경 없이 해낼 수 있는 것이다.

그러나 많은 고객 사례에서 알 수 있듯 타이달스케일은 실제 수행시간을 드라마틱하게 줄여줬는데, 이는 가속의 효과같은 것이 아니라 기존 프로그램과 데이터의 비효율이 가진 요소를 최소화함으로써 이룬 결과라고 볼 수 있다.4)

타이달스케일은 아무리 큰 데이터도 현실적인 시간 안에 결과를 얻을 수 있게 대형컴퓨터를 어떤 조직에서든지 쉽게 사용할 수 있게 해주며, 부하의 크기에 따라 유연하게 자율 조정될 수 있는 새로운 컴퓨팅 환경을 제공한다. 이제 전체 IT인프라에 새로운 물결이 밀물처럼 다가오고 있다.

1) 타이달스케일의 머신러닝은 실제 어느 정도 동일한 수행이 반복돼야 더 효과적인지를 판단한다. 이것은 한 세트의 데이터가 어느 정도인지, 연관된 노드가 어느 정도인지 등 여러 가지 조건에 따라 달라질 수 있어 학습이 필요하다.

2) 타이달스케일의 네트워크 디자인은 데이브 리드 박사의 역작이라고 할 수 있다. 리드 박사는 네트워크의 3법칙 중 세 번째 법칙인 리드의 법칙으로 알려졌다.

3) 엄밀히 말하자면, 하이퍼커널은 가상머신에 대한 개입을 하이퍼바이저보다 더 적게 한다.

4) 대다수의 병렬처리, 빅데이터에서는 어쩔 수 없는 비효율성이 있을 수밖에 없는 것이 현실이다.

 

저작권자 © 컴퓨터월드 무단전재 및 재배포 금지