본문 바로가기

카테고리 없음

연산능력을 더 빠르게 해주는 그리드 컴퓨팅

그리드 컴퓨팅

Grid Computing. 네트워크로 연결된 컴퓨터들이 서로 정보를 공유할 수 있듯이 컴퓨터의 자원들- CPU와 RAM의 처리능력, 하드디스크의 저장공간 등 -을 서로 공유하여 컴퓨팅 능력을 향상시키기 위해 사용되는 병렬 분산 시스템의 한 종류이다.

기본적인 개념은 주변에 전력망(Power Grid)이 구축되어 있으면 전력선을 따오는 것만으로도 전기를 쉽게 공급받을 수 있는 것처럼, 구축된 컴퓨팅 망(Grid)에 연결하는 것만으로도 언제 어디서나 쉽게 컴퓨팅 능력을 공급받을 수 있도록 하자는 것이었다. 한국에서 그리드 컴퓨팅을 설명할 때 격자란 표현에 집착하는 경향이 있는데 집착할 이유가 없다.

100의 작업을 처리하는데, CPU 하나에서 처리하면 아무리 고성능 CPU를 사용하더라도 물리적인 한계가 존재한다. 이를 뛰어넘어 더 빠른 처리를 하기 위하여 여러 대의 CPU를 병렬 연결하여 작업을 나누어 처리하게 되며. 이 때문에 한 CPU를 여러 코어의 병렬 구조로 구성한 듀얼코어, 쿼드코어, 헥사코어 등의 CPU가 나오는 것으로, 슈퍼컴퓨터는 데이터처리를 위한 최소한의 컴퓨터 수백대를 병렬 연결한 것이라고 할 수 있다.

이 개념을 하나의 컴퓨터가 아니라 네트워크에 적용하면 네트워크에 연결된 불특정 다수의 컴퓨터에 데이터를 전송하여 연산하게 한 다음 이를 서버에서 취합하여 전체 데이터를 내는 기술이 된다. 특히 과학및 공학 분야에서 주로 처리하는 데이터는 비슷한 계산을 조건만 약간씩 바꿔 가며 결과를 얻는 병렬 연산이 많기 때문에 이러한 기술을 이용하면 슈퍼 컴퓨터로도 수십 년이 걸릴 데이터를 불과 수 개월에서 수 년 정도만에 처리가 가능하다고 한다. 대표적인 예로 SETI@home, Folding@home이 있다. 한국에서는 KISTI가 Korea@Home을 운영하고 있었으나 서비스 중단.

개념적으론 그리드 컴퓨팅은 분산컴퓨팅의 한 종류이나 어감상 차이가 있는데, 분산 컴퓨팅은 서버가 병렬 연결된 다수의 클라이언트를 다수의 독립된 연산코어처럼 활용하는 쪽에 초점을 두고 클라이언트는 단지 자신이 지닌 연산 및 처리능력을 제공하기만 한다면, 그리드 컴퓨팅은 이들을 무지막지한 능력을 지닌 가상의 컴퓨터로 재구성하는 쪽에 초점이 맞춰져 있으며, 병렬로 연결된 컴퓨터들은 서로 연산 및 처리능력을 제공하기도 하고 제공받기도 하는 관계이다. 비유하자면 그리드 컴퓨팅은 인수합병이고, 분산컴퓨팅은 하청업체 내지 아웃소싱 정도.

SETI@home 프로젝트의 경우 BOINC이란 프로그램을 이용하고 있는데, 이 프로그램이 하는 일이 연결된 컴퓨터들을 다수의 연산코어처럼 활용하여 연산 및 처리능력을 제공받는 형식이다. 공익 목적으로 사용되는 그리드 프로그램의 대표주자라고 할 수 있다.


한국의 그리드 컴퓨팅
한편, 한국에서는 인터넷 콘텐츠 서비스 업자들 가운데 상당수가 애용하는 개념이기도 하다. 동영상 서비스로 말하자면

1. 사용자 A가 동영상을 재생한다.

2. 2. 동영상의 내용이 사용자 A의 컴퓨터에 잠시 저장된다.
3. 3. 사용자 B가 동영상 을 재생한다.
4. 4. 동영상의 내용이 사용자 B의 컴퓨터에 잠시 저장된다. 이 때, 동영상의 내용은 서버가 아닌 사용자 A의 컴퓨터에서 가져온다. 
5. 5. 사용자 C가 동영상을 재생한다.
6. 6. 동영상의 내용이 사용자 C의 컴퓨터에 잠시 저장된다. 이 때, 동영상의 내용은 서버가 아닌 사용자 A와 사용자 B의 컴퓨터에서 가져온다.


간단히 사용자에게 원 서버 관리자의 짐을 나누어 지게 하는 것이라고 생각하면 된다. 즉 원 서버를 관리하는 업자 입장에서는 원 서버 관리에의 지출을 줄일 수 있다는 유리함이 있는 것이다.

하지만 타인의 컴퓨터 자원을 서버의 용도로 사용하는것이기 때문에 이를 약관 등으로 사전에 고지하지 않으면 불법이다.

그 밖에도 인터넷을 통한 그리드 컴퓨팅 자체가 크래킹에 악용될 수 있다는 불리함도 있을 수 있으며 이 과정이 사용자의 명시적 동의를 일절 받지 않은 채 이루어진다는 점에서 윤리적 논란의 소지가 될 수도 있다. 또한 한국에서 이 기술을 사용하는 인터넷 콘텐트 서비스 업자들 가운데 대부분이 사용자의 컴퓨터의 자원을 쓰기 위해 사용자의 컴퓨터에 특정 소프트웨어의 설치를 요구하는데 이러한 소프트웨어가 대부분 액티브X 기반이다 보니 이것이 한국 인터넷 환경의 인터넷 익스플로러를 위시한 마이크로소프트 제품군에의 의존을 심화하고 다양한 플랫폼에 대한 접근성 향상의 발목을 잡는 주범이 되기도 한다.

2004~2005년 사이에 네이버에서 동영상 재생을 터보 플레이어로 했는데 터보 플레이어에서 이 그리드 컴퓨팅을 사용했기 때문에 네이버에서 동영상만 보면 인터넷이 많이 느려졌고, 아예 몇몇 대학교 및 공공기관에서는 구내 컴퓨터에 터보 플레이어를 설치하지 말라는 공문을 띄우기까지 했다. 2004년 11월경 이게 공론화되면서 비판이 쏟아졌고, 결국 네이버는 2005년 6월 27일 터보플레이어를 버리고 윈도우에 내장된 미디어 플레이어로 스트리밍하는 방식으로 바꿨지만 2014년(?)에 TV캐스트의 독점계약으로 방송사에게 퍼주다보니 설치하게 하고 있었다가 현재는 설치안해도 된다. 모바일 빼고.

안드로이드 버전 네이버 미디어 플레이어는 그리드 컴퓨팅을 사용한다. 아이폰 버전에서는 사용하지 않는다(애초에 아이폰 버전에서는 고화질 동영상 재생시 앱을 설치할 필요가 없다).

싸이월드 배경음악 재생 서비스도 이 방식을 사용한다. 
판도라TV도 사용했었는데, 나중에 플래시로 바꿨다. 하지만 모질라 파이어폭스 등에서 일부 동영상이 플래시로 인식이 되지 않는 것으로 보아 아직도 판도라TV에 이 방식을 사용하는 동영상이 일부 있는 것으로 판단된다.

클럽박스도 이 방법을 사용한다. 원래부터 클럽박스는 단순한 웹하드가 아니라 그리드 컴퓨팅을 사용한 공유 방식을 사용했는데, 이후에 욕을 상당히 먹게 되면서 2점을 추가로 주는 옵션을 추가하였다. 여기서 2점을 추가하는 의미는 그리드 컴퓨팅 자체를 허용한다는 의미가 아니라 이미 실행되고 있던 그리드 컴퓨팅의 대역폭을 넓힌다는 의미이다. 결국 실행하고만 있어도 컴퓨터의 속도를 깎아먹는 셈. 이를 두고 조삼모사라고 까이기도 한다.

한편 기술적인 면에서 클럽박스의 솔루션은 꽤 유명해서, 게임사에서 게임 클라이언트를 배포하는데서도 쓰고 있다. WOW의 경우 그리드 컴퓨팅은 아니지만 원리가 비슷한 토렌트 방식으로 게임을 배포한다.


사실 널리 알려지지는 않은 사실이지만, 대부분의 국내 웹하드 사는 그리드 컴퓨팅을 사용하고 있다. 지금 당장 작업 관리자를 켜서 qdownupdate.exe, qdownagent.exe, qdownservice.exe, ExpressService.exe, microcloudengine.exe, cloudmanager.exe, winnetplus.exe, natsvc.exe, v_service.exe, v_member.exe, CCDNService.exe 등의 파일이 메모리에 상주되어 있지 않은가 살펴보자.(혹은 회원가입 시 뜨는 이용약관에 Ctrl + F로 grid를 검색해서 해당 사이트의 이용 여부를 확인할 수 있다.) 이게 바로 대부분의 웹하드 다운로더를 설치하면 함께 설치하는 퀵다운 서비스라는 그리드 컴퓨팅 프로그램이다. 컴퓨터를 켜면 자동으로 SYSTEM 계정 권한으로 실행되며, 강제종료를 해도 알아서 다시 켜진다. 이것은 해당 프로세스가 인스톨시에 서비스에 등록되어 실행되기 때문인데, 서비스가 강제중단되었을때 자동으로 다시 시작 이라는 옵션이 지정되어 있어 죽여도 죽여도 한도끝도 없이 살아나는 것처럼 보인다. 시작-실행 으로 들어가거나 단축키 Window(특수키)-R을 누른 후, services.msc(즉, 관리도구의 서비스 관리부분을 실행하는 것과 같다.)를 실행해서 서비스 리스트를 보면 쉽게 종료할 수 있다. (XP 기준으로) 이 관리 콘솔에서 서비스를 삭제하는 것은 불가능하나 사용하지 않음 상태로 만들어서 서비스를 더이상 실행되지 못하게 만들 수 있다.

웹하드를 쓰는 사람들은 가급적 받을 것만 받고 나서 해당 프로그램을 강제종료하고 다운로더를 언인스톨하자. 필요할 때 다시 깔면 되니까. 이 과정 자체가 번거롭다면 그리드관련서비스를 처음부터 실행이 되지 않게 설정할 수도 있다. XP이상의 윈도우는 각 실행파일에 접근권한을 설정할 수 있는데 XP에서는 cacls 7에서는 icacls를 사용해 ACL을 편집함으로 권한을 지정할 수 있다. 관련 명령어를 bat파일로 만들어 접근권한을 필요에 따라 변경할 수 있다. 더 쉬운 방법으로 해당 그리드서비스의 실행파일을 찾아 우클릭->속성->보안(탭)->편집 란에서 권한을 지정할 수 있다. (System,Administrators,사용자계정) 모든권한이나 읽기,쓰기,실행등의 권한을 '거부' 로 설정하면 해당 프로그램은 실행도,읽기도,쓰기도,삭제도 안된다. 당연히 재설치도 되지 않는다.
뭐...MSE나 사제 방화벽을 설치해서 위의 프로그램들을 강제로 차단할 수 있다. 윈도우7에선 보다 확장된 기능 덕분에 별도의 유틸 없이도 차단이 가능하다.

사실 위의 방법 외에도 그냥 프로세스 끄자마자 삭제하고 새폴더를 만들어서 이름을 위 응용프로그램으로 바꾸면 된다. 이렇게 하면 삭제된 프로그램을 다시 만들려고 해도 이미 있는 파일이기 때문에 생성이 안 되고 당연 그리드가 돌아가지도 않는다.

다음에서도 이를 적용해 충격과 공포를 주고 있다. 플래시 동영상 중에서 재생 시간이 긴 것은 반드시 피노(Pino)라는 것을 깔아야 볼 수 있게 해서, 이 피노가 그리드 컴퓨팅을 하게 만드는 것이다. 판도라가 어떻게 됐는지를 생각하면 욕먹을 짓. 그리고 다음은 판도라의 교훈을 잊고 판도라가 하던 짓을 다시 하고 있다. 한데 다음 입장에서는 그리드 컴퓨팅 도입이 트래픽 해소 목적이 아니라 동영상 사업 비중을 줄이기 위한 수단이라는 말이 있다. 하긴 얘들 너무 좋은 서비스였다는 듯.

팟플레이어를 사용하거나 약간의 꼼수로 피할 수 있다. 안티피노라는 방법도 있으니 참고하자.

아프리카TV의 경우 그리해도 회선비용 분기별 19억씩 지출된다. 

어떤 외국 안티바이러스 프로그램은 그리드 컴퓨팅을 사용하는 프로그램을 악성 코드로 진단하여 삭제하기도 한다.

이것은 SETI@home이나 Korea@Home의 그리드 컴퓨팅과 차이가 있는데, SETI@home이나 Korea@Home은 CPU의 연산을 필요로 하는 반면 판도라TV나 클럽박스 등의 웹하드류는 CPU보다는 트래픽과 저장장치 엑세스에 초점이 맞춰져있다는 점이다. 물론 둘 다 용어상 그리드 컴퓨팅이지만. 뭐 정확히 나누자면, 전자는 컴퓨팅 그리드이고, 후자는 데이터 그리드로 나눌수 있다.


2012년6월 부터는 KT이용자는 그리드 컴퓨팅을 악용하는 웹하드 업체 이용이 어려워지니 참고하자.

2014년 2월 5일부터 네이버 웹툰에서도 스피드뷰라는 이름의 그리드 컴퓨팅 프로그램이 나왔다. 당연히 이용자들에게 욕을 있는대로 먹고 2월 28일자로 내렸다. 위에서 말했듯이 TV캐스트에서도 사용중이었는데 이쪽은 대부분(90%) 방송사에게 퍼주다보니 어쩔수가 없다.
단점만 있는 것은 아니고 스마트폰의 경우 항상 켜져있고 자고 있을땐 사용 하지 않아 자원을 쓸 일이 없을때 그 자원을 다른 곳에 빌려 줌으로서 기부 할 수 있는 애플리케이션도 개발 되어있다.



웹하드 그리드 컴퓨팅 파일 삭제
레알신세계라는 유틸로 간편하게 삭제할 수 있다. 비스타 혹은 윈7의 경우 삭제 후 마데카솔을 바를 수 있다. 마데카솔은 해제하기 전까진 그리드 컴퓨팅 파일이 다시 못 깔리게 한다.

그리드 스위치라는 프로그램도 있다. 실시간 감시 기능까지 달려있어 사용자가 모르게 컴퓨터에 그리드 컴퓨팅 파일이 실행될때 알아차릴 수 있다.

'그리드킬러'라는 프로그램도 있다.

참고로 그리드 컴퓨팅을 하지 않는다는 것과 백그라운드 프로그램이 실행되지 않는다는 것은 의미가 전혀 다르다. 실제로 "그리드가 없는 웹하드"를 표방하는 모업체는 사용자에게 별도의 고지를 하지않은채 백그라운드 프로세스를 2개 이상 실행하도록 만든다. 이는 주로 DRM관련 프로그램이지만, 사실 해당 프로그램이 실행되지 않더라도 웹하드 자체적으로 저작물을 관리하는데에는 큰 문제가 없다.